diff --git a/Dockerfile b/Dockerfile index d78be01..19828bc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,13 +14,15 @@ # limitations under the License. #================================================================================== -FROM wineslab/o-ran-sc-bldr-ubuntu18-c-go:9-u18.04 as buildenv +FROM ubuntu:latest as buildenv ARG log_level_e2sim=2 # log_level_e2sim = 0 -> LOG_LEVEL_UNCOND 0 # log_level_e2sim = 1 -> LOG_LEVEL_ERROR 1 # log_level_e2sim = 2 -> LOG_LEVEL_INFO 2 # log_level_e2sim = 3 -> LOG_LEVEL_DEBUG 3 +# RUN echo nameserver 8.8.8.8 > /etc/resolv.conf && echo nameserver 8.8.4.4 >> /etc/resolv.conf + # Install E2sim RUN mkdir -p /workspace RUN apt-get update && apt-get install -y build-essential git cmake libsctp-dev autoconf automake libtool bison flex libboost-all-dev @@ -41,7 +43,7 @@ RUN ldconfig WORKDIR /workspace # Install ns-3 -RUN apt-get install -y g++ python3 qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools +RUN apt-get install -y g++ python3 RUN git clone -b release https://github.com/wineslab/ns-o-ran-ns3-mmwave /workspace/ns3-mmwave-oran RUN git clone -b master https://github.com/o-ran-sc/sim-ns3-o-ran-e2 /workspace/ns3-mmwave-oran/contrib/oran-interface diff --git a/setup/sample-xapp/Dockerfile b/setup/sample-xapp/Dockerfile index 04d4409..08e62ba 100644 --- a/setup/sample-xapp/Dockerfile +++ b/setup/sample-xapp/Dockerfile @@ -61,42 +61,43 @@ RUN apt-get update \ && apt-get install -y \ python3 \ python3-pip \ -# Install mdclog using debian package hosted at packagecloud.io - && wget -nv --content-disposition https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/mdclog_${MDC_VER}_amd64.deb/download.deb \ + gdb + # Install mdclog using debian package hosted at packagecloud.io +RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/mdclog_${MDC_VER}_amd64.deb/download.deb \ && wget -nv --content-disposition https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/mdclog-dev_${MDC_VER}_amd64.deb/download.deb \ && dpkg -i mdclog_${MDC_VER}_amd64.deb \ && dpkg -i mdclog-dev_${MDC_VER}_amd64.deb \ - && rm mdclog_${MDC_VER}_amd64.deb mdclog-dev_${MDC_VER}_amd64.deb \ + && rm mdclog_${MDC_VER}_amd64.deb mdclog-dev_${MDC_VER}_amd64.deb # Install RMR using debian package hosted at packagecloud.io - && wget -nv --content-disposition https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/rmr_${RMR_VER}_amd64.deb/download.deb \ +RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/rmr_${RMR_VER}_amd64.deb/download.deb \ && wget -nv --content-disposition https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/rmr-dev_${RMR_VER}_amd64.deb/download.deb \ && dpkg -i rmr_${RMR_VER}_amd64.deb \ && dpkg -i rmr-dev_${RMR_VER}_amd64.deb \ - && rm rmr_${RMR_VER}_amd64.deb rmr-dev_${RMR_VER}_amd64.deb \ + && rm rmr_${RMR_VER}_amd64.deb rmr-dev_${RMR_VER}_amd64.deb # Install RNIB libraries - && wget -nv --content-disposition https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/rnib_${RNIB_VER}_all.deb/download.deb \ +RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/rnib_${RNIB_VER}_all.deb/download.deb \ && dpkg -i rnib_${RNIB_VER}_all.deb \ - && rm rnib_${RNIB_VER}_all.deb \ + && rm rnib_${RNIB_VER}_all.deb # Install dbaas - && cd ${STAGE_DIR} \ +RUN cd ${STAGE_DIR} \ && git clone https://gerrit.o-ran-sc.org/r/ric-plt/dbaas \ && cd dbaas/redismodule \ && ./autogen.sh \ && ./configure \ && make -j ${nproc} all \ && make install \ - && rm -Rf ${STAGE_DIR}/dbaas \ + && rm -Rf ${STAGE_DIR}/dbaas # Install sdl - && cd ${STAGE_DIR} \ +RUN cd ${STAGE_DIR} \ && git clone https://gerrit.o-ran-sc.org/r/ric-plt/sdl \ && cd sdl \ && ./autogen.sh \ && ./configure \ && make -j ${nproc} all \ && make install \ - && rm -Rf ${STAGE_DIR}/sdl \ + && rm -Rf ${STAGE_DIR}/sdl # Install rapidjson - && cd ${STAGE_DIR} \ +RUN cd ${STAGE_DIR} \ && git clone https://github.com/Tencent/rapidjson \ && cd rapidjson \ && mkdir build \ @@ -105,14 +106,13 @@ RUN apt-get update \ && make -j ${nproc} \ && make install \ && cd ${STAGE_DIR} \ - && rm -rf rapidjson \ + && rm -rf rapidjson ##----------------------------------- # Now install the program #------------------------------------ # build connector - && export CPATH=$CPATH:/usr/local/include \ +RUN export CPATH=$CPATH:/usr/local/include \ && cd src \ - && make clean \ && make -j ${nproc} \ && make install \ && ldconfig \ diff --git a/setup/xapp-sm-connector/.idea/.gitignore b/setup/xapp-sm-connector/.idea/.gitignore new file mode 100644 index 0000000..8bf4d45 --- /dev/null +++ b/setup/xapp-sm-connector/.idea/.gitignore @@ -0,0 +1,6 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/setup/xapp-sm-connector/.idea/misc.xml b/setup/xapp-sm-connector/.idea/misc.xml new file mode 100644 index 0000000..a79fc2c --- /dev/null +++ b/setup/xapp-sm-connector/.idea/misc.xml @@ -0,0 +1,20 @@ + + + + + + + + + + \ No newline at end of file diff --git a/setup/xapp-sm-connector/.idea/vcs.xml b/setup/xapp-sm-connector/.idea/vcs.xml new file mode 100644 index 0000000..b2bdec2 --- /dev/null +++ b/setup/xapp-sm-connector/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/setup/xapp-sm-connector/asn1c_defs/ARP.c b/setup/xapp-sm-connector/asn1c_defs/ARP.c new file mode 100644 index 0000000..5241f50 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/ARP.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "ARP.h" + +int +ARP_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 >= 1 && value <= 15)) { + /* 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_ARP_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ARP_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 1, 15 } /* (1..15,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ARP_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ARP = { + "ARP", + "ARP", + &asn_OP_NativeInteger, + asn_DEF_ARP_tags_1, + sizeof(asn_DEF_ARP_tags_1) + /sizeof(asn_DEF_ARP_tags_1[0]), /* 1 */ + asn_DEF_ARP_tags_1, /* Same as above */ + sizeof(asn_DEF_ARP_tags_1) + /sizeof(asn_DEF_ARP_tags_1[0]), /* 1 */ + { &asn_OER_type_ARP_constr_1, &asn_PER_type_ARP_constr_1, ARP_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/ARP.h b/setup/xapp-sm-connector/asn1c_defs/ARP.h new file mode 100644 index 0000000..6db961c --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/ARP.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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _ARP_H_ +#define _ARP_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ARP */ +typedef long ARP_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ARP_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ARP; +asn_struct_free_f ARP_free; +asn_struct_print_f ARP_print; +asn_constr_check_f ARP_constraint; +ber_type_decoder_f ARP_decode_ber; +der_type_encoder_f ARP_encode_der; +xer_type_decoder_f ARP_decode_xer; +xer_type_encoder_f ARP_encode_xer; +oer_type_decoder_f ARP_decode_oer; +oer_type_encoder_f ARP_encode_oer; +per_type_decoder_f ARP_decode_uper; +per_type_encoder_f ARP_encode_uper; +per_type_decoder_f ARP_decode_aper; +per_type_encoder_f ARP_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ARP_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/BIT_STRING_oer.c b/setup/xapp-sm-connector/asn1c_defs/BIT_STRING_oer.c new file mode 100644 index 0000000..aff5075 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/BIT_STRING_oer.c @@ -0,0 +1,174 @@ +/* + * 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/setup/xapp-sm-connector/asn1c_defs/CMakeLists.txt b/setup/xapp-sm-connector/asn1c_defs/CMakeLists.txt new file mode 100644 index 0000000..1f96e59 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/CMakeLists.txt @@ -0,0 +1,40 @@ + + +#/***************************************************************************** +# * +# 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 OBJECT ${SOURCES}) + +target_include_directories (asn1_objects PUBLIC + $ + $ + PRIVATE src) + +if( DEV_PKG ) + install( FILES + ${HEADERS} + DESTINATION ${install_inc} + ) +endif() +# --------------------------------------------------------------------------- diff --git a/setup/xapp-sm-connector/asn1c_defs/CSI-RS-Index.c b/setup/xapp-sm-connector/asn1c_defs/CSI-RS-Index.c new file mode 100644 index 0000000..327aeb9 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/CSI-RS-Index.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "CSI-RS-Index.h" + +int +CSI_RS_Index_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 <= 95)) { + /* 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_CSI_RS_Index_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..95) */, + -1}; +asn_per_constraints_t asn_PER_type_CSI_RS_Index_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 95 } /* (0..95) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_CSI_RS_Index_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CSI_RS_Index = { + "CSI-RS-Index", + "CSI-RS-Index", + &asn_OP_NativeInteger, + asn_DEF_CSI_RS_Index_tags_1, + sizeof(asn_DEF_CSI_RS_Index_tags_1) + /sizeof(asn_DEF_CSI_RS_Index_tags_1[0]), /* 1 */ + asn_DEF_CSI_RS_Index_tags_1, /* Same as above */ + sizeof(asn_DEF_CSI_RS_Index_tags_1) + /sizeof(asn_DEF_CSI_RS_Index_tags_1[0]), /* 1 */ + { &asn_OER_type_CSI_RS_Index_constr_1, &asn_PER_type_CSI_RS_Index_constr_1, CSI_RS_Index_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/CSI-RS-Index.h b/setup/xapp-sm-connector/asn1c_defs/CSI-RS-Index.h new file mode 100644 index 0000000..12169da --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/CSI-RS-Index.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _CSI_RS_Index_H_ +#define _CSI_RS_Index_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CSI-RS-Index */ +typedef long CSI_RS_Index_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CSI_RS_Index_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CSI_RS_Index; +asn_struct_free_f CSI_RS_Index_free; +asn_struct_print_f CSI_RS_Index_print; +asn_constr_check_f CSI_RS_Index_constraint; +ber_type_decoder_f CSI_RS_Index_decode_ber; +der_type_encoder_f CSI_RS_Index_encode_der; +xer_type_decoder_f CSI_RS_Index_decode_xer; +xer_type_encoder_f CSI_RS_Index_encode_xer; +oer_type_decoder_f CSI_RS_Index_decode_oer; +oer_type_encoder_f CSI_RS_Index_encode_oer; +per_type_decoder_f CSI_RS_Index_decode_uper; +per_type_encoder_f CSI_RS_Index_encode_uper; +per_type_decoder_f CSI_RS_Index_decode_aper; +per_type_encoder_f CSI_RS_Index_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_RS_Index_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/CUUPMeasurement-Container.c b/setup/xapp-sm-connector/asn1c_defs/CUUPMeasurement-Container.c new file mode 100644 index 0000000..0e768d8 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/CUUPMeasurement-Container.c @@ -0,0 +1,130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "CUUPMeasurement-Container.h" + +#include "PlmnID-Item.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_Item, + 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/setup/xapp-sm-connector/asn1c_defs/CUUPMeasurement-Container.h b/setup/xapp-sm-connector/asn1c_defs/CUUPMeasurement-Container.h new file mode 100644 index 0000000..1bd12fd --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/CUUPMeasurement-Container.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _CUUPMeasurement_Container_H_ +#define _CUUPMeasurement_Container_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PlmnID_Item; + +/* CUUPMeasurement-Container */ +typedef struct CUUPMeasurement_Container { + struct CUUPMeasurement_Container__plmnList { + A_SEQUENCE_OF(struct PlmnID_Item) 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 + +#endif /* _CUUPMeasurement_Container_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/Cause.c b/setup/xapp-sm-connector/asn1c_defs/Cause.c index 216f970..bdb51be 100644 --- a/setup/xapp-sm-connector/asn1c_defs/Cause.c +++ b/setup/xapp-sm-connector/asn1c_defs/Cause.c @@ -1,12 +1,15 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -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, 4 } /* (0..4,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -84,7 +87,7 @@ asn_TYPE_descriptor_t asn_DEF_Cause = { 0, /* No effective tags (count) */ 0, /* No tags (pointer) */ 0, /* No tags (count) */ - { 0, &asn_PER_type_Cause_constr_1, CHOICE_constraint }, + { &asn_OER_type_Cause_constr_1, &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/setup/xapp-sm-connector/asn1c_defs/Cause.h b/setup/xapp-sm-connector/asn1c_defs/Cause.h index 0311e82..7bd7e80 100644 --- a/setup/xapp-sm-connector/asn1c_defs/Cause.h +++ b/setup/xapp-sm-connector/asn1c_defs/Cause.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _Cause_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/CauseMisc.c b/setup/xapp-sm-connector/asn1c_defs/CauseMisc.c index 98cb877..e09c0b1 100644 --- a/setup/xapp-sm-connector/asn1c_defs/CauseMisc.c +++ b/setup/xapp-sm-connector/asn1c_defs/CauseMisc.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "CauseMisc.h" @@ -11,6 +11,9 @@ * 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 }, @@ -52,7 +55,7 @@ asn_TYPE_descriptor_t asn_DEF_CauseMisc = { 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 }, + { &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/setup/xapp-sm-connector/asn1c_defs/CauseMisc.h b/setup/xapp-sm-connector/asn1c_defs/CauseMisc.h index fe9470a..1b1efcf 100644 --- a/setup/xapp-sm-connector/asn1c_defs/CauseMisc.h +++ b/setup/xapp-sm-connector/asn1c_defs/CauseMisc.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _CauseMisc_H_ @@ -43,6 +43,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/CauseProtocol.c b/setup/xapp-sm-connector/asn1c_defs/CauseProtocol.c index 007c664..66bb383 100644 --- a/setup/xapp-sm-connector/asn1c_defs/CauseProtocol.c +++ b/setup/xapp-sm-connector/asn1c_defs/CauseProtocol.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "CauseProtocol.h" @@ -11,6 +11,9 @@ * 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 }, @@ -58,7 +61,7 @@ asn_TYPE_descriptor_t asn_DEF_CauseProtocol = { 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 }, + { &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/setup/xapp-sm-connector/asn1c_defs/CauseProtocol.h b/setup/xapp-sm-connector/asn1c_defs/CauseProtocol.h index d074a19..8b49178 100644 --- a/setup/xapp-sm-connector/asn1c_defs/CauseProtocol.h +++ b/setup/xapp-sm-connector/asn1c_defs/CauseProtocol.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _CauseProtocol_H_ @@ -46,6 +46,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/CauseRIC.c b/setup/xapp-sm-connector/asn1c_defs/CauseRIC.c index 81ca48b..7d94696 100644 --- a/setup/xapp-sm-connector/asn1c_defs/CauseRIC.c +++ b/setup/xapp-sm-connector/asn1c_defs/CauseRIC.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "CauseRIC.h" @@ -11,6 +11,9 @@ * This type is implemented using NativeEnumerated, * so here we adjust the DEF accordingly. */ +static asn_oer_constraints_t asn_OER_type_CauseRIC_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; asn_per_constraints_t asn_PER_type_CauseRIC_constr_1 CC_NOTUSED = { { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 10 } /* (0..10,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -66,7 +69,7 @@ asn_TYPE_descriptor_t asn_DEF_CauseRIC = { 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 }, + { &asn_OER_type_CauseRIC_constr_1, &asn_PER_type_CauseRIC_constr_1, NativeEnumerated_constraint }, 0, 0, /* Defined elsewhere */ &asn_SPC_CauseRIC_specs_1 /* Additional specs */ }; diff --git a/setup/xapp-sm-connector/asn1c_defs/CauseRIC.h b/setup/xapp-sm-connector/asn1c_defs/CauseRIC.h index 9b8f9ec..92cbb95 100644 --- a/setup/xapp-sm-connector/asn1c_defs/CauseRIC.h +++ b/setup/xapp-sm-connector/asn1c_defs/CauseRIC.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _CauseRIC_H_ @@ -50,6 +50,8 @@ ber_type_decoder_f CauseRIC_decode_ber; der_type_encoder_f CauseRIC_encode_der; xer_type_decoder_f CauseRIC_decode_xer; xer_type_encoder_f CauseRIC_encode_xer; +oer_type_decoder_f CauseRIC_decode_oer; +oer_type_encoder_f CauseRIC_encode_oer; per_type_decoder_f CauseRIC_decode_uper; per_type_encoder_f CauseRIC_encode_uper; per_type_decoder_f CauseRIC_decode_aper; diff --git a/setup/xapp-sm-connector/asn1c_defs/CauseRICservice.c b/setup/xapp-sm-connector/asn1c_defs/CauseRICservice.c index fc06d4c..c2cbccb 100644 --- a/setup/xapp-sm-connector/asn1c_defs/CauseRICservice.c +++ b/setup/xapp-sm-connector/asn1c_defs/CauseRICservice.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "CauseRICservice.h" @@ -11,6 +11,9 @@ * 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 }, @@ -50,7 +53,7 @@ asn_TYPE_descriptor_t asn_DEF_CauseRICservice = { 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 }, + { &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/setup/xapp-sm-connector/asn1c_defs/CauseRICservice.h b/setup/xapp-sm-connector/asn1c_defs/CauseRICservice.h index 98989eb..99ec743 100644 --- a/setup/xapp-sm-connector/asn1c_defs/CauseRICservice.h +++ b/setup/xapp-sm-connector/asn1c_defs/CauseRICservice.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _CauseRICservice_H_ @@ -42,6 +42,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/CauseTransport.c b/setup/xapp-sm-connector/asn1c_defs/CauseTransport.c index de4d52a..a0a5f38 100644 --- a/setup/xapp-sm-connector/asn1c_defs/CauseTransport.c +++ b/setup/xapp-sm-connector/asn1c_defs/CauseTransport.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "CauseTransport.h" @@ -11,6 +11,9 @@ * 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 }, @@ -48,7 +51,7 @@ asn_TYPE_descriptor_t asn_DEF_CauseTransport = { 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 }, + { &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/setup/xapp-sm-connector/asn1c_defs/CauseTransport.h b/setup/xapp-sm-connector/asn1c_defs/CauseTransport.h index 1a7ad59..5204d28 100644 --- a/setup/xapp-sm-connector/asn1c_defs/CauseTransport.h +++ b/setup/xapp-sm-connector/asn1c_defs/CauseTransport.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _CauseTransport_H_ @@ -41,6 +41,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/Cell-Measurement-Object-Item.c b/setup/xapp-sm-connector/asn1c_defs/Cell-Measurement-Object-Item.c new file mode 100644 index 0000000..503b710 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/Cell-Measurement-Object-Item.c @@ -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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "Cell-Measurement-Object-Item.h" + +asn_TYPE_member_t asn_MBR_Cell_Measurement_Object_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cell_Measurement_Object_Item, cell_object_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellObjectID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cell-object-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cell_Measurement_Object_Item, cell_global_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_CellGlobalID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cell-global-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_Cell_Measurement_Object_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Cell_Measurement_Object_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cell-object-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cell-global-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Cell_Measurement_Object_Item_specs_1 = { + sizeof(struct Cell_Measurement_Object_Item), + offsetof(struct Cell_Measurement_Object_Item, _asn_ctx), + asn_MAP_Cell_Measurement_Object_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_Cell_Measurement_Object_Item = { + "Cell-Measurement-Object-Item", + "Cell-Measurement-Object-Item", + &asn_OP_SEQUENCE, + asn_DEF_Cell_Measurement_Object_Item_tags_1, + sizeof(asn_DEF_Cell_Measurement_Object_Item_tags_1) + /sizeof(asn_DEF_Cell_Measurement_Object_Item_tags_1[0]), /* 1 */ + asn_DEF_Cell_Measurement_Object_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_Cell_Measurement_Object_Item_tags_1) + /sizeof(asn_DEF_Cell_Measurement_Object_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cell_Measurement_Object_Item_1, + 2, /* Elements count */ + &asn_SPC_Cell_Measurement_Object_Item_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/Cell-Measurement-Object-Item.h b/setup/xapp-sm-connector/asn1c_defs/Cell-Measurement-Object-Item.h new file mode 100644 index 0000000..3e7230b --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/Cell-Measurement-Object-Item.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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _Cell_Measurement_Object_Item_H_ +#define _Cell_Measurement_Object_Item_H_ + + +#include + +/* Including external dependencies */ +#include "CellObjectID.h" +#include "CellGlobalID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Cell-Measurement-Object-Item */ +typedef struct Cell_Measurement_Object_Item { + CellObjectID_t cell_object_ID; + CellGlobalID_t cell_global_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cell_Measurement_Object_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Cell_Measurement_Object_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_Cell_Measurement_Object_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_Cell_Measurement_Object_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Cell_Measurement_Object_Item_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/CellGlobalID.c b/setup/xapp-sm-connector/asn1c_defs/CellGlobalID.c new file mode 100644 index 0000000..a823a89 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/CellGlobalID.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "CellGlobalID.h" + +#include "NRCGI.h" +#include "EUTRACGI.h" +static asn_oer_constraints_t asn_OER_type_CellGlobalID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_CellGlobalID_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_CellGlobalID_1[] = { + { ATF_POINTER, 0, offsetof(struct CellGlobalID, choice.nr_CGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRCGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nr-CGI" + }, + { ATF_POINTER, 0, offsetof(struct CellGlobalID, choice.eUTRA_CGI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRACGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRA-CGI" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_CellGlobalID_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_CellGlobalID_specs_1 = { + sizeof(struct CellGlobalID), + offsetof(struct CellGlobalID, _asn_ctx), + offsetof(struct CellGlobalID, present), + sizeof(((struct CellGlobalID *)0)->present), + asn_MAP_CellGlobalID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_CellGlobalID = { + "CellGlobalID", + "CellGlobalID", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_CellGlobalID_constr_1, &asn_PER_type_CellGlobalID_constr_1, CHOICE_constraint }, + asn_MBR_CellGlobalID_1, + 2, /* Elements count */ + &asn_SPC_CellGlobalID_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/CellGlobalID.h b/setup/xapp-sm-connector/asn1c_defs/CellGlobalID.h new file mode 100644 index 0000000..b8e0e5c --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/CellGlobalID.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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _CellGlobalID_H_ +#define _CellGlobalID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CellGlobalID_PR { + CellGlobalID_PR_NOTHING, /* No components present */ + CellGlobalID_PR_nr_CGI, + CellGlobalID_PR_eUTRA_CGI + /* Extensions may appear below */ + +} CellGlobalID_PR; + +/* Forward declarations */ +struct NRCGI; +struct EUTRACGI; + +/* CellGlobalID */ +typedef struct CellGlobalID { + CellGlobalID_PR present; + union CellGlobalID_u { + struct NRCGI *nr_CGI; + struct EUTRACGI *eUTRA_CGI; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CellGlobalID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CellGlobalID; +extern asn_CHOICE_specifics_t asn_SPC_CellGlobalID_specs_1; +extern asn_TYPE_member_t asn_MBR_CellGlobalID_1[2]; +extern asn_per_constraints_t asn_PER_type_CellGlobalID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _CellGlobalID_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/CellObjectID.c b/setup/xapp-sm-connector/asn1c_defs/CellObjectID.c new file mode 100644 index 0000000..b6da12b --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/CellObjectID.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "CellObjectID.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 +CellObjectID_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 <= 400) + && !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_CellObjectID_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_CellObjectID_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_CellObjectID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_CellObjectID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 9, 9, 0, 400 } /* (SIZE(0..400,...)) */, + asn_PER_MAP_CellObjectID_1_v2c, /* Value to PER code map */ + asn_PER_MAP_CellObjectID_1_c2v /* PER code to value map */ +}; +static const ber_tlv_tag_t asn_DEF_CellObjectID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CellObjectID = { + "CellObjectID", + "CellObjectID", + &asn_OP_PrintableString, + asn_DEF_CellObjectID_tags_1, + sizeof(asn_DEF_CellObjectID_tags_1) + /sizeof(asn_DEF_CellObjectID_tags_1[0]), /* 1 */ + asn_DEF_CellObjectID_tags_1, /* Same as above */ + sizeof(asn_DEF_CellObjectID_tags_1) + /sizeof(asn_DEF_CellObjectID_tags_1[0]), /* 1 */ + { &asn_OER_type_CellObjectID_constr_1, &asn_PER_type_CellObjectID_constr_1, CellObjectID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/CellObjectID.h b/setup/xapp-sm-connector/asn1c_defs/CellObjectID.h new file mode 100644 index 0000000..36c987e --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/CellObjectID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _CellObjectID_H_ +#define _CellObjectID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CellObjectID */ +typedef PrintableString_t CellObjectID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CellObjectID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CellObjectID; +asn_struct_free_f CellObjectID_free; +asn_struct_print_f CellObjectID_print; +asn_constr_check_f CellObjectID_constraint; +ber_type_decoder_f CellObjectID_decode_ber; +der_type_encoder_f CellObjectID_encode_der; +xer_type_decoder_f CellObjectID_decode_xer; +xer_type_encoder_f CellObjectID_encode_xer; +oer_type_decoder_f CellObjectID_decode_oer; +oer_type_encoder_f CellObjectID_encode_oer; +per_type_decoder_f CellObjectID_decode_uper; +per_type_encoder_f CellObjectID_encode_uper; +per_type_decoder_f CellObjectID_decode_aper; +per_type_encoder_f CellObjectID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CellObjectID_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/CellResourceReportListItem.c b/setup/xapp-sm-connector/asn1c_defs/CellResourceReportListItem.c new file mode 100644 index 0000000..a7ce4ae --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/CellResourceReportListItem.c @@ -0,0 +1,228 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "CellResourceReportListItem.h" + +#include "ServedPlmnPerCellListItem.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/setup/xapp-sm-connector/asn1c_defs/CellResourceReportListItem.h b/setup/xapp-sm-connector/asn1c_defs/CellResourceReportListItem.h new file mode 100644 index 0000000..85275f3 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/CellResourceReportListItem.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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 + +#endif /* _CellResourceReportListItem_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/Criticality.c b/setup/xapp-sm-connector/asn1c_defs/Criticality.c index e3e69c8..9bfe1ca 100644 --- a/setup/xapp-sm-connector/asn1c_defs/Criticality.c +++ b/setup/xapp-sm-connector/asn1c_defs/Criticality.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-CommonDataTypes-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "Criticality.h" @@ -11,6 +11,9 @@ * 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 }, @@ -48,7 +51,7 @@ asn_TYPE_descriptor_t asn_DEF_Criticality = { 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 }, + { &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/setup/xapp-sm-connector/asn1c_defs/Criticality.h b/setup/xapp-sm-connector/asn1c_defs/Criticality.h index 2df73f9..3d32aff 100644 --- a/setup/xapp-sm-connector/asn1c_defs/Criticality.h +++ b/setup/xapp-sm-connector/asn1c_defs/Criticality.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-CommonDataTypes-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _Criticality_H_ @@ -39,6 +39,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/CriticalityDiagnostics-IE-Item.c b/setup/xapp-sm-connector/asn1c_defs/CriticalityDiagnostics-IE-Item.c index 54b3fc9..d950a0c 100644 --- a/setup/xapp-sm-connector/asn1c_defs/CriticalityDiagnostics-IE-Item.c +++ b/setup/xapp-sm-connector/asn1c_defs/CriticalityDiagnostics-IE-Item.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "CriticalityDiagnostics-IE-Item.h" diff --git a/setup/xapp-sm-connector/asn1c_defs/CriticalityDiagnostics-IE-Item.h b/setup/xapp-sm-connector/asn1c_defs/CriticalityDiagnostics-IE-Item.h index 3aa9196..5992ce7 100644 --- a/setup/xapp-sm-connector/asn1c_defs/CriticalityDiagnostics-IE-Item.h +++ b/setup/xapp-sm-connector/asn1c_defs/CriticalityDiagnostics-IE-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _CriticalityDiagnostics_IE_Item_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/CriticalityDiagnostics-IE-List.c b/setup/xapp-sm-connector/asn1c_defs/CriticalityDiagnostics-IE-List.c index 09410ff..29ae2dd 100644 --- a/setup/xapp-sm-connector/asn1c_defs/CriticalityDiagnostics-IE-List.c +++ b/setup/xapp-sm-connector/asn1c_defs/CriticalityDiagnostics-IE-List.c @@ -1,13 +1,16 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -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)) */, @@ -42,7 +45,7 @@ asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List = { 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_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/setup/xapp-sm-connector/asn1c_defs/CriticalityDiagnostics-IE-List.h b/setup/xapp-sm-connector/asn1c_defs/CriticalityDiagnostics-IE-List.h index 3bbb58b..b823da4 100644 --- a/setup/xapp-sm-connector/asn1c_defs/CriticalityDiagnostics-IE-List.h +++ b/setup/xapp-sm-connector/asn1c_defs/CriticalityDiagnostics-IE-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _CriticalityDiagnostics_IE_List_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/CriticalityDiagnostics.c b/setup/xapp-sm-connector/asn1c_defs/CriticalityDiagnostics.c index d9b8977..c07926c 100644 --- a/setup/xapp-sm-connector/asn1c_defs/CriticalityDiagnostics.c +++ b/setup/xapp-sm-connector/asn1c_defs/CriticalityDiagnostics.c @@ -1,15 +1,15 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "CriticalityDiagnostics.h" #include "RICrequestID.h" #include "CriticalityDiagnostics-IE-List.h" -static asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_1[] = { +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 */ @@ -67,7 +67,7 @@ static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_tag2el_1[] = { { (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 = { +asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_specs_1 = { sizeof(struct CriticalityDiagnostics), offsetof(struct CriticalityDiagnostics, _asn_ctx), asn_MAP_CriticalityDiagnostics_tag2el_1, diff --git a/setup/xapp-sm-connector/asn1c_defs/CriticalityDiagnostics.h b/setup/xapp-sm-connector/asn1c_defs/CriticalityDiagnostics.h index 8c67719..ae04eef 100644 --- a/setup/xapp-sm-connector/asn1c_defs/CriticalityDiagnostics.h +++ b/setup/xapp-sm-connector/asn1c_defs/CriticalityDiagnostics.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _CriticalityDiagnostics_H_ @@ -43,6 +43,8 @@ typedef struct CriticalityDiagnostics { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/E2AP-PDU.c b/setup/xapp-sm-connector/asn1c_defs/E2AP-PDU.c index c14802f..c8386c2 100644 --- a/setup/xapp-sm-connector/asn1c_defs/E2AP-PDU.c +++ b/setup/xapp-sm-connector/asn1c_defs/E2AP-PDU.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Descriptions-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "E2AP-PDU.h" @@ -10,6 +10,9 @@ #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 }, @@ -67,7 +70,7 @@ asn_TYPE_descriptor_t asn_DEF_E2AP_PDU = { 0, /* No effective tags (count) */ 0, /* No tags (pointer) */ 0, /* No tags (count) */ - { 0, &asn_PER_type_E2AP_PDU_constr_1, CHOICE_constraint }, + { &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/setup/xapp-sm-connector/asn1c_defs/E2AP-PDU.h b/setup/xapp-sm-connector/asn1c_defs/E2AP-PDU.h index 52a19b1..1cf3fc7 100644 --- a/setup/xapp-sm-connector/asn1c_defs/E2AP-PDU.h +++ b/setup/xapp-sm-connector/asn1c_defs/E2AP-PDU.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Descriptions-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _E2AP_PDU_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-ActionDefinition-Format1.c b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-ActionDefinition-Format1.c new file mode 100644 index 0000000..5d94a4d --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-ActionDefinition-Format1.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "E2SM-KPM-ActionDefinition-Format1.h" + +asn_TYPE_member_t asn_MBR_E2SM_KPM_ActionDefinition_Format1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition_Format1, cellObjID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellObjectID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellObjID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition_Format1, measInfoList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasurementInfoList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measInfoList" + }, +}; +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 }, /* cellObjID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* measInfoList */ +}; +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, + 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_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 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2SM_KPM_ActionDefinition_Format1_1, + 2, /* Elements count */ + &asn_SPC_E2SM_KPM_ActionDefinition_Format1_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-ActionDefinition-Format1.h b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-ActionDefinition-Format1.h new file mode 100644 index 0000000..4a0e06a --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-ActionDefinition-Format1.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _E2SM_KPM_ActionDefinition_Format1_H_ +#define _E2SM_KPM_ActionDefinition_Format1_H_ + + +#include + +/* Including external dependencies */ +#include "CellObjectID.h" +#include "MeasurementInfoList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2SM-KPM-ActionDefinition-Format1 */ +typedef struct E2SM_KPM_ActionDefinition_Format1 { + CellObjectID_t cellObjID; + MeasurementInfoList_t measInfoList; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* 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[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_KPM_ActionDefinition_Format1_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-ActionDefinition-Format2.c b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-ActionDefinition-Format2.c new file mode 100644 index 0000000..0ecdcab --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-ActionDefinition-Format2.c @@ -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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#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, /* IMPLICIT tag at current level */ + &asn_DEF_UE_Identity, + 0, + { 0, 0, 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, + { 0, 0, 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 */ + { 0, 0, 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/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-ActionDefinition-Format2.h b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-ActionDefinition-Format2.h new file mode 100644 index 0000000..9150e31 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _E2SM_KPM_ActionDefinition_Format2_H_ +#define _E2SM_KPM_ActionDefinition_Format2_H_ + + +#include + +/* Including external dependencies */ +#include "UE-Identity.h" +#include "E2SM-KPM-ActionDefinition-Format1.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2SM-KPM-ActionDefinition-Format2 */ +typedef struct E2SM_KPM_ActionDefinition_Format2 { + UE_Identity_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 diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-ActionDefinition-Format3.c b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-ActionDefinition-Format3.c new file mode 100644 index 0000000..2bacda7 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-ActionDefinition-Format3.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "E2SM-KPM-ActionDefinition-Format3.h" + +asn_TYPE_member_t asn_MBR_E2SM_KPM_ActionDefinition_Format3_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition_Format3, cellObjID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellObjectID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellObjID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition_Format3, measCondList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasurementCondList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measCondList" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition_Format3, granulPeriod), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GranularityPeriod, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "granulPeriod" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition_Format3, subscriptID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubscriptionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subscriptID" + }, +}; +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 }, /* cellObjID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measCondList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* granulPeriod */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* subscriptID */ +}; +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, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 4, /* 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 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2SM_KPM_ActionDefinition_Format3_1, + 4, /* Elements count */ + &asn_SPC_E2SM_KPM_ActionDefinition_Format3_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-ActionDefinition-Format3.h b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-ActionDefinition-Format3.h new file mode 100644 index 0000000..16c512d --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _E2SM_KPM_ActionDefinition_Format3_H_ +#define _E2SM_KPM_ActionDefinition_Format3_H_ + + +#include + +/* Including external dependencies */ +#include "CellObjectID.h" +#include "MeasurementCondList.h" +#include "GranularityPeriod.h" +#include "SubscriptionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2SM-KPM-ActionDefinition-Format3 */ +typedef struct E2SM_KPM_ActionDefinition_Format3 { + CellObjectID_t cellObjID; + MeasurementCondList_t measCondList; + GranularityPeriod_t granulPeriod; + SubscriptionID_t subscriptID; + /* + * 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[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_KPM_ActionDefinition_Format3_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-ActionDefinition.c b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-ActionDefinition.c new file mode 100644 index 0000000..1566aa5 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-ActionDefinition.c @@ -0,0 +1,108 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "E2SM-KPM-ActionDefinition.h" + +#include "E2SM-KPM-ActionDefinition-Format1.h" +static asn_oer_constraints_t asn_OER_type_actionDefinition_formats_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_actionDefinition_formats_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_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, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "actionDefinition-Format1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_actionDefinition_formats_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* actionDefinition-Format1 */ +}; +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, + 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_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) */ + { &asn_OER_type_actionDefinition_formats_constr_3, &asn_PER_type_actionDefinition_formats_constr_3, CHOICE_constraint }, + asn_MBR_actionDefinition_formats_3, + 1, /* 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_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 E2SM_KPM_ActionDefinition, actionDefinition_formats), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_actionDefinition_formats_3, + 0, + { 0, 0, 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-ReportStyle-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 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2SM_KPM_ActionDefinition_1, + 2, /* Elements count */ + &asn_SPC_E2SM_KPM_ActionDefinition_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-ActionDefinition.h b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-ActionDefinition.h new file mode 100644 index 0000000..f5bf906 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-ActionDefinition.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _E2SM_KPM_ActionDefinition_H_ +#define _E2SM_KPM_ActionDefinition_H_ + + +#include + +/* Including external dependencies */ +#include "RIC-Style-Type.h" +#include +#include + +#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 + /* Extensions may appear below */ + +} E2SM_KPM_ActionDefinition__actionDefinition_formats_PR; + +/* Forward declarations */ +struct E2SM_KPM_ActionDefinition_Format1; + +/* E2SM-KPM-ActionDefinition */ +typedef struct E2SM_KPM_ActionDefinition { + RIC_Style_Type_t ric_ReportStyle_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; + /* + * This type is extensible, + * possible extensions are below. + */ + } 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 diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-EventTriggerDefinition-Format1.c b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-EventTriggerDefinition-Format1.c new file mode 100644 index 0000000..314e7f6 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-EventTriggerDefinition-Format1.c @@ -0,0 +1,132 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "E2SM-KPM-EventTriggerDefinition-Format1.h" + +#include "Trigger-ConditionIE-Item.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/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-EventTriggerDefinition-Format1.h b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-EventTriggerDefinition-Format1.h new file mode 100644 index 0000000..6fae26e --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-EventTriggerDefinition-Format1.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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 + +#endif /* _E2SM_KPM_EventTriggerDefinition_Format1_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-EventTriggerDefinition.c b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-EventTriggerDefinition.c new file mode 100644 index 0000000..144313d --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-EventTriggerDefinition.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "E2SM-KPM-EventTriggerDefinition.h" + +#include "E2SM-KPM-EventTriggerDefinition-Format1.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_POINTER, 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/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-EventTriggerDefinition.h b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-EventTriggerDefinition.h new file mode 100644 index 0000000..2db9552 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-EventTriggerDefinition.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _E2SM_KPM_EventTriggerDefinition_H_ +#define _E2SM_KPM_EventTriggerDefinition_H_ + + +#include + +/* Including external dependencies */ +#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; + +/* Forward declarations */ +struct E2SM_KPM_EventTriggerDefinition_Format1; + +/* E2SM-KPM-EventTriggerDefinition */ +typedef struct E2SM_KPM_EventTriggerDefinition { + E2SM_KPM_EventTriggerDefinition_PR present; + union E2SM_KPM_EventTriggerDefinition_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; +} 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/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationHeader-Format1.c b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationHeader-Format1.c new file mode 100644 index 0000000..be23bda --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationHeader-Format1.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "E2SM-KPM-IndicationHeader-Format1.h" + +asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationHeader_Format1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationHeader_Format1, collectionStartTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeStamp, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "collectionStartTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationHeader_Format1, id_GlobalE2node_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_GlobalE2node_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "id-GlobalE2node-ID" + }, +}; +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 }, /* collectionStartTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* id-GlobalE2node-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, + 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_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, + 2, /* Elements count */ + &asn_SPC_E2SM_KPM_IndicationHeader_Format1_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationHeader-Format1.h b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationHeader-Format1.h new file mode 100644 index 0000000..677d458 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationHeader-Format1.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _E2SM_KPM_IndicationHeader_Format1_H_ +#define _E2SM_KPM_IndicationHeader_Format1_H_ + + +#include + +/* Including external dependencies */ +#include "TimeStamp.h" +#include "GlobalE2node-ID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2SM-KPM-IndicationHeader-Format1 */ +typedef struct E2SM_KPM_IndicationHeader_Format1 { + TimeStamp_t collectionStartTime; + GlobalE2node_ID_t id_GlobalE2node_ID; + /* + * 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[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_KPM_IndicationHeader_Format1_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationHeader.c b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationHeader.c new file mode 100644 index 0000000..40f09a3 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationHeader.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "E2SM-KPM-IndicationHeader.h" + +#include "E2SM-KPM-IndicationHeader-Format1.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_POINTER, 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/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationHeader.h b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationHeader.h new file mode 100644 index 0000000..9c6670c --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationHeader.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _E2SM_KPM_IndicationHeader_H_ +#define _E2SM_KPM_IndicationHeader_H_ + + +#include + +/* Including external dependencies */ +#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; + +/* Forward declarations */ +struct E2SM_KPM_IndicationHeader_Format1; + +/* E2SM-KPM-IndicationHeader */ +typedef struct E2SM_KPM_IndicationHeader { + E2SM_KPM_IndicationHeader_PR present; + union E2SM_KPM_IndicationHeader_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; +} 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/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationMessage-Format1.c b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationMessage-Format1.c new file mode 100644 index 0000000..ea21e14 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationMessage-Format1.c @@ -0,0 +1,322 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "E2SM-KPM-IndicationMessage-Format1.h" + +#include "PM-Containers-Item.h" +#include "PM-Info-Item.h" +#include "PerUE-PM-Item.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 int +memb_list_of_PM_Information_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 <= 2147483647)) { + /* 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_list_of_matched_UEs_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 <= 65535)) { + /* 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_type_list_of_PM_Information_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..2147483647)) */}; +static asn_per_constraints_t asn_PER_type_list_of_PM_Information_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 31, -1, 1, 2147483647 } /* (SIZE(1..2147483647)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_list_of_matched_UEs_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +static asn_per_constraints_t asn_PER_type_list_of_matched_UEs_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, + 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_oer_constraints_t asn_OER_memb_list_of_PM_Information_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..2147483647)) */}; +static asn_per_constraints_t asn_PER_memb_list_of_PM_Information_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 31, -1, 1, 2147483647 } /* (SIZE(1..2147483647)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_list_of_matched_UEs_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +static asn_per_constraints_t asn_PER_memb_list_of_matched_UEs_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, + 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_Item, + 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 */ +}; + +static asn_TYPE_member_t asn_MBR_list_of_PM_Information_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PM_Info_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_list_of_PM_Information_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_list_of_PM_Information_specs_5 = { + sizeof(struct E2SM_KPM_IndicationMessage_Format1__list_of_PM_Information), + offsetof(struct E2SM_KPM_IndicationMessage_Format1__list_of_PM_Information, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_list_of_PM_Information_5 = { + "list-of-PM-Information", + "list-of-PM-Information", + &asn_OP_SEQUENCE_OF, + asn_DEF_list_of_PM_Information_tags_5, + sizeof(asn_DEF_list_of_PM_Information_tags_5) + /sizeof(asn_DEF_list_of_PM_Information_tags_5[0]) - 1, /* 1 */ + asn_DEF_list_of_PM_Information_tags_5, /* Same as above */ + sizeof(asn_DEF_list_of_PM_Information_tags_5) + /sizeof(asn_DEF_list_of_PM_Information_tags_5[0]), /* 2 */ + { &asn_OER_type_list_of_PM_Information_constr_5, &asn_PER_type_list_of_PM_Information_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_list_of_PM_Information_5, + 1, /* Single element */ + &asn_SPC_list_of_PM_Information_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_list_of_matched_UEs_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PerUE_PM_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_list_of_matched_UEs_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_list_of_matched_UEs_specs_7 = { + sizeof(struct E2SM_KPM_IndicationMessage_Format1__list_of_matched_UEs), + offsetof(struct E2SM_KPM_IndicationMessage_Format1__list_of_matched_UEs, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_list_of_matched_UEs_7 = { + "list-of-matched-UEs", + "list-of-matched-UEs", + &asn_OP_SEQUENCE_OF, + asn_DEF_list_of_matched_UEs_tags_7, + sizeof(asn_DEF_list_of_matched_UEs_tags_7) + /sizeof(asn_DEF_list_of_matched_UEs_tags_7[0]) - 1, /* 1 */ + asn_DEF_list_of_matched_UEs_tags_7, /* Same as above */ + sizeof(asn_DEF_list_of_matched_UEs_tags_7) + /sizeof(asn_DEF_list_of_matched_UEs_tags_7[0]), /* 2 */ + { &asn_OER_type_list_of_matched_UEs_constr_7, &asn_PER_type_list_of_matched_UEs_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_list_of_matched_UEs_7, + 1, /* Single element */ + &asn_SPC_list_of_matched_UEs_specs_7 /* 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" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage_Format1, cellObjectID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellObjectID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellObjectID" + }, + { ATF_POINTER, 2, offsetof(struct E2SM_KPM_IndicationMessage_Format1, list_of_PM_Information), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_list_of_PM_Information_5, + 0, + { &asn_OER_memb_list_of_PM_Information_constr_5, &asn_PER_memb_list_of_PM_Information_constr_5, memb_list_of_PM_Information_constraint_1 }, + 0, 0, /* No default value */ + "list-of-PM-Information" + }, + { ATF_POINTER, 1, offsetof(struct E2SM_KPM_IndicationMessage_Format1, list_of_matched_UEs), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_list_of_matched_UEs_7, + 0, + { &asn_OER_memb_list_of_matched_UEs_constr_7, &asn_PER_memb_list_of_matched_UEs_constr_7, memb_list_of_matched_UEs_constraint_1 }, + 0, 0, /* No default value */ + "list-of-matched-UEs" + }, +}; +static const int asn_MAP_E2SM_KPM_IndicationMessage_Format1_oms_1[] = { 2, 3 }; +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_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cellObjectID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* list-of-PM-Information */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* list-of-matched-UEs */ +}; +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, + 4, /* Count of tags in the map */ + asn_MAP_E2SM_KPM_IndicationMessage_Format1_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* 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, + 4, /* Elements count */ + &asn_SPC_E2SM_KPM_IndicationMessage_Format1_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationMessage-Format1.h b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationMessage-Format1.h new file mode 100644 index 0000000..ad255ab --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationMessage-Format1.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _E2SM_KPM_IndicationMessage_Format1_H_ +#define _E2SM_KPM_IndicationMessage_Format1_H_ + + +#include + +/* Including external dependencies */ +#include "CellObjectID.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PM_Containers_Item; +struct PM_Info_Item; +struct PerUE_PM_Item; + +/* E2SM-KPM-IndicationMessage-Format1 */ +typedef struct E2SM_KPM_IndicationMessage_Format1 { + struct E2SM_KPM_IndicationMessage_Format1__pm_Containers { + A_SEQUENCE_OF(struct PM_Containers_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } pm_Containers; + CellObjectID_t cellObjectID; + struct E2SM_KPM_IndicationMessage_Format1__list_of_PM_Information { + A_SEQUENCE_OF(struct PM_Info_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *list_of_PM_Information; + struct E2SM_KPM_IndicationMessage_Format1__list_of_matched_UEs { + A_SEQUENCE_OF(struct PerUE_PM_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *list_of_matched_UEs; + /* + * 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[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_KPM_IndicationMessage_Format1_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationMessage-Format2.c b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationMessage-Format2.c new file mode 100644 index 0000000..3496f81 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationMessage-Format2.c @@ -0,0 +1,92 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#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, subscriptID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubscriptionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subscriptID" + }, + { ATF_POINTER, 2, offsetof(struct E2SM_KPM_IndicationMessage_Format2, cellObjID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellObjectID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellObjID" + }, + { 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, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "granulPeriod" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage_Format2, measCondUEidList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasurementCondUEidList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measCondUEidList" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage_Format2, measData), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasurementData, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measData" + }, +}; +static const int asn_MAP_E2SM_KPM_IndicationMessage_Format2_oms_1[] = { 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 }, /* subscriptID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cellObjID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* granulPeriod */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* measCondUEidList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* measData */ +}; +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, + 5, /* Count of tags in the map */ + asn_MAP_E2SM_KPM_IndicationMessage_Format2_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 5, /* 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 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2SM_KPM_IndicationMessage_Format2_1, + 5, /* Elements count */ + &asn_SPC_E2SM_KPM_IndicationMessage_Format2_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationMessage-Format2.h b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationMessage-Format2.h new file mode 100644 index 0000000..785f073 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationMessage-Format2.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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _E2SM_KPM_IndicationMessage_Format2_H_ +#define _E2SM_KPM_IndicationMessage_Format2_H_ + + +#include + +/* Including external dependencies */ +#include "SubscriptionID.h" +#include "CellObjectID.h" +#include "GranularityPeriod.h" +#include "MeasurementCondUEidList.h" +#include "MeasurementData.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2SM-KPM-IndicationMessage-Format2 */ +typedef struct E2SM_KPM_IndicationMessage_Format2 { + SubscriptionID_t subscriptID; + CellObjectID_t *cellObjID; /* OPTIONAL */ + GranularityPeriod_t *granulPeriod; /* OPTIONAL */ + MeasurementCondUEidList_t measCondUEidList; + MeasurementData_t measData; + /* + * 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[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_KPM_IndicationMessage_Format2_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationMessage.c b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationMessage.c new file mode 100644 index 0000000..0b1e701 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationMessage.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "E2SM-KPM-IndicationMessage.h" + +#include "E2SM-KPM-IndicationMessage-Format1.h" +static asn_oer_constraints_t asn_OER_type_E2SM_KPM_IndicationMessage_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_E2SM_KPM_IndicationMessage_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_IndicationMessage_1[] = { + { ATF_POINTER, 0, offsetof(struct E2SM_KPM_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_E2SM_KPM_IndicationMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* indicationMessage-Format1 */ +}; +static asn_CHOICE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_specs_1 = { + sizeof(struct E2SM_KPM_IndicationMessage), + offsetof(struct E2SM_KPM_IndicationMessage, _asn_ctx), + offsetof(struct E2SM_KPM_IndicationMessage, present), + sizeof(((struct E2SM_KPM_IndicationMessage *)0)->present), + asn_MAP_E2SM_KPM_IndicationMessage_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, + 1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage = { + "E2SM-KPM-IndicationMessage", + "E2SM-KPM-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_E2SM_KPM_IndicationMessage_constr_1, &asn_PER_type_E2SM_KPM_IndicationMessage_constr_1, CHOICE_constraint }, + asn_MBR_E2SM_KPM_IndicationMessage_1, + 1, /* Elements count */ + &asn_SPC_E2SM_KPM_IndicationMessage_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationMessage.h b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationMessage.h new file mode 100644 index 0000000..30bd902 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-IndicationMessage.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _E2SM_KPM_IndicationMessage_H_ +#define _E2SM_KPM_IndicationMessage_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum E2SM_KPM_IndicationMessage_PR { + E2SM_KPM_IndicationMessage_PR_NOTHING, /* No components present */ + E2SM_KPM_IndicationMessage_PR_indicationMessage_Format1 + /* Extensions may appear below */ + +} E2SM_KPM_IndicationMessage_PR; + +/* Forward declarations */ +struct E2SM_KPM_IndicationMessage_Format1; + +/* E2SM-KPM-IndicationMessage */ +typedef struct E2SM_KPM_IndicationMessage { + E2SM_KPM_IndicationMessage_PR present; + union E2SM_KPM_IndicationMessage_u { + struct E2SM_KPM_IndicationMessage_Format1 *indicationMessage_Format1; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* 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/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-RANFunctionDefinition.c b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-RANFunctionDefinition.c new file mode 100644 index 0000000..d87fe15 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-RANFunctionDefinition.c @@ -0,0 +1,232 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "E2SM-KPM-RANFunctionDefinition.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 >= 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_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 <= 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_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..63)) */}; +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 */ +}; +static asn_oer_constraints_t asn_OER_type_ric_ReportStyle_List_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..63)) */}; +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 */ +}; +static asn_oer_constraints_t asn_OER_memb_ric_EventTriggerStyle_List_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..63)) */}; +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 */ +}; +static asn_oer_constraints_t asn_OER_memb_ric_ReportStyle_List_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..63)) */}; +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 */ +}; +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, + { 0, 0, 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_RANFunctionDefinition__ric_EventTriggerStyle_List), + offsetof(struct E2SM_KPM_RANFunctionDefinition__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 */ + { &asn_OER_type_ric_EventTriggerStyle_List_constr_3, &asn_PER_type_ric_EventTriggerStyle_List_constr_3, 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, + { 0, 0, 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_RANFunctionDefinition__ric_ReportStyle_List), + offsetof(struct E2SM_KPM_RANFunctionDefinition__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 */ + { &asn_OER_type_ric_ReportStyle_List_constr_5, &asn_PER_type_ric_ReportStyle_List_constr_5, 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_RANFunctionDefinition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_RANFunctionDefinition, 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_POINTER, 2, offsetof(struct E2SM_KPM_RANFunctionDefinition, ric_EventTriggerStyle_List), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ric_EventTriggerStyle_List_3, + 0, + { &asn_OER_memb_ric_EventTriggerStyle_List_constr_3, &asn_PER_memb_ric_EventTriggerStyle_List_constr_3, memb_ric_EventTriggerStyle_List_constraint_1 }, + 0, 0, /* No default value */ + "ric-EventTriggerStyle-List" + }, + { ATF_POINTER, 1, offsetof(struct E2SM_KPM_RANFunctionDefinition, ric_ReportStyle_List), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ric_ReportStyle_List_5, + 0, + { &asn_OER_memb_ric_ReportStyle_List_constr_5, &asn_PER_memb_ric_ReportStyle_List_constr_5, memb_ric_ReportStyle_List_constraint_1 }, + 0, 0, /* No default value */ + "ric-ReportStyle-List" + }, +}; +static const int asn_MAP_E2SM_KPM_RANFunctionDefinition_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_E2SM_KPM_RANFunctionDefinition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_RANFunctionDefinition_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_RANFunctionDefinition_specs_1 = { + sizeof(struct E2SM_KPM_RANFunctionDefinition), + offsetof(struct E2SM_KPM_RANFunctionDefinition, _asn_ctx), + asn_MAP_E2SM_KPM_RANFunctionDefinition_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_E2SM_KPM_RANFunctionDefinition_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_RANFunctionDefinition = { + "E2SM-KPM-RANFunctionDefinition", + "E2SM-KPM-RANFunctionDefinition", + &asn_OP_SEQUENCE, + asn_DEF_E2SM_KPM_RANFunctionDefinition_tags_1, + sizeof(asn_DEF_E2SM_KPM_RANFunctionDefinition_tags_1) + /sizeof(asn_DEF_E2SM_KPM_RANFunctionDefinition_tags_1[0]), /* 1 */ + asn_DEF_E2SM_KPM_RANFunctionDefinition_tags_1, /* Same as above */ + sizeof(asn_DEF_E2SM_KPM_RANFunctionDefinition_tags_1) + /sizeof(asn_DEF_E2SM_KPM_RANFunctionDefinition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2SM_KPM_RANFunctionDefinition_1, + 3, /* Elements count */ + &asn_SPC_E2SM_KPM_RANFunctionDefinition_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-RANFunctionDefinition.h b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-RANFunctionDefinition.h new file mode 100644 index 0000000..51118f8 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-RANFunctionDefinition.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _E2SM_KPM_RANFunctionDefinition_H_ +#define _E2SM_KPM_RANFunctionDefinition_H_ + + +#include + +/* Including external dependencies */ +#include "RANfunction-Name.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RIC_EventTriggerStyle_Item; +struct RIC_ReportStyle_Item; + +/* E2SM-KPM-RANFunctionDefinition */ +typedef struct E2SM_KPM_RANFunctionDefinition { + RANfunction_Name_t ranFunction_Name; + struct E2SM_KPM_RANFunctionDefinition__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_RANFunctionDefinition__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_RANFunctionDefinition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_RANFunctionDefinition; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_KPM_RANFunctionDefinition_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-RANfunction-Description.c b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-RANfunction-Description.c new file mode 100644 index 0000000..72faedb --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-RANfunction-Description.c @@ -0,0 +1,322 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "E2SM-KPM-RANfunction-Description.h" + +#include "RIC-KPMNode-Item.h" +#include "RIC-EventTriggerStyle-Item.h" +#include "RIC-ReportStyle-Item.h" +static int +memb_ric_KPM_Node_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 <= 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 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 >= 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_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 <= 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_KPM_Node_List_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_type_ric_KPM_Node_List_constr_3 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_type_ric_EventTriggerStyle_List_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..63)) */}; +static asn_per_constraints_t asn_PER_type_ric_EventTriggerStyle_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 */ +}; +static asn_oer_constraints_t asn_OER_type_ric_ReportStyle_List_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..63)) */}; +static asn_per_constraints_t asn_PER_type_ric_ReportStyle_List_constr_7 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_KPM_Node_List_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_memb_ric_KPM_Node_List_constr_3 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_ric_EventTriggerStyle_List_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..63)) */}; +static asn_per_constraints_t asn_PER_memb_ric_EventTriggerStyle_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 */ +}; +static asn_oer_constraints_t asn_OER_memb_ric_ReportStyle_List_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..63)) */}; +static asn_per_constraints_t asn_PER_memb_ric_ReportStyle_List_constr_7 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_KPM_Node_List_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RIC_KPMNode_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ric_KPM_Node_List_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ric_KPM_Node_List_specs_3 = { + sizeof(struct E2SM_KPM_RANfunction_Description__ric_KPM_Node_List), + offsetof(struct E2SM_KPM_RANfunction_Description__ric_KPM_Node_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ric_KPM_Node_List_3 = { + "ric-KPM-Node-List", + "ric-KPM-Node-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_ric_KPM_Node_List_tags_3, + sizeof(asn_DEF_ric_KPM_Node_List_tags_3) + /sizeof(asn_DEF_ric_KPM_Node_List_tags_3[0]) - 1, /* 1 */ + asn_DEF_ric_KPM_Node_List_tags_3, /* Same as above */ + sizeof(asn_DEF_ric_KPM_Node_List_tags_3) + /sizeof(asn_DEF_ric_KPM_Node_List_tags_3[0]), /* 2 */ + { &asn_OER_type_ric_KPM_Node_List_constr_3, &asn_PER_type_ric_KPM_Node_List_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ric_KPM_Node_List_3, + 1, /* Single element */ + &asn_SPC_ric_KPM_Node_List_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ric_EventTriggerStyle_List_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RIC_EventTriggerStyle_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ric_EventTriggerStyle_List_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ric_EventTriggerStyle_List_specs_5 = { + 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_5 = { + "ric-EventTriggerStyle-List", + "ric-EventTriggerStyle-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_ric_EventTriggerStyle_List_tags_5, + sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_5) + /sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_5[0]) - 1, /* 1 */ + asn_DEF_ric_EventTriggerStyle_List_tags_5, /* Same as above */ + sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_5) + /sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_5[0]), /* 2 */ + { &asn_OER_type_ric_EventTriggerStyle_List_constr_5, &asn_PER_type_ric_EventTriggerStyle_List_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_ric_EventTriggerStyle_List_5, + 1, /* Single element */ + &asn_SPC_ric_EventTriggerStyle_List_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ric_ReportStyle_List_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RIC_ReportStyle_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ric_ReportStyle_List_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ric_ReportStyle_List_specs_7 = { + 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_7 = { + "ric-ReportStyle-List", + "ric-ReportStyle-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_ric_ReportStyle_List_tags_7, + sizeof(asn_DEF_ric_ReportStyle_List_tags_7) + /sizeof(asn_DEF_ric_ReportStyle_List_tags_7[0]) - 1, /* 1 */ + asn_DEF_ric_ReportStyle_List_tags_7, /* Same as above */ + sizeof(asn_DEF_ric_ReportStyle_List_tags_7) + /sizeof(asn_DEF_ric_ReportStyle_List_tags_7[0]), /* 2 */ + { &asn_OER_type_ric_ReportStyle_List_constr_7, &asn_PER_type_ric_ReportStyle_List_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_ric_ReportStyle_List_7, + 1, /* Single element */ + &asn_SPC_ric_ReportStyle_List_specs_7 /* 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_POINTER, 3, offsetof(struct E2SM_KPM_RANfunction_Description, ric_KPM_Node_List), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ric_KPM_Node_List_3, + 0, + { &asn_OER_memb_ric_KPM_Node_List_constr_3, &asn_PER_memb_ric_KPM_Node_List_constr_3, memb_ric_KPM_Node_List_constraint_1 }, + 0, 0, /* No default value */ + "ric-KPM-Node-List" + }, + { ATF_POINTER, 2, offsetof(struct E2SM_KPM_RANfunction_Description, ric_EventTriggerStyle_List), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ric_EventTriggerStyle_List_5, + 0, + { &asn_OER_memb_ric_EventTriggerStyle_List_constr_5, &asn_PER_memb_ric_EventTriggerStyle_List_constr_5, 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 | (3 << 2)), + 0, + &asn_DEF_ric_ReportStyle_List_7, + 0, + { &asn_OER_memb_ric_ReportStyle_List_constr_7, &asn_PER_memb_ric_ReportStyle_List_constr_7, 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, 3 }; +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-KPM-Node-List */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ric-EventTriggerStyle-List */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 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, + 4, /* Count of tags in the map */ + asn_MAP_E2SM_KPM_RANfunction_Description_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* 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, + 4, /* Elements count */ + &asn_SPC_E2SM_KPM_RANfunction_Description_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-RANfunction-Description.h b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-RANfunction-Description.h new file mode 100644 index 0000000..18d74de --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-KPM-RANfunction-Description.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#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_KPMNode_Item; +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_KPM_Node_List { + A_SEQUENCE_OF(struct RIC_KPMNode_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ric_KPM_Node_List; + 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 diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-ControlHeader-Format1.c b/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-ControlHeader-Format1.c new file mode 100644 index 0000000..e953ec7 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-ControlHeader-Format1.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "E2SM-RC-ControlHeader-Format1.h" + +asn_TYPE_member_t asn_MBR_E2SM_RC_ControlHeader_Format1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlHeader_Format1, ueId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UE_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ueId" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlHeader_Format1, ric_ControlStyle_Type), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RIC_Style_Type, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ric-ControlStyle-Type" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlHeader_Format1, ric_ControlAction_ID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RIC_ControlAction_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ric-ControlAction-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2SM_RC_ControlHeader_Format1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ControlHeader_Format1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ueId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-ControlStyle-Type */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ric-ControlAction-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlHeader_Format1_specs_1 = { + sizeof(struct E2SM_RC_ControlHeader_Format1), + offsetof(struct E2SM_RC_ControlHeader_Format1, _asn_ctx), + asn_MAP_E2SM_RC_ControlHeader_Format1_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_E2SM_RC_ControlHeader_Format1 = { + "E2SM-RC-ControlHeader-Format1", + "E2SM-RC-ControlHeader-Format1", + &asn_OP_SEQUENCE, + asn_DEF_E2SM_RC_ControlHeader_Format1_tags_1, + sizeof(asn_DEF_E2SM_RC_ControlHeader_Format1_tags_1) + /sizeof(asn_DEF_E2SM_RC_ControlHeader_Format1_tags_1[0]), /* 1 */ + asn_DEF_E2SM_RC_ControlHeader_Format1_tags_1, /* Same as above */ + sizeof(asn_DEF_E2SM_RC_ControlHeader_Format1_tags_1) + /sizeof(asn_DEF_E2SM_RC_ControlHeader_Format1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2SM_RC_ControlHeader_Format1_1, + 3, /* Elements count */ + &asn_SPC_E2SM_RC_ControlHeader_Format1_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-ControlHeader-Format1.h b/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-ControlHeader-Format1.h new file mode 100644 index 0000000..641739c --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-ControlHeader-Format1.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _E2SM_RC_ControlHeader_Format1_H_ +#define _E2SM_RC_ControlHeader_Format1_H_ + + +#include + +/* Including external dependencies */ +#include "UE-Identity.h" +#include "RIC-Style-Type.h" +#include "RIC-ControlAction-ID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2SM-RC-ControlHeader-Format1 */ +typedef struct E2SM_RC_ControlHeader_Format1 { + UE_Identity_t ueId; + RIC_Style_Type_t ric_ControlStyle_Type; + RIC_ControlAction_ID_t ric_ControlAction_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2SM_RC_ControlHeader_Format1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlHeader_Format1; +extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlHeader_Format1_specs_1; +extern asn_TYPE_member_t asn_MBR_E2SM_RC_ControlHeader_Format1_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_RC_ControlHeader_Format1_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-ControlHeader.c b/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-ControlHeader.c new file mode 100644 index 0000000..8de1e6c --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-ControlHeader.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "E2SM-RC-ControlHeader.h" + +#include "E2SM-RC-ControlHeader-Format1.h" +static asn_oer_constraints_t asn_OER_type_E2SM_RC_ControlHeader_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_E2SM_RC_ControlHeader_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_RC_ControlHeader_1[] = { + { ATF_POINTER, 0, offsetof(struct E2SM_RC_ControlHeader, choice.controlHeader_Format1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2SM_RC_ControlHeader_Format1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "controlHeader-Format1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ControlHeader_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* controlHeader-Format1 */ +}; +static asn_CHOICE_specifics_t asn_SPC_E2SM_RC_ControlHeader_specs_1 = { + sizeof(struct E2SM_RC_ControlHeader), + offsetof(struct E2SM_RC_ControlHeader, _asn_ctx), + offsetof(struct E2SM_RC_ControlHeader, present), + sizeof(((struct E2SM_RC_ControlHeader *)0)->present), + asn_MAP_E2SM_RC_ControlHeader_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, + 1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlHeader = { + "E2SM-RC-ControlHeader", + "E2SM-RC-ControlHeader", + &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_RC_ControlHeader_constr_1, &asn_PER_type_E2SM_RC_ControlHeader_constr_1, CHOICE_constraint }, + asn_MBR_E2SM_RC_ControlHeader_1, + 1, /* Elements count */ + &asn_SPC_E2SM_RC_ControlHeader_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-ControlHeader.h b/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-ControlHeader.h new file mode 100644 index 0000000..aead9e3 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-ControlHeader.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _E2SM_RC_ControlHeader_H_ +#define _E2SM_RC_ControlHeader_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum E2SM_RC_ControlHeader_PR { + E2SM_RC_ControlHeader_PR_NOTHING, /* No components present */ + E2SM_RC_ControlHeader_PR_controlHeader_Format1 + /* Extensions may appear below */ + +} E2SM_RC_ControlHeader_PR; + +/* Forward declarations */ +struct E2SM_RC_ControlHeader_Format1; + +/* E2SM-RC-ControlHeader */ +typedef struct E2SM_RC_ControlHeader { + E2SM_RC_ControlHeader_PR present; + union E2SM_RC_ControlHeader_u { + struct E2SM_RC_ControlHeader_Format1 *controlHeader_Format1; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2SM_RC_ControlHeader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlHeader; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_RC_ControlHeader_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-ControlMessage-Format1.c b/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-ControlMessage-Format1.c new file mode 100644 index 0000000..7ba5bba --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-ControlMessage-Format1.c @@ -0,0 +1,132 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "E2SM-RC-ControlMessage-Format1.h" + +#include "RANParameter-Item.h" +static int +memb_ranParameters_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 <= 4294967295)) { + /* 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_ranParameters_List_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4294967295)) */}; +static asn_per_constraints_t asn_PER_type_ranParameters_List_constr_2 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_oer_constraints_t asn_OER_memb_ranParameters_List_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4294967295)) */}; +static asn_per_constraints_t asn_PER_memb_ranParameters_List_constr_2 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_ranParameters_List_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RANParameter_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ranParameters_List_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ranParameters_List_specs_2 = { + sizeof(struct E2SM_RC_ControlMessage_Format1__ranParameters_List), + offsetof(struct E2SM_RC_ControlMessage_Format1__ranParameters_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ranParameters_List_2 = { + "ranParameters-List", + "ranParameters-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_ranParameters_List_tags_2, + sizeof(asn_DEF_ranParameters_List_tags_2) + /sizeof(asn_DEF_ranParameters_List_tags_2[0]) - 1, /* 1 */ + asn_DEF_ranParameters_List_tags_2, /* Same as above */ + sizeof(asn_DEF_ranParameters_List_tags_2) + /sizeof(asn_DEF_ranParameters_List_tags_2[0]), /* 2 */ + { &asn_OER_type_ranParameters_List_constr_2, &asn_PER_type_ranParameters_List_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ranParameters_List_2, + 1, /* Single element */ + &asn_SPC_ranParameters_List_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2SM_RC_ControlMessage_Format1_1[] = { + { ATF_POINTER, 1, offsetof(struct E2SM_RC_ControlMessage_Format1, ranParameters_List), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ranParameters_List_2, + 0, + { &asn_OER_memb_ranParameters_List_constr_2, &asn_PER_memb_ranParameters_List_constr_2, memb_ranParameters_List_constraint_1 }, + 0, 0, /* No default value */ + "ranParameters-List" + }, +}; +static const int asn_MAP_E2SM_RC_ControlMessage_Format1_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_E2SM_RC_ControlMessage_Format1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ControlMessage_Format1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ranParameters-List */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlMessage_Format1_specs_1 = { + sizeof(struct E2SM_RC_ControlMessage_Format1), + offsetof(struct E2SM_RC_ControlMessage_Format1, _asn_ctx), + asn_MAP_E2SM_RC_ControlMessage_Format1_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_E2SM_RC_ControlMessage_Format1_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlMessage_Format1 = { + "E2SM-RC-ControlMessage-Format1", + "E2SM-RC-ControlMessage-Format1", + &asn_OP_SEQUENCE, + asn_DEF_E2SM_RC_ControlMessage_Format1_tags_1, + sizeof(asn_DEF_E2SM_RC_ControlMessage_Format1_tags_1) + /sizeof(asn_DEF_E2SM_RC_ControlMessage_Format1_tags_1[0]), /* 1 */ + asn_DEF_E2SM_RC_ControlMessage_Format1_tags_1, /* Same as above */ + sizeof(asn_DEF_E2SM_RC_ControlMessage_Format1_tags_1) + /sizeof(asn_DEF_E2SM_RC_ControlMessage_Format1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2SM_RC_ControlMessage_Format1_1, + 1, /* Elements count */ + &asn_SPC_E2SM_RC_ControlMessage_Format1_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-ControlMessage-Format1.h b/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-ControlMessage-Format1.h new file mode 100644 index 0000000..ba58297 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-ControlMessage-Format1.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _E2SM_RC_ControlMessage_Format1_H_ +#define _E2SM_RC_ControlMessage_Format1_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RANParameter_Item; + +/* E2SM-RC-ControlMessage-Format1 */ +typedef struct E2SM_RC_ControlMessage_Format1 { + struct E2SM_RC_ControlMessage_Format1__ranParameters_List { + A_SEQUENCE_OF(struct RANParameter_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ranParameters_List; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2SM_RC_ControlMessage_Format1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlMessage_Format1; +extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlMessage_Format1_specs_1; +extern asn_TYPE_member_t asn_MBR_E2SM_RC_ControlMessage_Format1_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_RC_ControlMessage_Format1_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-ControlMessage.c b/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-ControlMessage.c new file mode 100644 index 0000000..15a6afe --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-ControlMessage.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "E2SM-RC-ControlMessage.h" + +#include "E2SM-RC-ControlMessage-Format1.h" +static asn_oer_constraints_t asn_OER_type_E2SM_RC_ControlMessage_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_E2SM_RC_ControlMessage_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_RC_ControlMessage_1[] = { + { ATF_POINTER, 0, offsetof(struct E2SM_RC_ControlMessage, choice.controlMessage_Format1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2SM_RC_ControlMessage_Format1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "controlMessage-Format1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ControlMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* controlMessage-Format1 */ +}; +static asn_CHOICE_specifics_t asn_SPC_E2SM_RC_ControlMessage_specs_1 = { + sizeof(struct E2SM_RC_ControlMessage), + offsetof(struct E2SM_RC_ControlMessage, _asn_ctx), + offsetof(struct E2SM_RC_ControlMessage, present), + sizeof(((struct E2SM_RC_ControlMessage *)0)->present), + asn_MAP_E2SM_RC_ControlMessage_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, + 1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlMessage = { + "E2SM-RC-ControlMessage", + "E2SM-RC-ControlMessage", + &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_RC_ControlMessage_constr_1, &asn_PER_type_E2SM_RC_ControlMessage_constr_1, CHOICE_constraint }, + asn_MBR_E2SM_RC_ControlMessage_1, + 1, /* Elements count */ + &asn_SPC_E2SM_RC_ControlMessage_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-ControlMessage.h b/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-ControlMessage.h new file mode 100644 index 0000000..9e3d76a --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-ControlMessage.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _E2SM_RC_ControlMessage_H_ +#define _E2SM_RC_ControlMessage_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum E2SM_RC_ControlMessage_PR { + E2SM_RC_ControlMessage_PR_NOTHING, /* No components present */ + E2SM_RC_ControlMessage_PR_controlMessage_Format1 + /* Extensions may appear below */ + +} E2SM_RC_ControlMessage_PR; + +/* Forward declarations */ +struct E2SM_RC_ControlMessage_Format1; + +/* E2SM-RC-ControlMessage */ +typedef struct E2SM_RC_ControlMessage { + E2SM_RC_ControlMessage_PR present; + union E2SM_RC_ControlMessage_u { + struct E2SM_RC_ControlMessage_Format1 *controlMessage_Format1; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2SM_RC_ControlMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlMessage; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_RC_ControlMessage_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-RANFunctionDefinition.c b/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-RANFunctionDefinition.c new file mode 100644 index 0000000..e3ff8fe --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-RANFunctionDefinition.c @@ -0,0 +1,232 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "E2SM-RC-RANFunctionDefinition.h" + +#include "RIC-EventTriggerStyle-Item.h" +#include "RIC-ControlStyle-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 >= 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_ControlStyle_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 <= 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_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..63)) */}; +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 */ +}; +static asn_oer_constraints_t asn_OER_type_ric_ControlStyle_List_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..63)) */}; +static asn_per_constraints_t asn_PER_type_ric_ControlStyle_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 */ +}; +static asn_oer_constraints_t asn_OER_memb_ric_EventTriggerStyle_List_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..63)) */}; +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 */ +}; +static asn_oer_constraints_t asn_OER_memb_ric_ControlStyle_List_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..63)) */}; +static asn_per_constraints_t asn_PER_memb_ric_ControlStyle_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 */ +}; +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, + { 0, 0, 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_RC_RANFunctionDefinition__ric_EventTriggerStyle_List), + offsetof(struct E2SM_RC_RANFunctionDefinition__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 */ + { &asn_OER_type_ric_EventTriggerStyle_List_constr_3, &asn_PER_type_ric_EventTriggerStyle_List_constr_3, 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_ControlStyle_List_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RIC_ControlStyle_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ric_ControlStyle_List_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ric_ControlStyle_List_specs_5 = { + sizeof(struct E2SM_RC_RANFunctionDefinition__ric_ControlStyle_List), + offsetof(struct E2SM_RC_RANFunctionDefinition__ric_ControlStyle_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ric_ControlStyle_List_5 = { + "ric-ControlStyle-List", + "ric-ControlStyle-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_ric_ControlStyle_List_tags_5, + sizeof(asn_DEF_ric_ControlStyle_List_tags_5) + /sizeof(asn_DEF_ric_ControlStyle_List_tags_5[0]) - 1, /* 1 */ + asn_DEF_ric_ControlStyle_List_tags_5, /* Same as above */ + sizeof(asn_DEF_ric_ControlStyle_List_tags_5) + /sizeof(asn_DEF_ric_ControlStyle_List_tags_5[0]), /* 2 */ + { &asn_OER_type_ric_ControlStyle_List_constr_5, &asn_PER_type_ric_ControlStyle_List_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_ric_ControlStyle_List_5, + 1, /* Single element */ + &asn_SPC_ric_ControlStyle_List_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_E2SM_RC_RANFunctionDefinition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_RANFunctionDefinition, 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_POINTER, 2, offsetof(struct E2SM_RC_RANFunctionDefinition, ric_EventTriggerStyle_List), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ric_EventTriggerStyle_List_3, + 0, + { &asn_OER_memb_ric_EventTriggerStyle_List_constr_3, &asn_PER_memb_ric_EventTriggerStyle_List_constr_3, memb_ric_EventTriggerStyle_List_constraint_1 }, + 0, 0, /* No default value */ + "ric-EventTriggerStyle-List" + }, + { ATF_POINTER, 1, offsetof(struct E2SM_RC_RANFunctionDefinition, ric_ControlStyle_List), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ric_ControlStyle_List_5, + 0, + { &asn_OER_memb_ric_ControlStyle_List_constr_5, &asn_PER_memb_ric_ControlStyle_List_constr_5, memb_ric_ControlStyle_List_constraint_1 }, + 0, 0, /* No default value */ + "ric-ControlStyle-List" + }, +}; +static const int asn_MAP_E2SM_RC_RANFunctionDefinition_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_E2SM_RC_RANFunctionDefinition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_RANFunctionDefinition_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-ControlStyle-List */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_RANFunctionDefinition_specs_1 = { + sizeof(struct E2SM_RC_RANFunctionDefinition), + offsetof(struct E2SM_RC_RANFunctionDefinition, _asn_ctx), + asn_MAP_E2SM_RC_RANFunctionDefinition_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_E2SM_RC_RANFunctionDefinition_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2SM_RC_RANFunctionDefinition = { + "E2SM-RC-RANFunctionDefinition", + "E2SM-RC-RANFunctionDefinition", + &asn_OP_SEQUENCE, + asn_DEF_E2SM_RC_RANFunctionDefinition_tags_1, + sizeof(asn_DEF_E2SM_RC_RANFunctionDefinition_tags_1) + /sizeof(asn_DEF_E2SM_RC_RANFunctionDefinition_tags_1[0]), /* 1 */ + asn_DEF_E2SM_RC_RANFunctionDefinition_tags_1, /* Same as above */ + sizeof(asn_DEF_E2SM_RC_RANFunctionDefinition_tags_1) + /sizeof(asn_DEF_E2SM_RC_RANFunctionDefinition_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2SM_RC_RANFunctionDefinition_1, + 3, /* Elements count */ + &asn_SPC_E2SM_RC_RANFunctionDefinition_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-RANFunctionDefinition.h b/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-RANFunctionDefinition.h new file mode 100644 index 0000000..112fc9e --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/E2SM-RC-RANFunctionDefinition.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _E2SM_RC_RANFunctionDefinition_H_ +#define _E2SM_RC_RANFunctionDefinition_H_ + + +#include + +/* Including external dependencies */ +#include "RANfunction-Name.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RIC_EventTriggerStyle_Item; +struct RIC_ControlStyle_Item; + +/* E2SM-RC-RANFunctionDefinition */ +typedef struct E2SM_RC_RANFunctionDefinition { + RANfunction_Name_t ranFunction_Name; + struct E2SM_RC_RANFunctionDefinition__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_RC_RANFunctionDefinition__ric_ControlStyle_List { + A_SEQUENCE_OF(struct RIC_ControlStyle_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ric_ControlStyle_List; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2SM_RC_RANFunctionDefinition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_RANFunctionDefinition; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2SM_RC_RANFunctionDefinition_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/E2setupFailure.c b/setup/xapp-sm-connector/asn1c_defs/E2setupFailure.c index 0fc15cd..1b0bd35 100644 --- a/setup/xapp-sm-connector/asn1c_defs/E2setupFailure.c +++ b/setup/xapp-sm-connector/asn1c_defs/E2setupFailure.c @@ -1,17 +1,17 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "E2setupFailure.h" -asn_TYPE_member_t asn_MBR_E2setupFailure_1[] = { +static 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_1412P13, + &asn_DEF_ProtocolIE_Container_87P13, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -24,7 +24,7 @@ static const ber_tlv_tag_t asn_DEF_E2setupFailure_tags_1[] = { 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 = { +static asn_SEQUENCE_specifics_t asn_SPC_E2setupFailure_specs_1 = { sizeof(struct E2setupFailure), offsetof(struct E2setupFailure, _asn_ctx), asn_MAP_E2setupFailure_tag2el_1, diff --git a/setup/xapp-sm-connector/asn1c_defs/E2setupFailure.h b/setup/xapp-sm-connector/asn1c_defs/E2setupFailure.h index c0f0a80..9bfcf0b 100644 --- a/setup/xapp-sm-connector/asn1c_defs/E2setupFailure.h +++ b/setup/xapp-sm-connector/asn1c_defs/E2setupFailure.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _E2setupFailure_H_ @@ -21,7 +21,7 @@ extern "C" { /* E2setupFailure */ typedef struct E2setupFailure { - ProtocolIE_Container_1412P13_t protocolIEs; + ProtocolIE_Container_87P13_t protocolIEs; /* * This type is extensible, * possible extensions are below. @@ -33,8 +33,6 @@ typedef struct E2setupFailure { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/E2setupRequest.c b/setup/xapp-sm-connector/asn1c_defs/E2setupRequest.c index 0f5a3a3..92fd09b 100644 --- a/setup/xapp-sm-connector/asn1c_defs/E2setupRequest.c +++ b/setup/xapp-sm-connector/asn1c_defs/E2setupRequest.c @@ -1,17 +1,17 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "E2setupRequest.h" -asn_TYPE_member_t asn_MBR_E2setupRequest_1[] = { +static 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_1412P11, + &asn_DEF_ProtocolIE_Container_87P11, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -24,7 +24,7 @@ static const ber_tlv_tag_t asn_DEF_E2setupRequest_tags_1[] = { 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 = { +static asn_SEQUENCE_specifics_t asn_SPC_E2setupRequest_specs_1 = { sizeof(struct E2setupRequest), offsetof(struct E2setupRequest, _asn_ctx), asn_MAP_E2setupRequest_tag2el_1, diff --git a/setup/xapp-sm-connector/asn1c_defs/E2setupRequest.h b/setup/xapp-sm-connector/asn1c_defs/E2setupRequest.h index 60ac19d..c70a6a5 100644 --- a/setup/xapp-sm-connector/asn1c_defs/E2setupRequest.h +++ b/setup/xapp-sm-connector/asn1c_defs/E2setupRequest.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _E2setupRequest_H_ @@ -21,7 +21,7 @@ extern "C" { /* E2setupRequest */ typedef struct E2setupRequest { - ProtocolIE_Container_1412P11_t protocolIEs; + ProtocolIE_Container_87P11_t protocolIEs; /* * This type is extensible, * possible extensions are below. @@ -33,8 +33,6 @@ typedef struct E2setupRequest { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/E2setupResponse.c b/setup/xapp-sm-connector/asn1c_defs/E2setupResponse.c index 04c0ea6..b08bc06 100644 --- a/setup/xapp-sm-connector/asn1c_defs/E2setupResponse.c +++ b/setup/xapp-sm-connector/asn1c_defs/E2setupResponse.c @@ -1,17 +1,17 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "E2setupResponse.h" -asn_TYPE_member_t asn_MBR_E2setupResponse_1[] = { +static 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_1412P12, + &asn_DEF_ProtocolIE_Container_87P12, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -24,7 +24,7 @@ static const ber_tlv_tag_t asn_DEF_E2setupResponse_tags_1[] = { 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 = { +static asn_SEQUENCE_specifics_t asn_SPC_E2setupResponse_specs_1 = { sizeof(struct E2setupResponse), offsetof(struct E2setupResponse, _asn_ctx), asn_MAP_E2setupResponse_tag2el_1, diff --git a/setup/xapp-sm-connector/asn1c_defs/E2setupResponse.h b/setup/xapp-sm-connector/asn1c_defs/E2setupResponse.h index 3feb668..f8920af 100644 --- a/setup/xapp-sm-connector/asn1c_defs/E2setupResponse.h +++ b/setup/xapp-sm-connector/asn1c_defs/E2setupResponse.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _E2setupResponse_H_ @@ -21,7 +21,7 @@ extern "C" { /* E2setupResponse */ typedef struct E2setupResponse { - ProtocolIE_Container_1412P12_t protocolIEs; + ProtocolIE_Container_87P12_t protocolIEs; /* * This type is extensible, * possible extensions are below. @@ -33,8 +33,6 @@ typedef struct E2setupResponse { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/ENB-ID-Choice.c b/setup/xapp-sm-connector/asn1c_defs/ENB-ID-Choice.c index 014dbeb..b95e5eb 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ENB-ID-Choice.c +++ b/setup/xapp-sm-connector/asn1c_defs/ENB-ID-Choice.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "ENB-ID-Choice.h" @@ -100,21 +100,33 @@ memb_enb_ID_longmacro_constraint_1(const asn_TYPE_descriptor_t *td, const void * } } +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 }, @@ -126,7 +138,7 @@ asn_TYPE_member_t asn_MBR_ENB_ID_Choice_1[] = { -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 }, + { &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" }, @@ -135,7 +147,7 @@ asn_TYPE_member_t asn_MBR_ENB_ID_Choice_1[] = { -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 }, + { &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" }, @@ -144,7 +156,7 @@ asn_TYPE_member_t asn_MBR_ENB_ID_Choice_1[] = { -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 }, + { &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" }, @@ -172,7 +184,7 @@ asn_TYPE_descriptor_t asn_DEF_ENB_ID_Choice = { 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_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/setup/xapp-sm-connector/asn1c_defs/ENB-ID-Choice.h b/setup/xapp-sm-connector/asn1c_defs/ENB-ID-Choice.h index 0fd9d31..0ccc3ee 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ENB-ID-Choice.h +++ b/setup/xapp-sm-connector/asn1c_defs/ENB-ID-Choice.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _ENB_ID_Choice_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/ENB-ID.c b/setup/xapp-sm-connector/asn1c_defs/ENB-ID.c index f1b3faf..96b8cb5 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ENB-ID.c +++ b/setup/xapp-sm-connector/asn1c_defs/ENB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "ENB-ID.h" @@ -131,26 +131,41 @@ memb_long_Macro_eNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void } } +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 }, @@ -162,7 +177,7 @@ asn_TYPE_member_t asn_MBR_ENB_ID_1[] = { -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 }, + { &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" }, @@ -171,7 +186,7 @@ asn_TYPE_member_t asn_MBR_ENB_ID_1[] = { -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 }, + { &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" }, @@ -180,7 +195,7 @@ asn_TYPE_member_t asn_MBR_ENB_ID_1[] = { -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 }, + { &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" }, @@ -189,7 +204,7 @@ asn_TYPE_member_t asn_MBR_ENB_ID_1[] = { -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 }, + { &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" }, @@ -218,7 +233,7 @@ asn_TYPE_descriptor_t asn_DEF_ENB_ID = { 0, /* No effective tags (count) */ 0, /* No tags (pointer) */ 0, /* No tags (count) */ - { 0, &asn_PER_type_ENB_ID_constr_1, CHOICE_constraint }, + { &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/setup/xapp-sm-connector/asn1c_defs/ENB-ID.h b/setup/xapp-sm-connector/asn1c_defs/ENB-ID.h index 3f7d554..500a7d2 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ENB-ID.h +++ b/setup/xapp-sm-connector/asn1c_defs/ENB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _ENB_ID_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/ENGNB-ID.c b/setup/xapp-sm-connector/asn1c_defs/ENGNB-ID.c index 635de20..4bfdbd8 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ENGNB-ID.c +++ b/setup/xapp-sm-connector/asn1c_defs/ENGNB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "ENGNB-ID.h" @@ -38,11 +38,17 @@ memb_gNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, } } +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 }, @@ -54,7 +60,7 @@ asn_TYPE_member_t asn_MBR_ENGNB_ID_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, - { 0, &asn_PER_memb_gNB_ID_constr_2, memb_gNB_ID_constraint_1 }, + { &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" }, @@ -80,7 +86,7 @@ asn_TYPE_descriptor_t asn_DEF_ENGNB_ID = { 0, /* No effective tags (count) */ 0, /* No tags (pointer) */ 0, /* No tags (count) */ - { 0, &asn_PER_type_ENGNB_ID_constr_1, CHOICE_constraint }, + { &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/setup/xapp-sm-connector/asn1c_defs/ENGNB-ID.h b/setup/xapp-sm-connector/asn1c_defs/ENGNB-ID.h index fae9914..58a8c7c 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ENGNB-ID.h +++ b/setup/xapp-sm-connector/asn1c_defs/ENGNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _ENGNB_ID_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/EPC-CUUP-PM-Format.c b/setup/xapp-sm-connector/asn1c_defs/EPC-CUUP-PM-Format.c new file mode 100644 index 0000000..5fb414a --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/EPC-CUUP-PM-Format.c @@ -0,0 +1,130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "EPC-CUUP-PM-Format.h" + +#include "PerQCIReportListItemFormat.h" +static int +memb_perQCIReportList_cuup_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_cuup_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..256)) */}; +static asn_per_constraints_t asn_PER_type_perQCIReportList_cuup_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_cuup_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..256)) */}; +static asn_per_constraints_t asn_PER_memb_perQCIReportList_cuup_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_cuup_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_cuup_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_perQCIReportList_cuup_specs_2 = { + sizeof(struct EPC_CUUP_PM_Format__perQCIReportList_cuup), + offsetof(struct EPC_CUUP_PM_Format__perQCIReportList_cuup, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_perQCIReportList_cuup_2 = { + "perQCIReportList-cuup", + "perQCIReportList-cuup", + &asn_OP_SEQUENCE_OF, + asn_DEF_perQCIReportList_cuup_tags_2, + sizeof(asn_DEF_perQCIReportList_cuup_tags_2) + /sizeof(asn_DEF_perQCIReportList_cuup_tags_2[0]) - 1, /* 1 */ + asn_DEF_perQCIReportList_cuup_tags_2, /* Same as above */ + sizeof(asn_DEF_perQCIReportList_cuup_tags_2) + /sizeof(asn_DEF_perQCIReportList_cuup_tags_2[0]), /* 2 */ + { &asn_OER_type_perQCIReportList_cuup_constr_2, &asn_PER_type_perQCIReportList_cuup_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_perQCIReportList_cuup_2, + 1, /* Single element */ + &asn_SPC_perQCIReportList_cuup_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_cuup), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_perQCIReportList_cuup_2, + 0, + { &asn_OER_memb_perQCIReportList_cuup_constr_2, &asn_PER_memb_perQCIReportList_cuup_constr_2, memb_perQCIReportList_cuup_constraint_1 }, + 0, 0, /* No default value */ + "perQCIReportList-cuup" + }, +}; +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-cuup */ +}; +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/setup/xapp-sm-connector/asn1c_defs/EPC-CUUP-PM-Format.h b/setup/xapp-sm-connector/asn1c_defs/EPC-CUUP-PM-Format.h new file mode 100644 index 0000000..0846bdc --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/EPC-CUUP-PM-Format.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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_cuup { + A_SEQUENCE_OF(struct PerQCIReportListItemFormat) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } perQCIReportList_cuup; + /* + * 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 + +#endif /* _EPC_CUUP_PM_Format_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/EPC-DU-PM-Container.c b/setup/xapp-sm-connector/asn1c_defs/EPC-DU-PM-Container.c new file mode 100644 index 0000000..801080e --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/EPC-DU-PM-Container.c @@ -0,0 +1,130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "EPC-DU-PM-Container.h" + +#include "PerQCIReportListItem.h" +static int +memb_perQCIReportList_du_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_du_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..256)) */}; +static asn_per_constraints_t asn_PER_type_perQCIReportList_du_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_du_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..256)) */}; +static asn_per_constraints_t asn_PER_memb_perQCIReportList_du_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_du_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_du_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_perQCIReportList_du_specs_2 = { + sizeof(struct EPC_DU_PM_Container__perQCIReportList_du), + offsetof(struct EPC_DU_PM_Container__perQCIReportList_du, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_perQCIReportList_du_2 = { + "perQCIReportList-du", + "perQCIReportList-du", + &asn_OP_SEQUENCE_OF, + asn_DEF_perQCIReportList_du_tags_2, + sizeof(asn_DEF_perQCIReportList_du_tags_2) + /sizeof(asn_DEF_perQCIReportList_du_tags_2[0]) - 1, /* 1 */ + asn_DEF_perQCIReportList_du_tags_2, /* Same as above */ + sizeof(asn_DEF_perQCIReportList_du_tags_2) + /sizeof(asn_DEF_perQCIReportList_du_tags_2[0]), /* 2 */ + { &asn_OER_type_perQCIReportList_du_constr_2, &asn_PER_type_perQCIReportList_du_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_perQCIReportList_du_2, + 1, /* Single element */ + &asn_SPC_perQCIReportList_du_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_du), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_perQCIReportList_du_2, + 0, + { &asn_OER_memb_perQCIReportList_du_constr_2, &asn_PER_memb_perQCIReportList_du_constr_2, memb_perQCIReportList_du_constraint_1 }, + 0, 0, /* No default value */ + "perQCIReportList-du" + }, +}; +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-du */ +}; +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/setup/xapp-sm-connector/asn1c_defs/EPC-DU-PM-Container.h b/setup/xapp-sm-connector/asn1c_defs/EPC-DU-PM-Container.h new file mode 100644 index 0000000..354e3fd --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/EPC-DU-PM-Container.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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_du { + A_SEQUENCE_OF(struct PerQCIReportListItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } perQCIReportList_du; + /* + * 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 + +#endif /* _EPC_DU_PM_Container_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/EUTRACGI.c b/setup/xapp-sm-connector/asn1c_defs/EUTRACGI.c new file mode 100644 index 0000000..d6a563b --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/EUTRACGI.c @@ -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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "EUTRACGI.h" + +asn_TYPE_member_t asn_MBR_EUTRACGI_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRACGI, 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 EUTRACGI, eUTRACellIdentity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRACellIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRACellIdentity" + }, +}; +static const ber_tlv_tag_t asn_DEF_EUTRACGI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EUTRACGI_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eUTRACellIdentity */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EUTRACGI_specs_1 = { + sizeof(struct EUTRACGI), + offsetof(struct EUTRACGI, _asn_ctx), + asn_MAP_EUTRACGI_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_EUTRACGI = { + "EUTRACGI", + "EUTRACGI", + &asn_OP_SEQUENCE, + asn_DEF_EUTRACGI_tags_1, + sizeof(asn_DEF_EUTRACGI_tags_1) + /sizeof(asn_DEF_EUTRACGI_tags_1[0]), /* 1 */ + asn_DEF_EUTRACGI_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRACGI_tags_1) + /sizeof(asn_DEF_EUTRACGI_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRACGI_1, + 2, /* Elements count */ + &asn_SPC_EUTRACGI_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/EUTRACGI.h b/setup/xapp-sm-connector/asn1c_defs/EUTRACGI.h new file mode 100644 index 0000000..af31896 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/EUTRACGI.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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _EUTRACGI_H_ +#define _EUTRACGI_H_ + + +#include + +/* Including external dependencies */ +#include "PLMN-Identity.h" +#include "EUTRACellIdentity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EUTRACGI */ +typedef struct EUTRACGI { + PLMN_Identity_t pLMN_Identity; + EUTRACellIdentity_t eUTRACellIdentity; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRACGI_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRACGI; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRACGI_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRACGI_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRACGI_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/EUTRACellIdentity.c b/setup/xapp-sm-connector/asn1c_defs/EUTRACellIdentity.c new file mode 100644 index 0000000..743ffc9 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/EUTRACellIdentity.c @@ -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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#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 == 28)) { + /* 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_EUTRACellIdentity_constr_1 CC_NOTUSED = { + { 0, 0 }, + 28 /* (SIZE(28..28)) */}; +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 */ +}; +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 */ + { &asn_OER_type_EUTRACellIdentity_constr_1, &asn_PER_type_EUTRACellIdentity_constr_1, EUTRACellIdentity_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/EUTRACellIdentity.h b/setup/xapp-sm-connector/asn1c_defs/EUTRACellIdentity.h new file mode 100644 index 0000000..2e542e6 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/EUTRACellIdentity.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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _EUTRACellIdentity_H_ +#define _EUTRACellIdentity_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +oer_type_decoder_f EUTRACellIdentity_decode_oer; +oer_type_encoder_f EUTRACellIdentity_encode_oer; +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 diff --git a/setup/xapp-sm-connector/asn1c_defs/ErrorIndication.c b/setup/xapp-sm-connector/asn1c_defs/ErrorIndication.c index 5225be3..a47c6e0 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ErrorIndication.c +++ b/setup/xapp-sm-connector/asn1c_defs/ErrorIndication.c @@ -1,17 +1,17 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "ErrorIndication.h" -asn_TYPE_member_t asn_MBR_ErrorIndication_1[] = { +static 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_1412P10, + &asn_DEF_ProtocolIE_Container_87P10, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -24,7 +24,7 @@ static const ber_tlv_tag_t asn_DEF_ErrorIndication_tags_1[] = { 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 = { +static asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_specs_1 = { sizeof(struct ErrorIndication), offsetof(struct ErrorIndication, _asn_ctx), asn_MAP_ErrorIndication_tag2el_1, diff --git a/setup/xapp-sm-connector/asn1c_defs/ErrorIndication.h b/setup/xapp-sm-connector/asn1c_defs/ErrorIndication.h index a3db103..88e402e 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ErrorIndication.h +++ b/setup/xapp-sm-connector/asn1c_defs/ErrorIndication.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _ErrorIndication_H_ @@ -21,7 +21,7 @@ extern "C" { /* ErrorIndication */ typedef struct ErrorIndication { - ProtocolIE_Container_1412P10_t protocolIEs; + ProtocolIE_Container_87P10_t protocolIEs; /* * This type is extensible, * possible extensions are below. @@ -33,8 +33,6 @@ typedef struct ErrorIndication { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/FGC-CUUP-PM-Format.c b/setup/xapp-sm-connector/asn1c_defs/FGC-CUUP-PM-Format.c new file mode 100644 index 0000000..634e092 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/FGC-CUUP-PM-Format.c @@ -0,0 +1,130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "FGC-CUUP-PM-Format.h" + +#include "SliceToReportListItem.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/setup/xapp-sm-connector/asn1c_defs/FGC-CUUP-PM-Format.h b/setup/xapp-sm-connector/asn1c_defs/FGC-CUUP-PM-Format.h new file mode 100644 index 0000000..73b91e8 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/FGC-CUUP-PM-Format.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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 + +#endif /* _FGC_CUUP_PM_Format_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/FGC-DU-PM-Container.c b/setup/xapp-sm-connector/asn1c_defs/FGC-DU-PM-Container.c new file mode 100644 index 0000000..859867f --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/FGC-DU-PM-Container.c @@ -0,0 +1,130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "FGC-DU-PM-Container.h" + +#include "SlicePerPlmnPerCellListItem.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/setup/xapp-sm-connector/asn1c_defs/FGC-DU-PM-Container.h b/setup/xapp-sm-connector/asn1c_defs/FGC-DU-PM-Container.h new file mode 100644 index 0000000..0d7c224 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/FGC-DU-PM-Container.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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 + +#endif /* _FGC_DU_PM_Container_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/FQIPERSlicesPerPlmnListItem.c b/setup/xapp-sm-connector/asn1c_defs/FQIPERSlicesPerPlmnListItem.c new file mode 100644 index 0000000..e875ee2 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/FQIPERSlicesPerPlmnListItem.c @@ -0,0 +1,150 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "FQIPERSlicesPerPlmnListItem.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_FQIPERSlicesPerPlmnListItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct FQIPERSlicesPerPlmnListItem, fiveQI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FiveQI, + 0, + { 0, 0, 0 }, + 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/setup/xapp-sm-connector/asn1c_defs/FQIPERSlicesPerPlmnListItem.h b/setup/xapp-sm-connector/asn1c_defs/FQIPERSlicesPerPlmnListItem.h new file mode 100644 index 0000000..93cbd5f --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/FQIPERSlicesPerPlmnListItem.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _FQIPERSlicesPerPlmnListItem_H_ +#define _FQIPERSlicesPerPlmnListItem_H_ + + +#include + +/* Including external dependencies */ +#include "FiveQI.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FQIPERSlicesPerPlmnListItem */ +typedef struct FQIPERSlicesPerPlmnListItem { + FiveQI_t 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/setup/xapp-sm-connector/asn1c_defs/FQIPERSlicesPerPlmnPerCellListItem.c b/setup/xapp-sm-connector/asn1c_defs/FQIPERSlicesPerPlmnPerCellListItem.c new file mode 100644 index 0000000..d69f8a1 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/FQIPERSlicesPerPlmnPerCellListItem.c @@ -0,0 +1,138 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "FQIPERSlicesPerPlmnPerCellListItem.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 <= 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_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_FiveQI, + 0, + { 0, 0, 0 }, + 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/setup/xapp-sm-connector/asn1c_defs/FQIPERSlicesPerPlmnPerCellListItem.h b/setup/xapp-sm-connector/asn1c_defs/FQIPERSlicesPerPlmnPerCellListItem.h new file mode 100644 index 0000000..c805b5f --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/FQIPERSlicesPerPlmnPerCellListItem.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _FQIPERSlicesPerPlmnPerCellListItem_H_ +#define _FQIPERSlicesPerPlmnPerCellListItem_H_ + + +#include + +/* Including external dependencies */ +#include "FiveQI.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FQIPERSlicesPerPlmnPerCellListItem */ +typedef struct FQIPERSlicesPerPlmnPerCellListItem { + FiveQI_t 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/setup/xapp-sm-connector/asn1c_defs/FiveQI.c b/setup/xapp-sm-connector/asn1c_defs/FiveQI.c new file mode 100644 index 0000000..15d32c9 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/FiveQI.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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 >= 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_FiveQI_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +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 */ +}; +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 */ + { &asn_OER_type_FiveQI_constr_1, &asn_PER_type_FiveQI_constr_1, FiveQI_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/FiveQI.h b/setup/xapp-sm-connector/asn1c_defs/FiveQI.h new file mode 100644 index 0000000..79e7340 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/FiveQI.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _FiveQI_H_ +#define _FiveQI_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +oer_type_decoder_f FiveQI_decode_oer; +oer_type_encoder_f FiveQI_encode_oer; +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 diff --git a/setup/xapp-sm-connector/asn1c_defs/GNB-CU-UP-ID.c b/setup/xapp-sm-connector/asn1c_defs/GNB-CU-UP-ID.c index 7fccd5d..8f960e2 100644 --- a/setup/xapp-sm-connector/asn1c_defs/GNB-CU-UP-ID.c +++ b/setup/xapp-sm-connector/asn1c_defs/GNB-CU-UP-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "GNB-CU-UP-ID.h" @@ -42,6 +42,9 @@ GNB_CU_UP_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, * This type is implemented using INTEGER, * so here we adjust the DEF accordingly. */ +static asn_oer_constraints_t asn_OER_type_GNB_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 }, @@ -60,7 +63,7 @@ asn_TYPE_descriptor_t asn_DEF_GNB_CU_UP_ID = { 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 }, + { &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/setup/xapp-sm-connector/asn1c_defs/GNB-CU-UP-ID.h b/setup/xapp-sm-connector/asn1c_defs/GNB-CU-UP-ID.h index 231a64e..d7df7d8 100644 --- a/setup/xapp-sm-connector/asn1c_defs/GNB-CU-UP-ID.h +++ b/setup/xapp-sm-connector/asn1c_defs/GNB-CU-UP-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _GNB_CU_UP_ID_H_ @@ -31,6 +31,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/GNB-DU-ID.c b/setup/xapp-sm-connector/asn1c_defs/GNB-DU-ID.c index 76534e9..6c0940d 100644 --- a/setup/xapp-sm-connector/asn1c_defs/GNB-DU-ID.c +++ b/setup/xapp-sm-connector/asn1c_defs/GNB-DU-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "GNB-DU-ID.h" @@ -42,6 +42,9 @@ GNB_DU_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, * This type is implemented using INTEGER, * so here we adjust the DEF accordingly. */ +static asn_oer_constraints_t asn_OER_type_GNB_DU_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 }, @@ -60,7 +63,7 @@ asn_TYPE_descriptor_t asn_DEF_GNB_DU_ID = { 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 }, + { &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/setup/xapp-sm-connector/asn1c_defs/GNB-DU-ID.h b/setup/xapp-sm-connector/asn1c_defs/GNB-DU-ID.h index 29b510c..b0889fe 100644 --- a/setup/xapp-sm-connector/asn1c_defs/GNB-DU-ID.h +++ b/setup/xapp-sm-connector/asn1c_defs/GNB-DU-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _GNB_DU_ID_H_ @@ -31,6 +31,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/GNB-ID-Choice.c b/setup/xapp-sm-connector/asn1c_defs/GNB-ID-Choice.c index 538454e..085a942 100644 --- a/setup/xapp-sm-connector/asn1c_defs/GNB-ID-Choice.c +++ b/setup/xapp-sm-connector/asn1c_defs/GNB-ID-Choice.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "GNB-ID-Choice.h" @@ -38,11 +38,17 @@ memb_gnb_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, } } +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 }, @@ -54,7 +60,7 @@ asn_TYPE_member_t asn_MBR_GNB_ID_Choice_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, - { 0, &asn_PER_memb_gnb_ID_constr_2, memb_gnb_ID_constraint_1 }, + { &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" }, @@ -80,7 +86,7 @@ asn_TYPE_descriptor_t asn_DEF_GNB_ID_Choice = { 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_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/setup/xapp-sm-connector/asn1c_defs/GNB-ID-Choice.h b/setup/xapp-sm-connector/asn1c_defs/GNB-ID-Choice.h index c51b572..ec65f85 100644 --- a/setup/xapp-sm-connector/asn1c_defs/GNB-ID-Choice.h +++ b/setup/xapp-sm-connector/asn1c_defs/GNB-ID-Choice.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _GNB_ID_Choice_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-ID.c b/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-ID.c index a0c6820..13a8295 100644 --- a/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-ID.c +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "GlobalE2node-ID.h" @@ -11,12 +11,15 @@ #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 = { +static asn_oer_constraints_t asn_OER_type_GlobalE2node_ID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +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[] = { +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 */ @@ -60,7 +63,7 @@ static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_ID_tag2el_1[] = { { (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 = { +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), @@ -78,7 +81,7 @@ asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ID = { 0, /* No effective tags (count) */ 0, /* No tags (pointer) */ 0, /* No tags (count) */ - { 0, &asn_PER_type_GlobalE2node_ID_constr_1, CHOICE_constraint }, + { &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/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-ID.h b/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-ID.h index 7868eb7..843e1c2 100644 --- a/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-ID.h +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _GlobalE2node_ID_H_ @@ -55,6 +55,9 @@ typedef struct GlobalE2node_ID { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-eNB-ID.c b/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-eNB-ID.c index 14513f5..7cb93f1 100644 --- a/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-eNB-ID.c +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-eNB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "GlobalE2node-eNB-ID.h" diff --git a/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-eNB-ID.h b/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-eNB-ID.h index 779350e..c92e774 100644 --- a/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-eNB-ID.h +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-eNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _GlobalE2node_eNB_ID_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-en-gNB-ID.c b/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-en-gNB-ID.c index c0b3768..6444325 100644 --- a/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-en-gNB-ID.c +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-en-gNB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "GlobalE2node-en-gNB-ID.h" diff --git a/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-en-gNB-ID.h b/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-en-gNB-ID.h index 19e5500..b13588a 100644 --- a/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-en-gNB-ID.h +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-en-gNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _GlobalE2node_en_gNB_ID_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-gNB-ID.c b/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-gNB-ID.c index 518e0f3..31bf024 100644 --- a/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-gNB-ID.c +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-gNB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "GlobalE2node-gNB-ID.h" diff --git a/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-gNB-ID.h b/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-gNB-ID.h index f31f72b..a2121b9 100644 --- a/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-gNB-ID.h +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-gNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _GlobalE2node_gNB_ID_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-ng-eNB-ID.c b/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-ng-eNB-ID.c index 58b345f..b3bb491 100644 --- a/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-ng-eNB-ID.c +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-ng-eNB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "GlobalE2node-ng-eNB-ID.h" diff --git a/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-ng-eNB-ID.h b/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-ng-eNB-ID.h index bac3c1a..7a3e0f5 100644 --- a/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-ng-eNB-ID.h +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalE2node-ng-eNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _GlobalE2node_ng_eNB_ID_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/GlobalENB-ID.c b/setup/xapp-sm-connector/asn1c_defs/GlobalENB-ID.c index 781c474..9c34820 100644 --- a/setup/xapp-sm-connector/asn1c_defs/GlobalENB-ID.c +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalENB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "GlobalENB-ID.h" diff --git a/setup/xapp-sm-connector/asn1c_defs/GlobalENB-ID.h b/setup/xapp-sm-connector/asn1c_defs/GlobalENB-ID.h index bd2c018..2b6cf1c 100644 --- a/setup/xapp-sm-connector/asn1c_defs/GlobalENB-ID.h +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalENB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _GlobalENB_ID_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-ID.c b/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-ID.c new file mode 100644 index 0000000..409a975 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-ID.c @@ -0,0 +1,89 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "GlobalKPMnode-ID.h" + +#include "GlobalKPMnode-gNB-ID.h" +#include "GlobalKPMnode-en-gNB-ID.h" +#include "GlobalKPMnode-ng-eNB-ID.h" +#include "GlobalKPMnode-eNB-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_POINTER, 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_POINTER, 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_POINTER, 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_POINTER, 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/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-ID.h b/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-ID.h new file mode 100644 index 0000000..609c68f --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-ID.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _GlobalKPMnode_ID_H_ +#define _GlobalKPMnode_ID_H_ + + +#include + +/* Including external dependencies */ +#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; + +/* Forward declarations */ +struct GlobalKPMnode_gNB_ID; +struct GlobalKPMnode_en_gNB_ID; +struct GlobalKPMnode_ng_eNB_ID; +struct GlobalKPMnode_eNB_ID; + +/* GlobalKPMnode-ID */ +typedef struct GlobalKPMnode_ID { + GlobalKPMnode_ID_PR present; + union GlobalKPMnode_ID_u { + struct GlobalKPMnode_gNB_ID *gNB; + struct GlobalKPMnode_en_gNB_ID *en_gNB; + struct GlobalKPMnode_ng_eNB_ID *ng_eNB; + struct GlobalKPMnode_eNB_ID *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/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-eNB-ID.c b/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-eNB-ID.c new file mode 100644 index 0000000..712b6ee --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-eNB-ID.c @@ -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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#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/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-eNB-ID.h b/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-eNB-ID.h new file mode 100644 index 0000000..778a011 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-eNB-ID.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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#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/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-en-gNB-ID.c b/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-en-gNB-ID.c new file mode 100644 index 0000000..4ab0526 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-en-gNB-ID.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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#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" + }, + { ATF_POINTER, 2, offsetof(struct GlobalKPMnode_en_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_en_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_en_gNB_ID_oms_1[] = { 1, 2 }; +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_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_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, + 3, /* Count of tags in the map */ + asn_MAP_GlobalKPMnode_en_gNB_ID_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* 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, + 3, /* Elements count */ + &asn_SPC_GlobalKPMnode_en_gNB_ID_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-en-gNB-ID.h b/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-en-gNB-ID.h new file mode 100644 index 0000000..54203fa --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-en-gNB-ID.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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _GlobalKPMnode_en_gNB_ID_H_ +#define _GlobalKPMnode_en_gNB_ID_H_ + + +#include + +/* Including external dependencies */ +#include "GlobalenGNB-ID.h" +#include "GNB-CU-UP-ID.h" +#include "GNB-DU-ID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* GlobalKPMnode-en-gNB-ID */ +typedef struct GlobalKPMnode_en_gNB_ID { + GlobalenGNB_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_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[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GlobalKPMnode_en_gNB_ID_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-gNB-ID.c b/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-gNB-ID.c new file mode 100644 index 0000000..20cb2b3 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-gNB-ID.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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#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/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-gNB-ID.h b/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-gNB-ID.h new file mode 100644 index 0000000..e8febde --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-gNB-ID.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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#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/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-ng-eNB-ID.c b/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-ng-eNB-ID.c new file mode 100644 index 0000000..54048ea --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-ng-eNB-ID.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#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" + }, + { ATF_POINTER, 1, offsetof(struct GlobalKPMnode_ng_eNB_ID, gNB_DU_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 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_ng_eNB_ID_oms_1[] = { 1 }; +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_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* gNB-DU-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, + 2, /* Count of tags in the map */ + asn_MAP_GlobalKPMnode_ng_eNB_ID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* 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, + 2, /* Elements count */ + &asn_SPC_GlobalKPMnode_ng_eNB_ID_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-ng-eNB-ID.h b/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-ng-eNB-ID.h new file mode 100644 index 0000000..d2d604b --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalKPMnode-ng-eNB-ID.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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _GlobalKPMnode_ng_eNB_ID_H_ +#define _GlobalKPMnode_ng_eNB_ID_H_ + + +#include + +/* Including external dependencies */ +#include "GlobalngeNB-ID.h" +#include "GNB-DU-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; + 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_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[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GlobalKPMnode_ng_eNB_ID_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/GlobalRIC-ID.c b/setup/xapp-sm-connector/asn1c_defs/GlobalRIC-ID.c index 327ab7a..c027c79 100644 --- a/setup/xapp-sm-connector/asn1c_defs/GlobalRIC-ID.c +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalRIC-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "GlobalRIC-ID.h" @@ -38,12 +38,15 @@ memb_ric_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, } } +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[] = { +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 */ @@ -58,7 +61,7 @@ static asn_TYPE_member_t asn_MBR_GlobalRIC_ID_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_BIT_STRING, 0, - { 0, &asn_PER_memb_ric_ID_constr_3, memb_ric_ID_constraint_1 }, + { &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" }, @@ -70,7 +73,7 @@ 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 = { +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, diff --git a/setup/xapp-sm-connector/asn1c_defs/GlobalRIC-ID.h b/setup/xapp-sm-connector/asn1c_defs/GlobalRIC-ID.h index 2e53f41..ad389c3 100644 --- a/setup/xapp-sm-connector/asn1c_defs/GlobalRIC-ID.h +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalRIC-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _GlobalRIC_ID_H_ @@ -35,6 +35,8 @@ typedef struct GlobalRIC_ID { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/GlobalenGNB-ID.c b/setup/xapp-sm-connector/asn1c_defs/GlobalenGNB-ID.c index f97c722..2599aae 100644 --- a/setup/xapp-sm-connector/asn1c_defs/GlobalenGNB-ID.c +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalenGNB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "GlobalenGNB-ID.h" diff --git a/setup/xapp-sm-connector/asn1c_defs/GlobalenGNB-ID.h b/setup/xapp-sm-connector/asn1c_defs/GlobalenGNB-ID.h index e6e8ae8..7df68b1 100644 --- a/setup/xapp-sm-connector/asn1c_defs/GlobalenGNB-ID.h +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalenGNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _GlobalenGNB_ID_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/GlobalgNB-ID.c b/setup/xapp-sm-connector/asn1c_defs/GlobalgNB-ID.c index 318370f..2150089 100644 --- a/setup/xapp-sm-connector/asn1c_defs/GlobalgNB-ID.c +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalgNB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "GlobalgNB-ID.h" diff --git a/setup/xapp-sm-connector/asn1c_defs/GlobalgNB-ID.h b/setup/xapp-sm-connector/asn1c_defs/GlobalgNB-ID.h index 52efce0..242edf2 100644 --- a/setup/xapp-sm-connector/asn1c_defs/GlobalgNB-ID.h +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalgNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _GlobalgNB_ID_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/GlobalngeNB-ID.c b/setup/xapp-sm-connector/asn1c_defs/GlobalngeNB-ID.c index 650ae98..97d1f41 100644 --- a/setup/xapp-sm-connector/asn1c_defs/GlobalngeNB-ID.c +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalngeNB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "GlobalngeNB-ID.h" diff --git a/setup/xapp-sm-connector/asn1c_defs/GlobalngeNB-ID.h b/setup/xapp-sm-connector/asn1c_defs/GlobalngeNB-ID.h index 177a467..8aba4cc 100644 --- a/setup/xapp-sm-connector/asn1c_defs/GlobalngeNB-ID.h +++ b/setup/xapp-sm-connector/asn1c_defs/GlobalngeNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _GlobalngeNB_ID_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/GranularityPeriod.c b/setup/xapp-sm-connector/asn1c_defs/GranularityPeriod.c new file mode 100644 index 0000000..974e426 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/GranularityPeriod.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "GranularityPeriod.h" + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, 0, NativeInteger_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/GranularityPeriod.h b/setup/xapp-sm-connector/asn1c_defs/GranularityPeriod.h new file mode 100644 index 0000000..4ac6358 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/GranularityPeriod.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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _GranularityPeriod_H_ +#define _GranularityPeriod_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* GranularityPeriod */ +typedef long GranularityPeriod_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GranularityPeriod; +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; +oer_type_decoder_f GranularityPeriod_decode_oer; +oer_type_encoder_f GranularityPeriod_encode_oer; +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 diff --git a/setup/xapp-sm-connector/asn1c_defs/INTEGER_oer.c b/setup/xapp-sm-connector/asn1c_defs/INTEGER_oer.c new file mode 100644 index 0000000..110689b --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/INTEGER_oer.c @@ -0,0 +1,179 @@ +/* + * 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/setup/xapp-sm-connector/asn1c_defs/InitiatingMessage.c b/setup/xapp-sm-connector/asn1c_defs/InitiatingMessage.c index 9c34727..6a6bfdb 100644 --- a/setup/xapp-sm-connector/asn1c_defs/InitiatingMessage.c +++ b/setup/xapp-sm-connector/asn1c_defs/InitiatingMessage.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Descriptions-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "InitiatingMessage.h" @@ -192,16 +192,25 @@ memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); } +static asn_oer_constraints_t asn_OER_memb_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 }, @@ -332,7 +341,7 @@ asn_TYPE_member_t asn_MBR_InitiatingMessage_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_ProcedureCode, 0, - { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, + { &asn_OER_memb_procedureCode_constr_2, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, 0, 0, /* No default value */ "procedureCode" }, @@ -341,7 +350,7 @@ asn_TYPE_member_t asn_MBR_InitiatingMessage_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_InitiatingMessage_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, + { &asn_OER_memb_criticality_constr_3, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, 0, 0, /* No default value */ "criticality" }, @@ -350,7 +359,7 @@ asn_TYPE_member_t asn_MBR_InitiatingMessage_1[] = { +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 }, + { &asn_OER_memb_value_constr_4, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, 0, 0, /* No default value */ "value" }, diff --git a/setup/xapp-sm-connector/asn1c_defs/InitiatingMessage.h b/setup/xapp-sm-connector/asn1c_defs/InitiatingMessage.h index 1072067..fd10bc7 100644 --- a/setup/xapp-sm-connector/asn1c_defs/InitiatingMessage.h +++ b/setup/xapp-sm-connector/asn1c_defs/InitiatingMessage.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Descriptions-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _InitiatingMessage_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/L3-RRC-Measurements.c b/setup/xapp-sm-connector/asn1c_defs/L3-RRC-Measurements.c new file mode 100644 index 0000000..df7009d --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/L3-RRC-Measurements.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "L3-RRC-Measurements.h" + +#include "ServingCellMeasurements.h" +#include "MeasResultNeighCells.h" +asn_TYPE_member_t asn_MBR_L3_RRC_Measurements_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct L3_RRC_Measurements, rrcEvent), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCEvent, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcEvent" + }, + { ATF_POINTER, 2, offsetof(struct L3_RRC_Measurements, servingCellMeasurements), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ServingCellMeasurements, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servingCellMeasurements" + }, + { ATF_POINTER, 1, offsetof(struct L3_RRC_Measurements, measResultNeighCells), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_MeasResultNeighCells, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultNeighCells" + }, +}; +static const int asn_MAP_L3_RRC_Measurements_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_L3_RRC_Measurements_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_L3_RRC_Measurements_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrcEvent */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* servingCellMeasurements */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* measResultNeighCells */ +}; +asn_SEQUENCE_specifics_t asn_SPC_L3_RRC_Measurements_specs_1 = { + sizeof(struct L3_RRC_Measurements), + offsetof(struct L3_RRC_Measurements, _asn_ctx), + asn_MAP_L3_RRC_Measurements_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_L3_RRC_Measurements_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_L3_RRC_Measurements = { + "L3-RRC-Measurements", + "L3-RRC-Measurements", + &asn_OP_SEQUENCE, + asn_DEF_L3_RRC_Measurements_tags_1, + sizeof(asn_DEF_L3_RRC_Measurements_tags_1) + /sizeof(asn_DEF_L3_RRC_Measurements_tags_1[0]), /* 1 */ + asn_DEF_L3_RRC_Measurements_tags_1, /* Same as above */ + sizeof(asn_DEF_L3_RRC_Measurements_tags_1) + /sizeof(asn_DEF_L3_RRC_Measurements_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_L3_RRC_Measurements_1, + 3, /* Elements count */ + &asn_SPC_L3_RRC_Measurements_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/L3-RRC-Measurements.h b/setup/xapp-sm-connector/asn1c_defs/L3-RRC-Measurements.h new file mode 100644 index 0000000..eb51c5c --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/L3-RRC-Measurements.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _L3_RRC_Measurements_H_ +#define _L3_RRC_Measurements_H_ + + +#include + +/* Including external dependencies */ +#include "RRCEvent.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ServingCellMeasurements; +struct MeasResultNeighCells; + +/* L3-RRC-Measurements */ +typedef struct L3_RRC_Measurements { + RRCEvent_t rrcEvent; + struct ServingCellMeasurements *servingCellMeasurements; /* OPTIONAL */ + struct MeasResultNeighCells *measResultNeighCells; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} L3_RRC_Measurements_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_L3_RRC_Measurements; +extern asn_SEQUENCE_specifics_t asn_SPC_L3_RRC_Measurements_specs_1; +extern asn_TYPE_member_t asn_MBR_L3_RRC_Measurements_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _L3_RRC_Measurements_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/LabelInfoItem.c b/setup/xapp-sm-connector/asn1c_defs/LabelInfoItem.c new file mode 100644 index 0000000..f8c566c --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/LabelInfoItem.c @@ -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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#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, + { 0, 0, 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 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LabelInfoItem_1, + 1, /* Elements count */ + &asn_SPC_LabelInfoItem_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/LabelInfoItem.h b/setup/xapp-sm-connector/asn1c_defs/LabelInfoItem.h new file mode 100644 index 0000000..4641dcb --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _LabelInfoItem_H_ +#define _LabelInfoItem_H_ + + +#include + +/* Including external dependencies */ +#include "MeasurementLabel.h" +#include + +#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 diff --git a/setup/xapp-sm-connector/asn1c_defs/LabelInfoList.c b/setup/xapp-sm-connector/asn1c_defs/LabelInfoList.c new file mode 100644 index 0000000..aea5bea --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/LabelInfoList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "LabelInfoList.h" + +#include "LabelInfoItem.h" +static asn_oer_constraints_t asn_OER_type_LabelInfoList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..2147483647)) */}; +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 */ +}; +asn_TYPE_member_t asn_MBR_LabelInfoList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_LabelInfoItem, + 0, + { 0, 0, 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 */ + { &asn_OER_type_LabelInfoList_constr_1, &asn_PER_type_LabelInfoList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_LabelInfoList_1, + 1, /* Single element */ + &asn_SPC_LabelInfoList_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/LabelInfoList.h b/setup/xapp-sm-connector/asn1c_defs/LabelInfoList.h new file mode 100644 index 0000000..3f4437d --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _LabelInfoList_H_ +#define _LabelInfoList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/setup/xapp-sm-connector/asn1c_defs/Makefile.am.asn1convert b/setup/xapp-sm-connector/asn1c_defs/Makefile.am.asn1convert new file mode 100644 index 0000000..ec2cb71 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/Makefile.am.asn1convert @@ -0,0 +1,14 @@ +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 . e2sm-kpm-rc.asn + diff --git a/setup/xapp-sm-connector/asn1c_defs/Makefile.am.libasncodec b/setup/xapp-sm-connector/asn1c_defs/Makefile.am.libasncodec new file mode 100644 index 0000000..5493495 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/Makefile.am.libasncodec @@ -0,0 +1,344 @@ +ASN_MODULE_SRCS= \ + ./Criticality.c \ + ./Presence.c \ + ./ProcedureCode.c \ + ./ProtocolIE-ID.c \ + ./TriggeringMessage.c \ + ./E2SM-KPM-RANFunctionDefinition.c \ + ./RIC-ReportStyle-Item.c \ + ./E2SM-KPM-ActionDefinition.c \ + ./E2SM-KPM-ActionDefinition-Format1.c \ + ./E2SM-KPM-IndicationHeader.c \ + ./E2SM-KPM-IndicationHeader-Format1.c \ + ./E2SM-KPM-IndicationMessage.c \ + ./E2SM-KPM-IndicationMessage-Format1.c \ + ./PM-Containers-Item.c \ + ./PerUE-PM-Item.c \ + ./PM-Info-Item.c \ + ./PF-Container.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 \ + ./OCUCP-PF-Container.c \ + ./OCUUP-PF-Container.c \ + ./PF-ContainerListItem.c \ + ./CUUPMeasurement-Container.c \ + ./PlmnID-Item.c \ + ./FGC-CUUP-PM-Format.c \ + ./SliceToReportListItem.c \ + ./FQIPERSlicesPerPlmnListItem.c \ + ./EPC-CUUP-PM-Format.c \ + ./PerQCIReportListItemFormat.c \ + ./MeasurementValue.c \ + ./L3-RRC-Measurements.c \ + ./RRCEvent.c \ + ./ServingCellMeasurements.c \ + ./MeasResultServMOList.c \ + ./MeasResultServMO.c \ + ./MeasResultNR.c \ + ./MeasResultListEUTRA.c \ + ./MeasResultEUTRA.c \ + ./MeasResultPCell.c \ + ./MeasResultNeighCells.c \ + ./MeasResultListNR.c \ + ./PhysCellId.c \ + ./ServCellIndex.c \ + ./MeasQuantityResults.c \ + ./MeasQuantityResultsEUTRA.c \ + ./RSRP-RangeEUTRA.c \ + ./RSRQ-RangeEUTRA.c \ + ./SINR-RangeEUTRA.c \ + ./ResultsPerSSB-IndexList.c \ + ./ResultsPerSSB-Index.c \ + ./ResultsPerCSI-RS-IndexList.c \ + ./ResultsPerCSI-RS-Index.c \ + ./SSB-Index.c \ + ./CSI-RS-Index.c \ + ./RSRP-Range.c \ + ./RSRQ-Range.c \ + ./SINR-Range.c \ + ./TimeStamp.c \ + ./CellObjectID.c \ + ./MeasurementInfoList.c \ + ./MeasurementInfoItem.c \ + ./MeasurementType.c \ + ./NRCGI.c \ + ./NRCellIdentity.c \ + ./S-NSSAI.c \ + ./MeasurementTypeName.c \ + ./MeasurementTypeID.c \ + ./FiveQI.c \ + ./QCI.c \ + ./NI-Type.c \ + ./RAN-Container.c \ + ./E2SM-RC-RANFunctionDefinition.c \ + ./RANfunction-Name.c \ + ./RIC-EventTriggerStyle-Item.c \ + ./RIC-ControlStyle-Item.c \ + ./RIC-ControlAction-Item.c \ + ./RAN-ControlParameter-Item.c \ + ./E2SM-RC-ControlHeader.c \ + ./E2SM-RC-ControlHeader-Format1.c \ + ./E2SM-RC-ControlMessage.c \ + ./E2SM-RC-ControlMessage-Format1.c \ + ./RANParameter-Item.c \ + ./RANParameter-ValueType.c \ + ./RANParameter-ELEMENT.c \ + ./RANParameter-STRUCTURE.c \ + ./RANParameter-LIST.c \ + ./RANParameter-Value.c \ + ./UE-Identity.c \ + ./RIC-Style-Type.c \ + ./RIC-Style-Name.c \ + ./RIC-Format-Type.c \ + ./RANParameter-ID.c \ + ./RANParameter-Name.c \ + ./RIC-ControlAction-ID.c \ + ./RIC-ControlAction-Name.c \ + ./E2SM-KPM-EventTriggerDefinition.c \ + ./E2SM-KPM-EventTriggerDefinition-Format1.c \ + ./Trigger-ConditionIE-Item.c \ + ./RT-Period-IE.c \ + ./RANcallProcess-ID-string.c \ + ./PLMN-Identity.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 \ + ./GNB-ID-Choice.c \ + ./ENB-ID-Choice.c \ + ./ENB-ID.c \ + ./ENGNB-ID.c \ + ./GNB-CU-UP-ID.c \ + ./GNB-DU-ID.c + +ASN_MODULE_HDRS= \ + ./Criticality.h \ + ./Presence.h \ + ./ProcedureCode.h \ + ./ProtocolIE-ID.h \ + ./TriggeringMessage.h \ + ./E2SM-KPM-RANFunctionDefinition.h \ + ./RIC-ReportStyle-Item.h \ + ./E2SM-KPM-ActionDefinition.h \ + ./E2SM-KPM-ActionDefinition-Format1.h \ + ./E2SM-KPM-IndicationHeader.h \ + ./E2SM-KPM-IndicationHeader-Format1.h \ + ./E2SM-KPM-IndicationMessage.h \ + ./E2SM-KPM-IndicationMessage-Format1.h \ + ./PM-Containers-Item.h \ + ./PerUE-PM-Item.h \ + ./PM-Info-Item.h \ + ./PF-Container.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 \ + ./OCUCP-PF-Container.h \ + ./OCUUP-PF-Container.h \ + ./PF-ContainerListItem.h \ + ./CUUPMeasurement-Container.h \ + ./PlmnID-Item.h \ + ./FGC-CUUP-PM-Format.h \ + ./SliceToReportListItem.h \ + ./FQIPERSlicesPerPlmnListItem.h \ + ./EPC-CUUP-PM-Format.h \ + ./PerQCIReportListItemFormat.h \ + ./MeasurementValue.h \ + ./L3-RRC-Measurements.h \ + ./RRCEvent.h \ + ./ServingCellMeasurements.h \ + ./MeasResultServMOList.h \ + ./MeasResultServMO.h \ + ./MeasResultNR.h \ + ./MeasResultListEUTRA.h \ + ./MeasResultEUTRA.h \ + ./MeasResultPCell.h \ + ./MeasResultNeighCells.h \ + ./MeasResultListNR.h \ + ./PhysCellId.h \ + ./ServCellIndex.h \ + ./MeasQuantityResults.h \ + ./MeasQuantityResultsEUTRA.h \ + ./RSRP-RangeEUTRA.h \ + ./RSRQ-RangeEUTRA.h \ + ./SINR-RangeEUTRA.h \ + ./ResultsPerSSB-IndexList.h \ + ./ResultsPerSSB-Index.h \ + ./ResultsPerCSI-RS-IndexList.h \ + ./ResultsPerCSI-RS-Index.h \ + ./SSB-Index.h \ + ./CSI-RS-Index.h \ + ./RSRP-Range.h \ + ./RSRQ-Range.h \ + ./SINR-Range.h \ + ./TimeStamp.h \ + ./CellObjectID.h \ + ./MeasurementInfoList.h \ + ./MeasurementInfoItem.h \ + ./MeasurementType.h \ + ./NRCGI.h \ + ./NRCellIdentity.h \ + ./S-NSSAI.h \ + ./MeasurementTypeName.h \ + ./MeasurementTypeID.h \ + ./FiveQI.h \ + ./QCI.h \ + ./NI-Type.h \ + ./RAN-Container.h \ + ./E2SM-RC-RANFunctionDefinition.h \ + ./RANfunction-Name.h \ + ./RIC-EventTriggerStyle-Item.h \ + ./RIC-ControlStyle-Item.h \ + ./RIC-ControlAction-Item.h \ + ./RAN-ControlParameter-Item.h \ + ./E2SM-RC-ControlHeader.h \ + ./E2SM-RC-ControlHeader-Format1.h \ + ./E2SM-RC-ControlMessage.h \ + ./E2SM-RC-ControlMessage-Format1.h \ + ./RANParameter-Item.h \ + ./RANParameter-ValueType.h \ + ./RANParameter-ELEMENT.h \ + ./RANParameter-STRUCTURE.h \ + ./RANParameter-LIST.h \ + ./RANParameter-Value.h \ + ./UE-Identity.h \ + ./RIC-Style-Type.h \ + ./RIC-Style-Name.h \ + ./RIC-Format-Type.h \ + ./RANParameter-ID.h \ + ./RANParameter-Name.h \ + ./RIC-ControlAction-ID.h \ + ./RIC-ControlAction-Name.h \ + ./E2SM-KPM-EventTriggerDefinition.h \ + ./E2SM-KPM-EventTriggerDefinition-Format1.h \ + ./Trigger-ConditionIE-Item.h \ + ./RT-Period-IE.h \ + ./RANcallProcess-ID-string.h \ + ./PLMN-Identity.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 \ + ./GNB-ID-Choice.h \ + ./ENB-ID-Choice.h \ + ./ENB-ID.h \ + ./ENGNB-ID.h \ + ./GNB-CU-UP-ID.h \ + ./GNB-DU-ID.h + +ASN_MODULE_HDRS+=./OPEN_TYPE.h +ASN_MODULE_SRCS+=./OPEN_TYPE.c +ASN_MODULE_HDRS+=./constr_CHOICE.h +ASN_MODULE_HDRS+=./BOOLEAN.h +ASN_MODULE_SRCS+=./BOOLEAN.c +ASN_MODULE_HDRS+=./INTEGER.h +ASN_MODULE_SRCS+=./INTEGER.c +ASN_MODULE_HDRS+=./NULL.h +ASN_MODULE_SRCS+=./NULL.c +ASN_MODULE_HDRS+=./NativeEnumerated.h +ASN_MODULE_SRCS+=./NativeEnumerated.c +ASN_MODULE_HDRS+=./NativeInteger.h +ASN_MODULE_SRCS+=./NativeInteger.c +ASN_MODULE_HDRS+=./NativeReal.h +ASN_MODULE_SRCS+=./NativeReal.c +ASN_MODULE_HDRS+=./REAL.h +ASN_MODULE_HDRS+=./PrintableString.h +ASN_MODULE_SRCS+=./PrintableString.c +ASN_MODULE_HDRS+=./OCTET_STRING.h +ASN_MODULE_SRCS+=./REAL.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_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/setup/xapp-sm-connector/asn1c_defs/MatchingCondItem.c b/setup/xapp-sm-connector/asn1c_defs/MatchingCondItem.c new file mode 100644 index 0000000..0d77c32 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MatchingCondItem.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "MatchingCondItem.h" + +#include "MeasurementLabel.h" +#include "TestCondInfo.h" +static asn_oer_constraints_t asn_OER_type_MatchingCondItem_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_MatchingCondItem_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_MatchingCondItem_1[] = { + { ATF_POINTER, 0, offsetof(struct MatchingCondItem, choice.measLabel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasurementLabel, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measLabel" + }, + { ATF_POINTER, 0, offsetof(struct MatchingCondItem, choice.testCondInfo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TestCondInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "testCondInfo" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_MatchingCondItem_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_specs_1 = { + sizeof(struct MatchingCondItem), + offsetof(struct MatchingCondItem, _asn_ctx), + offsetof(struct MatchingCondItem, present), + sizeof(((struct MatchingCondItem *)0)->present), + asn_MAP_MatchingCondItem_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_MatchingCondItem = { + "MatchingCondItem", + "MatchingCondItem", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_MatchingCondItem_constr_1, &asn_PER_type_MatchingCondItem_constr_1, CHOICE_constraint }, + asn_MBR_MatchingCondItem_1, + 2, /* Elements count */ + &asn_SPC_MatchingCondItem_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MatchingCondItem.h b/setup/xapp-sm-connector/asn1c_defs/MatchingCondItem.h new file mode 100644 index 0000000..94d3360 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MatchingCondItem.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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _MatchingCondItem_H_ +#define _MatchingCondItem_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MatchingCondItem_PR { + MatchingCondItem_PR_NOTHING, /* No components present */ + MatchingCondItem_PR_measLabel, + MatchingCondItem_PR_testCondInfo + /* Extensions may appear below */ + +} MatchingCondItem_PR; + +/* Forward declarations */ +struct MeasurementLabel; +struct TestCondInfo; + +/* MatchingCondItem */ +typedef struct MatchingCondItem { + MatchingCondItem_PR present; + union MatchingCondItem_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_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MatchingCondItem; +extern asn_CHOICE_specifics_t asn_SPC_MatchingCondItem_specs_1; +extern asn_TYPE_member_t asn_MBR_MatchingCondItem_1[2]; +extern asn_per_constraints_t asn_PER_type_MatchingCondItem_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MatchingCondItem_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/MatchingCondList.c b/setup/xapp-sm-connector/asn1c_defs/MatchingCondList.c new file mode 100644 index 0000000..32f2b14 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MatchingCondList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "MatchingCondList.h" + +#include "MatchingCondItem.h" +static asn_oer_constraints_t asn_OER_type_MatchingCondList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32768)) */}; +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 */ +}; +asn_TYPE_member_t asn_MBR_MatchingCondList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_MatchingCondItem, + 0, + { 0, 0, 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), + 2, /* XER encoding is XMLValueList */ +}; +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 */ + { &asn_OER_type_MatchingCondList_constr_1, &asn_PER_type_MatchingCondList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MatchingCondList_1, + 1, /* Single element */ + &asn_SPC_MatchingCondList_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MatchingCondList.h b/setup/xapp-sm-connector/asn1c_defs/MatchingCondList.h new file mode 100644 index 0000000..52ed95b --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _MatchingCondList_H_ +#define _MatchingCondList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/setup/xapp-sm-connector/asn1c_defs/MatchingUEidItem.c b/setup/xapp-sm-connector/asn1c_defs/MatchingUEidItem.c new file mode 100644 index 0000000..b9cbcf8 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MatchingUEidItem.c @@ -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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#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, /* IMPLICIT tag at current level */ + &asn_DEF_UE_Identity, + 0, + { 0, 0, 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 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MatchingUEidItem_1, + 1, /* Elements count */ + &asn_SPC_MatchingUEidItem_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MatchingUEidItem.h b/setup/xapp-sm-connector/asn1c_defs/MatchingUEidItem.h new file mode 100644 index 0000000..f02ba9b --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _MatchingUEidItem_H_ +#define _MatchingUEidItem_H_ + + +#include + +/* Including external dependencies */ +#include "UE-Identity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MatchingUEidItem */ +typedef struct MatchingUEidItem { + UE_Identity_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 diff --git a/setup/xapp-sm-connector/asn1c_defs/MatchingUEidList.c b/setup/xapp-sm-connector/asn1c_defs/MatchingUEidList.c new file mode 100644 index 0000000..58e1988 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MatchingUEidList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "MatchingUEidList.h" + +#include "MatchingUEidItem.h" +static asn_oer_constraints_t asn_OER_type_MatchingUEidList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +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 */ +}; +asn_TYPE_member_t asn_MBR_MatchingUEidList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MatchingUEidItem, + 0, + { 0, 0, 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 */ + { &asn_OER_type_MatchingUEidList_constr_1, &asn_PER_type_MatchingUEidList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MatchingUEidList_1, + 1, /* Single element */ + &asn_SPC_MatchingUEidList_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MatchingUEidList.h b/setup/xapp-sm-connector/asn1c_defs/MatchingUEidList.h new file mode 100644 index 0000000..b03c075 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _MatchingUEidList_H_ +#define _MatchingUEidList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasQuantityResults.c b/setup/xapp-sm-connector/asn1c_defs/MeasQuantityResults.c new file mode 100644 index 0000000..71a2de9 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasQuantityResults.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "MeasQuantityResults.h" + +asn_TYPE_member_t asn_MBR_MeasQuantityResults_1[] = { + { ATF_POINTER, 3, offsetof(struct MeasQuantityResults, rsrp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrp" + }, + { ATF_POINTER, 2, offsetof(struct MeasQuantityResults, rsrq), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRQ_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrq" + }, + { ATF_POINTER, 1, offsetof(struct MeasQuantityResults, sinr), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SINR_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sinr" + }, +}; +static const int asn_MAP_MeasQuantityResults_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_MeasQuantityResults_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MeasQuantityResults_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rsrp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rsrq */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* sinr */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MeasQuantityResults_specs_1 = { + sizeof(struct MeasQuantityResults), + offsetof(struct MeasQuantityResults, _asn_ctx), + asn_MAP_MeasQuantityResults_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_MeasQuantityResults_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasQuantityResults = { + "MeasQuantityResults", + "MeasQuantityResults", + &asn_OP_SEQUENCE, + asn_DEF_MeasQuantityResults_tags_1, + sizeof(asn_DEF_MeasQuantityResults_tags_1) + /sizeof(asn_DEF_MeasQuantityResults_tags_1[0]), /* 1 */ + asn_DEF_MeasQuantityResults_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasQuantityResults_tags_1) + /sizeof(asn_DEF_MeasQuantityResults_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasQuantityResults_1, + 3, /* Elements count */ + &asn_SPC_MeasQuantityResults_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasQuantityResults.h b/setup/xapp-sm-connector/asn1c_defs/MeasQuantityResults.h new file mode 100644 index 0000000..a597b72 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasQuantityResults.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _MeasQuantityResults_H_ +#define _MeasQuantityResults_H_ + + +#include + +/* Including external dependencies */ +#include "RSRP-Range.h" +#include "RSRQ-Range.h" +#include "SINR-Range.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MeasQuantityResults */ +typedef struct MeasQuantityResults { + RSRP_Range_t *rsrp; /* OPTIONAL */ + RSRQ_Range_t *rsrq; /* OPTIONAL */ + SINR_Range_t *sinr; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasQuantityResults_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasQuantityResults; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasQuantityResults_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasQuantityResults_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasQuantityResults_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasQuantityResultsEUTRA.c b/setup/xapp-sm-connector/asn1c_defs/MeasQuantityResultsEUTRA.c new file mode 100644 index 0000000..8dfe36d --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasQuantityResultsEUTRA.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "MeasQuantityResultsEUTRA.h" + +asn_TYPE_member_t asn_MBR_MeasQuantityResultsEUTRA_1[] = { + { ATF_POINTER, 3, offsetof(struct MeasQuantityResultsEUTRA, rsrp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRP_RangeEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrp" + }, + { ATF_POINTER, 2, offsetof(struct MeasQuantityResultsEUTRA, rsrq), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRQ_RangeEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrq" + }, + { ATF_POINTER, 1, offsetof(struct MeasQuantityResultsEUTRA, sinr), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SINR_RangeEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sinr" + }, +}; +static const int asn_MAP_MeasQuantityResultsEUTRA_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_MeasQuantityResultsEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MeasQuantityResultsEUTRA_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rsrp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rsrq */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* sinr */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MeasQuantityResultsEUTRA_specs_1 = { + sizeof(struct MeasQuantityResultsEUTRA), + offsetof(struct MeasQuantityResultsEUTRA, _asn_ctx), + asn_MAP_MeasQuantityResultsEUTRA_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_MeasQuantityResultsEUTRA_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasQuantityResultsEUTRA = { + "MeasQuantityResultsEUTRA", + "MeasQuantityResultsEUTRA", + &asn_OP_SEQUENCE, + asn_DEF_MeasQuantityResultsEUTRA_tags_1, + sizeof(asn_DEF_MeasQuantityResultsEUTRA_tags_1) + /sizeof(asn_DEF_MeasQuantityResultsEUTRA_tags_1[0]), /* 1 */ + asn_DEF_MeasQuantityResultsEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasQuantityResultsEUTRA_tags_1) + /sizeof(asn_DEF_MeasQuantityResultsEUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasQuantityResultsEUTRA_1, + 3, /* Elements count */ + &asn_SPC_MeasQuantityResultsEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasQuantityResultsEUTRA.h b/setup/xapp-sm-connector/asn1c_defs/MeasQuantityResultsEUTRA.h new file mode 100644 index 0000000..1be9197 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasQuantityResultsEUTRA.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _MeasQuantityResultsEUTRA_H_ +#define _MeasQuantityResultsEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "RSRP-RangeEUTRA.h" +#include "RSRQ-RangeEUTRA.h" +#include "SINR-RangeEUTRA.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MeasQuantityResultsEUTRA */ +typedef struct MeasQuantityResultsEUTRA { + RSRP_RangeEUTRA_t *rsrp; /* OPTIONAL */ + RSRQ_RangeEUTRA_t *rsrq; /* OPTIONAL */ + SINR_RangeEUTRA_t *sinr; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasQuantityResultsEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasQuantityResultsEUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasQuantityResultsEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasQuantityResultsEUTRA_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasQuantityResultsEUTRA_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasResultEUTRA.c b/setup/xapp-sm-connector/asn1c_defs/MeasResultEUTRA.c new file mode 100644 index 0000000..b3713d9 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasResultEUTRA.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "MeasResultEUTRA.h" + +asn_TYPE_member_t asn_MBR_MeasResultEUTRA_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasResultEUTRA, eutra_PhysCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-PhysCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasResultEUTRA, measResult), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasQuantityResultsEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResult" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasResultEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MeasResultEUTRA_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eutra-PhysCellId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* measResult */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MeasResultEUTRA_specs_1 = { + sizeof(struct MeasResultEUTRA), + offsetof(struct MeasResultEUTRA, _asn_ctx), + asn_MAP_MeasResultEUTRA_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_MeasResultEUTRA = { + "MeasResultEUTRA", + "MeasResultEUTRA", + &asn_OP_SEQUENCE, + asn_DEF_MeasResultEUTRA_tags_1, + sizeof(asn_DEF_MeasResultEUTRA_tags_1) + /sizeof(asn_DEF_MeasResultEUTRA_tags_1[0]), /* 1 */ + asn_DEF_MeasResultEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasResultEUTRA_tags_1) + /sizeof(asn_DEF_MeasResultEUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasResultEUTRA_1, + 2, /* Elements count */ + &asn_SPC_MeasResultEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasResultEUTRA.h b/setup/xapp-sm-connector/asn1c_defs/MeasResultEUTRA.h new file mode 100644 index 0000000..61e8b9a --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasResultEUTRA.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _MeasResultEUTRA_H_ +#define _MeasResultEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "PhysCellId.h" +#include "MeasQuantityResultsEUTRA.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MeasResultEUTRA */ +typedef struct MeasResultEUTRA { + PhysCellId_t eutra_PhysCellId; + MeasQuantityResultsEUTRA_t measResult; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasResultEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasResultEUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasResultEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasResultEUTRA_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasResultEUTRA_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasResultListEUTRA.c b/setup/xapp-sm-connector/asn1c_defs/MeasResultListEUTRA.c new file mode 100644 index 0000000..b7a963e --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasResultListEUTRA.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "MeasResultListEUTRA.h" + +#include "MeasResultEUTRA.h" +static asn_oer_constraints_t asn_OER_type_MeasResultListEUTRA_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_MeasResultListEUTRA_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_MeasResultListEUTRA_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MeasResultEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasResultListEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MeasResultListEUTRA_specs_1 = { + sizeof(struct MeasResultListEUTRA), + offsetof(struct MeasResultListEUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasResultListEUTRA = { + "MeasResultListEUTRA", + "MeasResultListEUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_MeasResultListEUTRA_tags_1, + sizeof(asn_DEF_MeasResultListEUTRA_tags_1) + /sizeof(asn_DEF_MeasResultListEUTRA_tags_1[0]), /* 1 */ + asn_DEF_MeasResultListEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasResultListEUTRA_tags_1) + /sizeof(asn_DEF_MeasResultListEUTRA_tags_1[0]), /* 1 */ + { &asn_OER_type_MeasResultListEUTRA_constr_1, &asn_PER_type_MeasResultListEUTRA_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MeasResultListEUTRA_1, + 1, /* Single element */ + &asn_SPC_MeasResultListEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasResultListEUTRA.h b/setup/xapp-sm-connector/asn1c_defs/MeasResultListEUTRA.h new file mode 100644 index 0000000..5f9d8e6 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasResultListEUTRA.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _MeasResultListEUTRA_H_ +#define _MeasResultListEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasResultEUTRA; + +/* MeasResultListEUTRA */ +typedef struct MeasResultListEUTRA { + A_SEQUENCE_OF(struct MeasResultEUTRA) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasResultListEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasResultListEUTRA; +extern asn_SET_OF_specifics_t asn_SPC_MeasResultListEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasResultListEUTRA_1[1]; +extern asn_per_constraints_t asn_PER_type_MeasResultListEUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasResultListEUTRA_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasResultListNR.c b/setup/xapp-sm-connector/asn1c_defs/MeasResultListNR.c new file mode 100644 index 0000000..d5edda9 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasResultListNR.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "MeasResultListNR.h" + +#include "MeasResultNR.h" +static asn_oer_constraints_t asn_OER_type_MeasResultListNR_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_MeasResultListNR_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_MeasResultListNR_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MeasResultNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasResultListNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MeasResultListNR_specs_1 = { + sizeof(struct MeasResultListNR), + offsetof(struct MeasResultListNR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasResultListNR = { + "MeasResultListNR", + "MeasResultListNR", + &asn_OP_SEQUENCE_OF, + asn_DEF_MeasResultListNR_tags_1, + sizeof(asn_DEF_MeasResultListNR_tags_1) + /sizeof(asn_DEF_MeasResultListNR_tags_1[0]), /* 1 */ + asn_DEF_MeasResultListNR_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasResultListNR_tags_1) + /sizeof(asn_DEF_MeasResultListNR_tags_1[0]), /* 1 */ + { &asn_OER_type_MeasResultListNR_constr_1, &asn_PER_type_MeasResultListNR_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MeasResultListNR_1, + 1, /* Single element */ + &asn_SPC_MeasResultListNR_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasResultListNR.h b/setup/xapp-sm-connector/asn1c_defs/MeasResultListNR.h new file mode 100644 index 0000000..3617658 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasResultListNR.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _MeasResultListNR_H_ +#define _MeasResultListNR_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasResultNR; + +/* MeasResultListNR */ +typedef struct MeasResultListNR { + A_SEQUENCE_OF(struct MeasResultNR) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasResultListNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasResultListNR; +extern asn_SET_OF_specifics_t asn_SPC_MeasResultListNR_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasResultListNR_1[1]; +extern asn_per_constraints_t asn_PER_type_MeasResultListNR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasResultListNR_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasResultNR.c b/setup/xapp-sm-connector/asn1c_defs/MeasResultNR.c new file mode 100644 index 0000000..fa4dae8 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasResultNR.c @@ -0,0 +1,230 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "MeasResultNR.h" + +#include "MeasQuantityResults.h" +#include "ResultsPerSSB-IndexList.h" +#include "ResultsPerCSI-RS-IndexList.h" +static asn_TYPE_member_t asn_MBR_cellResults_4[] = { + { ATF_POINTER, 2, offsetof(struct MeasResultNR__measResult__cellResults, resultsSSB_Cell), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasQuantityResults, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resultsSSB-Cell" + }, + { ATF_POINTER, 1, offsetof(struct MeasResultNR__measResult__cellResults, resultsCSI_RS_Cell), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasQuantityResults, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resultsCSI-RS-Cell" + }, +}; +static const int asn_MAP_cellResults_oms_4[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_cellResults_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cellResults_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* resultsSSB-Cell */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* resultsCSI-RS-Cell */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cellResults_specs_4 = { + sizeof(struct MeasResultNR__measResult__cellResults), + offsetof(struct MeasResultNR__measResult__cellResults, _asn_ctx), + asn_MAP_cellResults_tag2el_4, + 2, /* Count of tags in the map */ + asn_MAP_cellResults_oms_4, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_cellResults_4 = { + "cellResults", + "cellResults", + &asn_OP_SEQUENCE, + asn_DEF_cellResults_tags_4, + sizeof(asn_DEF_cellResults_tags_4) + /sizeof(asn_DEF_cellResults_tags_4[0]) - 1, /* 1 */ + asn_DEF_cellResults_tags_4, /* Same as above */ + sizeof(asn_DEF_cellResults_tags_4) + /sizeof(asn_DEF_cellResults_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_cellResults_4, + 2, /* Elements count */ + &asn_SPC_cellResults_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_rsIndexResults_7[] = { + { ATF_POINTER, 2, offsetof(struct MeasResultNR__measResult__rsIndexResults, resultsSSB_Indexes), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ResultsPerSSB_IndexList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resultsSSB-Indexes" + }, + { ATF_POINTER, 1, offsetof(struct MeasResultNR__measResult__rsIndexResults, resultsCSI_RS_Indexes), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ResultsPerCSI_RS_IndexList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resultsCSI-RS-Indexes" + }, +}; +static const int asn_MAP_rsIndexResults_oms_7[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_rsIndexResults_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_rsIndexResults_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* resultsSSB-Indexes */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* resultsCSI-RS-Indexes */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_rsIndexResults_specs_7 = { + sizeof(struct MeasResultNR__measResult__rsIndexResults), + offsetof(struct MeasResultNR__measResult__rsIndexResults, _asn_ctx), + asn_MAP_rsIndexResults_tag2el_7, + 2, /* Count of tags in the map */ + asn_MAP_rsIndexResults_oms_7, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_rsIndexResults_7 = { + "rsIndexResults", + "rsIndexResults", + &asn_OP_SEQUENCE, + asn_DEF_rsIndexResults_tags_7, + sizeof(asn_DEF_rsIndexResults_tags_7) + /sizeof(asn_DEF_rsIndexResults_tags_7[0]) - 1, /* 1 */ + asn_DEF_rsIndexResults_tags_7, /* Same as above */ + sizeof(asn_DEF_rsIndexResults_tags_7) + /sizeof(asn_DEF_rsIndexResults_tags_7[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_rsIndexResults_7, + 2, /* Elements count */ + &asn_SPC_rsIndexResults_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_measResult_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasResultNR__measResult, cellResults), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_cellResults_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellResults" + }, + { ATF_POINTER, 1, offsetof(struct MeasResultNR__measResult, rsIndexResults), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_rsIndexResults_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsIndexResults" + }, +}; +static const int asn_MAP_measResult_oms_3[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_measResult_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_measResult_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellResults */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* rsIndexResults */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_measResult_specs_3 = { + sizeof(struct MeasResultNR__measResult), + offsetof(struct MeasResultNR__measResult, _asn_ctx), + asn_MAP_measResult_tag2el_3, + 2, /* Count of tags in the map */ + asn_MAP_measResult_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_measResult_3 = { + "measResult", + "measResult", + &asn_OP_SEQUENCE, + asn_DEF_measResult_tags_3, + sizeof(asn_DEF_measResult_tags_3) + /sizeof(asn_DEF_measResult_tags_3[0]) - 1, /* 1 */ + asn_DEF_measResult_tags_3, /* Same as above */ + sizeof(asn_DEF_measResult_tags_3) + /sizeof(asn_DEF_measResult_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_measResult_3, + 2, /* Elements count */ + &asn_SPC_measResult_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MeasResultNR_1[] = { + { ATF_POINTER, 1, offsetof(struct MeasResultNR, physCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasResultNR, measResult), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_measResult_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResult" + }, +}; +static const int asn_MAP_MeasResultNR_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_MeasResultNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MeasResultNR_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* physCellId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* measResult */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MeasResultNR_specs_1 = { + sizeof(struct MeasResultNR), + offsetof(struct MeasResultNR, _asn_ctx), + asn_MAP_MeasResultNR_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_MeasResultNR_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasResultNR = { + "MeasResultNR", + "MeasResultNR", + &asn_OP_SEQUENCE, + asn_DEF_MeasResultNR_tags_1, + sizeof(asn_DEF_MeasResultNR_tags_1) + /sizeof(asn_DEF_MeasResultNR_tags_1[0]), /* 1 */ + asn_DEF_MeasResultNR_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasResultNR_tags_1) + /sizeof(asn_DEF_MeasResultNR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasResultNR_1, + 2, /* Elements count */ + &asn_SPC_MeasResultNR_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasResultNR.h b/setup/xapp-sm-connector/asn1c_defs/MeasResultNR.h new file mode 100644 index 0000000..8f9e1d4 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasResultNR.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _MeasResultNR_H_ +#define _MeasResultNR_H_ + + +#include + +/* Including external dependencies */ +#include "PhysCellId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasQuantityResults; +struct ResultsPerSSB_IndexList; +struct ResultsPerCSI_RS_IndexList; + +/* MeasResultNR */ +typedef struct MeasResultNR { + PhysCellId_t *physCellId; /* OPTIONAL */ + struct MeasResultNR__measResult { + struct MeasResultNR__measResult__cellResults { + struct MeasQuantityResults *resultsSSB_Cell; /* OPTIONAL */ + struct MeasQuantityResults *resultsCSI_RS_Cell; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } cellResults; + struct MeasResultNR__measResult__rsIndexResults { + struct ResultsPerSSB_IndexList *resultsSSB_Indexes; /* OPTIONAL */ + struct ResultsPerCSI_RS_IndexList *resultsCSI_RS_Indexes; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rsIndexResults; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } measResult; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasResultNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasResultNR; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasResultNR_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasResultNR_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasResultNR_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasResultNeighCells.c b/setup/xapp-sm-connector/asn1c_defs/MeasResultNeighCells.c new file mode 100644 index 0000000..3f87d70 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasResultNeighCells.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "MeasResultNeighCells.h" + +#include "MeasResultListNR.h" +#include "MeasResultListEUTRA.h" +static asn_oer_constraints_t asn_OER_type_MeasResultNeighCells_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_MeasResultNeighCells_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_MeasResultNeighCells_1[] = { + { ATF_POINTER, 0, offsetof(struct MeasResultNeighCells, choice.measResultListNR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasResultListNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultListNR" + }, + { ATF_POINTER, 0, offsetof(struct MeasResultNeighCells, choice.measResultListEUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasResultListEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultListEUTRA" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_MeasResultNeighCells_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measResultListNR */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* measResultListEUTRA */ +}; +asn_CHOICE_specifics_t asn_SPC_MeasResultNeighCells_specs_1 = { + sizeof(struct MeasResultNeighCells), + offsetof(struct MeasResultNeighCells, _asn_ctx), + offsetof(struct MeasResultNeighCells, present), + sizeof(((struct MeasResultNeighCells *)0)->present), + asn_MAP_MeasResultNeighCells_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasResultNeighCells = { + "MeasResultNeighCells", + "MeasResultNeighCells", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_MeasResultNeighCells_constr_1, &asn_PER_type_MeasResultNeighCells_constr_1, CHOICE_constraint }, + asn_MBR_MeasResultNeighCells_1, + 2, /* Elements count */ + &asn_SPC_MeasResultNeighCells_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasResultNeighCells.h b/setup/xapp-sm-connector/asn1c_defs/MeasResultNeighCells.h new file mode 100644 index 0000000..f841bb5 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasResultNeighCells.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _MeasResultNeighCells_H_ +#define _MeasResultNeighCells_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MeasResultNeighCells_PR { + MeasResultNeighCells_PR_NOTHING, /* No components present */ + MeasResultNeighCells_PR_measResultListNR, + MeasResultNeighCells_PR_measResultListEUTRA + /* Extensions may appear below */ + +} MeasResultNeighCells_PR; + +/* Forward declarations */ +struct MeasResultListNR; +struct MeasResultListEUTRA; + +/* MeasResultNeighCells */ +typedef struct MeasResultNeighCells { + MeasResultNeighCells_PR present; + union MeasResultNeighCells_u { + struct MeasResultListNR *measResultListNR; + struct MeasResultListEUTRA *measResultListEUTRA; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasResultNeighCells_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasResultNeighCells; +extern asn_CHOICE_specifics_t asn_SPC_MeasResultNeighCells_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasResultNeighCells_1[2]; +extern asn_per_constraints_t asn_PER_type_MeasResultNeighCells_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasResultNeighCells_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasResultPCell.c b/setup/xapp-sm-connector/asn1c_defs/MeasResultPCell.c new file mode 100644 index 0000000..cbd74f8 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasResultPCell.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "MeasResultPCell.h" + +asn_TYPE_member_t asn_MBR_MeasResultPCell_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasResultPCell, eutra_PhysCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-PhysCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasResultPCell, rsrpResult), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrpResult" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasResultPCell, rsrqResult), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRQ_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrqResult" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasResultPCell_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MeasResultPCell_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eutra-PhysCellId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rsrpResult */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* rsrqResult */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MeasResultPCell_specs_1 = { + sizeof(struct MeasResultPCell), + offsetof(struct MeasResultPCell, _asn_ctx), + asn_MAP_MeasResultPCell_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_MeasResultPCell = { + "MeasResultPCell", + "MeasResultPCell", + &asn_OP_SEQUENCE, + asn_DEF_MeasResultPCell_tags_1, + sizeof(asn_DEF_MeasResultPCell_tags_1) + /sizeof(asn_DEF_MeasResultPCell_tags_1[0]), /* 1 */ + asn_DEF_MeasResultPCell_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasResultPCell_tags_1) + /sizeof(asn_DEF_MeasResultPCell_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasResultPCell_1, + 3, /* Elements count */ + &asn_SPC_MeasResultPCell_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasResultPCell.h b/setup/xapp-sm-connector/asn1c_defs/MeasResultPCell.h new file mode 100644 index 0000000..ad0fb7e --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasResultPCell.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _MeasResultPCell_H_ +#define _MeasResultPCell_H_ + + +#include + +/* Including external dependencies */ +#include "PhysCellId.h" +#include "RSRP-Range.h" +#include "RSRQ-Range.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MeasResultPCell */ +typedef struct MeasResultPCell { + PhysCellId_t eutra_PhysCellId; + RSRP_Range_t rsrpResult; + RSRQ_Range_t rsrqResult; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasResultPCell_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasResultPCell; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasResultPCell_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasResultPCell_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasResultPCell_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasResultServMO.c b/setup/xapp-sm-connector/asn1c_defs/MeasResultServMO.c new file mode 100644 index 0000000..346f5fe --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasResultServMO.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "MeasResultServMO.h" + +#include "MeasResultNR.h" +asn_TYPE_member_t asn_MBR_MeasResultServMO_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasResultServMO, servCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasResultServMO, measResultServingCell), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasResultNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultServingCell" + }, + { ATF_POINTER, 1, offsetof(struct MeasResultServMO, measResultBestNeighCell), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasResultNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultBestNeighCell" + }, +}; +static const int asn_MAP_MeasResultServMO_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_MeasResultServMO_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MeasResultServMO_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* servCellId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measResultServingCell */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* measResultBestNeighCell */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MeasResultServMO_specs_1 = { + sizeof(struct MeasResultServMO), + offsetof(struct MeasResultServMO, _asn_ctx), + asn_MAP_MeasResultServMO_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_MeasResultServMO_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasResultServMO = { + "MeasResultServMO", + "MeasResultServMO", + &asn_OP_SEQUENCE, + asn_DEF_MeasResultServMO_tags_1, + sizeof(asn_DEF_MeasResultServMO_tags_1) + /sizeof(asn_DEF_MeasResultServMO_tags_1[0]), /* 1 */ + asn_DEF_MeasResultServMO_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasResultServMO_tags_1) + /sizeof(asn_DEF_MeasResultServMO_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasResultServMO_1, + 3, /* Elements count */ + &asn_SPC_MeasResultServMO_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasResultServMO.h b/setup/xapp-sm-connector/asn1c_defs/MeasResultServMO.h new file mode 100644 index 0000000..67e3676 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasResultServMO.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _MeasResultServMO_H_ +#define _MeasResultServMO_H_ + + +#include + +/* Including external dependencies */ +#include "ServCellIndex.h" +#include "MeasResultNR.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasResultNR; + +/* MeasResultServMO */ +typedef struct MeasResultServMO { + ServCellIndex_t servCellId; + MeasResultNR_t measResultServingCell; + struct MeasResultNR *measResultBestNeighCell; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasResultServMO_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasResultServMO; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasResultServMO_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasResultServMO_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasResultServMO_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasResultServMOList.c b/setup/xapp-sm-connector/asn1c_defs/MeasResultServMOList.c new file mode 100644 index 0000000..2798a7e --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasResultServMOList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "MeasResultServMOList.h" + +#include "MeasResultServMO.h" +static asn_oer_constraints_t asn_OER_type_MeasResultServMOList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_MeasResultServMOList_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 */ +}; +asn_TYPE_member_t asn_MBR_MeasResultServMOList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MeasResultServMO, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasResultServMOList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MeasResultServMOList_specs_1 = { + sizeof(struct MeasResultServMOList), + offsetof(struct MeasResultServMOList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasResultServMOList = { + "MeasResultServMOList", + "MeasResultServMOList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MeasResultServMOList_tags_1, + sizeof(asn_DEF_MeasResultServMOList_tags_1) + /sizeof(asn_DEF_MeasResultServMOList_tags_1[0]), /* 1 */ + asn_DEF_MeasResultServMOList_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasResultServMOList_tags_1) + /sizeof(asn_DEF_MeasResultServMOList_tags_1[0]), /* 1 */ + { &asn_OER_type_MeasResultServMOList_constr_1, &asn_PER_type_MeasResultServMOList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MeasResultServMOList_1, + 1, /* Single element */ + &asn_SPC_MeasResultServMOList_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasResultServMOList.h b/setup/xapp-sm-connector/asn1c_defs/MeasResultServMOList.h new file mode 100644 index 0000000..422db0f --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasResultServMOList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _MeasResultServMOList_H_ +#define _MeasResultServMOList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasResultServMO; + +/* MeasResultServMOList */ +typedef struct MeasResultServMOList { + A_SEQUENCE_OF(struct MeasResultServMO) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasResultServMOList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasResultServMOList; +extern asn_SET_OF_specifics_t asn_SPC_MeasResultServMOList_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasResultServMOList_1[1]; +extern asn_per_constraints_t asn_PER_type_MeasResultServMOList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasResultServMOList_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementCondItem.c b/setup/xapp-sm-connector/asn1c_defs/MeasurementCondItem.c new file mode 100644 index 0000000..56700cf --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementCondItem.c @@ -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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "MeasurementCondItem.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, + { 0, 0, 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, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "matchingCond" + }, +}; +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_SEQUENCE_specifics_t asn_SPC_MeasurementCondItem_specs_1 = { + sizeof(struct MeasurementCondItem), + offsetof(struct MeasurementCondItem, _asn_ctx), + asn_MAP_MeasurementCondItem_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_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 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasurementCondItem_1, + 2, /* Elements count */ + &asn_SPC_MeasurementCondItem_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementCondItem.h b/setup/xapp-sm-connector/asn1c_defs/MeasurementCondItem.h new file mode 100644 index 0000000..6467534 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementCondItem.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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _MeasurementCondItem_H_ +#define _MeasurementCondItem_H_ + + +#include + +/* Including external dependencies */ +#include "MeasurementType.h" +#include "MatchingCondList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MeasurementCondItem */ +typedef struct MeasurementCondItem { + MeasurementType_t measType; + MatchingCondList_t matchingCond; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* 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[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementCondItem_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementCondList.c b/setup/xapp-sm-connector/asn1c_defs/MeasurementCondList.c new file mode 100644 index 0000000..c1d6e29 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementCondList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "MeasurementCondList.h" + +#include "MeasurementCondItem.h" +static asn_oer_constraints_t asn_OER_type_MeasurementCondList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +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 */ +}; +asn_TYPE_member_t asn_MBR_MeasurementCondList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MeasurementCondItem, + 0, + { 0, 0, 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 */ + { &asn_OER_type_MeasurementCondList_constr_1, &asn_PER_type_MeasurementCondList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MeasurementCondList_1, + 1, /* Single element */ + &asn_SPC_MeasurementCondList_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementCondList.h b/setup/xapp-sm-connector/asn1c_defs/MeasurementCondList.h new file mode 100644 index 0000000..cee1073 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _MeasurementCondList_H_ +#define _MeasurementCondList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementCondUEidItem.c b/setup/xapp-sm-connector/asn1c_defs/MeasurementCondUEidItem.c new file mode 100644 index 0000000..0968946 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementCondUEidItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "MeasurementCondUEidItem.h" + +#include "MatchingUEidList.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, + { 0, 0, 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, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "matchingCond" + }, + { ATF_POINTER, 1, offsetof(struct MeasurementCondUEidItem, matchingUEidList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MatchingUEidList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "matchingUEidList" + }, +}; +static const int asn_MAP_MeasurementCondUEidItem_oms_1[] = { 2 }; +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_SEQUENCE_specifics_t asn_SPC_MeasurementCondUEidItem_specs_1 = { + sizeof(struct MeasurementCondUEidItem), + offsetof(struct MeasurementCondUEidItem, _asn_ctx), + asn_MAP_MeasurementCondUEidItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_MeasurementCondUEidItem_oms_1, /* Optional members */ + 1, 0, /* 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 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasurementCondUEidItem_1, + 3, /* Elements count */ + &asn_SPC_MeasurementCondUEidItem_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementCondUEidItem.h b/setup/xapp-sm-connector/asn1c_defs/MeasurementCondUEidItem.h new file mode 100644 index 0000000..e49d2b9 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementCondUEidItem.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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _MeasurementCondUEidItem_H_ +#define _MeasurementCondUEidItem_H_ + + +#include + +/* Including external dependencies */ +#include "MeasurementType.h" +#include "MatchingCondList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MatchingUEidList; + +/* MeasurementCondUEidItem */ +typedef struct MeasurementCondUEidItem { + MeasurementType_t measType; + MatchingCondList_t matchingCond; + struct MatchingUEidList *matchingUEidList; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* 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[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementCondUEidItem_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementCondUEidList.c b/setup/xapp-sm-connector/asn1c_defs/MeasurementCondUEidList.c new file mode 100644 index 0000000..c024837 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementCondUEidList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "MeasurementCondUEidList.h" + +#include "MeasurementCondUEidItem.h" +static asn_oer_constraints_t asn_OER_type_MeasurementCondUEidList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +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 */ +}; +asn_TYPE_member_t asn_MBR_MeasurementCondUEidList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MeasurementCondUEidItem, + 0, + { 0, 0, 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 */ + { &asn_OER_type_MeasurementCondUEidList_constr_1, &asn_PER_type_MeasurementCondUEidList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MeasurementCondUEidList_1, + 1, /* Single element */ + &asn_SPC_MeasurementCondUEidList_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementCondUEidList.h b/setup/xapp-sm-connector/asn1c_defs/MeasurementCondUEidList.h new file mode 100644 index 0000000..88768c1 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _MeasurementCondUEidList_H_ +#define _MeasurementCondUEidList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementData.c b/setup/xapp-sm-connector/asn1c_defs/MeasurementData.c new file mode 100644 index 0000000..5cadb7c --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementData.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "MeasurementData.h" + +#include "MeasurementRecord.h" +static asn_oer_constraints_t asn_OER_type_MeasurementData_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +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 */ +}; +asn_TYPE_member_t asn_MBR_MeasurementData_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MeasurementRecord, + 0, + { 0, 0, 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 */ + { &asn_OER_type_MeasurementData_constr_1, &asn_PER_type_MeasurementData_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MeasurementData_1, + 1, /* Single element */ + &asn_SPC_MeasurementData_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementData.h b/setup/xapp-sm-connector/asn1c_defs/MeasurementData.h new file mode 100644 index 0000000..31dc470 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _MeasurementData_H_ +#define _MeasurementData_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasurementRecord; + +/* MeasurementData */ +typedef struct MeasurementData { + A_SEQUENCE_OF(struct MeasurementRecord) 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 diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementInfo-Action-Item.c b/setup/xapp-sm-connector/asn1c_defs/MeasurementInfo-Action-Item.c new file mode 100644 index 0000000..e18ced9 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementInfo-Action-Item.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "MeasurementInfo-Action-Item.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, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measName" + }, + { ATF_POINTER, 1, offsetof(struct MeasurementInfo_Action_Item, measID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasurementTypeID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measID" + }, +}; +static const int asn_MAP_MeasurementInfo_Action_Item_oms_1[] = { 1 }; +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_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, + 2, /* Count of tags in the map */ + asn_MAP_MeasurementInfo_Action_Item_oms_1, /* Optional members */ + 1, 0, /* 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 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasurementInfo_Action_Item_1, + 2, /* Elements count */ + &asn_SPC_MeasurementInfo_Action_Item_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementInfo-Action-Item.h b/setup/xapp-sm-connector/asn1c_defs/MeasurementInfo-Action-Item.h new file mode 100644 index 0000000..c3840d4 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementInfo-Action-Item.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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _MeasurementInfo_Action_Item_H_ +#define _MeasurementInfo_Action_Item_H_ + + +#include + +/* Including external dependencies */ +#include "MeasurementTypeName.h" +#include "MeasurementTypeID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MeasurementInfo-Action-Item */ +typedef struct MeasurementInfo_Action_Item { + MeasurementTypeName_t measName; + MeasurementTypeID_t *measID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* 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[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementInfo_Action_Item_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementInfo-Action-List.c b/setup/xapp-sm-connector/asn1c_defs/MeasurementInfo-Action-List.c new file mode 100644 index 0000000..3816e86 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementInfo-Action-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "MeasurementInfo-Action-List.h" + +#include "MeasurementInfo-Action-Item.h" +static asn_oer_constraints_t asn_OER_type_MeasurementInfo_Action_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +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 */ +}; +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, + { 0, 0, 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 */ + { &asn_OER_type_MeasurementInfo_Action_List_constr_1, &asn_PER_type_MeasurementInfo_Action_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MeasurementInfo_Action_List_1, + 1, /* Single element */ + &asn_SPC_MeasurementInfo_Action_List_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementInfo-Action-List.h b/setup/xapp-sm-connector/asn1c_defs/MeasurementInfo-Action-List.h new file mode 100644 index 0000000..896c317 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _MeasurementInfo_Action_List_H_ +#define _MeasurementInfo_Action_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementInfoItem.c b/setup/xapp-sm-connector/asn1c_defs/MeasurementInfoItem.c new file mode 100644 index 0000000..5edae52 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementInfoItem.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measType" + }, +}; +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_SEQUENCE_specifics_t asn_SPC_MeasurementInfoItem_specs_1 = { + sizeof(struct MeasurementInfoItem), + offsetof(struct MeasurementInfoItem, _asn_ctx), + asn_MAP_MeasurementInfoItem_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_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 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasurementInfoItem_1, + 1, /* Elements count */ + &asn_SPC_MeasurementInfoItem_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementInfoItem.h b/setup/xapp-sm-connector/asn1c_defs/MeasurementInfoItem.h new file mode 100644 index 0000000..171c1c5 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementInfoItem.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _MeasurementInfoItem_H_ +#define _MeasurementInfoItem_H_ + + +#include + +/* Including external dependencies */ +#include "MeasurementType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MeasurementInfoItem */ +typedef struct MeasurementInfoItem { + MeasurementType_t measType; + /* + * 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[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementInfoItem_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementInfoList.c b/setup/xapp-sm-connector/asn1c_defs/MeasurementInfoList.c new file mode 100644 index 0000000..9e7aed9 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementInfoList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "MeasurementInfoList.h" + +#include "MeasurementInfoItem.h" +static asn_oer_constraints_t asn_OER_type_MeasurementInfoList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +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 */ +}; +asn_TYPE_member_t asn_MBR_MeasurementInfoList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MeasurementInfoItem, + 0, + { 0, 0, 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 */ + { &asn_OER_type_MeasurementInfoList_constr_1, &asn_PER_type_MeasurementInfoList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MeasurementInfoList_1, + 1, /* Single element */ + &asn_SPC_MeasurementInfoList_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementInfoList.h b/setup/xapp-sm-connector/asn1c_defs/MeasurementInfoList.h new file mode 100644 index 0000000..f58fabe --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementInfoList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _MeasurementInfoList_H_ +#define _MeasurementInfoList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementLabel.c b/setup/xapp-sm-connector/asn1c_defs/MeasurementLabel.c new file mode 100644 index 0000000..f5e19bb --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementLabel.c @@ -0,0 +1,527 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "MeasurementLabel.h" + +#include "SNSSAI.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. + */ +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 >= 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 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 >= 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 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 >= 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 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 >= 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 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 >= 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_type_sUM_constr_13 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_sUM_constr_13 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_oer_constraints_t asn_OER_type_preLabelOverride_constr_19 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_preLabelOverride_constr_19 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_oer_constraints_t asn_OER_type_startEndInd_constr_22 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_startEndInd_constr_22 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 asn_oer_constraints_t asn_OER_memb_bitrateRange_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_bitrateRange_constr_11 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_oer_constraints_t asn_OER_memb_layerMU_MIMO_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_layerMU_MIMO_constr_12 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_oer_constraints_t asn_OER_memb_distBinX_constr_16 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_distBinX_constr_16 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_oer_constraints_t asn_OER_memb_distBinY_constr_17 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_distBinY_constr_17 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_oer_constraints_t asn_OER_memb_distBinZ_constr_18 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_distBinZ_constr_18 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 const asn_INTEGER_enum_map_t asn_MAP_sUM_value2enum_13[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_sUM_enum2value_13[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_sUM_specs_13 = { + asn_MAP_sUM_value2enum_13, /* "tag" => N; sorted by tag */ + asn_MAP_sUM_enum2value_13, /* 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_13[] = { + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_sUM_13 = { + "sUM", + "sUM", + &asn_OP_NativeEnumerated, + asn_DEF_sUM_tags_13, + sizeof(asn_DEF_sUM_tags_13) + /sizeof(asn_DEF_sUM_tags_13[0]) - 1, /* 1 */ + asn_DEF_sUM_tags_13, /* Same as above */ + sizeof(asn_DEF_sUM_tags_13) + /sizeof(asn_DEF_sUM_tags_13[0]), /* 2 */ + { &asn_OER_type_sUM_constr_13, &asn_PER_type_sUM_constr_13, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_sUM_specs_13 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_preLabelOverride_value2enum_19[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_preLabelOverride_enum2value_19[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_preLabelOverride_specs_19 = { + asn_MAP_preLabelOverride_value2enum_19, /* "tag" => N; sorted by tag */ + asn_MAP_preLabelOverride_enum2value_19, /* 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_19[] = { + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_preLabelOverride_19 = { + "preLabelOverride", + "preLabelOverride", + &asn_OP_NativeEnumerated, + asn_DEF_preLabelOverride_tags_19, + sizeof(asn_DEF_preLabelOverride_tags_19) + /sizeof(asn_DEF_preLabelOverride_tags_19[0]) - 1, /* 1 */ + asn_DEF_preLabelOverride_tags_19, /* Same as above */ + sizeof(asn_DEF_preLabelOverride_tags_19) + /sizeof(asn_DEF_preLabelOverride_tags_19[0]), /* 2 */ + { &asn_OER_type_preLabelOverride_constr_19, &asn_PER_type_preLabelOverride_constr_19, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_preLabelOverride_specs_19 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_startEndInd_value2enum_22[] = { + { 0, 5, "start" }, + { 1, 3, "end" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_startEndInd_enum2value_22[] = { + 1, /* end(1) */ + 0 /* start(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_startEndInd_specs_22 = { + asn_MAP_startEndInd_value2enum_22, /* "tag" => N; sorted by tag */ + asn_MAP_startEndInd_enum2value_22, /* 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_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_startEndInd_22 = { + "startEndInd", + "startEndInd", + &asn_OP_NativeEnumerated, + asn_DEF_startEndInd_tags_22, + sizeof(asn_DEF_startEndInd_tags_22) + /sizeof(asn_DEF_startEndInd_tags_22[0]) - 1, /* 1 */ + asn_DEF_startEndInd_tags_22, /* Same as above */ + sizeof(asn_DEF_startEndInd_tags_22) + /sizeof(asn_DEF_startEndInd_tags_22[0]), /* 2 */ + { &asn_OER_type_startEndInd_constr_22, &asn_PER_type_startEndInd_constr_22, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_startEndInd_specs_22 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MeasurementLabel_1[] = { + { ATF_POINTER, 17, offsetof(struct MeasurementLabel, plmnID), + (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 */ + "plmnID" + }, + { ATF_POINTER, 16, offsetof(struct MeasurementLabel, sliceID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SNSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sliceID" + }, + { ATF_POINTER, 15, offsetof(struct MeasurementLabel, fiveQI), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FiveQI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fiveQI" + }, + { ATF_POINTER, 14, offsetof(struct MeasurementLabel, qFI), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_QFI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qFI" + }, + { ATF_POINTER, 13, offsetof(struct MeasurementLabel, qCI), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_QCI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qCI" + }, + { ATF_POINTER, 12, offsetof(struct MeasurementLabel, qCImax), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_QCI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qCImax" + }, + { ATF_POINTER, 11, offsetof(struct MeasurementLabel, qCImin), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_QCI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qCImin" + }, + { ATF_POINTER, 10, offsetof(struct MeasurementLabel, aRPmax), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ARP, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aRPmax" + }, + { ATF_POINTER, 9, offsetof(struct MeasurementLabel, aRPmin), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ARP, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aRPmin" + }, + { ATF_POINTER, 8, offsetof(struct MeasurementLabel, bitrateRange), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_bitrateRange_constr_11, &asn_PER_memb_bitrateRange_constr_11, memb_bitrateRange_constraint_1 }, + 0, 0, /* No default value */ + "bitrateRange" + }, + { ATF_POINTER, 7, offsetof(struct MeasurementLabel, layerMU_MIMO), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_layerMU_MIMO_constr_12, &asn_PER_memb_layerMU_MIMO_constr_12, memb_layerMU_MIMO_constraint_1 }, + 0, 0, /* No default value */ + "layerMU-MIMO" + }, + { ATF_POINTER, 6, offsetof(struct MeasurementLabel, sUM), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_sUM_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sUM" + }, + { ATF_POINTER, 5, offsetof(struct MeasurementLabel, distBinX), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_distBinX_constr_16, &asn_PER_memb_distBinX_constr_16, memb_distBinX_constraint_1 }, + 0, 0, /* No default value */ + "distBinX" + }, + { ATF_POINTER, 4, offsetof(struct MeasurementLabel, distBinY), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_distBinY_constr_17, &asn_PER_memb_distBinY_constr_17, memb_distBinY_constraint_1 }, + 0, 0, /* No default value */ + "distBinY" + }, + { ATF_POINTER, 3, offsetof(struct MeasurementLabel, distBinZ), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_distBinZ_constr_18, &asn_PER_memb_distBinZ_constr_18, memb_distBinZ_constraint_1 }, + 0, 0, /* No default value */ + "distBinZ" + }, + { ATF_POINTER, 2, offsetof(struct MeasurementLabel, preLabelOverride), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_preLabelOverride_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "preLabelOverride" + }, + { ATF_POINTER, 1, offsetof(struct MeasurementLabel, startEndInd), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_startEndInd_22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "startEndInd" + }, +}; +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 }; +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 }, /* plmnID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sliceID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* fiveQI */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* qFI */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* qCI */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* qCImax */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* qCImin */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* aRPmax */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* aRPmin */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* bitrateRange */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* layerMU-MIMO */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* sUM */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* distBinX */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* distBinY */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* distBinZ */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* preLabelOverride */ + { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 } /* startEndInd */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MeasurementLabel_specs_1 = { + sizeof(struct MeasurementLabel), + offsetof(struct MeasurementLabel, _asn_ctx), + asn_MAP_MeasurementLabel_tag2el_1, + 17, /* Count of tags in the map */ + asn_MAP_MeasurementLabel_oms_1, /* Optional members */ + 17, 0, /* Root/Additions */ + 17, /* 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 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasurementLabel_1, + 17, /* Elements count */ + &asn_SPC_MeasurementLabel_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementLabel.h b/setup/xapp-sm-connector/asn1c_defs/MeasurementLabel.h new file mode 100644 index 0000000..80c11c5 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementLabel.h @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _MeasurementLabel_H_ +#define _MeasurementLabel_H_ + + +#include + +/* Including external dependencies */ +#include "PLMN-Identity.h" +#include "FiveQI.h" +#include "QFI.h" +#include "QCI.h" +#include "ARP.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +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; + +/* Forward declarations */ +struct SNSSAI; + +/* MeasurementLabel */ +typedef struct MeasurementLabel { + PLMN_Identity_t *plmnID; /* OPTIONAL */ + struct SNSSAI *sliceID; /* OPTIONAL */ + FiveQI_t *fiveQI; /* OPTIONAL */ + QFI_t *qFI; /* OPTIONAL */ + QCI_t *qCI; /* OPTIONAL */ + QCI_t *qCImax; /* OPTIONAL */ + QCI_t *qCImin; /* OPTIONAL */ + ARP_t *aRPmax; /* OPTIONAL */ + ARP_t *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 */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasurementLabel_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_sUM_13; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_preLabelOverride_19; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_startEndInd_22; // (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[17]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementLabel_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementRecord.c b/setup/xapp-sm-connector/asn1c_defs/MeasurementRecord.c new file mode 100644 index 0000000..6e50f78 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementRecord.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "MeasurementRecord.h" + +#include "MeasurementRecordItem.h" +static asn_oer_constraints_t asn_OER_type_MeasurementRecord_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..2147483647)) */}; +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 */ +}; +asn_TYPE_member_t asn_MBR_MeasurementRecord_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_MeasurementRecordItem, + 0, + { 0, 0, 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 */ + { &asn_OER_type_MeasurementRecord_constr_1, &asn_PER_type_MeasurementRecord_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MeasurementRecord_1, + 1, /* Single element */ + &asn_SPC_MeasurementRecord_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementRecord.h b/setup/xapp-sm-connector/asn1c_defs/MeasurementRecord.h new file mode 100644 index 0000000..51a3176 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _MeasurementRecord_H_ +#define _MeasurementRecord_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementRecordItem.c b/setup/xapp-sm-connector/asn1c_defs/MeasurementRecordItem.c new file mode 100644 index 0000000..2e52ed2 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementRecordItem.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "MeasurementRecordItem.h" + +static asn_oer_constraints_t asn_OER_type_MeasurementRecordItem_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +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 */ +}; +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_NativeInteger, + 0, + { 0, 0, 0 }, + 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, + { 0, 0, 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, + { 0, 0, 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) */ + { &asn_OER_type_MeasurementRecordItem_constr_1, &asn_PER_type_MeasurementRecordItem_constr_1, CHOICE_constraint }, + asn_MBR_MeasurementRecordItem_1, + 3, /* Elements count */ + &asn_SPC_MeasurementRecordItem_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementRecordItem.h b/setup/xapp-sm-connector/asn1c_defs/MeasurementRecordItem.h new file mode 100644 index 0000000..f1ae819 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementRecordItem.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _MeasurementRecordItem_H_ +#define _MeasurementRecordItem_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include + +#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 { + 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_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 diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementType.c b/setup/xapp-sm-connector/asn1c_defs/MeasurementType.c new file mode 100644 index 0000000..2d3e1f7 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementType.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "MeasurementType.h" + +static asn_oer_constraints_t asn_OER_type_MeasurementType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +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 */ +}; +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, + { 0, 0, 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, + { 0, 0, 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) */ + { &asn_OER_type_MeasurementType_constr_1, &asn_PER_type_MeasurementType_constr_1, CHOICE_constraint }, + asn_MBR_MeasurementType_1, + 2, /* Elements count */ + &asn_SPC_MeasurementType_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementType.h b/setup/xapp-sm-connector/asn1c_defs/MeasurementType.h new file mode 100644 index 0000000..89b0266 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementType.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _MeasurementType_H_ +#define _MeasurementType_H_ + + +#include + +/* Including external dependencies */ +#include "MeasurementTypeName.h" +#include "MeasurementTypeID.h" +#include + +#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 diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementTypeID.c b/setup/xapp-sm-connector/asn1c_defs/MeasurementTypeID.c new file mode 100644 index 0000000..62a8a79 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementTypeID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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 >= 1 && 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_MeasurementTypeID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_MeasurementTypeID_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 */ +}; +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 */ + { &asn_OER_type_MeasurementTypeID_constr_1, &asn_PER_type_MeasurementTypeID_constr_1, MeasurementTypeID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementTypeID.h b/setup/xapp-sm-connector/asn1c_defs/MeasurementTypeID.h new file mode 100644 index 0000000..bec93a3 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementTypeID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _MeasurementTypeID_H_ +#define _MeasurementTypeID_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +oer_type_decoder_f MeasurementTypeID_decode_oer; +oer_type_encoder_f MeasurementTypeID_encode_oer; +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 diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementTypeName.c b/setup/xapp-sm-connector/asn1c_defs/MeasurementTypeName.c new file mode 100644 index 0000000..1b5fd5a --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementTypeName.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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 >= 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_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. + */ +static asn_oer_constraints_t asn_OER_type_MeasurementTypeName_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +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 */ +}; +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 */ + { &asn_OER_type_MeasurementTypeName_constr_1, &asn_PER_type_MeasurementTypeName_constr_1, MeasurementTypeName_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementTypeName.h b/setup/xapp-sm-connector/asn1c_defs/MeasurementTypeName.h new file mode 100644 index 0000000..0d21344 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementTypeName.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _MeasurementTypeName_H_ +#define _MeasurementTypeName_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +oer_type_decoder_f MeasurementTypeName_decode_oer; +oer_type_encoder_f MeasurementTypeName_encode_oer; +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 diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementValue.c b/setup/xapp-sm-connector/asn1c_defs/MeasurementValue.c new file mode 100644 index 0000000..ed03a0b --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementValue.c @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "MeasurementValue.h" + +#include "L3-RRC-Measurements.h" +static asn_oer_constraints_t asn_OER_type_MeasurementValue_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_MeasurementValue_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_MeasurementValue_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasurementValue, choice.valueInt), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "valueInt" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasurementValue, choice.valueReal), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeReal, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "valueReal" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasurementValue, choice.noValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "noValue" + }, + { ATF_POINTER, 0, offsetof(struct MeasurementValue, choice.valueRRC), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_L3_RRC_Measurements, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "valueRRC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_MeasurementValue_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* valueInt */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* valueReal */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* noValue */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* valueRRC */ +}; +asn_CHOICE_specifics_t asn_SPC_MeasurementValue_specs_1 = { + sizeof(struct MeasurementValue), + offsetof(struct MeasurementValue, _asn_ctx), + offsetof(struct MeasurementValue, present), + sizeof(((struct MeasurementValue *)0)->present), + asn_MAP_MeasurementValue_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, + 4 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasurementValue = { + "MeasurementValue", + "MeasurementValue", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_MeasurementValue_constr_1, &asn_PER_type_MeasurementValue_constr_1, CHOICE_constraint }, + asn_MBR_MeasurementValue_1, + 4, /* Elements count */ + &asn_SPC_MeasurementValue_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/MeasurementValue.h b/setup/xapp-sm-connector/asn1c_defs/MeasurementValue.h new file mode 100644 index 0000000..f1d874a --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/MeasurementValue.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _MeasurementValue_H_ +#define _MeasurementValue_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MeasurementValue_PR { + MeasurementValue_PR_NOTHING, /* No components present */ + MeasurementValue_PR_valueInt, + MeasurementValue_PR_valueReal, + MeasurementValue_PR_noValue, + MeasurementValue_PR_valueRRC + /* Extensions may appear below */ + +} MeasurementValue_PR; + +/* Forward declarations */ +struct L3_RRC_Measurements; + +/* MeasurementValue */ +typedef struct MeasurementValue { + MeasurementValue_PR present; + union MeasurementValue_u { + long valueInt; + double valueReal; + NULL_t noValue; + struct L3_RRC_Measurements *valueRRC; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasurementValue_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasurementValue; +extern asn_CHOICE_specifics_t asn_SPC_MeasurementValue_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasurementValue_1[4]; +extern asn_per_constraints_t asn_PER_type_MeasurementValue_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementValue_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/NI-Type.c b/setup/xapp-sm-connector/asn1c_defs/NI-Type.c new file mode 100644 index 0000000..06ba425 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/NI-Type.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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/setup/xapp-sm-connector/asn1c_defs/NI-Type.h b/setup/xapp-sm-connector/asn1c_defs/NI-Type.h new file mode 100644 index 0000000..f57d977 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/NI-Type.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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/setup/xapp-sm-connector/asn1c_defs/NRCGI.c b/setup/xapp-sm-connector/asn1c_defs/NRCGI.c new file mode 100644 index 0000000..2eaae12 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/NRCGI.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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) */ + 2, /* 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/setup/xapp-sm-connector/asn1c_defs/NRCGI.h b/setup/xapp-sm-connector/asn1c_defs/NRCGI.h new file mode 100644 index 0000000..11239c7 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/NRCGI.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* 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/setup/xapp-sm-connector/asn1c_defs/NRCellIdentity.c b/setup/xapp-sm-connector/asn1c_defs/NRCellIdentity.c new file mode 100644 index 0000000..511d128 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/NRCellIdentity.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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/setup/xapp-sm-connector/asn1c_defs/NRCellIdentity.h b/setup/xapp-sm-connector/asn1c_defs/NRCellIdentity.h new file mode 100644 index 0000000..fc489c7 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/NRCellIdentity.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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/setup/xapp-sm-connector/asn1c_defs/NativeEnumerated.c b/setup/xapp-sm-connector/asn1c_defs/NativeEnumerated.c index 800da97..50ffb1d 100644 --- a/setup/xapp-sm-connector/asn1c_defs/NativeEnumerated.c +++ b/setup/xapp-sm-connector/asn1c_defs/NativeEnumerated.c @@ -97,7 +97,7 @@ NativeEnumerated_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, 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; + const asn_per_constraint_t *ct = NULL; long value; (void)opt_codec_ctx; @@ -115,7 +115,7 @@ NativeEnumerated_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, ASN_DEBUG("Decoding %s as NativeEnumerated", td->name); - if(ct->flags & APC_EXTENSIBLE) { + if(ct && ct->flags & APC_EXTENSIBLE) { int inext = per_get_few_bits(pd, 1); if(inext < 0) ASN__DECODE_STARVED; if(inext) ct = 0; @@ -165,7 +165,7 @@ NativeEnumerated_encode_uper(const asn_TYPE_descriptor_t *td, (const asn_INTEGER_specifics_t *)td->specifics; asn_enc_rval_t er = {0,0,0}; long native, value; - const asn_per_constraint_t *ct; + const asn_per_constraint_t *ct = NULL; int inext = 0; asn_INTEGER_enum_map_t key; const asn_INTEGER_enum_map_t *kf; @@ -193,13 +193,13 @@ NativeEnumerated_encode_uper(const asn_TYPE_descriptor_t *td, } value = kf - specs->value2enum; - if(ct->range_bits >= 0) { + if(ct && 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(ct && ct->flags & APC_EXTENSIBLE) { if(per_put_few_bits(po, inext, 1)) ASN__ENCODE_FAILED; if(inext) ct = 0; @@ -236,7 +236,7 @@ NativeEnumerated_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, 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; + const asn_per_constraint_t *ct = NULL; long value; (void)opt_codec_ctx; @@ -254,7 +254,7 @@ NativeEnumerated_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, ASN_DEBUG("Decoding %s as NativeEnumerated", td->name); - if(ct->flags & APC_EXTENSIBLE) { + if(ct && ct->flags & APC_EXTENSIBLE) { int inext = per_get_few_bits(pd, 1); if(inext < 0) ASN__DECODE_STARVED; if(inext) ct = 0; @@ -302,7 +302,7 @@ NativeEnumerated_encode_aper(const asn_TYPE_descriptor_t *td, 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; + const asn_per_constraint_t *ct = NULL; int inext = 0; asn_INTEGER_enum_map_t key; asn_INTEGER_enum_map_t *kf; @@ -331,13 +331,13 @@ NativeEnumerated_encode_aper(const asn_TYPE_descriptor_t *td, } value = kf - specs->value2enum; - if(ct->range_bits >= 0) { + if(ct && 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(ct && ct->flags & APC_EXTENSIBLE) { if(per_put_few_bits(po, inext, 1)) ASN__ENCODE_FAILED; if(inext) ct = 0; diff --git a/setup/xapp-sm-connector/asn1c_defs/NativeEnumerated_oer.c b/setup/xapp-sm-connector/asn1c_defs/NativeEnumerated_oer.c new file mode 100644 index 0000000..ee3c189 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/NativeEnumerated_oer.c @@ -0,0 +1,149 @@ +/* + * 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/setup/xapp-sm-connector/asn1c_defs/NativeInteger_oer.c b/setup/xapp-sm-connector/asn1c_defs/NativeInteger_oer.c new file mode 100644 index 0000000..411413a --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/NativeInteger_oer.c @@ -0,0 +1,99 @@ +/* + * 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/setup/xapp-sm-connector/asn1c_defs/NativeReal.c b/setup/xapp-sm-connector/asn1c_defs/NativeReal.c new file mode 100644 index 0000000..160a471 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/NativeReal.c @@ -0,0 +1,781 @@ +/*- + * 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 +#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, + NativeReal_print, + NativeReal_compare, + NativeReal_decode_ber, + NativeReal_encode_der, + NativeReal_decode_xer, + NativeReal_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + NativeReal_decode_oer, + NativeReal_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + NativeReal_decode_uper, + NativeReal_encode_uper, + NativeReal_decode_aper, + NativeReal_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + NativeReal_random_fill, + 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]), + { 0, 0, asn_generic_no_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +static size_t NativeReal__float_size(const asn_TYPE_descriptor_t *td); +static double NativeReal__get_double(const asn_TYPE_descriptor_t *td, + const void *ptr); +static ssize_t NativeReal__set(const asn_TYPE_descriptor_t *td, void **sptr, + double d); + +/* + * 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 occured, 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; +} + +#ifndef ASN_DISABLE_PER_SUPPORT + +/* + * 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; +} + + +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; +} + +#endif /* ASN_DISABLE_PER_SUPPORT */ + +#ifndef ASN_DISABLE_OER_SUPPORT + +/* + * Swap bytes from/to network, if local is little-endian. + * Unused endianness sections are likely removed at compile phase. + */ +static void +NativeReal__network_swap(size_t float_size, const void *srcp, uint8_t *dst) { + const uint8_t *src = srcp; + double test = -0.0; + int float_big_endian = *(const char *)&test != 0; + /* In lieu of static_assert(sizeof(double) == 8) */ + static const char sizeof_double_is_8_a[sizeof(double)-7] CC_NOTUSED; + static const char sizeof_double_is_8_b[9-sizeof(double)] CC_NOTUSED; + /* In lieu of static_assert(sizeof(sizeof) == 4) */ + static const char sizeof_float_is_4_a[sizeof(float)-3] CC_NOTUSED; + static const char sizeof_float_is_4_b[5-sizeof(float)] CC_NOTUSED; + + switch(float_size) { + case sizeof(double): + assert(sizeof(double) == 8); + if(float_big_endian) { + dst[0] = src[0]; + dst[1] = src[1]; + dst[2] = src[2]; + dst[3] = src[3]; + dst[4] = src[4]; + dst[5] = src[5]; + dst[6] = src[6]; + dst[7] = src[7]; + } else { + dst[0] = src[7]; + dst[1] = src[6]; + dst[2] = src[5]; + dst[3] = src[4]; + dst[4] = src[3]; + dst[5] = src[2]; + dst[6] = src[1]; + dst[7] = src[0]; + } + return; + case sizeof(float): + assert(sizeof(float) == 4); + if(float_big_endian) { + dst[0] = src[0]; + dst[1] = src[1]; + dst[2] = src[2]; + dst[3] = src[3]; + } else { + dst[0] = src[3]; + dst[1] = src[2]; + dst[2] = src[1]; + dst[3] = src[0]; + } + return; + } +} + +/* + * Encode as Canonical OER. + */ +asn_enc_rval_t +NativeReal_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}; + + if(!constraints) constraints = td->encoding_constraints.oer_constraints; + if(constraints && constraints->value.width != 0) { + /* X.696 IEEE 754 binary32 and binary64 encoding */ + uint8_t scratch[sizeof(double)]; + const asn_NativeReal_specifics_t *specs = + (const asn_NativeReal_specifics_t *)td->specifics; + size_t wire_size = constraints->value.width; + + if(specs ? (wire_size == specs->float_size) + : (wire_size == sizeof(double))) { + /* + * Our representation matches the wire, modulo endianness. + * That was the whole point of compact encoding! + */ + } else { + assert((wire_size == sizeof(double)) + || (specs && specs->float_size == wire_size)); + ASN__ENCODE_FAILED; + } + + /* + * The X.696 standard doesn't specify endianness, neither is IEEE 754. + * So we assume the network format is big endian. + */ + NativeReal__network_swap(wire_size, sptr, scratch); + if(cb(scratch, wire_size, app_key) < 0) { + ASN__ENCODE_FAILED; + } else { + er.encoded = wire_size; + ASN__ENCODED_OK(er); + } + } else { + double d = NativeReal__get_double(td, sptr); + ssize_t len_len; + 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 */ + len_len = oer_serialize_length(tmp.size, cb, app_key); + if(len_len < 0 || cb(tmp.buf, tmp.size, app_key) < 0) { + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_REAL, &tmp); + ASN__ENCODE_FAILED; + } else { + er.encoded = len_len + tmp.size; + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_REAL, &tmp); + ASN__ENCODED_OK(er); + } + } +} + +asn_dec_rval_t +NativeReal_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) { + asn_dec_rval_t ok = {RC_OK, 0}; + double d; + ssize_t len_len; + size_t real_body_len; + + (void)opt_codec_ctx; + + if(!constraints) constraints = td->encoding_constraints.oer_constraints; + if(constraints && constraints->value.width != 0) { + /* X.696 IEEE 754 binary32 and binary64 encoding */ + uint8_t scratch[sizeof(double)]; + size_t wire_size = constraints->value.width; + + if(size < wire_size) + ASN__DECODE_STARVED; + + /* + * The X.696 standard doesn't specify endianness, neither is IEEE 754. + * So we assume the network format is big endian. + */ + NativeReal__network_swap(wire_size, ptr, scratch); + + + switch(wire_size) { + case sizeof(double): + { + double tmp; + memcpy(&tmp, scratch, sizeof(double)); + if(NativeReal__set(td, sptr, tmp) < 0) + ASN__DECODE_FAILED; + } + break; + case sizeof(float): + { + float tmp; + memcpy(&tmp, scratch, sizeof(float)); + if(NativeReal__set(td, sptr, tmp) < 0) + ASN__DECODE_FAILED; + } + break; + default: + ASN__DECODE_FAILED; + } + + ok.consumed = wire_size; + return ok; + } + + len_len = oer_fetch_length(ptr, size, &real_body_len); + if(len_len < 0) ASN__DECODE_FAILED; + if(len_len == 0) ASN__DECODE_STARVED; + + ptr = (const char *)ptr + len_len; + size -= len_len; + + if(real_body_len > size) ASN__DECODE_STARVED; + + { + uint8_t scratch[24]; /* Longer than %.16f in decimal */ + REAL_t tmp; + int ret; + + if(real_body_len < sizeof(scratch)) { + tmp.buf = scratch; + tmp.size = real_body_len; + } else { + /* This rarely happens: impractically long value */ + tmp.buf = CALLOC(1, real_body_len + 1); + tmp.size = real_body_len; + if(!tmp.buf) { + ASN__DECODE_FAILED; + } + } + + memcpy(tmp.buf, ptr, real_body_len); + tmp.buf[real_body_len] = '\0'; + + ret = asn_REAL2double(&tmp, &d); + if(tmp.buf != scratch) FREEMEM(tmp.buf); + if(ret) { + ASN_DEBUG("REAL decoded in %" ASN_PRI_SIZE " bytes, but can't convert t double", + real_body_len); + ASN__DECODE_FAILED; + } + } + + if(NativeReal__set(td, sptr, d) < 0) + ASN__DECODE_FAILED; + + ok.consumed = len_len + real_body_len; + return ok; +} + +#endif /* ASN_DISABLE_OER_SUPPORT */ + +/* + * 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); +} + +/* + * 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; + } +} + +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; + } +} + +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; +} + + +/* + * Local helper functions. + */ + +static 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); +} + +static 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; + } +} + +static 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/setup/xapp-sm-connector/asn1c_defs/NativeReal.h b/setup/xapp-sm-connector/asn1c_defs/NativeReal.h new file mode 100644 index 0000000..1bfdc96 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/NativeReal.h @@ -0,0 +1,48 @@ +/*- + * 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; + +asn_struct_free_f NativeReal_free; +asn_struct_print_f NativeReal_print; +asn_struct_compare_f NativeReal_compare; +ber_type_decoder_f NativeReal_decode_ber; +der_type_encoder_f NativeReal_encode_der; +per_type_decoder_f NativeReal_decode_uper; +per_type_encoder_f NativeReal_encode_uper; +per_type_decoder_f NativeReal_decode_aper; +per_type_encoder_f NativeReal_encode_aper; +oer_type_decoder_f NativeReal_decode_oer; +oer_type_encoder_f NativeReal_encode_oer; +xer_type_decoder_f NativeReal_decode_xer; +xer_type_encoder_f NativeReal_encode_xer; +asn_random_fill_f NativeReal_random_fill; + +#define NativeReal_constraint asn_generic_no_constraint + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_TYPE_NativeReal_H */ diff --git a/setup/xapp-sm-connector/asn1c_defs/OCTET_STRING.c b/setup/xapp-sm-connector/asn1c_defs/OCTET_STRING.c index 432ce5a..ae34c96 100644 --- a/setup/xapp-sm-connector/asn1c_defs/OCTET_STRING.c +++ b/setup/xapp-sm-connector/asn1c_defs/OCTET_STRING.c @@ -157,7 +157,7 @@ OS__add_stack_el(struct _stack *st) { 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; @@ -745,7 +745,7 @@ OCTET_STRING__handle_control_chars(void *struct_ptr, const void *chunk_buf, size return 0; } } - + return -1; /* No, it's not */ } @@ -1956,7 +1956,9 @@ OCTET_STRING_encode_aper(const asn_TYPE_descriptor_t *td, ret = aper_put_length(po, csiz->upper_bound - csiz->lower_bound + 1, sizeinunits - csiz->lower_bound); if(ret) ASN__ENCODE_FAILED; } - if (st->size > 2) { /* X.691 #16 NOTE 1 */ + /* 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; } diff --git a/setup/xapp-sm-connector/asn1c_defs/OCTET_STRING_oer.c b/setup/xapp-sm-connector/asn1c_defs/OCTET_STRING_oer.c new file mode 100644 index 0000000..c16faea --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/OCTET_STRING_oer.c @@ -0,0 +1,171 @@ +/* + * 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/setup/xapp-sm-connector/asn1c_defs/OCUCP-PF-Container.c b/setup/xapp-sm-connector/asn1c_defs/OCUCP-PF-Container.c new file mode 100644 index 0000000..8788478 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/OCUCP-PF-Container.c @@ -0,0 +1,128 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "OCUCP-PF-Container.h" + +static int +memb_numberOfActive_UEs_constraint_2(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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 <= 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_numberOfActive_UEs_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_numberOfActive_UEs_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 16, 16, 1, 65535 } /* (1..65535,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_cu_CP_Resource_Status_2[] = { + { 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_3, &asn_PER_memb_numberOfActive_UEs_constr_3, memb_numberOfActive_UEs_constraint_2 }, + 0, 0, /* No default value */ + "numberOfActive-UEs" + }, +}; +static const int asn_MAP_cu_CP_Resource_Status_oms_2[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_cu_CP_Resource_Status_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cu_CP_Resource_Status_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* numberOfActive-UEs */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cu_CP_Resource_Status_specs_2 = { + 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_2, + 1, /* Count of tags in the map */ + asn_MAP_cu_CP_Resource_Status_oms_2, /* 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_2 = { + "cu-CP-Resource-Status", + "cu-CP-Resource-Status", + &asn_OP_SEQUENCE, + asn_DEF_cu_CP_Resource_Status_tags_2, + sizeof(asn_DEF_cu_CP_Resource_Status_tags_2) + /sizeof(asn_DEF_cu_CP_Resource_Status_tags_2[0]) - 1, /* 1 */ + asn_DEF_cu_CP_Resource_Status_tags_2, /* Same as above */ + sizeof(asn_DEF_cu_CP_Resource_Status_tags_2) + /sizeof(asn_DEF_cu_CP_Resource_Status_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_cu_CP_Resource_Status_2, + 1, /* Elements count */ + &asn_SPC_cu_CP_Resource_Status_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_OCUCP_PF_Container_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct OCUCP_PF_Container, cu_CP_Resource_Status), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_cu_CP_Resource_Status_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cu-CP-Resource-Status" + }, +}; +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 } /* 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, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -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, + 1, /* Elements count */ + &asn_SPC_OCUCP_PF_Container_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/OCUCP-PF-Container.h b/setup/xapp-sm-connector/asn1c_defs/OCUCP-PF-Container.h new file mode 100644 index 0000000..5c1adfe --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/OCUCP-PF-Container.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _OCUCP_PF_Container_H_ +#define _OCUCP_PF_Container_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* OCUCP-PF-Container */ +typedef struct OCUCP_PF_Container { + 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[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _OCUCP_PF_Container_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/OCUUP-PF-Container.c b/setup/xapp-sm-connector/asn1c_defs/OCUUP-PF-Container.c new file mode 100644 index 0000000..8ccc575 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/OCUUP-PF-Container.c @@ -0,0 +1,130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "OCUUP-PF-Container.h" + +#include "PF-ContainerListItem.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_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..3)) */}; +static asn_per_constraints_t asn_PER_type_pf_ContainerList_constr_2 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_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..3)) */}; +static asn_per_constraints_t asn_PER_memb_pf_ContainerList_constr_2 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_2[] = { + { 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_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_pf_ContainerList_specs_2 = { + 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_2 = { + "pf-ContainerList", + "pf-ContainerList", + &asn_OP_SEQUENCE_OF, + asn_DEF_pf_ContainerList_tags_2, + sizeof(asn_DEF_pf_ContainerList_tags_2) + /sizeof(asn_DEF_pf_ContainerList_tags_2[0]) - 1, /* 1 */ + asn_DEF_pf_ContainerList_tags_2, /* Same as above */ + sizeof(asn_DEF_pf_ContainerList_tags_2) + /sizeof(asn_DEF_pf_ContainerList_tags_2[0]), /* 2 */ + { &asn_OER_type_pf_ContainerList_constr_2, &asn_PER_type_pf_ContainerList_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_pf_ContainerList_2, + 1, /* Single element */ + &asn_SPC_pf_ContainerList_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_OCUUP_PF_Container_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct OCUUP_PF_Container, pf_ContainerList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_pf_ContainerList_2, + 0, + { &asn_OER_memb_pf_ContainerList_constr_2, &asn_PER_memb_pf_ContainerList_constr_2, memb_pf_ContainerList_constraint_1 }, + 0, 0, /* No default value */ + "pf-ContainerList" + }, +}; +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 } /* 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, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* 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, + 1, /* Elements count */ + &asn_SPC_OCUUP_PF_Container_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/OCUUP-PF-Container.h b/setup/xapp-sm-connector/asn1c_defs/OCUUP-PF-Container.h new file mode 100644 index 0000000..c1fc638 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/OCUUP-PF-Container.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _OCUUP_PF_Container_H_ +#define _OCUUP_PF_Container_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PF_ContainerListItem; + +/* OCUUP-PF-Container */ +typedef struct OCUUP_PF_Container { + 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[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _OCUUP_PF_Container_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/ODU-PF-Container.c b/setup/xapp-sm-connector/asn1c_defs/ODU-PF-Container.c new file mode 100644 index 0000000..4aeaa6c --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/ODU-PF-Container.c @@ -0,0 +1,130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "ODU-PF-Container.h" + +#include "CellResourceReportListItem.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/setup/xapp-sm-connector/asn1c_defs/ODU-PF-Container.h b/setup/xapp-sm-connector/asn1c_defs/ODU-PF-Container.h new file mode 100644 index 0000000..c49a4f7 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/ODU-PF-Container.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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 + +#endif /* _ODU_PF_Container_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/OPEN_TYPE_oer.c b/setup/xapp-sm-connector/asn1c_defs/OPEN_TYPE_oer.c new file mode 100644 index 0000000..dd2f5c6 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/OPEN_TYPE_oer.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 +#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/setup/xapp-sm-connector/asn1c_defs/PF-Container.c b/setup/xapp-sm-connector/asn1c_defs/PF-Container.c new file mode 100644 index 0000000..c4034f8 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/PF-Container.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "PF-Container.h" + +#include "ODU-PF-Container.h" +#include "OCUCP-PF-Container.h" +#include "OCUUP-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, 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_POINTER, 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_POINTER, 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_POINTER, 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, + -1 /* 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/setup/xapp-sm-connector/asn1c_defs/PF-Container.h b/setup/xapp-sm-connector/asn1c_defs/PF-Container.h new file mode 100644 index 0000000..4dd9e95 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/PF-Container.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _PF_Container_H_ +#define _PF_Container_H_ + + +#include + +/* Including external dependencies */ +#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 +} PF_Container_PR; + +/* Forward declarations */ +struct ODU_PF_Container; +struct OCUCP_PF_Container; +struct OCUUP_PF_Container; + +/* PF-Container */ +typedef struct PF_Container { + PF_Container_PR present; + union PF_Container_u { + struct ODU_PF_Container *oDU; + struct OCUCP_PF_Container *oCU_CP; + struct OCUUP_PF_Container *oCU_UP; + } 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/setup/xapp-sm-connector/asn1c_defs/PF-ContainerListItem.c b/setup/xapp-sm-connector/asn1c_defs/PF-ContainerListItem.c new file mode 100644 index 0000000..112175c --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/PF-ContainerListItem.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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/setup/xapp-sm-connector/asn1c_defs/PF-ContainerListItem.h b/setup/xapp-sm-connector/asn1c_defs/PF-ContainerListItem.h new file mode 100644 index 0000000..9d12f97 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/PF-ContainerListItem.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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/setup/xapp-sm-connector/asn1c_defs/PLMN-Identity.c b/setup/xapp-sm-connector/asn1c_defs/PLMN-Identity.c index 0bee12e..24f3043 100644 --- a/setup/xapp-sm-connector/asn1c_defs/PLMN-Identity.c +++ b/setup/xapp-sm-connector/asn1c_defs/PLMN-Identity.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "PLMN-Identity.h" @@ -37,6 +37,9 @@ PLMN_Identity_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, * This type is implemented using OCTET_STRING, * so here we adjust the DEF accordingly. */ +static asn_oer_constraints_t asn_OER_type_PLMN_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)) */, @@ -55,7 +58,7 @@ asn_TYPE_descriptor_t asn_DEF_PLMN_Identity = { 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 }, + { &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/setup/xapp-sm-connector/asn1c_defs/PLMN-Identity.h b/setup/xapp-sm-connector/asn1c_defs/PLMN-Identity.h index dcdfe18..2fb1a85 100644 --- a/setup/xapp-sm-connector/asn1c_defs/PLMN-Identity.h +++ b/setup/xapp-sm-connector/asn1c_defs/PLMN-Identity.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _PLMN_Identity_H_ @@ -31,6 +31,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/PM-Containers-Item.c b/setup/xapp-sm-connector/asn1c_defs/PM-Containers-Item.c new file mode 100644 index 0000000..2116f5a --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/PM-Containers-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "PM-Containers-Item.h" + +#include "PF-Container.h" +asn_TYPE_member_t asn_MBR_PM_Containers_Item_1[] = { + { ATF_POINTER, 2, offsetof(struct PM_Containers_Item, 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_Item, 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_Item_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_PM_Containers_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PM_Containers_Item_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_Item_specs_1 = { + sizeof(struct PM_Containers_Item), + offsetof(struct PM_Containers_Item, _asn_ctx), + asn_MAP_PM_Containers_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_PM_Containers_Item_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PM_Containers_Item = { + "PM-Containers-Item", + "PM-Containers-Item", + &asn_OP_SEQUENCE, + asn_DEF_PM_Containers_Item_tags_1, + sizeof(asn_DEF_PM_Containers_Item_tags_1) + /sizeof(asn_DEF_PM_Containers_Item_tags_1[0]), /* 1 */ + asn_DEF_PM_Containers_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_PM_Containers_Item_tags_1) + /sizeof(asn_DEF_PM_Containers_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PM_Containers_Item_1, + 2, /* Elements count */ + &asn_SPC_PM_Containers_Item_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/PM-Containers-Item.h b/setup/xapp-sm-connector/asn1c_defs/PM-Containers-Item.h new file mode 100644 index 0000000..2525e83 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/PM-Containers-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _PM_Containers_Item_H_ +#define _PM_Containers_Item_H_ + + +#include + +/* Including external dependencies */ +#include "RAN-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PF_Container; + +/* PM-Containers-Item */ +typedef struct PM_Containers_Item { + struct PF_Container *performanceContainer; /* OPTIONAL */ + RAN_Container_t *theRANContainer; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PM_Containers_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PM_Containers_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_PM_Containers_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_PM_Containers_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PM_Containers_Item_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/PM-Info-Item.c b/setup/xapp-sm-connector/asn1c_defs/PM-Info-Item.c new file mode 100644 index 0000000..e469eb6 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/PM-Info-Item.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "PM-Info-Item.h" + +asn_TYPE_member_t asn_MBR_PM_Info_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PM_Info_Item, pmType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_MeasurementType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pmType" + }, + { ATF_NOFLAGS, 0, offsetof(struct PM_Info_Item, pmVal), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_MeasurementValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pmVal" + }, +}; +static const ber_tlv_tag_t asn_DEF_PM_Info_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PM_Info_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pmType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pmVal */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PM_Info_Item_specs_1 = { + sizeof(struct PM_Info_Item), + offsetof(struct PM_Info_Item, _asn_ctx), + asn_MAP_PM_Info_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_PM_Info_Item = { + "PM-Info-Item", + "PM-Info-Item", + &asn_OP_SEQUENCE, + asn_DEF_PM_Info_Item_tags_1, + sizeof(asn_DEF_PM_Info_Item_tags_1) + /sizeof(asn_DEF_PM_Info_Item_tags_1[0]), /* 1 */ + asn_DEF_PM_Info_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_PM_Info_Item_tags_1) + /sizeof(asn_DEF_PM_Info_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PM_Info_Item_1, + 2, /* Elements count */ + &asn_SPC_PM_Info_Item_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/PM-Info-Item.h b/setup/xapp-sm-connector/asn1c_defs/PM-Info-Item.h new file mode 100644 index 0000000..2716d8e --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/PM-Info-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _PM_Info_Item_H_ +#define _PM_Info_Item_H_ + + +#include + +/* Including external dependencies */ +#include "MeasurementType.h" +#include "MeasurementValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PM-Info-Item */ +typedef struct PM_Info_Item { + MeasurementType_t pmType; + MeasurementValue_t pmVal; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PM_Info_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PM_Info_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_PM_Info_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_PM_Info_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PM_Info_Item_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/PerQCIReportListItem.c b/setup/xapp-sm-connector/asn1c_defs/PerQCIReportListItem.c new file mode 100644 index 0000000..45935bd --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/PerQCIReportListItem.c @@ -0,0 +1,138 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "PerQCIReportListItem.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 <= 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_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_QCI, + 0, + { 0, 0, 0 }, + 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/setup/xapp-sm-connector/asn1c_defs/PerQCIReportListItem.h b/setup/xapp-sm-connector/asn1c_defs/PerQCIReportListItem.h new file mode 100644 index 0000000..1f4c6bb --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/PerQCIReportListItem.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _PerQCIReportListItem_H_ +#define _PerQCIReportListItem_H_ + + +#include + +/* Including external dependencies */ +#include "QCI.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PerQCIReportListItem */ +typedef struct PerQCIReportListItem { + QCI_t 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/setup/xapp-sm-connector/asn1c_defs/PerQCIReportListItemFormat.c b/setup/xapp-sm-connector/asn1c_defs/PerQCIReportListItemFormat.c new file mode 100644 index 0000000..86f8bb4 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/PerQCIReportListItemFormat.c @@ -0,0 +1,150 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "PerQCIReportListItemFormat.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_PerQCIReportListItemFormat_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PerQCIReportListItemFormat, drbqci), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_QCI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drbqci" + }, + { 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 }, /* drbqci */ + { (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/setup/xapp-sm-connector/asn1c_defs/PerQCIReportListItemFormat.h b/setup/xapp-sm-connector/asn1c_defs/PerQCIReportListItemFormat.h new file mode 100644 index 0000000..46b588e --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/PerQCIReportListItemFormat.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _PerQCIReportListItemFormat_H_ +#define _PerQCIReportListItemFormat_H_ + + +#include + +/* Including external dependencies */ +#include "QCI.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PerQCIReportListItemFormat */ +typedef struct PerQCIReportListItemFormat { + QCI_t drbqci; + 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/setup/xapp-sm-connector/asn1c_defs/PerUE-PM-Item.c b/setup/xapp-sm-connector/asn1c_defs/PerUE-PM-Item.c new file mode 100644 index 0000000..9ecc2df --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/PerUE-PM-Item.c @@ -0,0 +1,142 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "PerUE-PM-Item.h" + +#include "PM-Info-Item.h" +static int +memb_list_of_PM_Information_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 <= 2147483647)) { + /* 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_list_of_PM_Information_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..2147483647)) */}; +static asn_per_constraints_t asn_PER_type_list_of_PM_Information_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 31, -1, 1, 2147483647 } /* (SIZE(1..2147483647)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_list_of_PM_Information_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..2147483647)) */}; +static asn_per_constraints_t asn_PER_memb_list_of_PM_Information_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 31, -1, 1, 2147483647 } /* (SIZE(1..2147483647)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_list_of_PM_Information_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PM_Info_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_list_of_PM_Information_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_list_of_PM_Information_specs_3 = { + sizeof(struct PerUE_PM_Item__list_of_PM_Information), + offsetof(struct PerUE_PM_Item__list_of_PM_Information, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_list_of_PM_Information_3 = { + "list-of-PM-Information", + "list-of-PM-Information", + &asn_OP_SEQUENCE_OF, + asn_DEF_list_of_PM_Information_tags_3, + sizeof(asn_DEF_list_of_PM_Information_tags_3) + /sizeof(asn_DEF_list_of_PM_Information_tags_3[0]) - 1, /* 1 */ + asn_DEF_list_of_PM_Information_tags_3, /* Same as above */ + sizeof(asn_DEF_list_of_PM_Information_tags_3) + /sizeof(asn_DEF_list_of_PM_Information_tags_3[0]), /* 2 */ + { &asn_OER_type_list_of_PM_Information_constr_3, &asn_PER_type_list_of_PM_Information_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_list_of_PM_Information_3, + 1, /* Single element */ + &asn_SPC_list_of_PM_Information_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PerUE_PM_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PerUE_PM_Item, ueId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UE_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ueId" + }, + { ATF_POINTER, 1, offsetof(struct PerUE_PM_Item, list_of_PM_Information), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_list_of_PM_Information_3, + 0, + { &asn_OER_memb_list_of_PM_Information_constr_3, &asn_PER_memb_list_of_PM_Information_constr_3, memb_list_of_PM_Information_constraint_1 }, + 0, 0, /* No default value */ + "list-of-PM-Information" + }, +}; +static const int asn_MAP_PerUE_PM_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_PerUE_PM_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PerUE_PM_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ueId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* list-of-PM-Information */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PerUE_PM_Item_specs_1 = { + sizeof(struct PerUE_PM_Item), + offsetof(struct PerUE_PM_Item, _asn_ctx), + asn_MAP_PerUE_PM_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_PerUE_PM_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PerUE_PM_Item = { + "PerUE-PM-Item", + "PerUE-PM-Item", + &asn_OP_SEQUENCE, + asn_DEF_PerUE_PM_Item_tags_1, + sizeof(asn_DEF_PerUE_PM_Item_tags_1) + /sizeof(asn_DEF_PerUE_PM_Item_tags_1[0]), /* 1 */ + asn_DEF_PerUE_PM_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_PerUE_PM_Item_tags_1) + /sizeof(asn_DEF_PerUE_PM_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PerUE_PM_Item_1, + 2, /* Elements count */ + &asn_SPC_PerUE_PM_Item_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/PerUE-PM-Item.h b/setup/xapp-sm-connector/asn1c_defs/PerUE-PM-Item.h new file mode 100644 index 0000000..b2b2c4f --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/PerUE-PM-Item.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _PerUE_PM_Item_H_ +#define _PerUE_PM_Item_H_ + + +#include + +/* Including external dependencies */ +#include "UE-Identity.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PM_Info_Item; + +/* PerUE-PM-Item */ +typedef struct PerUE_PM_Item { + UE_Identity_t ueId; + struct PerUE_PM_Item__list_of_PM_Information { + A_SEQUENCE_OF(struct PM_Info_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *list_of_PM_Information; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PerUE_PM_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PerUE_PM_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_PerUE_PM_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_PerUE_PM_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PerUE_PM_Item_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/PhysCellId.c b/setup/xapp-sm-connector/asn1c_defs/PhysCellId.c new file mode 100644 index 0000000..bb61e1d --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/PhysCellId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "PhysCellId.h" + +int +PhysCellId_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 <= 1007)) { + /* 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_PhysCellId_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..1007) */, + -1}; +asn_per_constraints_t asn_PER_type_PhysCellId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 0, 1007 } /* (0..1007) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PhysCellId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PhysCellId = { + "PhysCellId", + "PhysCellId", + &asn_OP_NativeInteger, + asn_DEF_PhysCellId_tags_1, + sizeof(asn_DEF_PhysCellId_tags_1) + /sizeof(asn_DEF_PhysCellId_tags_1[0]), /* 1 */ + asn_DEF_PhysCellId_tags_1, /* Same as above */ + sizeof(asn_DEF_PhysCellId_tags_1) + /sizeof(asn_DEF_PhysCellId_tags_1[0]), /* 1 */ + { &asn_OER_type_PhysCellId_constr_1, &asn_PER_type_PhysCellId_constr_1, PhysCellId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/PhysCellId.h b/setup/xapp-sm-connector/asn1c_defs/PhysCellId.h new file mode 100644 index 0000000..c5de886 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/PhysCellId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _PhysCellId_H_ +#define _PhysCellId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PhysCellId */ +typedef long PhysCellId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PhysCellId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PhysCellId; +asn_struct_free_f PhysCellId_free; +asn_struct_print_f PhysCellId_print; +asn_constr_check_f PhysCellId_constraint; +ber_type_decoder_f PhysCellId_decode_ber; +der_type_encoder_f PhysCellId_encode_der; +xer_type_decoder_f PhysCellId_decode_xer; +xer_type_encoder_f PhysCellId_encode_xer; +oer_type_decoder_f PhysCellId_decode_oer; +oer_type_encoder_f PhysCellId_encode_oer; +per_type_decoder_f PhysCellId_decode_uper; +per_type_encoder_f PhysCellId_encode_uper; +per_type_decoder_f PhysCellId_decode_aper; +per_type_encoder_f PhysCellId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PhysCellId_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/PlmnID-Item.c b/setup/xapp-sm-connector/asn1c_defs/PlmnID-Item.c new file mode 100644 index 0000000..5aad6cb --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/PlmnID-Item.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "PlmnID-Item.h" + +#include "FGC-CUUP-PM-Format.h" +#include "EPC-CUUP-PM-Format.h" +asn_TYPE_member_t asn_MBR_PlmnID_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PlmnID_Item, 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_Item, 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_Item, 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_Item_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_PlmnID_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PlmnID_Item_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_Item_specs_1 = { + sizeof(struct PlmnID_Item), + offsetof(struct PlmnID_Item, _asn_ctx), + asn_MAP_PlmnID_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_PlmnID_Item_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PlmnID_Item = { + "PlmnID-Item", + "PlmnID-Item", + &asn_OP_SEQUENCE, + asn_DEF_PlmnID_Item_tags_1, + sizeof(asn_DEF_PlmnID_Item_tags_1) + /sizeof(asn_DEF_PlmnID_Item_tags_1[0]), /* 1 */ + asn_DEF_PlmnID_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_PlmnID_Item_tags_1) + /sizeof(asn_DEF_PlmnID_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PlmnID_Item_1, + 3, /* Elements count */ + &asn_SPC_PlmnID_Item_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/PlmnID-Item.h b/setup/xapp-sm-connector/asn1c_defs/PlmnID-Item.h new file mode 100644 index 0000000..803068c --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/PlmnID-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _PlmnID_Item_H_ +#define _PlmnID_Item_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-Item */ +typedef struct PlmnID_Item { + 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_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PlmnID_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_PlmnID_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_PlmnID_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PlmnID_Item_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/Presence.c b/setup/xapp-sm-connector/asn1c_defs/Presence.c index 2e26921..c32f9e0 100644 --- a/setup/xapp-sm-connector/asn1c_defs/Presence.c +++ b/setup/xapp-sm-connector/asn1c_defs/Presence.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-CommonDataTypes-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "Presence.h" @@ -11,6 +11,9 @@ * 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 }, @@ -48,7 +51,7 @@ asn_TYPE_descriptor_t asn_DEF_Presence = { 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 }, + { &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/setup/xapp-sm-connector/asn1c_defs/Presence.h b/setup/xapp-sm-connector/asn1c_defs/Presence.h index 7a7c767..06713ac 100644 --- a/setup/xapp-sm-connector/asn1c_defs/Presence.h +++ b/setup/xapp-sm-connector/asn1c_defs/Presence.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-CommonDataTypes-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _Presence_H_ @@ -39,6 +39,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/ProcedureCode.c b/setup/xapp-sm-connector/asn1c_defs/ProcedureCode.c index ad6f7e7..8678080 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ProcedureCode.c +++ b/setup/xapp-sm-connector/asn1c_defs/ProcedureCode.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-CommonDataTypes-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "ProcedureCode.h" @@ -36,6 +36,9 @@ ProcedureCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, * 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 }, @@ -54,7 +57,7 @@ asn_TYPE_descriptor_t asn_DEF_ProcedureCode = { 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 }, + { &asn_OER_type_ProcedureCode_constr_1, &asn_PER_type_ProcedureCode_constr_1, ProcedureCode_constraint }, 0, 0, /* No members */ 0 /* No specifics */ }; diff --git a/setup/xapp-sm-connector/asn1c_defs/ProcedureCode.h b/setup/xapp-sm-connector/asn1c_defs/ProcedureCode.h index 89996de..2b76e8b 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ProcedureCode.h +++ b/setup/xapp-sm-connector/asn1c_defs/ProcedureCode.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-CommonDataTypes-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _ProcedureCode_H_ @@ -31,6 +31,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-Container.c b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-Container.c index 89e5e1a..05014c6 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-Container.c +++ b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-Container.c @@ -1,114 +1,174 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-Containers-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "ProtocolIE-Container.h" #include "ProtocolIE-Field.h" -asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1412P0_constr_1 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_87P0_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P0_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_1412P1_constr_3 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_87P1_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P1_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_1412P2_constr_5 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_87P2_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P2_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_1412P3_constr_7 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_87P3_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P3_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_1412P4_constr_9 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_87P4_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P4_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_1412P5_constr_11 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_87P5_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P5_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_1412P6_constr_13 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_87P6_constr_13 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P6_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_1412P7_constr_15 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_87P7_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P7_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_1412P8_constr_17 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_87P8_constr_17 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P8_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_1412P9_constr_19 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_87P9_constr_19 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P9_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_1412P10_constr_21 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_87P10_constr_21 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P10_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_1412P11_constr_23 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_87P11_constr_23 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P11_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_1412P12_constr_25 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_87P12_constr_25 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P12_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_1412P13_constr_27 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_87P13_constr_27 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P13_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_1412P14_constr_29 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_87P14_constr_29 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P14_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_1412P15_constr_31 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_87P15_constr_31 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P15_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_1412P16_constr_33 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_87P16_constr_33 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P16_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_1412P17_constr_35 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_87P17_constr_35 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P17_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_1412P18_constr_37 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_87P18_constr_37 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P18_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_1412P19_constr_39 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_87P19_constr_39 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P19_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_1412P0_1[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P0_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -119,31 +179,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P0_1[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1412P0_tags_1[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P0_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P0_specs_1 = { - sizeof(struct ProtocolIE_Container_1412P0), - offsetof(struct ProtocolIE_Container_1412P0, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P0_specs_1 = { + sizeof(struct ProtocolIE_Container_87P0), + offsetof(struct ProtocolIE_Container_87P0, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P0 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P0 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1412P0_tags_1, - sizeof(asn_DEF_ProtocolIE_Container_1412P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_Container_1412P0_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1412P0_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1412P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_Container_1412P0_tags_1[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1412P0_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1412P0_1, + asn_DEF_ProtocolIE_Container_87P0_tags_1, + sizeof(asn_DEF_ProtocolIE_Container_87P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_Container_87P0_tags_1[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_87P0_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_87P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_Container_87P0_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_87P0_constr_1, &asn_PER_type_ProtocolIE_Container_87P0_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_87P0_1, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1412P0_specs_1 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_87P0_specs_1 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P1_3[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P1_3[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -154,31 +214,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P1_3[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1412P1_tags_3[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P1_tags_3[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P1_specs_3 = { - sizeof(struct ProtocolIE_Container_1412P1), - offsetof(struct ProtocolIE_Container_1412P1, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P1_specs_3 = { + sizeof(struct ProtocolIE_Container_87P1), + offsetof(struct ProtocolIE_Container_87P1, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P1 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P1 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1412P1_tags_3, - sizeof(asn_DEF_ProtocolIE_Container_1412P1_tags_3) - /sizeof(asn_DEF_ProtocolIE_Container_1412P1_tags_3[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1412P1_tags_3, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1412P1_tags_3) - /sizeof(asn_DEF_ProtocolIE_Container_1412P1_tags_3[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1412P1_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1412P1_3, + asn_DEF_ProtocolIE_Container_87P1_tags_3, + sizeof(asn_DEF_ProtocolIE_Container_87P1_tags_3) + /sizeof(asn_DEF_ProtocolIE_Container_87P1_tags_3[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_87P1_tags_3, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_87P1_tags_3) + /sizeof(asn_DEF_ProtocolIE_Container_87P1_tags_3[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_87P1_constr_3, &asn_PER_type_ProtocolIE_Container_87P1_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_87P1_3, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1412P1_specs_3 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_87P1_specs_3 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P2_5[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P2_5[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -189,31 +249,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P2_5[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1412P2_tags_5[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P2_tags_5[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P2_specs_5 = { - sizeof(struct ProtocolIE_Container_1412P2), - offsetof(struct ProtocolIE_Container_1412P2, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P2_specs_5 = { + sizeof(struct ProtocolIE_Container_87P2), + offsetof(struct ProtocolIE_Container_87P2, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P2 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P2 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1412P2_tags_5, - sizeof(asn_DEF_ProtocolIE_Container_1412P2_tags_5) - /sizeof(asn_DEF_ProtocolIE_Container_1412P2_tags_5[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1412P2_tags_5, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1412P2_tags_5) - /sizeof(asn_DEF_ProtocolIE_Container_1412P2_tags_5[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1412P2_constr_5, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1412P2_5, + asn_DEF_ProtocolIE_Container_87P2_tags_5, + sizeof(asn_DEF_ProtocolIE_Container_87P2_tags_5) + /sizeof(asn_DEF_ProtocolIE_Container_87P2_tags_5[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_87P2_tags_5, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_87P2_tags_5) + /sizeof(asn_DEF_ProtocolIE_Container_87P2_tags_5[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_87P2_constr_5, &asn_PER_type_ProtocolIE_Container_87P2_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_87P2_5, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1412P2_specs_5 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_87P2_specs_5 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P3_7[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P3_7[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -224,31 +284,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P3_7[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1412P3_tags_7[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P3_tags_7[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P3_specs_7 = { - sizeof(struct ProtocolIE_Container_1412P3), - offsetof(struct ProtocolIE_Container_1412P3, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P3_specs_7 = { + sizeof(struct ProtocolIE_Container_87P3), + offsetof(struct ProtocolIE_Container_87P3, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P3 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P3 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1412P3_tags_7, - sizeof(asn_DEF_ProtocolIE_Container_1412P3_tags_7) - /sizeof(asn_DEF_ProtocolIE_Container_1412P3_tags_7[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1412P3_tags_7, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1412P3_tags_7) - /sizeof(asn_DEF_ProtocolIE_Container_1412P3_tags_7[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1412P3_constr_7, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1412P3_7, + asn_DEF_ProtocolIE_Container_87P3_tags_7, + sizeof(asn_DEF_ProtocolIE_Container_87P3_tags_7) + /sizeof(asn_DEF_ProtocolIE_Container_87P3_tags_7[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_87P3_tags_7, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_87P3_tags_7) + /sizeof(asn_DEF_ProtocolIE_Container_87P3_tags_7[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_87P3_constr_7, &asn_PER_type_ProtocolIE_Container_87P3_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_87P3_7, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1412P3_specs_7 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_87P3_specs_7 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P4_9[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P4_9[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -259,31 +319,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P4_9[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1412P4_tags_9[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P4_tags_9[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P4_specs_9 = { - sizeof(struct ProtocolIE_Container_1412P4), - offsetof(struct ProtocolIE_Container_1412P4, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P4_specs_9 = { + sizeof(struct ProtocolIE_Container_87P4), + offsetof(struct ProtocolIE_Container_87P4, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P4 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P4 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1412P4_tags_9, - sizeof(asn_DEF_ProtocolIE_Container_1412P4_tags_9) - /sizeof(asn_DEF_ProtocolIE_Container_1412P4_tags_9[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1412P4_tags_9, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1412P4_tags_9) - /sizeof(asn_DEF_ProtocolIE_Container_1412P4_tags_9[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1412P4_constr_9, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1412P4_9, + asn_DEF_ProtocolIE_Container_87P4_tags_9, + sizeof(asn_DEF_ProtocolIE_Container_87P4_tags_9) + /sizeof(asn_DEF_ProtocolIE_Container_87P4_tags_9[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_87P4_tags_9, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_87P4_tags_9) + /sizeof(asn_DEF_ProtocolIE_Container_87P4_tags_9[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_87P4_constr_9, &asn_PER_type_ProtocolIE_Container_87P4_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_87P4_9, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1412P4_specs_9 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_87P4_specs_9 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P5_11[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P5_11[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -294,31 +354,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P5_11[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1412P5_tags_11[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P5_tags_11[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P5_specs_11 = { - sizeof(struct ProtocolIE_Container_1412P5), - offsetof(struct ProtocolIE_Container_1412P5, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P5_specs_11 = { + sizeof(struct ProtocolIE_Container_87P5), + offsetof(struct ProtocolIE_Container_87P5, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P5 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P5 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1412P5_tags_11, - sizeof(asn_DEF_ProtocolIE_Container_1412P5_tags_11) - /sizeof(asn_DEF_ProtocolIE_Container_1412P5_tags_11[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1412P5_tags_11, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1412P5_tags_11) - /sizeof(asn_DEF_ProtocolIE_Container_1412P5_tags_11[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1412P5_constr_11, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1412P5_11, + asn_DEF_ProtocolIE_Container_87P5_tags_11, + sizeof(asn_DEF_ProtocolIE_Container_87P5_tags_11) + /sizeof(asn_DEF_ProtocolIE_Container_87P5_tags_11[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_87P5_tags_11, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_87P5_tags_11) + /sizeof(asn_DEF_ProtocolIE_Container_87P5_tags_11[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_87P5_constr_11, &asn_PER_type_ProtocolIE_Container_87P5_constr_11, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_87P5_11, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1412P5_specs_11 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_87P5_specs_11 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P6_13[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P6_13[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -329,31 +389,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P6_13[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1412P6_tags_13[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P6_tags_13[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P6_specs_13 = { - sizeof(struct ProtocolIE_Container_1412P6), - offsetof(struct ProtocolIE_Container_1412P6, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P6_specs_13 = { + sizeof(struct ProtocolIE_Container_87P6), + offsetof(struct ProtocolIE_Container_87P6, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P6 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P6 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1412P6_tags_13, - sizeof(asn_DEF_ProtocolIE_Container_1412P6_tags_13) - /sizeof(asn_DEF_ProtocolIE_Container_1412P6_tags_13[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1412P6_tags_13, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1412P6_tags_13) - /sizeof(asn_DEF_ProtocolIE_Container_1412P6_tags_13[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1412P6_constr_13, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1412P6_13, + asn_DEF_ProtocolIE_Container_87P6_tags_13, + sizeof(asn_DEF_ProtocolIE_Container_87P6_tags_13) + /sizeof(asn_DEF_ProtocolIE_Container_87P6_tags_13[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_87P6_tags_13, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_87P6_tags_13) + /sizeof(asn_DEF_ProtocolIE_Container_87P6_tags_13[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_87P6_constr_13, &asn_PER_type_ProtocolIE_Container_87P6_constr_13, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_87P6_13, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1412P6_specs_13 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_87P6_specs_13 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P7_15[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P7_15[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -364,31 +424,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P7_15[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1412P7_tags_15[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P7_tags_15[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P7_specs_15 = { - sizeof(struct ProtocolIE_Container_1412P7), - offsetof(struct ProtocolIE_Container_1412P7, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P7_specs_15 = { + sizeof(struct ProtocolIE_Container_87P7), + offsetof(struct ProtocolIE_Container_87P7, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P7 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P7 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1412P7_tags_15, - sizeof(asn_DEF_ProtocolIE_Container_1412P7_tags_15) - /sizeof(asn_DEF_ProtocolIE_Container_1412P7_tags_15[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1412P7_tags_15, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1412P7_tags_15) - /sizeof(asn_DEF_ProtocolIE_Container_1412P7_tags_15[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1412P7_constr_15, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1412P7_15, + asn_DEF_ProtocolIE_Container_87P7_tags_15, + sizeof(asn_DEF_ProtocolIE_Container_87P7_tags_15) + /sizeof(asn_DEF_ProtocolIE_Container_87P7_tags_15[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_87P7_tags_15, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_87P7_tags_15) + /sizeof(asn_DEF_ProtocolIE_Container_87P7_tags_15[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_87P7_constr_15, &asn_PER_type_ProtocolIE_Container_87P7_constr_15, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_87P7_15, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1412P7_specs_15 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_87P7_specs_15 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P8_17[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P8_17[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -399,31 +459,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P8_17[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1412P8_tags_17[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P8_tags_17[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P8_specs_17 = { - sizeof(struct ProtocolIE_Container_1412P8), - offsetof(struct ProtocolIE_Container_1412P8, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P8_specs_17 = { + sizeof(struct ProtocolIE_Container_87P8), + offsetof(struct ProtocolIE_Container_87P8, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P8 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P8 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1412P8_tags_17, - sizeof(asn_DEF_ProtocolIE_Container_1412P8_tags_17) - /sizeof(asn_DEF_ProtocolIE_Container_1412P8_tags_17[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1412P8_tags_17, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1412P8_tags_17) - /sizeof(asn_DEF_ProtocolIE_Container_1412P8_tags_17[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1412P8_constr_17, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1412P8_17, + asn_DEF_ProtocolIE_Container_87P8_tags_17, + sizeof(asn_DEF_ProtocolIE_Container_87P8_tags_17) + /sizeof(asn_DEF_ProtocolIE_Container_87P8_tags_17[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_87P8_tags_17, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_87P8_tags_17) + /sizeof(asn_DEF_ProtocolIE_Container_87P8_tags_17[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_87P8_constr_17, &asn_PER_type_ProtocolIE_Container_87P8_constr_17, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_87P8_17, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1412P8_specs_17 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_87P8_specs_17 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P9_19[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P9_19[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -434,31 +494,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P9_19[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1412P9_tags_19[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P9_tags_19[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P9_specs_19 = { - sizeof(struct ProtocolIE_Container_1412P9), - offsetof(struct ProtocolIE_Container_1412P9, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P9_specs_19 = { + sizeof(struct ProtocolIE_Container_87P9), + offsetof(struct ProtocolIE_Container_87P9, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P9 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P9 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1412P9_tags_19, - sizeof(asn_DEF_ProtocolIE_Container_1412P9_tags_19) - /sizeof(asn_DEF_ProtocolIE_Container_1412P9_tags_19[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1412P9_tags_19, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1412P9_tags_19) - /sizeof(asn_DEF_ProtocolIE_Container_1412P9_tags_19[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1412P9_constr_19, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1412P9_19, + asn_DEF_ProtocolIE_Container_87P9_tags_19, + sizeof(asn_DEF_ProtocolIE_Container_87P9_tags_19) + /sizeof(asn_DEF_ProtocolIE_Container_87P9_tags_19[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_87P9_tags_19, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_87P9_tags_19) + /sizeof(asn_DEF_ProtocolIE_Container_87P9_tags_19[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_87P9_constr_19, &asn_PER_type_ProtocolIE_Container_87P9_constr_19, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_87P9_19, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1412P9_specs_19 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_87P9_specs_19 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P10_21[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P10_21[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -469,31 +529,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P10_21[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1412P10_tags_21[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P10_tags_21[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P10_specs_21 = { - sizeof(struct ProtocolIE_Container_1412P10), - offsetof(struct ProtocolIE_Container_1412P10, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P10_specs_21 = { + sizeof(struct ProtocolIE_Container_87P10), + offsetof(struct ProtocolIE_Container_87P10, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P10 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P10 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1412P10_tags_21, - sizeof(asn_DEF_ProtocolIE_Container_1412P10_tags_21) - /sizeof(asn_DEF_ProtocolIE_Container_1412P10_tags_21[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1412P10_tags_21, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1412P10_tags_21) - /sizeof(asn_DEF_ProtocolIE_Container_1412P10_tags_21[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1412P10_constr_21, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1412P10_21, + asn_DEF_ProtocolIE_Container_87P10_tags_21, + sizeof(asn_DEF_ProtocolIE_Container_87P10_tags_21) + /sizeof(asn_DEF_ProtocolIE_Container_87P10_tags_21[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_87P10_tags_21, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_87P10_tags_21) + /sizeof(asn_DEF_ProtocolIE_Container_87P10_tags_21[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_87P10_constr_21, &asn_PER_type_ProtocolIE_Container_87P10_constr_21, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_87P10_21, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1412P10_specs_21 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_87P10_specs_21 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P11_23[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P11_23[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -504,31 +564,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P11_23[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1412P11_tags_23[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P11_tags_23[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P11_specs_23 = { - sizeof(struct ProtocolIE_Container_1412P11), - offsetof(struct ProtocolIE_Container_1412P11, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P11_specs_23 = { + sizeof(struct ProtocolIE_Container_87P11), + offsetof(struct ProtocolIE_Container_87P11, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P11 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P11 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1412P11_tags_23, - sizeof(asn_DEF_ProtocolIE_Container_1412P11_tags_23) - /sizeof(asn_DEF_ProtocolIE_Container_1412P11_tags_23[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1412P11_tags_23, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1412P11_tags_23) - /sizeof(asn_DEF_ProtocolIE_Container_1412P11_tags_23[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1412P11_constr_23, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1412P11_23, + asn_DEF_ProtocolIE_Container_87P11_tags_23, + sizeof(asn_DEF_ProtocolIE_Container_87P11_tags_23) + /sizeof(asn_DEF_ProtocolIE_Container_87P11_tags_23[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_87P11_tags_23, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_87P11_tags_23) + /sizeof(asn_DEF_ProtocolIE_Container_87P11_tags_23[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_87P11_constr_23, &asn_PER_type_ProtocolIE_Container_87P11_constr_23, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_87P11_23, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1412P11_specs_23 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_87P11_specs_23 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P12_25[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P12_25[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -539,31 +599,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P12_25[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1412P12_tags_25[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P12_tags_25[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P12_specs_25 = { - sizeof(struct ProtocolIE_Container_1412P12), - offsetof(struct ProtocolIE_Container_1412P12, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P12_specs_25 = { + sizeof(struct ProtocolIE_Container_87P12), + offsetof(struct ProtocolIE_Container_87P12, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P12 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P12 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1412P12_tags_25, - sizeof(asn_DEF_ProtocolIE_Container_1412P12_tags_25) - /sizeof(asn_DEF_ProtocolIE_Container_1412P12_tags_25[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1412P12_tags_25, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1412P12_tags_25) - /sizeof(asn_DEF_ProtocolIE_Container_1412P12_tags_25[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1412P12_constr_25, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1412P12_25, + asn_DEF_ProtocolIE_Container_87P12_tags_25, + sizeof(asn_DEF_ProtocolIE_Container_87P12_tags_25) + /sizeof(asn_DEF_ProtocolIE_Container_87P12_tags_25[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_87P12_tags_25, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_87P12_tags_25) + /sizeof(asn_DEF_ProtocolIE_Container_87P12_tags_25[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_87P12_constr_25, &asn_PER_type_ProtocolIE_Container_87P12_constr_25, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_87P12_25, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1412P12_specs_25 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_87P12_specs_25 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P13_27[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P13_27[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -574,31 +634,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P13_27[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1412P13_tags_27[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P13_tags_27[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P13_specs_27 = { - sizeof(struct ProtocolIE_Container_1412P13), - offsetof(struct ProtocolIE_Container_1412P13, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P13_specs_27 = { + sizeof(struct ProtocolIE_Container_87P13), + offsetof(struct ProtocolIE_Container_87P13, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P13 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P13 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1412P13_tags_27, - sizeof(asn_DEF_ProtocolIE_Container_1412P13_tags_27) - /sizeof(asn_DEF_ProtocolIE_Container_1412P13_tags_27[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1412P13_tags_27, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1412P13_tags_27) - /sizeof(asn_DEF_ProtocolIE_Container_1412P13_tags_27[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1412P13_constr_27, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1412P13_27, + asn_DEF_ProtocolIE_Container_87P13_tags_27, + sizeof(asn_DEF_ProtocolIE_Container_87P13_tags_27) + /sizeof(asn_DEF_ProtocolIE_Container_87P13_tags_27[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_87P13_tags_27, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_87P13_tags_27) + /sizeof(asn_DEF_ProtocolIE_Container_87P13_tags_27[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_87P13_constr_27, &asn_PER_type_ProtocolIE_Container_87P13_constr_27, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_87P13_27, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1412P13_specs_27 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_87P13_specs_27 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P14_29[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P14_29[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -609,31 +669,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P14_29[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1412P14_tags_29[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P14_tags_29[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P14_specs_29 = { - sizeof(struct ProtocolIE_Container_1412P14), - offsetof(struct ProtocolIE_Container_1412P14, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P14_specs_29 = { + sizeof(struct ProtocolIE_Container_87P14), + offsetof(struct ProtocolIE_Container_87P14, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P14 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P14 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1412P14_tags_29, - sizeof(asn_DEF_ProtocolIE_Container_1412P14_tags_29) - /sizeof(asn_DEF_ProtocolIE_Container_1412P14_tags_29[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1412P14_tags_29, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1412P14_tags_29) - /sizeof(asn_DEF_ProtocolIE_Container_1412P14_tags_29[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1412P14_constr_29, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1412P14_29, + asn_DEF_ProtocolIE_Container_87P14_tags_29, + sizeof(asn_DEF_ProtocolIE_Container_87P14_tags_29) + /sizeof(asn_DEF_ProtocolIE_Container_87P14_tags_29[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_87P14_tags_29, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_87P14_tags_29) + /sizeof(asn_DEF_ProtocolIE_Container_87P14_tags_29[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_87P14_constr_29, &asn_PER_type_ProtocolIE_Container_87P14_constr_29, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_87P14_29, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1412P14_specs_29 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_87P14_specs_29 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P15_31[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P15_31[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -644,31 +704,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P15_31[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1412P15_tags_31[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P15_tags_31[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P15_specs_31 = { - sizeof(struct ProtocolIE_Container_1412P15), - offsetof(struct ProtocolIE_Container_1412P15, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P15_specs_31 = { + sizeof(struct ProtocolIE_Container_87P15), + offsetof(struct ProtocolIE_Container_87P15, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P15 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P15 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1412P15_tags_31, - sizeof(asn_DEF_ProtocolIE_Container_1412P15_tags_31) - /sizeof(asn_DEF_ProtocolIE_Container_1412P15_tags_31[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1412P15_tags_31, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1412P15_tags_31) - /sizeof(asn_DEF_ProtocolIE_Container_1412P15_tags_31[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1412P15_constr_31, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1412P15_31, + asn_DEF_ProtocolIE_Container_87P15_tags_31, + sizeof(asn_DEF_ProtocolIE_Container_87P15_tags_31) + /sizeof(asn_DEF_ProtocolIE_Container_87P15_tags_31[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_87P15_tags_31, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_87P15_tags_31) + /sizeof(asn_DEF_ProtocolIE_Container_87P15_tags_31[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_87P15_constr_31, &asn_PER_type_ProtocolIE_Container_87P15_constr_31, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_87P15_31, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1412P15_specs_31 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_87P15_specs_31 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P16_33[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P16_33[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -679,31 +739,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P16_33[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1412P16_tags_33[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P16_tags_33[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P16_specs_33 = { - sizeof(struct ProtocolIE_Container_1412P16), - offsetof(struct ProtocolIE_Container_1412P16, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P16_specs_33 = { + sizeof(struct ProtocolIE_Container_87P16), + offsetof(struct ProtocolIE_Container_87P16, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P16 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P16 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1412P16_tags_33, - sizeof(asn_DEF_ProtocolIE_Container_1412P16_tags_33) - /sizeof(asn_DEF_ProtocolIE_Container_1412P16_tags_33[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1412P16_tags_33, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1412P16_tags_33) - /sizeof(asn_DEF_ProtocolIE_Container_1412P16_tags_33[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1412P16_constr_33, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1412P16_33, + asn_DEF_ProtocolIE_Container_87P16_tags_33, + sizeof(asn_DEF_ProtocolIE_Container_87P16_tags_33) + /sizeof(asn_DEF_ProtocolIE_Container_87P16_tags_33[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_87P16_tags_33, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_87P16_tags_33) + /sizeof(asn_DEF_ProtocolIE_Container_87P16_tags_33[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_87P16_constr_33, &asn_PER_type_ProtocolIE_Container_87P16_constr_33, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_87P16_33, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1412P16_specs_33 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_87P16_specs_33 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P17_35[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P17_35[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -714,31 +774,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P17_35[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1412P17_tags_35[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P17_tags_35[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P17_specs_35 = { - sizeof(struct ProtocolIE_Container_1412P17), - offsetof(struct ProtocolIE_Container_1412P17, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P17_specs_35 = { + sizeof(struct ProtocolIE_Container_87P17), + offsetof(struct ProtocolIE_Container_87P17, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P17 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P17 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1412P17_tags_35, - sizeof(asn_DEF_ProtocolIE_Container_1412P17_tags_35) - /sizeof(asn_DEF_ProtocolIE_Container_1412P17_tags_35[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1412P17_tags_35, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1412P17_tags_35) - /sizeof(asn_DEF_ProtocolIE_Container_1412P17_tags_35[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1412P17_constr_35, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1412P17_35, + asn_DEF_ProtocolIE_Container_87P17_tags_35, + sizeof(asn_DEF_ProtocolIE_Container_87P17_tags_35) + /sizeof(asn_DEF_ProtocolIE_Container_87P17_tags_35[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_87P17_tags_35, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_87P17_tags_35) + /sizeof(asn_DEF_ProtocolIE_Container_87P17_tags_35[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_87P17_constr_35, &asn_PER_type_ProtocolIE_Container_87P17_constr_35, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_87P17_35, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1412P17_specs_35 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_87P17_specs_35 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P18_37[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P18_37[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -749,31 +809,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P18_37[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1412P18_tags_37[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P18_tags_37[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P18_specs_37 = { - sizeof(struct ProtocolIE_Container_1412P18), - offsetof(struct ProtocolIE_Container_1412P18, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P18_specs_37 = { + sizeof(struct ProtocolIE_Container_87P18), + offsetof(struct ProtocolIE_Container_87P18, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P18 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P18 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1412P18_tags_37, - sizeof(asn_DEF_ProtocolIE_Container_1412P18_tags_37) - /sizeof(asn_DEF_ProtocolIE_Container_1412P18_tags_37[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1412P18_tags_37, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1412P18_tags_37) - /sizeof(asn_DEF_ProtocolIE_Container_1412P18_tags_37[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1412P18_constr_37, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1412P18_37, + asn_DEF_ProtocolIE_Container_87P18_tags_37, + sizeof(asn_DEF_ProtocolIE_Container_87P18_tags_37) + /sizeof(asn_DEF_ProtocolIE_Container_87P18_tags_37[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_87P18_tags_37, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_87P18_tags_37) + /sizeof(asn_DEF_ProtocolIE_Container_87P18_tags_37[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_87P18_constr_37, &asn_PER_type_ProtocolIE_Container_87P18_constr_37, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_87P18_37, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1412P18_specs_37 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_87P18_specs_37 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P19_39[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P19_39[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -784,27 +844,27 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P19_39[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_1412P19_tags_39[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P19_tags_39[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P19_specs_39 = { - sizeof(struct ProtocolIE_Container_1412P19), - offsetof(struct ProtocolIE_Container_1412P19, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P19_specs_39 = { + sizeof(struct ProtocolIE_Container_87P19), + offsetof(struct ProtocolIE_Container_87P19, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P19 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P19 = { "ProtocolIE-Container", "ProtocolIE-Container", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_Container_1412P19_tags_39, - sizeof(asn_DEF_ProtocolIE_Container_1412P19_tags_39) - /sizeof(asn_DEF_ProtocolIE_Container_1412P19_tags_39[0]), /* 1 */ - asn_DEF_ProtocolIE_Container_1412P19_tags_39, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_Container_1412P19_tags_39) - /sizeof(asn_DEF_ProtocolIE_Container_1412P19_tags_39[0]), /* 1 */ - { 0, &asn_PER_type_ProtocolIE_Container_1412P19_constr_39, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_Container_1412P19_39, + asn_DEF_ProtocolIE_Container_87P19_tags_39, + sizeof(asn_DEF_ProtocolIE_Container_87P19_tags_39) + /sizeof(asn_DEF_ProtocolIE_Container_87P19_tags_39[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_87P19_tags_39, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_87P19_tags_39) + /sizeof(asn_DEF_ProtocolIE_Container_87P19_tags_39[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_87P19_constr_39, &asn_PER_type_ProtocolIE_Container_87P19_constr_39, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_87P19_39, 1, /* Single element */ - &asn_SPC_ProtocolIE_Container_1412P19_specs_39 /* Additional specs */ + &asn_SPC_ProtocolIE_Container_87P19_specs_39 /* Additional specs */ }; diff --git a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-Container.h b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-Container.h index 364495b..361db9c 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-Container.h +++ b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-Container.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-Containers-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _ProtocolIE_Container_H_ @@ -42,208 +42,208 @@ struct RICserviceUpdateFailure_IEs; struct RICserviceQuery_IEs; /* ProtocolIE-Container */ -typedef struct ProtocolIE_Container_1412P0 { +typedef struct ProtocolIE_Container_87P0 { A_SEQUENCE_OF(struct RICsubscriptionRequest_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1412P0_t; -typedef struct ProtocolIE_Container_1412P1 { +} ProtocolIE_Container_87P0_t; +typedef struct ProtocolIE_Container_87P1 { A_SEQUENCE_OF(struct RICsubscriptionResponse_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1412P1_t; -typedef struct ProtocolIE_Container_1412P2 { +} ProtocolIE_Container_87P1_t; +typedef struct ProtocolIE_Container_87P2 { A_SEQUENCE_OF(struct RICsubscriptionFailure_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1412P2_t; -typedef struct ProtocolIE_Container_1412P3 { +} ProtocolIE_Container_87P2_t; +typedef struct ProtocolIE_Container_87P3 { A_SEQUENCE_OF(struct RICsubscriptionDeleteRequest_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1412P3_t; -typedef struct ProtocolIE_Container_1412P4 { +} ProtocolIE_Container_87P3_t; +typedef struct ProtocolIE_Container_87P4 { A_SEQUENCE_OF(struct RICsubscriptionDeleteResponse_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1412P4_t; -typedef struct ProtocolIE_Container_1412P5 { +} ProtocolIE_Container_87P4_t; +typedef struct ProtocolIE_Container_87P5 { A_SEQUENCE_OF(struct RICsubscriptionDeleteFailure_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1412P5_t; -typedef struct ProtocolIE_Container_1412P6 { +} ProtocolIE_Container_87P5_t; +typedef struct ProtocolIE_Container_87P6 { A_SEQUENCE_OF(struct RICindication_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1412P6_t; -typedef struct ProtocolIE_Container_1412P7 { +} ProtocolIE_Container_87P6_t; +typedef struct ProtocolIE_Container_87P7 { A_SEQUENCE_OF(struct RICcontrolRequest_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1412P7_t; -typedef struct ProtocolIE_Container_1412P8 { +} ProtocolIE_Container_87P7_t; +typedef struct ProtocolIE_Container_87P8 { A_SEQUENCE_OF(struct RICcontrolAcknowledge_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1412P8_t; -typedef struct ProtocolIE_Container_1412P9 { +} ProtocolIE_Container_87P8_t; +typedef struct ProtocolIE_Container_87P9 { A_SEQUENCE_OF(struct RICcontrolFailure_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1412P9_t; -typedef struct ProtocolIE_Container_1412P10 { +} ProtocolIE_Container_87P9_t; +typedef struct ProtocolIE_Container_87P10 { A_SEQUENCE_OF(struct ErrorIndication_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1412P10_t; -typedef struct ProtocolIE_Container_1412P11 { +} ProtocolIE_Container_87P10_t; +typedef struct ProtocolIE_Container_87P11 { A_SEQUENCE_OF(struct E2setupRequestIEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1412P11_t; -typedef struct ProtocolIE_Container_1412P12 { +} ProtocolIE_Container_87P11_t; +typedef struct ProtocolIE_Container_87P12 { A_SEQUENCE_OF(struct E2setupResponseIEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1412P12_t; -typedef struct ProtocolIE_Container_1412P13 { +} ProtocolIE_Container_87P12_t; +typedef struct ProtocolIE_Container_87P13 { A_SEQUENCE_OF(struct E2setupFailureIEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1412P13_t; -typedef struct ProtocolIE_Container_1412P14 { +} ProtocolIE_Container_87P13_t; +typedef struct ProtocolIE_Container_87P14 { A_SEQUENCE_OF(struct ResetRequestIEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1412P14_t; -typedef struct ProtocolIE_Container_1412P15 { +} ProtocolIE_Container_87P14_t; +typedef struct ProtocolIE_Container_87P15 { A_SEQUENCE_OF(struct ResetResponseIEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1412P15_t; -typedef struct ProtocolIE_Container_1412P16 { +} ProtocolIE_Container_87P15_t; +typedef struct ProtocolIE_Container_87P16 { A_SEQUENCE_OF(struct RICserviceUpdate_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1412P16_t; -typedef struct ProtocolIE_Container_1412P17 { +} ProtocolIE_Container_87P16_t; +typedef struct ProtocolIE_Container_87P17 { A_SEQUENCE_OF(struct RICserviceUpdateAcknowledge_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1412P17_t; -typedef struct ProtocolIE_Container_1412P18 { +} ProtocolIE_Container_87P17_t; +typedef struct ProtocolIE_Container_87P18 { A_SEQUENCE_OF(struct RICserviceUpdateFailure_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1412P18_t; -typedef struct ProtocolIE_Container_1412P19 { +} ProtocolIE_Container_87P18_t; +typedef struct ProtocolIE_Container_87P19 { A_SEQUENCE_OF(struct RICserviceQuery_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_Container_1412P19_t; +} ProtocolIE_Container_87P19_t; /* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P0; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P0_specs_1; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P0_1[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1412P0_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P1; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P1_specs_3; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P1_3[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1412P1_constr_3; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P2; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P2_specs_5; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P2_5[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1412P2_constr_5; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P3; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P3_specs_7; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P3_7[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1412P3_constr_7; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P4; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P4_specs_9; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P4_9[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1412P4_constr_9; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P5; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P5_specs_11; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P5_11[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1412P5_constr_11; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P6; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P6_specs_13; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P6_13[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1412P6_constr_13; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P7; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P7_specs_15; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P7_15[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1412P7_constr_15; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P8; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P8_specs_17; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P8_17[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1412P8_constr_17; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P9; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P9_specs_19; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P9_19[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1412P9_constr_19; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P10; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P10_specs_21; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P10_21[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1412P10_constr_21; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P11; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P11_specs_23; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P11_23[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1412P11_constr_23; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P12; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P12_specs_25; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P12_25[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1412P12_constr_25; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P13; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P13_specs_27; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P13_27[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1412P13_constr_27; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P14; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P14_specs_29; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P14_29[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1412P14_constr_29; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P15; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P15_specs_31; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P15_31[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1412P15_constr_31; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P16; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P16_specs_33; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P16_33[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1412P16_constr_33; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P17; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P17_specs_35; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P17_35[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1412P17_constr_35; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P18; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P18_specs_37; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P18_37[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1412P18_constr_37; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_1412P19; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_1412P19_specs_39; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_1412P19_39[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_1412P19_constr_39; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P0; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P0_specs_1; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P0_1[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P0_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P1; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P1_specs_3; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P1_3[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P1_constr_3; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P2; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P2_specs_5; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P2_5[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P2_constr_5; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P3; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P3_specs_7; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P3_7[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P3_constr_7; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P4; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P4_specs_9; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P4_9[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P4_constr_9; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P5; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P5_specs_11; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P5_11[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P5_constr_11; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P6; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P6_specs_13; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P6_13[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P6_constr_13; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P7; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P7_specs_15; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P7_15[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P7_constr_15; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P8; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P8_specs_17; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P8_17[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P8_constr_17; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P9; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P9_specs_19; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P9_19[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P9_constr_19; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P10; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P10_specs_21; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P10_21[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P10_constr_21; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P11; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P11_specs_23; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P11_23[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P11_constr_23; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P12; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P12_specs_25; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P12_25[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P12_constr_25; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P13; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P13_specs_27; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P13_27[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P13_constr_27; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P14; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P14_specs_29; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P14_29[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P14_constr_29; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P15; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P15_specs_31; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P15_31[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P15_constr_31; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P16; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P16_specs_33; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P16_33[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P16_constr_33; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P17; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P17_specs_35; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P17_35[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P17_constr_35; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P18; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P18_specs_37; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P18_37[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P18_constr_37; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P19; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P19_specs_39; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P19_39[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P19_constr_39; #ifdef __cplusplus } diff --git a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ContainerList.c b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ContainerList.c index d572233..b43b010 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ContainerList.c +++ b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ContainerList.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-Containers-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "ProtocolIE-ContainerList.h" diff --git a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ContainerList.h b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ContainerList.h index e94a09c..44b1d2a 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ContainerList.h +++ b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ContainerList.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-Containers-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _ProtocolIE_ContainerList_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ContainerPair.c b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ContainerPair.c index 49ae4a7..0bf1a47 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ContainerPair.c +++ b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ContainerPair.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-Containers-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "ProtocolIE-ContainerPair.h" diff --git a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ContainerPair.h b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ContainerPair.h index 03c2f74..cac7e26 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ContainerPair.h +++ b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ContainerPair.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-Containers-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _ProtocolIE_ContainerPair_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ContainerPairList.c b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ContainerPairList.c index 2923ea5..dba4ec4 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ContainerPairList.c +++ b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ContainerPairList.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-Containers-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "ProtocolIE-ContainerPairList.h" diff --git a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ContainerPairList.h b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ContainerPairList.h index 50ff679..9d6a2d3 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ContainerPairList.h +++ b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ContainerPairList.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-Containers-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _ProtocolIE_ContainerPairList_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-Field.c b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-Field.c index caec745..80336e8 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-Field.c +++ b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-Field.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-Containers-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "ProtocolIE-Field.h" @@ -3683,391 +3683,625 @@ memb_value_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr, return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); } +static asn_oer_constraints_t asn_OER_memb_id_constr_2 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; static asn_per_constraints_t asn_PER_memb_id_constr_2 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_value_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_id_constr_6 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; static asn_per_constraints_t asn_PER_memb_id_constr_6 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; static asn_per_constraints_t asn_PER_memb_criticality_constr_7 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_value_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; static asn_per_constraints_t asn_PER_memb_value_constr_8 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_id_constr_10 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; static asn_per_constraints_t asn_PER_memb_id_constr_10 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1}; static asn_per_constraints_t asn_PER_memb_criticality_constr_11 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_value_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; static asn_per_constraints_t asn_PER_memb_value_constr_12 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_id_constr_14 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; static asn_per_constraints_t asn_PER_memb_id_constr_14 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1}; static asn_per_constraints_t asn_PER_memb_criticality_constr_15 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_value_constr_16 CC_NOTUSED = { + { 0, 0 }, + -1}; static asn_per_constraints_t asn_PER_memb_value_constr_16 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_id_constr_18 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; static asn_per_constraints_t asn_PER_memb_id_constr_18 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_19 CC_NOTUSED = { + { 0, 0 }, + -1}; static asn_per_constraints_t asn_PER_memb_criticality_constr_19 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_value_constr_20 CC_NOTUSED = { + { 0, 0 }, + -1}; static asn_per_constraints_t asn_PER_memb_value_constr_20 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_id_constr_22 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; static asn_per_constraints_t asn_PER_memb_id_constr_22 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_23 CC_NOTUSED = { + { 0, 0 }, + -1}; static asn_per_constraints_t asn_PER_memb_criticality_constr_23 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_value_constr_24 CC_NOTUSED = { + { 0, 0 }, + -1}; static asn_per_constraints_t asn_PER_memb_value_constr_24 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_id_constr_26 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; static asn_per_constraints_t asn_PER_memb_id_constr_26 CC_NOTUSED = { { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_27 CC_NOTUSED = { + { 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 }, @@ -4114,29 +4348,29 @@ asn_TYPE_descriptor_t asn_DEF_value_4 = { 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_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_2, memb_id_constraint_1 }, + { &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_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, &asn_DEF_Criticality, select_RICaction_ToBeSetup_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, + { &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 */ + -1 /* Ambiguous tag (ANY?) */, + 0, &asn_DEF_value_4, select_RICaction_ToBeSetup_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, + { &asn_OER_memb_value_constr_4, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, 0, 0, /* No default value */ "value" }, @@ -4145,15 +4379,14 @@ 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_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, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -4214,29 +4447,29 @@ asn_TYPE_descriptor_t asn_DEF_value_8 = { 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_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_6, memb_id_constraint_5 }, + { &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_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, &asn_DEF_Criticality, select_RICaction_Admitted_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_7, memb_criticality_constraint_5 }, + { &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 */ + -1 /* Ambiguous tag (ANY?) */, + 0, &asn_DEF_value_8, select_RICaction_Admitted_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_8, memb_value_constraint_5 }, + { &asn_OER_memb_value_constr_8, &asn_PER_memb_value_constr_8, memb_value_constraint_5 }, 0, 0, /* No default value */ "value" }, @@ -4245,15 +4478,14 @@ 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_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, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -4314,29 +4546,29 @@ asn_TYPE_descriptor_t asn_DEF_value_12 = { 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_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_10, memb_id_constraint_9 }, + { &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_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, &asn_DEF_Criticality, select_RICaction_NotAdmitted_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_11, memb_criticality_constraint_9 }, + { &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 */ + -1 /* Ambiguous tag (ANY?) */, + 0, &asn_DEF_value_12, select_RICaction_NotAdmitted_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_12, memb_value_constraint_9 }, + { &asn_OER_memb_value_constr_12, &asn_PER_memb_value_constr_12, memb_value_constraint_9 }, 0, 0, /* No default value */ "value" }, @@ -4345,15 +4577,14 @@ 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_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, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -4414,29 +4645,29 @@ asn_TYPE_descriptor_t asn_DEF_value_16 = { 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_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_14, memb_id_constraint_13 }, + { &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 RANfunction_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, &asn_DEF_Criticality, select_RANfunction_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_15, memb_criticality_constraint_13 }, + { &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 RANfunction_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ + -1 /* Ambiguous tag (ANY?) */, + 0, &asn_DEF_value_16, select_RANfunction_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_16, memb_value_constraint_13 }, + { &asn_OER_memb_value_constr_16, &asn_PER_memb_value_constr_16, memb_value_constraint_13 }, 0, 0, /* No default value */ "value" }, @@ -4445,15 +4676,14 @@ 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_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_13 = { sizeof(struct RANfunction_ItemIEs), offsetof(struct RANfunction_ItemIEs, _asn_ctx), asn_MAP_RANfunction_ItemIEs_tag2el_13, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -4514,29 +4744,29 @@ asn_TYPE_descriptor_t asn_DEF_value_20 = { 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_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_18, memb_id_constraint_17 }, + { &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 RANfunctionID_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, &asn_DEF_Criticality, select_RANfunctionID_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_19, memb_criticality_constraint_17 }, + { &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 RANfunctionID_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ + -1 /* Ambiguous tag (ANY?) */, + 0, &asn_DEF_value_20, select_RANfunctionID_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_20, memb_value_constraint_17 }, + { &asn_OER_memb_value_constr_20, &asn_PER_memb_value_constr_20, memb_value_constraint_17 }, 0, 0, /* No default value */ "value" }, @@ -4545,15 +4775,14 @@ 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_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_17 = { sizeof(struct RANfunctionID_ItemIEs), offsetof(struct RANfunctionID_ItemIEs, _asn_ctx), asn_MAP_RANfunctionID_ItemIEs_tag2el_17, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -4614,29 +4843,29 @@ asn_TYPE_descriptor_t asn_DEF_value_24 = { 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_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_22, memb_id_constraint_21 }, + { &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 RANfunctionIDcause_ItemIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, &asn_DEF_Criticality, select_RANfunctionIDcause_ItemIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_23, memb_criticality_constraint_21 }, + { &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 RANfunctionIDcause_ItemIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ + -1 /* Ambiguous tag (ANY?) */, + 0, &asn_DEF_value_24, select_RANfunctionIDcause_ItemIEs_value_type, - { 0, &asn_PER_memb_value_constr_24, memb_value_constraint_21 }, + { &asn_OER_memb_value_constr_24, &asn_PER_memb_value_constr_24, memb_value_constraint_21 }, 0, 0, /* No default value */ "value" }, @@ -4645,15 +4874,14 @@ 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_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_21 = { sizeof(struct RANfunctionIDcause_ItemIEs), offsetof(struct RANfunctionIDcause_ItemIEs, _asn_ctx), asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_21, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -4737,29 +4965,29 @@ asn_TYPE_descriptor_t asn_DEF_value_28 = { 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_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_26, memb_id_constraint_25 }, + { &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 RICsubscriptionRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, &asn_DEF_Criticality, select_RICsubscriptionRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_27, memb_criticality_constraint_25 }, + { &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 RICsubscriptionRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ + -1 /* Ambiguous tag (ANY?) */, + 0, &asn_DEF_value_28, select_RICsubscriptionRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_28, memb_value_constraint_25 }, + { &asn_OER_memb_value_constr_28, &asn_PER_memb_value_constr_28, memb_value_constraint_25 }, 0, 0, /* No default value */ "value" }, @@ -4768,15 +4996,14 @@ 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_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_25 = { sizeof(struct RICsubscriptionRequest_IEs), offsetof(struct RICsubscriptionRequest_IEs, _asn_ctx), asn_MAP_RICsubscriptionRequest_IEs_tag2el_25, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -4870,29 +5097,29 @@ asn_TYPE_descriptor_t asn_DEF_value_32 = { 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_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_30, memb_id_constraint_29 }, + { &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 RICsubscriptionResponse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, &asn_DEF_Criticality, select_RICsubscriptionResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_31, memb_criticality_constraint_29 }, + { &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 RICsubscriptionResponse_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ + -1 /* Ambiguous tag (ANY?) */, + 0, &asn_DEF_value_32, select_RICsubscriptionResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_32, memb_value_constraint_29 }, + { &asn_OER_memb_value_constr_32, &asn_PER_memb_value_constr_32, memb_value_constraint_29 }, 0, 0, /* No default value */ "value" }, @@ -4901,15 +5128,14 @@ 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_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_29 = { sizeof(struct RICsubscriptionResponse_IEs), offsetof(struct RICsubscriptionResponse_IEs, _asn_ctx), asn_MAP_RICsubscriptionResponse_IEs_tag2el_29, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -5003,29 +5229,29 @@ asn_TYPE_descriptor_t asn_DEF_value_36 = { 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_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_34, memb_id_constraint_33 }, + { &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 RICsubscriptionFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, &asn_DEF_Criticality, select_RICsubscriptionFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_35, memb_criticality_constraint_33 }, + { &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 RICsubscriptionFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ + -1 /* Ambiguous tag (ANY?) */, + 0, &asn_DEF_value_36, select_RICsubscriptionFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_36, memb_value_constraint_33 }, + { &asn_OER_memb_value_constr_36, &asn_PER_memb_value_constr_36, memb_value_constraint_33 }, 0, 0, /* No default value */ "value" }, @@ -5034,15 +5260,14 @@ 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_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_33 = { sizeof(struct RICsubscriptionFailure_IEs), offsetof(struct RICsubscriptionFailure_IEs, _asn_ctx), asn_MAP_RICsubscriptionFailure_IEs_tag2el_33, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -5116,29 +5341,29 @@ asn_TYPE_descriptor_t asn_DEF_value_40 = { 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_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_38, memb_id_constraint_37 }, + { &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 RICsubscriptionDeleteRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, &asn_DEF_Criticality, select_RICsubscriptionDeleteRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_39, memb_criticality_constraint_37 }, + { &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 RICsubscriptionDeleteRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ + -1 /* Ambiguous tag (ANY?) */, + 0, &asn_DEF_value_40, select_RICsubscriptionDeleteRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_40, memb_value_constraint_37 }, + { &asn_OER_memb_value_constr_40, &asn_PER_memb_value_constr_40, memb_value_constraint_37 }, 0, 0, /* No default value */ "value" }, @@ -5147,15 +5372,14 @@ 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_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_37 = { sizeof(struct RICsubscriptionDeleteRequest_IEs), offsetof(struct RICsubscriptionDeleteRequest_IEs, _asn_ctx), asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_37, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -5229,29 +5453,29 @@ asn_TYPE_descriptor_t asn_DEF_value_44 = { 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_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_42, memb_id_constraint_41 }, + { &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 RICsubscriptionDeleteResponse_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, &asn_DEF_Criticality, select_RICsubscriptionDeleteResponse_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_43, memb_criticality_constraint_41 }, + { &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 RICsubscriptionDeleteResponse_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ + -1 /* Ambiguous tag (ANY?) */, + 0, &asn_DEF_value_44, select_RICsubscriptionDeleteResponse_IEs_value_type, - { 0, &asn_PER_memb_value_constr_44, memb_value_constraint_41 }, + { &asn_OER_memb_value_constr_44, &asn_PER_memb_value_constr_44, memb_value_constraint_41 }, 0, 0, /* No default value */ "value" }, @@ -5260,15 +5484,14 @@ 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_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_41 = { sizeof(struct RICsubscriptionDeleteResponse_IEs), offsetof(struct RICsubscriptionDeleteResponse_IEs, _asn_ctx), asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_41, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -5366,29 +5589,29 @@ asn_TYPE_descriptor_t asn_DEF_value_48 = { 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_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_46, memb_id_constraint_45 }, + { &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 RICsubscriptionDeleteFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, &asn_DEF_Criticality, select_RICsubscriptionDeleteFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_47, memb_criticality_constraint_45 }, + { &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 RICsubscriptionDeleteFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ + -1 /* Ambiguous tag (ANY?) */, + 0, &asn_DEF_value_48, select_RICsubscriptionDeleteFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_48, memb_value_constraint_45 }, + { &asn_OER_memb_value_constr_48, &asn_PER_memb_value_constr_48, memb_value_constraint_45 }, 0, 0, /* No default value */ "value" }, @@ -5397,15 +5620,14 @@ 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_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_45 = { sizeof(struct RICsubscriptionDeleteFailure_IEs), offsetof(struct RICsubscriptionDeleteFailure_IEs, _asn_ctx), asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_45, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -5539,29 +5761,29 @@ asn_TYPE_descriptor_t asn_DEF_value_52 = { 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_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_50, memb_id_constraint_49 }, + { &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 RICindication_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, &asn_DEF_Criticality, select_RICindication_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_51, memb_criticality_constraint_49 }, + { &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 RICindication_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ + -1 /* Ambiguous tag (ANY?) */, + 0, &asn_DEF_value_52, select_RICindication_IEs_value_type, - { 0, &asn_PER_memb_value_constr_52, memb_value_constraint_49 }, + { &asn_OER_memb_value_constr_52, &asn_PER_memb_value_constr_52, memb_value_constraint_49 }, 0, 0, /* No default value */ "value" }, @@ -5570,15 +5792,14 @@ 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_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_49 = { sizeof(struct RICindication_IEs), offsetof(struct RICindication_IEs, _asn_ctx), asn_MAP_RICindication_IEs_tag2el_49, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -5692,29 +5913,29 @@ asn_TYPE_descriptor_t asn_DEF_value_56 = { 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_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_54, memb_id_constraint_53 }, + { &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 RICcontrolRequest_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, &asn_DEF_Criticality, select_RICcontrolRequest_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_55, memb_criticality_constraint_53 }, + { &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 RICcontrolRequest_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ + -1 /* Ambiguous tag (ANY?) */, + 0, &asn_DEF_value_56, select_RICcontrolRequest_IEs_value_type, - { 0, &asn_PER_memb_value_constr_56, memb_value_constraint_53 }, + { &asn_OER_memb_value_constr_56, &asn_PER_memb_value_constr_56, memb_value_constraint_53 }, 0, 0, /* No default value */ "value" }, @@ -5723,15 +5944,14 @@ 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_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_53 = { sizeof(struct RICcontrolRequest_IEs), offsetof(struct RICcontrolRequest_IEs, _asn_ctx), asn_MAP_RICcontrolRequest_IEs_tag2el_53, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -5835,29 +6055,29 @@ asn_TYPE_descriptor_t asn_DEF_value_60 = { 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_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_58, memb_id_constraint_57 }, + { &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 RICcontrolAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, &asn_DEF_Criticality, select_RICcontrolAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_59, memb_criticality_constraint_57 }, + { &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 RICcontrolAcknowledge_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ + -1 /* Ambiguous tag (ANY?) */, + 0, &asn_DEF_value_60, select_RICcontrolAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_60, memb_value_constraint_57 }, + { &asn_OER_memb_value_constr_60, &asn_PER_memb_value_constr_60, memb_value_constraint_57 }, 0, 0, /* No default value */ "value" }, @@ -5866,15 +6086,14 @@ 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_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_57 = { sizeof(struct RICcontrolAcknowledge_IEs), offsetof(struct RICcontrolAcknowledge_IEs, _asn_ctx), asn_MAP_RICcontrolAcknowledge_IEs_tag2el_57, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -5982,29 +6201,29 @@ asn_TYPE_descriptor_t asn_DEF_value_64 = { 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_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_62, memb_id_constraint_61 }, + { &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 RICcontrolFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, &asn_DEF_Criticality, select_RICcontrolFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_63, memb_criticality_constraint_61 }, + { &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 RICcontrolFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ + -1 /* Ambiguous tag (ANY?) */, + 0, &asn_DEF_value_64, select_RICcontrolFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_64, memb_value_constraint_61 }, + { &asn_OER_memb_value_constr_64, &asn_PER_memb_value_constr_64, memb_value_constraint_61 }, 0, 0, /* No default value */ "value" }, @@ -6013,15 +6232,14 @@ 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_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_61 = { sizeof(struct RICcontrolFailure_IEs), offsetof(struct RICcontrolFailure_IEs, _asn_ctx), asn_MAP_RICcontrolFailure_IEs_tag2el_61, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -6119,29 +6337,29 @@ asn_TYPE_descriptor_t asn_DEF_value_68 = { 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_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_66, memb_id_constraint_65 }, + { &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 ErrorIndication_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, &asn_DEF_Criticality, select_ErrorIndication_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_67, memb_criticality_constraint_65 }, + { &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 ErrorIndication_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ + -1 /* Ambiguous tag (ANY?) */, + 0, &asn_DEF_value_68, select_ErrorIndication_IEs_value_type, - { 0, &asn_PER_memb_value_constr_68, memb_value_constraint_65 }, + { &asn_OER_memb_value_constr_68, &asn_PER_memb_value_constr_68, memb_value_constraint_65 }, 0, 0, /* No default value */ "value" }, @@ -6150,15 +6368,14 @@ 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_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_65 = { sizeof(struct ErrorIndication_IEs), offsetof(struct ErrorIndication_IEs, _asn_ctx), asn_MAP_ErrorIndication_IEs_tag2el_65, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -6235,29 +6452,29 @@ asn_TYPE_descriptor_t asn_DEF_value_72 = { 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_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_70, memb_id_constraint_69 }, + { &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 E2setupRequestIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, &asn_DEF_Criticality, select_E2setupRequestIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_71, memb_criticality_constraint_69 }, + { &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 E2setupRequestIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ + -1 /* Ambiguous tag (ANY?) */, + 0, &asn_DEF_value_72, select_E2setupRequestIEs_value_type, - { 0, &asn_PER_memb_value_constr_72, memb_value_constraint_69 }, + { &asn_OER_memb_value_constr_72, &asn_PER_memb_value_constr_72, memb_value_constraint_69 }, 0, 0, /* No default value */ "value" }, @@ -6266,15 +6483,14 @@ 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_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_69 = { sizeof(struct E2setupRequestIEs), offsetof(struct E2setupRequestIEs, _asn_ctx), asn_MAP_E2setupRequestIEs_tag2el_69, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -6355,29 +6571,29 @@ asn_TYPE_descriptor_t asn_DEF_value_76 = { 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_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_74, memb_id_constraint_73 }, + { &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 E2setupResponseIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, &asn_DEF_Criticality, select_E2setupResponseIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_75, memb_criticality_constraint_73 }, + { &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 E2setupResponseIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ + -1 /* Ambiguous tag (ANY?) */, + 0, &asn_DEF_value_76, select_E2setupResponseIEs_value_type, - { 0, &asn_PER_memb_value_constr_76, memb_value_constraint_73 }, + { &asn_OER_memb_value_constr_76, &asn_PER_memb_value_constr_76, memb_value_constraint_73 }, 0, 0, /* No default value */ "value" }, @@ -6386,15 +6602,14 @@ 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_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_73 = { sizeof(struct E2setupResponseIEs), offsetof(struct E2setupResponseIEs, _asn_ctx), asn_MAP_E2setupResponseIEs_tag2el_73, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -6482,29 +6697,29 @@ asn_TYPE_descriptor_t asn_DEF_value_80 = { 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_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_78, memb_id_constraint_77 }, + { &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 E2setupFailureIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, &asn_DEF_Criticality, select_E2setupFailureIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_79, memb_criticality_constraint_77 }, + { &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 E2setupFailureIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ + -1 /* Ambiguous tag (ANY?) */, + 0, &asn_DEF_value_80, select_E2setupFailureIEs_value_type, - { 0, &asn_PER_memb_value_constr_80, memb_value_constraint_77 }, + { &asn_OER_memb_value_constr_80, &asn_PER_memb_value_constr_80, memb_value_constraint_77 }, 0, 0, /* No default value */ "value" }, @@ -6513,15 +6728,14 @@ 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_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_77 = { sizeof(struct E2setupFailureIEs), offsetof(struct E2setupFailureIEs, _asn_ctx), asn_MAP_E2setupFailureIEs_tag2el_77, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -6586,29 +6800,29 @@ asn_TYPE_descriptor_t asn_DEF_value_84 = { 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_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_82, memb_id_constraint_81 }, + { &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 ResetRequestIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, &asn_DEF_Criticality, select_ResetRequestIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_83, memb_criticality_constraint_81 }, + { &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 ResetRequestIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ + -1 /* Ambiguous tag (ANY?) */, + 0, &asn_DEF_value_84, select_ResetRequestIEs_value_type, - { 0, &asn_PER_memb_value_constr_84, memb_value_constraint_81 }, + { &asn_OER_memb_value_constr_84, &asn_PER_memb_value_constr_84, memb_value_constraint_81 }, 0, 0, /* No default value */ "value" }, @@ -6617,15 +6831,14 @@ 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_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_81 = { sizeof(struct ResetRequestIEs), offsetof(struct ResetRequestIEs, _asn_ctx), asn_MAP_ResetRequestIEs_tag2el_81, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -6686,29 +6899,29 @@ asn_TYPE_descriptor_t asn_DEF_value_88 = { 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_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_86, memb_id_constraint_85 }, + { &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 ResetResponseIEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, &asn_DEF_Criticality, select_ResetResponseIEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_87, memb_criticality_constraint_85 }, + { &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 ResetResponseIEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ + -1 /* Ambiguous tag (ANY?) */, + 0, &asn_DEF_value_88, select_ResetResponseIEs_value_type, - { 0, &asn_PER_memb_value_constr_88, memb_value_constraint_85 }, + { &asn_OER_memb_value_constr_88, &asn_PER_memb_value_constr_88, memb_value_constraint_85 }, 0, 0, /* No default value */ "value" }, @@ -6717,15 +6930,14 @@ 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_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_85 = { sizeof(struct ResetResponseIEs), offsetof(struct ResetResponseIEs, _asn_ctx), asn_MAP_ResetResponseIEs_tag2el_85, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -6796,29 +7008,29 @@ asn_TYPE_descriptor_t asn_DEF_value_92 = { 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_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_90, memb_id_constraint_89 }, + { &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 RICserviceUpdate_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, &asn_DEF_Criticality, select_RICserviceUpdate_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_91, memb_criticality_constraint_89 }, + { &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 RICserviceUpdate_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ + -1 /* Ambiguous tag (ANY?) */, + 0, &asn_DEF_value_92, select_RICserviceUpdate_IEs_value_type, - { 0, &asn_PER_memb_value_constr_92, memb_value_constraint_89 }, + { &asn_OER_memb_value_constr_92, &asn_PER_memb_value_constr_92, memb_value_constraint_89 }, 0, 0, /* No default value */ "value" }, @@ -6827,15 +7039,14 @@ 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_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_89 = { sizeof(struct RICserviceUpdate_IEs), offsetof(struct RICserviceUpdate_IEs, _asn_ctx), asn_MAP_RICserviceUpdate_IEs_tag2el_89, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -6906,29 +7117,29 @@ asn_TYPE_descriptor_t asn_DEF_value_96 = { 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_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_94, memb_id_constraint_93 }, + { &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 RICserviceUpdateAcknowledge_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, &asn_DEF_Criticality, select_RICserviceUpdateAcknowledge_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_95, memb_criticality_constraint_93 }, + { &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 RICserviceUpdateAcknowledge_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ + -1 /* Ambiguous tag (ANY?) */, + 0, &asn_DEF_value_96, select_RICserviceUpdateAcknowledge_IEs_value_type, - { 0, &asn_PER_memb_value_constr_96, memb_value_constraint_93 }, + { &asn_OER_memb_value_constr_96, &asn_PER_memb_value_constr_96, memb_value_constraint_93 }, 0, 0, /* No default value */ "value" }, @@ -6937,15 +7148,14 @@ 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_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_93 = { sizeof(struct RICserviceUpdateAcknowledge_IEs), offsetof(struct RICserviceUpdateAcknowledge_IEs, _asn_ctx), asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_93, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -7029,29 +7239,29 @@ asn_TYPE_descriptor_t asn_DEF_value_100 = { 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_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_98, memb_id_constraint_97 }, + { &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 RICserviceUpdateFailure_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, &asn_DEF_Criticality, select_RICserviceUpdateFailure_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_99, memb_criticality_constraint_97 }, + { &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 RICserviceUpdateFailure_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ + -1 /* Ambiguous tag (ANY?) */, + 0, &asn_DEF_value_100, select_RICserviceUpdateFailure_IEs_value_type, - { 0, &asn_PER_memb_value_constr_100, memb_value_constraint_97 }, + { &asn_OER_memb_value_constr_100, &asn_PER_memb_value_constr_100, memb_value_constraint_97 }, 0, 0, /* No default value */ "value" }, @@ -7060,15 +7270,14 @@ 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_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_97 = { sizeof(struct RICserviceUpdateFailure_IEs), offsetof(struct RICserviceUpdateFailure_IEs, _asn_ctx), asn_MAP_RICserviceUpdateFailure_IEs_tag2el_97, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; @@ -7129,29 +7338,29 @@ asn_TYPE_descriptor_t asn_DEF_value_104 = { 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_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, &asn_DEF_ProtocolIE_ID, 0, - { 0, &asn_PER_memb_id_constr_102, memb_id_constraint_101 }, + { &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 RICserviceQuery_IEs, criticality), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, &asn_DEF_Criticality, select_RICserviceQuery_IEs_criticality_type, - { 0, &asn_PER_memb_criticality_constr_103, memb_criticality_constraint_101 }, + { &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 RICserviceQuery_IEs, value), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ + -1 /* Ambiguous tag (ANY?) */, + 0, &asn_DEF_value_104, select_RICserviceQuery_IEs_value_type, - { 0, &asn_PER_memb_value_constr_104, memb_value_constraint_101 }, + { &asn_OER_memb_value_constr_104, &asn_PER_memb_value_constr_104, memb_value_constraint_101 }, 0, 0, /* No default value */ "value" }, @@ -7160,15 +7369,14 @@ 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_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_101 = { sizeof(struct RICserviceQuery_IEs), offsetof(struct RICserviceQuery_IEs, _asn_ctx), asn_MAP_RICserviceQuery_IEs_tag2el_101, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; diff --git a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-Field.h b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-Field.h index 2515bf4..8bbef66 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-Field.h +++ b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-Field.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-Containers-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _ProtocolIE_Field_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-FieldPair.c b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-FieldPair.c index 82bda1a..fa909ca 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-FieldPair.c +++ b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-FieldPair.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-Containers-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "ProtocolIE-FieldPair.h" diff --git a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-FieldPair.h b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-FieldPair.h index 191ea27..17a19c7 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-FieldPair.h +++ b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-FieldPair.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-Containers-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _ProtocolIE_FieldPair_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ID.c b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ID.c index 92c8c14..b0e56de 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ID.c +++ b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-CommonDataTypes-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "ProtocolIE-ID.h" @@ -36,6 +36,9 @@ ProtocolIE_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, * 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 }, @@ -54,7 +57,7 @@ asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ID = { 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 }, + { &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/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ID.h b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ID.h index a6afe03..dc75633 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ID.h +++ b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-CommonDataTypes-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _ProtocolIE_ID_H_ @@ -31,6 +31,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-SingleContainer.c b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-SingleContainer.c index 506b061..5b06b80 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-SingleContainer.c +++ b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-SingleContainer.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-Containers-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "ProtocolIE-SingleContainer.h" @@ -31,114 +31,114 @@ * This type is implemented using RANfunctionIDcause_ItemIEs, * so here we adjust the DEF accordingly. */ -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_1415P0_tags_1[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_90P0_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1415P0 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P0 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1415P0_tags_1, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1415P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1415P0_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1415P0_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1415P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1415P0_tags_1[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_90P0_tags_1, + sizeof(asn_DEF_ProtocolIE_SingleContainer_90P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_90P0_tags_1[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_90P0_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_90P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_90P0_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_1415P1_tags_2[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_90P1_tags_2[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1415P1 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P1 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1415P1_tags_2, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1415P1_tags_2) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1415P1_tags_2[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1415P1_tags_2, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1415P1_tags_2) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1415P1_tags_2[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_90P1_tags_2, + sizeof(asn_DEF_ProtocolIE_SingleContainer_90P1_tags_2) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_90P1_tags_2[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_90P1_tags_2, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_90P1_tags_2) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_90P1_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_1415P2_tags_3[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_90P2_tags_3[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1415P2 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P2 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1415P2_tags_3, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1415P2_tags_3) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1415P2_tags_3[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1415P2_tags_3, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1415P2_tags_3) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1415P2_tags_3[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_90P2_tags_3, + sizeof(asn_DEF_ProtocolIE_SingleContainer_90P2_tags_3) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_90P2_tags_3[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_90P2_tags_3, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_90P2_tags_3) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_90P2_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_1415P3_tags_4[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_90P3_tags_4[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1415P3 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P3 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1415P3_tags_4, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1415P3_tags_4) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1415P3_tags_4[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1415P3_tags_4, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1415P3_tags_4) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1415P3_tags_4[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_90P3_tags_4, + sizeof(asn_DEF_ProtocolIE_SingleContainer_90P3_tags_4) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_90P3_tags_4[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_90P3_tags_4, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_90P3_tags_4) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_90P3_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_1415P4_tags_5[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_90P4_tags_5[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1415P4 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P4 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1415P4_tags_5, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1415P4_tags_5) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1415P4_tags_5[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1415P4_tags_5, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1415P4_tags_5) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1415P4_tags_5[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_90P4_tags_5, + sizeof(asn_DEF_ProtocolIE_SingleContainer_90P4_tags_5) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_90P4_tags_5[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_90P4_tags_5, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_90P4_tags_5) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_90P4_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_1415P5_tags_6[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_90P5_tags_6[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1415P5 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P5 = { "ProtocolIE-SingleContainer", "ProtocolIE-SingleContainer", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainer_1415P5_tags_6, - sizeof(asn_DEF_ProtocolIE_SingleContainer_1415P5_tags_6) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1415P5_tags_6[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainer_1415P5_tags_6, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainer_1415P5_tags_6) - /sizeof(asn_DEF_ProtocolIE_SingleContainer_1415P5_tags_6[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_90P5_tags_6, + sizeof(asn_DEF_ProtocolIE_SingleContainer_90P5_tags_6) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_90P5_tags_6[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_90P5_tags_6, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_90P5_tags_6) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_90P5_tags_6[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_RANfunctionIDcause_ItemIEs_21, 3, /* Elements count */ diff --git a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-SingleContainer.h b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-SingleContainer.h index 5cf2853..eadd741 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-SingleContainer.h +++ b/setup/xapp-sm-connector/asn1c_defs/ProtocolIE-SingleContainer.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-Containers-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _ProtocolIE_SingleContainer_H_ @@ -19,86 +19,98 @@ extern "C" { #endif /* ProtocolIE-SingleContainer */ -typedef RICaction_ToBeSetup_ItemIEs_t ProtocolIE_SingleContainer_1415P0_t; -typedef RICaction_Admitted_ItemIEs_t ProtocolIE_SingleContainer_1415P1_t; -typedef RICaction_NotAdmitted_ItemIEs_t ProtocolIE_SingleContainer_1415P2_t; -typedef RANfunction_ItemIEs_t ProtocolIE_SingleContainer_1415P3_t; -typedef RANfunctionID_ItemIEs_t ProtocolIE_SingleContainer_1415P4_t; -typedef RANfunctionIDcause_ItemIEs_t ProtocolIE_SingleContainer_1415P5_t; +typedef RICaction_ToBeSetup_ItemIEs_t ProtocolIE_SingleContainer_90P0_t; +typedef RICaction_Admitted_ItemIEs_t ProtocolIE_SingleContainer_90P1_t; +typedef RICaction_NotAdmitted_ItemIEs_t ProtocolIE_SingleContainer_90P2_t; +typedef RANfunction_ItemIEs_t ProtocolIE_SingleContainer_90P3_t; +typedef RANfunctionID_ItemIEs_t ProtocolIE_SingleContainer_90P4_t; +typedef RANfunctionIDcause_ItemIEs_t ProtocolIE_SingleContainer_90P5_t; /* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1415P0; -asn_struct_free_f ProtocolIE_SingleContainer_1415P0_free; -asn_struct_print_f ProtocolIE_SingleContainer_1415P0_print; -asn_constr_check_f ProtocolIE_SingleContainer_1415P0_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1415P0_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1415P0_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1415P0_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1415P0_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1415P0_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1415P0_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1415P0_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1415P0_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1415P1; -asn_struct_free_f ProtocolIE_SingleContainer_1415P1_free; -asn_struct_print_f ProtocolIE_SingleContainer_1415P1_print; -asn_constr_check_f ProtocolIE_SingleContainer_1415P1_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1415P1_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1415P1_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1415P1_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1415P1_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1415P1_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1415P1_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1415P1_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1415P1_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1415P2; -asn_struct_free_f ProtocolIE_SingleContainer_1415P2_free; -asn_struct_print_f ProtocolIE_SingleContainer_1415P2_print; -asn_constr_check_f ProtocolIE_SingleContainer_1415P2_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1415P2_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1415P2_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1415P2_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1415P2_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1415P2_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1415P2_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1415P2_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1415P2_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1415P3; -asn_struct_free_f ProtocolIE_SingleContainer_1415P3_free; -asn_struct_print_f ProtocolIE_SingleContainer_1415P3_print; -asn_constr_check_f ProtocolIE_SingleContainer_1415P3_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1415P3_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1415P3_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1415P3_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1415P3_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1415P3_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1415P3_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1415P3_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1415P3_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1415P4; -asn_struct_free_f ProtocolIE_SingleContainer_1415P4_free; -asn_struct_print_f ProtocolIE_SingleContainer_1415P4_print; -asn_constr_check_f ProtocolIE_SingleContainer_1415P4_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1415P4_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1415P4_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1415P4_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1415P4_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1415P4_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1415P4_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1415P4_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1415P4_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_1415P5; -asn_struct_free_f ProtocolIE_SingleContainer_1415P5_free; -asn_struct_print_f ProtocolIE_SingleContainer_1415P5_print; -asn_constr_check_f ProtocolIE_SingleContainer_1415P5_constraint; -ber_type_decoder_f ProtocolIE_SingleContainer_1415P5_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainer_1415P5_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainer_1415P5_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainer_1415P5_encode_xer; -per_type_decoder_f ProtocolIE_SingleContainer_1415P5_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainer_1415P5_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainer_1415P5_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainer_1415P5_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P0; +asn_struct_free_f ProtocolIE_SingleContainer_90P0_free; +asn_struct_print_f ProtocolIE_SingleContainer_90P0_print; +asn_constr_check_f ProtocolIE_SingleContainer_90P0_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_90P0_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_90P0_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_90P0_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_90P0_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_90P0_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_90P0_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_90P0_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_90P0_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_90P0_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_90P0_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P1; +asn_struct_free_f ProtocolIE_SingleContainer_90P1_free; +asn_struct_print_f ProtocolIE_SingleContainer_90P1_print; +asn_constr_check_f ProtocolIE_SingleContainer_90P1_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_90P1_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_90P1_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_90P1_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_90P1_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_90P1_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_90P1_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_90P1_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_90P1_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_90P1_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_90P1_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P2; +asn_struct_free_f ProtocolIE_SingleContainer_90P2_free; +asn_struct_print_f ProtocolIE_SingleContainer_90P2_print; +asn_constr_check_f ProtocolIE_SingleContainer_90P2_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_90P2_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_90P2_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_90P2_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_90P2_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_90P2_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_90P2_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_90P2_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_90P2_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_90P2_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_90P2_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P3; +asn_struct_free_f ProtocolIE_SingleContainer_90P3_free; +asn_struct_print_f ProtocolIE_SingleContainer_90P3_print; +asn_constr_check_f ProtocolIE_SingleContainer_90P3_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_90P3_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_90P3_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_90P3_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_90P3_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_90P3_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_90P3_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_90P3_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_90P3_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_90P3_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_90P3_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P4; +asn_struct_free_f ProtocolIE_SingleContainer_90P4_free; +asn_struct_print_f ProtocolIE_SingleContainer_90P4_print; +asn_constr_check_f ProtocolIE_SingleContainer_90P4_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_90P4_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_90P4_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_90P4_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_90P4_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_90P4_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_90P4_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_90P4_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_90P4_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_90P4_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_90P4_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P5; +asn_struct_free_f ProtocolIE_SingleContainer_90P5_free; +asn_struct_print_f ProtocolIE_SingleContainer_90P5_print; +asn_constr_check_f ProtocolIE_SingleContainer_90P5_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_90P5_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_90P5_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_90P5_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_90P5_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_90P5_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_90P5_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_90P5_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_90P5_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_90P5_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_90P5_encode_aper; #ifdef __cplusplus } diff --git a/setup/xapp-sm-connector/asn1c_defs/QCI.c b/setup/xapp-sm-connector/asn1c_defs/QCI.c new file mode 100644 index 0000000..61627ee --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/QCI.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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 >= 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_QCI_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_QCI_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_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 */ + { &asn_OER_type_QCI_constr_1, &asn_PER_type_QCI_constr_1, QCI_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/QCI.h b/setup/xapp-sm-connector/asn1c_defs/QCI.h new file mode 100644 index 0000000..41fd4c0 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/QCI.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _QCI_H_ +#define _QCI_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +oer_type_decoder_f QCI_decode_oer; +oer_type_encoder_f QCI_encode_oer; +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 diff --git a/setup/xapp-sm-connector/asn1c_defs/QFI.c b/setup/xapp-sm-connector/asn1c_defs/QFI.c new file mode 100644 index 0000000..6087bdb --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/QFI.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "QFI.h" + +int +QFI_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 <= 63)) { + /* 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_QFI_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_QFI_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 */ +}; +static const ber_tlv_tag_t asn_DEF_QFI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_QFI = { + "QFI", + "QFI", + &asn_OP_NativeInteger, + asn_DEF_QFI_tags_1, + sizeof(asn_DEF_QFI_tags_1) + /sizeof(asn_DEF_QFI_tags_1[0]), /* 1 */ + asn_DEF_QFI_tags_1, /* Same as above */ + sizeof(asn_DEF_QFI_tags_1) + /sizeof(asn_DEF_QFI_tags_1[0]), /* 1 */ + { &asn_OER_type_QFI_constr_1, &asn_PER_type_QFI_constr_1, QFI_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/QFI.h b/setup/xapp-sm-connector/asn1c_defs/QFI.h new file mode 100644 index 0000000..dc3dab0 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/QFI.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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _QFI_H_ +#define _QFI_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* QFI */ +typedef long QFI_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_QFI_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_QFI; +asn_struct_free_f QFI_free; +asn_struct_print_f QFI_print; +asn_constr_check_f QFI_constraint; +ber_type_decoder_f QFI_decode_ber; +der_type_encoder_f QFI_encode_der; +xer_type_decoder_f QFI_decode_xer; +xer_type_encoder_f QFI_encode_xer; +oer_type_decoder_f QFI_decode_oer; +oer_type_encoder_f QFI_encode_oer; +per_type_decoder_f QFI_decode_uper; +per_type_encoder_f QFI_encode_uper; +per_type_decoder_f QFI_decode_aper; +per_type_encoder_f QFI_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _QFI_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/RAN-Container.c b/setup/xapp-sm-connector/asn1c_defs/RAN-Container.c new file mode 100644 index 0000000..00ae3b9 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RAN-Container.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "RAN-Container.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_RAN_Container_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RAN_Container = { + "RAN-Container", + "RAN-Container", + &asn_OP_OCTET_STRING, + 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, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/RAN-Container.h b/setup/xapp-sm-connector/asn1c_defs/RAN-Container.h new file mode 100644 index 0000000..ad65e6f --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RAN-Container.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _RAN_Container_H_ +#define _RAN_Container_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RAN-Container */ +typedef OCTET_STRING_t RAN_Container_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RAN_Container; +asn_struct_free_f RAN_Container_free; +asn_struct_print_f RAN_Container_print; +asn_constr_check_f RAN_Container_constraint; +ber_type_decoder_f RAN_Container_decode_ber; +der_type_encoder_f RAN_Container_encode_der; +xer_type_decoder_f RAN_Container_decode_xer; +xer_type_encoder_f RAN_Container_encode_xer; +oer_type_decoder_f RAN_Container_decode_oer; +oer_type_encoder_f RAN_Container_encode_oer; +per_type_decoder_f RAN_Container_decode_uper; +per_type_encoder_f RAN_Container_encode_uper; +per_type_decoder_f RAN_Container_decode_aper; +per_type_encoder_f RAN_Container_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RAN_Container_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/RAN-ControlParameter-Item.c b/setup/xapp-sm-connector/asn1c_defs/RAN-ControlParameter-Item.c new file mode 100644 index 0000000..4ae973e --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RAN-ControlParameter-Item.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "RAN-ControlParameter-Item.h" + +asn_TYPE_member_t asn_MBR_RAN_ControlParameter_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RAN_ControlParameter_Item, ranParameter_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RANParameter_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ranParameter-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RAN_ControlParameter_Item, ranParameter_Name), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RANParameter_Name, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ranParameter-Name" + }, +}; +static const ber_tlv_tag_t asn_DEF_RAN_ControlParameter_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RAN_ControlParameter_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranParameter-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranParameter-Name */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RAN_ControlParameter_Item_specs_1 = { + sizeof(struct RAN_ControlParameter_Item), + offsetof(struct RAN_ControlParameter_Item, _asn_ctx), + asn_MAP_RAN_ControlParameter_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_RAN_ControlParameter_Item = { + "RAN-ControlParameter-Item", + "RAN-ControlParameter-Item", + &asn_OP_SEQUENCE, + asn_DEF_RAN_ControlParameter_Item_tags_1, + sizeof(asn_DEF_RAN_ControlParameter_Item_tags_1) + /sizeof(asn_DEF_RAN_ControlParameter_Item_tags_1[0]), /* 1 */ + asn_DEF_RAN_ControlParameter_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RAN_ControlParameter_Item_tags_1) + /sizeof(asn_DEF_RAN_ControlParameter_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RAN_ControlParameter_Item_1, + 2, /* Elements count */ + &asn_SPC_RAN_ControlParameter_Item_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/RAN-ControlParameter-Item.h b/setup/xapp-sm-connector/asn1c_defs/RAN-ControlParameter-Item.h new file mode 100644 index 0000000..68f5082 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RAN-ControlParameter-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _RAN_ControlParameter_Item_H_ +#define _RAN_ControlParameter_Item_H_ + + +#include + +/* Including external dependencies */ +#include "RANParameter-ID.h" +#include "RANParameter-Name.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RAN-ControlParameter-Item */ +typedef struct RAN_ControlParameter_Item { + RANParameter_ID_t ranParameter_ID; + RANParameter_Name_t ranParameter_Name; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RAN_ControlParameter_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RAN_ControlParameter_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RAN_ControlParameter_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RAN_ControlParameter_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RAN_ControlParameter_Item_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/RANParameter-ELEMENT.c b/setup/xapp-sm-connector/asn1c_defs/RANParameter-ELEMENT.c new file mode 100644 index 0000000..63edc16 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RANParameter-ELEMENT.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "RANParameter-ELEMENT.h" + +asn_TYPE_member_t asn_MBR_RANParameter_ELEMENT_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RANParameter_ELEMENT, keyFlag), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "keyFlag" + }, + { ATF_NOFLAGS, 0, offsetof(struct RANParameter_ELEMENT, ranParameter_Value), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_RANParameter_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ranParameter-Value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RANParameter_ELEMENT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RANParameter_ELEMENT_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* keyFlag */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranParameter-Value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RANParameter_ELEMENT_specs_1 = { + sizeof(struct RANParameter_ELEMENT), + offsetof(struct RANParameter_ELEMENT, _asn_ctx), + asn_MAP_RANParameter_ELEMENT_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_RANParameter_ELEMENT = { + "RANParameter-ELEMENT", + "RANParameter-ELEMENT", + &asn_OP_SEQUENCE, + asn_DEF_RANParameter_ELEMENT_tags_1, + sizeof(asn_DEF_RANParameter_ELEMENT_tags_1) + /sizeof(asn_DEF_RANParameter_ELEMENT_tags_1[0]), /* 1 */ + asn_DEF_RANParameter_ELEMENT_tags_1, /* Same as above */ + sizeof(asn_DEF_RANParameter_ELEMENT_tags_1) + /sizeof(asn_DEF_RANParameter_ELEMENT_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RANParameter_ELEMENT_1, + 2, /* Elements count */ + &asn_SPC_RANParameter_ELEMENT_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/RANParameter-ELEMENT.h b/setup/xapp-sm-connector/asn1c_defs/RANParameter-ELEMENT.h new file mode 100644 index 0000000..200e3ed --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RANParameter-ELEMENT.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _RANParameter_ELEMENT_H_ +#define _RANParameter_ELEMENT_H_ + + +#include + +/* Including external dependencies */ +#include +#include "RANParameter-Value.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RANParameter-ELEMENT */ +typedef struct RANParameter_ELEMENT { + BOOLEAN_t keyFlag; + RANParameter_Value_t ranParameter_Value; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RANParameter_ELEMENT_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RANParameter_ELEMENT; +extern asn_SEQUENCE_specifics_t asn_SPC_RANParameter_ELEMENT_specs_1; +extern asn_TYPE_member_t asn_MBR_RANParameter_ELEMENT_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RANParameter_ELEMENT_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/RANParameter-ID.c b/setup/xapp-sm-connector/asn1c_defs/RANParameter-ID.c new file mode 100644 index 0000000..4965d59 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RANParameter-ID.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "RANParameter-ID.h" + +int +RANParameter_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. + */ +static asn_oer_constraints_t asn_OER_type_RANParameter_ID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..4294967295) */, + -1}; +asn_per_constraints_t asn_PER_type_RANParameter_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 */ +}; +const asn_INTEGER_specifics_t asn_SPC_RANParameter_ID_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_RANParameter_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RANParameter_ID = { + "RANParameter-ID", + "RANParameter-ID", + &asn_OP_NativeInteger, + asn_DEF_RANParameter_ID_tags_1, + sizeof(asn_DEF_RANParameter_ID_tags_1) + /sizeof(asn_DEF_RANParameter_ID_tags_1[0]), /* 1 */ + asn_DEF_RANParameter_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_RANParameter_ID_tags_1) + /sizeof(asn_DEF_RANParameter_ID_tags_1[0]), /* 1 */ + { &asn_OER_type_RANParameter_ID_constr_1, &asn_PER_type_RANParameter_ID_constr_1, RANParameter_ID_constraint }, + 0, 0, /* No members */ + &asn_SPC_RANParameter_ID_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/RANParameter-ID.h b/setup/xapp-sm-connector/asn1c_defs/RANParameter-ID.h new file mode 100644 index 0000000..74f3479 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RANParameter-ID.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _RANParameter_ID_H_ +#define _RANParameter_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RANParameter-ID */ +typedef unsigned long RANParameter_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RANParameter_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RANParameter_ID; +extern const asn_INTEGER_specifics_t asn_SPC_RANParameter_ID_specs_1; +asn_struct_free_f RANParameter_ID_free; +asn_struct_print_f RANParameter_ID_print; +asn_constr_check_f RANParameter_ID_constraint; +ber_type_decoder_f RANParameter_ID_decode_ber; +der_type_encoder_f RANParameter_ID_encode_der; +xer_type_decoder_f RANParameter_ID_decode_xer; +xer_type_encoder_f RANParameter_ID_encode_xer; +oer_type_decoder_f RANParameter_ID_decode_oer; +oer_type_encoder_f RANParameter_ID_encode_oer; +per_type_decoder_f RANParameter_ID_decode_uper; +per_type_encoder_f RANParameter_ID_encode_uper; +per_type_decoder_f RANParameter_ID_decode_aper; +per_type_encoder_f RANParameter_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RANParameter_ID_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/RANParameter-Item.c b/setup/xapp-sm-connector/asn1c_defs/RANParameter-Item.c new file mode 100644 index 0000000..0da6978 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RANParameter-Item.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "RANParameter-Item.h" + +#include "RANParameter-ValueType.h" +asn_TYPE_member_t asn_MBR_RANParameter_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RANParameter_Item, ranParameterItem_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RANParameter_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ranParameterItem-ID" + }, + { ATF_POINTER, 0, offsetof(struct RANParameter_Item, ranParameterItem_valueType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_RANParameter_ValueType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ranParameterItem-valueType" + }, +}; +static const ber_tlv_tag_t asn_DEF_RANParameter_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RANParameter_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranParameterItem-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranParameterItem-valueType */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RANParameter_Item_specs_1 = { + sizeof(struct RANParameter_Item), + offsetof(struct RANParameter_Item, _asn_ctx), + asn_MAP_RANParameter_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_RANParameter_Item = { + "RANParameter-Item", + "RANParameter-Item", + &asn_OP_SEQUENCE, + asn_DEF_RANParameter_Item_tags_1, + sizeof(asn_DEF_RANParameter_Item_tags_1) + /sizeof(asn_DEF_RANParameter_Item_tags_1[0]), /* 1 */ + asn_DEF_RANParameter_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RANParameter_Item_tags_1) + /sizeof(asn_DEF_RANParameter_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RANParameter_Item_1, + 2, /* Elements count */ + &asn_SPC_RANParameter_Item_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/RANParameter-Item.h b/setup/xapp-sm-connector/asn1c_defs/RANParameter-Item.h new file mode 100644 index 0000000..922c61a --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RANParameter-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _RANParameter_Item_H_ +#define _RANParameter_Item_H_ + + +#include + +/* Including external dependencies */ +#include "RANParameter-ID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RANParameter_ValueType; + +/* RANParameter-Item */ +typedef struct RANParameter_Item { + RANParameter_ID_t ranParameterItem_ID; + struct RANParameter_ValueType *ranParameterItem_valueType; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RANParameter_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RANParameter_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RANParameter_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RANParameter_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RANParameter_Item_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/RANParameter-LIST.c b/setup/xapp-sm-connector/asn1c_defs/RANParameter-LIST.c new file mode 100644 index 0000000..501db25 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RANParameter-LIST.c @@ -0,0 +1,130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "RANParameter-LIST.h" + +#include "RANParameter-STRUCTURE.h" +static int +memb_list_of_ranParameter_Structures_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 <= 4294967295)) { + /* 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_list_of_ranParameter_Structures_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4294967295)) */}; +static asn_per_constraints_t asn_PER_type_list_of_ranParameter_Structures_constr_2 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_oer_constraints_t asn_OER_memb_list_of_ranParameter_Structures_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4294967295)) */}; +static asn_per_constraints_t asn_PER_memb_list_of_ranParameter_Structures_constr_2 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_list_of_ranParameter_Structures_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RANParameter_STRUCTURE, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_list_of_ranParameter_Structures_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_list_of_ranParameter_Structures_specs_2 = { + sizeof(struct RANParameter_LIST__list_of_ranParameter_Structures), + offsetof(struct RANParameter_LIST__list_of_ranParameter_Structures, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_list_of_ranParameter_Structures_2 = { + "list-of-ranParameter-Structures", + "list-of-ranParameter-Structures", + &asn_OP_SEQUENCE_OF, + asn_DEF_list_of_ranParameter_Structures_tags_2, + sizeof(asn_DEF_list_of_ranParameter_Structures_tags_2) + /sizeof(asn_DEF_list_of_ranParameter_Structures_tags_2[0]) - 1, /* 1 */ + asn_DEF_list_of_ranParameter_Structures_tags_2, /* Same as above */ + sizeof(asn_DEF_list_of_ranParameter_Structures_tags_2) + /sizeof(asn_DEF_list_of_ranParameter_Structures_tags_2[0]), /* 2 */ + { &asn_OER_type_list_of_ranParameter_Structures_constr_2, &asn_PER_type_list_of_ranParameter_Structures_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_list_of_ranParameter_Structures_2, + 1, /* Single element */ + &asn_SPC_list_of_ranParameter_Structures_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RANParameter_LIST_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RANParameter_LIST, list_of_ranParameter_Structures), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_list_of_ranParameter_Structures_2, + 0, + { &asn_OER_memb_list_of_ranParameter_Structures_constr_2, &asn_PER_memb_list_of_ranParameter_Structures_constr_2, memb_list_of_ranParameter_Structures_constraint_1 }, + 0, 0, /* No default value */ + "list-of-ranParameter-Structures" + }, +}; +static const ber_tlv_tag_t asn_DEF_RANParameter_LIST_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RANParameter_LIST_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* list-of-ranParameter-Structures */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RANParameter_LIST_specs_1 = { + sizeof(struct RANParameter_LIST), + offsetof(struct RANParameter_LIST, _asn_ctx), + asn_MAP_RANParameter_LIST_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_RANParameter_LIST = { + "RANParameter-LIST", + "RANParameter-LIST", + &asn_OP_SEQUENCE, + asn_DEF_RANParameter_LIST_tags_1, + sizeof(asn_DEF_RANParameter_LIST_tags_1) + /sizeof(asn_DEF_RANParameter_LIST_tags_1[0]), /* 1 */ + asn_DEF_RANParameter_LIST_tags_1, /* Same as above */ + sizeof(asn_DEF_RANParameter_LIST_tags_1) + /sizeof(asn_DEF_RANParameter_LIST_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RANParameter_LIST_1, + 1, /* Elements count */ + &asn_SPC_RANParameter_LIST_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/RANParameter-LIST.h b/setup/xapp-sm-connector/asn1c_defs/RANParameter-LIST.h new file mode 100644 index 0000000..603482c --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RANParameter-LIST.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _RANParameter_LIST_H_ +#define _RANParameter_LIST_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RANParameter_STRUCTURE; + +/* RANParameter-LIST */ +typedef struct RANParameter_LIST { + struct RANParameter_LIST__list_of_ranParameter_Structures { + A_SEQUENCE_OF(struct RANParameter_STRUCTURE) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } list_of_ranParameter_Structures; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RANParameter_LIST_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RANParameter_LIST; +extern asn_SEQUENCE_specifics_t asn_SPC_RANParameter_LIST_specs_1; +extern asn_TYPE_member_t asn_MBR_RANParameter_LIST_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RANParameter_LIST_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/RANParameter-Name.c b/setup/xapp-sm-connector/asn1c_defs/RANParameter-Name.c new file mode 100644 index 0000000..fdd2f4c --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RANParameter-Name.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "RANParameter-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 +RANParameter_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_RANParameter_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_RANParameter_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_RANParameter_Name_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_RANParameter_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_RANParameter_Name_1_v2c, /* Value to PER code map */ + asn_PER_MAP_RANParameter_Name_1_c2v /* PER code to value map */ +}; +static const ber_tlv_tag_t asn_DEF_RANParameter_Name_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RANParameter_Name = { + "RANParameter-Name", + "RANParameter-Name", + &asn_OP_PrintableString, + asn_DEF_RANParameter_Name_tags_1, + sizeof(asn_DEF_RANParameter_Name_tags_1) + /sizeof(asn_DEF_RANParameter_Name_tags_1[0]), /* 1 */ + asn_DEF_RANParameter_Name_tags_1, /* Same as above */ + sizeof(asn_DEF_RANParameter_Name_tags_1) + /sizeof(asn_DEF_RANParameter_Name_tags_1[0]), /* 1 */ + { &asn_OER_type_RANParameter_Name_constr_1, &asn_PER_type_RANParameter_Name_constr_1, RANParameter_Name_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/RANParameter-Name.h b/setup/xapp-sm-connector/asn1c_defs/RANParameter-Name.h new file mode 100644 index 0000000..5f1b997 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RANParameter-Name.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _RANParameter_Name_H_ +#define _RANParameter_Name_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RANParameter-Name */ +typedef PrintableString_t RANParameter_Name_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RANParameter_Name_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RANParameter_Name; +asn_struct_free_f RANParameter_Name_free; +asn_struct_print_f RANParameter_Name_print; +asn_constr_check_f RANParameter_Name_constraint; +ber_type_decoder_f RANParameter_Name_decode_ber; +der_type_encoder_f RANParameter_Name_encode_der; +xer_type_decoder_f RANParameter_Name_decode_xer; +xer_type_encoder_f RANParameter_Name_encode_xer; +oer_type_decoder_f RANParameter_Name_decode_oer; +oer_type_encoder_f RANParameter_Name_encode_oer; +per_type_decoder_f RANParameter_Name_decode_uper; +per_type_encoder_f RANParameter_Name_encode_uper; +per_type_decoder_f RANParameter_Name_decode_aper; +per_type_encoder_f RANParameter_Name_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RANParameter_Name_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/RANParameter-STRUCTURE.c b/setup/xapp-sm-connector/asn1c_defs/RANParameter-STRUCTURE.c new file mode 100644 index 0000000..89aa285 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RANParameter-STRUCTURE.c @@ -0,0 +1,130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "RANParameter-STRUCTURE.h" + +#include "RANParameter-Item.h" +static int +memb_sequence_of_ranParameters_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 <= 4294967295)) { + /* 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_sequence_of_ranParameters_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4294967295)) */}; +static asn_per_constraints_t asn_PER_type_sequence_of_ranParameters_constr_2 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_oer_constraints_t asn_OER_memb_sequence_of_ranParameters_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4294967295)) */}; +static asn_per_constraints_t asn_PER_memb_sequence_of_ranParameters_constr_2 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_sequence_of_ranParameters_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RANParameter_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_sequence_of_ranParameters_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_sequence_of_ranParameters_specs_2 = { + sizeof(struct RANParameter_STRUCTURE__sequence_of_ranParameters), + offsetof(struct RANParameter_STRUCTURE__sequence_of_ranParameters, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_sequence_of_ranParameters_2 = { + "sequence-of-ranParameters", + "sequence-of-ranParameters", + &asn_OP_SEQUENCE_OF, + asn_DEF_sequence_of_ranParameters_tags_2, + sizeof(asn_DEF_sequence_of_ranParameters_tags_2) + /sizeof(asn_DEF_sequence_of_ranParameters_tags_2[0]) - 1, /* 1 */ + asn_DEF_sequence_of_ranParameters_tags_2, /* Same as above */ + sizeof(asn_DEF_sequence_of_ranParameters_tags_2) + /sizeof(asn_DEF_sequence_of_ranParameters_tags_2[0]), /* 2 */ + { &asn_OER_type_sequence_of_ranParameters_constr_2, &asn_PER_type_sequence_of_ranParameters_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_sequence_of_ranParameters_2, + 1, /* Single element */ + &asn_SPC_sequence_of_ranParameters_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RANParameter_STRUCTURE_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RANParameter_STRUCTURE, sequence_of_ranParameters), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_sequence_of_ranParameters_2, + 0, + { &asn_OER_memb_sequence_of_ranParameters_constr_2, &asn_PER_memb_sequence_of_ranParameters_constr_2, memb_sequence_of_ranParameters_constraint_1 }, + 0, 0, /* No default value */ + "sequence-of-ranParameters" + }, +}; +static const ber_tlv_tag_t asn_DEF_RANParameter_STRUCTURE_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RANParameter_STRUCTURE_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* sequence-of-ranParameters */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RANParameter_STRUCTURE_specs_1 = { + sizeof(struct RANParameter_STRUCTURE), + offsetof(struct RANParameter_STRUCTURE, _asn_ctx), + asn_MAP_RANParameter_STRUCTURE_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_RANParameter_STRUCTURE = { + "RANParameter-STRUCTURE", + "RANParameter-STRUCTURE", + &asn_OP_SEQUENCE, + asn_DEF_RANParameter_STRUCTURE_tags_1, + sizeof(asn_DEF_RANParameter_STRUCTURE_tags_1) + /sizeof(asn_DEF_RANParameter_STRUCTURE_tags_1[0]), /* 1 */ + asn_DEF_RANParameter_STRUCTURE_tags_1, /* Same as above */ + sizeof(asn_DEF_RANParameter_STRUCTURE_tags_1) + /sizeof(asn_DEF_RANParameter_STRUCTURE_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RANParameter_STRUCTURE_1, + 1, /* Elements count */ + &asn_SPC_RANParameter_STRUCTURE_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/RANParameter-STRUCTURE.h b/setup/xapp-sm-connector/asn1c_defs/RANParameter-STRUCTURE.h new file mode 100644 index 0000000..7904936 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RANParameter-STRUCTURE.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _RANParameter_STRUCTURE_H_ +#define _RANParameter_STRUCTURE_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RANParameter_Item; + +/* RANParameter-STRUCTURE */ +typedef struct RANParameter_STRUCTURE { + struct RANParameter_STRUCTURE__sequence_of_ranParameters { + A_SEQUENCE_OF(struct RANParameter_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } sequence_of_ranParameters; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RANParameter_STRUCTURE_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RANParameter_STRUCTURE; +extern asn_SEQUENCE_specifics_t asn_SPC_RANParameter_STRUCTURE_specs_1; +extern asn_TYPE_member_t asn_MBR_RANParameter_STRUCTURE_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RANParameter_STRUCTURE_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/RANParameter-Value.c b/setup/xapp-sm-connector/asn1c_defs/RANParameter-Value.c new file mode 100644 index 0000000..91f2bc9 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RANParameter-Value.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "RANParameter-Value.h" + +static asn_oer_constraints_t asn_OER_type_RANParameter_Value_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RANParameter_Value_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_RANParameter_Value_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RANParameter_Value, choice.valueInt), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "valueInt" + }, + { ATF_NOFLAGS, 0, offsetof(struct RANParameter_Value, choice.valueOctS), + (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 */ + "valueOctS" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_RANParameter_Value_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* valueInt */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* valueOctS */ +}; +asn_CHOICE_specifics_t asn_SPC_RANParameter_Value_specs_1 = { + sizeof(struct RANParameter_Value), + offsetof(struct RANParameter_Value, _asn_ctx), + offsetof(struct RANParameter_Value, present), + sizeof(((struct RANParameter_Value *)0)->present), + asn_MAP_RANParameter_Value_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_RANParameter_Value = { + "RANParameter-Value", + "RANParameter-Value", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_RANParameter_Value_constr_1, &asn_PER_type_RANParameter_Value_constr_1, CHOICE_constraint }, + asn_MBR_RANParameter_Value_1, + 2, /* Elements count */ + &asn_SPC_RANParameter_Value_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/RANParameter-Value.h b/setup/xapp-sm-connector/asn1c_defs/RANParameter-Value.h new file mode 100644 index 0000000..92e3759 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RANParameter-Value.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _RANParameter_Value_H_ +#define _RANParameter_Value_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RANParameter_Value_PR { + RANParameter_Value_PR_NOTHING, /* No components present */ + RANParameter_Value_PR_valueInt, + RANParameter_Value_PR_valueOctS + /* Extensions may appear below */ + +} RANParameter_Value_PR; + +/* RANParameter-Value */ +typedef struct RANParameter_Value { + RANParameter_Value_PR present; + union RANParameter_Value_u { + long valueInt; + OCTET_STRING_t valueOctS; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RANParameter_Value_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RANParameter_Value; +extern asn_CHOICE_specifics_t asn_SPC_RANParameter_Value_specs_1; +extern asn_TYPE_member_t asn_MBR_RANParameter_Value_1[2]; +extern asn_per_constraints_t asn_PER_type_RANParameter_Value_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RANParameter_Value_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/RANParameter-ValueType.c b/setup/xapp-sm-connector/asn1c_defs/RANParameter-ValueType.c new file mode 100644 index 0000000..ebbf953 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RANParameter-ValueType.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "RANParameter-ValueType.h" + +#include "RANParameter-ELEMENT.h" +#include "RANParameter-STRUCTURE.h" +#include "RANParameter-LIST.h" +static asn_oer_constraints_t asn_OER_type_RANParameter_ValueType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RANParameter_ValueType_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_RANParameter_ValueType_1[] = { + { ATF_POINTER, 0, offsetof(struct RANParameter_ValueType, choice.ranParameter_Element), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RANParameter_ELEMENT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ranParameter-Element" + }, + { ATF_POINTER, 0, offsetof(struct RANParameter_ValueType, choice.ranParameter_Structure), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RANParameter_STRUCTURE, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ranParameter-Structure" + }, + { ATF_POINTER, 0, offsetof(struct RANParameter_ValueType, choice.ranParameter_List), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RANParameter_LIST, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ranParameter-List" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_RANParameter_ValueType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranParameter-Element */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ranParameter-Structure */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ranParameter-List */ +}; +asn_CHOICE_specifics_t asn_SPC_RANParameter_ValueType_specs_1 = { + sizeof(struct RANParameter_ValueType), + offsetof(struct RANParameter_ValueType, _asn_ctx), + offsetof(struct RANParameter_ValueType, present), + sizeof(((struct RANParameter_ValueType *)0)->present), + asn_MAP_RANParameter_ValueType_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_RANParameter_ValueType = { + "RANParameter-ValueType", + "RANParameter-ValueType", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_RANParameter_ValueType_constr_1, &asn_PER_type_RANParameter_ValueType_constr_1, CHOICE_constraint }, + asn_MBR_RANParameter_ValueType_1, + 3, /* Elements count */ + &asn_SPC_RANParameter_ValueType_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/RANParameter-ValueType.h b/setup/xapp-sm-connector/asn1c_defs/RANParameter-ValueType.h new file mode 100644 index 0000000..162ad29 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RANParameter-ValueType.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _RANParameter_ValueType_H_ +#define _RANParameter_ValueType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RANParameter_ValueType_PR { + RANParameter_ValueType_PR_NOTHING, /* No components present */ + RANParameter_ValueType_PR_ranParameter_Element, + RANParameter_ValueType_PR_ranParameter_Structure, + RANParameter_ValueType_PR_ranParameter_List + /* Extensions may appear below */ + +} RANParameter_ValueType_PR; + +/* Forward declarations */ +struct RANParameter_ELEMENT; +struct RANParameter_STRUCTURE; +struct RANParameter_LIST; + +/* RANParameter-ValueType */ +typedef struct RANParameter_ValueType { + RANParameter_ValueType_PR present; + union RANParameter_ValueType_u { + struct RANParameter_ELEMENT *ranParameter_Element; + struct RANParameter_STRUCTURE *ranParameter_Structure; + struct RANParameter_LIST *ranParameter_List; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RANParameter_ValueType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RANParameter_ValueType; +extern asn_CHOICE_specifics_t asn_SPC_RANParameter_ValueType_specs_1; +extern asn_TYPE_member_t asn_MBR_RANParameter_ValueType_1[3]; +extern asn_per_constraints_t asn_PER_type_RANParameter_ValueType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RANParameter_ValueType_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/RANcallProcess-ID-string.c b/setup/xapp-sm-connector/asn1c_defs/RANcallProcess-ID-string.c new file mode 100644 index 0000000..69092be --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RANcallProcess-ID-string.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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/setup/xapp-sm-connector/asn1c_defs/RANcallProcess-ID-string.h b/setup/xapp-sm-connector/asn1c_defs/RANcallProcess-ID-string.h new file mode 100644 index 0000000..c24a061 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RANcallProcess-ID-string.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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/setup/xapp-sm-connector/asn1c_defs/RANfunction-Item.c b/setup/xapp-sm-connector/asn1c_defs/RANfunction-Item.c index 9d60d21..f80753b 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RANfunction-Item.c +++ b/setup/xapp-sm-connector/asn1c_defs/RANfunction-Item.c @@ -1,13 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RANfunction-Item.h" -static asn_TYPE_member_t asn_MBR_RANfunction_Item_1[] = { +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 */ @@ -44,7 +44,7 @@ static const asn_TYPE_tag2member_t asn_MAP_RANfunction_Item_tag2el_1[] = { { (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 = { +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, diff --git a/setup/xapp-sm-connector/asn1c_defs/RANfunction-Item.h b/setup/xapp-sm-connector/asn1c_defs/RANfunction-Item.h index 3877316..38b5e97 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RANfunction-Item.h +++ b/setup/xapp-sm-connector/asn1c_defs/RANfunction-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RANfunction_Item_H_ @@ -37,6 +37,8 @@ typedef struct RANfunction_Item { /* 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[3]; #ifdef __cplusplus } diff --git a/setup/xapp-sm-connector/asn1c_defs/RANfunction-Name.c b/setup/xapp-sm-connector/asn1c_defs/RANfunction-Name.c new file mode 100644 index 0000000..a56189d --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RANfunction-Name.c @@ -0,0 +1,316 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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 <= 150) + && !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, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, + 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/setup/xapp-sm-connector/asn1c_defs/RANfunction-Name.h b/setup/xapp-sm-connector/asn1c_defs/RANfunction-Name.h new file mode 100644 index 0000000..22f5c95 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RANfunction-Name.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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/setup/xapp-sm-connector/asn1c_defs/RANfunctionDefinition.c b/setup/xapp-sm-connector/asn1c_defs/RANfunctionDefinition.c index bec3c36..49c090f 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RANfunctionDefinition.c +++ b/setup/xapp-sm-connector/asn1c_defs/RANfunctionDefinition.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RANfunctionDefinition.h" diff --git a/setup/xapp-sm-connector/asn1c_defs/RANfunctionDefinition.h b/setup/xapp-sm-connector/asn1c_defs/RANfunctionDefinition.h index 2fdead2..3676c45 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RANfunctionDefinition.h +++ b/setup/xapp-sm-connector/asn1c_defs/RANfunctionDefinition.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RANfunctionDefinition_H_ @@ -30,6 +30,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/RANfunctionID-Item.c b/setup/xapp-sm-connector/asn1c_defs/RANfunctionID-Item.c index 7a2c15c..fb2b6fc 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RANfunctionID-Item.c +++ b/setup/xapp-sm-connector/asn1c_defs/RANfunctionID-Item.c @@ -1,13 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RANfunctionID-Item.h" -static asn_TYPE_member_t asn_MBR_RANfunctionID_Item_1[] = { +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 */ @@ -34,7 +34,7 @@ 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 = { +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, diff --git a/setup/xapp-sm-connector/asn1c_defs/RANfunctionID-Item.h b/setup/xapp-sm-connector/asn1c_defs/RANfunctionID-Item.h index 30fb177..f4a643d 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RANfunctionID-Item.h +++ b/setup/xapp-sm-connector/asn1c_defs/RANfunctionID-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RANfunctionID_Item_H_ @@ -35,6 +35,8 @@ typedef struct RANfunctionID_Item { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/RANfunctionID.c b/setup/xapp-sm-connector/asn1c_defs/RANfunctionID.c index ca5602f..d79a9d6 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RANfunctionID.c +++ b/setup/xapp-sm-connector/asn1c_defs/RANfunctionID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RANfunctionID.h" @@ -36,6 +36,9 @@ RANfunctionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, * 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 }, @@ -54,7 +57,7 @@ asn_TYPE_descriptor_t asn_DEF_RANfunctionID = { 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 }, + { &asn_OER_type_RANfunctionID_constr_1, &asn_PER_type_RANfunctionID_constr_1, RANfunctionID_constraint }, 0, 0, /* No members */ 0 /* No specifics */ }; diff --git a/setup/xapp-sm-connector/asn1c_defs/RANfunctionID.h b/setup/xapp-sm-connector/asn1c_defs/RANfunctionID.h index e8ea3f6..00c4765 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RANfunctionID.h +++ b/setup/xapp-sm-connector/asn1c_defs/RANfunctionID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RANfunctionID_H_ @@ -31,6 +31,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/RANfunctionIDcause-Item.c b/setup/xapp-sm-connector/asn1c_defs/RANfunctionIDcause-Item.c index aca1f62..b74eb64 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RANfunctionIDcause-Item.c +++ b/setup/xapp-sm-connector/asn1c_defs/RANfunctionIDcause-Item.c @@ -1,13 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RANfunctionIDcause-Item.h" -static asn_TYPE_member_t asn_MBR_RANfunctionIDcause_Item_1[] = { +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 */ @@ -34,7 +34,7 @@ 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 = { +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, diff --git a/setup/xapp-sm-connector/asn1c_defs/RANfunctionIDcause-Item.h b/setup/xapp-sm-connector/asn1c_defs/RANfunctionIDcause-Item.h index c4505b5..65d1d16 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RANfunctionIDcause-Item.h +++ b/setup/xapp-sm-connector/asn1c_defs/RANfunctionIDcause-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RANfunctionIDcause_Item_H_ @@ -35,6 +35,8 @@ typedef struct RANfunctionIDcause_Item { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/RANfunctionRevision.c b/setup/xapp-sm-connector/asn1c_defs/RANfunctionRevision.c index 563dda0..32cc4a5 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RANfunctionRevision.c +++ b/setup/xapp-sm-connector/asn1c_defs/RANfunctionRevision.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RANfunctionRevision.h" @@ -36,6 +36,9 @@ RANfunctionRevision_constraint(const asn_TYPE_descriptor_t *td, const void *sptr * 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 }, @@ -54,7 +57,7 @@ asn_TYPE_descriptor_t asn_DEF_RANfunctionRevision = { 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 }, + { &asn_OER_type_RANfunctionRevision_constr_1, &asn_PER_type_RANfunctionRevision_constr_1, RANfunctionRevision_constraint }, 0, 0, /* No members */ 0 /* No specifics */ }; diff --git a/setup/xapp-sm-connector/asn1c_defs/RANfunctionRevision.h b/setup/xapp-sm-connector/asn1c_defs/RANfunctionRevision.h index 74853ea..76f500a 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RANfunctionRevision.h +++ b/setup/xapp-sm-connector/asn1c_defs/RANfunctionRevision.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RANfunctionRevision_H_ @@ -31,6 +31,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/RANfunctions-List.c b/setup/xapp-sm-connector/asn1c_defs/RANfunctions-List.c index 12912e0..cf01054 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RANfunctions-List.c +++ b/setup/xapp-sm-connector/asn1c_defs/RANfunctions-List.c @@ -1,23 +1,26 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RANfunctions-List.h" #include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RANfunctions_List_constr_1 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_RANfunctions_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..256)) */}; +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[] = { +asn_TYPE_member_t asn_MBR_RANfunctions_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainer_1415P3, + &asn_DEF_ProtocolIE_SingleContainer_90P3, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -27,7 +30,7 @@ static asn_TYPE_member_t asn_MBR_RANfunctions_List_1[] = { 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 = { +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 */ @@ -42,7 +45,7 @@ asn_TYPE_descriptor_t asn_DEF_RANfunctions_List = { 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_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/setup/xapp-sm-connector/asn1c_defs/RANfunctions-List.h b/setup/xapp-sm-connector/asn1c_defs/RANfunctions-List.h index 6a4a41a..c3fd3e3 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RANfunctions-List.h +++ b/setup/xapp-sm-connector/asn1c_defs/RANfunctions-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RANfunctions_List_H_ @@ -32,6 +32,9 @@ typedef struct RANfunctions_List { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/RANfunctionsID-List.c b/setup/xapp-sm-connector/asn1c_defs/RANfunctionsID-List.c index 3e5dda5..b888995 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RANfunctionsID-List.c +++ b/setup/xapp-sm-connector/asn1c_defs/RANfunctionsID-List.c @@ -1,23 +1,26 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RANfunctionsID-List.h" #include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RANfunctionsID_List_constr_1 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_RANfunctionsID_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..256)) */}; +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[] = { +asn_TYPE_member_t asn_MBR_RANfunctionsID_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainer_1415P4, + &asn_DEF_ProtocolIE_SingleContainer_90P4, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -27,7 +30,7 @@ static asn_TYPE_member_t asn_MBR_RANfunctionsID_List_1[] = { 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 = { +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 */ @@ -42,7 +45,7 @@ asn_TYPE_descriptor_t asn_DEF_RANfunctionsID_List = { 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_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/setup/xapp-sm-connector/asn1c_defs/RANfunctionsID-List.h b/setup/xapp-sm-connector/asn1c_defs/RANfunctionsID-List.h index 5313c5c..1a77d70 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RANfunctionsID-List.h +++ b/setup/xapp-sm-connector/asn1c_defs/RANfunctionsID-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RANfunctionsID_List_H_ @@ -32,6 +32,9 @@ typedef struct RANfunctionsID_List { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/RANfunctionsIDcause-List.c b/setup/xapp-sm-connector/asn1c_defs/RANfunctionsIDcause-List.c index 75fa57f..e1ae0d2 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RANfunctionsIDcause-List.c +++ b/setup/xapp-sm-connector/asn1c_defs/RANfunctionsIDcause-List.c @@ -1,23 +1,26 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RANfunctionsIDcause-List.h" #include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RANfunctionsIDcause_List_constr_1 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_RANfunctionsIDcause_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..256)) */}; +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[] = { +asn_TYPE_member_t asn_MBR_RANfunctionsIDcause_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainer_1415P5, + &asn_DEF_ProtocolIE_SingleContainer_90P5, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -27,7 +30,7 @@ static asn_TYPE_member_t asn_MBR_RANfunctionsIDcause_List_1[] = { 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 = { +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 */ @@ -42,7 +45,7 @@ asn_TYPE_descriptor_t asn_DEF_RANfunctionsIDcause_List = { 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_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/setup/xapp-sm-connector/asn1c_defs/RANfunctionsIDcause-List.h b/setup/xapp-sm-connector/asn1c_defs/RANfunctionsIDcause-List.h index d1cbefd..3fd51d1 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RANfunctionsIDcause-List.h +++ b/setup/xapp-sm-connector/asn1c_defs/RANfunctionsIDcause-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RANfunctionsIDcause_List_H_ @@ -32,6 +32,9 @@ typedef struct RANfunctionsIDcause_List { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/REAL.c b/setup/xapp-sm-connector/asn1c_defs/REAL.c new file mode 100644 index 0000000..e3daf37 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/REAL.c @@ -0,0 +1,1028 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#define _ISOC99_SOURCE /* For ilogb() and quiet NAN */ +#ifndef _BSD_SOURCE +#define _BSD_SOURCE /* To reintroduce finite(3) */ +#endif +#include +#if defined(__alpha) +#include /* For INFINITY */ +#endif +#include /* for strtod(3) */ +#include +#include +#include +#include +#include + +#undef INT_MAX +#define INT_MAX ((int)(((unsigned int)-1) >> 1)) + +#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 + +#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, + REAL_print, + REAL_compare, + ber_decode_primitive, + der_encode_primitive, + REAL_decode_xer, + REAL_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + REAL_decode_oer, + REAL_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + REAL_decode_uper, + REAL_encode_uper, + REAL_decode_aper, + REAL_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + REAL_random_fill, + 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]), + { 0, 0, asn_generic_no_constraint }, + 0, + 0, /* No members */ + 0 /* No specifics */ +}; + +typedef enum specialRealValue { + SRV__NOT_A_NUMBER, + SRV__MINUS_INFINITY, + SRV__PLUS_INFINITY +} specialRealValue_e; +static struct specialRealValue_s { + char *string; + size_t length; + long dv; +} specialRealValue[] = { +#define SRV_SET(foo, val) { foo, sizeof(foo) - 1, val } + SRV_SET("", 0), + SRV_SET("", -1), + SRV_SET("", 1), +#undef SRV_SET +}; + +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); + const char *fmt = canonical ? "%.17E" /* Precise */ : "%.15f" /* Pleasant*/; + 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, fmt, 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); + { + char *E = s; + char *expptr = ++E; + char *s = expptr; + int sign; + + 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_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; +} + +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; + } +} + +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); +} + +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; + } +} + +#ifndef ASN_DISABLE_OER_SUPPORT + +/* + * Encode as Canonical OER + */ +asn_enc_rval_t +REAL_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 REAL_t *st = sptr; + asn_enc_rval_t er = {0,0,0}; + ssize_t len_len; + + if(!st || !st->buf || !td) + ASN__ENCODE_FAILED; + + if(!constraints) constraints = td->encoding_constraints.oer_constraints; + if(constraints && constraints->value.width != 0) { + /* If we're constrained to a narrow float/double representation, we + * shouldn't have ended up using REAL. Expecting NativeReal. */ + ASN__ENCODE_FAILED; + } + + /* Encode a fake REAL */ + len_len = oer_serialize_length(st->size, cb, app_key); + if(len_len < 0 || cb(st->buf, st->size, app_key) < 0) { + ASN__ENCODE_FAILED; + } else { + er.encoded = len_len + st->size; + ASN__ENCODED_OK(er); + } +} + +asn_dec_rval_t +REAL_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) { + asn_dec_rval_t ok = {RC_OK, 0}; + REAL_t *st; + uint8_t *buf; + ssize_t len_len; + size_t real_body_len; + + (void)opt_codec_ctx; + + if(!constraints) constraints = td->encoding_constraints.oer_constraints; + if(constraints && constraints->value.width != 0) { + /* If we're constrained to a narrow float/double representation, we + * shouldn't have ended up using REAL. Expecting NativeReal. */ + ASN__DECODE_FAILED; + } + + len_len = oer_fetch_length(ptr, size, &real_body_len); + if(len_len < 0) ASN__DECODE_FAILED; + if(len_len == 0) ASN__DECODE_STARVED; + + ptr = (const char *)ptr + len_len; + size -= len_len; + + if(real_body_len > size) ASN__DECODE_STARVED; + + buf = CALLOC(1, real_body_len + 1); + if(!buf) ASN__DECODE_FAILED; + + if(!(st = *sptr)) { + st = (*sptr = CALLOC(1, sizeof(REAL_t))); + if(!st) { + FREEMEM(buf); + ASN__DECODE_FAILED; + } + } else { + FREEMEM(st->buf); + } + + memcpy(buf, ptr, real_body_len); + buf[real_body_len] = '\0'; + + st->buf = buf; + st->size = real_body_len; + + ok.consumed = len_len + real_body_len; + return ok; +} + +#endif /* ASN_DISABLE_OER_SUPPORT */ + +#ifndef ASN_DISABLE_PER_SUPPORT + +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); +} + +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); +} + +#endif /* ASN_DISABLE_PER_SUPPORT */ + +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/setup/xapp-sm-connector/asn1c_defs/REAL.h b/setup/xapp-sm-connector/asn1c_defs/REAL.h new file mode 100644 index 0000000..fce6714 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/REAL.h @@ -0,0 +1,67 @@ +/*- + * 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 + +#ifdef __cplusplus +extern "C" { +#endif + +typedef ASN__PRIMITIVE_TYPE_t REAL_t; + +extern asn_TYPE_descriptor_t asn_DEF_REAL; +extern asn_TYPE_operation_t asn_OP_REAL; + +asn_struct_print_f REAL_print; +asn_struct_compare_f REAL_compare; +oer_type_decoder_f REAL_decode_oer; +oer_type_encoder_f REAL_encode_oer; +per_type_decoder_f REAL_decode_uper; +per_type_encoder_f REAL_encode_uper; +per_type_decoder_f REAL_decode_aper; +per_type_encoder_f REAL_encode_aper; +xer_type_decoder_f REAL_decode_xer; +xer_type_encoder_f REAL_encode_xer; +asn_random_fill_f REAL_random_fill; + +#define REAL_free ASN__PRIMITIVE_TYPE_free, +#define REAL_constraint asn_generic_no_constraint +#define REAL_decode_ber ber_decode_primitive +#define REAL_encode_der der_encode_primitive + +/*********************************** + * 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 occured 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/setup/xapp-sm-connector/asn1c_defs/RIC-ControlAction-ID.c b/setup/xapp-sm-connector/asn1c_defs/RIC-ControlAction-ID.c new file mode 100644 index 0000000..b0a0178 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RIC-ControlAction-ID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "RIC-ControlAction-ID.h" + +int +RIC_ControlAction_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_RIC_ControlAction_ID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_RIC_ControlAction_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_RIC_ControlAction_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RIC_ControlAction_ID = { + "RIC-ControlAction-ID", + "RIC-ControlAction-ID", + &asn_OP_NativeInteger, + asn_DEF_RIC_ControlAction_ID_tags_1, + sizeof(asn_DEF_RIC_ControlAction_ID_tags_1) + /sizeof(asn_DEF_RIC_ControlAction_ID_tags_1[0]), /* 1 */ + asn_DEF_RIC_ControlAction_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_RIC_ControlAction_ID_tags_1) + /sizeof(asn_DEF_RIC_ControlAction_ID_tags_1[0]), /* 1 */ + { &asn_OER_type_RIC_ControlAction_ID_constr_1, &asn_PER_type_RIC_ControlAction_ID_constr_1, RIC_ControlAction_ID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/RIC-ControlAction-ID.h b/setup/xapp-sm-connector/asn1c_defs/RIC-ControlAction-ID.h new file mode 100644 index 0000000..78dab02 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RIC-ControlAction-ID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _RIC_ControlAction_ID_H_ +#define _RIC_ControlAction_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RIC-ControlAction-ID */ +typedef long RIC_ControlAction_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RIC_ControlAction_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RIC_ControlAction_ID; +asn_struct_free_f RIC_ControlAction_ID_free; +asn_struct_print_f RIC_ControlAction_ID_print; +asn_constr_check_f RIC_ControlAction_ID_constraint; +ber_type_decoder_f RIC_ControlAction_ID_decode_ber; +der_type_encoder_f RIC_ControlAction_ID_encode_der; +xer_type_decoder_f RIC_ControlAction_ID_decode_xer; +xer_type_encoder_f RIC_ControlAction_ID_encode_xer; +oer_type_decoder_f RIC_ControlAction_ID_decode_oer; +oer_type_encoder_f RIC_ControlAction_ID_encode_oer; +per_type_decoder_f RIC_ControlAction_ID_decode_uper; +per_type_encoder_f RIC_ControlAction_ID_encode_uper; +per_type_decoder_f RIC_ControlAction_ID_decode_aper; +per_type_encoder_f RIC_ControlAction_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RIC_ControlAction_ID_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/RIC-ControlAction-Item.c b/setup/xapp-sm-connector/asn1c_defs/RIC-ControlAction-Item.c new file mode 100644 index 0000000..cc89d2d --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RIC-ControlAction-Item.c @@ -0,0 +1,152 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "RIC-ControlAction-Item.h" + +#include "RAN-ControlParameter-Item.h" +static int +memb_ran_ControlParameters_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 <= 4294967295)) { + /* 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_ran_ControlParameters_List_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4294967295)) */}; +static asn_per_constraints_t asn_PER_type_ran_ControlParameters_List_constr_4 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_oer_constraints_t asn_OER_memb_ran_ControlParameters_List_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4294967295)) */}; +static asn_per_constraints_t asn_PER_memb_ran_ControlParameters_List_constr_4 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_ran_ControlParameters_List_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RAN_ControlParameter_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ran_ControlParameters_List_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ran_ControlParameters_List_specs_4 = { + sizeof(struct RIC_ControlAction_Item__ran_ControlParameters_List), + offsetof(struct RIC_ControlAction_Item__ran_ControlParameters_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ran_ControlParameters_List_4 = { + "ran-ControlParameters-List", + "ran-ControlParameters-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_ran_ControlParameters_List_tags_4, + sizeof(asn_DEF_ran_ControlParameters_List_tags_4) + /sizeof(asn_DEF_ran_ControlParameters_List_tags_4[0]) - 1, /* 1 */ + asn_DEF_ran_ControlParameters_List_tags_4, /* Same as above */ + sizeof(asn_DEF_ran_ControlParameters_List_tags_4) + /sizeof(asn_DEF_ran_ControlParameters_List_tags_4[0]), /* 2 */ + { &asn_OER_type_ran_ControlParameters_List_constr_4, &asn_PER_type_ran_ControlParameters_List_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_ran_ControlParameters_List_4, + 1, /* Single element */ + &asn_SPC_ran_ControlParameters_List_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RIC_ControlAction_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RIC_ControlAction_Item, ric_ControlAction_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RIC_ControlAction_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ric-ControlAction-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RIC_ControlAction_Item, ric_ControlAction_Name), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RIC_ControlAction_Name, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ric-ControlAction-Name" + }, + { ATF_POINTER, 1, offsetof(struct RIC_ControlAction_Item, ran_ControlParameters_List), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ran_ControlParameters_List_4, + 0, + { &asn_OER_memb_ran_ControlParameters_List_constr_4, &asn_PER_memb_ran_ControlParameters_List_constr_4, memb_ran_ControlParameters_List_constraint_1 }, + 0, 0, /* No default value */ + "ran-ControlParameters-List" + }, +}; +static const int asn_MAP_RIC_ControlAction_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_RIC_ControlAction_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RIC_ControlAction_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-ControlAction-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-ControlAction-Name */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ran-ControlParameters-List */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RIC_ControlAction_Item_specs_1 = { + sizeof(struct RIC_ControlAction_Item), + offsetof(struct RIC_ControlAction_Item, _asn_ctx), + asn_MAP_RIC_ControlAction_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_RIC_ControlAction_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RIC_ControlAction_Item = { + "RIC-ControlAction-Item", + "RIC-ControlAction-Item", + &asn_OP_SEQUENCE, + asn_DEF_RIC_ControlAction_Item_tags_1, + sizeof(asn_DEF_RIC_ControlAction_Item_tags_1) + /sizeof(asn_DEF_RIC_ControlAction_Item_tags_1[0]), /* 1 */ + asn_DEF_RIC_ControlAction_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RIC_ControlAction_Item_tags_1) + /sizeof(asn_DEF_RIC_ControlAction_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RIC_ControlAction_Item_1, + 3, /* Elements count */ + &asn_SPC_RIC_ControlAction_Item_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/RIC-ControlAction-Item.h b/setup/xapp-sm-connector/asn1c_defs/RIC-ControlAction-Item.h new file mode 100644 index 0000000..c064c3a --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RIC-ControlAction-Item.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _RIC_ControlAction_Item_H_ +#define _RIC_ControlAction_Item_H_ + + +#include + +/* Including external dependencies */ +#include "RIC-ControlAction-ID.h" +#include "RIC-ControlAction-Name.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RAN_ControlParameter_Item; + +/* RIC-ControlAction-Item */ +typedef struct RIC_ControlAction_Item { + RIC_ControlAction_ID_t ric_ControlAction_ID; + RIC_ControlAction_Name_t ric_ControlAction_Name; + struct RIC_ControlAction_Item__ran_ControlParameters_List { + A_SEQUENCE_OF(struct RAN_ControlParameter_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ran_ControlParameters_List; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RIC_ControlAction_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RIC_ControlAction_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RIC_ControlAction_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RIC_ControlAction_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RIC_ControlAction_Item_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/RIC-ControlAction-Name.c b/setup/xapp-sm-connector/asn1c_defs/RIC-ControlAction-Name.c new file mode 100644 index 0000000..346ea42 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RIC-ControlAction-Name.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "RIC-ControlAction-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_ControlAction_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_ControlAction_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_ControlAction_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_ControlAction_Name_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_RIC_ControlAction_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_ControlAction_Name_1_v2c, /* Value to PER code map */ + asn_PER_MAP_RIC_ControlAction_Name_1_c2v /* PER code to value map */ +}; +static const ber_tlv_tag_t asn_DEF_RIC_ControlAction_Name_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RIC_ControlAction_Name = { + "RIC-ControlAction-Name", + "RIC-ControlAction-Name", + &asn_OP_PrintableString, + asn_DEF_RIC_ControlAction_Name_tags_1, + sizeof(asn_DEF_RIC_ControlAction_Name_tags_1) + /sizeof(asn_DEF_RIC_ControlAction_Name_tags_1[0]), /* 1 */ + asn_DEF_RIC_ControlAction_Name_tags_1, /* Same as above */ + sizeof(asn_DEF_RIC_ControlAction_Name_tags_1) + /sizeof(asn_DEF_RIC_ControlAction_Name_tags_1[0]), /* 1 */ + { &asn_OER_type_RIC_ControlAction_Name_constr_1, &asn_PER_type_RIC_ControlAction_Name_constr_1, RIC_ControlAction_Name_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/RIC-ControlAction-Name.h b/setup/xapp-sm-connector/asn1c_defs/RIC-ControlAction-Name.h new file mode 100644 index 0000000..7e2d351 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RIC-ControlAction-Name.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _RIC_ControlAction_Name_H_ +#define _RIC_ControlAction_Name_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RIC-ControlAction-Name */ +typedef PrintableString_t RIC_ControlAction_Name_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RIC_ControlAction_Name_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RIC_ControlAction_Name; +asn_struct_free_f RIC_ControlAction_Name_free; +asn_struct_print_f RIC_ControlAction_Name_print; +asn_constr_check_f RIC_ControlAction_Name_constraint; +ber_type_decoder_f RIC_ControlAction_Name_decode_ber; +der_type_encoder_f RIC_ControlAction_Name_encode_der; +xer_type_decoder_f RIC_ControlAction_Name_decode_xer; +xer_type_encoder_f RIC_ControlAction_Name_encode_xer; +oer_type_decoder_f RIC_ControlAction_Name_decode_oer; +oer_type_encoder_f RIC_ControlAction_Name_encode_oer; +per_type_decoder_f RIC_ControlAction_Name_decode_uper; +per_type_encoder_f RIC_ControlAction_Name_encode_uper; +per_type_decoder_f RIC_ControlAction_Name_decode_aper; +per_type_encoder_f RIC_ControlAction_Name_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RIC_ControlAction_Name_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/RIC-ControlStyle-Item.c b/setup/xapp-sm-connector/asn1c_defs/RIC-ControlStyle-Item.c new file mode 100644 index 0000000..9aae0c9 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RIC-ControlStyle-Item.c @@ -0,0 +1,172 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "RIC-ControlStyle-Item.h" + +#include "RIC-ControlAction-Item.h" +static int +memb_ric_ControlAction_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 <= 65535)) { + /* 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_ControlAction_List_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +static asn_per_constraints_t asn_PER_type_ric_ControlAction_List_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_ric_ControlAction_List_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +static asn_per_constraints_t asn_PER_memb_ric_ControlAction_List_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 1, 65535 } /* (SIZE(1..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ric_ControlAction_List_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RIC_ControlAction_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ric_ControlAction_List_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ric_ControlAction_List_specs_4 = { + sizeof(struct RIC_ControlStyle_Item__ric_ControlAction_List), + offsetof(struct RIC_ControlStyle_Item__ric_ControlAction_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ric_ControlAction_List_4 = { + "ric-ControlAction-List", + "ric-ControlAction-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_ric_ControlAction_List_tags_4, + sizeof(asn_DEF_ric_ControlAction_List_tags_4) + /sizeof(asn_DEF_ric_ControlAction_List_tags_4[0]) - 1, /* 1 */ + asn_DEF_ric_ControlAction_List_tags_4, /* Same as above */ + sizeof(asn_DEF_ric_ControlAction_List_tags_4) + /sizeof(asn_DEF_ric_ControlAction_List_tags_4[0]), /* 2 */ + { &asn_OER_type_ric_ControlAction_List_constr_4, &asn_PER_type_ric_ControlAction_List_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_ric_ControlAction_List_4, + 1, /* Single element */ + &asn_SPC_ric_ControlAction_List_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RIC_ControlStyle_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RIC_ControlStyle_Item, ric_ControlStyle_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-ControlStyle-Type" + }, + { ATF_NOFLAGS, 0, offsetof(struct RIC_ControlStyle_Item, ric_ControlStyle_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-ControlStyle-Name" + }, + { ATF_POINTER, 1, offsetof(struct RIC_ControlStyle_Item, ric_ControlAction_List), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ric_ControlAction_List_4, + 0, + { &asn_OER_memb_ric_ControlAction_List_constr_4, &asn_PER_memb_ric_ControlAction_List_constr_4, memb_ric_ControlAction_List_constraint_1 }, + 0, 0, /* No default value */ + "ric-ControlAction-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct RIC_ControlStyle_Item, ric_ControlHeaderFormat_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-ControlHeaderFormat-Type" + }, + { ATF_NOFLAGS, 0, offsetof(struct RIC_ControlStyle_Item, ric_ControlMessageFormat_Type), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RIC_Format_Type, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ric-ControlMessageFormat-Type" + }, +}; +static const int asn_MAP_RIC_ControlStyle_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_RIC_ControlStyle_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RIC_ControlStyle_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-ControlStyle-Type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-ControlStyle-Name */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ric-ControlAction-List */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ric-ControlHeaderFormat-Type */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ric-ControlMessageFormat-Type */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RIC_ControlStyle_Item_specs_1 = { + sizeof(struct RIC_ControlStyle_Item), + offsetof(struct RIC_ControlStyle_Item, _asn_ctx), + asn_MAP_RIC_ControlStyle_Item_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_RIC_ControlStyle_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RIC_ControlStyle_Item = { + "RIC-ControlStyle-Item", + "RIC-ControlStyle-Item", + &asn_OP_SEQUENCE, + asn_DEF_RIC_ControlStyle_Item_tags_1, + sizeof(asn_DEF_RIC_ControlStyle_Item_tags_1) + /sizeof(asn_DEF_RIC_ControlStyle_Item_tags_1[0]), /* 1 */ + asn_DEF_RIC_ControlStyle_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RIC_ControlStyle_Item_tags_1) + /sizeof(asn_DEF_RIC_ControlStyle_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RIC_ControlStyle_Item_1, + 5, /* Elements count */ + &asn_SPC_RIC_ControlStyle_Item_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/RIC-ControlStyle-Item.h b/setup/xapp-sm-connector/asn1c_defs/RIC-ControlStyle-Item.h new file mode 100644 index 0000000..a24d639 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RIC-ControlStyle-Item.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _RIC_ControlStyle_Item_H_ +#define _RIC_ControlStyle_Item_H_ + + +#include + +/* Including external dependencies */ +#include "RIC-Style-Type.h" +#include "RIC-Style-Name.h" +#include "RIC-Format-Type.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RIC_ControlAction_Item; + +/* RIC-ControlStyle-Item */ +typedef struct RIC_ControlStyle_Item { + RIC_Style_Type_t ric_ControlStyle_Type; + RIC_Style_Name_t ric_ControlStyle_Name; + struct RIC_ControlStyle_Item__ric_ControlAction_List { + A_SEQUENCE_OF(struct RIC_ControlAction_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ric_ControlAction_List; + RIC_Format_Type_t ric_ControlHeaderFormat_Type; + RIC_Format_Type_t ric_ControlMessageFormat_Type; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RIC_ControlStyle_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RIC_ControlStyle_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RIC_ControlStyle_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RIC_ControlStyle_Item_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RIC_ControlStyle_Item_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/RIC-EventTriggerStyle-Item.c b/setup/xapp-sm-connector/asn1c_defs/RIC-EventTriggerStyle-Item.c new file mode 100644 index 0000000..029f300 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RIC-EventTriggerStyle-Item.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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, + { 0, 0, 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, + { 0, 0, 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, + { 0, 0, 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 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RIC_EventTriggerStyle_Item_1, + 3, /* Elements count */ + &asn_SPC_RIC_EventTriggerStyle_Item_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/RIC-EventTriggerStyle-Item.h b/setup/xapp-sm-connector/asn1c_defs/RIC-EventTriggerStyle-Item.h new file mode 100644 index 0000000..dbff4fc --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RIC-EventTriggerStyle-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _RIC_EventTriggerStyle_Item_H_ +#define _RIC_EventTriggerStyle_Item_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-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 diff --git a/setup/xapp-sm-connector/asn1c_defs/RIC-Format-Type.c b/setup/xapp-sm-connector/asn1c_defs/RIC-Format-Type.c new file mode 100644 index 0000000..8242722 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RIC-Format-Type.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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/setup/xapp-sm-connector/asn1c_defs/RIC-Format-Type.h b/setup/xapp-sm-connector/asn1c_defs/RIC-Format-Type.h new file mode 100644 index 0000000..7d06e5f --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RIC-Format-Type.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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/setup/xapp-sm-connector/asn1c_defs/RIC-KPMNode-Item.c b/setup/xapp-sm-connector/asn1c_defs/RIC-KPMNode-Item.c new file mode 100644 index 0000000..fbe537f --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RIC-KPMNode-Item.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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "RIC-KPMNode-Item.h" + +#include "Cell-Measurement-Object-Item.h" +static int +memb_cell_Measurement_Object_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 <= 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_cell_Measurement_Object_List_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16384)) */}; +static asn_per_constraints_t asn_PER_type_cell_Measurement_Object_List_constr_3 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_cell_Measurement_Object_List_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16384)) */}; +static asn_per_constraints_t asn_PER_memb_cell_Measurement_Object_List_constr_3 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_cell_Measurement_Object_List_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cell_Measurement_Object_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_cell_Measurement_Object_List_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_cell_Measurement_Object_List_specs_3 = { + sizeof(struct RIC_KPMNode_Item__cell_Measurement_Object_List), + offsetof(struct RIC_KPMNode_Item__cell_Measurement_Object_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_cell_Measurement_Object_List_3 = { + "cell-Measurement-Object-List", + "cell-Measurement-Object-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_cell_Measurement_Object_List_tags_3, + sizeof(asn_DEF_cell_Measurement_Object_List_tags_3) + /sizeof(asn_DEF_cell_Measurement_Object_List_tags_3[0]) - 1, /* 1 */ + asn_DEF_cell_Measurement_Object_List_tags_3, /* Same as above */ + sizeof(asn_DEF_cell_Measurement_Object_List_tags_3) + /sizeof(asn_DEF_cell_Measurement_Object_List_tags_3[0]), /* 2 */ + { &asn_OER_type_cell_Measurement_Object_List_constr_3, &asn_PER_type_cell_Measurement_Object_List_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_cell_Measurement_Object_List_3, + 1, /* Single element */ + &asn_SPC_cell_Measurement_Object_List_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RIC_KPMNode_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RIC_KPMNode_Item, ric_KPMNode_Type), + (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 */ + "ric-KPMNode-Type" + }, + { ATF_POINTER, 1, offsetof(struct RIC_KPMNode_Item, cell_Measurement_Object_List), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_cell_Measurement_Object_List_3, + 0, + { &asn_OER_memb_cell_Measurement_Object_List_constr_3, &asn_PER_memb_cell_Measurement_Object_List_constr_3, memb_cell_Measurement_Object_List_constraint_1 }, + 0, 0, /* No default value */ + "cell-Measurement-Object-List" + }, +}; +static const int asn_MAP_RIC_KPMNode_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_RIC_KPMNode_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RIC_KPMNode_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-KPMNode-Type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cell-Measurement-Object-List */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RIC_KPMNode_Item_specs_1 = { + sizeof(struct RIC_KPMNode_Item), + offsetof(struct RIC_KPMNode_Item, _asn_ctx), + asn_MAP_RIC_KPMNode_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RIC_KPMNode_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RIC_KPMNode_Item = { + "RIC-KPMNode-Item", + "RIC-KPMNode-Item", + &asn_OP_SEQUENCE, + asn_DEF_RIC_KPMNode_Item_tags_1, + sizeof(asn_DEF_RIC_KPMNode_Item_tags_1) + /sizeof(asn_DEF_RIC_KPMNode_Item_tags_1[0]), /* 1 */ + asn_DEF_RIC_KPMNode_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RIC_KPMNode_Item_tags_1) + /sizeof(asn_DEF_RIC_KPMNode_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RIC_KPMNode_Item_1, + 2, /* Elements count */ + &asn_SPC_RIC_KPMNode_Item_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/RIC-KPMNode-Item.h b/setup/xapp-sm-connector/asn1c_defs/RIC-KPMNode-Item.h new file mode 100644 index 0000000..cad5ce3 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RIC-KPMNode-Item.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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _RIC_KPMNode_Item_H_ +#define _RIC_KPMNode_Item_H_ + + +#include + +/* Including external dependencies */ +#include "GlobalKPMnode-ID.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Cell_Measurement_Object_Item; + +/* RIC-KPMNode-Item */ +typedef struct RIC_KPMNode_Item { + GlobalKPMnode_ID_t ric_KPMNode_Type; + struct RIC_KPMNode_Item__cell_Measurement_Object_List { + A_SEQUENCE_OF(struct Cell_Measurement_Object_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *cell_Measurement_Object_List; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RIC_KPMNode_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RIC_KPMNode_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_RIC_KPMNode_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_RIC_KPMNode_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RIC_KPMNode_Item_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/RIC-ReportStyle-Item.c b/setup/xapp-sm-connector/asn1c_defs/RIC-ReportStyle-Item.c new file mode 100644 index 0000000..9efe8c3 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RIC-ReportStyle-Item.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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, + { 0, 0, 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, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ric-ReportStyle-Name" + }, + { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_Item, ric_ReportIndicationHeaderFormat_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-ReportIndicationHeaderFormat-Type" + }, + { ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_Item, ric_ReportIndicationMessageFormat_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-ReportIndicationMessageFormat-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-ReportIndicationHeaderFormat-Type */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ric-ReportIndicationMessageFormat-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, + 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_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 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RIC_ReportStyle_Item_1, + 4, /* Elements count */ + &asn_SPC_RIC_ReportStyle_Item_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/RIC-ReportStyle-Item.h b/setup/xapp-sm-connector/asn1c_defs/RIC-ReportStyle-Item.h new file mode 100644 index 0000000..7e963fb --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RIC-ReportStyle-Item.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _RIC_ReportStyle_Item_H_ +#define _RIC_ReportStyle_Item_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-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_ReportIndicationHeaderFormat_Type; + RIC_Format_Type_t ric_ReportIndicationMessageFormat_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[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RIC_ReportStyle_Item_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/RIC-Style-Name.c b/setup/xapp-sm-connector/asn1c_defs/RIC-Style-Name.c new file mode 100644 index 0000000..7cc5fcc --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RIC-Style-Name.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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/setup/xapp-sm-connector/asn1c_defs/RIC-Style-Name.h b/setup/xapp-sm-connector/asn1c_defs/RIC-Style-Name.h new file mode 100644 index 0000000..95f3cdd --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RIC-Style-Name.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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/setup/xapp-sm-connector/asn1c_defs/RIC-Style-Type.c b/setup/xapp-sm-connector/asn1c_defs/RIC-Style-Type.c new file mode 100644 index 0000000..14475b8 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RIC-Style-Type.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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/setup/xapp-sm-connector/asn1c_defs/RIC-Style-Type.h b/setup/xapp-sm-connector/asn1c_defs/RIC-Style-Type.h new file mode 100644 index 0000000..aad553e --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RIC-Style-Type.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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/setup/xapp-sm-connector/asn1c_defs/RICaction-Admitted-Item.c b/setup/xapp-sm-connector/asn1c_defs/RICaction-Admitted-Item.c index 01034b5..27e741d 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICaction-Admitted-Item.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICaction-Admitted-Item.c @@ -1,13 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICaction-Admitted-Item.h" -static asn_TYPE_member_t asn_MBR_RICaction_Admitted_Item_1[] = { +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 */ @@ -24,7 +24,7 @@ static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_Item_tags_1[] = { 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 = { +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, diff --git a/setup/xapp-sm-connector/asn1c_defs/RICaction-Admitted-Item.h b/setup/xapp-sm-connector/asn1c_defs/RICaction-Admitted-Item.h index 52cada2..5031b7d 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICaction-Admitted-Item.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICaction-Admitted-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICaction_Admitted_Item_H_ @@ -33,6 +33,8 @@ typedef struct RICaction_Admitted_Item { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/RICaction-Admitted-List.c b/setup/xapp-sm-connector/asn1c_defs/RICaction-Admitted-List.c index acf003f..e9e8a5b 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICaction-Admitted-List.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICaction-Admitted-List.c @@ -1,23 +1,26 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICaction-Admitted-List.h" #include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RICaction_Admitted_List_constr_1 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_RICaction_Admitted_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +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[] = { +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_1415P1, + &asn_DEF_ProtocolIE_SingleContainer_90P1, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -27,7 +30,7 @@ static asn_TYPE_member_t asn_MBR_RICaction_Admitted_List_1[] = { 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 = { +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 */ @@ -42,7 +45,7 @@ asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_List = { 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_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/setup/xapp-sm-connector/asn1c_defs/RICaction-Admitted-List.h b/setup/xapp-sm-connector/asn1c_defs/RICaction-Admitted-List.h index 063508c..9464982 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICaction-Admitted-List.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICaction-Admitted-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICaction_Admitted_List_H_ @@ -32,6 +32,9 @@ typedef struct RICaction_Admitted_List { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/RICaction-NotAdmitted-Item.c b/setup/xapp-sm-connector/asn1c_defs/RICaction-NotAdmitted-Item.c index 364fcd3..86212ed 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICaction-NotAdmitted-Item.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICaction-NotAdmitted-Item.c @@ -1,13 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICaction-NotAdmitted-Item.h" -static asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_Item_1[] = { +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 */ @@ -34,7 +34,7 @@ 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 = { +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, diff --git a/setup/xapp-sm-connector/asn1c_defs/RICaction-NotAdmitted-Item.h b/setup/xapp-sm-connector/asn1c_defs/RICaction-NotAdmitted-Item.h index 73826cc..b94f69c 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICaction-NotAdmitted-Item.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICaction-NotAdmitted-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICaction_NotAdmitted_Item_H_ @@ -35,6 +35,8 @@ typedef struct RICaction_NotAdmitted_Item { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/RICaction-NotAdmitted-List.c b/setup/xapp-sm-connector/asn1c_defs/RICaction-NotAdmitted-List.c index 4fdb387..7c7f6e2 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICaction-NotAdmitted-List.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICaction-NotAdmitted-List.c @@ -1,23 +1,26 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICaction-NotAdmitted-List.h" #include "ProtocolIE-SingleContainer.h" -static asn_per_constraints_t asn_PER_type_RICaction_NotAdmitted_List_constr_1 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_RICaction_NotAdmitted_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..16)) */}; +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[] = { +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_1415P2, + &asn_DEF_ProtocolIE_SingleContainer_90P2, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -27,7 +30,7 @@ static asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_List_1[] = { 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 = { +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 */ @@ -42,7 +45,7 @@ asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_List = { 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_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/setup/xapp-sm-connector/asn1c_defs/RICaction-NotAdmitted-List.h b/setup/xapp-sm-connector/asn1c_defs/RICaction-NotAdmitted-List.h index 4406da9..642683d 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICaction-NotAdmitted-List.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICaction-NotAdmitted-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICaction_NotAdmitted_List_H_ @@ -32,6 +32,9 @@ typedef struct RICaction_NotAdmitted_List { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/RICaction-ToBeSetup-Item.c b/setup/xapp-sm-connector/asn1c_defs/RICaction-ToBeSetup-Item.c index 1e8983b..1e78073 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICaction-ToBeSetup-Item.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICaction-ToBeSetup-Item.c @@ -1,14 +1,14 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICaction-ToBeSetup-Item.h" #include "RICsubsequentAction.h" -static asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_Item_1[] = { +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 */ @@ -56,7 +56,7 @@ static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeSetup_Item_tag2el_1[] = { (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 = { +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, diff --git a/setup/xapp-sm-connector/asn1c_defs/RICaction-ToBeSetup-Item.h b/setup/xapp-sm-connector/asn1c_defs/RICaction-ToBeSetup-Item.h index faf8bbf..a616014 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICaction-ToBeSetup-Item.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICaction-ToBeSetup-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICaction_ToBeSetup_Item_H_ @@ -41,6 +41,8 @@ typedef struct RICaction_ToBeSetup_Item { /* 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[4]; #ifdef __cplusplus } diff --git a/setup/xapp-sm-connector/asn1c_defs/RICactionDefinition.c b/setup/xapp-sm-connector/asn1c_defs/RICactionDefinition.c index 3fcd14e..3f157ba 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICactionDefinition.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICactionDefinition.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICactionDefinition.h" diff --git a/setup/xapp-sm-connector/asn1c_defs/RICactionDefinition.h b/setup/xapp-sm-connector/asn1c_defs/RICactionDefinition.h index 489c195..349e2a8 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICactionDefinition.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICactionDefinition.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICactionDefinition_H_ @@ -30,6 +30,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/RICactionID.c b/setup/xapp-sm-connector/asn1c_defs/RICactionID.c index 0a94813..73658f5 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICactionID.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICactionID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICactionID.h" @@ -36,6 +36,9 @@ RICactionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, * 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 }, @@ -54,7 +57,7 @@ asn_TYPE_descriptor_t asn_DEF_RICactionID = { 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 }, + { &asn_OER_type_RICactionID_constr_1, &asn_PER_type_RICactionID_constr_1, RICactionID_constraint }, 0, 0, /* No members */ 0 /* No specifics */ }; diff --git a/setup/xapp-sm-connector/asn1c_defs/RICactionID.h b/setup/xapp-sm-connector/asn1c_defs/RICactionID.h index 851d5b3..b8f6447 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICactionID.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICactionID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICactionID_H_ @@ -31,6 +31,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/RICactionType.c b/setup/xapp-sm-connector/asn1c_defs/RICactionType.c index 0469ed8..bfd33d5 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICactionType.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICactionType.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICactionType.h" @@ -11,6 +11,9 @@ * 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 }, @@ -50,7 +53,7 @@ asn_TYPE_descriptor_t asn_DEF_RICactionType = { 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 }, + { &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/setup/xapp-sm-connector/asn1c_defs/RICactionType.h b/setup/xapp-sm-connector/asn1c_defs/RICactionType.h index bc4ae24..e4349fd 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICactionType.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICactionType.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICactionType_H_ @@ -42,6 +42,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/RICactions-ToBeSetup-List.c b/setup/xapp-sm-connector/asn1c_defs/RICactions-ToBeSetup-List.c index edf0d42..93905c3 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICactions-ToBeSetup-List.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICactions-ToBeSetup-List.c @@ -1,13 +1,16 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -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)) */, @@ -17,7 +20,7 @@ asn_TYPE_member_t asn_MBR_RICactions_ToBeSetup_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainer_1415P0, + &asn_DEF_ProtocolIE_SingleContainer_90P0, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -42,7 +45,7 @@ asn_TYPE_descriptor_t asn_DEF_RICactions_ToBeSetup_List = { 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_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/setup/xapp-sm-connector/asn1c_defs/RICactions-ToBeSetup-List.h b/setup/xapp-sm-connector/asn1c_defs/RICactions-ToBeSetup-List.h index 506bbb8..632b420 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICactions-ToBeSetup-List.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICactions-ToBeSetup-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICactions_ToBeSetup_List_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/RICcallProcessID.c b/setup/xapp-sm-connector/asn1c_defs/RICcallProcessID.c index 26f1de5..fd2d0eb 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICcallProcessID.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICcallProcessID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICcallProcessID.h" diff --git a/setup/xapp-sm-connector/asn1c_defs/RICcallProcessID.h b/setup/xapp-sm-connector/asn1c_defs/RICcallProcessID.h index 6f72308..a1a4983 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICcallProcessID.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICcallProcessID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICcallProcessID_H_ @@ -30,6 +30,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/RICcontrolAckRequest.c b/setup/xapp-sm-connector/asn1c_defs/RICcontrolAckRequest.c index e6028d7..1db6bee 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICcontrolAckRequest.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICcontrolAckRequest.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICcontrolAckRequest.h" @@ -11,7 +11,10 @@ * 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 = { +static asn_oer_constraints_t asn_OER_type_RICcontrolAckRequest_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +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 */ @@ -28,7 +31,7 @@ static const unsigned int asn_MAP_RICcontrolAckRequest_enum2value_1[] = { 0 /* noAck(0) */ /* This list is extensible */ }; -static const asn_INTEGER_specifics_t asn_SPC_RICcontrolAckRequest_specs_1 = { +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 */ @@ -50,7 +53,7 @@ asn_TYPE_descriptor_t asn_DEF_RICcontrolAckRequest = { 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 }, + { &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/setup/xapp-sm-connector/asn1c_defs/RICcontrolAckRequest.h b/setup/xapp-sm-connector/asn1c_defs/RICcontrolAckRequest.h index bdefee2..abb9553 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICcontrolAckRequest.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICcontrolAckRequest.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICcontrolAckRequest_H_ @@ -32,7 +32,9 @@ typedef enum 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; @@ -40,6 +42,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/RICcontrolAcknowledge.c b/setup/xapp-sm-connector/asn1c_defs/RICcontrolAcknowledge.c index 6c14811..85011b6 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICcontrolAcknowledge.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICcontrolAcknowledge.c @@ -1,17 +1,17 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICcontrolAcknowledge.h" -asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_1[] = { +static 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_1412P8, + &asn_DEF_ProtocolIE_Container_87P8, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -24,7 +24,7 @@ static const ber_tlv_tag_t asn_DEF_RICcontrolAcknowledge_tags_1[] = { 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 = { +static asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_specs_1 = { sizeof(struct RICcontrolAcknowledge), offsetof(struct RICcontrolAcknowledge, _asn_ctx), asn_MAP_RICcontrolAcknowledge_tag2el_1, diff --git a/setup/xapp-sm-connector/asn1c_defs/RICcontrolAcknowledge.h b/setup/xapp-sm-connector/asn1c_defs/RICcontrolAcknowledge.h index f1d40b7..361f3d6 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICcontrolAcknowledge.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICcontrolAcknowledge.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICcontrolAcknowledge_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICcontrolAcknowledge */ typedef struct RICcontrolAcknowledge { - ProtocolIE_Container_1412P8_t protocolIEs; + ProtocolIE_Container_87P8_t protocolIEs; /* * This type is extensible, * possible extensions are below. @@ -33,8 +33,6 @@ typedef struct RICcontrolAcknowledge { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/RICcontrolFailure.c b/setup/xapp-sm-connector/asn1c_defs/RICcontrolFailure.c index 3fcef66..a847f9f 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICcontrolFailure.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICcontrolFailure.c @@ -1,17 +1,17 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICcontrolFailure.h" -asn_TYPE_member_t asn_MBR_RICcontrolFailure_1[] = { +static 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_1412P9, + &asn_DEF_ProtocolIE_Container_87P9, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -24,7 +24,7 @@ static const ber_tlv_tag_t asn_DEF_RICcontrolFailure_tags_1[] = { 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 = { +static asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_specs_1 = { sizeof(struct RICcontrolFailure), offsetof(struct RICcontrolFailure, _asn_ctx), asn_MAP_RICcontrolFailure_tag2el_1, diff --git a/setup/xapp-sm-connector/asn1c_defs/RICcontrolFailure.h b/setup/xapp-sm-connector/asn1c_defs/RICcontrolFailure.h index 14b86d4..6eb6a04 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICcontrolFailure.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICcontrolFailure.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICcontrolFailure_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICcontrolFailure */ typedef struct RICcontrolFailure { - ProtocolIE_Container_1412P9_t protocolIEs; + ProtocolIE_Container_87P9_t protocolIEs; /* * This type is extensible, * possible extensions are below. @@ -33,8 +33,6 @@ typedef struct RICcontrolFailure { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/RICcontrolHeader.c b/setup/xapp-sm-connector/asn1c_defs/RICcontrolHeader.c index 073f472..3accabb 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICcontrolHeader.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICcontrolHeader.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICcontrolHeader.h" diff --git a/setup/xapp-sm-connector/asn1c_defs/RICcontrolHeader.h b/setup/xapp-sm-connector/asn1c_defs/RICcontrolHeader.h index 24c7187..d7cad7d 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICcontrolHeader.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICcontrolHeader.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICcontrolHeader_H_ @@ -30,6 +30,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/RICcontrolMessage.c b/setup/xapp-sm-connector/asn1c_defs/RICcontrolMessage.c index 8906e37..d865706 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICcontrolMessage.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICcontrolMessage.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICcontrolMessage.h" diff --git a/setup/xapp-sm-connector/asn1c_defs/RICcontrolMessage.h b/setup/xapp-sm-connector/asn1c_defs/RICcontrolMessage.h index dcd5ece..08fdf4a 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICcontrolMessage.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICcontrolMessage.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICcontrolMessage_H_ @@ -30,6 +30,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/RICcontrolOutcome.c b/setup/xapp-sm-connector/asn1c_defs/RICcontrolOutcome.c index 49e615a..806038d 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICcontrolOutcome.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICcontrolOutcome.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICcontrolOutcome.h" diff --git a/setup/xapp-sm-connector/asn1c_defs/RICcontrolOutcome.h b/setup/xapp-sm-connector/asn1c_defs/RICcontrolOutcome.h index f185ee3..d70b5a5 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICcontrolOutcome.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICcontrolOutcome.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICcontrolOutcome_H_ @@ -30,6 +30,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/RICcontrolRequest.c b/setup/xapp-sm-connector/asn1c_defs/RICcontrolRequest.c index e9aa676..43a04e2 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICcontrolRequest.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICcontrolRequest.c @@ -1,17 +1,17 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICcontrolRequest.h" -asn_TYPE_member_t asn_MBR_RICcontrolRequest_1[] = { +static 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_1412P7, + &asn_DEF_ProtocolIE_Container_87P7, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -24,7 +24,7 @@ static const ber_tlv_tag_t asn_DEF_RICcontrolRequest_tags_1[] = { 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 = { +static asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_specs_1 = { sizeof(struct RICcontrolRequest), offsetof(struct RICcontrolRequest, _asn_ctx), asn_MAP_RICcontrolRequest_tag2el_1, diff --git a/setup/xapp-sm-connector/asn1c_defs/RICcontrolRequest.h b/setup/xapp-sm-connector/asn1c_defs/RICcontrolRequest.h index 18a8e9e..db5ba24 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICcontrolRequest.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICcontrolRequest.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICcontrolRequest_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICcontrolRequest */ typedef struct RICcontrolRequest { - ProtocolIE_Container_1412P7_t protocolIEs; + ProtocolIE_Container_87P7_t protocolIEs; /* * This type is extensible, * possible extensions are below. @@ -33,8 +33,6 @@ typedef struct RICcontrolRequest { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/RICcontrolStatus.c b/setup/xapp-sm-connector/asn1c_defs/RICcontrolStatus.c index 60c6fbf..d2873fc 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICcontrolStatus.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICcontrolStatus.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICcontrolStatus.h" @@ -11,7 +11,10 @@ * 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 = { +static asn_oer_constraints_t asn_OER_type_RICcontrolStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +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 */ @@ -28,7 +31,7 @@ static const unsigned int asn_MAP_RICcontrolStatus_enum2value_1[] = { 0 /* success(0) */ /* This list is extensible */ }; -static const asn_INTEGER_specifics_t asn_SPC_RICcontrolStatus_specs_1 = { +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 */ @@ -50,7 +53,7 @@ asn_TYPE_descriptor_t asn_DEF_RICcontrolStatus = { 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 }, + { &asn_OER_type_RICcontrolStatus_constr_1, &asn_PER_type_RICcontrolStatus_constr_1, NativeEnumerated_constraint }, 0, 0, /* Defined elsewhere */ &asn_SPC_RICcontrolStatus_specs_1 /* Additional specs */ }; diff --git a/setup/xapp-sm-connector/asn1c_defs/RICcontrolStatus.h b/setup/xapp-sm-connector/asn1c_defs/RICcontrolStatus.h index 8e09491..033f5a9 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICcontrolStatus.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICcontrolStatus.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICcontrolStatus_H_ @@ -32,7 +32,9 @@ typedef enum RICcontrolStatus { typedef long RICcontrolStatus_t; /* Implementation */ +extern asn_per_constraints_t asn_PER_type_RICcontrolStatus_constr_1; extern asn_TYPE_descriptor_t asn_DEF_RICcontrolStatus; +extern const asn_INTEGER_specifics_t asn_SPC_RICcontrolStatus_specs_1; asn_struct_free_f RICcontrolStatus_free; asn_struct_print_f RICcontrolStatus_print; asn_constr_check_f RICcontrolStatus_constraint; @@ -40,6 +42,8 @@ ber_type_decoder_f RICcontrolStatus_decode_ber; der_type_encoder_f RICcontrolStatus_encode_der; xer_type_decoder_f RICcontrolStatus_decode_xer; xer_type_encoder_f RICcontrolStatus_encode_xer; +oer_type_decoder_f RICcontrolStatus_decode_oer; +oer_type_encoder_f RICcontrolStatus_encode_oer; per_type_decoder_f RICcontrolStatus_decode_uper; per_type_encoder_f RICcontrolStatus_encode_uper; per_type_decoder_f RICcontrolStatus_decode_aper; diff --git a/setup/xapp-sm-connector/asn1c_defs/RICeventTriggerDefinition.c b/setup/xapp-sm-connector/asn1c_defs/RICeventTriggerDefinition.c index 2aeaeab..a13ddbd 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICeventTriggerDefinition.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICeventTriggerDefinition.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICeventTriggerDefinition.h" diff --git a/setup/xapp-sm-connector/asn1c_defs/RICeventTriggerDefinition.h b/setup/xapp-sm-connector/asn1c_defs/RICeventTriggerDefinition.h index 963c158..58ec4d2 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICeventTriggerDefinition.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICeventTriggerDefinition.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICeventTriggerDefinition_H_ @@ -30,6 +30,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/RICindication.c b/setup/xapp-sm-connector/asn1c_defs/RICindication.c index 52c6f62..5c40aa5 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICindication.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICindication.c @@ -1,17 +1,17 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICindication.h" -asn_TYPE_member_t asn_MBR_RICindication_1[] = { +static 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_1412P6, + &asn_DEF_ProtocolIE_Container_87P6, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -24,7 +24,7 @@ static const ber_tlv_tag_t asn_DEF_RICindication_tags_1[] = { 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 = { +static asn_SEQUENCE_specifics_t asn_SPC_RICindication_specs_1 = { sizeof(struct RICindication), offsetof(struct RICindication, _asn_ctx), asn_MAP_RICindication_tag2el_1, diff --git a/setup/xapp-sm-connector/asn1c_defs/RICindication.h b/setup/xapp-sm-connector/asn1c_defs/RICindication.h index 3cab9e2..c984ab6 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICindication.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICindication.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICindication_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICindication */ typedef struct RICindication { - ProtocolIE_Container_1412P6_t protocolIEs; + ProtocolIE_Container_87P6_t protocolIEs; /* * This type is extensible, * possible extensions are below. @@ -33,8 +33,6 @@ typedef struct RICindication { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/RICindicationHeader.c b/setup/xapp-sm-connector/asn1c_defs/RICindicationHeader.c index 77aa08e..d252382 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICindicationHeader.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICindicationHeader.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICindicationHeader.h" diff --git a/setup/xapp-sm-connector/asn1c_defs/RICindicationHeader.h b/setup/xapp-sm-connector/asn1c_defs/RICindicationHeader.h index 2ec1a1e..3220602 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICindicationHeader.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICindicationHeader.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICindicationHeader_H_ @@ -30,6 +30,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/RICindicationMessage.c b/setup/xapp-sm-connector/asn1c_defs/RICindicationMessage.c index 18db177..bd0ac0f 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICindicationMessage.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICindicationMessage.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICindicationMessage.h" diff --git a/setup/xapp-sm-connector/asn1c_defs/RICindicationMessage.h b/setup/xapp-sm-connector/asn1c_defs/RICindicationMessage.h index 2b198ca..f00ebe7 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICindicationMessage.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICindicationMessage.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICindicationMessage_H_ @@ -30,6 +30,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/RICindicationSN.c b/setup/xapp-sm-connector/asn1c_defs/RICindicationSN.c index e458b29..efd2d48 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICindicationSN.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICindicationSN.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICindicationSN.h" @@ -36,7 +36,10 @@ RICindicationSN_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, * 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 = { +static asn_oer_constraints_t asn_OER_type_RICindicationSN_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +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 */ @@ -54,7 +57,7 @@ asn_TYPE_descriptor_t asn_DEF_RICindicationSN = { 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 }, + { &asn_OER_type_RICindicationSN_constr_1, &asn_PER_type_RICindicationSN_constr_1, RICindicationSN_constraint }, 0, 0, /* No members */ 0 /* No specifics */ }; diff --git a/setup/xapp-sm-connector/asn1c_defs/RICindicationSN.h b/setup/xapp-sm-connector/asn1c_defs/RICindicationSN.h index 898a1c5..498aaef 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICindicationSN.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICindicationSN.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICindicationSN_H_ @@ -22,6 +22,7 @@ extern "C" { 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; @@ -30,6 +31,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/RICindicationType.c b/setup/xapp-sm-connector/asn1c_defs/RICindicationType.c index 2fb4a3d..58935bb 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICindicationType.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICindicationType.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICindicationType.h" @@ -11,7 +11,10 @@ * 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 = { +static asn_oer_constraints_t asn_OER_type_RICindicationType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +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 */ @@ -26,7 +29,7 @@ static const unsigned int asn_MAP_RICindicationType_enum2value_1[] = { 0 /* report(0) */ /* This list is extensible */ }; -static const asn_INTEGER_specifics_t asn_SPC_RICindicationType_specs_1 = { +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 */ @@ -48,7 +51,7 @@ asn_TYPE_descriptor_t asn_DEF_RICindicationType = { 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 }, + { &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/setup/xapp-sm-connector/asn1c_defs/RICindicationType.h b/setup/xapp-sm-connector/asn1c_defs/RICindicationType.h index d665337..ffc0335 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICindicationType.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICindicationType.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICindicationType_H_ @@ -31,7 +31,9 @@ typedef enum 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; @@ -39,6 +41,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/RICrequestID.c b/setup/xapp-sm-connector/asn1c_defs/RICrequestID.c index cc350e3..1422a31 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICrequestID.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICrequestID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICrequestID.h" @@ -57,11 +57,17 @@ memb_ricInstanceID_constraint_1(const asn_TYPE_descriptor_t *td, const void *spt } } +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 }, @@ -73,7 +79,7 @@ asn_TYPE_member_t asn_MBR_RICrequestID_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_NativeInteger, 0, - { 0, &asn_PER_memb_ricRequestorID_constr_2, memb_ricRequestorID_constraint_1 }, + { &asn_OER_memb_ricRequestorID_constr_2, &asn_PER_memb_ricRequestorID_constr_2, memb_ricRequestorID_constraint_1 }, 0, 0, /* No default value */ "ricRequestorID" }, @@ -82,7 +88,7 @@ asn_TYPE_member_t asn_MBR_RICrequestID_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_NativeInteger, 0, - { 0, &asn_PER_memb_ricInstanceID_constr_3, memb_ricInstanceID_constraint_1 }, + { &asn_OER_memb_ricInstanceID_constr_3, &asn_PER_memb_ricInstanceID_constr_3, memb_ricInstanceID_constraint_1 }, 0, 0, /* No default value */ "ricInstanceID" }, diff --git a/setup/xapp-sm-connector/asn1c_defs/RICrequestID.h b/setup/xapp-sm-connector/asn1c_defs/RICrequestID.h index 4b3ab0a..b76c37c 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICrequestID.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICrequestID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICrequestID_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/RICserviceQuery.c b/setup/xapp-sm-connector/asn1c_defs/RICserviceQuery.c index 73f7fcc..a7d452e 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICserviceQuery.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICserviceQuery.c @@ -1,17 +1,17 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICserviceQuery.h" -asn_TYPE_member_t asn_MBR_RICserviceQuery_1[] = { +static 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_1412P19, + &asn_DEF_ProtocolIE_Container_87P19, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -24,7 +24,7 @@ static const ber_tlv_tag_t asn_DEF_RICserviceQuery_tags_1[] = { 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 = { +static asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_specs_1 = { sizeof(struct RICserviceQuery), offsetof(struct RICserviceQuery, _asn_ctx), asn_MAP_RICserviceQuery_tag2el_1, diff --git a/setup/xapp-sm-connector/asn1c_defs/RICserviceQuery.h b/setup/xapp-sm-connector/asn1c_defs/RICserviceQuery.h index 77c63e2..3b2c4ee 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICserviceQuery.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICserviceQuery.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICserviceQuery_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICserviceQuery */ typedef struct RICserviceQuery { - ProtocolIE_Container_1412P19_t protocolIEs; + ProtocolIE_Container_87P19_t protocolIEs; /* * This type is extensible, * possible extensions are below. @@ -33,8 +33,6 @@ typedef struct RICserviceQuery { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/RICserviceUpdate.c b/setup/xapp-sm-connector/asn1c_defs/RICserviceUpdate.c index 1a93f22..a562e2f 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICserviceUpdate.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICserviceUpdate.c @@ -1,17 +1,17 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICserviceUpdate.h" -asn_TYPE_member_t asn_MBR_RICserviceUpdate_1[] = { +static 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_1412P16, + &asn_DEF_ProtocolIE_Container_87P16, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -24,7 +24,7 @@ static const ber_tlv_tag_t asn_DEF_RICserviceUpdate_tags_1[] = { 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 = { +static asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_specs_1 = { sizeof(struct RICserviceUpdate), offsetof(struct RICserviceUpdate, _asn_ctx), asn_MAP_RICserviceUpdate_tag2el_1, diff --git a/setup/xapp-sm-connector/asn1c_defs/RICserviceUpdate.h b/setup/xapp-sm-connector/asn1c_defs/RICserviceUpdate.h index 613f8fd..9ade74f 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICserviceUpdate.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICserviceUpdate.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICserviceUpdate_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICserviceUpdate */ typedef struct RICserviceUpdate { - ProtocolIE_Container_1412P16_t protocolIEs; + ProtocolIE_Container_87P16_t protocolIEs; /* * This type is extensible, * possible extensions are below. @@ -33,8 +33,6 @@ typedef struct RICserviceUpdate { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/RICserviceUpdateAcknowledge.c b/setup/xapp-sm-connector/asn1c_defs/RICserviceUpdateAcknowledge.c index 7792227..845acb2 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICserviceUpdateAcknowledge.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICserviceUpdateAcknowledge.c @@ -1,17 +1,17 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICserviceUpdateAcknowledge.h" -asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_1[] = { +static 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_1412P17, + &asn_DEF_ProtocolIE_Container_87P17, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -24,7 +24,7 @@ static const ber_tlv_tag_t asn_DEF_RICserviceUpdateAcknowledge_tags_1[] = { 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 = { +static asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_specs_1 = { sizeof(struct RICserviceUpdateAcknowledge), offsetof(struct RICserviceUpdateAcknowledge, _asn_ctx), asn_MAP_RICserviceUpdateAcknowledge_tag2el_1, diff --git a/setup/xapp-sm-connector/asn1c_defs/RICserviceUpdateAcknowledge.h b/setup/xapp-sm-connector/asn1c_defs/RICserviceUpdateAcknowledge.h index 0dc17cc..4b08d1a 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICserviceUpdateAcknowledge.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICserviceUpdateAcknowledge.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICserviceUpdateAcknowledge_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICserviceUpdateAcknowledge */ typedef struct RICserviceUpdateAcknowledge { - ProtocolIE_Container_1412P17_t protocolIEs; + ProtocolIE_Container_87P17_t protocolIEs; /* * This type is extensible, * possible extensions are below. @@ -33,8 +33,6 @@ typedef struct RICserviceUpdateAcknowledge { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/RICserviceUpdateFailure.c b/setup/xapp-sm-connector/asn1c_defs/RICserviceUpdateFailure.c index f3d1b01..f54da69 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICserviceUpdateFailure.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICserviceUpdateFailure.c @@ -1,17 +1,17 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICserviceUpdateFailure.h" -asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_1[] = { +static 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_1412P18, + &asn_DEF_ProtocolIE_Container_87P18, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -24,7 +24,7 @@ static const ber_tlv_tag_t asn_DEF_RICserviceUpdateFailure_tags_1[] = { 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 = { +static asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_specs_1 = { sizeof(struct RICserviceUpdateFailure), offsetof(struct RICserviceUpdateFailure, _asn_ctx), asn_MAP_RICserviceUpdateFailure_tag2el_1, diff --git a/setup/xapp-sm-connector/asn1c_defs/RICserviceUpdateFailure.h b/setup/xapp-sm-connector/asn1c_defs/RICserviceUpdateFailure.h index 78fe31f..c00559e 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICserviceUpdateFailure.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICserviceUpdateFailure.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICserviceUpdateFailure_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICserviceUpdateFailure */ typedef struct RICserviceUpdateFailure { - ProtocolIE_Container_1412P18_t protocolIEs; + ProtocolIE_Container_87P18_t protocolIEs; /* * This type is extensible, * possible extensions are below. @@ -33,8 +33,6 @@ typedef struct RICserviceUpdateFailure { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDeleteFailure.c b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDeleteFailure.c index f4344d9..88a9836 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDeleteFailure.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDeleteFailure.c @@ -1,17 +1,17 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICsubscriptionDeleteFailure.h" -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_1[] = { +static 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_1412P5, + &asn_DEF_ProtocolIE_Container_87P5, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -24,7 +24,7 @@ static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteFailure_tags_1[] = { 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 = { +static asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_specs_1 = { sizeof(struct RICsubscriptionDeleteFailure), offsetof(struct RICsubscriptionDeleteFailure, _asn_ctx), asn_MAP_RICsubscriptionDeleteFailure_tag2el_1, diff --git a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDeleteFailure.h b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDeleteFailure.h index 094e91e..59bb7d4 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDeleteFailure.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDeleteFailure.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICsubscriptionDeleteFailure_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICsubscriptionDeleteFailure */ typedef struct RICsubscriptionDeleteFailure { - ProtocolIE_Container_1412P5_t protocolIEs; + ProtocolIE_Container_87P5_t protocolIEs; /* * This type is extensible, * possible extensions are below. @@ -33,8 +33,6 @@ typedef struct RICsubscriptionDeleteFailure { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDeleteRequest.c b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDeleteRequest.c index 170a7b5..627f516 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDeleteRequest.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDeleteRequest.c @@ -1,17 +1,17 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICsubscriptionDeleteRequest.h" -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_1[] = { +static 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_1412P3, + &asn_DEF_ProtocolIE_Container_87P3, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -24,7 +24,7 @@ static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequest_tags_1[] = { 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 = { +static asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_specs_1 = { sizeof(struct RICsubscriptionDeleteRequest), offsetof(struct RICsubscriptionDeleteRequest, _asn_ctx), asn_MAP_RICsubscriptionDeleteRequest_tag2el_1, diff --git a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDeleteRequest.h b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDeleteRequest.h index bf69065..5019dab 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDeleteRequest.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDeleteRequest.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICsubscriptionDeleteRequest_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICsubscriptionDeleteRequest */ typedef struct RICsubscriptionDeleteRequest { - ProtocolIE_Container_1412P3_t protocolIEs; + ProtocolIE_Container_87P3_t protocolIEs; /* * This type is extensible, * possible extensions are below. @@ -33,8 +33,6 @@ typedef struct RICsubscriptionDeleteRequest { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDeleteResponse.c b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDeleteResponse.c index bb9b5b3..fc0f72d 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDeleteResponse.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDeleteResponse.c @@ -1,17 +1,17 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICsubscriptionDeleteResponse.h" -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_1[] = { +static 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_1412P4, + &asn_DEF_ProtocolIE_Container_87P4, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -24,7 +24,7 @@ static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteResponse_tags_1[] = { 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 = { +static asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_specs_1 = { sizeof(struct RICsubscriptionDeleteResponse), offsetof(struct RICsubscriptionDeleteResponse, _asn_ctx), asn_MAP_RICsubscriptionDeleteResponse_tag2el_1, diff --git a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDeleteResponse.h b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDeleteResponse.h index 9c5020c..b1aeba6 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDeleteResponse.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDeleteResponse.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICsubscriptionDeleteResponse_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICsubscriptionDeleteResponse */ typedef struct RICsubscriptionDeleteResponse { - ProtocolIE_Container_1412P4_t protocolIEs; + ProtocolIE_Container_87P4_t protocolIEs; /* * This type is extensible, * possible extensions are below. @@ -33,8 +33,6 @@ typedef struct RICsubscriptionDeleteResponse { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDetails.c b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDetails.c index 6d9cd43..9033dc2 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDetails.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDetails.c @@ -1,13 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICsubscriptionDetails.h" -static asn_TYPE_member_t asn_MBR_RICsubscriptionDetails_1[] = { +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 */ @@ -34,7 +34,7 @@ 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 = { +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDetails_specs_1 = { sizeof(struct RICsubscriptionDetails), offsetof(struct RICsubscriptionDetails, _asn_ctx), asn_MAP_RICsubscriptionDetails_tag2el_1, diff --git a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDetails.h b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDetails.h index 7b7d497..9b0a03e 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDetails.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionDetails.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICsubscriptionDetails_H_ @@ -35,6 +35,8 @@ typedef struct RICsubscriptionDetails { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionFailure.c b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionFailure.c index cbcccfe..f765319 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionFailure.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionFailure.c @@ -1,17 +1,17 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICsubscriptionFailure.h" -asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_1[] = { +static 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_1412P2, + &asn_DEF_ProtocolIE_Container_87P2, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -24,7 +24,7 @@ static const ber_tlv_tag_t asn_DEF_RICsubscriptionFailure_tags_1[] = { 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 = { +static asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_specs_1 = { sizeof(struct RICsubscriptionFailure), offsetof(struct RICsubscriptionFailure, _asn_ctx), asn_MAP_RICsubscriptionFailure_tag2el_1, diff --git a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionFailure.h b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionFailure.h index 5d56ea2..c8c4a77 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionFailure.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionFailure.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICsubscriptionFailure_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICsubscriptionFailure */ typedef struct RICsubscriptionFailure { - ProtocolIE_Container_1412P2_t protocolIEs; + ProtocolIE_Container_87P2_t protocolIEs; /* * This type is extensible, * possible extensions are below. @@ -33,8 +33,6 @@ typedef struct RICsubscriptionFailure { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionRequest.c b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionRequest.c index cecb478..46c4fe8 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionRequest.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionRequest.c @@ -1,17 +1,17 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICsubscriptionRequest.h" -asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_1[] = { +static 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_1412P0, + &asn_DEF_ProtocolIE_Container_87P0, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -24,7 +24,7 @@ static const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_tags_1[] = { 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 = { +static asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_specs_1 = { sizeof(struct RICsubscriptionRequest), offsetof(struct RICsubscriptionRequest, _asn_ctx), asn_MAP_RICsubscriptionRequest_tag2el_1, diff --git a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionRequest.h b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionRequest.h index a320a3f..9e9e0bb 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionRequest.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionRequest.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICsubscriptionRequest_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICsubscriptionRequest */ typedef struct RICsubscriptionRequest { - ProtocolIE_Container_1412P0_t protocolIEs; + ProtocolIE_Container_87P0_t protocolIEs; /* * This type is extensible, * possible extensions are below. @@ -33,8 +33,6 @@ typedef struct RICsubscriptionRequest { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionResponse.c b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionResponse.c index fc2bceb..56c92ae 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionResponse.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionResponse.c @@ -1,17 +1,17 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICsubscriptionResponse.h" -asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_1[] = { +static 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_1412P1, + &asn_DEF_ProtocolIE_Container_87P1, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -24,7 +24,7 @@ static const ber_tlv_tag_t asn_DEF_RICsubscriptionResponse_tags_1[] = { 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 = { +static asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_specs_1 = { sizeof(struct RICsubscriptionResponse), offsetof(struct RICsubscriptionResponse, _asn_ctx), asn_MAP_RICsubscriptionResponse_tag2el_1, diff --git a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionResponse.h b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionResponse.h index 9f6279b..9b8bb17 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionResponse.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICsubscriptionResponse.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICsubscriptionResponse_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICsubscriptionResponse */ typedef struct RICsubscriptionResponse { - ProtocolIE_Container_1412P1_t protocolIEs; + ProtocolIE_Container_87P1_t protocolIEs; /* * This type is extensible, * possible extensions are below. @@ -33,8 +33,6 @@ typedef struct RICsubscriptionResponse { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/RICsubsequentAction.c b/setup/xapp-sm-connector/asn1c_defs/RICsubsequentAction.c index 2ce9f49..8b3248c 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICsubsequentAction.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICsubsequentAction.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICsubsequentAction.h" diff --git a/setup/xapp-sm-connector/asn1c_defs/RICsubsequentAction.h b/setup/xapp-sm-connector/asn1c_defs/RICsubsequentAction.h index 1c1e484..fffdc21 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICsubsequentAction.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICsubsequentAction.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICsubsequentAction_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/RICsubsequentActionType.c b/setup/xapp-sm-connector/asn1c_defs/RICsubsequentActionType.c index 63f47b3..f88a331 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICsubsequentActionType.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICsubsequentActionType.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICsubsequentActionType.h" @@ -11,6 +11,9 @@ * 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 }, @@ -48,7 +51,7 @@ asn_TYPE_descriptor_t asn_DEF_RICsubsequentActionType = { 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 }, + { &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/setup/xapp-sm-connector/asn1c_defs/RICsubsequentActionType.h b/setup/xapp-sm-connector/asn1c_defs/RICsubsequentActionType.h index 716dc6c..1dea790 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICsubsequentActionType.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICsubsequentActionType.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICsubsequentActionType_H_ @@ -41,6 +41,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/RICtimeToWait.c b/setup/xapp-sm-connector/asn1c_defs/RICtimeToWait.c index 2df21d7..94fc184 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICtimeToWait.c +++ b/setup/xapp-sm-connector/asn1c_defs/RICtimeToWait.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "RICtimeToWait.h" @@ -11,6 +11,9 @@ * 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, 17 } /* (0..17,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, @@ -80,7 +83,7 @@ asn_TYPE_descriptor_t asn_DEF_RICtimeToWait = { 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 }, + { &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/setup/xapp-sm-connector/asn1c_defs/RICtimeToWait.h b/setup/xapp-sm-connector/asn1c_defs/RICtimeToWait.h index 3f6626c..efe9b2a 100644 --- a/setup/xapp-sm-connector/asn1c_defs/RICtimeToWait.h +++ b/setup/xapp-sm-connector/asn1c_defs/RICtimeToWait.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _RICtimeToWait_H_ @@ -57,6 +57,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/RRCEvent.c b/setup/xapp-sm-connector/asn1c_defs/RRCEvent.c new file mode 100644 index 0000000..8113c36 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RRCEvent.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "RRCEvent.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RRCEvent_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RRCEvent_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_RRCEvent_value2enum_1[] = { + { 0, 2, "b1" }, + { 1, 2, "a3" }, + { 2, 2, "a5" }, + { 3, 8, "periodic" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RRCEvent_enum2value_1[] = { + 1, /* a3(1) */ + 2, /* a5(2) */ + 0, /* b1(0) */ + 3 /* periodic(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RRCEvent_specs_1 = { + asn_MAP_RRCEvent_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RRCEvent_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_RRCEvent_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RRCEvent = { + "RRCEvent", + "RRCEvent", + &asn_OP_NativeEnumerated, + asn_DEF_RRCEvent_tags_1, + sizeof(asn_DEF_RRCEvent_tags_1) + /sizeof(asn_DEF_RRCEvent_tags_1[0]), /* 1 */ + asn_DEF_RRCEvent_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCEvent_tags_1) + /sizeof(asn_DEF_RRCEvent_tags_1[0]), /* 1 */ + { &asn_OER_type_RRCEvent_constr_1, &asn_PER_type_RRCEvent_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RRCEvent_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/RRCEvent.h b/setup/xapp-sm-connector/asn1c_defs/RRCEvent.h new file mode 100644 index 0000000..ea91c31 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RRCEvent.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _RRCEvent_H_ +#define _RRCEvent_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RRCEvent { + RRCEvent_b1 = 0, + RRCEvent_a3 = 1, + RRCEvent_a5 = 2, + RRCEvent_periodic = 3 + /* + * Enumeration is extensible + */ +} e_RRCEvent; + +/* RRCEvent */ +typedef long RRCEvent_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RRCEvent_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RRCEvent; +extern const asn_INTEGER_specifics_t asn_SPC_RRCEvent_specs_1; +asn_struct_free_f RRCEvent_free; +asn_struct_print_f RRCEvent_print; +asn_constr_check_f RRCEvent_constraint; +ber_type_decoder_f RRCEvent_decode_ber; +der_type_encoder_f RRCEvent_encode_der; +xer_type_decoder_f RRCEvent_decode_xer; +xer_type_encoder_f RRCEvent_encode_xer; +oer_type_decoder_f RRCEvent_decode_oer; +oer_type_encoder_f RRCEvent_encode_oer; +per_type_decoder_f RRCEvent_decode_uper; +per_type_encoder_f RRCEvent_encode_uper; +per_type_decoder_f RRCEvent_decode_aper; +per_type_encoder_f RRCEvent_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCEvent_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/RSRP-Range.c b/setup/xapp-sm-connector/asn1c_defs/RSRP-Range.c new file mode 100644 index 0000000..31f13c4 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RSRP-Range.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "RSRP-Range.h" + +int +RSRP_Range_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 <= 127)) { + /* 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_RSRP_Range_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +asn_per_constraints_t asn_PER_type_RSRP_Range_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RSRP_Range_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RSRP_Range = { + "RSRP-Range", + "RSRP-Range", + &asn_OP_NativeInteger, + asn_DEF_RSRP_Range_tags_1, + sizeof(asn_DEF_RSRP_Range_tags_1) + /sizeof(asn_DEF_RSRP_Range_tags_1[0]), /* 1 */ + asn_DEF_RSRP_Range_tags_1, /* Same as above */ + sizeof(asn_DEF_RSRP_Range_tags_1) + /sizeof(asn_DEF_RSRP_Range_tags_1[0]), /* 1 */ + { &asn_OER_type_RSRP_Range_constr_1, &asn_PER_type_RSRP_Range_constr_1, RSRP_Range_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/RSRP-Range.h b/setup/xapp-sm-connector/asn1c_defs/RSRP-Range.h new file mode 100644 index 0000000..1d1caa4 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RSRP-Range.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _RSRP_Range_H_ +#define _RSRP_Range_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RSRP-Range */ +typedef long RSRP_Range_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RSRP_Range_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RSRP_Range; +asn_struct_free_f RSRP_Range_free; +asn_struct_print_f RSRP_Range_print; +asn_constr_check_f RSRP_Range_constraint; +ber_type_decoder_f RSRP_Range_decode_ber; +der_type_encoder_f RSRP_Range_encode_der; +xer_type_decoder_f RSRP_Range_decode_xer; +xer_type_encoder_f RSRP_Range_encode_xer; +oer_type_decoder_f RSRP_Range_decode_oer; +oer_type_encoder_f RSRP_Range_encode_oer; +per_type_decoder_f RSRP_Range_decode_uper; +per_type_encoder_f RSRP_Range_encode_uper; +per_type_decoder_f RSRP_Range_decode_aper; +per_type_encoder_f RSRP_Range_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RSRP_Range_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/RSRP-RangeEUTRA.c b/setup/xapp-sm-connector/asn1c_defs/RSRP-RangeEUTRA.c new file mode 100644 index 0000000..5c646f7 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RSRP-RangeEUTRA.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "RSRP-RangeEUTRA.h" + +int +RSRP_RangeEUTRA_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 <= 97)) { + /* 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_RSRP_RangeEUTRA_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..97) */, + -1}; +asn_per_constraints_t asn_PER_type_RSRP_RangeEUTRA_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 97 } /* (0..97) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RSRP_RangeEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RSRP_RangeEUTRA = { + "RSRP-RangeEUTRA", + "RSRP-RangeEUTRA", + &asn_OP_NativeInteger, + asn_DEF_RSRP_RangeEUTRA_tags_1, + sizeof(asn_DEF_RSRP_RangeEUTRA_tags_1) + /sizeof(asn_DEF_RSRP_RangeEUTRA_tags_1[0]), /* 1 */ + asn_DEF_RSRP_RangeEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_RSRP_RangeEUTRA_tags_1) + /sizeof(asn_DEF_RSRP_RangeEUTRA_tags_1[0]), /* 1 */ + { &asn_OER_type_RSRP_RangeEUTRA_constr_1, &asn_PER_type_RSRP_RangeEUTRA_constr_1, RSRP_RangeEUTRA_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/RSRP-RangeEUTRA.h b/setup/xapp-sm-connector/asn1c_defs/RSRP-RangeEUTRA.h new file mode 100644 index 0000000..98352ab --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RSRP-RangeEUTRA.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _RSRP_RangeEUTRA_H_ +#define _RSRP_RangeEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RSRP-RangeEUTRA */ +typedef long RSRP_RangeEUTRA_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RSRP_RangeEUTRA_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RSRP_RangeEUTRA; +asn_struct_free_f RSRP_RangeEUTRA_free; +asn_struct_print_f RSRP_RangeEUTRA_print; +asn_constr_check_f RSRP_RangeEUTRA_constraint; +ber_type_decoder_f RSRP_RangeEUTRA_decode_ber; +der_type_encoder_f RSRP_RangeEUTRA_encode_der; +xer_type_decoder_f RSRP_RangeEUTRA_decode_xer; +xer_type_encoder_f RSRP_RangeEUTRA_encode_xer; +oer_type_decoder_f RSRP_RangeEUTRA_decode_oer; +oer_type_encoder_f RSRP_RangeEUTRA_encode_oer; +per_type_decoder_f RSRP_RangeEUTRA_decode_uper; +per_type_encoder_f RSRP_RangeEUTRA_encode_uper; +per_type_decoder_f RSRP_RangeEUTRA_decode_aper; +per_type_encoder_f RSRP_RangeEUTRA_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RSRP_RangeEUTRA_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/RSRQ-Range.c b/setup/xapp-sm-connector/asn1c_defs/RSRQ-Range.c new file mode 100644 index 0000000..0782d80 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RSRQ-Range.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "RSRQ-Range.h" + +int +RSRQ_Range_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 <= 127)) { + /* 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_RSRQ_Range_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +asn_per_constraints_t asn_PER_type_RSRQ_Range_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RSRQ_Range_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RSRQ_Range = { + "RSRQ-Range", + "RSRQ-Range", + &asn_OP_NativeInteger, + asn_DEF_RSRQ_Range_tags_1, + sizeof(asn_DEF_RSRQ_Range_tags_1) + /sizeof(asn_DEF_RSRQ_Range_tags_1[0]), /* 1 */ + asn_DEF_RSRQ_Range_tags_1, /* Same as above */ + sizeof(asn_DEF_RSRQ_Range_tags_1) + /sizeof(asn_DEF_RSRQ_Range_tags_1[0]), /* 1 */ + { &asn_OER_type_RSRQ_Range_constr_1, &asn_PER_type_RSRQ_Range_constr_1, RSRQ_Range_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/RSRQ-Range.h b/setup/xapp-sm-connector/asn1c_defs/RSRQ-Range.h new file mode 100644 index 0000000..81543fb --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RSRQ-Range.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _RSRQ_Range_H_ +#define _RSRQ_Range_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RSRQ-Range */ +typedef long RSRQ_Range_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RSRQ_Range_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RSRQ_Range; +asn_struct_free_f RSRQ_Range_free; +asn_struct_print_f RSRQ_Range_print; +asn_constr_check_f RSRQ_Range_constraint; +ber_type_decoder_f RSRQ_Range_decode_ber; +der_type_encoder_f RSRQ_Range_encode_der; +xer_type_decoder_f RSRQ_Range_decode_xer; +xer_type_encoder_f RSRQ_Range_encode_xer; +oer_type_decoder_f RSRQ_Range_decode_oer; +oer_type_encoder_f RSRQ_Range_encode_oer; +per_type_decoder_f RSRQ_Range_decode_uper; +per_type_encoder_f RSRQ_Range_encode_uper; +per_type_decoder_f RSRQ_Range_decode_aper; +per_type_encoder_f RSRQ_Range_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RSRQ_Range_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/RSRQ-RangeEUTRA.c b/setup/xapp-sm-connector/asn1c_defs/RSRQ-RangeEUTRA.c new file mode 100644 index 0000000..1de3c4e --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RSRQ-RangeEUTRA.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "RSRQ-RangeEUTRA.h" + +int +RSRQ_RangeEUTRA_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 <= 34)) { + /* 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_RSRQ_RangeEUTRA_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..34) */, + -1}; +asn_per_constraints_t asn_PER_type_RSRQ_RangeEUTRA_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 34 } /* (0..34) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RSRQ_RangeEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RSRQ_RangeEUTRA = { + "RSRQ-RangeEUTRA", + "RSRQ-RangeEUTRA", + &asn_OP_NativeInteger, + asn_DEF_RSRQ_RangeEUTRA_tags_1, + sizeof(asn_DEF_RSRQ_RangeEUTRA_tags_1) + /sizeof(asn_DEF_RSRQ_RangeEUTRA_tags_1[0]), /* 1 */ + asn_DEF_RSRQ_RangeEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_RSRQ_RangeEUTRA_tags_1) + /sizeof(asn_DEF_RSRQ_RangeEUTRA_tags_1[0]), /* 1 */ + { &asn_OER_type_RSRQ_RangeEUTRA_constr_1, &asn_PER_type_RSRQ_RangeEUTRA_constr_1, RSRQ_RangeEUTRA_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/RSRQ-RangeEUTRA.h b/setup/xapp-sm-connector/asn1c_defs/RSRQ-RangeEUTRA.h new file mode 100644 index 0000000..28a4e2b --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RSRQ-RangeEUTRA.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _RSRQ_RangeEUTRA_H_ +#define _RSRQ_RangeEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RSRQ-RangeEUTRA */ +typedef long RSRQ_RangeEUTRA_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RSRQ_RangeEUTRA_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RSRQ_RangeEUTRA; +asn_struct_free_f RSRQ_RangeEUTRA_free; +asn_struct_print_f RSRQ_RangeEUTRA_print; +asn_constr_check_f RSRQ_RangeEUTRA_constraint; +ber_type_decoder_f RSRQ_RangeEUTRA_decode_ber; +der_type_encoder_f RSRQ_RangeEUTRA_encode_der; +xer_type_decoder_f RSRQ_RangeEUTRA_decode_xer; +xer_type_encoder_f RSRQ_RangeEUTRA_encode_xer; +oer_type_decoder_f RSRQ_RangeEUTRA_decode_oer; +oer_type_encoder_f RSRQ_RangeEUTRA_encode_oer; +per_type_decoder_f RSRQ_RangeEUTRA_decode_uper; +per_type_encoder_f RSRQ_RangeEUTRA_encode_uper; +per_type_decoder_f RSRQ_RangeEUTRA_decode_aper; +per_type_encoder_f RSRQ_RangeEUTRA_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RSRQ_RangeEUTRA_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/RT-Period-IE.c b/setup/xapp-sm-connector/asn1c_defs/RT-Period-IE.c new file mode 100644 index 0000000..7edf20d --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RT-Period-IE.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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/setup/xapp-sm-connector/asn1c_defs/RT-Period-IE.h b/setup/xapp-sm-connector/asn1c_defs/RT-Period-IE.h new file mode 100644 index 0000000..33bcf46 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/RT-Period-IE.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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/setup/xapp-sm-connector/asn1c_defs/ResetRequest.c b/setup/xapp-sm-connector/asn1c_defs/ResetRequest.c index e70f0a9..f40779f 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ResetRequest.c +++ b/setup/xapp-sm-connector/asn1c_defs/ResetRequest.c @@ -1,17 +1,17 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "ResetRequest.h" -asn_TYPE_member_t asn_MBR_ResetRequest_1[] = { +static 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_1412P14, + &asn_DEF_ProtocolIE_Container_87P14, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -24,7 +24,7 @@ static const ber_tlv_tag_t asn_DEF_ResetRequest_tags_1[] = { 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 = { +static asn_SEQUENCE_specifics_t asn_SPC_ResetRequest_specs_1 = { sizeof(struct ResetRequest), offsetof(struct ResetRequest, _asn_ctx), asn_MAP_ResetRequest_tag2el_1, diff --git a/setup/xapp-sm-connector/asn1c_defs/ResetRequest.h b/setup/xapp-sm-connector/asn1c_defs/ResetRequest.h index f1bf2ae..b8ccee4 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ResetRequest.h +++ b/setup/xapp-sm-connector/asn1c_defs/ResetRequest.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _ResetRequest_H_ @@ -21,7 +21,7 @@ extern "C" { /* ResetRequest */ typedef struct ResetRequest { - ProtocolIE_Container_1412P14_t protocolIEs; + ProtocolIE_Container_87P14_t protocolIEs; /* * This type is extensible, * possible extensions are below. @@ -33,8 +33,6 @@ typedef struct ResetRequest { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/ResetResponse.c b/setup/xapp-sm-connector/asn1c_defs/ResetResponse.c index 92fc800..47c433a 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ResetResponse.c +++ b/setup/xapp-sm-connector/asn1c_defs/ResetResponse.c @@ -1,17 +1,17 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "ResetResponse.h" -asn_TYPE_member_t asn_MBR_ResetResponse_1[] = { +static 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_1412P15, + &asn_DEF_ProtocolIE_Container_87P15, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -24,7 +24,7 @@ static const ber_tlv_tag_t asn_DEF_ResetResponse_tags_1[] = { 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 = { +static asn_SEQUENCE_specifics_t asn_SPC_ResetResponse_specs_1 = { sizeof(struct ResetResponse), offsetof(struct ResetResponse, _asn_ctx), asn_MAP_ResetResponse_tag2el_1, diff --git a/setup/xapp-sm-connector/asn1c_defs/ResetResponse.h b/setup/xapp-sm-connector/asn1c_defs/ResetResponse.h index c6e10ea..cfd7a3c 100644 --- a/setup/xapp-sm-connector/asn1c_defs/ResetResponse.h +++ b/setup/xapp-sm-connector/asn1c_defs/ResetResponse.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Contents-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _ResetResponse_H_ @@ -21,7 +21,7 @@ extern "C" { /* ResetResponse */ typedef struct ResetResponse { - ProtocolIE_Container_1412P15_t protocolIEs; + ProtocolIE_Container_87P15_t protocolIEs; /* * This type is extensible, * possible extensions are below. @@ -33,8 +33,6 @@ typedef struct ResetResponse { /* 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 } diff --git a/setup/xapp-sm-connector/asn1c_defs/ResultsPerCSI-RS-Index.c b/setup/xapp-sm-connector/asn1c_defs/ResultsPerCSI-RS-Index.c new file mode 100644 index 0000000..36abbd9 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/ResultsPerCSI-RS-Index.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "ResultsPerCSI-RS-Index.h" + +#include "MeasQuantityResults.h" +asn_TYPE_member_t asn_MBR_ResultsPerCSI_RS_Index_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ResultsPerCSI_RS_Index, csi_RS_Index), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CSI_RS_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-Index" + }, + { ATF_POINTER, 1, offsetof(struct ResultsPerCSI_RS_Index, csi_RS_Results), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasQuantityResults, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-Results" + }, +}; +static const int asn_MAP_ResultsPerCSI_RS_Index_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ResultsPerCSI_RS_Index_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ResultsPerCSI_RS_Index_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* csi-RS-Index */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* csi-RS-Results */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ResultsPerCSI_RS_Index_specs_1 = { + sizeof(struct ResultsPerCSI_RS_Index), + offsetof(struct ResultsPerCSI_RS_Index, _asn_ctx), + asn_MAP_ResultsPerCSI_RS_Index_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ResultsPerCSI_RS_Index_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ResultsPerCSI_RS_Index = { + "ResultsPerCSI-RS-Index", + "ResultsPerCSI-RS-Index", + &asn_OP_SEQUENCE, + asn_DEF_ResultsPerCSI_RS_Index_tags_1, + sizeof(asn_DEF_ResultsPerCSI_RS_Index_tags_1) + /sizeof(asn_DEF_ResultsPerCSI_RS_Index_tags_1[0]), /* 1 */ + asn_DEF_ResultsPerCSI_RS_Index_tags_1, /* Same as above */ + sizeof(asn_DEF_ResultsPerCSI_RS_Index_tags_1) + /sizeof(asn_DEF_ResultsPerCSI_RS_Index_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ResultsPerCSI_RS_Index_1, + 2, /* Elements count */ + &asn_SPC_ResultsPerCSI_RS_Index_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/ResultsPerCSI-RS-Index.h b/setup/xapp-sm-connector/asn1c_defs/ResultsPerCSI-RS-Index.h new file mode 100644 index 0000000..ba43d10 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/ResultsPerCSI-RS-Index.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _ResultsPerCSI_RS_Index_H_ +#define _ResultsPerCSI_RS_Index_H_ + + +#include + +/* Including external dependencies */ +#include "CSI-RS-Index.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasQuantityResults; + +/* ResultsPerCSI-RS-Index */ +typedef struct ResultsPerCSI_RS_Index { + CSI_RS_Index_t csi_RS_Index; + struct MeasQuantityResults *csi_RS_Results; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ResultsPerCSI_RS_Index_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ResultsPerCSI_RS_Index; +extern asn_SEQUENCE_specifics_t asn_SPC_ResultsPerCSI_RS_Index_specs_1; +extern asn_TYPE_member_t asn_MBR_ResultsPerCSI_RS_Index_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ResultsPerCSI_RS_Index_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/ResultsPerCSI-RS-IndexList.c b/setup/xapp-sm-connector/asn1c_defs/ResultsPerCSI-RS-IndexList.c new file mode 100644 index 0000000..d98d4d1 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/ResultsPerCSI-RS-IndexList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "ResultsPerCSI-RS-IndexList.h" + +#include "ResultsPerCSI-RS-Index.h" +static asn_oer_constraints_t asn_OER_type_ResultsPerCSI_RS_IndexList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +asn_per_constraints_t asn_PER_type_ResultsPerCSI_RS_IndexList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ResultsPerCSI_RS_IndexList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ResultsPerCSI_RS_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ResultsPerCSI_RS_IndexList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ResultsPerCSI_RS_IndexList_specs_1 = { + sizeof(struct ResultsPerCSI_RS_IndexList), + offsetof(struct ResultsPerCSI_RS_IndexList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ResultsPerCSI_RS_IndexList = { + "ResultsPerCSI-RS-IndexList", + "ResultsPerCSI-RS-IndexList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ResultsPerCSI_RS_IndexList_tags_1, + sizeof(asn_DEF_ResultsPerCSI_RS_IndexList_tags_1) + /sizeof(asn_DEF_ResultsPerCSI_RS_IndexList_tags_1[0]), /* 1 */ + asn_DEF_ResultsPerCSI_RS_IndexList_tags_1, /* Same as above */ + sizeof(asn_DEF_ResultsPerCSI_RS_IndexList_tags_1) + /sizeof(asn_DEF_ResultsPerCSI_RS_IndexList_tags_1[0]), /* 1 */ + { &asn_OER_type_ResultsPerCSI_RS_IndexList_constr_1, &asn_PER_type_ResultsPerCSI_RS_IndexList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ResultsPerCSI_RS_IndexList_1, + 1, /* Single element */ + &asn_SPC_ResultsPerCSI_RS_IndexList_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/ResultsPerCSI-RS-IndexList.h b/setup/xapp-sm-connector/asn1c_defs/ResultsPerCSI-RS-IndexList.h new file mode 100644 index 0000000..5cde4f3 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/ResultsPerCSI-RS-IndexList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _ResultsPerCSI_RS_IndexList_H_ +#define _ResultsPerCSI_RS_IndexList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ResultsPerCSI_RS_Index; + +/* ResultsPerCSI-RS-IndexList */ +typedef struct ResultsPerCSI_RS_IndexList { + A_SEQUENCE_OF(struct ResultsPerCSI_RS_Index) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ResultsPerCSI_RS_IndexList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ResultsPerCSI_RS_IndexList; +extern asn_SET_OF_specifics_t asn_SPC_ResultsPerCSI_RS_IndexList_specs_1; +extern asn_TYPE_member_t asn_MBR_ResultsPerCSI_RS_IndexList_1[1]; +extern asn_per_constraints_t asn_PER_type_ResultsPerCSI_RS_IndexList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ResultsPerCSI_RS_IndexList_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/ResultsPerSSB-Index.c b/setup/xapp-sm-connector/asn1c_defs/ResultsPerSSB-Index.c new file mode 100644 index 0000000..5aca175 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/ResultsPerSSB-Index.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "ResultsPerSSB-Index.h" + +#include "MeasQuantityResults.h" +asn_TYPE_member_t asn_MBR_ResultsPerSSB_Index_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ResultsPerSSB_Index, ssb_Index), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-Index" + }, + { ATF_POINTER, 1, offsetof(struct ResultsPerSSB_Index, ssb_Results), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasQuantityResults, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-Results" + }, +}; +static const int asn_MAP_ResultsPerSSB_Index_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ResultsPerSSB_Index_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ResultsPerSSB_Index_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssb-Index */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ssb-Results */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ResultsPerSSB_Index_specs_1 = { + sizeof(struct ResultsPerSSB_Index), + offsetof(struct ResultsPerSSB_Index, _asn_ctx), + asn_MAP_ResultsPerSSB_Index_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ResultsPerSSB_Index_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ResultsPerSSB_Index = { + "ResultsPerSSB-Index", + "ResultsPerSSB-Index", + &asn_OP_SEQUENCE, + asn_DEF_ResultsPerSSB_Index_tags_1, + sizeof(asn_DEF_ResultsPerSSB_Index_tags_1) + /sizeof(asn_DEF_ResultsPerSSB_Index_tags_1[0]), /* 1 */ + asn_DEF_ResultsPerSSB_Index_tags_1, /* Same as above */ + sizeof(asn_DEF_ResultsPerSSB_Index_tags_1) + /sizeof(asn_DEF_ResultsPerSSB_Index_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ResultsPerSSB_Index_1, + 2, /* Elements count */ + &asn_SPC_ResultsPerSSB_Index_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/ResultsPerSSB-Index.h b/setup/xapp-sm-connector/asn1c_defs/ResultsPerSSB-Index.h new file mode 100644 index 0000000..df936b6 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/ResultsPerSSB-Index.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _ResultsPerSSB_Index_H_ +#define _ResultsPerSSB_Index_H_ + + +#include + +/* Including external dependencies */ +#include "SSB-Index.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasQuantityResults; + +/* ResultsPerSSB-Index */ +typedef struct ResultsPerSSB_Index { + SSB_Index_t ssb_Index; + struct MeasQuantityResults *ssb_Results; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ResultsPerSSB_Index_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ResultsPerSSB_Index; +extern asn_SEQUENCE_specifics_t asn_SPC_ResultsPerSSB_Index_specs_1; +extern asn_TYPE_member_t asn_MBR_ResultsPerSSB_Index_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ResultsPerSSB_Index_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/ResultsPerSSB-IndexList.c b/setup/xapp-sm-connector/asn1c_defs/ResultsPerSSB-IndexList.c new file mode 100644 index 0000000..2d7e1ab --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/ResultsPerSSB-IndexList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "ResultsPerSSB-IndexList.h" + +#include "ResultsPerSSB-Index.h" +static asn_oer_constraints_t asn_OER_type_ResultsPerSSB_IndexList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +asn_per_constraints_t asn_PER_type_ResultsPerSSB_IndexList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ResultsPerSSB_IndexList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ResultsPerSSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ResultsPerSSB_IndexList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ResultsPerSSB_IndexList_specs_1 = { + sizeof(struct ResultsPerSSB_IndexList), + offsetof(struct ResultsPerSSB_IndexList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ResultsPerSSB_IndexList = { + "ResultsPerSSB-IndexList", + "ResultsPerSSB-IndexList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ResultsPerSSB_IndexList_tags_1, + sizeof(asn_DEF_ResultsPerSSB_IndexList_tags_1) + /sizeof(asn_DEF_ResultsPerSSB_IndexList_tags_1[0]), /* 1 */ + asn_DEF_ResultsPerSSB_IndexList_tags_1, /* Same as above */ + sizeof(asn_DEF_ResultsPerSSB_IndexList_tags_1) + /sizeof(asn_DEF_ResultsPerSSB_IndexList_tags_1[0]), /* 1 */ + { &asn_OER_type_ResultsPerSSB_IndexList_constr_1, &asn_PER_type_ResultsPerSSB_IndexList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ResultsPerSSB_IndexList_1, + 1, /* Single element */ + &asn_SPC_ResultsPerSSB_IndexList_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/ResultsPerSSB-IndexList.h b/setup/xapp-sm-connector/asn1c_defs/ResultsPerSSB-IndexList.h new file mode 100644 index 0000000..209f40c --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/ResultsPerSSB-IndexList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _ResultsPerSSB_IndexList_H_ +#define _ResultsPerSSB_IndexList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ResultsPerSSB_Index; + +/* ResultsPerSSB-IndexList */ +typedef struct ResultsPerSSB_IndexList { + A_SEQUENCE_OF(struct ResultsPerSSB_Index) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ResultsPerSSB_IndexList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ResultsPerSSB_IndexList; +extern asn_SET_OF_specifics_t asn_SPC_ResultsPerSSB_IndexList_specs_1; +extern asn_TYPE_member_t asn_MBR_ResultsPerSSB_IndexList_1[1]; +extern asn_per_constraints_t asn_PER_type_ResultsPerSSB_IndexList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ResultsPerSSB_IndexList_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/S-NSSAI.c b/setup/xapp-sm-connector/asn1c_defs/S-NSSAI.c new file mode 100644 index 0000000..29b31b2 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/S-NSSAI.c @@ -0,0 +1,130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "S-NSSAI.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_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_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 S_NSSAI, 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_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 */ + -1, /* 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 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_S_NSSAI_1, + 2, /* Elements count */ + &asn_SPC_S_NSSAI_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/S-NSSAI.h b/setup/xapp-sm-connector/asn1c_defs/S-NSSAI.h new file mode 100644 index 0000000..c379f99 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/S-NSSAI.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _S_NSSAI_H_ +#define _S_NSSAI_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* S-NSSAI */ +typedef struct S_NSSAI { + OCTET_STRING_t sST; + OCTET_STRING_t *sD; /* OPTIONAL */ + + /* 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 diff --git a/setup/xapp-sm-connector/asn1c_defs/SINR-Range.c b/setup/xapp-sm-connector/asn1c_defs/SINR-Range.c new file mode 100644 index 0000000..5c1f4ba --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/SINR-Range.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "SINR-Range.h" + +int +SINR_Range_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 <= 127)) { + /* 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_SINR_Range_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +asn_per_constraints_t asn_PER_type_SINR_Range_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SINR_Range_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SINR_Range = { + "SINR-Range", + "SINR-Range", + &asn_OP_NativeInteger, + asn_DEF_SINR_Range_tags_1, + sizeof(asn_DEF_SINR_Range_tags_1) + /sizeof(asn_DEF_SINR_Range_tags_1[0]), /* 1 */ + asn_DEF_SINR_Range_tags_1, /* Same as above */ + sizeof(asn_DEF_SINR_Range_tags_1) + /sizeof(asn_DEF_SINR_Range_tags_1[0]), /* 1 */ + { &asn_OER_type_SINR_Range_constr_1, &asn_PER_type_SINR_Range_constr_1, SINR_Range_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/SINR-Range.h b/setup/xapp-sm-connector/asn1c_defs/SINR-Range.h new file mode 100644 index 0000000..8caa08b --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/SINR-Range.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _SINR_Range_H_ +#define _SINR_Range_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SINR-Range */ +typedef long SINR_Range_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SINR_Range_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SINR_Range; +asn_struct_free_f SINR_Range_free; +asn_struct_print_f SINR_Range_print; +asn_constr_check_f SINR_Range_constraint; +ber_type_decoder_f SINR_Range_decode_ber; +der_type_encoder_f SINR_Range_encode_der; +xer_type_decoder_f SINR_Range_decode_xer; +xer_type_encoder_f SINR_Range_encode_xer; +oer_type_decoder_f SINR_Range_decode_oer; +oer_type_encoder_f SINR_Range_encode_oer; +per_type_decoder_f SINR_Range_decode_uper; +per_type_encoder_f SINR_Range_encode_uper; +per_type_decoder_f SINR_Range_decode_aper; +per_type_encoder_f SINR_Range_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SINR_Range_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/SINR-RangeEUTRA.c b/setup/xapp-sm-connector/asn1c_defs/SINR-RangeEUTRA.c new file mode 100644 index 0000000..fdee3e7 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/SINR-RangeEUTRA.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "SINR-RangeEUTRA.h" + +int +SINR_RangeEUTRA_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 <= 127)) { + /* 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_SINR_RangeEUTRA_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +asn_per_constraints_t asn_PER_type_SINR_RangeEUTRA_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SINR_RangeEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SINR_RangeEUTRA = { + "SINR-RangeEUTRA", + "SINR-RangeEUTRA", + &asn_OP_NativeInteger, + asn_DEF_SINR_RangeEUTRA_tags_1, + sizeof(asn_DEF_SINR_RangeEUTRA_tags_1) + /sizeof(asn_DEF_SINR_RangeEUTRA_tags_1[0]), /* 1 */ + asn_DEF_SINR_RangeEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_SINR_RangeEUTRA_tags_1) + /sizeof(asn_DEF_SINR_RangeEUTRA_tags_1[0]), /* 1 */ + { &asn_OER_type_SINR_RangeEUTRA_constr_1, &asn_PER_type_SINR_RangeEUTRA_constr_1, SINR_RangeEUTRA_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/SINR-RangeEUTRA.h b/setup/xapp-sm-connector/asn1c_defs/SINR-RangeEUTRA.h new file mode 100644 index 0000000..5cbb7dc --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/SINR-RangeEUTRA.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _SINR_RangeEUTRA_H_ +#define _SINR_RangeEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SINR-RangeEUTRA */ +typedef long SINR_RangeEUTRA_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SINR_RangeEUTRA_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SINR_RangeEUTRA; +asn_struct_free_f SINR_RangeEUTRA_free; +asn_struct_print_f SINR_RangeEUTRA_print; +asn_constr_check_f SINR_RangeEUTRA_constraint; +ber_type_decoder_f SINR_RangeEUTRA_decode_ber; +der_type_encoder_f SINR_RangeEUTRA_encode_der; +xer_type_decoder_f SINR_RangeEUTRA_decode_xer; +xer_type_encoder_f SINR_RangeEUTRA_encode_xer; +oer_type_decoder_f SINR_RangeEUTRA_decode_oer; +oer_type_encoder_f SINR_RangeEUTRA_encode_oer; +per_type_decoder_f SINR_RangeEUTRA_decode_uper; +per_type_encoder_f SINR_RangeEUTRA_encode_uper; +per_type_decoder_f SINR_RangeEUTRA_decode_aper; +per_type_encoder_f SINR_RangeEUTRA_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SINR_RangeEUTRA_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/SNSSAI.c b/setup/xapp-sm-connector/asn1c_defs/SNSSAI.c new file mode 100644 index 0000000..6ac92bf --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/SNSSAI.c @@ -0,0 +1,130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#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 */ + 2, /* 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/setup/xapp-sm-connector/asn1c_defs/SNSSAI.h b/setup/xapp-sm-connector/asn1c_defs/SNSSAI.h new file mode 100644 index 0000000..2fe6f69 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/SNSSAI.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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#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 */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* 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/setup/xapp-sm-connector/asn1c_defs/SSB-Index.c b/setup/xapp-sm-connector/asn1c_defs/SSB-Index.c new file mode 100644 index 0000000..3f9975e --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/SSB-Index.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "SSB-Index.h" + +int +SSB_Index_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 <= 63)) { + /* 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_SSB_Index_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +asn_per_constraints_t asn_PER_type_SSB_Index_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SSB_Index_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SSB_Index = { + "SSB-Index", + "SSB-Index", + &asn_OP_NativeInteger, + asn_DEF_SSB_Index_tags_1, + sizeof(asn_DEF_SSB_Index_tags_1) + /sizeof(asn_DEF_SSB_Index_tags_1[0]), /* 1 */ + asn_DEF_SSB_Index_tags_1, /* Same as above */ + sizeof(asn_DEF_SSB_Index_tags_1) + /sizeof(asn_DEF_SSB_Index_tags_1[0]), /* 1 */ + { &asn_OER_type_SSB_Index_constr_1, &asn_PER_type_SSB_Index_constr_1, SSB_Index_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/SSB-Index.h b/setup/xapp-sm-connector/asn1c_defs/SSB-Index.h new file mode 100644 index 0000000..3d9d6fc --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/SSB-Index.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _SSB_Index_H_ +#define _SSB_Index_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SSB-Index */ +typedef long SSB_Index_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SSB_Index_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SSB_Index; +asn_struct_free_f SSB_Index_free; +asn_struct_print_f SSB_Index_print; +asn_constr_check_f SSB_Index_constraint; +ber_type_decoder_f SSB_Index_decode_ber; +der_type_encoder_f SSB_Index_encode_der; +xer_type_decoder_f SSB_Index_decode_xer; +xer_type_encoder_f SSB_Index_encode_xer; +oer_type_decoder_f SSB_Index_decode_oer; +oer_type_encoder_f SSB_Index_encode_oer; +per_type_decoder_f SSB_Index_decode_uper; +per_type_encoder_f SSB_Index_encode_uper; +per_type_decoder_f SSB_Index_decode_aper; +per_type_encoder_f SSB_Index_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SSB_Index_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/ServCellIndex.c b/setup/xapp-sm-connector/asn1c_defs/ServCellIndex.c new file mode 100644 index 0000000..a7dec96 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/ServCellIndex.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "ServCellIndex.h" + +int +ServCellIndex_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 <= 31)) { + /* 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_ServCellIndex_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +asn_per_constraints_t asn_PER_type_ServCellIndex_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ServCellIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ServCellIndex = { + "ServCellIndex", + "ServCellIndex", + &asn_OP_NativeInteger, + asn_DEF_ServCellIndex_tags_1, + sizeof(asn_DEF_ServCellIndex_tags_1) + /sizeof(asn_DEF_ServCellIndex_tags_1[0]), /* 1 */ + asn_DEF_ServCellIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_ServCellIndex_tags_1) + /sizeof(asn_DEF_ServCellIndex_tags_1[0]), /* 1 */ + { &asn_OER_type_ServCellIndex_constr_1, &asn_PER_type_ServCellIndex_constr_1, ServCellIndex_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/ServCellIndex.h b/setup/xapp-sm-connector/asn1c_defs/ServCellIndex.h new file mode 100644 index 0000000..27f2d62 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/ServCellIndex.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _ServCellIndex_H_ +#define _ServCellIndex_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ServCellIndex */ +typedef long ServCellIndex_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ServCellIndex_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ServCellIndex; +asn_struct_free_f ServCellIndex_free; +asn_struct_print_f ServCellIndex_print; +asn_constr_check_f ServCellIndex_constraint; +ber_type_decoder_f ServCellIndex_decode_ber; +der_type_encoder_f ServCellIndex_encode_der; +xer_type_decoder_f ServCellIndex_decode_xer; +xer_type_encoder_f ServCellIndex_encode_xer; +oer_type_decoder_f ServCellIndex_decode_oer; +oer_type_encoder_f ServCellIndex_encode_oer; +per_type_decoder_f ServCellIndex_decode_uper; +per_type_encoder_f ServCellIndex_encode_uper; +per_type_decoder_f ServCellIndex_decode_aper; +per_type_encoder_f ServCellIndex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ServCellIndex_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/ServedPlmnPerCellListItem.c b/setup/xapp-sm-connector/asn1c_defs/ServedPlmnPerCellListItem.c new file mode 100644 index 0000000..4f10db7 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/ServedPlmnPerCellListItem.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "ServedPlmnPerCellListItem.h" + +#include "FGC-DU-PM-Container.h" +#include "EPC-DU-PM-Container.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/setup/xapp-sm-connector/asn1c_defs/ServedPlmnPerCellListItem.h b/setup/xapp-sm-connector/asn1c_defs/ServedPlmnPerCellListItem.h new file mode 100644 index 0000000..fbde179 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/ServedPlmnPerCellListItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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 + +#endif /* _ServedPlmnPerCellListItem_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/ServingCellMeasurements.c b/setup/xapp-sm-connector/asn1c_defs/ServingCellMeasurements.c new file mode 100644 index 0000000..8ff6d3b --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/ServingCellMeasurements.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "ServingCellMeasurements.h" + +#include "MeasResultServMOList.h" +#include "MeasResultPCell.h" +static asn_oer_constraints_t asn_OER_type_ServingCellMeasurements_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ServingCellMeasurements_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_ServingCellMeasurements_1[] = { + { ATF_POINTER, 0, offsetof(struct ServingCellMeasurements, choice.nr_measResultServingMOList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasResultServMOList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nr-measResultServingMOList" + }, + { ATF_POINTER, 0, offsetof(struct ServingCellMeasurements, choice.eutra_measResultPCell), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasResultPCell, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-measResultPCell" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ServingCellMeasurements_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nr-measResultServingMOList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eutra-measResultPCell */ +}; +asn_CHOICE_specifics_t asn_SPC_ServingCellMeasurements_specs_1 = { + sizeof(struct ServingCellMeasurements), + offsetof(struct ServingCellMeasurements, _asn_ctx), + offsetof(struct ServingCellMeasurements, present), + sizeof(((struct ServingCellMeasurements *)0)->present), + asn_MAP_ServingCellMeasurements_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ServingCellMeasurements = { + "ServingCellMeasurements", + "ServingCellMeasurements", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_ServingCellMeasurements_constr_1, &asn_PER_type_ServingCellMeasurements_constr_1, CHOICE_constraint }, + asn_MBR_ServingCellMeasurements_1, + 2, /* Elements count */ + &asn_SPC_ServingCellMeasurements_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/ServingCellMeasurements.h b/setup/xapp-sm-connector/asn1c_defs/ServingCellMeasurements.h new file mode 100644 index 0000000..22f8aa2 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/ServingCellMeasurements.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _ServingCellMeasurements_H_ +#define _ServingCellMeasurements_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ServingCellMeasurements_PR { + ServingCellMeasurements_PR_NOTHING, /* No components present */ + ServingCellMeasurements_PR_nr_measResultServingMOList, + ServingCellMeasurements_PR_eutra_measResultPCell + /* Extensions may appear below */ + +} ServingCellMeasurements_PR; + +/* Forward declarations */ +struct MeasResultServMOList; +struct MeasResultPCell; + +/* ServingCellMeasurements */ +typedef struct ServingCellMeasurements { + ServingCellMeasurements_PR present; + union ServingCellMeasurements_u { + struct MeasResultServMOList *nr_measResultServingMOList; + struct MeasResultPCell *eutra_measResultPCell; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ServingCellMeasurements_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ServingCellMeasurements; +extern asn_CHOICE_specifics_t asn_SPC_ServingCellMeasurements_specs_1; +extern asn_TYPE_member_t asn_MBR_ServingCellMeasurements_1[2]; +extern asn_per_constraints_t asn_PER_type_ServingCellMeasurements_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ServingCellMeasurements_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/SlicePerPlmnPerCellListItem.c b/setup/xapp-sm-connector/asn1c_defs/SlicePerPlmnPerCellListItem.c new file mode 100644 index 0000000..021489f --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/SlicePerPlmnPerCellListItem.c @@ -0,0 +1,140 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "SlicePerPlmnPerCellListItem.h" + +#include "FQIPERSlicesPerPlmnPerCellListItem.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_S_NSSAI, + 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/setup/xapp-sm-connector/asn1c_defs/SlicePerPlmnPerCellListItem.h b/setup/xapp-sm-connector/asn1c_defs/SlicePerPlmnPerCellListItem.h new file mode 100644 index 0000000..406a845 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/SlicePerPlmnPerCellListItem.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _SlicePerPlmnPerCellListItem_H_ +#define _SlicePerPlmnPerCellListItem_H_ + + +#include + +/* Including external dependencies */ +#include "S-NSSAI.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct FQIPERSlicesPerPlmnPerCellListItem; + +/* SlicePerPlmnPerCellListItem */ +typedef struct SlicePerPlmnPerCellListItem { + S_NSSAI_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 + +#endif /* _SlicePerPlmnPerCellListItem_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/SliceToReportListItem.c b/setup/xapp-sm-connector/asn1c_defs/SliceToReportListItem.c new file mode 100644 index 0000000..b466fc3 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/SliceToReportListItem.c @@ -0,0 +1,140 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "SliceToReportListItem.h" + +#include "FQIPERSlicesPerPlmnListItem.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_S_NSSAI, + 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/setup/xapp-sm-connector/asn1c_defs/SliceToReportListItem.h b/setup/xapp-sm-connector/asn1c_defs/SliceToReportListItem.h new file mode 100644 index 0000000..9bc8c7e --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/SliceToReportListItem.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _SliceToReportListItem_H_ +#define _SliceToReportListItem_H_ + + +#include + +/* Including external dependencies */ +#include "S-NSSAI.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct FQIPERSlicesPerPlmnListItem; + +/* SliceToReportListItem */ +typedef struct SliceToReportListItem { + S_NSSAI_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 + +#endif /* _SliceToReportListItem_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/SubscriptionID.c b/setup/xapp-sm-connector/asn1c_defs/SubscriptionID.c new file mode 100644 index 0000000..ca1c145 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/SubscriptionID.c @@ -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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "SubscriptionID.h" + +int +SubscriptionID_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 >= 1 && value <= 4294967296)) { + /* 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_SubscriptionID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SubscriptionID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 32, -1, 1, 4294967296 } /* (1..4294967296,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SubscriptionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SubscriptionID = { + "SubscriptionID", + "SubscriptionID", + &asn_OP_INTEGER, + asn_DEF_SubscriptionID_tags_1, + sizeof(asn_DEF_SubscriptionID_tags_1) + /sizeof(asn_DEF_SubscriptionID_tags_1[0]), /* 1 */ + asn_DEF_SubscriptionID_tags_1, /* Same as above */ + sizeof(asn_DEF_SubscriptionID_tags_1) + /sizeof(asn_DEF_SubscriptionID_tags_1[0]), /* 1 */ + { &asn_OER_type_SubscriptionID_constr_1, &asn_PER_type_SubscriptionID_constr_1, SubscriptionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/SubscriptionID.h b/setup/xapp-sm-connector/asn1c_defs/SubscriptionID.h new file mode 100644 index 0000000..112352d --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/SubscriptionID.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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _SubscriptionID_H_ +#define _SubscriptionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SubscriptionID */ +typedef INTEGER_t SubscriptionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SubscriptionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SubscriptionID; +asn_struct_free_f SubscriptionID_free; +asn_struct_print_f SubscriptionID_print; +asn_constr_check_f SubscriptionID_constraint; +ber_type_decoder_f SubscriptionID_decode_ber; +der_type_encoder_f SubscriptionID_encode_der; +xer_type_decoder_f SubscriptionID_decode_xer; +xer_type_encoder_f SubscriptionID_encode_xer; +oer_type_decoder_f SubscriptionID_decode_oer; +oer_type_encoder_f SubscriptionID_encode_oer; +per_type_decoder_f SubscriptionID_decode_uper; +per_type_encoder_f SubscriptionID_encode_uper; +per_type_decoder_f SubscriptionID_decode_aper; +per_type_encoder_f SubscriptionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SubscriptionID_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/SuccessfulOutcome.c b/setup/xapp-sm-connector/asn1c_defs/SuccessfulOutcome.c index 8e9941f..7328b32 100644 --- a/setup/xapp-sm-connector/asn1c_defs/SuccessfulOutcome.c +++ b/setup/xapp-sm-connector/asn1c_defs/SuccessfulOutcome.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Descriptions-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "SuccessfulOutcome.h" @@ -192,16 +192,25 @@ memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); } +static asn_oer_constraints_t asn_OER_memb_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 }, @@ -302,7 +311,7 @@ asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_ProcedureCode, 0, - { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, + { &asn_OER_memb_procedureCode_constr_2, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, 0, 0, /* No default value */ "procedureCode" }, @@ -311,7 +320,7 @@ asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_SuccessfulOutcome_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, + { &asn_OER_memb_criticality_constr_3, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, 0, 0, /* No default value */ "criticality" }, @@ -320,7 +329,7 @@ asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[] = { +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 }, + { &asn_OER_memb_value_constr_4, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, 0, 0, /* No default value */ "value" }, diff --git a/setup/xapp-sm-connector/asn1c_defs/SuccessfulOutcome.h b/setup/xapp-sm-connector/asn1c_defs/SuccessfulOutcome.h index 906aa20..734bd7e 100644 --- a/setup/xapp-sm-connector/asn1c_defs/SuccessfulOutcome.h +++ b/setup/xapp-sm-connector/asn1c_defs/SuccessfulOutcome.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Descriptions-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _SuccessfulOutcome_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/TestCond-Expression.c b/setup/xapp-sm-connector/asn1c_defs/TestCond-Expression.c new file mode 100644 index 0000000..672d861 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/TestCond-Expression.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "TestCond-Expression.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TestCond_Expression_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +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 */ +}; +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 */ + { &asn_OER_type_TestCond_Expression_constr_1, &asn_PER_type_TestCond_Expression_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TestCond_Expression_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/TestCond-Expression.h b/setup/xapp-sm-connector/asn1c_defs/TestCond-Expression.h new file mode 100644 index 0000000..d078580 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/TestCond-Expression.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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _TestCond_Expression_H_ +#define _TestCond_Expression_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +oer_type_decoder_f TestCond_Expression_decode_oer; +oer_type_encoder_f TestCond_Expression_encode_oer; +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 diff --git a/setup/xapp-sm-connector/asn1c_defs/TestCond-Type.c b/setup/xapp-sm-connector/asn1c_defs/TestCond-Type.c new file mode 100644 index 0000000..2da4aa3 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/TestCond-Type.c @@ -0,0 +1,399 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#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. + */ +static asn_oer_constraints_t asn_OER_type_gBR_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +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 */ +}; +static asn_oer_constraints_t asn_OER_type_aMBR_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +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 */ +}; +static asn_oer_constraints_t asn_OER_type_isStat_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +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 */ +}; +static asn_oer_constraints_t asn_OER_type_isCatM_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1}; +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 */ +}; +static asn_oer_constraints_t asn_OER_type_rSRP_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1}; +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 */ +}; +static asn_oer_constraints_t asn_OER_type_rSRQ_constr_17 CC_NOTUSED = { + { 0, 0 }, + -1}; +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 */ +}; +static asn_oer_constraints_t asn_OER_type_TestCond_Type_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +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 */ +}; +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 */ + { &asn_OER_type_gBR_constr_2, &asn_PER_type_gBR_constr_2, 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 */ + { &asn_OER_type_aMBR_constr_5, &asn_PER_type_aMBR_constr_5, 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 */ + { &asn_OER_type_isStat_constr_8, &asn_PER_type_isStat_constr_8, 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 */ + { &asn_OER_type_isCatM_constr_11, &asn_PER_type_isCatM_constr_11, 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 */ + { &asn_OER_type_rSRP_constr_14, &asn_PER_type_rSRP_constr_14, 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 */ + { &asn_OER_type_rSRQ_constr_17, &asn_PER_type_rSRQ_constr_17, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_rSRQ_specs_17 /* 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, + { 0, 0, 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, + { 0, 0, 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, + { 0, 0, 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, + { 0, 0, 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, + { 0, 0, 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, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rSRQ" + }, +}; +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_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, + 6, /* 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) */ + { &asn_OER_type_TestCond_Type_constr_1, &asn_PER_type_TestCond_Type_constr_1, CHOICE_constraint }, + asn_MBR_TestCond_Type_1, + 6, /* Elements count */ + &asn_SPC_TestCond_Type_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/TestCond-Type.h b/setup/xapp-sm-connector/asn1c_defs/TestCond-Type.h new file mode 100644 index 0000000..7c6f7a7 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/TestCond-Type.h @@ -0,0 +1,108 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-IEs" + * found in "E2SM-KPM-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _TestCond_Type_H_ +#define _TestCond_Type_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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; +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; + +/* 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. + */ + } 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_TestCond_Type; +extern asn_CHOICE_specifics_t asn_SPC_TestCond_Type_specs_1; +extern asn_TYPE_member_t asn_MBR_TestCond_Type_1[6]; +extern asn_per_constraints_t asn_PER_type_TestCond_Type_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _TestCond_Type_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/TestCond-Value.c b/setup/xapp-sm-connector/asn1c_defs/TestCond-Value.c new file mode 100644 index 0000000..d5dfa1a --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/TestCond-Value.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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "TestCond-Value.h" + +static asn_oer_constraints_t asn_OER_type_TestCond_Value_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +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 */ +}; +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, + { 0, 0, 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, + { 0, 0, 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, + { 0, 0, 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, + { 0, 0, 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, + { 0, 0, 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, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "valuePrtS" + }, +}; +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_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, + 6, /* 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) */ + { &asn_OER_type_TestCond_Value_constr_1, &asn_PER_type_TestCond_Value_constr_1, CHOICE_constraint }, + asn_MBR_TestCond_Value_1, + 6, /* Elements count */ + &asn_SPC_TestCond_Value_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/TestCond-Value.h b/setup/xapp-sm-connector/asn1c_defs/TestCond-Value.h new file mode 100644 index 0000000..547d815 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/TestCond-Value.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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _TestCond_Value_H_ +#define _TestCond_Value_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include +#include + +#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; + +/* 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. + */ + } 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[6]; +extern asn_per_constraints_t asn_PER_type_TestCond_Value_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _TestCond_Value_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/TestCondInfo.c b/setup/xapp-sm-connector/asn1c_defs/TestCondInfo.c new file mode 100644 index 0000000..2cb22c6 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/TestCondInfo.c @@ -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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#include "TestCondInfo.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, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "testType" + }, + { ATF_NOFLAGS, 0, offsetof(struct TestCondInfo, testExpr), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TestCond_Expression, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "testExpr" + }, + { ATF_NOFLAGS, 0, offsetof(struct TestCondInfo, testValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_TestCond_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "testValue" + }, +}; +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 */ + 0, 0, 0, /* Optional elements (not needed) */ + 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 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TestCondInfo_1, + 3, /* Elements count */ + &asn_SPC_TestCondInfo_specs_1 /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/TestCondInfo.h b/setup/xapp-sm-connector/asn1c_defs/TestCondInfo.h new file mode 100644 index 0000000..1f850b6 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/TestCondInfo.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-v02.00.03.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03` + */ + +#ifndef _TestCondInfo_H_ +#define _TestCondInfo_H_ + + +#include + +/* Including external dependencies */ +#include "TestCond-Type.h" +#include "TestCond-Expression.h" +#include "TestCond-Value.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TestCondInfo */ +typedef struct TestCondInfo { + TestCond_Type_t testType; + TestCond_Expression_t testExpr; + TestCond_Value_t testValue; + /* + * 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 diff --git a/setup/xapp-sm-connector/asn1c_defs/TimeStamp.c b/setup/xapp-sm-connector/asn1c_defs/TimeStamp.c new file mode 100644 index 0000000..6d6fd9c --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/TimeStamp.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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 == 8)) { + /* 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_TimeStamp_constr_1 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +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 */ +}; +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 */ + { &asn_OER_type_TimeStamp_constr_1, &asn_PER_type_TimeStamp_constr_1, TimeStamp_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/TimeStamp.h b/setup/xapp-sm-connector/asn1c_defs/TimeStamp.h new file mode 100644 index 0000000..71f9724 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/TimeStamp.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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_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; +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/setup/xapp-sm-connector/asn1c_defs/TimeToWait.c b/setup/xapp-sm-connector/asn1c_defs/TimeToWait.c index 6c1d6af..a969d55 100644 --- a/setup/xapp-sm-connector/asn1c_defs/TimeToWait.c +++ b/setup/xapp-sm-connector/asn1c_defs/TimeToWait.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "TimeToWait.h" @@ -11,7 +11,10 @@ * 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 = { +static asn_oer_constraints_t asn_OER_type_TimeToWait_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +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 */ @@ -34,7 +37,7 @@ static const unsigned int asn_MAP_TimeToWait_enum2value_1[] = { 5 /* v60s(5) */ /* This list is extensible */ }; -static const asn_INTEGER_specifics_t asn_SPC_TimeToWait_specs_1 = { +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 */ @@ -56,7 +59,7 @@ asn_TYPE_descriptor_t asn_DEF_TimeToWait = { 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 }, + { &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/setup/xapp-sm-connector/asn1c_defs/TimeToWait.h b/setup/xapp-sm-connector/asn1c_defs/TimeToWait.h index a9ff45b..9627535 100644 --- a/setup/xapp-sm-connector/asn1c_defs/TimeToWait.h +++ b/setup/xapp-sm-connector/asn1c_defs/TimeToWait.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _TimeToWait_H_ @@ -35,7 +35,9 @@ typedef enum 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; @@ -43,6 +45,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/Trigger-ConditionIE-Item.c b/setup/xapp-sm-connector/asn1c_defs/Trigger-ConditionIE-Item.c new file mode 100644 index 0000000..dd0e6f4 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/Trigger-ConditionIE-Item.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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/setup/xapp-sm-connector/asn1c_defs/Trigger-ConditionIE-Item.h b/setup/xapp-sm-connector/asn1c_defs/Trigger-ConditionIE-Item.h new file mode 100644 index 0000000..fda0039 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/Trigger-ConditionIE-Item.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#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/setup/xapp-sm-connector/asn1c_defs/TriggeringMessage.c b/setup/xapp-sm-connector/asn1c_defs/TriggeringMessage.c index 41f10ca..7d1dbe8 100644 --- a/setup/xapp-sm-connector/asn1c_defs/TriggeringMessage.c +++ b/setup/xapp-sm-connector/asn1c_defs/TriggeringMessage.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-CommonDataTypes-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "TriggeringMessage.h" @@ -11,6 +11,9 @@ * 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 }, @@ -48,7 +51,7 @@ asn_TYPE_descriptor_t asn_DEF_TriggeringMessage = { 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 }, + { &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/setup/xapp-sm-connector/asn1c_defs/TriggeringMessage.h b/setup/xapp-sm-connector/asn1c_defs/TriggeringMessage.h index da7b498..6f9f42e 100644 --- a/setup/xapp-sm-connector/asn1c_defs/TriggeringMessage.h +++ b/setup/xapp-sm-connector/asn1c_defs/TriggeringMessage.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-CommonDataTypes-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _TriggeringMessage_H_ @@ -39,6 +39,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/TypeOfError.c b/setup/xapp-sm-connector/asn1c_defs/TypeOfError.c index ad4e6cd..e37ab6b 100644 --- a/setup/xapp-sm-connector/asn1c_defs/TypeOfError.c +++ b/setup/xapp-sm-connector/asn1c_defs/TypeOfError.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "TypeOfError.h" @@ -11,6 +11,9 @@ * 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 }, @@ -48,7 +51,7 @@ asn_TYPE_descriptor_t asn_DEF_TypeOfError = { 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 }, + { &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/setup/xapp-sm-connector/asn1c_defs/TypeOfError.h b/setup/xapp-sm-connector/asn1c_defs/TypeOfError.h index b2cc876..aec2d63 100644 --- a/setup/xapp-sm-connector/asn1c_defs/TypeOfError.h +++ b/setup/xapp-sm-connector/asn1c_defs/TypeOfError.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-IEs-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _TypeOfError_H_ @@ -41,6 +41,8 @@ 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/UE-Identity.c b/setup/xapp-sm-connector/asn1c_defs/UE-Identity.c new file mode 100644 index 0000000..f0c1410 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/UE-Identity.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#include "UE-Identity.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_UE_Identity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_UE_Identity = { + "UE-Identity", + "UE-Identity", + &asn_OP_OCTET_STRING, + asn_DEF_UE_Identity_tags_1, + sizeof(asn_DEF_UE_Identity_tags_1) + /sizeof(asn_DEF_UE_Identity_tags_1[0]), /* 1 */ + asn_DEF_UE_Identity_tags_1, /* Same as above */ + sizeof(asn_DEF_UE_Identity_tags_1) + /sizeof(asn_DEF_UE_Identity_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/setup/xapp-sm-connector/asn1c_defs/UE-Identity.h b/setup/xapp-sm-connector/asn1c_defs/UE-Identity.h new file mode 100644 index 0000000..9f62ee5 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/UE-Identity.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-KPM-RC" + * found in "e2sm-kpm-rc.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .` + */ + +#ifndef _UE_Identity_H_ +#define _UE_Identity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UE-Identity */ +typedef OCTET_STRING_t UE_Identity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UE_Identity; +asn_struct_free_f UE_Identity_free; +asn_struct_print_f UE_Identity_print; +asn_constr_check_f UE_Identity_constraint; +ber_type_decoder_f UE_Identity_decode_ber; +der_type_encoder_f UE_Identity_encode_der; +xer_type_decoder_f UE_Identity_decode_xer; +xer_type_encoder_f UE_Identity_encode_xer; +oer_type_decoder_f UE_Identity_decode_oer; +oer_type_encoder_f UE_Identity_encode_oer; +per_type_decoder_f UE_Identity_decode_uper; +per_type_encoder_f UE_Identity_encode_uper; +per_type_decoder_f UE_Identity_decode_aper; +per_type_encoder_f UE_Identity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _UE_Identity_H_ */ +#include diff --git a/setup/xapp-sm-connector/asn1c_defs/UnsuccessfulOutcome.c b/setup/xapp-sm-connector/asn1c_defs/UnsuccessfulOutcome.c index 4483d36..5c85aa8 100644 --- a/setup/xapp-sm-connector/asn1c_defs/UnsuccessfulOutcome.c +++ b/setup/xapp-sm-connector/asn1c_defs/UnsuccessfulOutcome.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Descriptions-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #include "UnsuccessfulOutcome.h" @@ -192,16 +192,25 @@ memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); } +static asn_oer_constraints_t asn_OER_memb_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 }, @@ -292,7 +301,7 @@ asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_ProcedureCode, 0, - { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, + { &asn_OER_memb_procedureCode_constr_2, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, 0, 0, /* No default value */ "procedureCode" }, @@ -301,7 +310,7 @@ asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_Criticality, select_UnsuccessfulOutcome_criticality_type, - { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, + { &asn_OER_memb_criticality_constr_3, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, 0, 0, /* No default value */ "criticality" }, @@ -310,7 +319,7 @@ asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[] = { +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 }, + { &asn_OER_memb_value_constr_4, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, 0, 0, /* No default value */ "value" }, diff --git a/setup/xapp-sm-connector/asn1c_defs/UnsuccessfulOutcome.h b/setup/xapp-sm-connector/asn1c_defs/UnsuccessfulOutcome.h index 5d8386e..baf8838 100644 --- a/setup/xapp-sm-connector/asn1c_defs/UnsuccessfulOutcome.h +++ b/setup/xapp-sm-connector/asn1c_defs/UnsuccessfulOutcome.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "/home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn" - * `asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER` + * found in "E2AP-PDU-Descriptions-v01.00.asn" + * `asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example` */ #ifndef _UnsuccessfulOutcome_H_ diff --git a/setup/xapp-sm-connector/asn1c_defs/asn_constant.h b/setup/xapp-sm-connector/asn1c_defs/asn_constant.h index cdae2a4..a6f348c 100644 --- a/setup/xapp-sm-connector/asn1c_defs/asn_constant.h +++ b/setup/xapp-sm-connector/asn1c_defs/asn_constant.h @@ -13,7 +13,6 @@ extern "C" { #define maxnoofErrors (256) #define maxofRANfunctionID (256) #define maxofRICactionID (16) -#define maxofRANParameters (255) #ifdef __cplusplus diff --git a/setup/xapp-sm-connector/asn1c_defs/constr_CHOICE.c b/setup/xapp-sm-connector/asn1c_defs/constr_CHOICE.c index 613e6ea..86dcbb0 100644 --- a/setup/xapp-sm-connector/asn1c_defs/constr_CHOICE.c +++ b/setup/xapp-sm-connector/asn1c_defs/constr_CHOICE.c @@ -1017,6 +1017,7 @@ CHOICE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, 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; @@ -1042,9 +1043,13 @@ CHOICE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, 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(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; @@ -1055,7 +1060,7 @@ CHOICE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, } else { if(specs->ext_start == -1) ASN__DECODE_FAILED; - value = uper_get_nsnnwn(pd); + 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) @@ -1083,7 +1088,7 @@ CHOICE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, rv = elm->type->op->aper_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, + rv = aper_open_type_get(opt_codec_ctx, elm->type, elm->encoding_constraints.per_constraints, memb_ptr2, pd); } @@ -1099,10 +1104,12 @@ CHOICE_encode_aper(const asn_TYPE_descriptor_t *td, 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 asn_per_constraint_t *ct = NULL; + const asn_per_constraint_t *ext_ct = NULL; const void *memb_ptr; - int present; - + unsigned present; + int present_enc; + if(!sptr) ASN__ENCODE_FAILED; ASN_DEBUG("Encoding %s as CHOICE using ALIGNED PER", td->name); @@ -1110,7 +1117,7 @@ CHOICE_encode_aper(const asn_TYPE_descriptor_t *td, if(constraints) ct = &constraints->value; else if(td->encoding_constraints.per_constraints) ct = &td->encoding_constraints.per_constraints->value; - else ct = 0; + else ct = NULL; present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); @@ -1126,25 +1133,38 @@ CHOICE_encode_aper(const asn_TYPE_descriptor_t *td, /* Adjust if canonical order is different from natural order */ if(specs->to_canonical_order) - present = specs->to_canonical_order[present]; - + 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) { - 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->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) { - if(per_put_few_bits(po, 0, 1)) - ASN__ENCODE_FAILED; + + 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]; @@ -1156,8 +1176,10 @@ CHOICE_encode_aper(const asn_TYPE_descriptor_t *td, memb_ptr = (const char *)sptr + elm->memb_offset; } - if(ct && ct->range_bits >= 0) { - if(per_put_few_bits(po, present, ct->range_bits)) + 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, @@ -1166,10 +1188,10 @@ CHOICE_encode_aper(const asn_TYPE_descriptor_t *td, asn_enc_rval_t rval = {0,0,0}; if(specs->ext_start == -1) ASN__ENCODE_FAILED; - if (ct) { - if(aper_put_nsnnwn(po, ct->range_bits, present - specs->ext_start)) + // 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; diff --git a/setup/xapp-sm-connector/asn1c_defs/constr_CHOICE_oer.c b/setup/xapp-sm-connector/asn1c_defs/constr_CHOICE_oer.c new file mode 100644 index 0000000..a4c591c --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/constr_CHOICE_oer.c @@ -0,0 +1,380 @@ +/* + * 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/setup/xapp-sm-connector/asn1c_defs/constr_SEQUENCE_oer.c b/setup/xapp-sm-connector/asn1c_defs/constr_SEQUENCE_oer.c new file mode 100644 index 0000000..ecb589c --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/constr_SEQUENCE_oer.c @@ -0,0 +1,561 @@ +/* + * 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/setup/xapp-sm-connector/asn1c_defs/constr_SET_OF_oer.c b/setup/xapp-sm-connector/asn1c_defs/constr_SET_OF_oer.c new file mode 100644 index 0000000..5200518 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/constr_SET_OF_oer.c @@ -0,0 +1,285 @@ +/* + * 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/setup/xapp-sm-connector/asn1c_defs/e2sm-kpm-rc.asn b/setup/xapp-sm-connector/asn1c_defs/e2sm-kpm-rc.asn new file mode 100755 index 0000000..8b7a12d --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/e2sm-kpm-rc.asn @@ -0,0 +1,751 @@ +-- ASN1START +-- ************************************************************** +-- +-- Constant definitions +-- +-- ************************************************************** + +E2SM-KPM-RC { +iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version1 (1) e2ap(1) e2sm-kpm-rc (1) } + +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 } + +-- ************************************************************** +-- +-- 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 + +-- E2SM-RC Service Model IEs +-- ************************************************************** + +-- ************************************************************** +-- Event Trigger Definition OCTET STRING contents + +-- ************************************************************** + +-- E2SM-KPM RAN Function Definition IEs + +E2SM-KPM-RANFunctionDefinition ::= 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-ReportStyle-Item ::= SEQUENCE { + ric-ReportStyle-Type RIC-Style-Type, + ric-ReportStyle-Name RIC-Style-Name, + ric-ReportIndicationHeaderFormat-Type RIC-Format-Type, + ric-ReportIndicationMessageFormat-Type RIC-Format-Type, + ... +} + +E2SM-KPM-ActionDefinition ::= SEQUENCE { + ric-ReportStyle-Type RIC-Style-Type, + actionDefinition-formats CHOICE { + actionDefinition-Format1 E2SM-KPM-ActionDefinition-Format1, + ... + }, + ... +} + +E2SM-KPM-ActionDefinition-Format1 ::= SEQUENCE { + cellObjID CellObjectID, + measInfoList MeasurementInfoList, + ... +} + +E2SM-KPM-IndicationHeader ::= CHOICE { + indicationHeader-Format1 E2SM-KPM-IndicationHeader-Format1, + ... +} + +E2SM-KPM-IndicationHeader-Format1 ::= SEQUENCE { + collectionStartTime TimeStamp, + id-GlobalE2node-ID GlobalE2node-ID, + ... +} + +E2SM-KPM-IndicationMessage ::= CHOICE { + indicationMessage-Format1 E2SM-KPM-IndicationMessage-Format1, + ... +} + +-- E2SM-KPM-IndicationMessage-Format 1 IE + +E2SM-KPM-IndicationMessage-Format1 ::= SEQUENCE{ + pm-Containers SEQUENCE (SIZE(1..maxofContainers)) OF PM-Containers-Item, + cellObjectID CellObjectID, + list-of-PM-Information SEQUENCE (SIZE(1..maxnoofPMMeasurements)) OF PM-Info-Item OPTIONAL, + list-of-matched-UEs SEQUENCE (SIZE(1..maxnoofUEs)) OF PerUE-PM-Item OPTIONAL, + ... +} + +PM-Containers-Item ::= SEQUENCE{ + performanceContainer PF-Container OPTIONAL, + theRANContainer RAN-Container OPTIONAL, + ... +} + +PerUE-PM-Item ::= SEQUENCE{ + ueId UE-Identity, + list-of-PM-Information SEQUENCE (SIZE(1..maxnoofPMMeasurements)) OF PM-Info-Item OPTIONAL, + ... +} + +PM-Info-Item ::= SEQUENCE{ + pmType MeasurementType, + pmVal MeasurementValue, + ... +} + +PF-Container ::= CHOICE { + oDU ODU-PF-Container, + oCU-CP OCUCP-PF-Container, + oCU-UP OCUUP-PF-Container +} + +ODU-PF-Container ::= SEQUENCE{ + cellResourceReportList SEQUENCE (SIZE(1..maxCellingNBDU)) OF CellResourceReportListItem, + ... +} + +CellResourceReportListItem ::= SEQUENCE{ + nRCGI NRCGI, + dl-TotalofAvailablePRBs INTEGER (0..273) OPTIONAL, + ul-TotalofAvailablePRBs INTEGER (0..273) OPTIONAL, + servedPlmnPerCellList SEQUENCE (SIZE(1..maxPLMN)) OF ServedPlmnPerCellListItem, + ... +} + +ServedPlmnPerCellListItem ::= SEQUENCE{ + pLMN-Identity PLMN-Identity, + du-PM-5GC FGC-DU-PM-Container OPTIONAL, + du-PM-EPC EPC-DU-PM-Container OPTIONAL, + ... +} + +FGC-DU-PM-Container ::= SEQUENCE{ + slicePerPlmnPerCellList SEQUENCE (SIZE(1..maxnoofSliceItems)) OF SlicePerPlmnPerCellListItem, + ... +} + +SlicePerPlmnPerCellListItem ::= SEQUENCE{ + sliceID S-NSSAI, + fQIPERSlicesPerPlmnPerCellList SEQUENCE (SIZE(1..maxnoofQoSFlows)) OF FQIPERSlicesPerPlmnPerCellListItem, + ... +} + +FQIPERSlicesPerPlmnPerCellListItem ::= SEQUENCE{ + fiveQI FiveQI, + dl-PRBUsage INTEGER (0..273) OPTIONAL, + ul-PRBUsage INTEGER (0..273) OPTIONAL, + ... +} + +EPC-DU-PM-Container ::= SEQUENCE{ + perQCIReportList-du SEQUENCE (SIZE(1..maxnoofQCI)) OF PerQCIReportListItem, + ... +} + +PerQCIReportListItem ::= SEQUENCE{ + qci QCI, + dl-PRBUsage INTEGER (0..100) OPTIONAL, + ul-PRBUsage INTEGER (0..100) OPTIONAL, + ... +} + +-- ************************************************************** +-- O-CUCP Container IEs +-- ************************************************************** + + +OCUCP-PF-Container ::= SEQUENCE{ + cu-CP-Resource-Status SEQUENCE { + numberOfActive-UEs INTEGER (1..65535, ...) OPTIONAL + } +} + +-- ************************************************************** +-- O-CU-UP Container IEs +-- ************************************************************** + +OCUUP-PF-Container ::= SEQUENCE{ + pf-ContainerList SEQUENCE (SIZE(1..maxnoofContainerListItems)) OF PF-ContainerListItem, + ... +} + +PF-ContainerListItem ::= SEQUENCE{ + interface-type NI-Type, + o-CU-UP-PM-Container CUUPMeasurement-Container, + ... +} + +CUUPMeasurement-Container ::= SEQUENCE{ + plmnList SEQUENCE (SIZE(1.. maxPLMN)) OF PlmnID-Item, + ... +} + +PlmnID-Item ::= SEQUENCE{ + pLMN-Identity PLMN-Identity, + cu-UP-PM-5GC FGC-CUUP-PM-Format OPTIONAL, + cu-UP-PM-EPC EPC-CUUP-PM-Format OPTIONAL, + ... +} + +FGC-CUUP-PM-Format ::= SEQUENCE{ + sliceToReportList SEQUENCE (SIZE(1..maxnoofSliceItems)) OF SliceToReportListItem, + ... +} + +SliceToReportListItem ::= SEQUENCE{ + sliceID S-NSSAI, + fQIPERSlicesPerPlmnList SEQUENCE (SIZE(1..maxnoofQoSFlows)) OF FQIPERSlicesPerPlmnListItem, + ... +} + +FQIPERSlicesPerPlmnListItem ::= SEQUENCE{ + fiveQI FiveQI, + pDCPBytesDL INTEGER (0..10000000000,...) OPTIONAL, + pDCPBytesUL INTEGER (0..10000000000,...) OPTIONAL, + ... +} + +EPC-CUUP-PM-Format ::= SEQUENCE{ + perQCIReportList-cuup SEQUENCE (SIZE(1..maxnoofQCI)) OF PerQCIReportListItemFormat, + ... +} + +PerQCIReportListItemFormat ::= SEQUENCE{ + drbqci QCI, + pDCPBytesDL INTEGER (0..10000000000,...) OPTIONAL, + pDCPBytesUL INTEGER (0..10000000000,...) OPTIONAL, + ... +} + +MeasurementValue ::= CHOICE{ + valueInt INTEGER, + valueReal REAL, + noValue NULL, + valueRRC L3-RRC-Measurements, + ... +} + +L3-RRC-Measurements ::= SEQUENCE { + rrcEvent RRCEvent, + servingCellMeasurements ServingCellMeasurements OPTIONAL, + measResultNeighCells MeasResultNeighCells OPTIONAL, + ... +} + +RRCEvent ::= ENUMERATED {b1, a3, a5, periodic, ...} + +ServingCellMeasurements ::= CHOICE { + nr-measResultServingMOList MeasResultServMOList, + eutra-measResultPCell MeasResultPCell, + ... +} + +MeasResultServMOList ::= SEQUENCE (SIZE (1..maxNrofServingCells)) OF MeasResultServMO + +MeasResultServMO ::= SEQUENCE { + servCellId ServCellIndex, + measResultServingCell MeasResultNR, + measResultBestNeighCell MeasResultNR OPTIONAL, + ... +} + +MeasResultNR ::= SEQUENCE { + physCellId PhysCellId OPTIONAL, + measResult SEQUENCE { + cellResults SEQUENCE { + resultsSSB-Cell MeasQuantityResults OPTIONAL, + resultsCSI-RS-Cell MeasQuantityResults OPTIONAL + }, + rsIndexResults SEQUENCE { + resultsSSB-Indexes ResultsPerSSB-IndexList OPTIONAL, + resultsCSI-RS-Indexes ResultsPerCSI-RS-IndexList OPTIONAL + } OPTIONAL + }, + ... +} + +MeasResultListEUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultEUTRA + +MeasResultEUTRA ::= SEQUENCE { + eutra-PhysCellId PhysCellId, + measResult MeasQuantityResultsEUTRA, + ... +} + +MeasResultPCell ::= SEQUENCE { + eutra-PhysCellId PhysCellId, + rsrpResult RSRP-Range, + rsrqResult RSRQ-Range, + ... +} + +MeasResultNeighCells ::= CHOICE { + measResultListNR MeasResultListNR, + measResultListEUTRA MeasResultListEUTRA, + ... +} + +MeasResultListNR ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultNR + +maxCellReport INTEGER ::= 8 + +PhysCellId ::= INTEGER (0..1007) + +ServCellIndex ::= INTEGER (0..maxNrofServingCells-1) + +MeasQuantityResults ::= SEQUENCE { + rsrp RSRP-Range OPTIONAL, + rsrq RSRQ-Range OPTIONAL, + sinr SINR-Range OPTIONAL, + ... +} + +MeasQuantityResultsEUTRA ::= SEQUENCE { + rsrp RSRP-RangeEUTRA OPTIONAL, + rsrq RSRQ-RangeEUTRA OPTIONAL, + sinr SINR-RangeEUTRA OPTIONAL, + ... +} + +RSRP-RangeEUTRA ::= INTEGER (0..97) + +RSRQ-RangeEUTRA ::= INTEGER (0..34) + +SINR-RangeEUTRA ::= INTEGER (0..127) + +ResultsPerSSB-IndexList ::= SEQUENCE (SIZE (1..maxNrofIndexesToReport2)) OF ResultsPerSSB-Index + +ResultsPerSSB-Index ::= SEQUENCE { + ssb-Index SSB-Index, + ssb-Results MeasQuantityResults OPTIONAL, + ... +} + +ResultsPerCSI-RS-IndexList ::= SEQUENCE (SIZE (1..maxNrofIndexesToReport2)) OF ResultsPerCSI-RS-Index + +ResultsPerCSI-RS-Index ::= SEQUENCE { + csi-RS-Index CSI-RS-Index, + csi-RS-Results MeasQuantityResults OPTIONAL, + ... +} + +SSB-Index ::= INTEGER (0..maxNrofSSBs-1) + +maxNrofSSBs-1 INTEGER ::= 63 + +CSI-RS-Index ::= INTEGER (0..maxNrofCSI-RS-ResourcesRRM-1) + +maxNrofCSI-RS-ResourcesRRM-1 INTEGER ::= 95 + +RSRP-Range ::= INTEGER (0..127) + +RSRQ-Range ::= INTEGER (0..127) + +SINR-Range ::= INTEGER (0..127) + +maxNrofServingCells INTEGER ::= 32 + +maxNrofServingCells-1 INTEGER ::= 31 + +maxNrofIndexesToReport2 INTEGER ::= 64 + +TimeStamp ::= OCTET STRING (SIZE(4)) + +CellObjectID ::= PrintableString(SIZE (0..400), ...) + +MeasurementInfoList ::= SEQUENCE (SIZE(1..maxnoofMeasurementInfo)) OF MeasurementInfoItem + +MeasurementInfoItem ::= SEQUENCE { + measType MeasurementType, + ... +} + +MeasurementType ::= CHOICE { + measName MeasurementTypeName, + measID MeasurementTypeID, + ... +} + +NRCGI ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + nRCellIdentity NRCellIdentity, + ... +} + +NRCellIdentity ::= BIT STRING (SIZE(36)) + +S-NSSAI ::= SEQUENCE { + sST OCTET STRING (SIZE(1)), + sD OCTET STRING (SIZE(3)) OPTIONAL +} + +MeasurementTypeName ::= PrintableString(SIZE(1.. 150, ...)) + +MeasurementTypeID ::= INTEGER (1.. 65535, ...) + +maxnoofMeasurementInfo INTEGER ::= 65535 + +maxofMessageProtocolTests INTEGER ::= 15 + +FiveQI ::= INTEGER (0..255,...) + +QCI ::= INTEGER (0..255,...) + +maxnoofQCI INTEGER ::= 256 + +maxnoofQoSFlows INTEGER ::= 64 + +maxnoofSliceItems INTEGER ::= 1024 + +maxnoofContainerListItems INTEGER ::= 3 + +maxCellingNBDU INTEGER ::= 512 + +maxofContainers INTEGER ::= 8 + +maxPLMN INTEGER ::= 12 + +maxnoofUEs INTEGER ::= 65535 + +maxnoofPMMeasurements INTEGER ::= 2147483647 + +NI-Type ::= ENUMERATED{ + x2-u, + xn-u, + f1-u, + ... +} + +RAN-Container ::= OCTET STRING + +-- E2SM-RC RAN Function Definition IEs + +E2SM-RC-RANFunctionDefinition ::= SEQUENCE{ + ranFunction-Name RANfunction-Name, + ric-EventTriggerStyle-List SEQUENCE (SIZE(1..maxnoofRICStyles)) OF RIC-EventTriggerStyle-Item OPTIONAL, + ric-ControlStyle-List SEQUENCE (SIZE(1..maxnoofRICStyles)) OF RIC-ControlStyle-Item OPTIONAL, + ... +} + +RANfunction-Name ::= SEQUENCE{ + ranFunction-ShortName PrintableString (SIZE(1..150,...)), + ranFunction-E2SM-OID PrintableString (SIZE(1..150,...)), + ranFunction-Description PrintableString (SIZE(1..150,...)), + ranFunction-Instance INTEGER OPTIONAL, + ... +} + +RIC-EventTriggerStyle-Item ::= SEQUENCE{ + ric-EventTriggerStyle-Type RIC-Style-Type, + ric-EventTriggerStyle-Name RIC-Style-Name, + ric-EventTriggerFormat-Type RIC-Format-Type, + ... +} + +RIC-ControlStyle-Item ::= SEQUENCE{ + ric-ControlStyle-Type RIC-Style-Type, + ric-ControlStyle-Name RIC-Style-Name, + ric-ControlAction-List SEQUENCE (SIZE(1..maxnoofControlAction)) OF RIC-ControlAction-Item OPTIONAL, + ric-ControlHeaderFormat-Type RIC-Format-Type, + ric-ControlMessageFormat-Type RIC-Format-Type, + ... +} + +RIC-ControlAction-Item ::= SEQUENCE{ + ric-ControlAction-ID RIC-ControlAction-ID, + ric-ControlAction-Name RIC-ControlAction-Name, + ran-ControlParameters-List SEQUENCE (SIZE(1..maxnoofAssociatedRANInfo)) OF RAN-ControlParameter-Item OPTIONAL, + ... +} + +RAN-ControlParameter-Item ::= SEQUENCE{ + ranParameter-ID RANParameter-ID, + ranParameter-Name RANParameter-Name, + ... +} + +-- *************************************************** +-- Control Header OCTET STRING contents +-- *************************************************** + +-- E2SM-RC-ControlHeader IE + +E2SM-RC-ControlHeader ::= CHOICE{ + controlHeader-Format1 E2SM-RC-ControlHeader-Format1, + ... +} + +-- E2SM-RC-ControlHeader Format 1 + +E2SM-RC-ControlHeader-Format1 ::= SEQUENCE{ + ueId UE-Identity, + ric-ControlStyle-Type RIC-Style-Type, + ric-ControlAction-ID RIC-ControlAction-ID, + ... +} + +-- *************************************************** +-- Control Message OCTET STRING contents +-- *************************************************** + +-- E2SM-RC-ControlMessage IE + +E2SM-RC-ControlMessage ::= CHOICE{ + controlMessage-Format1 E2SM-RC-ControlMessage-Format1, + ... +} + +-- E2SM-RC-ControlMessage Format 1 + +E2SM-RC-ControlMessage-Format1 ::= SEQUENCE{ + ranParameters-List SEQUENCE (SIZE(1..maxnoofAssociatedRANInfo)) OF RANParameter-Item OPTIONAL, + ... +} + +RANParameter-Item ::= SEQUENCE{ + ranParameterItem-ID RANParameter-ID, + ranParameterItem-valueType RANParameter-ValueType, + ... +} + +RANParameter-ValueType ::= CHOICE { + ranParameter-Element RANParameter-ELEMENT, + ranParameter-Structure RANParameter-STRUCTURE, + ranParameter-List RANParameter-LIST, + ... +} + +RANParameter-ELEMENT ::= SEQUENCE { + keyFlag BOOLEAN, + ranParameter-Value RANParameter-Value, + ... +} + +RANParameter-STRUCTURE ::= SEQUENCE { + sequence-of-ranParameters SEQUENCE (SIZE(1..maxnoofParametersInStructure)) OF RANParameter-Item, + ... +} + +RANParameter-LIST ::= SEQUENCE { + list-of-ranParameter-Structures SEQUENCE (SIZE(1..maxnoofItemsInList)) OF RANParameter-STRUCTURE, + ... +} + +RANParameter-Value ::= CHOICE { + valueInt INTEGER, + valueOctS OCTET STRING, + ... +} + +-- ***************************************************** + +UE-Identity ::= OCTET STRING + +RIC-Style-Type ::= INTEGER + +RIC-Style-Name ::= PrintableString (SIZE(1..150,...)) + +RIC-Format-Type ::= INTEGER + +RANParameter-ID ::= INTEGER (0..maxnoofAssociatedRANInfo) + +RANParameter-Name ::= PrintableString (SIZE(1..150,...)) + +RIC-ControlAction-ID ::= INTEGER (0..maxnoofControlAction) + +RIC-ControlAction-Name ::= PrintableString (SIZE(1..150,...)) + +maxnoofRICStyles INTEGER ::= 63 + +maxnoofAssociatedRANInfo INTEGER ::= 4294967295 + +maxnoofParametersInStructure INTEGER ::= 4294967295 + +maxnoofItemsInList INTEGER ::= 4294967295 + +maxnoofControlAction INTEGER ::= 65535 + +E2SM-KPM-EventTriggerDefinition ::= CHOICE { + eventDefinition-Format1 E2SM-KPM-EventTriggerDefinition-Format1, + ... +} + +E2SM-KPM-EventTriggerDefinition-Format1 ::= SEQUENCE { + policyTest-List SEQUENCE (SIZE(1..maxofMessageProtocolTests)) OF Trigger-ConditionIE-Item OPTIONAL, + ... +} + +Trigger-ConditionIE-Item ::= SEQUENCE{ + report-Period-IE RT-Period-IE, + ... +} + +RT-Period-IE ::= ENUMERATED{ ms10, ms20, ms32, ms40, ms60, ms64, ms70, ms80, ms128, ms160, ms256, ms320, ms512, ms640, ms1024, ms1280, ms2048, ms2560, ms5120, ms10240, ...} + +RANcallProcess-ID-string ::= PrintableString(SIZE(1..150,...)) + +PLMN-Identity ::= OCTET STRING (SIZE(3)) + +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-gNB-ID GlobalenGNB-ID, + ... +} +GlobalE2node-eNB-ID ::= SEQUENCE{ + global-eNB-ID GlobalENB-ID, + ... +} +GlobalE2node-gNB-ID ::= SEQUENCE{ + global-gNB-ID GlobalgNB-ID, + 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, + ... +} +-- ************************************************************** +-- copied from 3GPP X2AP IEs v15.4.0 +-- note: ie-Extensions removed +-- ************************************************************** + +GlobalENB-ID ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + eNB-ID ENB-ID, + ... +} +-- ************************************************************** +-- copied from 3GPP X2AP IEs v15.4.0 +-- 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 v15.5.0 XnAP IEs +-- ************************************************************** +GlobalgNB-ID ::= SEQUENCE { + plmn-id PLMN-Identity, + gnb-id GNB-ID-Choice, + ... +} + + +-- ************************************************************** +-- copied from 3GPP 38.423 v15.5.0 XnAP IEs +-- ************************************************************** +GlobalngeNB-ID ::= SEQUENCE { + plmn-id PLMN-Identity, + enb-id ENB-ID-Choice, + ... +} + +GNB-ID-Choice ::= CHOICE { + gnb-ID BIT STRING (SIZE(22..32)), + ... +} + +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)), + ... +} + +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)) +} + +ENGNB-ID ::= CHOICE { + gNB-ID BIT STRING (SIZE (22..32)), + ... +} + +GNB-CU-UP-ID::= INTEGER (0..68719476735) +GNB-DU-ID::= INTEGER (0..68719476735) + +-- ************************************************************** +-- copied from 3GPP 38.423 v15.5.0 XnAP IEs +-- ************************************************************** +END +-- ASN1STOP + diff --git a/setup/xapp-sm-connector/asn1c_defs/oer_decoder.c b/setup/xapp-sm-connector/asn1c_defs/oer_decoder.c new file mode 100644 index 0000000..0701738 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/oer_decoder.c @@ -0,0 +1,152 @@ +/* + * 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/setup/xapp-sm-connector/asn1c_defs/oer_decoder.h b/setup/xapp-sm-connector/asn1c_defs/oer_decoder.h new file mode 100644 index 0000000..40992e9 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/oer_decoder.h @@ -0,0 +1,72 @@ +/* + * 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/setup/xapp-sm-connector/asn1c_defs/oer_encoder.c b/setup/xapp-sm-connector/asn1c_defs/oer_encoder.c new file mode 100644 index 0000000..a284cc2 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/oer_encoder.c @@ -0,0 +1,141 @@ +/* + * 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/setup/xapp-sm-connector/asn1c_defs/oer_encoder.h b/setup/xapp-sm-connector/asn1c_defs/oer_encoder.h new file mode 100644 index 0000000..6a7b681 --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/oer_encoder.h @@ -0,0 +1,70 @@ +/* + * 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/setup/xapp-sm-connector/asn1c_defs/oer_support.c b/setup/xapp-sm-connector/asn1c_defs/oer_support.c new file mode 100644 index 0000000..b15a3bc --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/oer_support.c @@ -0,0 +1,122 @@ +/* + * 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/setup/xapp-sm-connector/asn1c_defs/oer_support.h b/setup/xapp-sm-connector/asn1c_defs/oer_support.h new file mode 100644 index 0000000..dbc9b5f --- /dev/null +++ b/setup/xapp-sm-connector/asn1c_defs/oer_support.h @@ -0,0 +1,47 @@ +/* + * 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/setup/xapp-sm-connector/asn1c_defs/pdu_collection.c b/setup/xapp-sm-connector/asn1c_defs/pdu_collection.c index 3925869..deea97d 100644 --- a/setup/xapp-sm-connector/asn1c_defs/pdu_collection.c +++ b/setup/xapp-sm-connector/asn1c_defs/pdu_collection.c @@ -4,27 +4,36 @@ struct asn_TYPE_descriptor_s; /* Forward declaration */ -extern struct asn_TYPE_descriptor_s asn_DEF_E2AP_PDU; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_HelloWorld_EventTriggerDefinition; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_HelloWorld_ActionDefinition; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_HelloWorld_IndicationHeader; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_HelloWorld_IndicationMessage; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_HelloWorld_ControlHeader; -extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_HelloWorld_ControlMessage; -extern struct asn_TYPE_descriptor_s asn_DEF_HW_ControlCommand; +extern struct asn_TYPE_descriptor_s asn_DEF_Criticality; +extern struct asn_TYPE_descriptor_s asn_DEF_Presence; +extern struct asn_TYPE_descriptor_s asn_DEF_ProcedureCode; +extern struct asn_TYPE_descriptor_s asn_DEF_TriggeringMessage; +extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_RANFunctionDefinition; +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_RC_RANFunctionDefinition; +extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_RC_ControlHeader; +extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_RC_ControlMessage; +extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_EventTriggerDefinition; +extern struct asn_TYPE_descriptor_s asn_DEF_RANcallProcess_ID_string; struct asn_TYPE_descriptor_s *asn_pdu_collection[] = { - /* From module E2AP-PDU-Descriptions in /home/sjana/ASN-Defns/e2ap-oran-wg3-v01.00.asn */ - &asn_DEF_E2AP_PDU, - /* From module E2SM-HelloWorld-IEs in /home/sjana/ASN-Defns/e2sm-HelloWorld-v002.asn */ - &asn_DEF_E2SM_HelloWorld_EventTriggerDefinition, - &asn_DEF_E2SM_HelloWorld_ActionDefinition, - &asn_DEF_E2SM_HelloWorld_IndicationHeader, - &asn_DEF_E2SM_HelloWorld_IndicationMessage, - &asn_DEF_E2SM_HelloWorld_ControlHeader, - &asn_DEF_E2SM_HelloWorld_ControlMessage, - &asn_DEF_HW_ControlCommand, + /* From module E2SM-KPM-RC in e2sm-kpm-rc.asn */ + &asn_DEF_Criticality, + &asn_DEF_Presence, + &asn_DEF_ProcedureCode, + &asn_DEF_TriggeringMessage, + &asn_DEF_E2SM_KPM_RANFunctionDefinition, + &asn_DEF_E2SM_KPM_ActionDefinition, + &asn_DEF_E2SM_KPM_IndicationHeader, + &asn_DEF_E2SM_KPM_IndicationMessage, + &asn_DEF_E2SM_RC_RANFunctionDefinition, + &asn_DEF_E2SM_RC_ControlHeader, + &asn_DEF_E2SM_RC_ControlMessage, + &asn_DEF_E2SM_KPM_EventTriggerDefinition, + &asn_DEF_RANcallProcess_ID_string, 0 }; diff --git a/setup/xapp-sm-connector/src/Makefile b/setup/xapp-sm-connector/src/Makefile index 0d2a00e..c4f01e9 100755 --- a/setup/xapp-sm-connector/src/Makefile +++ b/setup/xapp-sm-connector/src/Makefile @@ -18,15 +18,15 @@ RNIB_LIBS:= -pthread /usr/local/include/rnib/rnibreader.a ######## Keep include dirs separate so we have transparency -BASEFLAGS= -Wall -std=c++14 $(CLOGFLAGS) -C_BASEFLAGS= -Wall $(CLOGFLAGS) -DASN_DISABLE_OER_SUPPORT +BASEFLAGS= -Wall -std=c++14 $(CLOGFLAGS) +C_BASEFLAGS= -Wall $(CLOGFLAGS) XAPPFLAGS= -I./ HWFLAGS= -I./ UTILFLAGS= -I$(UTILSRC) MSGFLAGS= -I$(MSGSRC) -ASNFLAGS=-I$(ASNSRC) -DASN_DISABLE_OER_SUPPORT +ASNFLAGS= -I$(ASNSRC) E2APFLAGS = -I$(E2APSRC) E2SMFLAGS = -I$(E2SMSRC) @@ -48,7 +48,7 @@ ASN1C_SRC= $(wildcard $(ASNSRC)/*.c) ##############Objects UTIL_OBJ=${UTIL_SRC:.cc=.o} XAPP_OBJ=${XAPP_SRC:.cc=.o} -HWXAPP_OBJ= ${HWXAPP_SRC:.cc=.o} +HWXAPP_OBJ=${HWXAPP_SRC:.cc=.o} MSG_OBJ= ${MSG_SRC:.cc=.o} E2AP_OBJ = $(E2AP_SRC:.cc=.o) @@ -76,4 +76,4 @@ install: hw_xapp_main install -D hw_xapp_main /usr/local/bin/hw_xapp_main clean: - -rm *.o $(ASNSRC)/*.o $(E2APSRC)/*.o $(UTILSRC)/*.o $(E2SMSRC)/*.o $(MSGSRC)/*.o $(SRC)/*.o hw_xapp_main + rm *.o $(ASNSRC)/*.o $(E2APSRC)/*.o $(UTILSRC)/*.o $(E2SMSRC)/*.o $(MSGSRC)/*.o $(SRC)/*.o hw_xapp_main diff --git a/setup/xapp-sm-connector/src/xapp-mgmt/msgs_proc.cc b/setup/xapp-sm-connector/src/xapp-mgmt/msgs_proc.cc index 942be65..f467ba4 100644 --- a/setup/xapp-sm-connector/src/xapp-mgmt/msgs_proc.cc +++ b/setup/xapp-sm-connector/src/xapp-mgmt/msgs_proc.cc @@ -19,13 +19,18 @@ /* * msgs_proc.cc * Created on: 2019 - * Author: Ashwin Shridharan, Shraboni Jana + * Author: Ashwin Shridharan, Shraboni Jana, Leonardo Bonati, Andrea Lacava */ #include "msgs_proc.hpp" #include +extern "C" { + #include "E2SM-KPM-IndicationMessage.h" + #include "E2SM-KPM-IndicationMessage-Format1.h" + #include "RAN-Container.h" +} bool XappMsgHandler::encode_subscription_delete_request(unsigned char* buffer, size_t *buf_len){ @@ -38,7 +43,7 @@ bool XappMsgHandler::encode_subscription_delete_request(unsigned char* buffer, s // generate the delete request pdu bool res = e2ap_sub_req_del.encode_e2ap_subscription(&buffer[0], buf_len, sub_helper); - if(! res){ + if(!res){ mdclog_write(MDCLOG_ERR, "%s, %d: Error encoding subscription delete request pdu. Reason = %s", __FILE__, __LINE__, e2ap_sub_req_del.get_error().c_str()); return false; } @@ -251,6 +256,9 @@ uint8_t procRicIndication(E2AP_PDU_t *e2apMsg, transaction_identifier gnb_id) RICindication_t *ricIndication; RICaction_ToBeSetup_ItemIEs_t *actionItem; + // final payload to send to the ML agent + std::string payload; + printf("\nE2AP : RIC Indication received"); ricIndication = &e2apMsg->choice.initiatingMessage->value.choice.RICindication; @@ -262,29 +270,100 @@ uint8_t procRicIndication(E2AP_PDU_t *e2apMsg, transaction_identifier gnb_id) { case 28: // RIC indication type { - long ricindicationType = ricIndication->protocolIEs.list.array[idx]-> \ - value.choice.RICindicationType; - - printf("ricindicationType %ld\n", ricindicationType); - + long ricindicationType = ricIndication->protocolIEs.list.array[idx]->value.choice.RICindicationType; + printf("RIC IndicationType %ld\n", ricindicationType); break; } case 26: // RIC indication message { - int payload_size = ricIndication->protocolIEs.list.array[idx]-> \ - value.choice.RICindicationMessage.size; + int payload_size = ricIndication->protocolIEs.list.array[idx]->value.choice.RICindicationMessage.size; + char* payload = (char*) calloc(payload_size, sizeof(char)); + memcpy(payload, ricIndication->protocolIEs.list.array[idx]->value.choice.RICindicationMessage.buf, payload_size); + auto *e2SmIndicationMessage = (E2SM_KPM_IndicationMessage_t *) calloc(1, sizeof(E2SM_KPM_IndicationMessage_t)); + ASN_STRUCT_RESET(asn_DEF_E2SM_KPM_IndicationMessage, e2SmIndicationMessage); - char* payload = (char*) calloc(payload_size, sizeof(char)); - memcpy(payload, ricIndication->protocolIEs.list.array[idx]-> \ - value.choice.RICindicationMessage.buf, payload_size); + asn_decode(nullptr, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2SM_KPM_IndicationMessage, + (void **) &e2SmIndicationMessage, ricIndication->protocolIEs.list.array[idx]->value.choice.RICindicationMessage.buf, + ricIndication->protocolIEs.list.array[idx]->value.choice.RICindicationMessage.size); +// xer_fprint(stderr, &asn_DEF_E2SM_KPM_IndicationMessage, e2SmIndicationMessage); - printf("Payload %s\n", payload); + if (e2SmIndicationMessage->present == E2SM_KPM_IndicationMessage_PR_indicationMessage_Format1) { + mdclog_write(MDCLOG_INFO, "Format 1 present\n"); - // send payload to agent - std::string agent_ip = find_agent_ip_from_gnb(gnb_id); - send_socket(payload, agent_ip); + E2SM_KPM_IndicationMessage_Format1_t *e2SmIndicationMessageFormat1 = e2SmIndicationMessage->choice.indicationMessage_Format1; + // extract RAN container, which is where we put our payload + vector serving_cell_payload_vec; + vector neighbor_cell_payload_vec; + for (size_t i = 0; i < e2SmIndicationMessageFormat1->pm_Containers.list.count; i++) { + PM_Containers_List *ranPmContainerList = e2SmIndicationMessageFormat1->pm_Containers.list.array[i]; + RAN_Container *ranco = ranPmContainerList->theRANContainer; + xer_fprint(stderr, &asn_DEF_RAN_Container, ranco); + +// CU_CP_Usage_Report_Per_UE_t *o_cu_cp_ue = &ranco->reportContainer.choice.oCU_CP_UE; +// +// for (int j = 0; j < o_cu_cp_ue->cellResourceReportList.list.count; j++) { +// CU_CP_Usage_Report_CellResourceReportItem_t *cellResourceReportItem = o_cu_cp_ue->cellResourceReportList.list.array[j]; +// for (int z = 0; z < cellResourceReportItem->ueResourceReportList.list.count; z++) { +// OCTET_STRING_t *serving_cell = cellResourceReportItem->ueResourceReportList.list.array[z]->serving_Cell_RF_Type; +// OCTET_STRING_t *neighbor_cell = cellResourceReportItem->ueResourceReportList.list.array[z]->neighbor_Cell_RF; +// +// mdclog_write(MDCLOG_INFO, "Received serving_Cell_RF_Type: %s, neighbor_Cell_RF: %s\n", serving_cell->buf, neighbor_cell->buf); +// serving_cell_payload_vec.push_back(serving_cell->buf); +// neighbor_cell_payload_vec.push_back(neighbor_cell->buf); +// } +// } + } + +// // combine content of vectors, there should be a single entry in the vector anyway +// std::ostringstream serving_cell_payload_oss; +// std::copy(serving_cell_payload_vec.begin(), serving_cell_payload_vec.end() - 1, std::ostream_iterator(serving_cell_payload_oss, ", ")); +// serving_cell_payload_oss << serving_cell_payload_vec.back(); +// std::string serving_cell_payload = serving_cell_payload_oss.str(); +// +// std::ostringstream neighbor_cell_payload_oss; +// std::copy(neighbor_cell_payload_vec.begin(), neighbor_cell_payload_vec.end() - 1, std::ostream_iterator(neighbor_cell_payload_oss, ", ")); +// neighbor_cell_payload_oss << neighbor_cell_payload_vec.back(); +// std::string neighbor_cell_payload = neighbor_cell_payload_oss.str(); +// +// mdclog_write(MDCLOG_INFO, "String conversion: serving_Cell_RF_Type %s, neighbor_Cell_RF: %s\n", serving_cell_payload.c_str(), neighbor_cell_payload.c_str()); +// +// // assemble final payload +// if (serving_cell_payload.length() > 0 && neighbor_cell_payload.length() > 0) { +// payload = serving_cell_payload + ", " + neighbor_cell_payload; +// } +// else if (serving_cell_payload.length() > 0 && neighbor_cell_payload.length() == 0) { +// payload = serving_cell_payload; +// } +// else if (serving_cell_payload.length() == 0 && neighbor_cell_payload.length() > 0) { +// payload = neighbor_cell_payload; +// } +// else { +// payload = ""; +// } +// +// mdclog_write(MDCLOG_INFO, "Payload from RIC Indication message: %s\n", payload.c_str()); + } + else { + mdclog_write(MDCLOG_INFO, "No payload received in RIC Indication message (or was unable to decode received payload\n"); + } + +// add_gnb_to_vector_unique(gnb_id); +// +// if (payload.length() > 0) { +// // add gnb id to payload +// payload += "\n{\"gnb_id\": \"" + std::string(reinterpret_cast(gnb_id)) + "\"}"; +// +// mdclog_write(MDCLOG_INFO, "Sending RIC Indication message to agent\n"); +// send_socket(payload.c_str()); +// } +// else if (payload.length() <= 0) { +// mdclog_write(MDCLOG_INFO, "Received empty payload\n"); +// } +// else { +// mdclog_write(MDCLOG_INFO, "Returned empty agent IP\n"); +// } break; } }