From: Balaji Shankaran Date: Fri, 18 Oct 2019 12:49:08 +0000 (+0530) Subject: Release A code commit X-Git-Tag: 1.0.1~6 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F81%2F1181%2F1;p=o-du%2Fl2.git Release A code commit Change-Id: I12dd8157be204211371a800ea367bd67efc6f03a Signed-off-by: Balaji Shankaran --- diff --git a/README b/README index 71fbd36e8..1ec374403 100644 --- a/README +++ b/README @@ -4,27 +4,33 @@ Directory Structure : a. common : contains individual module's makefile b. config : contains SSI memory configuration c. odu : contains main makefile to generate an executable binary - b. scripts : contains scripts required for compilation 2. 5gnr_opensource/src/ : contains layer specific source code - a. 5gnrmac : MAC source code - b. 5gnrrlc : RLC source code - c. cm : common, environment and interface files - d. cu_app : Stub code for CU - e. du_app : DU application and F1 code - f. mt : wrapper functions over OS + a. 5gnrmac : MAC source code + b. 5gnrrlc : RLC source code + c. cm : common, environment and interface files + d. cu_stub : Stub code for CU + e. du_app : DU application and F1 code + f. mt : wrapper functions over OS g. phy_stub : Stub code for Physical layer - h. rlog : logging module + h. rlog : logging module Pre-requisite for Compilation : 1. Linux 32-bit/64-bit machine 2. GCC version 4.6.3 and above -3. Copy ASN code generated for F1 messages into 5gnr_opensource/src/du_app/F1AP/asn/ -How to Compile : +How to Compile: 1. cd 5gnr_opensource/build/odu -2. To clean and compile: make clean_all odu MACHINE=BIT64 TEXT_LOG=YES -3. To clean only, run command : make clean_all MACHINE=BIT64 TEXT_LOG=YES +2. To clean and compile: + a. DU : make clean_all odu MACHINE=BIT64 TEXT_LOG=YES MODE=FDD + b. CU : make clean_cu cu_stub MACHINE=BIT64 TEXT_LOG=YES MODE=FDD + +How to execute: +1. DU : + a. cd 5gnr_opensource/build/odu/bin/odu + b. ./odu -f ../config/ssi_mem +2. CU : + a. cd 5gnr_opensource/build/odu/bin/cu_stub + b. ./cu_stub -f ../config/ssi_mem -Executable binary generated : 5gnr_opensource/build/odu/obj/odu diff --git a/build/common/asn.mak b/build/common/asn.mak index 7334ab6d9..07b5b81b4 100755 --- a/build/common/asn.mak +++ b/build/common/asn.mak @@ -36,17 +36,9 @@ include $(COM_BUILD_DIR)/compile.mak #-------------------------------------------------------------# #Linker macros #-------------------------------------------------------------# -ifeq ($(BIN_LOG),YES) $(LIB_DIR)/libasn.a:$(C_OBJS) $(C_WO_PED_OBJS) - @echo -e "Creating log DB $(COLOR)$(LOG_DIR)/asnLog.db $(REVERT_COLOR)" - $(Q)cat $(DB_FILES) > $(LOG_DIR)/asnLog.db @echo -e "Creating Archive $(COLOR) $@ $(REVERT_COLOR)" $(Q)ar -cr $(LIB_DIR)/libasn.a $(C_OBJS) $(C_WO_PED_OBJS) -else -$(LIB_DIR)/libasn.a:$(C_OBJS) $(C_WO_PED_OBJS) - @echo -e "Creating Archive $(COLOR) $@ $(REVERT_COLOR)" - $(Q)ar -cr $(LIB_DIR)/libasn.a $(C_OBJS) $(C_WO_PED_OBJS) -endif #-------------------------------------------------------------# #Clean macros diff --git a/build/common/compile.mak b/build/common/compile.mak index de03d83c8..219923183 100644 --- a/build/common/compile.mak +++ b/build/common/compile.mak @@ -88,7 +88,7 @@ ALL_FLAGS=$(SS_FLAGS) $(CMN_FLAGS) $(ENV_FLAGS) $(RVW_FLAGS) $(TENB_FLAGS) $(LNX # compiler options: #C_OPTS+=-g -O3 -pipe -pedantic -Wall -Werror -Wno-comment -Wshadow -C_OPTS+=-g -O3 -pipe -Wall -Wno-comment -Wshadow \ +C_OPTS+=-g -pipe -Wall -Wno-comment -Wshadow \ -Wcast-qual -fno-strict-aliasing -fsigned-char --std=c99 COPTS_WO_PEDANTIC=-g -O3 -pipe -Wall -Werror -Wno-comment -Wshadow \ diff --git a/build/common/cu_stub.mak b/build/common/cu_stub.mak new file mode 100755 index 000000000..673b8753c --- /dev/null +++ b/build/common/cu_stub.mak @@ -0,0 +1,60 @@ +################################################################################ +# Copyright (c) [2017-2019] [Radisys] # +# # +# 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. # +################################################################################ + +# This is makefile for CU STUB + +include ../common/rsys_fancy.mak +include ../common/env.mak +COLOR=$(COLOR_RED) + +SRC_DIR=$(ROOT_DIR)/src/cu_stub/ +C_SRCS=$(wildcard $(SRC_DIR)/*.c) +C_OBJS=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(C_SRCS)) +LOG_FILES=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.i,$(C_SRCS)) +BAK_FILES=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.i.bak,$(C_SRCS)) +DB_FILES =$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.i.db,$(C_SRCS)) + +# prepare the list of common header files +HDR_FILES+=$(wildcard $(CM_DIR)/env*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/gen*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/ssi*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/cm*.[hx]) + + +lib: $(LIB_DIR)/libcu.a +include $(COM_BUILD_DIR)/compile.mak + +I_OPTS+=-I$(ROOT_DIR)/src/mt +I_OPTS+=-I$(ROOT_DIR)/src/du_app/F1AP +I_OPTS+=-I$(ROOT_DIR)/src/du_app/F1AP/asn + +PLTFRM_FLAGS+=-DCU_STUB + +#-------------------------------------------------------------# +#Linker macros +#-------------------------------------------------------------# +$(LIB_DIR)/libcu.a:$(C_OBJS) $(C_WO_PED_OBJS) + @echo -e "Creating Archive $(COLOR) $@ $(REVERT_COLOR)" + $(Q)ar -cr $(LIB_DIR)/libcu.a $(C_OBJS) $(C_WO_PED_OBJS) + +#-------------------------------------------------------------# +#Clean macros +#-------------------------------------------------------------# +clean: + @echo -e "$(COLOR_RED)Cleaning CU STUB$(REVERT_COLOR)" + @echo $(SRC_DIR) $(CM_DIR) + $(Q)\rm -f $(LIB_DIR)/libcu.a $(C_OBJS) $(C_WO_PED_OBJS) $(LOG_FILES) $(BAK_FILES) + diff --git a/build/common/du_app.mak b/build/common/du_app.mak index 4ae71fc01..3b835ab29 100755 --- a/build/common/du_app.mak +++ b/build/common/du_app.mak @@ -41,22 +41,15 @@ include $(COM_BUILD_DIR)/compile.mak I_OPTS+=-I$(ROOT_DIR)/src/mt I_OPTS+=-I$(SRC_DIR)/F1AP +I_OPTS+=-I$(ROOT_DIR)/src/du_app/F1AP/asn #-------------------------------------------------------------# #Linker macros #-------------------------------------------------------------# -ifeq ($(BIN_LOG),YES) $(LIB_DIR)/libduapp.a:$(C_OBJS) $(C_WO_PED_OBJS) - @echo -e "Creating log DB $(COLOR)$(LOG_DIR)/duLog.db $(REVERT_COLOR)" - $(Q)cat $(DB_FILES) > $(LOG_DIR)/duLog.db @echo -e "Creating Archive $(COLOR) $@ $(REVERT_COLOR)" $(Q)ar -cr $(LIB_DIR)/libduapp.a $(C_OBJS) $(C_WO_PED_OBJS) -else -$(LIB_DIR)/libduapp.a:$(C_OBJS) $(C_WO_PED_OBJS) - @echo -e "Creating Archive $(COLOR) $@ $(REVERT_COLOR)" - $(Q)ar -cr $(LIB_DIR)/libduapp.a $(C_OBJS) $(C_WO_PED_OBJS) -endif #-------------------------------------------------------------# #Clean macros diff --git a/build/common/env.mak b/build/common/env.mak index 8e6207acc..700ed6076 100644 --- a/build/common/env.mak +++ b/build/common/env.mak @@ -71,7 +71,7 @@ export LIB_ROOT CM_DIR =$(ROOT_DIR)/src/cm export CM_DIR # Path where the final binaries are created -BIN_DIR =$(BUILD_DIR)/build/obj +BIN_DIR =$(BUILD_DIR)/bin export BIN_DIR # Path where the libraries are packaged and these are used when not built from source EXT_LIB_DIR =$(ROOT_DIR)/lib diff --git a/build/common/f1ap.mak b/build/common/f1ap.mak index 112f01d4a..d45122114 100755 --- a/build/common/f1ap.mak +++ b/build/common/f1ap.mak @@ -41,22 +41,16 @@ include $(COM_BUILD_DIR)/compile.mak I_OPTS+=-I$(ROOT_DIR)/src/mt I_OPTS+=-I$(ROOT_DIR)/src/du_app +I_OPTS+=-I$(ROOT_DIR)/src/cu_stub +I_OPTS+=-I$(ROOT_DIR)/src/du_app/F1AP/asn #-------------------------------------------------------------# #Linker macros #-------------------------------------------------------------# -ifeq ($(BIN_LOG),YES) $(LIB_DIR)/libf1ap.a:$(C_OBJS) $(C_WO_PED_OBJS) - @echo -e "Creating log DB $(COLOR)$(LOG_DIR)/f1apLog.db $(REVERT_COLOR)" - $(Q)cat $(DB_FILES) > $(LOG_DIR)/f1apLog.db @echo -e "Creating Archive $(COLOR) $@ $(REVERT_COLOR)" $(Q)ar -cr $(LIB_DIR)/libf1ap.a $(C_OBJS) $(C_WO_PED_OBJS) -else -$(LIB_DIR)/libf1ap.a:$(C_OBJS) $(C_WO_PED_OBJS) - @echo -e "Creating Archive $(COLOR) $@ $(REVERT_COLOR)" - $(Q)ar -cr $(LIB_DIR)/libf1ap.a $(C_OBJS) $(C_WO_PED_OBJS) -endif #-------------------------------------------------------------# #Clean macros diff --git a/build/common/phy_stub.mak b/build/common/phy_stub.mak index 494c3b125..0f56cc549 100755 --- a/build/common/phy_stub.mak +++ b/build/common/phy_stub.mak @@ -45,17 +45,9 @@ I_OPTS+=-I$(ROOT_DIR)/src/mt #-------------------------------------------------------------# #Linker macros #-------------------------------------------------------------# -ifeq ($(BIN_LOG),YES) -$(LIB_DIR)/libwr.a:$(C_OBJS) $(C_WO_PED_OBJS) - @echo -e "Creating log DB $(COLOR)$(LOG_DIR)/phyStub.db $(REVERT_COLOR)" - $(Q)cat $(DB_FILES) > $(LOG_DIR)/phyStub.db - @echo -e "Creating Archive $(COLOR) $@ $(REVERT_COLOR)" - $(Q)ar -cr $(LIB_DIR)/libphystub.a $(C_OBJS) $(C_WO_PED_OBJS) -else $(LIB_DIR)/libphystub.a:$(C_OBJS) $(C_WO_PED_OBJS) @echo -e "Creating Archive $(COLOR) $@ $(REVERT_COLOR)" $(Q)ar -cr $(LIB_DIR)/libphystub.a $(C_OBJS) $(C_WO_PED_OBJS) -endif #-------------------------------------------------------------# #Clean macros diff --git a/build/config/ssi_mem b/build/config/ssi_mem index 0a439efa4..56bcd46e1 100755 --- a/build/config/ssi_mem +++ b/build/config/ssi_mem @@ -15,7 +15,7 @@ ################################################################################ # Max number of Regions -4 +5 # Number of Buckets and Pools 4 4 # Bucket Idx and Block Size @@ -56,10 +56,20 @@ # Region Idx 3 # Bucket Idx and Number of blocks -0 50 -1 10 -2 10 -3 10 +0 75000 +1 15000 +2 500 +3 1600 +# Heap size +1004800U + +# Region Idx +4 +# Bucket Idx and Number of blocks +0 75000 +1 15000 +2 500 +3 1600 # Heap size -128U +1004800U diff --git a/build/odu/makefile b/build/odu/makefile index 42c00874c..410c3babc 100644 --- a/build/odu/makefile +++ b/build/odu/makefile @@ -70,13 +70,6 @@ endif # macro for output file name and makefile name # -prepare_dirs: - $(Q)echo -e "Preparing directories for build..." - $(Q)mkdir -p $(BUILD_DIR)/obj/odu - $(Q)mkdir -p $(LOG_ROOT)/odu - $(Q)mkdir -p $(LIB_ROOT)/odu - $(Q)echo -e "Directories are successfully prepared" - PLTFRM_FLAGS= -UMSPD -DODU ifeq ($(MODE),TDD) @@ -98,6 +91,7 @@ export BUILD export I_OPTS # Add to the linker options the platform specific components +#L_OPTS+=-lnsl -lrt -lm -lpthread -lsctp L_OPTS+=-lnsl -lrt -lm -lpthread -lsctp # Export some of the flags expected from the command line. @@ -114,14 +108,33 @@ help: @echo -e "******************************************************************" @echo -e "BUILD COMMAND DESCRIPTION " @echo -e "------------------------------------------------------------------" - @echo -e "$(RULE)odu - Builds all components of ODU$(NORM)" + @echo -e "$(RULE)odu - Builds all components of ODU$(NORM)" + @echo -e "$(RULE)cu_stub - Builds all CU Stub$(NORM)" + @echo -e "$(RULE)clean_odu - clean up ODU$(NORM)" + @echo -e "$(RULE)clean_cu - clean up CU Stub$(NORM)" + @echo -e "$(RULE)clean_all - cleanup everything$(NORM)" @echo -e "$(OPTS) options: $(NORM)" @echo -e "$(OPTS) MACHINE=BIT64/BIT32 - Default is BIT32$(NORM)" - @echo -e "$(OPTS) TEXT_LOG=YES - With text logging instead of binary$(NORM)" - @echo -e "$(OPTS) MODE=TDD - If not specified, MODE=FDD$(NORM)" - @echo -e "$(RULE)clean_all tdd cleanup everything$(NORM)" + @echo -e "$(OPTS) MODE=TDD - If not specified, MODE=FDD$(NORM)" @echo -e "******************************************************************" +prepare_dirs: + $(Q)echo -e "Preparing directories for build..." + $(Q)mkdir -p $(BUILD_DIR)/obj/odu + $(Q)mkdir -p $(LIB_ROOT)/odu + $(Q)mkdir -p $(ROOT_DIR)/libs/ + $(Q)mkdir -p $(BIN_DIR)/odu + $(Q)mkdir -p $(BIN_DIR)/config + $(Q)mkdir -p $(ROOT_DIR)/bin + $(Q)echo -e "Directories are successfully prepared" + +prepare_cu_dirs: + $(Q)echo -e "Preparing directories for build..." + $(Q)mkdir -p $(BUILD_DIR)/obj/cu_stub + $(Q)mkdir -p $(LIB_ROOT)/cu_stub + $(Q)mkdir -p $(BIN_DIR)/cu_stub + $(Q)echo -e "Directories are successfully prepared" + du: $(Q)$(MAKE) -f $(COM_BUILD_DIR)/du_app.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/f1ap.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' @@ -133,7 +146,11 @@ du: $(Q)$(MAKE) -f $(COM_BUILD_DIR)/rl.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/phy_stub.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' -clean: +link_du: du + $(Q)$(CC1) -g -o $(OBJ_ROOT)/odu/odu -Wl,-R../lib/:. $(OBJ_ROOT)/odu/*.o\ + $(L_OPTS) -L$(LIB_ROOT)/odu -L$(ROOT_DIR)/libs/odu + +clean_odu: $(Q)$(MAKE) -f $(COM_BUILD_DIR)/du_app.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/f1ap.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' @@ -143,31 +160,54 @@ clean: $(Q)$(MAKE) -f $(COM_BUILD_DIR)/mt.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/rl.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/phy_stub.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)rm -rf $(OBJ_ROOT)/odu/* + $(Q)rm -rf $(LIB_ROOT)/odu/* + $(Q)rm -rf $(BIN_DIR)/odu/* + $(Q)rm -rf $(ROOT_DIR)/bin/odu + $(Q)echo -e "***** ODU CLEAN COMPLETE *****" -clean_all: clean +clean_all: clean_odu clean_cu $(Q)rm -rf $(OBJ_ROOT) $(Q)rm -rf $(LIB_ROOT) $(Q)rm -rf $(LOG_ROOT) - $(Q)rm -rf bin -link_all: du - $(Q)$(CC1) -g -o $(OBJ_ROOT)/odu/odu -Wl,-R../lib/:. $(OBJ_ROOT)/odu/*.o\ - $(L_OPTS) -L$(LIB_ROOT)/odu -L$(ROOT_DIR)/libs/odu - -odu: prepare_dirs copy_build - -copy_build: link_all - $(Q)mkdir -p bin bin/config bin/odu bin/scripts -ifneq ($(TEXT_LOG), YES) - $(Q)cp -f ./obj/odu/rlogapp bin/odu - $(Q)cat $(LOG_ROOT)/odu/*.db > $(LOG_ROOT)/odu/rlog.logdb - $(Q)cp -f $(LOG_ROOT)/odu/rlog.logdb odu/bin/ - $(Q)echo -e "Completed generation of log database" -endif + $(Q)rm -rf $(BIN_DIR) + $(Q)rm -rf $(ROOT_DIR)/bin + $(Q)rm -rf $(ROOT_DIR)/libs + +cu: + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/cu_stub.mak OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/f1ap.mak OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn.mak OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/cm.mak OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/mt.mak OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + +clean_cu: + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/cu_stub.mak clean OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/f1ap.mak clean OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/cm.mak clean OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/mt.mak clean OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)rm -rf $(OBJ_ROOT)/cu_stub/* + $(Q)rm -rf $(LIB_ROOT)/cu_stub/* + $(Q)rm -rf $(BIN_DIR)/cu_stub/* + $(Q)rm -rf $(ROOT_DIR)/bin/cu_stub + $(Q)echo -e "***** CU STUB CLEAN COMPLETE *****" + +link_cu: + $(Q)$(CC1) -g -o $(OBJ_ROOT)/cu_stub/cu_stub -Wl,-R../lib/:. $(OBJ_ROOT)/cu_stub/*.o\ + $(L_OPTS) -L$(LIB_ROOT)/cu_stub -L$(ROOT_DIR)/libs/cu_stub + $(Q)cp -f ./obj/cu_stub/cu_stub ./bin/cu_stub + $(Q)cp -rf ./bin/cu_stub $(ROOT_DIR)/bin/ + $(Q)echo -e "***** CU STUB BUILD COMPLETE *****" + +copy_build: link_du $(Q)cp -f ./obj/odu/odu ./bin/odu -# $(Q)cp -f ../config/wr_cfg_fdd.txt ./odu/bin/wr_cfg.txt -# $(Q)cp -f ../config/ys_cfg.txt ./odu/bin/ys_cfg.txt $(Q)cp -f ../config/ssi_mem ./bin/config - $(Q)cp -rf ./bin $(ROOT_DIR)/bin/ - $(Q)mkdir -p $(ROOT_DIR)/libs/ + $(Q)cp -rf ./bin/odu $(ROOT_DIR)/bin/ + $(Q)cp -rf ./bin/config $(ROOT_DIR)/bin/ $(Q)cp -f ./lib/odu/*.a $(ROOT_DIR)/libs/ $(Q)echo -e "***** BUILD COMPLETE *****" + +odu: prepare_dirs copy_build + +cu_stub: prepare_cu_dirs cu link_cu + diff --git a/build/scripts/build_prereq b/build/scripts/build_prereq deleted file mode 100755 index f266ab0f5..000000000 --- a/build/scripts/build_prereq +++ /dev/null @@ -1,78 +0,0 @@ -################################################################################ -# Copyright (c) [2017-2019] [Radisys] # -# # -# 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. # -################################################################################ - -#! /bin/sh - -function printUsageAndExit(){ - echo "Usage: $0 -m (TDD | FDD) " - echo "" - echo "Mandatory arguments" - echo "===================" - echo " -m, --mode (TDD | FDD) Mode has to be either TDD or FDD" - echo "Optional arguments" - echo "===================" - echo " Desitnation directory where compilation will be done" - echo " or Package or EVAL yes" - echo "" - exit 1; -} - -DIR=$PWD/../.. -MODE= -TARGET_DIRS_FOUND=0 -PKG="NO" -OLD_MODE="TDD" - -while [ "$1" != "" ]; do - case $1 in - -m | --mode ) shift - MODE=$1 - ;; - -PKG ) PKG="YES" - ;; - -h | --help ) printUsageAndExit - ;; - * ) DIR=$1 - TARGET_DIRS_FOUND=`expr $TARGET_DIRS_FOUND + 1` - esac -shift -done - -if [ "$MODE" != "FDD" ] && [ "$MODE" != "TDD" ] -then - echo "Invalid mode specified $MODE" - printUsageAndExit -fi - -SRC_PATH=$DIR/src -BIN_PATH=$DIR/bin - -echo $PWD $SRC_PATH $BIN_PATH - -#******************************************* Implemented Local Build Functionalities ****************************************** -BLD_PATH=$SRC_PATH/../build/ -BuildFileResult=$BLD_PATH/targetbuild.txt -rm -f $BuildFileResult -echo $MODE > $BuildFileResult -#******************************************************************************************************************************* - -#Remvoing unwanted files from the package -find $SRC_PATH -name "*.tmp" -exec rm -f {} \; -find $SRC_PATH -name "*.keep" -exec rm -f {} \; -find $SRC_PATH -name "*.contrib" -exec rm -f {} \; -find $SRC_PATH -name "*.contrib.1" -exec rm -f {} \; -find $SRC_PATH -name "*.contrib.2" -exec rm -f {} \; - diff --git a/build/scripts/makefile b/build/scripts/makefile deleted file mode 100755 index ce6dabc62..000000000 --- a/build/scripts/makefile +++ /dev/null @@ -1,183 +0,0 @@ -################################################################################ -# Copyright (c) [2017-2019] [Radisys] # -# # -# 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. # -################################################################################ - -#********************************************************************20** -# -# Name: gNodeB Sample Application -# -# Type: make file -# -# Desc: Compile, assemble and link product software for -# various configurations. Further comments are -# embedded in the file. -# -# This file supports a variety of environments and -# build targets. The default build target will be the -# portable target for the Linu 2.4.x with GNU C(gcc) -# -# Env: Linux 2.4.x with GNU C (gcc) -# -# BUILD TARGETS: -# -# clean remove all object files -# -# File: makefile -# -#********************************************************************21*/ -#======================================================================= - -# Identify the location our software which is used by rest -# of the build scripts -include ../common/rsys_fancy.mak -include ../common/env.mak - -RULE=$(COLOR_RED) -OPTS=$(COLOR_GREEN) -NORM=$(REVERT_COLOR) - -ROOT_DIR=$(ROOT_DIR_SCRIPTS) -export ROOT_DIR - -# For improved speed -CPUINFO=`cat /proc/cpuinfo | grep processor| wc -l` -ifeq ($(CPUINFO), 1) - NUM_PARALLEL=1 -else - NUM_PARALLEL=$(shell echo $(CPUINFO) - 1 |bc) -endif - -ifeq ($(FAST), 1) - NUM_PARALLEL=$(shell echo $(CPUINFO) + 2 |bc) -endif - -PARALLEL_COMP=-j $(NUM_PARALLEL) -#PARALLEL_COMP=-j 1 - -# Different options to CPUH and CPUL builds -# Other apsects of tool chain set here -# These should be made available appropriately to the builds - -ifeq ($(MACHINE),BIT64) -CC =gcc -m64 -CC_STRIP =strip --strip-all -CC_LINKER =gcc -m64 -CCPP =g++ -m64 -CCPP_LINKER =g++ -m64 -else -CC =gcc -m32 -CC_STRIP =strip --strip-all -CC_LINKER =gcc -m32 -CCPP =g++ -m32 -CCPP_LINKER =g++ -m32 -endif - -CC1= $(CC) -CCPP1= $(CCPP) - -ifeq ($(MODE),TDD) -CNM_ENABLE = YES -else -CNM_ENABLE=NO -endif - -#----------------------------------------------------------------------- -# macro for output file name and makefile name -# -prepare_dirs: - $(Q)echo -e "Preparing directories for build..." - $(Q)mkdir -p $(BUILD_DIR)/obj - $(Q)mkdir -p $(LOG_ROOT) - $(Q)mkdir -p $(LIB_ROOT) - $(Q)echo -e "Directories are successfully prepared" - - -ifeq ($(CNM_ENABLE),YES) -CNM_OPT = -DxENABLE_CNM -DREM_ENABLE -DCNM_DEBUG -else -CNM_OPT = -UENABLE_CNM -UREM_ENABLE -endif - - PLTFRM_FLAGS= -UMSPD $(CNM_OPT) - -ifeq ($(MODE),TDD) - PLTFRM_FLAGS += -DMODE=TDD -endif -CA_ENABLE=YES -ifeq ($(CA_ENABLE),YES) - PLTFRM_FLAGS += -DCA_ENABLE=YES -endif - -# The include options get merged with the options needed by -# the called makefiles and hence we export these to make them -# available to them. -PLTFRM=PAL -BUILD=i686-linux - - -# The called makefiles depend on these macros and these need to be exported -export PLTFRM -export PLTFRM_FLAGS -export BUILD -export I_OPTS - -# Add to the linker options the platform specific components -L_OPTS+=-lnsl -lrt -lm -lpthread - - -# Export some of the flags expected from the command line. -# These macros are made available for the makefiles called from this makefile -export MACHINE -export MODE -export CNM_ENABLE -export CA_ENABLE - -################################################################################################### -# TeNB Compilation Options - Help Menu -################################################################################################### -help: - @echo -e "******************************************************************" - @echo -e "BUILD COMMAND DESCRIPTION " - @echo -e "------------------------------------------------------------------" - @echo -e "$(RULE)tenb - Builds all components of TeNB$(NORM)" - @echo -e "$(OPTS) options: $(NORM)" - @echo -e "$(OPTS) MACHINE=BIT64/BIT32 - Default is BIT32$(NORM)" - @echo -e "$(OPTS) MODE=TDD - If not specified, MODE=FDD$(NORM)" - @echo -e "$(RULE)clean_all tdd cleanup everything$(NORM)" - @echo -e "******************************************************************" - - -enb: - $(Q)$(MAKE) -f $(COM_BUILD_DIR)/kw.mak OBJ_DIR=$(OBJ_ROOT) LIB_DIR=$(LIB_ROOT) LOG_DIR=$(LOG_ROOT) CC='$(CC1)' - $(Q)$(MAKE) -f $(COM_BUILD_DIR)/rg.mak OBJ_DIR=$(OBJ_ROOT) LIB_DIR=$(LIB_ROOT) LOG_DIR=$(LOG_ROOT) CC='$(CC1)' - -clean_all: - $(Q)$(MAKE) -f $(COM_BUILD_DIR)/rg.mak clean OBJ_DIR=$(OBJ_ROOT) LIB_DIR=$(LIB_ROOT) LOG_DIR=$(LOG_ROOT) CC='$(CC2)' - $(Q)$(MAKE) -f $(COM_BUILD_DIR)/kw.mak clean OBJ_DIR=$(OBJ_ROOT) LIB_DIR=$(LIB_ROOT) LOG_DIR=$(LOG_ROOT) CC='$(CC2)' - - -################################################################################################### -# TeNB Compilation -################################################################################################### - -tenb: prepare_dirs copy_build - -copy_build: enb - $(Q)mkdir -p $(ROOT_DIR)/libs/ - $(Q)cp -f ./lib/*.a $(ROOT_DIR)/libs/ - -################################################################################################### -# END OF MAKEFILE -################################################################################################### diff --git a/src/5gnrmac/rg_ex_ms.c b/src/5gnrmac/rg_ex_ms.c index 0c8eb8a2e..b7fc99fc8 100755 --- a/src/5gnrmac/rg_ex_ms.c +++ b/src/5gnrmac/rg_ex_ms.c @@ -449,7 +449,7 @@ Buffer *mBuf; /* message buffer */ { /* The originator of this message is the stack manager, * unpack and go to the respective primitive processing function */ - case ENTSM: + case ENTDUAPP: rgHdlSMEvents(pst, mBuf); break; case ENTNH: diff --git a/src/5gnrrlc/kw_dl_ex_ms.c b/src/5gnrrlc/kw_dl_ex_ms.c index 2cbfe0884..eb12708a9 100755 --- a/src/5gnrrlc/kw_dl_ex_ms.c +++ b/src/5gnrrlc/kw_dl_ex_ms.c @@ -270,7 +270,7 @@ Buffer *mBuf; /* message buffer */ switch(pst->srcEnt) { - case ENTSM: + case ENTDUAPP: { switch(pst->event) { diff --git a/src/5gnrrlc/kw_lmm.c b/src/5gnrrlc/kw_lmm.c index e0750210f..0e4976345 100755 --- a/src/5gnrrlc/kw_lmm.c +++ b/src/5gnrrlc/kw_lmm.c @@ -2621,8 +2621,9 @@ Inst inst; RETVALUE (RFAILED); } gCb = KW_GET_KWCB(inst); +#if 0 cmPrcTmr(&(gCb->kwTqCp), gCb->kwTq, (PFV) kwTmrExpiry); - +#endif RETVALUE(ROK); } /* end of kwActvTmr */ diff --git a/src/5gnrrlc/kw_ul_ex_ms.c b/src/5gnrrlc/kw_ul_ex_ms.c index 414739baf..c72ae37b6 100755 --- a/src/5gnrrlc/kw_ul_ex_ms.c +++ b/src/5gnrrlc/kw_ul_ex_ms.c @@ -240,7 +240,7 @@ Buffer *mBuf; /* message buffer */ switch(pst->srcEnt) { - case ENTSM: + case ENTDUAPP: { switch(pst->event) { diff --git a/src/LICENSES.txt b/src/LICENSES.txt new file mode 100644 index 000000000..a9db3d030 --- /dev/null +++ b/src/LICENSES.txt @@ -0,0 +1,31 @@ +LICENSES.txt + + +Unless otherwise specified, all software contained herein is licensed +under the Apache License, Version 2.0 (the "Software License"); +you may not use this software except in compliance with the Software +License. You may obtain a copy of the Software License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the Software License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the Software License for the specific language governing permissions +and limitations under the Software License. + + + +Unless otherwise specified, all documentation contained herein is licensed +under the Creative Commons License, Attribution 4.0 Intl. (the +"Documentation License"); you may not use this documentation except in +compliance with the Documentation License. You may obtain a copy of the +Documentation License at + +https://creativecommons.org/licenses/by/4.0/ + +Unless required by applicable law or agreed to in writing, documentation +distributed under the Documentation License is distributed on an "AS IS" +BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +implied. See the Documentation License for the specific language governing +permissions and limitations under the Documentation License. diff --git a/src/README b/src/README new file mode 100644 index 000000000..1ec374403 --- /dev/null +++ b/src/README @@ -0,0 +1,36 @@ +Directory Structure : + +1. 5gnr_opensource/build/ : contains files required to compile the code + a. common : contains individual module's makefile + b. config : contains SSI memory configuration + c. odu : contains main makefile to generate an executable binary + +2. 5gnr_opensource/src/ : contains layer specific source code + a. 5gnrmac : MAC source code + b. 5gnrrlc : RLC source code + c. cm : common, environment and interface files + d. cu_stub : Stub code for CU + e. du_app : DU application and F1 code + f. mt : wrapper functions over OS + g. phy_stub : Stub code for Physical layer + h. rlog : logging module + + +Pre-requisite for Compilation : +1. Linux 32-bit/64-bit machine +2. GCC version 4.6.3 and above + +How to Compile: +1. cd 5gnr_opensource/build/odu +2. To clean and compile: + a. DU : make clean_all odu MACHINE=BIT64 TEXT_LOG=YES MODE=FDD + b. CU : make clean_cu cu_stub MACHINE=BIT64 TEXT_LOG=YES MODE=FDD + +How to execute: +1. DU : + a. cd 5gnr_opensource/build/odu/bin/odu + b. ./odu -f ../config/ssi_mem +2. CU : + a. cd 5gnr_opensource/build/odu/bin/cu_stub + b. ./cu_stub -f ../config/ssi_mem + diff --git a/src/build/common/asn.mak b/src/build/common/asn.mak new file mode 100755 index 000000000..07b5b81b4 --- /dev/null +++ b/src/build/common/asn.mak @@ -0,0 +1,50 @@ +################################################################################ +# Copyright (c) [2017-2019] [Radisys] # +# # +# 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. # +################################################################################ + +# This is makefile for ASN + +include ../common/rsys_fancy.mak +include ../common/env.mak +COLOR=$(COLOR_RED) + +SRC_DIR=$(ROOT_DIR)/src/du_app/F1AP/asn +C_SRCS=$(wildcard $(SRC_DIR)/*.c) +C_OBJS=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(C_SRCS)) +LOG_FILES=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.i,$(C_SRCS)) +BAK_FILES=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.i.bak,$(C_SRCS)) +DB_FILES =$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.i.db,$(C_SRCS)) + + +lib: $(LIB_DIR)/libasn.a +include $(COM_BUILD_DIR)/compile.mak + + + +#-------------------------------------------------------------# +#Linker macros +#-------------------------------------------------------------# +$(LIB_DIR)/libasn.a:$(C_OBJS) $(C_WO_PED_OBJS) + @echo -e "Creating Archive $(COLOR) $@ $(REVERT_COLOR)" + $(Q)ar -cr $(LIB_DIR)/libasn.a $(C_OBJS) $(C_WO_PED_OBJS) + +#-------------------------------------------------------------# +#Clean macros +#-------------------------------------------------------------# +clean: + @echo -e "$(COLOR_RED)Cleaning ASN$(REVERT_COLOR)" + @echo $(SRC_DIR) $(CM_DIR) + $(Q)\rm -f $(LIB_DIR)/libasn.a $(C_OBJS) $(C_WO_PED_OBJS) $(LOG_FILES) $(BAK_FILES) + diff --git a/src/build/common/cm.mak b/src/build/common/cm.mak new file mode 100755 index 000000000..18e66068f --- /dev/null +++ b/src/build/common/cm.mak @@ -0,0 +1,90 @@ +################################################################################ +# Copyright (c) [2017-2019] [Radisys] # +# # +# 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. # +################################################################################ + +#-------------------------------------------------------------# +#Makefile for product cm - script generated. +#Only the $(CCcmFLAGS) may be modified. +#-------------------------------------------------------------# +include ../common/rsys_fancy.mak +include ../common/env.mak +COLOR=$(COLOR_GREEN) +SRC_DIR=$(ROOT_DIR)/src/cm + +EG_DIR=$(ROOT_DIR)/src/egtpu +SZ_DIR=$(ROOT_DIR)/src/s1ap +CZ_DIR=$(ROOT_DIR)/src/x2ap + +# TODO - The dependency between layers and CM files should be removed # +I_OPTS+=-I$(EG_DIR) -I$(SZ_DIR) -I$(CZ_DIR) + +#-------------------------------------------------------------# +#User macros (to be modified) +#-------------------------------------------------------------# +#CCrmFLAGS=-DLRM_LWLC -DRMU_LWLC -URMU_NPLC -DRGM_LWLC -DLWLCSMRMMILRM -DLCSMRMMILRM -DSM -DRM_INTF +#CCnlFlags=-DLWLCSMSONILNL -DNLU_LWLC -DLCSMSONILNL -DNLU_TC -DTCSMSONILNL -DNL +#CCcmFLAGS=-DSS_MT_TMR -DSS_FLOAT -DRGR_V1 -DLSZV1 -DVE_SB_SCTP $(CCrmFLAGS) +#CCsmFLAGS=-DHI -DSB -DEG -DWR -DKW -DKW_PDCP -DPJ -DSZ -DYS -DRG -DNH -UVE_SM_LOG_TO_FILE -DRGR_SI_SCH -DTA_NEW -DSI_NEW -DCZ $(CCrmFLAGS) $(CCnlFlags) + +#-------------------------------------------------------------# +# Define all the layers that are part of this binary so that # +# their coupling requirements get defined from envopt.h. # +#-------------------------------------------------------------# +# TODO -DRM has conflict with some cm_atm files. It is temp- # +# orarily removed from this list. # +MOD_FLAGS=-DNH -DWR -DNX -DSZ -DCZ -DSB -DHI -DEG -DSM -DNL -DSM -DRG -DKW -DYS +#This module does not support binary logging so disable it +TEXT_LOG=YES + +#-------------------------------------------------------------# +# Source file list. This needs to be explicitly built as CM +# directory contains files for both CPUL and CPUH. +#-------------------------------------------------------------# +C_SRCS=$(wildcard $(SRC_DIR)/*.c) +C_SRCS:=$(filter-out %cm_ss.c, $(C_SRCS)) +C_SRCS:=$(filter-out %egt_util.c, $(C_SRCS)) +C_SRCS:=$(filter-out %lve.c, $(C_SRCS)) +C_SRCS:=$(filter-out %cm_atm.c, $(C_SRCS)) +C_SRCS:=$(filter-out %_ptsp.c, $(C_SRCS)) +C_SRCS:=$(filter-out %_se_tst.c, $(C_SRCS)) +ifeq ($(PLTFRM),XEON) +C_SRCS:=$(filter-out %mem_wl.c, $(C_SRCS)) +else +C_SRCS:=$(filter-out %mem.c, $(C_SRCS)) +endif + +C_OBJS_WO_LOG=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(C_SRCS)) +HDR_FILES+= $(wildcard $(SRC_DIR)/*.[hx]) + + +lib: $(LIB_DIR)/libcm.a + +include $(COM_BUILD_DIR)/compile.mak + +#-------------------------------------------------------------# +#Linker macros +#-------------------------------------------------------------# +$(LIB_DIR)/libcm.a:$(C_OBJS_WO_LOG) + @echo -e "Creating Archive $(COLOR) $@ $(REVERT_COLOR)" + $(Q)ar -cr $(LIB_DIR)/libcm.a $(C_OBJS) +#-------------------------------------------------------------# +#Clean macros +#-------------------------------------------------------------# +clean: + @echo -e "$(COLOR_RED)Cleaning CPUH CM$(REVERT_COLOR)" + @echo -e "$(COLOR_RED) $(REVERT_COLOR)" + $(Q)\rm -f $(LIB_DIR)/libcm.a $(C_OBJS_WO_LOG) + + diff --git a/src/build/common/compile.mak b/src/build/common/compile.mak new file mode 100644 index 000000000..219923183 --- /dev/null +++ b/src/build/common/compile.mak @@ -0,0 +1,142 @@ +################################################################################ +# Copyright (c) [2017-2019] [Radisys] # +# # +# 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. # +################################################################################ + +#/********************************************************************16** +# +# Name: gNodeB Sample Application +# +# Type: make file +# +# Desc: Compile, assemble and link product software for +# various configurations. Further comments are +# embedded in the file. +# +# This file supports a variety of environments and +# build targets. The default build target will be the +# portable target for the Linu 2.4.x with GNU C(gcc) +# +# Env: Linux 2.4.x with GNU C (gcc) +# +# File: compile.mak +# +#********************************************************************21*/ +#======================================================================= + +STOPTS=-DENB + +Q= +S= +# Check for verbose build +ifneq ($(V),1) + Q:=@ + S:=-s +endif +export Q +export S + +#-DSSINT2 -DSS_TICKS_SEC=100 +# MTSS defines +SS_FLAGS=-DSS -DSS_MT -DSUNOS -DSS_LINUX -UCONRD -UNOFILESYS -USS_DEBG_MEM_CORRUP_LEVEL1 \ + -DSS_TICKS_SEC=100 -USSI_DEBUG_LEVEL1 -USS_LICENSE_CHECK -DANSI -D_GNU_SOURCE\ + -D_REENTRANT -D__EXTENSIONS__ -DDEBUGNOEXIT + +# Flags to be used if text logging is enabled +TEXT_LOGGING = -DRLOG_ENABLE_TEXT_LOGGING -DRLOG_DEBUG_MODE + +ifeq ($(INSTRUMENTATION), YES) +INSTRUMENTATION_FLAGS = -DSS_MEM_CORRUPTION_DETECTION +endif + +# Flags pertaining to the functionality of TeNB are included here +TENB_FLAGS=-DLTERRC_REL9 -DEGTP_U_REL_9 -UMAC_SCH_STATS -USCH_STATS \ + -DTENB_TTI_PERF -DAES -DLTE_RRC_DISSECTOR -DRSYS_WIRESHARK + +ifneq ($(PLTFRM), PAL) +TENB_FLAGS += -DIPV6_SUPPORTED +endif + +ifeq ($(RADIO_CLUSTER), YES) +TENB_FLAGS += -DRADIO_CLUSTER +endif +# Flags that define the broad level functioning of the binary +ENV_FLAGS=-DNO_ERRCLS -DNOERRCHK -DDEBUGP + +RVW_FLAGS=-DCM_PASN_DBG -DLTEMAC_MIMO -DWR_UL_PWR \ + -DREVIEW -DNL + +# Flags that can be removed when everything works. These flags are not included +# in the compilation at the moment. +DEL_FLAGS=-DSS_WL_REGION=1 -DVE_PERF_MEAS -UVE_SUPPORT_RLC_UM_MODE -ULTE_LNX_AFFINITY \ + -DKW_BG_DL_PROC -DKW_BG_UL_PROC -DWR_SB_SCTP -DPHY_ERROR_LOGGING -DWR_DETECT_RLF \ + -USS_MEM_CORRUPTION_DETECTION -DL2_LOGGING_ENABLED -DLTEMAC_DRX -UUSE_PURE \ + -DLTE_MULTIUE -DCMKV2 -DYS_ENB_CFG -DTA_NEW -DTENB_DISABLE_DL_ZBC + +ALL_FLAGS=$(SS_FLAGS) $(CMN_FLAGS) $(ENV_FLAGS) $(RVW_FLAGS) $(TENB_FLAGS) $(LNXENV) + +# compiler options: +#C_OPTS+=-g -O3 -pipe -pedantic -Wall -Werror -Wno-comment -Wshadow +C_OPTS+=-g -pipe -Wall -Wno-comment -Wshadow \ + -Wcast-qual -fno-strict-aliasing -fsigned-char --std=c99 + +COPTS_WO_PEDANTIC=-g -O3 -pipe -Wall -Werror -Wno-comment -Wshadow \ + -Wcast-qual -fno-strict-aliasing -fsigned-char --std=c99 + +COPTS_WO_WERROR=-g -O3 -pipe -pedantic -Wall -Wno-comment -Wshadow \ + -Wcast-qual -fno-strict-aliasing -fsigned-char --std=c99 + +xCPP_OPTS+=-g -pipe -pedantic -Wall -Werror -Wno-comment -Wshadow \ + -Wcast-qual -fno-strict-aliasing -fsigned-char -lstdc++ + +# Include path settings +I_OPTS+=-I$(SRC_DIR) -I$(ROOT_DIR)/src/cm -I$(ROOT_DIR)/src/mt -I$(ROOT_DIR)/src/rlog +I_OPTS+=$(PLTFRM_INCLUDES) +.SUFFIXES:.c .o + +$(C_OBJS):$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(HDR_FILES) + @echo -e "Compiling $(COLOR_RED) $< $(REVERT_COLOR)" + $(Q)$(CC) -c -o $@ $(C_OPTS) $(I_OPTS) $(ALL_FLAGS) $(TEXT_LOGGING) $(MOD_FLAGS) \ + $(PLTFRM_FLAGS) $< + +$(C_WO_WERR_OBJS):$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(HDR_FILES) + @echo -e "Compiling $(COLOR_RED) $< $(REVERT_COLOR)" + $(Q)$(CC) -c -o $@ $(COPTS_WO_WERROR) $(I_OPTS) $(ALL_FLAGS) $(TEXT_LOGGING) $(MOD_FLAGS) \ + $(PLTFRM_FLAGS) $< + +$(C_WO_PED_OBJS):$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(HDR_FILES) + @echo -e "Compiling $(COLOR_RED) $< $(REVERT_COLOR)" + $(Q)$(CC) -c -o $@ $(COPTS_WO_PEDANTIC) $(I_OPTS) $(ALL_FLAGS) $(TEXT_LOGGING) $(MOD_FLAGS) \ + $(PLTFRM_FLAGS) $< + +$(CPP_OBJS):$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp $(HDR_FILES) + @echo -e "Compiling $(COLOR_RED) $< $(REVERT_COLOR)" + $(Q)$(CC) -c -o $@ $(CPP_OPTS) $(I_OPTS) $(ALL_FLAGS) $(TEXT_LOGGING) $(MOD_FLAGS) \ + $(PLTFRM_FLAGS) $< + +$(C_OBJS_WO_LOG):$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(HDR_FILES) + @echo -e "Compiling $(COLOR_RED) $< $(REVERT_COLOR)" + $(Q)$(CC) -c -o $@ $(C_OPTS) $(I_OPTS) $(ALL_FLAGS) $(TEXT_LOGGING) $(MOD_FLAGS) \ + $(PLTFRM_FLAGS) $< + +$(C_WO_PED_OBJS_WO_LOG):$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(HDR_FILES) + @echo -e "Compiling $(COLOR_RED) $< $(REVERT_COLOR)" + $(Q)$(CC) -c -o $@ $(COPTS_WO_PEDANTIC) $(I_OPTS) $(ALL_FLAGS) $(TEXT_LOGGING) $(MOD_FLAGS) \ + $(PLTFRM_FLAGS) $< + +$(CPP_OBJS_WO_LOG):$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp $(HDR_FILES) + @echo -e "Compiling $(COLOR_RED) $< $(REVERT_COLOR)" + $(Q)$(CC) -c -o $@ $(CPP_OPTS) $(I_OPTS) $(ALL_FLAGS) $(TEXT_LOGGING) $(MOD_FLAGS) \ + $(PLTFRM_FLAGS) $< + diff --git a/src/build/common/cu_stub.mak b/src/build/common/cu_stub.mak new file mode 100755 index 000000000..673b8753c --- /dev/null +++ b/src/build/common/cu_stub.mak @@ -0,0 +1,60 @@ +################################################################################ +# Copyright (c) [2017-2019] [Radisys] # +# # +# 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. # +################################################################################ + +# This is makefile for CU STUB + +include ../common/rsys_fancy.mak +include ../common/env.mak +COLOR=$(COLOR_RED) + +SRC_DIR=$(ROOT_DIR)/src/cu_stub/ +C_SRCS=$(wildcard $(SRC_DIR)/*.c) +C_OBJS=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(C_SRCS)) +LOG_FILES=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.i,$(C_SRCS)) +BAK_FILES=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.i.bak,$(C_SRCS)) +DB_FILES =$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.i.db,$(C_SRCS)) + +# prepare the list of common header files +HDR_FILES+=$(wildcard $(CM_DIR)/env*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/gen*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/ssi*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/cm*.[hx]) + + +lib: $(LIB_DIR)/libcu.a +include $(COM_BUILD_DIR)/compile.mak + +I_OPTS+=-I$(ROOT_DIR)/src/mt +I_OPTS+=-I$(ROOT_DIR)/src/du_app/F1AP +I_OPTS+=-I$(ROOT_DIR)/src/du_app/F1AP/asn + +PLTFRM_FLAGS+=-DCU_STUB + +#-------------------------------------------------------------# +#Linker macros +#-------------------------------------------------------------# +$(LIB_DIR)/libcu.a:$(C_OBJS) $(C_WO_PED_OBJS) + @echo -e "Creating Archive $(COLOR) $@ $(REVERT_COLOR)" + $(Q)ar -cr $(LIB_DIR)/libcu.a $(C_OBJS) $(C_WO_PED_OBJS) + +#-------------------------------------------------------------# +#Clean macros +#-------------------------------------------------------------# +clean: + @echo -e "$(COLOR_RED)Cleaning CU STUB$(REVERT_COLOR)" + @echo $(SRC_DIR) $(CM_DIR) + $(Q)\rm -f $(LIB_DIR)/libcu.a $(C_OBJS) $(C_WO_PED_OBJS) $(LOG_FILES) $(BAK_FILES) + diff --git a/src/build/common/du_app.mak b/src/build/common/du_app.mak new file mode 100755 index 000000000..3b835ab29 --- /dev/null +++ b/src/build/common/du_app.mak @@ -0,0 +1,61 @@ +################################################################################ +# Copyright (c) [2017-2019] [Radisys] # +# # +# 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. # +################################################################################ + +# This is makefile for DU APP + +include ../common/rsys_fancy.mak +include ../common/env.mak +COLOR=$(COLOR_RED) + +SRC_DIR=$(ROOT_DIR)/src/du_app/ +C_SRCS=$(wildcard $(SRC_DIR)/*.c) +C_OBJS=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(C_SRCS)) +LOG_FILES=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.i,$(C_SRCS)) +BAK_FILES=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.i.bak,$(C_SRCS)) +DB_FILES =$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.i.db,$(C_SRCS)) + +# prepare the list of common header files +HDR_FILES+=$(wildcard $(CM_DIR)/env*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/gen*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/ssi*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/cm*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/lkw*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/lrg*.[hx]) + + +lib: $(LIB_DIR)/libduapp.a +include $(COM_BUILD_DIR)/compile.mak + +I_OPTS+=-I$(ROOT_DIR)/src/mt +I_OPTS+=-I$(SRC_DIR)/F1AP +I_OPTS+=-I$(ROOT_DIR)/src/du_app/F1AP/asn + + +#-------------------------------------------------------------# +#Linker macros +#-------------------------------------------------------------# +$(LIB_DIR)/libduapp.a:$(C_OBJS) $(C_WO_PED_OBJS) + @echo -e "Creating Archive $(COLOR) $@ $(REVERT_COLOR)" + $(Q)ar -cr $(LIB_DIR)/libduapp.a $(C_OBJS) $(C_WO_PED_OBJS) + +#-------------------------------------------------------------# +#Clean macros +#-------------------------------------------------------------# +clean: + @echo -e "$(COLOR_RED)Cleaning DU APP$(REVERT_COLOR)" + @echo $(SRC_DIR) $(CM_DIR) + $(Q)\rm -f $(LIB_DIR)/libduapp.a $(C_OBJS) $(C_WO_PED_OBJS) $(LOG_FILES) $(BAK_FILES) + diff --git a/src/build/common/env.mak b/src/build/common/env.mak new file mode 100644 index 000000000..700ed6076 --- /dev/null +++ b/src/build/common/env.mak @@ -0,0 +1,82 @@ +################################################################################ +# Copyright (c) [2017-2019] [Radisys] # +# # +# 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. # +################################################################################ + +#*********************************************************************17*/ +# +# Name: gNodeB Sample Application +# +# Type: make file +# +# Desc: Compile, assemble and link product software for +# various configurations. Further comments are +# embedded in the file. +# +# This file supports a variety of environments and +# build targets. The default build target will be the +# portable target for the Linu 2.4.x with GNU C(gcc) +# +# Env: Linux 2.4.x with GNU C (gcc) +# +# File: env.mak +# +#********************************************************************21*/ +#======================================================================= + +STOPTS=-DENB + +Q= +S= +# Check for verbose build +ifneq ($(V),1) + Q:=@ + S:=-s +endif +export Q +export S + +# With the assumption that the make command is run from the directory +# where the makefile is located, PWD fetches the build directory and +# all other directories are generated using the build directory. +BUILD_DIR=$(PWD) +ROOT_DIR_SCRIPTS =$(patsubst %/build/scripts,%,$(BUILD_DIR)) +COM_BUILD_DIR=$(BUILD_DIR)/../common +ROOT_DIR=$(patsubst %/build/odu,%,$(BUILD_DIR)) +export BUILD_DIR +export COM_BUILD_DIR +export ROOT_DIR + +# Path where the .o files or the directories with .o files are located +OBJ_ROOT =$(BUILD_DIR)/obj +export OBJ_ROOT +# Path where the binary logging related files are generated +LOG_ROOT =$(BUILD_DIR)/logdb +export LOG_ROOT +# Path where the libraries are created +LIB_ROOT =$(BUILD_DIR)/lib +export LIB_ROOT +# Path for the common files that are used across multiple layers +CM_DIR =$(ROOT_DIR)/src/cm +export CM_DIR +# Path where the final binaries are created +BIN_DIR =$(BUILD_DIR)/bin +export BIN_DIR +# Path where the libraries are packaged and these are used when not built from source +EXT_LIB_DIR =$(ROOT_DIR)/lib +export EXT_LIB_DIR + +CMENBE2EOPTS += $(RLOG_OPTS_TEXT) + +L_OPTS = -lrt -lm -lpthread -lpcap -lstdc++ -L $(LIB_ROOT) diff --git a/src/build/common/f1ap.mak b/src/build/common/f1ap.mak new file mode 100755 index 000000000..d45122114 --- /dev/null +++ b/src/build/common/f1ap.mak @@ -0,0 +1,62 @@ +################################################################################ +# Copyright (c) [2017-2019] [Radisys] # +# # +# 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. # +################################################################################ + +# This is makefile for DU APP + +include ../common/rsys_fancy.mak +include ../common/env.mak +COLOR=$(COLOR_RED) + +SRC_DIR=$(ROOT_DIR)/src/du_app/F1AP +C_SRCS=$(wildcard $(SRC_DIR)/*.c) +C_OBJS=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(C_SRCS)) +LOG_FILES=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.i,$(C_SRCS)) +BAK_FILES=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.i.bak,$(C_SRCS)) +DB_FILES =$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.i.db,$(C_SRCS)) + +# prepare the list of common header files +HDR_FILES+=$(wildcard $(CM_DIR)/env*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/gen*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/ssi*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/cm*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/lkw*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/lrg*.[hx]) + + +lib: $(LIB_DIR)/libf1ap.a +include $(COM_BUILD_DIR)/compile.mak + +I_OPTS+=-I$(ROOT_DIR)/src/mt +I_OPTS+=-I$(ROOT_DIR)/src/du_app +I_OPTS+=-I$(ROOT_DIR)/src/cu_stub +I_OPTS+=-I$(ROOT_DIR)/src/du_app/F1AP/asn + + +#-------------------------------------------------------------# +#Linker macros +#-------------------------------------------------------------# +$(LIB_DIR)/libf1ap.a:$(C_OBJS) $(C_WO_PED_OBJS) + @echo -e "Creating Archive $(COLOR) $@ $(REVERT_COLOR)" + $(Q)ar -cr $(LIB_DIR)/libf1ap.a $(C_OBJS) $(C_WO_PED_OBJS) + +#-------------------------------------------------------------# +#Clean macros +#-------------------------------------------------------------# +clean: + @echo -e "$(COLOR_RED)Cleaning F1AP$(REVERT_COLOR)" + @echo $(SRC_DIR) $(CM_DIR) + $(Q)\rm -f $(LIB_DIR)/libf1ap.a $(C_OBJS) $(C_WO_PED_OBJS) $(LOG_FILES) $(BAK_FILES) + diff --git a/src/build/common/kw.mak b/src/build/common/kw.mak new file mode 100644 index 000000000..cb44684ce --- /dev/null +++ b/src/build/common/kw.mak @@ -0,0 +1,54 @@ +################################################################################ +# Copyright (c) [2017-2019] [Radisys] # +# # +# 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. # +################################################################################ + +##-------------------------------------------------------------# +##Makefile for product ib - script generated. +#Only the $(CCib) may be modified. +#-------------------------------------------------------------# +include ../common/rsys_fancy.mak +include ../common/env.mak + +SRC_DIR=$(ROOT_DIR)/src/5gnrrlc + +#Prepare source file list +C_SRCS=$(wildcard $(SRC_DIR)/*.c) + +#prepare the list of object files and RLOG related files +C_OBJS=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(C_SRCS)) + +#-------------------------------------------------------------# +#User macros (to be modified) +#-------------------------------------------------------------# +MOD_FLAGS=-DRG -DYS -DKW -DLCRGU -DLCKWULUDX -DLCUDX -DLWLCKWULUDX -UPJ + +#-------------------------------------------------------------# +#Linker macros +#-------------------------------------------------------------# + +lib: $(LIB_DIR)/libkw.a +include $(COM_BUILD_DIR)/compile.mak + +$(LIB_DIR)/libkw.a:$(C_OBJS) + @echo -e "Creating Archive $(COLOR) $@ $(REVERT_COLOR)" + $(Q)ar -cr $(LIB_DIR)/libkw.a $(C_OBJS) + +#-------------------------------------------------------------# +#Clean macros +#-------------------------------------------------------------# +clean: + @echo -e "$(COLOR_RED)Cleaning RLC$(REVERT_COLOR)" + $(Q)\rm -f $(LIB_DIR)/libkw.a $(C_OBJS) + diff --git a/src/build/common/mt.mak b/src/build/common/mt.mak new file mode 100755 index 000000000..f22a83e39 --- /dev/null +++ b/src/build/common/mt.mak @@ -0,0 +1,257 @@ +################################################################################ +# Copyright (c) [2017-2019] [Radisys] # +# # +# 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. # +################################################################################ +# +##-------------------------------------------------------------# +#Makefile for product mt - script generated. +#Only the $(CCmtFLAGS) may be modified. +#-------------------------------------------------------------# +include ../common/rsys_fancy.mak +include ../common/env.mak + +#-------------------------------------------------------------# +#User macros (to be modified) +#-------------------------------------------------------------# + +CCmtFLAGS=-DSS_MT_TMR -USS_LOGGER_SUPPORT -DEGTP_U#<---Insert mt specific defines here + +#-------------------------------------------------------------# +#File/Obj macros +#-------------------------------------------------------------# +SRC_DIR=$(ROOT_DIR)/src/mt + +C_SRCS=$(wildcard $(SRC_DIR)/*.c) +C_SRCS:=$(filter-out %ss_acc.c,$(C_SRCS)) +C_SRCS:=$(filter-out %mt_tst.c,$(C_SRCS)) +C_SRCS:=$(filter-out %sol.c, $(C_SRCS)) +C_SRCS:=$(filter-out %diag.c, $(C_SRCS)) +C_SRCS:=$(filter-out %mtsp.c, $(C_SRCS)) +C_SRCS:=$(filter-out %tskent.c, $(C_SRCS)) + +ifeq ($(PLTFRM),PAL) +C_SRCS:=$(filter-out %4gmx.c, $(C_SRCS)) +endif +ifneq ($(BOARD), T33H) +C_SRCS:=$(filter-out %t33.c, $(C_SRCS)) +endif + +C_OBJS_WO_LOG=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(C_SRCS)) +I_OPTS+=-isystem $(BSPPATH)/usr/include/brcm +I_OPTS+=-I$(SRC_DIR)/security + + +#mtSRCS= \ +# $(IN_DIR)/mt_id.c\ +# $(IN_DIR)/mt_ss.c\ +# $(IN_DIR)/ss_gen.c\ +# $(IN_DIR)/ss_id.c\ +# $(IN_DIR)/ss_mem.c\ +# $(IN_DIR)/ss_msg.c\ +# $(IN_DIR)/ss_pack.c\ +# $(IN_DIR)/ss_queue.c\ +# $(IN_DIR)/ss_strm.c\ +# $(IN_DIR)/ss_task.c\ +# $(IN_DIR)/ss_drvr.c\ +# $(IN_DIR)/ss_timer.c\ +# $(IN_DIR)/ss_diag.c +#ifeq (${BLDENV},lnx_e2e_ms) +# mtSRCS+=$(IN_DIR)/mt_4gmx.c +#else +#ifeq (${BLDENV},lnx_ms_withoutdiag) +# mtSRCS+=$(IN_DIR)/mt_4gmx.c +#endif +#endif +#ifeq ($(BLDENV),lnx_e2e_bc) +# mtSRCS+=$(IN_DIR)/bc_cpu_overload.c +# mtSRCS+=$(IN_DIR)/bc_icpu_snd.c +# mtSRCS+=$(IN_DIR)/bc_icpu_rcv.c +# mtSRCS+=$(IN_DIR)/bc_cpu_init.c +# mtSRCS+=$(IN_DIR)/rb_log.c +# mtSRCS+=$(IN_DIR)/ss_rbuf.c +# mtSRCS+=$(IN_DIR)/bc_free_mgr.c +# mtSRCS+=$(IN_DIR)/bc_batch_mgr.c +#else +# mtSRCS+=$(IN_DIR)/bc_cpu_overload.c +# mtSRCS+=$(IN_DIR)/bc_icpu_snd.c +# mtSRCS+=$(IN_DIR)/bc_icpu_rcv.c +# mtSRCS+=$(IN_DIR)/bc_cpu_init.c +# mtSRCS+=$(IN_DIR)/rb_log.c +# mtSRCS+=$(IN_DIR)/ss_rbuf.c +# mtSRCS+=$(IN_DIR)/bc_free_mgr.c +# mtSRCS+=$(IN_DIR)/bc_batch_mgr.c +#endif +# +#mtOBJS= \ +# $(OUT_DIR)/mt_id.$(OBJ)\ +# $(OUT_DIR)/mt_ss.$(OBJ)\ +# $(OUT_DIR)/ss_gen.$(OBJ)\ +# $(OUT_DIR)/ss_id.$(OBJ)\ +# $(OUT_DIR)/ss_mem.$(OBJ)\ +# $(OUT_DIR)/ss_msg.$(OBJ)\ +# $(OUT_DIR)/ss_pack.$(OBJ)\ +# $(OUT_DIR)/ss_queue.$(OBJ)\ +# $(OUT_DIR)/ss_strm.$(OBJ)\ +# $(OUT_DIR)/ss_task.$(OBJ)\ +# $(OUT_DIR)/ss_drvr.$(OBJ)\ +# $(OUT_DIR)/ss_timer.$(OBJ)\ +# $(OUT_DIR)/ss_diag.$(OBJ) +#ifeq (${BLDENV},lnx_e2e_ms) +# mtOBJS+=$(OUT_DIR)/mt_4gmx.$(OBJ) +#else +#ifeq (${BLDENV},lnx_ms_withoutdiag) +# mtOBJS+=$(OUT_DIR)/mt_4gmx.$(OBJ) +#endif +#endif +#ifeq ($(BLDENV),lnx_e2e_bc) +# mtOBJS+=$(OUT_DIR)/bc_cpu_overload.$(OBJ) +# mtOBJS+=$(OUT_DIR)/bc_icpu_snd.$(OBJ) +# mtOBJS+=$(OUT_DIR)/bc_icpu_rcv.$(OBJ) +# mtOBJS+=$(OUT_DIR)/bc_cpu_init.$(OBJ) +# mtOBJS+=$(OUT_DIR)/rb_log.$(OBJ) +# mtOBJS+=$(OUT_DIR)/ss_rbuf.$(OBJ) +# mtOBJS+=$(OUT_DIR)/bc_free_mgr.$(OBJ) +# mtOBJS+=$(OUT_DIR)/bc_batch_mgr.$(OBJ) +#else +# mtOBJS+=$(OUT_DIR)/bc_cpu_overload.$(OBJ) +# mtOBJS+=$(OUT_DIR)/bc_icpu_snd.$(OBJ) +# mtOBJS+=$(OUT_DIR)/bc_icpu_rcv.$(OBJ) +# mtOBJS+=$(OUT_DIR)/bc_cpu_init.$(OBJ) +# mtOBJS+=$(OUT_DIR)/rb_log.$(OBJ) +# mtOBJS+=$(OUT_DIR)/ss_rbuf.$(OBJ) +# mtOBJS+=$(OUT_DIR)/bc_free_mgr.$(OBJ) +# mtOBJS+=$(OUT_DIR)/bc_batch_mgr.$(OBJ) +#endif + +HDR_FILES+=$(wildcard $(CM_DIR)/env*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/gen*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/ssi*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/cm*.[hx]) +HDR_FILES+=$(wildcard $(SRC_DIR)/*.[hx]) +HDR_FILES+=$(wildcard $(SRC_DIR)/*.[hx]) + +#ifeq ($(BLDENV),lnx_e2e_bc) +# MT_INC+=$(IN_DIR)/bc_icpu.h +# MT_INC+=$(IN_DIR)/bc_cpu_init.h +# MT_INC+=$(IN_DIR)/rb_log.x +# MT_INC+=$(IN_DIR)/rb_log.h +# MT_INC+=$(IN_DIR)/bc_cpu_overload.h +#else +# MT_INC+=$(IN_DIR)/bc_icpu.h +# MT_INC+=$(IN_DIR)/bc_cpu_init.h +# MT_INC+=$(IN_DIR)/rb_log.x +# MT_INC+=$(IN_DIR)/rb_log.h +# MT_INC+=$(IN_DIR)/bc_cpu_overload.h +#endif + +#ALL_INC=$(MT_INC) $(CM_INC) + +#-------------------------------------------------------------# +#Compiler macros +#-------------------------------------------------------------# +#Compiler macros +#-------------------------------------------------------------# +#$(OUT_DIR)/mt_id.$(OBJ): $(IN_DIR)/mt_id.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/mt_id.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/mt_id.c +#$(OUT_DIR)/mt_ss.$(OBJ): $(IN_DIR)/mt_ss.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/mt_ss.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/mt_ss.c +#ifeq (${BLDENV},lnx_e2e_ms) +#$(OUT_DIR)/mt_4gmx.$(OBJ): $(IN_DIR)/mt_4gmx.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/mt_4gmx.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/mt_4gmx.c +#else +#ifeq (${BLDENV},lnx_ms_withoutdiag) +#$(OUT_DIR)/mt_4gmx.$(OBJ): $(IN_DIR)/mt_4gmx.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/mt_4gmx.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/mt_4gmx.c +#endif +#endif +# +#ifeq ($(BLDENV),lnx_e2e_bc) +#$(OUT_DIR)/bc_cpu_overload.$(OBJ): $(IN_DIR)/bc_cpu_overload.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/bc_cpu_overload.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/bc_cpu_overload.c +#$(OUT_DIR)/bc_icpu_snd.$(OBJ): $(IN_DIR)/bc_icpu_snd.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/bc_icpu_snd.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/bc_icpu_snd.c +#$(OUT_DIR)/bc_icpu_rcv.$(OBJ): $(IN_DIR)/bc_icpu_rcv.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/bc_icpu_rcv.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/bc_icpu_rcv.c +#$(OUT_DIR)/bc_cpu_init.$(OBJ): $(IN_DIR)/bc_cpu_init.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/bc_cpu_init.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/bc_cpu_init.c +#$(OUT_DIR)/rb_log.$(OBJ): $(IN_DIR)/rb_log.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/rb_log.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/rb_log.c +#$(OUT_DIR)/ss_rbuf.$(OBJ): $(IN_DIR)/ss_rbuf.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/ss_rbuf.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/ss_rbuf.c +#$(OUT_DIR)/bc_free_mgr.$(OBJ): $(IN_DIR)/bc_free_mgr.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/bc_free_mgr.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/bc_free_mgr.c +#$(OUT_DIR)/bc_batch_mgr.$(OBJ): $(IN_DIR)/bc_batch_mgr.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/bc_batch_mgr.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/bc_batch_mgr.c +#else +#$(OUT_DIR)/bc_cpu_overload.$(OBJ): $(IN_DIR)/bc_cpu_overload.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/bc_cpu_overload.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/bc_cpu_overload.c +#$(OUT_DIR)/bc_icpu_snd.$(OBJ): $(IN_DIR)/bc_icpu_snd.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/bc_icpu_snd.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/bc_icpu_snd.c +#$(OUT_DIR)/bc_icpu_rcv.$(OBJ): $(IN_DIR)/bc_icpu_rcv.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/bc_icpu_rcv.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/bc_icpu_rcv.c +#$(OUT_DIR)/bc_cpu_init.$(OBJ): $(IN_DIR)/bc_cpu_init.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/bc_cpu_init.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/bc_cpu_init.c +#$(OUT_DIR)/rb_log.$(OBJ): $(IN_DIR)/rb_log.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/rb_log.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/rb_log.c +#$(OUT_DIR)/ss_rbuf.$(OBJ): $(IN_DIR)/ss_rbuf.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/ss_rbuf.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/ss_rbuf.c +#$(OUT_DIR)/bc_free_mgr.$(OBJ): $(IN_DIR)/bc_free_mgr.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/bc_free_mgr.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/bc_free_mgr.c +#$(OUT_DIR)/bc_batch_mgr.$(OBJ): $(IN_DIR)/bc_batch_mgr.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/bc_batch_mgr.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/bc_batch_mgr.c +#endif +#$(OUT_DIR)/ss_drvr.$(OBJ): $(IN_DIR)/ss_drvr.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/ss_drvr.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/ss_drvr.c +#$(OUT_DIR)/ss_gen.$(OBJ): $(IN_DIR)/ss_gen.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/ss_gen.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/ss_gen.c +#$(OUT_DIR)/ss_id.$(OBJ): $(IN_DIR)/ss_id.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/ss_id.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/ss_id.c +#$(OUT_DIR)/ss_mem.$(OBJ): $(IN_DIR)/ss_mem.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/ss_mem.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/ss_mem.c +#$(OUT_DIR)/ss_msg.$(OBJ): $(IN_DIR)/ss_msg.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/ss_msg.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/ss_msg.c +#$(OUT_DIR)/ss_pack.$(OBJ): $(IN_DIR)/ss_pack.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/ss_pack.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/ss_pack.c +#$(OUT_DIR)/ss_queue.$(OBJ): $(IN_DIR)/ss_queue.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/ss_queue.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/ss_queue.c +#$(OUT_DIR)/ss_rtr.$(OBJ): $(IN_DIR)/ss_rtr.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/ss_rtr.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/ss_rtr.c +#$(OUT_DIR)/ss_strm.$(OBJ): $(IN_DIR)/ss_strm.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/ss_strm.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/ss_strm.c +##$(OUT_DIR)/ss_task.$(OBJ): $(IN_DIR)/ss_task.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/ss_task.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/ss_task.c +#$(OUT_DIR)/ss_timer.$(OBJ): $(IN_DIR)/ss_timer.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/ss_timer.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/ss_timer.c +#$(OUT_DIR)/ss_diag.$(OBJ): $(IN_DIR)/ss_diag.c $(ALL_INC) +# $(CC) -c -o $(OUT_DIR)/ss_diag.o $(COPTS) $(IOPTS) $(POPTS) $(CCmtFLAGS) $(IN_DIR)/ss_diag.c +# + +lib:$(LIB_DIR)/libmt.a + +include $(COM_BUILD_DIR)/compile.mak + +#-------------------------------------------------------------# +#Linker macros +#-------------------------------------------------------------# +$(LIB_DIR)/libmt.a:$(C_OBJS_WO_LOG) + $(Q)ar -cr $(LIB_DIR)/libmt.a $(C_OBJS_WO_LOG) + +#-------------------------------------------------------------# +#Clean macros +#-------------------------------------------------------------# +clean: + @echo -e "$(COLOR_RED)Cleaning SSI from $(OBJ_DIR)$(REVERT_COLOR)" + $(Q)\rm -f $(LIB_DIR)/libmt.a $(C_OBJS_WO_LOG) + + diff --git a/src/build/common/phy_stub.mak b/src/build/common/phy_stub.mak new file mode 100755 index 000000000..0f56cc549 --- /dev/null +++ b/src/build/common/phy_stub.mak @@ -0,0 +1,60 @@ +################################################################################ +# Copyright (c) [2017-2019] [Radisys] # +# # +# 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. # +################################################################################ + +# This is makefile for PHY Stub + +include ../common/rsys_fancy.mak +include ../common/env.mak +COLOR=$(COLOR_RED) + +SRC_DIR=$(ROOT_DIR)/src/phy_stub/ +C_SRCS=$(wildcard $(SRC_DIR)/*.c) +C_OBJS=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(C_SRCS)) +LOG_FILES=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.i,$(C_SRCS)) +BAK_FILES=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.i.bak,$(C_SRCS)) +DB_FILES =$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.i.db,$(C_SRCS)) + +# prepare the list of common header files +HDR_FILES+=$(wildcard $(CM_DIR)/env*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/gen*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/ssi*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/cm*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/rg*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/lrg*.[hx]) + + +lib: $(LIB_DIR)/libphystub.a +include $(COM_BUILD_DIR)/compile.mak + +I_OPTS+=-I$(ROOT_DIR)/src/mt + + +#-------------------------------------------------------------# +#Linker macros +#-------------------------------------------------------------# +$(LIB_DIR)/libphystub.a:$(C_OBJS) $(C_WO_PED_OBJS) + @echo -e "Creating Archive $(COLOR) $@ $(REVERT_COLOR)" + $(Q)ar -cr $(LIB_DIR)/libphystub.a $(C_OBJS) $(C_WO_PED_OBJS) + +#-------------------------------------------------------------# +#Clean macros +#-------------------------------------------------------------# +clean: + @echo $(OAM_ENABLE) + @echo -e "$(COLOR_RED)Cleaning PHY stub$(REVERT_COLOR)" + @echo $(SRC_DIR) $(CM_DIR) + $(Q)\rm -f $(LIB_DIR)/libphystub.a $(C_OBJS) $(C_WO_PED_OBJS) $(LOG_FILES) $(BAK_FILES) + diff --git a/src/build/common/rg.mak b/src/build/common/rg.mak new file mode 100644 index 000000000..4d0094cd7 --- /dev/null +++ b/src/build/common/rg.mak @@ -0,0 +1,71 @@ +################################################################################ +# Copyright (c) [2017-2019] [Radisys] # +# # +# 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. # +################################################################################ + +##-------------------------------------------------------------# +#Makefile for product RG - script generated. +#-------------------------------------------------------------# +include ../common/rsys_fancy.mak +include ../common/env.mak +COLOR=$(COLOR_GREEN) + +SRC_DIR=$(ROOT_DIR)/src/5gnrmac + +# prepare the list of common header files +HDR_FILES+=$(wildcard $(CM_DIR)/env*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/gen*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/ssi*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/cm*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/crg.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/lrg*.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/rgr.[hx]) +HDR_FILES+=$(wildcard $(CM_DIR)/rgm.[hx]) + +# Add the product specific header files +HDR_FILES+= $(wildcard $(SRC_DIR)/*.[hx]) + +#prepare the list of source files +C_SRCS=$(wildcard $(SRC_DIR)/*.c) +C_SRCS:=$(filter-out $(SRC_DIR)/rg_sch%, $(C_SRCS)) + +#prepare the list of object files and RLOG related files +C_OBJS=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(C_SRCS)) + +#-------------------------------------------------------------# +#User macros (to be modified) +#-------------------------------------------------------------# +# Including RG_PHASE2_SCHED for supporting more than one schedulers +# supported by mac +# TODO: make it define for LTEMAC_MIMO and remove it from envopt.h +MOD_FLAGS=-DRGM_LC -DRGM_LWLC -USM -URG_DEBUG -DxRG_PHASE2_SCHED -DxRGR_V1 \ + -DRG_UL_DELTA=2 -ULTEMAC_DLUE_TMGOPTMZ -UTENB_SPLIT_ARCH -DRG -ULTEMAC_MIMO + +lib:$(LIB_DIR)/librg.a +include $(COM_BUILD_DIR)/compile.mak + +#-------------------------------------------------------------# +#Linker macros +#-------------------------------------------------------------# +$(LIB_DIR)/librg.a:$(C_OBJS) + @echo -e "Creating Archive $(COLOR) $@ $(REVERT_COLOR)" + $(Q)ar -cr $(LIB_DIR)/librg.a $(C_OBJS) + +#-------------------------------------------------------------# +#Clean macros +#-------------------------------------------------------------# +clean: + @echo -e "$(COLOR_RED)Cleaing MAC$(REVERT_COLOR)" + $(Q)\rm -f $(LIB_DIR)/librg.a $(C_OBJS) + diff --git a/src/build/common/rl.mak b/src/build/common/rl.mak new file mode 100755 index 000000000..1212f6ce1 --- /dev/null +++ b/src/build/common/rl.mak @@ -0,0 +1,80 @@ +################################################################################ +# Copyright (c) [2017-2019] [Radisys] # +# # +# 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. # +################################################################################ +# +include ../common/rsys_fancy.mak +COLOR=$(COLOR_GREEN) + +#-------------------------------------------------------------# +#Makefile for RL +#-------------------------------------------------------------# +MOD_FLAGS=-UUSE_RLOG_DATA_TYPES + +SRC_DIR=$(ROOT_DIR)/src/rlog +CM_DIR =$(ROOT_DIR)/src/cm + +# Product sources------------------------------------------------------- +C_SRCS=$(SRC_DIR)/rl_rlog.c $(SRC_DIR)/rl_common.c $(SRC_DIR)/rl_platform.c $(SRC_DIR)/rl_soc.c +rlPOSTPROCSRCS=$(SRC_DIR)/rl_common.c $(SRC_DIR)/rl_postproc.cpp + +# Product includes ------------------------------------------------------- +HDR_FILES=$(SRC_DIR)/rl_common.h $(SRC_DIR)/rl_rlog.h $(SRC_DIR)/rl_interface.h \ + $(SRC_DIR)/rl_platform.h +HDR_FILES+=$(wildcard $(CM_DIR)/*.) + +# Object files ------------------------------------ +C_OBJS_WO_LOG=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(C_SRCS)) + +#-------------------------------------------------------------# +#Makefile for RL +#-------------------------------------------------------------# +rlPOSTPROCOPTS=-DSS_LINUX -DUSE_RLOG_DATA_TYPES + +#-------------------------------------------------------------# +#-------------------------------------------------------------# +#Compiler macros +#-------------------------------------------------------------# +#$(OBJ_DIR)/rl_rlog.$(OBJ):$(rlSRCS) +# @echo -e "Compiling $(COLOR) $< $(REVERT_COLOR)..." +# $(Q) $(CC) -c $(COPTS) $(IOPTS) $(POPTS) $(IN_DIR)/rl_rlog.$(SRC) -rdynamic -o $(OBJ_DIR)/rl_rlog.$(OBJ) +#$(OBJ_DIR)/rl_common.$(OBJ):$(rlSRCS) +# @echo -e "Compiling $(COLOR) $< $(REVERT_COLOR)..." +# $(Q) $(CC) -c $(COPTS) $(IOPTS) $(POPTS) $(IN_DIR)/rl_common.$(SRC) -o $(OBJ_DIR)/rl_common.$(OBJ) +#$(OBJ_DIR)/rl_platform.$(OBJ):$(rlSRCS) +# @echo -e "Compiling $(COLOR) $< $(REVERT_COLOR)..." +# $(Q) $(CC) -c $(COPTS) $(IOPTS) $(POPTS) $(IN_DIR)/rl_platform.$(SRC) -o $(OBJ_DIR)/rl_platform.$(OBJ) + +lib:$(LIB_DIR)/librl.a + +include $(COM_BUILD_DIR)/compile.mak + +#-------------------------------------------------------------# +#Linker macros +#-------------------------------------------------------------# +$(LIB_DIR)/librl.a:$(C_OBJS_WO_LOG) + @echo -e "Creating Archive $(COLOR) $@ $(REVERT_COLOR)" + $(Q)$(AR) -cr $(OBJ_DIR)/librl.a $(C_OBJS) + @echo -e "$(COLOR)Building the binary logging post processor$(REVERT_COLOR)" + $(Q)g++ $(rlPOSTPROCOPTS) $(rlPOSTPROCSRCS) -o $(OBJ_DIR)/rlogapp + +#-------------------------------------------------------------# +#Clean macros +#-------------------------------------------------------------# +clean: + @echo -e "$(COLOR_RED)Clearing binary logging$(REVERT_COLOR)" + $(Q)rm -f $(LIB_DIR)/librl.a $(C_OBJS_WO_LOG) + + + diff --git a/src/build/common/rlog.pl b/src/build/common/rlog.pl new file mode 100755 index 000000000..a3643c8fd --- /dev/null +++ b/src/build/common/rlog.pl @@ -0,0 +1,244 @@ +################################################################################ +# Copyright (c) [2017-2019] [Radisys] # +# # +# 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. # +################################################################################ + +#!/usr/bin/perl -w +#use strict; +use POSIX; +use Time::HiRes qw(usleep); +local $| = 1; + +#if($ARGV[1] eq "INTEL") { +# if ($#ARGV == 3 ) { +# print "Make DB Script ERROR: More than two arument is passed to script\n"; +# exit; +# } +#} else { +# if ($#ARGV == 4 ) { +# print "Make DB Script ERROR: More than two arument is passed to script\n"; +# exit; +# } +#} +########################################################### +# Reading File name and creating DB file name. +# my $OrgFileName = $ARGV[0]; # Copied File name in to a varible. +# my @spltname = split('/', $OrgFileName); +my $numelem = $#spltname; +my $fileName = $spltname[$numelem]; + +#variable declaration. +my @arryOfLogId = 0; +my $moduleId = 0; +my $fileId = 0; +my $moduleName = 0; +my $lineNum = 0; +my $test = 0; +my $printString = 0; +my @varibles = 0; +my $logLvl = 0; +my $splArgName = 0; +my $splArgVal = 0; +my $tokenID = 0; +my $hexTokenID = 0; +my $CStart = 0; +my $CPattern = 0; +my $CVarible = 0; +my $CString = 0; +my $CEnd = 0; +my $NewVarible = 0; +my $delimit = '%8ld'; +#my $isModuleNameFound = 0; +my $greatestTokenID = 0; +my $DBFILE; +my $tmpfile; +my $tmpfile1; +my $dbentry; + +########################################################### +# Declare the subroutines +sub trim($); +sub ltrim($); +sub rtrim($); +sub findDup; + +# Perl trim function to remove whitespace from the start and end of the string +sub trim($) { + my $string = shift; + $string =~ s/^\s+//; + $string =~ s/\s+$//; + return $string; +} + +# Left trim function to remove leading whitespace +sub ltrim($) { + my $string = shift; + $string =~ s/^\s+//; + return $string; +} + +# Right trim function to remove trailing whitespace +sub rtrim($) { + my $string = shift; + $string =~ s/\s+$//; + return $string; +} + +my $prj = $ARGV[0]; +my $tmp = $ARGV[0]; +my @dbFilesDir = ($ARGV[2]); + +# Process the file and generate the log DB for the file +#print "Arguments passed are ", @ARGV, "\n"; +#print "Calling process of the file with argument ", $ARGV[1], "\n"; +parse_preproc_file($ARGV[1]); + +sub parse_preproc_file { + my $OrgFileName = shift; + #print "File passed is ", $OrgFileName, "\n"; + chomp($OrgFileName); + my $generatedb = 0; + my $dbFileName = sprintf("%s%s", $OrgFileName,".db"); + my $logNum = 0; + + my $isModuleIdFound = 0; + my $isFileIdFound = 0; + my $isModuleNameFound = 0; + $logNum = 0; + $fileId = 0; + + # Opening source.i file and DB file + # print "FILE:$OrgFileName\n"; + `cp -f $OrgFileName $OrgFileName.bak`; + if($tmp eq "INTEL") { + #print "Removing # for INTEL"; + system("sed -i '/^#/d' $OrgFileName"); + } elsif($tmp eq "XEON"){ + #print "Remove # for XEON"; + system("sed -i '/stdlib\-bsearch.h/s/^#//g' $OrgFileName"); + system("sed -i '/^#/d' $OrgFileName"); + system("sed -i '/stdlib\-bsearch.h/s/^/#/g' $OrgFileName"); + }else { + #print "Don't Remove # for BRCM"; + #system("sed -i '/^#/d' $OrgFileName"); + } + + open FILE, "<$OrgFileName" or die $!; + open my $OUTPFILE, '>', "$OrgFileName.tmp" or die "Can't write new file: $!"; + my $fromFound =0; + + while() { + if (( $_ =~ /logLev[0-4EHS]/ ) && ( $_ !~ /}[;]*/) && ( $_ !~ /R_LOG_LEVEL/)) { + $fromFound = 1; + $concatStr=$_; + chomp($concatStr); + next; + } + + if( ($_ =~ /}[;]*/) && ($fromFound == 1) ) { + $concatStr =~ s/(.*)(logLev[E0-4HS]) +(.*)/$1$2$3/g; + print $OUTPFILE $concatStr; + print $OUTPFILE $_; + $fromFound = 0; + next; + } + + if ($fromFound == 1) { + chomp($_); + $concatStr = $concatStr.$_; + } else { + #print $OUTPFILE "/* AARTI4*/"; + $_ =~ s/(.*)(logLev[E0-4HS]) +(.*)/$1$2$3/g; + print $OUTPFILE $_; + } + } + close(FILE); + close($OUTPFILE); + `mv -f $OrgFileName.tmp $OrgFileName`; + + open(INFILE, "< $OrgFileName") || die("Make DB Script ERROR: Cannot open file $OrgFileName for parse"); + open $tmpfile, "> $OrgFileName.tmp.i" || die("Data Base ERROR: Cannot Create temporary file"); + open ($dbfile, '>' , "$OrgFileName.tmp.db") || die("Data Base ERROR: Cannot create the file $dbFileName"); + ########################################################## + # Read each line and create the DB entries + while () { + if (($isModuleIdFound != 1) || ($isFileIdFound != 1) || ($isModuleNameFound !=1)) { + if (/(\s*.*)RLOG_MODULE_ID(\s*.*)=(\s*.*);/) { + $moduleId = $3; + $isModuleIdFound = 1; + } + + if (/(\s*.*)RLOG_FILE_ID(\s*.*)=(\s*.*);/) { + $fileId = $3; + $isFileIdFound = 1; + #print "FILE $OrgFileName FILE ID $fileId [$1] [$2] [$3]\n"; + } + if (/(\s*.*)*RLOG_MODULE_NAME(\s*.*)=(\s*.*);/) { + $moduleName = $3; + $moduleName = substr($moduleName,1); + $moduleName = substr($moduleName, 0, -1); + $isModuleNameFound = 1; + } + + print $tmpfile $_; + } elsif (/(\s*.*)(logLev[E0-4HS]\()(\s*.*\,)(\s*\".*\")(\s*.*)/) { + $CStart = $1; + $CPattern = $2; + $CVarible = $3; + $CString = $4; + $CEnd = $5; + + if( $3 =~ m/_LOGID/ ) { + my $fmtStr = $CString; + @variables = split(/,/, $CVarible); + my $arrSize = $#variables; + my $line = $variables[$arrSize]; + my $file = $variables[$arrSize-1]; + + if ($fileId < 0x3FF) { + $tokenID = ($fileId << 16)|(++$logNum); + $hexTokenID = sprintf("0x%x", $tokenID); + } else { print "SOME ERROR MODID:$moduleId FILEID:$fileId\n"; + return 1; + } + + $CVarible =~ s/_LOGID/$hexTokenID/; + + print $tmpfile "$CStart$CPattern$CVarible$CString$CEnd\n"; + print $dbfile "$tokenID;$line;$moduleName;$file;$fmtStr\n"; + $generatedb = 1; + } + } else { + print $tmpfile $_; + } + $lineNum = $lineNum + 1; + } + + ########################################################################## + #Close all files and create final output file + close(INFILE); + close ($tmpfile); + close ($dbfile); + + #close ($DBFILE); + #if( $generatedb eq 1) { + `cp -f $OrgFileName.tmp.i $OrgFileName`; + `mv -f $OrgFileName.tmp.db $dbFileName`; + `dos2unix -q $OrgFileName`; + `dos2unix -q $dbFileName`; + `rm -f $OrgFileName.tmp.i` + #} else { + # 'rm -f tmp.i'; + #} +} diff --git a/src/build/common/rsys_fancy.mak b/src/build/common/rsys_fancy.mak new file mode 100644 index 000000000..8eb3a835c --- /dev/null +++ b/src/build/common/rsys_fancy.mak @@ -0,0 +1,49 @@ +################################################################################ +# Copyright (c) [2017-2019] [Radisys] # +# # +# 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. # +################################################################################ + +#********************************************************************20** +# +# Name: RSYS FANCY MAKE OUTOUT +# +# Type: Makefile +# +# Desc: To control fancy features in the build process +# +# +# File: rsys_fancy.mak +# +#********************************************************************21*/ + +#----------------------------------------------------------------------- +# FANCY STUFF... you can play around with this if you want to +COLOR_RED=\e[31m\e[1m +COLOR_GREEN=\e[32m\e[1m +COLOR_YELLOW=\e[33m\e[1m +COLOR_BLUE=\e[34m\e[1m +COLOR_MAG=\e[35m\e[1m +COLOR_CYAN=\e[36m\e[1m +REVERT_COLOR=\e[m + +#----------------------------------------------------------------------- +# DO NOT EDIT THIS SECTION +ifeq ($(VERBOSE),YES) +export QUIET= +MK_QUIET= +else +export QUIET=@ +MK_QUIET=-s # Make works in quite mode +endif + diff --git a/build/scripts/build_5gnr.sh b/src/build/config/ssi_mem similarity index 64% rename from build/scripts/build_5gnr.sh rename to src/build/config/ssi_mem index 86197f7c3..56bcd46e1 100755 --- a/build/scripts/build_5gnr.sh +++ b/src/build/config/ssi_mem @@ -14,6 +14,62 @@ # limitations under the License. # ################################################################################ -make clean_all -bash ./build_prereq -m FDD -make tenb MACHINE=BIT64 -j 12 2>err +# Max number of Regions +5 +# Number of Buckets and Pools +4 4 +# Bucket Idx and Block Size +0 256 +1 1280 +2 2048 +3 8196 +# Region Idx +0 +# Bucket Idx and Number of blocks +0 10000 +1 500 +2 500 +3 500 +# Heap size +8194304U + +# Region Idx +1 +# Bucket Idx and Number of blocks +0 75000 +1 15000 +2 500 +3 1600 +# Heap size +1004800U + +# Region Idx +2 +# Bucket Idx and Number of blocks +0 65000 +1 8000 +2 600 +3 900 +# Heap size +6097512U + +# Region Idx +3 +# Bucket Idx and Number of blocks +0 75000 +1 15000 +2 500 +3 1600 +# Heap size +1004800U + +# Region Idx +4 +# Bucket Idx and Number of blocks +0 75000 +1 15000 +2 500 +3 1600 +# Heap size +1004800U + diff --git a/src/build/odu/makefile b/src/build/odu/makefile new file mode 100644 index 000000000..410c3babc --- /dev/null +++ b/src/build/odu/makefile @@ -0,0 +1,213 @@ +################################################################################ +# Copyright (c) [2017-2019] [Radisys] # +# # +# 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. # +################################################################################ + +# Master makefile + +# Identify the location our software which is used by rest +# of the build scripts + +include ../common/rsys_fancy.mak +include ../common/env.mak + +RULE=$(COLOR_RED) +OPTS=$(COLOR_GREEN) +NORM=$(REVERT_COLOR) + +# For improved speed +CPUINFO=`cat /proc/cpuinfo | grep processor| wc -l` +ifeq ($(CPUINFO), 1) + NUM_PARALLEL=1 +else + NUM_PARALLEL=$(shell echo $(CPUINFO) - 1 |bc) +endif + +ifeq ($(FAST), 1) + NUM_PARALLEL=$(shell echo $(CPUINFO) + 2 |bc) +endif + +PARALLEL_COMP=-j $(NUM_PARALLEL) + +# Different options to CPUH and CPUL builds +# # Other apsects of tool chain set here +# # These should be made available appropriately to the builds +ifeq ($(MACHINE),BIT64) +CC =gcc -m64 +CC_STRIP =strip --strip-all +CC_LINKER =gcc -m64 +CCPP =g++ -m64 +CCPP_LINKER =g++ -m64 +else +CC =gcc -m32 +CC_STRIP =strip --strip-all +CC_LINKER =gcc -m32 +CCPP =g++ -m32 +CCPP_LINKER =g++ -m32 +endif + +CC1= $(CC) +CCPP1= $(CCPP) + +ifeq ($(MODE),TDD) +CNM_ENABLE = YES +else +CNM_ENABLE=NO +endif + +#----------------------------------------------------------------------- +# macro for output file name and makefile name +# + +PLTFRM_FLAGS= -UMSPD -DODU + +ifeq ($(MODE),TDD) + PLTFRM_FLAGS += -DMODE=TDD +endif +ifeq ($(CA_ENABLE),YES) + PLTFRM_FLAGS += -DCA_ENABLE=YES +endif + +# The include options get merged with the options needed by +# # the called makefiles and hence we export these to make them +# # available to them. +BUILD=i686-linux + +# The called makefiles depend on these macros and these need to be exported +export PLTFRM +export PLTFRM_FLAGS +export BUILD +export I_OPTS + +# Add to the linker options the platform specific components +#L_OPTS+=-lnsl -lrt -lm -lpthread -lsctp +L_OPTS+=-lnsl -lrt -lm -lpthread -lsctp + +# Export some of the flags expected from the command line. +# # These macros are made available for the makefiles called from this makefile +export BOARD +export MACHINE +export MODE +export OAM_ENABLE +export CNM_ENABLE +export TEXT_LOG +export CA_ENABLE + +help: + @echo -e "******************************************************************" + @echo -e "BUILD COMMAND DESCRIPTION " + @echo -e "------------------------------------------------------------------" + @echo -e "$(RULE)odu - Builds all components of ODU$(NORM)" + @echo -e "$(RULE)cu_stub - Builds all CU Stub$(NORM)" + @echo -e "$(RULE)clean_odu - clean up ODU$(NORM)" + @echo -e "$(RULE)clean_cu - clean up CU Stub$(NORM)" + @echo -e "$(RULE)clean_all - cleanup everything$(NORM)" + @echo -e "$(OPTS) options: $(NORM)" + @echo -e "$(OPTS) MACHINE=BIT64/BIT32 - Default is BIT32$(NORM)" + @echo -e "$(OPTS) MODE=TDD - If not specified, MODE=FDD$(NORM)" + @echo -e "******************************************************************" + +prepare_dirs: + $(Q)echo -e "Preparing directories for build..." + $(Q)mkdir -p $(BUILD_DIR)/obj/odu + $(Q)mkdir -p $(LIB_ROOT)/odu + $(Q)mkdir -p $(ROOT_DIR)/libs/ + $(Q)mkdir -p $(BIN_DIR)/odu + $(Q)mkdir -p $(BIN_DIR)/config + $(Q)mkdir -p $(ROOT_DIR)/bin + $(Q)echo -e "Directories are successfully prepared" + +prepare_cu_dirs: + $(Q)echo -e "Preparing directories for build..." + $(Q)mkdir -p $(BUILD_DIR)/obj/cu_stub + $(Q)mkdir -p $(LIB_ROOT)/cu_stub + $(Q)mkdir -p $(BIN_DIR)/cu_stub + $(Q)echo -e "Directories are successfully prepared" + +du: + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/du_app.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/f1ap.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/kw.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/cm.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/rg.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/mt.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/rl.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/phy_stub.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + +link_du: du + $(Q)$(CC1) -g -o $(OBJ_ROOT)/odu/odu -Wl,-R../lib/:. $(OBJ_ROOT)/odu/*.o\ + $(L_OPTS) -L$(LIB_ROOT)/odu -L$(ROOT_DIR)/libs/odu + +clean_odu: + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/du_app.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/f1ap.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/kw.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/cm.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/rg.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/mt.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/rl.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/phy_stub.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)rm -rf $(OBJ_ROOT)/odu/* + $(Q)rm -rf $(LIB_ROOT)/odu/* + $(Q)rm -rf $(BIN_DIR)/odu/* + $(Q)rm -rf $(ROOT_DIR)/bin/odu + $(Q)echo -e "***** ODU CLEAN COMPLETE *****" + +clean_all: clean_odu clean_cu + $(Q)rm -rf $(OBJ_ROOT) + $(Q)rm -rf $(LIB_ROOT) + $(Q)rm -rf $(LOG_ROOT) + $(Q)rm -rf $(BIN_DIR) + $(Q)rm -rf $(ROOT_DIR)/bin + $(Q)rm -rf $(ROOT_DIR)/libs + +cu: + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/cu_stub.mak OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/f1ap.mak OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn.mak OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/cm.mak OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/mt.mak OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + +clean_cu: + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/cu_stub.mak clean OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/f1ap.mak clean OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/cm.mak clean OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/mt.mak clean OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)rm -rf $(OBJ_ROOT)/cu_stub/* + $(Q)rm -rf $(LIB_ROOT)/cu_stub/* + $(Q)rm -rf $(BIN_DIR)/cu_stub/* + $(Q)rm -rf $(ROOT_DIR)/bin/cu_stub + $(Q)echo -e "***** CU STUB CLEAN COMPLETE *****" + +link_cu: + $(Q)$(CC1) -g -o $(OBJ_ROOT)/cu_stub/cu_stub -Wl,-R../lib/:. $(OBJ_ROOT)/cu_stub/*.o\ + $(L_OPTS) -L$(LIB_ROOT)/cu_stub -L$(ROOT_DIR)/libs/cu_stub + $(Q)cp -f ./obj/cu_stub/cu_stub ./bin/cu_stub + $(Q)cp -rf ./bin/cu_stub $(ROOT_DIR)/bin/ + $(Q)echo -e "***** CU STUB BUILD COMPLETE *****" + +copy_build: link_du + $(Q)cp -f ./obj/odu/odu ./bin/odu + $(Q)cp -f ../config/ssi_mem ./bin/config + $(Q)cp -rf ./bin/odu $(ROOT_DIR)/bin/ + $(Q)cp -rf ./bin/config $(ROOT_DIR)/bin/ + $(Q)cp -f ./lib/odu/*.a $(ROOT_DIR)/libs/ + $(Q)echo -e "***** BUILD COMPLETE *****" + +odu: prepare_dirs copy_build + +cu_stub: prepare_cu_dirs cu link_cu + diff --git a/src/cm/cm_inet.c b/src/cm/cm_inet.c index 1785db483..3dd19aba6 100644 --- a/src/cm/cm_inet.c +++ b/src/cm/cm_inet.c @@ -1915,6 +1915,10 @@ U16 port; /* port number */ /* cm_inet_c_001.main_46: Removed SS_LINUX flag */ S32 idx; +/* cm_inet_c_001.main_64: New variable used as an argument for sctp_connectx */ +#ifdef SCTP_CONNECTX_NEW + U32 assocId = 0; +#endif U32 addresses_array_size = 0; U32 idx4 = 0; struct sockaddr_in addrs[CM_INET_NUM_NET_ADDR]; @@ -2189,6 +2193,8 @@ U16 port; /* port number */ { RETVALUE(RFAILED); } +/* HLAL */ +#if 0 #ifdef IPV6_SUPPORTED if((ipv6_array_size > 0) && (ipv6_array_size <= (CM_INET_NUM_NET_ADDR * \ sizeof(struct sockaddr_in)))) @@ -2200,8 +2206,13 @@ U16 port; /* port number */ RETVALUE(RFAILED); } #endif /* IPV6_SUPPORTED */ - +#endif +/* cm_inet_c_001.main_64: Support for new definition of sctp_connectx */ +#ifndef SCTP_CONNECTX_NEW ret = sctp_connectx(sockFd->fd, (struct sockaddr*)address_array, cnt); +#else + ret = sctp_connectx(sockFd->fd, (struct sockaddr*)address_array, cnt, (sctp_assoc_t *)&assocId); +#endif #else /* solaris */ diff --git a/src/cm/cm_mem_wl.c b/src/cm/cm_mem_wl.c index 302cce375..fc3183107 100755 --- a/src/cm/cm_mem_wl.c +++ b/src/cm/cm_mem_wl.c @@ -433,8 +433,10 @@ PUBLIC void DumpLayersDebugInformation() #else //DumpPDCPDlDebugInformation(); //DumpPDCPUlDebugInformation(); +#ifdef CU_STUB DumpRLCDlDebugInformation(); DumpRLCUlDebugInformation(); +#endif //printSchCellInfo(); #endif } diff --git a/src/cm/cm_tpt.c b/src/cm/cm_tpt.c new file mode 100755 index 000000000..7bd9d87b5 --- /dev/null +++ b/src/cm/cm_tpt.c @@ -0,0 +1,2112 @@ +/******************************************************************************* +################################################################################ +# Copyright (c) [2017-2019] [Radisys] # +# # +# 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. # +################################################################################ +*******************************************************************************/ + +/********************************************************************20** + + Name: HCT Interface + + Type: C file + + Desc: This file contains the packing/unpacking functions + for the H.225 primitives on hct interface + + File: cm_tpt.c + +*********************************************************************21*/ + +/* header include files (.h) */ + +#include "envopt.h" /* environment options */ +#include "envdep.h" /* environment dependent */ +#include "envind.h" /* environment independent */ + +#include "gen.h" /* general layer */ +#include "ssi.h" /* system service interface */ + +#include "cm_tpt.h" + +/* header/extern include files (.x) */ + +#include "gen.x" /* general layer */ +#include "ssi.x" /* system service interface */ + +/*#include "cm_tkns.x"*/ +#include "cm_tpt.x" + + +/* local defines */ + +/* local typedefs */ + +/* local externs */ + +/* forward references */ + +/* local function definition */ + +/* functions in other modules */ + +/* public variable declarations */ + +/* control variables for testing */ + +/* private variable declarations */ + +/* + * support functions + */ + +/* cm_tpt_c_001.main_17 - Guarded under LCEGT and LCLEG */ +/* cm_tpt_c_001.main_18 - Guarded under LWLCEGT */ + +#if ( defined(LCHCT) || defined (LWLCHCT) || defined(LCHIT) \ + || defined(LCLHC) || defined(TRIL_HZ) \ + || defined(LCHRT) || defined(LCLHR) \ + || defined(LCLMG) || defined(LCMGT) \ + || defined(LCLHG) || defined(LCHGT) \ + || defined(LCSCT) || defined(LCLSB) \ + || defined(LCLNT) || defined(LCLLN) \ + || defined(LCLSO) || defined(LCSOT) \ + || defined(LCEGT) || defined(LCLEG) || defined(LWLCEGT) \ + || defined(CM_COMPRESS) \ + ) + +#ifdef __cplusplus +extern "C" { +#endif + /* Add prototypes here (MB) */ + +#ifdef __cplusplus +} +#endif + + + +/* + * PACKING FUNCTIONS + */ +/* Moving IPv4 address packing functions from cm_inet.c */ +/* +* +* Fun: cmPkCmIpv4TptAddr +* +* Desc: This function packs the IPv4 address +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmPkCmIpv4TptAddr +( +CmIpv4TptAddr *pkParam, /* IPv4 Address structure */ +Buffer *mBuf /* message buffer */ +) +#else +PUBLIC S16 cmPkCmIpv4TptAddr (pkParam, mBuf) +CmIpv4TptAddr *pkParam; /* IPv4 Address structure */ +Buffer *mBuf; /* message buffer */ +#endif +{ + TRC2(cmPkCmIpv4TptAddr) + + CMCHKPK(cmPkCmIpv4NetAddr, pkParam->address, mBuf); + CMCHKPK(SPkU16, pkParam->port, mBuf); + + RETVALUE(ROK); +} /* cmPkCmIpv4TptAddr */ + +/* +* +* Fun: cmPkCmIpv6NetAddr +* +* Desc: This function packs the 16 bytes of IPv6 address +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PRIVATE S16 cmPkCmIpv6NetAddr +( +CmIpv6NetAddr *pkParam, +Buffer *mBuf /* message buffer */ +) +#else +PRIVATE S16 cmPkCmIpv6NetAddr (pkParam, mBuf) +CmIpv6NetAddr *pkParam; +Buffer *mBuf; /* message buffer */ +#endif +{ + U8 num; + U8 *ptr = (U8*)pkParam; + + TRC3(cmPkCmIpv6NetAddr) + + for(num = 0; num < CM_IPV6ADDR_SIZE; num++) + { + CMCHKPK(SPkU8, *(ptr+num), mBuf); + } + + RETVALUE(ROK); +} /* end of cmPkCmIpv6NetAddr */ + + +/* +* +* Fun: cmPkCmIpv6TptAddr +* +* Desc: This function packs the IPv6 transport address +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PRIVATE S16 cmPkCmIpv6TptAddr +( +CmIpv6TptAddr *pkParam, /* IPv6 transport address */ +Buffer *mBuf /* message buffer */ +) +#else +PRIVATE S16 cmPkCmIpv6TptAddr (pkParam, mBuf) +CmIpv6TptAddr *pkParam; /* IPv6 transport address */ +Buffer *mBuf; /* message buffer */ +#endif +{ + TRC3(cmPkCmIpv6TptAddr) + + CMCHKPK(cmPkCmIpv6NetAddr, &pkParam->ipv6NetAddr, mBuf); + CMCHKPK(SPkU16, pkParam->port, mBuf); + + RETVALUE(ROK); +} /* cmPkCmIpv6TptAddr */ + + +/* +* +* Fun: cmPkCmNetAddrTbl +* +* Desc: This function packs the +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmPkCmNetAddrTbl +( +CmNetAddrTbl *pkParam, /* Network Address Table */ +Buffer *mBuf /* message buffer */ +) +#else +PUBLIC S16 cmPkCmNetAddrTbl (pkParam, mBuf) +CmNetAddrTbl *pkParam; /* Network Address Table */ +Buffer *mBuf; /* message buffer */ +#endif +{ + U16 idx; /* Loop Index */ + CmNetAddr *netAddr; /* Network Address */ + + TRC2(cmPkCmNetAddrTbl) + + if (pkParam->count > CM_MAX_NET_ADDR) + RETVALUE(RFAILED); + + /* Pack All the addresses */ + for (idx = pkParam->count; idx; idx--) + { + netAddr = &(pkParam->netAddr[idx - 1]); + + if ((cmPkCmNetAddr(netAddr, mBuf)) != ROK) + RETVALUE(RFAILED); + } + + /* Pack the total number of addresses present in the table */ + CMCHKPK(SPkU16, pkParam->count, mBuf); + + RETVALUE(ROK); + +} /* end of cmPkCmNetAddrTbl() */ + +/* +* +* Fun: cmPkCmNetAddr +* +* Desc: This function packs the +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmPkCmNetAddr +( +CmNetAddr *pkParam, +Buffer *mBuf /* message buffer */ +) +#else +PUBLIC S16 cmPkCmNetAddr (pkParam, mBuf) +CmNetAddr *pkParam; +Buffer *mBuf; /* message buffer */ +#endif +{ + TRC3(cmPkCmNetAddr) + + switch (pkParam->type) + { + case CM_NETADDR_NOTPRSNT: + break; + + case CM_NETADDR_IPV4: + CMCHKPK(cmPkCmIpv4NetAddr, pkParam->u.ipv4NetAddr, mBuf); + break; + + case CM_NETADDR_IPV6: + CMCHKPK(cmPkCmIpv6NetAddr, &pkParam->u.ipv6NetAddr, mBuf); + break; + + default: + RETVALUE(RFAILED); + } + CMCHKPK(SPkU8, pkParam->type, mBuf); + + RETVALUE(ROK); +} /* cmPkCmNetAddr */ + + +/* +* +* Fun: cmPkCmTptAddr +* +* Desc: This function packs the +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmPkCmTptAddr +( +CmTptAddr *pkParam, +Buffer *mBuf /* message buffer */ +) +#else +PUBLIC S16 cmPkCmTptAddr (pkParam, mBuf) +CmTptAddr *pkParam; +Buffer *mBuf; /* message buffer */ +#endif +{ + TRC3(cmPkCmTptAddr) + + switch (pkParam->type) + { + case CM_TPTADDR_NOTPRSNT: + break; + + case CM_TPTADDR_IPV4: + CMCHKPK(cmPkCmIpv4TptAddr, &pkParam->u.ipv4TptAddr, mBuf); + break; + + case CM_TPTADDR_IPV6: + CMCHKPK(cmPkCmIpv6TptAddr, &pkParam->u.ipv6TptAddr, mBuf); + break; + + default: + RETVALUE(RFAILED); + } + CMCHKPK(SPkU8, pkParam->type, mBuf); + + RETVALUE(ROK); +} /* cmPkCmTptAddr */ + +/* added new packing functions */ +#ifdef LOCAL_INTF +/* +* +* Fun: cmPkCmTptLocalInf +* +* Desc: This function packs the local interface info on which IPV4/IPV6 +* packet was received on. +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmPkCmTptLocalInf +( +CmTptLocalInf *pkParam, /* local interface info */ +Buffer *mBuf /* message buffer */ +) +#else +PUBLIC S16 cmPkCmTptLocalInf (pkParam, mBuf) +CmTptLocalInf *pkParam; /* local interface info */ +Buffer *mBuf; /* message buffer */ +#endif +{ + TRC3(cmPkCmTptLocalInf) + + if (pkParam->intfPrsnt == TRUE) + { + /* pack the actual interface address */ + CMCHKPK(cmPkCmNetAddr, &pkParam->localIfAddr, mBuf); + /* pack the interface index value */ + CMCHKPK(SPkU32, pkParam->localIf, mBuf); + } + /* pack the boll which indicates if valid local intf is present or not */ + CMCHKPK(SPkU8, pkParam->intfPrsnt, mBuf); + RETVALUE(ROK); +} /* cmPkCmTptLocalInf */ +#endif /* LOCAL_INTF */ + +/* Moving IPv6 multicast information packing functions from cm_inet.c */ +#ifdef IPV6_SUPPORTED +/* +* +* Fun: cmPkCmNetMCastInf6 +* +* Desc: This function packs the IPv6 multicast information +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmPkCmNetMCastInf6 +( +CmNetMCastInf6 *pkParam, /* IPv6 multicast information */ +Buffer *mBuf /* message buffer */ +) +#else +PUBLIC S16 cmPkCmNetMCastInf6(pkParam, mBuf) +CmNetMCastInf6 *pkParam; /* IPv6 multicast information */ +Buffer *mBuf; /* message buffer */ +#endif +{ + TRC3(cmPkCmNetMCastInf6) + + CMCHKPK(cmPkCmIpv6NetAddr, &pkParam->mCastAddr, mBuf); + CMCHKPK(SPkU32, pkParam->localInf, mBuf); + + RETVALUE(ROK); +} /* cmPkCmNetMCastInf6 */ +#endif /* IPV6_SUPPORTED */ + + +/* +* +* Fun: cmPkCmSockOpts +* +* Desc: This function packs the +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PRIVATE S16 cmPkCmSockOpts +( +CmSockOpts *pkParam, +Buffer *mBuf /* message buffer */ +) +#else +PRIVATE S16 cmPkCmSockOpts (pkParam, mBuf) +CmSockOpts *pkParam; +Buffer *mBuf; /* message buffer */ +#endif +{ + TRC3(cmPkCmSockOpts) + + switch (pkParam->option) + { + case CM_SOCKOPT_OPT_ADD_MCAST_MBR: + case CM_SOCKOPT_OPT_DRP_MCAST_MBR: +#ifdef CM_INET2 + CMCHKPK(cmPkCmNetAddr, &pkParam->optVal.mCastInfo.mCastAddr, mBuf); + CMCHKPK(cmPkCmNetAddr, &pkParam->optVal.mCastInfo.localAddr, mBuf); +#else + CMCHKPK(cmPkCmNetAddr, &pkParam->optVal.mCastAddr, mBuf); +#endif /* CM_INET2 */ + break; + + case CM_SOCKOPT_OPT_MCAST_IF: + CMCHKPK(cmPkCmNetAddr, &pkParam->optVal.lclAddr, mBuf); + break; + +#ifdef IPV6_SUPPORTED + case CM_SOCKOPT_OPT_ADD_MCAST6_MBR: + case CM_SOCKOPT_OPT_DRP_MCAST6_MBR: + CMCHKPK(cmPkCmNetMCastInf6, &pkParam->optVal.mCastInfo6, mBuf); + break; + + case CM_SOCKOPT_OPT_MCAST6_IF: + CMCHKPK(SPkU32, pkParam->optVal.infId, mBuf); + break; + +#endif /* IPV6_SUPPORTED */ + + default: + CMCHKPK(SPkU32, pkParam->optVal.value, mBuf); + break; + } + CMCHKPK(SPkU32, pkParam->option, mBuf); + CMCHKPK(SPkU32, pkParam->level, mBuf); + + RETVALUE(ROK); +} /* cmPkCmSockOpts */ + + +/* +* +* Fun: cmPkCmSockParam +* +* Desc: This function packs the +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PRIVATE S16 cmPkCmSockParam +( +CmSockParam *pkParam, +Buffer *mBuf /* message buffer */ +) +#else +PRIVATE S16 cmPkCmSockParam (pkParam, mBuf) +CmSockParam *pkParam; +Buffer *mBuf; /* message buffer */ +#endif +{ + U32 num; + + TRC3(cmPkCmSockParam) + + if( pkParam->numOpts > CM_MAX_SOCK_OPTS) + { + RETVALUE(RFAILED); + } + for(num = 0; num < pkParam->numOpts; num++) + { + CMCHKPK(cmPkCmSockOpts, &pkParam->sockOpts[num], mBuf); + } + CMCHKPK(SPkU8, pkParam->numOpts, mBuf); + CMCHKPK(SPkU8, pkParam->listenQSize, mBuf); + + RETVALUE(ROK); +} /* cmPkCmSockParam */ + + +#ifdef CM_TLS +/* +* +* Fun: cmPkTlsTptParam +* +* Desc: This function packs the +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PRIVATE S16 cmPkTlsTptParam +( +TlsTptParam *pkParam, /**/ +Buffer *mBuf /* message buffer */ +) +#else +PRIVATE S16 cmPkTlsTptParam(pkParam, mBuf) +TlsTptParam *pkParam; /**/ +Buffer *mBuf; /* message buffer */ +#endif +{ + U32 num; + + TRC3(cmPkTlsTptParam) + + if( pkParam->numOpts > CM_MAX_SOCK_OPTS) + { + RETVALUE(RFAILED); + } + for(num = 0; num < pkParam->numOpts; num++) + { + CMCHKPK(cmPkCmSockOpts, &pkParam->sockOpts[num], mBuf); + } + CMCHKPK(SPkU8, pkParam->numOpts, mBuf); + CMCHKPK(SPkU8, pkParam->listenQSize, mBuf); + CMCHKPK(SPkS16, pkParam->ctxId, mBuf); + + RETVALUE(ROK); +} /* cmPkTlsTptParam */ + +#endif /* CM_TLS */ + + +/* +* +* Fun: cmPkCmTptParam +* +* Desc: This function packs the +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmPkCmTptParam +( +CmTptParam *pkParam, +Buffer *mBuf /* message buffer */ +) +#else +PUBLIC S16 cmPkCmTptParam (pkParam, mBuf) +CmTptParam *pkParam; +Buffer *mBuf; /* message buffer */ +#endif +{ + TRC3(cmPkCmTptParam) + + switch (pkParam->type) + { + case CM_TPTPARAM_NOTPRSNT: + break; + + case CM_TPTPARAM_SOCK: + CMCHKPK(cmPkCmSockParam, &pkParam->u.sockParam, mBuf); + break; + +#ifdef CM_AAL + case CM_TPTPARAM_AAL: + CMCHKPK(cmPkAalConParam, &pkParam->u.aalParam, mBuf); + break; +#endif + +#ifdef CM_TLS + case CM_TPTPARAM_TLS: + CMCHKPK(cmPkTlsTptParam, &pkParam->u.tlsParam, mBuf); + break; +#endif + + default: + RETVALUE(RFAILED); + } + + CMCHKPK(SPkU8, pkParam->type, mBuf); + + RETVALUE(ROK); +} /* cmPkCmTptParam */ + + +/* + * UNPACKING FUNCTIONS + */ + +/* Moving IPv4 address un-packing functions from cm_inet.c file */ + +/* +* +* Fun: cmUnpkCmIpv4TptAddr +* +* Desc: This function unpacks the IPv4 address +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmUnpkCmIpv4TptAddr +( +CmIpv4TptAddr *unpkParam, /* IPv4 Address */ +Buffer *mBuf /* message buffer */ +) +#else +PUBLIC S16 cmUnpkCmIpv4TptAddr (unpkParam, mBuf) +CmIpv4TptAddr *unpkParam; /* IPv4 Address */ +Buffer *mBuf; /* message buffer */ +#endif +{ + TRC2(cmUnpkCmIpv4TptAddr) + + CMCHKUNPK(SUnpkU16, &unpkParam->port, mBuf); + CMCHKUNPK(cmUnpkCmIpv4NetAddr, &unpkParam->address, mBuf); + + RETVALUE(ROK); +} /* cmUnpkCmIpv4TptAddr */ + + +/* +* +* Fun: cmUnpkCmIpv6NetAddr +* +* Desc: This function unpacks the 16 bytes of IPv6 address +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PRIVATE S16 cmUnpkCmIpv6NetAddr +( +CmIpv6NetAddr *unpkParam, /* IPv6 address */ +Buffer *mBuf /* message buffer */ +) +#else +PRIVATE S16 cmUnpkCmIpv6NetAddr (unpkParam, mBuf) +CmIpv6NetAddr *unpkParam; /* IPv6 address */ +Buffer *mBuf; /* message buffer */ +#endif +{ + U32 num; + U8 *ptr = (U8*)unpkParam; + + TRC3(cmUnpkCmIpv6NetAddr) + + ptr += (CM_INET_IPV6ADDR_SIZE - 1); + + for(num = 0; num < CM_IPV6ADDR_SIZE; num++) + { + CMCHKUNPK(SUnpkU8, (ptr-num), mBuf); + } + + RETVALUE(ROK); +} /* end of cmUnpkCmIpv6NetAddr */ + + +/* +* +* Fun: cmUnpkCmIpv6TptAddr +* +* Desc: This function unpacks the IPv6 transport address +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PRIVATE S16 cmUnpkCmIpv6TptAddr +( +CmIpv6TptAddr *unpkParam, /* IPv6 transport address */ +Buffer *mBuf /* message buffer */ +) +#else +PRIVATE S16 cmUnpkCmIpv6TptAddr (unpkParam, mBuf) +CmIpv6TptAddr *unpkParam; /* IPv6 transport address */ +Buffer *mBuf; /* message buffer */ +#endif +{ + TRC3(cmUnpkCmIpv6TptAddr) + + CMCHKUNPK(SUnpkU16, &unpkParam->port, mBuf); + CMCHKUNPK(cmUnpkCmIpv6NetAddr, &unpkParam->ipv6NetAddr, mBuf); + + RETVALUE(ROK); +} /* cmUnpkCmIpv6TptAddr */ + + +/* +* +* Fun: cmUnpkCmNetAddrTbl +* +* Desc: This function unpacks the +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmUnpkCmNetAddrTbl +( +CmNetAddrTbl *unpkParam, /* Network Address Table */ +Buffer *mBuf /* message buffer */ +) +#else +PUBLIC S16 cmUnpkCmNetAddrTbl (unpkParam, mBuf ) +CmNetAddrTbl *unpkParam; /* Network Address Table */ +Buffer *mBuf; /* message buffer */ +#endif +{ + U16 idx; /* Loop Index */ + CmNetAddr *netAddr; /* Network Address */ + + TRC2(cmUnpkCmNetAddrTbl) + + /* Unpack the count */ + CMCHKUNPK(SUnpkU16, &(unpkParam->count), mBuf); + + /* Unpack the addresses */ + for (idx = 0; idx < unpkParam->count; idx++) + { + netAddr = &(unpkParam->netAddr[idx]); + + if ((cmUnpkCmNetAddr(netAddr, mBuf)) != ROK) + RETVALUE(RFAILED); + } + + RETVALUE(ROK); + +} /* end of cmUnpkCmNetAddrTbl() */ + + +/* +* +* Fun: cmUnpkCmNetAddr +* +* Desc: This function unpacks the network address +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmUnpkCmNetAddr +( +CmNetAddr *unpkParam, +Buffer *mBuf /* message buffer */ +) +#else +PUBLIC S16 cmUnpkCmNetAddr (unpkParam, mBuf ) +CmNetAddr *unpkParam; +Buffer *mBuf; /* message buffer */ +#endif +{ + TRC3(cmUnpkCmNetAddr) + + CMCHKUNPK(SUnpkU8, &unpkParam->type, mBuf); + + switch (unpkParam->type) + { + case CM_NETADDR_NOTPRSNT: + break; + + case CM_NETADDR_IPV4: + CMCHKUNPK(cmUnpkCmIpv4NetAddr, &unpkParam->u.ipv4NetAddr, mBuf); + break; + + case CM_NETADDR_IPV6: + CMCHKUNPK(cmUnpkCmIpv6NetAddr, &unpkParam->u.ipv6NetAddr, mBuf); + break; + + default: + RETVALUE(RFAILED); + } + + RETVALUE(ROK); +} /* cmUnpkCmNetAddr */ + + +/* +* +* Fun: cmUnpkCmTptAddr +* +* Desc: This function unpacks the +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmUnpkCmTptAddr +( +CmTptAddr *unpkParam, +Buffer *mBuf /* message buffer */ +) +#else +PUBLIC S16 cmUnpkCmTptAddr (unpkParam, mBuf) +CmTptAddr *unpkParam; +Buffer *mBuf; /* message buffer */ +#endif +{ + TRC3(cmUnpkCmTptAddr) + + CMCHKUNPK(SUnpkU8, &unpkParam->type, mBuf); + + switch (unpkParam->type) + { + case CM_TPTADDR_NOTPRSNT: + break; + + case CM_TPTADDR_IPV4: + CMCHKUNPK(cmUnpkCmIpv4TptAddr, &unpkParam->u.ipv4TptAddr, mBuf); + break; + + case CM_TPTADDR_IPV6: + CMCHKUNPK(cmUnpkCmIpv6TptAddr, &unpkParam->u.ipv6TptAddr, mBuf); + break; + + default: + RETVALUE(RFAILED); + } + + RETVALUE(ROK); +} /* cmUnpkCmTptAddr */ + +/* Moving IPv6 multicast information unpacking functions from cm_inet.c */ +#ifdef IPV6_SUPPORTED + +/* +* +* Fun: cmUnpkCmNetMCastInf6 +* +* Desc: This function unpacks the IPv6 multicast information +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmUnpkCmNetMCastInf6 +( +CmNetMCastInf6 *unpkParam, /* IPv6 multicast information */ +Buffer *mBuf /* message buffer */ +) +#else +PUBLIC S16 cmUnpkCmNetMCastInf6(unpkParam, mBuf) +CmNetMCastInf6 *unpkParam; /* IPv6 multicast information */ +Buffer *mBuf; /* message buffer */ +#endif +{ + TRC3(cmUnpkCmNetMCastInf6) + + CMCHKUNPK(SUnpkU32, &unpkParam->localInf, mBuf); + CMCHKUNPK(cmUnpkCmIpv6NetAddr, &unpkParam->mCastAddr, mBuf); + + RETVALUE(ROK); +} /* cmUnpkCmNetMCastInf6 */ +#endif /* IPV6_SUPPORTED */ + + +/* +* +* Fun: cmUnpkCmSockOpts +* +* Desc: This function unpacks the socket options +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PRIVATE S16 cmUnpkCmSockOpts +( +CmSockOpts *unpkParam, /* socket options */ +Buffer *mBuf /* message buffer */ +) +#else +PRIVATE S16 cmUnpkCmSockOpts (unpkParam, mBuf) +CmSockOpts *unpkParam; /* socket options */ +Buffer *mBuf; /* message buffer */ +#endif +{ + TRC3(cmUnpkCmSockOpts) + + CMCHKUNPK(SUnpkU32, &unpkParam->level, mBuf); + CMCHKUNPK(SUnpkU32, &unpkParam->option, mBuf); + + switch (unpkParam->option) + { + case CM_SOCKOPT_OPT_ADD_MCAST_MBR: + case CM_SOCKOPT_OPT_DRP_MCAST_MBR: +#ifdef CM_INET2 + CMCHKUNPK(cmUnpkCmNetAddr, &unpkParam->optVal.mCastInfo.localAddr, + mBuf); + CMCHKUNPK(cmUnpkCmNetAddr, &unpkParam->optVal.mCastInfo.mCastAddr, + mBuf); +#else + CMCHKUNPK(cmUnpkCmNetAddr, &unpkParam->optVal.mCastAddr, mBuf); +#endif /* CM_INET2 */ + break; + + case CM_SOCKOPT_OPT_MCAST_IF: + CMCHKUNPK(cmUnpkCmNetAddr, &unpkParam->optVal.lclAddr, mBuf); + break; + +#ifdef IPV6_SUPPORTED + case CM_SOCKOPT_OPT_ADD_MCAST6_MBR: + case CM_SOCKOPT_OPT_DRP_MCAST6_MBR: + CMCHKUNPK(cmUnpkCmNetMCastInf6, &unpkParam->optVal.mCastInfo6, mBuf); + break; + + case CM_SOCKOPT_OPT_MCAST6_IF: + CMCHKUNPK(SUnpkU32, &unpkParam->optVal.infId, mBuf); + break; +#endif /* IPV6_SUPPORTED */ + + default: + CMCHKUNPK(SUnpkU32, &unpkParam->optVal.value, mBuf); + break; + } + + RETVALUE(ROK); +} /* cmUnpkCmSockOpts */ + + +/* +* +* Fun: cmUnpkCmSockParam +* +* Desc: This function unpacks the socket parameters +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PRIVATE S16 cmUnpkCmSockParam +( +CmSockParam *unpkParam, /* socket parameters */ +Buffer *mBuf /* message buffer */ +) +#else +PRIVATE S16 cmUnpkCmSockParam (unpkParam, mBuf) +CmSockParam *unpkParam; /* socket parameters */ +Buffer *mBuf; /* message buffer */ +#endif +{ + U32 num; + + TRC3(cmUnpkCmSockParam) + + CMCHKUNPK(SUnpkU8, &unpkParam->listenQSize, mBuf); + CMCHKUNPK(SUnpkU8, &unpkParam->numOpts, mBuf); + + if( unpkParam->numOpts > CM_MAX_SOCK_OPTS) + { + RETVALUE(RFAILED); + } + + for(num = 0; num < unpkParam->numOpts; num++) + { + CMCHKUNPK(cmUnpkCmSockOpts, &unpkParam->sockOpts[num], mBuf); + } + + RETVALUE(ROK); +} /* cmUnpkCmSockParam */ + + +#ifdef CM_TLS +/* +* +* Fun: cmUnpkTlsTptParam +* +* Desc: This function unpacks the socket parameters +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PRIVATE S16 cmUnpkTlsTptParam +( +TlsTptParam *unpkParam, /* TLS parameters */ +Buffer *mBuf /* message buffer */ +) +#else +PRIVATE S16 cmUnpkTlsTptParam (unpkParam, mBuf) +TlsTptParam *unpkParam; /* TLS parameters */ +Buffer *mBuf; /* message buffer */ +#endif +{ + U32 num; + + TRC3(cmUnpkTlsTptParam) + + CMCHKUNPK(SUnpkS16, &unpkParam->ctxId, mBuf); + CMCHKUNPK(SUnpkU8, &unpkParam->listenQSize, mBuf); + CMCHKUNPK(SUnpkU8, &unpkParam->numOpts, mBuf); + + if( unpkParam->numOpts > CM_MAX_SOCK_OPTS) + { + RETVALUE(RFAILED); + } + + for(num = 0; num < unpkParam->numOpts; num++) + { + CMCHKUNPK(cmUnpkCmSockOpts, &unpkParam->sockOpts[num], mBuf); + } + + RETVALUE(ROK); +} /* cmUnpkTlsTptParam */ + +#endif /* CM_TLS */ + + +/* +* +* Fun: cmUnpkCmTptParam +* +* Desc: This function unpacks the transport parameters +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmUnpkCmTptParam +( +CmTptParam *unpkParam, /* transport parameters */ +Buffer *mBuf /* message buffer */ +) +#else +PUBLIC S16 cmUnpkCmTptParam (unpkParam, mBuf) +CmTptParam *unpkParam; /* transport parameters */ +Buffer *mBuf; /* message buffer */ +#endif +{ + TRC3(cmUnpkCmTptParam) + + CMCHKUNPK(SUnpkU8, &unpkParam->type, mBuf); + + switch (unpkParam->type) + { + case CM_TPTPARAM_NOTPRSNT: + break; + + case CM_TPTPARAM_SOCK: + CMCHKUNPK(cmUnpkCmSockParam, &unpkParam->u.sockParam, mBuf); + break; + +#ifdef CM_AAL + case CM_TPTPARAM_AAL: + CMCHKUNPK(cmUnpkAalConParam, &unpkParam->u.aalParam, mBuf); + break; +#endif + +#ifdef CM_TLS + case CM_TPTPARAM_TLS: + CMCHKUNPK(cmUnpkTlsTptParam, &unpkParam->u.tlsParam, mBuf); + break; +#endif + + default: + RETVALUE(RFAILED); + } + + RETVALUE(ROK); +} /* cmUnpkCmTptParam */ + + +#ifdef CM_INET2 + +/* +* +* Fun: cmPkCmIpHdrParm +* +* Desc: This function packs the the IP hedear parameters for both +* IPV4 and IPV6. +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmPkCmIpHdrParm +( +CmIpHdrParm *pkParam, /* IP hdr parameters */ +Buffer *mBuf /* message buffer */ +) +#else +PUBLIC S16 cmPkCmIpHdrParm (pkParam, mBuf) +CmIpHdrParm *pkParam; /* IP hdr parameters */ +Buffer *mBuf; /* message buffer */ +#endif +{ + TRC3(cmPkCmIpHdrParm) + + switch (pkParam->type) + { + case CM_HDRPARM_NOTPRSNT: + case CM_HDRPARM_ICMP6: + break; + + case CM_HDRPARM_IPV4: + + /* call to pack ipv4 options */ +#ifdef IPV4_OPTS_SUPPORTED + /* ipv4 IP options */ + CMCHKPK(cmPkTknStr64, &pkParam->u.hdrParmIpv4.ipv4HdrOpt, mBuf); +#endif /* IPV4_OPTS_SUPPORTED */ + + CMCHKPK(cmPkTknU8, &pkParam->u.hdrParmIpv4.ttl, mBuf); + CMCHKPK(cmPkTknU8, &pkParam->u.hdrParmIpv4.tos, mBuf); + CMCHKPK(cmPkTknU8, &pkParam->u.hdrParmIpv4.dfBit, mBuf); + CMCHKPK(cmPkTknU8, &pkParam->u.hdrParmIpv4.proto, mBuf); + break; + + case CM_HDRPARM_IPV6: +#ifdef IPV6_SUPPORTED + /* call to pack ipv6 extn hdrs */ +#ifdef IPV6_OPTS_SUPPORTED + /* pack IPV6 extension headers */ + CMCHKPK(cmPkCmIpv6ExtHdr, &pkParam->u.hdrParmIpv6.ipv6ExtHdr, mBuf); +#endif /* IPV6_OPTS_SUPPORTED */ + CMCHKPK(cmPkCmNetAddr, &pkParam->u.hdrParmIpv6.srcAddr6, mBuf); + CMCHKPK(cmPkTknU8, &pkParam->u.hdrParmIpv6.ttl, mBuf); +#endif /* IPV6_SUPPORTED */ + break; + + default: + RETVALUE(RFAILED); + } + CMCHKPK(SPkU8, pkParam->type, mBuf); + + RETVALUE(ROK); +} /* End of cmPkCmIpHdrParm */ + + +/* added new unpack function for local interface */ +#ifdef LOCAL_INTF +/* +* +* Fun: cmUnpkCmTptLocalInf +* +* Desc: This function unpacks the local interface info on which +* IPV4/IPV6 packet was received on. +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmUnpkCmTptLocalInf +( +CmTptLocalInf *unpkParam, /* local interface info */ +Buffer *mBuf /* message buffer */ +) +#else +PUBLIC S16 cmUnpkCmTptLocalInf (unpkParam, mBuf) +CmTptLocalInf *unpkParam; /* local interface info */ +Buffer *mBuf; /* message buffer */ +#endif +{ + TRC3(cmUnpkCmTptLocalInf) + + /* first unpack the bool intfPrsnt value which is always packed */ + CMCHKUNPK(cmUnpkBool, &unpkParam->intfPrsnt, mBuf); + + /* if the above unpacked bool is TRUE then we have to unpack further + * to get the local intf index and intf address */ + if (unpkParam->intfPrsnt == TRUE) + { + CMCHKUNPK(SUnpkU32, &unpkParam->localIf, mBuf); + CMCHKUNPK(cmUnpkCmNetAddr, &unpkParam->localIfAddr, mBuf); + } + RETVALUE(ROK); +} /* cmUnpkCmTptLocalInf */ +#endif /* LOCAL_INTF */ + + +/* added new functions */ +#ifdef IPV6_OPTS_SUPPORTED +/* +* Fun: cmPkCmIpv6ExtHdr +* +* Desc: This function packs the IPV6 extension headers +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmPkCmIpv6ExtHdr +( +CmIpv6ExtHdr *pkParam, /* IPV6 extension hdrs */ +Buffer *mBuf /* message buffer */ +) +#else +PUBLIC S16 cmPkCmIpv6ExtHdr (pkParam, mBuf) +CmIpv6ExtHdr *pkParam; /*IPV6 extension hdrs */ +Buffer *mBuf; /* message buffer */ +#endif +{ + TRC3(cmPkCmIpv6ExtHdr) + + /* pack first Route hdr */ + if (pkParam->rtOptsPrsnt) + CMCHKPK(cmPkCmIpv6RtHdr, &pkParam->rtOpts, mBuf); + CMCHKPK(cmPkBool, pkParam->rtOptsPrsnt, mBuf); + + /* pack Dest Opt hdr */ + if (pkParam->destOptsPrsnt) + CMCHKPK(cmPkCmIpv6DestOptsArr, &pkParam->destOptsArr, mBuf); + CMCHKPK(cmPkBool, pkParam->destOptsPrsnt, mBuf); + + /* pack HBH hdr */ + if (pkParam->hbhHdrPrsnt) + CMCHKPK(cmPkCmIpv6HBHHdrArr, &pkParam->hbhOptsArr, mBuf); + CMCHKPK(cmPkBool, pkParam->hbhHdrPrsnt, mBuf); + + RETVALUE(ROK); +} /* end of cmPkCmIpv6ExtHdr */ + + +/* +* +* Fun: cmPkCmIpv6RtHdr +* +* Desc: This function packs the IPV6 route header +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmPkCmIpv6RtHdr +( +CmIpv6RtHdr *pkParam, /* IPV6 Route hdr */ +Buffer *mBuf /* message buffer */ +) +#else +PUBLIC S16 cmPkCmIpv6RtHdr (pkParam, mBuf) +CmIpv6RtHdr *pkParam; /* IPV6 Route hdr */ +Buffer *mBuf; /* message buffer */ +#endif +{ + U8 idx; + + TRC3(cmPkCmIpv6RtHdr); + + /* pack all IPV6 addrs in the route hdr */ + for(idx = 0; idx < pkParam->numAddrs; idx++) + { + CMCHKPK(cmPkCmIpv6NetAddr, &pkParam->ipv6Addrs[idx], mBuf); + } + /* pack reserve byte & strict/loose bit map */ + CMCHKPK(SPkU32, pkParam->slMap, mBuf); + CMCHKPK(SPkU8, pkParam->numAddrs, mBuf); + + RETVALUE(ROK); +} /* end of cmPkCmIpv6RtHdr */ + + +/* +* +* Fun: cmUnpkCmIpv6RtHdr +* +* Desc: This function unpacks the IPV6 route header +* +* Ret: ROK +* ROUTRES - out of resources +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmUnpkCmIpv6RtHdr +( +CmIpv6RtHdr *unpkParam, /* IPV6 Route hdr */ +Buffer *mBuf, /* message buffer */ +Mem *memInfo /* meminfo to allocate for Route hdr */ +) +#else +PUBLIC S16 cmUnpkCmIpv6RtHdr (unpkParam, mBuf, memInfo) +CmIpv6RtHdr *unpkParam; /* IPV6 Route hdr */ +Buffer *mBuf; /* message buffer */ +Mem *memInfo; /* meminfo to allocate for Route hdr */ +#endif +{ + U8 idx; /* array index */ + S32 retVal; /* temporary return value */ + + TRC3(cmUnpkCmIpv6RtHdr); + + CMCHKUNPK(SUnpkU8, &unpkParam->numAddrs, mBuf); + + /* unpack reserve byte & strict/loose bit map */ + CMCHKUNPK(SUnpkU32, &unpkParam->slMap, mBuf); + + retVal = SGetSBuf(memInfo->region, + memInfo->pool, + (Data **)&unpkParam->ipv6Addrs, + (unpkParam->numAddrs * 16)); + + if (retVal != ROK) + { + RETVALUE(ROUTRES); + } + + /* unpack all IPV6 addrs in the route hdr */ + for(idx = 0; idx < unpkParam->numAddrs; idx++) + { + CMCHKUNPK(cmUnpkCmIpv6NetAddr, &unpkParam->ipv6Addrs[idx], mBuf); + } + + RETVALUE(ROK); +} /* end of cmUnpkCmIpv6RtHdr */ + + +/* +* +* Fun: cmUnpkCmIpv6ExtHdr +* +* Desc: This function unpacks the IPv6 extension header +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmUnpkCmIpv6ExtHdr +( +CmIpv6ExtHdr *unpkParam, /* IPV6 extension hdrs */ +Buffer *mBuf, /* message buffer */ +Mem *memInfo /* meminfo to allocate for IPV6 ext hdr */ +) +#else +PUBLIC S16 cmUnpkCmIpv6ExtHdr (unpkParam, mBuf, memInfo) +CmIpv6ExtHdr *unpkParam; /* IPV6 extension hdrs */ +Buffer *mBuf; /* message buffer */ +Mem *memInfo; /* meminfo to allocate for IPV6 ext hdr */ +#endif +{ + TRC3(cmUnpkCmIpv6ExtHdr) + + /* unpack HBH hdr first */ + CMCHKUNPK(cmUnpkBool, &unpkParam->hbhHdrPrsnt, mBuf); + if (unpkParam->hbhHdrPrsnt) + cmUnpkCmIpv6HBHHdrArr(&unpkParam->hbhOptsArr, mBuf, memInfo); + + /* unpack DEST opt hdr */ + CMCHKUNPK(cmUnpkBool, &unpkParam->destOptsPrsnt, mBuf); + if (unpkParam->destOptsPrsnt) + cmUnpkCmIpv6DestOptsArr(&unpkParam->destOptsArr, mBuf, memInfo); + + /* unpack Route hdr last */ + CMCHKUNPK(cmUnpkBool, &unpkParam->rtOptsPrsnt, mBuf); + if (unpkParam->rtOptsPrsnt) + cmUnpkCmIpv6RtHdr(&unpkParam->rtOpts, mBuf, memInfo); + + RETVALUE(ROK); +} /* end of cmUnpkCmIpv6ExtHdr */ + + +/* +* +* Fun: cmPkCmIpv6DestOptsArr +* +* Desc: This function packs the IPV6 Destination Option array +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmPkCmIpv6DestOptsArr +( +CmIpv6DestOptsArr *pkParam, /* IPV6 Dest hdr array */ +Buffer *mBuf /* message buffer */ +) +#else +PUBLIC S16 cmPkCmIpv6DestOptsArr (pkParam, mBuf) +CmIpv6DestOptsArr *pkParam; /* IPV6 Dest hdr array */ +Buffer *mBuf; /* message buffer */ +#endif +{ + + U8 numOptions; + + TRC3(cmPkCmIpv6DestOptsArr); + + /* pack all HBH options */ + for(numOptions = 0; numOptionsnumDestOpts; numOptions++) + CMCHKPK(cmPkCmIpv6DestOptsHdr, &pkParam->destOpts[numOptions], mBuf); + CMCHKPK(SPkU8, pkParam->numDestOpts, mBuf); + + RETVALUE(ROK); +} /* end of cmPkCmIpv6DestOptsArr */ + + +/* +* +* Fun: cmPkCmIpv6DestOptsHdr +* +* Desc: This function packs individua IPV6 Destination Option +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmPkCmIpv6DestOptsHdr +( +CmIpv6DestOptsHdr *pkParam, /* IPV6 Dest opt */ +Buffer *mBuf /* message buffer */ +) +#else +PUBLIC S16 cmPkCmIpv6DestOptsHdr (pkParam, mBuf) +CmIpv6DestOptsHdr *pkParam; /* IPV6 Dest opt */ +Buffer *mBuf; /* message buffer */ +#endif +{ + U8 optLen; + + TRC3(cmPkCmIpv6DestOptsHdr); + + for(optLen = 0; optLen < pkParam->length; optLen++) + { + CMCHKPK(SPkU8, pkParam->value[optLen], mBuf); + } + CMCHKPK(SPkU8, pkParam->length, mBuf); + CMCHKPK(SPkU8, pkParam->type, mBuf); + + RETVALUE(ROK); +} /* end of cmPkCmIpv6DestOptsHdr */ + + +/* +* +* Fun: cmUnpkCmIpv6DestOptsHdr +* +* Desc: This function unpacks individual IPV6 Dest Option +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmUnpkCmIpv6DestOptsHdr +( +CmIpv6DestOptsHdr *unpkParam,/* IPV6 Dest Option */ +Buffer *mBuf, /* message buffer */ +Mem *memInfo /* meminfo to allocate mem for dest opt */ +) +#else +PUBLIC S16 cmUnpkCmIpv6DestOptsHdr (unpkParam, mBuf, memInfo) +CmIpv6DestOptsHdr *unpkParam;/* IPV6 Dest Option */ +Buffer *mBuf; /* message buffer */ +Mem *memInfo; /* meminfo to allocate mem for dest opt */ +#endif +{ + S32 retVal; /* temporary return value */ + U8 optLen; /* length of value field */ + + TRC3(cmUnpkCmIpv6DestOptsHdr); + + /* unpack type, length */ + CMCHKUNPK(SUnpkU8, &unpkParam->type, mBuf); + CMCHKUNPK(SUnpkU8, &unpkParam->length, mBuf); + + /* allocate static memory to hold the unpacked values */ + retVal = SGetSBuf(memInfo->region, + memInfo->pool, + (Data **)&unpkParam->value, (Size)unpkParam->length); + if (retVal != ROK) + { + RETVALUE(ROUTRES); + } + + /* unpack value fieldof this option */ + for(optLen = 0; optLenlength; optLen++) + { + CMCHKUNPK(SUnpkU8, &unpkParam->value[optLen], mBuf); + } + + RETVALUE(ROK); +} /* end of cmUnpkCmIpv6DestOptsHdr */ + + +/* +* +* Fun: cmUnpkCmIpv6DestOptsArr +* +* Desc: This function unpacks the IPV6 Destination Option array +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmUnpkCmIpv6DestOptsArr +( +CmIpv6DestOptsArr *unpkParam, /* all IPV6 Destination Options */ +Buffer *mBuf, /* message buffer */ +Mem *memInfo /* meminfo to allocate mem for dest opts */ +) +#else +PUBLIC S16 cmUnpkCmIpv6DestOptsArr (unpkParam, mBuf, memInfo) +CmIpv6DestOptsArr *unpkParam; /* all IPV6 Destination Options */ +Buffer *mBuf; /* message buffer */ +Mem *memInfo; /* meminfo to allocate mem for dest opts */ +#endif +{ + U8 numOptions; + S16 retVal; + + TRC3(cmUnpkCmIpv6DestOptsArr); + + CMCHKUNPK(SUnpkU8, &unpkParam->numDestOpts, mBuf); + if (unpkParam->numDestOpts) + { + /* allocate mem to hold all dest options */ + retVal = SGetSBuf(memInfo->region, + memInfo->pool, + (Data **)&unpkParam->destOpts, + (unpkParam->numDestOpts * sizeof(CmIpv6DestOptsHdr))); + + if (retVal != ROK) + { + RETVALUE(ROUTRES); + } + + /* unpack all dest options */ + for(numOptions = 0; numOptionsnumDestOpts; numOptions++) + if ((retVal = cmUnpkCmIpv6DestOptsHdr(&unpkParam->destOpts[numOptions], + mBuf, memInfo)) != ROK) + RETVALUE(RFAILED); + + } + RETVALUE(ROK); +} /* end of cmUnpkCmIpv6DestOptsArr */ + + +/* +* +* Fun: cmPkCmIpv6HBHHdrArr +* +* Desc: This function packs the all IPV6 HopByHop options +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmPkCmIpv6HBHHdrArr +( +CmIpv6HBHHdrArr *pkParam, /* all IPV6 HopByHop options */ +Buffer *mBuf /* message buffer */ +) +#else +PUBLIC S16 cmPkCmIpv6HBHHdrArr (pkParam, mBuf) +CmIpv6HBHHdrArr *pkParam; /* IPV6 HopByHop options */ +Buffer *mBuf; /* message buffer */ +#endif +{ + U8 numOptions; + + TRC3(cmPkCmIpv6HBHHdrArr); + + for(numOptions = 0; numOptionsnumHBHOpts; numOptions++) + CMCHKPK(cmPkCmIpv6HBHHdr, &pkParam->hbhOpts[numOptions], mBuf); + + CMCHKPK(SPkU8, pkParam->numHBHOpts, mBuf); + + RETVALUE(ROK); +} /* end of cmPkCmIpv6HBHHdrArr */ + + +/* +* +* Fun: cmPkCmIpv6HBHHdr +* +* Desc: This function packs individual IPV6 HBH options +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmPkCmIpv6HBHHdr +( +CmIpv6HBHHdr *pkParam, /* individual IPV6 HBH options */ +Buffer *mBuf /* message buffer */ +) +#else +PUBLIC S16 cmPkCmIpv6HBHHdr (pkParam, mBuf) +CmIpv6HBHHdr *pkParam; /* individual IPV6 HBH options */ +Buffer *mBuf; /* message buffer */ +#endif +{ + U8 optLen; + + TRC3(cmPkCmIpv6HBHHdr); + + /* pack value field */ + for(optLen = 0; optLenlength; optLen++) + { + CMCHKPK(SPkU8, pkParam->value[optLen], mBuf); + } + + /* pack type, length fields */ + CMCHKPK(SPkU8, pkParam->length, mBuf); + CMCHKPK(SPkU8, pkParam->type, mBuf); + + RETVALUE(ROK); +} /* end of cmPkCmIpv6HBHHdr */ + + +/* +* +* Fun: cmUnpkCmIpv6HBHHdr +* +* Desc: This function unpacks individual IPV6 HBH Option +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmUnpkCmIpv6HBHHdr +( +CmIpv6HBHHdr *unpkParam,/* individual IPV6 HBH Option */ +Buffer *mBuf, /* message buffer */ +Mem *memInfo /* meminfo to allocate mem for HBH opt */ +) +#else +PUBLIC S16 cmUnpkCmIpv6HBHHdr (unpkParam, mBuf, memInfo) +CmIpv6HBHHdr *unpkParam;/* individual IPV6 HBH Option */ +Buffer *mBuf; /* message buffer */ +Mem *memInfo; /* meminfo to allocate mem for HBH opt */ +#endif +{ + S32 retVal; /* temporary return value */ + U8 optLen; /* length of value field */ + + TRC3(cmUnpkCmIpv6HBHHdr) + + CMCHKUNPK(SUnpkU8, &unpkParam->type, mBuf); + CMCHKUNPK(SUnpkU8, &unpkParam->length, mBuf); + + /* allocate static memory to hold the unpacked values */ + if (unpkParam->length) + { + retVal = SGetSBuf(memInfo->region, + memInfo->pool, + (Data **)&unpkParam->value, (Size)unpkParam->length); + if (retVal != ROK) + { + RETVALUE(ROUTRES); + } + + for(optLen = 0; optLenlength; optLen++) + CMCHKUNPK(SUnpkU8, &unpkParam->value[optLen], mBuf); + } + + RETVALUE(ROK); +} /* end of cmUnpkCmIpv6HBHHdr */ + + +/* +* +* Fun: cmUnpkCmIpv6HBHHdrArr +* +* Desc: This function unpacks all IPV6 HopByHop options +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmUnpkCmIpv6HBHHdrArr +( +CmIpv6HBHHdrArr *unpkParam, /* all HBH options */ +Buffer *mBuf, /* message buffer */ +Mem *memInfo /* meminfo to allocate space for HBH opt */ +) +#else +PUBLIC S16 cmUnpkCmIpv6HBHHdrArr (unpkParam, mBuf, memInfo) +CmIpv6HBHHdrArr *unpkParam; /* all HBH options */ +Buffer *mBuf; /* message buffer */ +Mem *memInfo; /* meminfo to allocate space for HBH opt */ +#endif +{ + U8 numOptions; + S16 retVal; + + TRC3(cmUnpkCmIpv6HBHHdrArr); + + CMCHKUNPK(SUnpkU8, &unpkParam->numHBHOpts, mBuf); + if (unpkParam->numHBHOpts) + { + /* allocate space for all HBH options */ + retVal = SGetSBuf(memInfo->region, + memInfo->pool, + (Data **)&unpkParam->hbhOpts, + (unpkParam->numHBHOpts * sizeof(CmIpv6HBHHdr))); + + if (retVal != ROK) + { + RETVALUE(ROUTRES); + } + + for(numOptions = 0; numOptionsnumHBHOpts; numOptions++) + cmUnpkCmIpv6HBHHdr(&unpkParam->hbhOpts[numOptions], mBuf, memInfo); + } + RETVALUE(ROK); +} /* end of cmUnpkCmIpv6HBHHdrArr */ +#endif /* IPV6_OPTS_SUPPORTED */ + + +/* +* +* Fun: cmUnpkCmIPHdrParm +* +* Desc: This function unpacks the IP header parameters +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +/* added */ +#ifdef IPV6_OPTS_SUPPORTED +PUBLIC S16 cmUnpkCmIpHdrParm +( +CmIpHdrParm *unpkParam,/* ip hdr parameters */ +Buffer *mBuf, /* message buffer */ +Mem *memInfo /* meminfo to allocate mem for ipHdrParam */ +) +#else +PUBLIC S16 cmUnpkCmIpHdrParm +( +CmIpHdrParm *unpkParam,/* ip hdr parameters */ +Buffer *mBuf /* message buffer */ +) +#endif /* IPV6_OPTS_SUPPORTED */ +#else +/* added */ +#ifdef IPV6_OPTS_SUPPORTED +PUBLIC S16 cmUnpkCmIpHdrParm (unpkParam, mBuf, memInfo) +CmIpHdrParm *unpkParam;/* ip hdr parameters */ +Buffer *mBuf; /* message buffer */ +Mem *memInfo; /* meminfo to allocate mem for ipHdrParam */ +#else +PUBLIC S16 cmUnpkCmIpHdrParm (unpkParam, mBuf) +CmIpHdrParm *unpkParam;/* ip hdr parameters */ +Buffer *mBuf; /* message buffer */ +#endif /* IPV6_OPTS_SUPPORTED */ +#endif +{ + TRC3(cmUnpkCmIpHdrParm) + + CMCHKUNPK(SUnpkU8, &unpkParam->type, mBuf); + + switch (unpkParam->type) + { + case CM_HDRPARM_NOTPRSNT: + case CM_HDRPARM_ICMP6: + break; + + case CM_HDRPARM_IPV4: + CMCHKUNPK(cmUnpkTknU8, &unpkParam->u.hdrParmIpv4.proto, mBuf); + CMCHKUNPK(cmUnpkTknU8, &unpkParam->u.hdrParmIpv4.dfBit, mBuf); + CMCHKUNPK(cmUnpkTknU8, &unpkParam->u.hdrParmIpv4.tos, mBuf); + CMCHKUNPK(cmUnpkTknU8, &unpkParam->u.hdrParmIpv4.ttl, mBuf); +#ifdef IPV4_OPTS_SUPPORTED + CMCHKUNPK(cmUnpkTknStr64, &unpkParam->u.hdrParmIpv4.ipv4HdrOpt, mBuf); +#endif /* IPV4_OPTS_SUPPORTED */ + break; + + case CM_HDRPARM_IPV6: +#ifdef IPV6_SUPPORTED + CMCHKUNPK(cmUnpkTknU8, &unpkParam->u.hdrParmIpv6.ttl, mBuf); + + CMCHKUNPK(cmUnpkCmNetAddr, + &unpkParam->u.hdrParmIpv6.srcAddr6, mBuf); + +#ifdef IPV6_OPTS_SUPPORTED + /* memInfo is passed forward to alloc mem to hold unpacked + * IPV6 etx hdr data */ + cmUnpkCmIpv6ExtHdr(&unpkParam->u.hdrParmIpv6.ipv6ExtHdr, + mBuf, memInfo); +#endif /* IPV6_OPTS_SUPPORTED */ +#endif /* IPV6_SUPPORTED */ + break; + + default: + RETVALUE(RFAILED); + } + + RETVALUE(ROK); +} /* End of cmUnpkCmIpHdrParm */ + + +/* +* +* Fun: cmPkCmIcmpFilter +* +* Desc: This function packs the ICMP filter parameters +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmPkCmIcmpFilter +( +CmIcmpFilter *pkParam, +Buffer *mBuf /* message buffer */ +) +#else +PUBLIC S16 cmPkCmIcmpFilter (pkParam, mBuf) +CmIcmpFilter *pkParam; +Buffer *mBuf; /* message buffer */ +#endif +{ + /* Variable declaration */ + S16 idx; + + TRC3(cmPkCmIcmpFilter) + + switch (pkParam->type) + { + case CM_ICMP_NO_FILTER: + break; + + case CM_ICMPVER4_FILTER: + for(idx = (pkParam->u.icmpv4Filter.num-1); idx >= 0; idx--) + { + CMCHKPK(SPkU32, pkParam->u.icmpv4Filter.icmpError[idx].errCodeMask, + mBuf); + CMCHKPK(SPkU8, pkParam->u.icmpv4Filter.icmpError[idx].errType, + mBuf); + } + CMCHKPK(SPkU8, pkParam->u.icmpv4Filter.num, mBuf); + CMCHKPK(SPkU8, pkParam->u.icmpv4Filter.protocol, mBuf); + CMCHKPK(SPkU8, pkParam->u.icmpv4Filter.allMsg, mBuf); + CMCHKPK(SPkU8, pkParam->u.icmpv4Filter.icmpMsgFlag, mBuf); + break; + + case CM_ICMPVER6_FILTER: + /* The structure is yet to be decided */ + /* CMCHKPK(cmPkCmIpv6HdrParm, &pkParam->u.ipv6HdrParm, mBuf); */ +#ifdef IPV6_SUPPORTED + for(idx = (pkParam->u.icmpv6Filter.num - 1); idx >= 0; idx--) + { + CMCHKPK(SPkU32, pkParam->u.icmpv6Filter.icmpError[idx].errCodeMask, + mBuf); + CMCHKPK(SPkU8, pkParam->u.icmpv6Filter.icmpError[idx].errType, + mBuf); + } + CMCHKPK(SPkU8, pkParam->u.icmpv6Filter.num, mBuf); + CMCHKPK(SPkU8, pkParam->u.icmpv4Filter.allMsg, mBuf); + CMCHKPK(SPkU8, pkParam->u.icmpv4Filter.icmpMsgFlag, mBuf); +#endif /* IPV6_SUPPORTED */ + break; + + default: + RETVALUE(RFAILED); + } + CMCHKPK(SPkU8, pkParam->type, mBuf); + + RETVALUE(ROK); +} + + +/* +* +* Fun: cmUnpkCmIcmpFilter +* +* Desc: This function unpacks the +* +* Ret: ROK +* +* Notes: None +* +* File: cm_tpt.c +* +*/ +#ifdef ANSI +PUBLIC S16 cmUnpkCmIcmpFilter +( +CmIcmpFilter *unpkParam, +Buffer *mBuf /* message buffer */ +) +#else +PUBLIC S16 cmUnpkCmIcmpFilter (unpkParam, mBuf) +CmIcmpFilter *unpkParam; +Buffer *mBuf; /* message buffer */ +#endif +{ + /* Variable declaration */ + S16 idx; + + TRC3(cmUnpkCmIcmpFilter) + + CMCHKUNPK(SUnpkU8, &unpkParam->type, mBuf); + + switch (unpkParam->type) + { + case CM_ICMP_NO_FILTER: + break; + + case CM_ICMPVER4_FILTER: + CMCHKUNPK(SUnpkU8, &unpkParam->u.icmpv4Filter.icmpMsgFlag, mBuf); + CMCHKUNPK(SUnpkU8, &unpkParam->u.icmpv4Filter.allMsg, mBuf); + CMCHKUNPK(SUnpkU8, &unpkParam->u.icmpv4Filter.protocol, mBuf); + CMCHKUNPK(SUnpkU8, &unpkParam->u.icmpv4Filter.num, mBuf); + + for(idx = 0; idx < (unpkParam->u.icmpv4Filter.num); idx++) + { + CMCHKUNPK(SUnpkU8, + &unpkParam->u.icmpv4Filter.icmpError[idx].errType, mBuf); + CMCHKUNPK(SUnpkU32, + &unpkParam->u.icmpv4Filter.icmpError[idx].errCodeMask, + mBuf); + } + break; + + case CM_ICMPVER6_FILTER: +#ifdef IPV6_SUPPORTED + CMCHKUNPK(SUnpkU8, &unpkParam->u.icmpv6Filter.icmpMsgFlag, mBuf); + CMCHKUNPK(SUnpkU8, &unpkParam->u.icmpv6Filter.allMsg, mBuf); + CMCHKUNPK(SUnpkU8, &unpkParam->u.icmpv6Filter.num, mBuf); + + for(idx = 0; idx < (unpkParam->u.icmpv6Filter.num); idx++) + { + CMCHKUNPK(SUnpkU8, + &unpkParam->u.icmpv6Filter.icmpError[idx].errType, mBuf); + CMCHKUNPK(SUnpkU32, + &unpkParam->u.icmpv6Filter.icmpError[idx].errCodeMask, + mBuf); + } +#endif /* IPV6_SUPPORTED */ + break; + + default: + RETVALUE(RFAILED); + + } + + RETVALUE(ROK); +} /* End of cmUnpkCmIcmpFilter */ + +#endif /* CM_INET2 */ + + +#endif /* if(LCHCT || LCHIT || LCLHC || LCHRT || LCLHR) */ + + +/********************************************************************30** + End of file +*********************************************************************31*/ diff --git a/src/cm/cm_tpt.h b/src/cm/cm_tpt.h new file mode 100755 index 000000000..9d9089350 --- /dev/null +++ b/src/cm/cm_tpt.h @@ -0,0 +1,341 @@ +/******************************************************************************* +################################################################################ +# Copyright (c) [2017-2019] [Radisys] # +# # +# 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. # +################################################################################ +*******************************************************************************/ + +/********************************************************************20** + + Name: common transport file + + Type: header file + + Desc: common file for transport related data structures + + File: cm_tpt.h + +*********************************************************************21*/ +#ifndef __CMTPTH__ +#define __CMTPTH__ + +#include "cm_inet.h" +#ifdef CM_AAL +#include "cm_atm.h" +#endif + +/* network address table size */ +#define CM_MAX_NET_ADDR 16 + +/* network address sizes */ + +#define CM_IPV4ADDR_SIZE CM_INET_IPV4ADDR_SIZE +#define CM_IPV6ADDR_SIZE CM_INET_IPV6ADDR_SIZE + +/* network address sizes */ +#define CM_IPV4PORT_SIZE CM_INET_IPV4PORT_SIZE +#define CM_IPV6PORT_SIZE CM_INET_IPV4PORT_SIZE + +/* "type" in network address */ +#define CM_NETADDR_NOTPRSNT 0 +#define CM_NETADDR_IPV4 CM_INET_IPV4ADDR_TYPE +#define CM_NETADDR_IPV6 CM_INET_IPV6ADDR_TYPE + +/* "type" in transport address */ +#define CM_TPTADDR_NOTPRSNT 0 +#define CM_TPTADDR_IPV4 CM_INET_IPV4ADDR_TYPE +#define CM_TPTADDR_IPV6 CM_INET_IPV6ADDR_TYPE +#define CM_TPTADDR_AAL 3 + +#define CM_MAX_SOCK_OPTS 8 + +/* "type" in transport parameters */ +#define CM_TPTPARAM_NOTPRSNT 0 +#define CM_TPTPARAM_SOCK 1 +#define CM_TPTPARAM_AAL 2 +#define CM_TPTPARAM_TLS 3 +/*cm_tpt_h_001.main_14 Updated for TUCL 2.1 Release (Kernel SCTP Support) */ +#ifdef CM_LKSCTP +#define CM_TPTPARAM_SCTP 4 +#endif + +#define CM_INPORT_ANY 0 + +#ifdef __CMINETH__ /* Put cm_inet dependencies here */ + +/* "level" in Socket Options */ +#define CM_SOCKOPT_LEVEL_SOCKET CM_INET_LEVEL_SOCKET +#define CM_SOCKOPT_LEVEL_IP CM_INET_LEVEL_IP +#define CM_SOCKOPT_LEVEL_TCP CM_INET_LEVEL_TCP +/*cm_tpt_h_001.main_14 Updated for TUCL 2.1 Release (Kernel SCTP Support) */ +#ifdef CM_LKSCTP +#define CM_SOCKOPT_LEVEL_SCTP CM_INET_LEVEL_SCTP +#endif +/* cm_tpt_h_001.main_16: Added new macro to support filter for ICMP messages */ +#ifdef CM_ICMP_FILTER_SUPPORT +#ifdef SS_LINUX +#define CM_SOCKOPT_LEVEL_RAW CM_INET_LEVEL_RAW +#endif +#endif + +/* "option" in Socket Options */ +#define CM_SOCKOPT_OPT_BLOCK CM_INET_OPT_BLOCK +#define CM_SOCKOPT_OPT_REUSEADDR CM_INET_OPT_REUSEADDR +#define CM_SOCKOPT_OPT_RX_BUF_SIZE CM_INET_OPT_RX_BUF_SIZE +#define CM_SOCKOPT_OPT_TX_BUF_SIZE CM_INET_OPT_TX_BUF_SIZE +#define CM_SOCKOPT_OPT_ADD_MCAST_MBR CM_INET_OPT_ADD_MCAST_MBR +#define CM_SOCKOPT_OPT_DRP_MCAST_MBR CM_INET_OPT_DRP_MCAST_MBR +#define CM_SOCKOPT_OPT_TCP_NODELAY CM_INET_OPT_TCP_NODELAY +#define CM_SOCKOPT_OPT_MCAST_LOOP CM_INET_OPT_MCAST_LOOP +#define CM_SOCKOPT_OPT_MCAST_IF CM_INET_OPT_MCAST_IF +#define CM_SOCKOPT_OPT_MCAST_TTL CM_INET_OPT_MCAST_TTL +#define CM_SOCKOPT_OPT_BROADCAST CM_INET_OPT_BROADCAST +/* added KEEPALIVE socket option for TCP socket */ +#define CM_SOCKOPT_OPT_KEEPALIVE CM_INET_OPT_KEEPALIVE +#ifdef CM_INET2 +#define CM_SOCKOPT_OPT_HDRINCLD CM_INET_OPT_HDR_INCLD +#define CM_SOCKOPT_OPT_DONTFRAGMENT CM_INET_OPT_DONTFRAGMENT +#define CM_SOCKOPT_OPT_TOS CM_INET_OPT_TOS +#define CM_SOCKOPT_OPT_TTL CM_INET_OPT_TTL + +#ifdef IPV6_SUPPORTED +/* "level" in Socket Options */ +#define CM_SOCKOPT_LEVEL_IPV6 CM_INET_LEVEL_IPV6 + +/* "option" in Socket Options */ +#define CM_SOCKOPT_OPT_ADD_MCAST6_MBR CM_INET_OPT_ADD_MCAST6_MBR +#define CM_SOCKOPT_OPT_DRP_MCAST6_MBR CM_INET_OPT_DRP_MCAST6_MBR +#define CM_SOCKOPT_OPT_MCAST6_LOOP CM_INET_OPT_MCAST6_LOOP +#define CM_SOCKOPT_OPT_MCAST6_IF CM_INET_OPT_MCAST6_IF +#define CM_SOCKOPT_OPT_MCAST6_HOPS CM_INET_OPT_MCAST6_HOPS +#define CM_SOCKOPT_OPT_IPV6_TTL CM_INET_OPT_IPV6_TTL + +/* added new IPv6 socket options for IPv6 extn hdrs */ +#ifdef IPV6_OPTS_SUPPORTED +#define CM_SOCKOPT_OPT_RECVIPV6_HOPLIM CM_INET_OPT_RECVIPV6_HOPLIM +#define CM_SOCKOPT_OPT_RECVIPV6_HBHOPT CM_INET_OPT_RECVIPV6_HBHOPTS +#define CM_SOCKOPT_OPT_RECVIPV6_DSTOPTS CM_INET_OPT_RECVIPV6_DSTOPTS +#define CM_SOCKOPT_OPT_RECVIPV6_RTHDR CM_INET_OPT_RECVIPV6_RTHDR +#define CM_SOCKOPT_OPT_IP_ROUTER_ALERT6 CM_INET_OPT_IP_ROUTER_ALERT6 +#endif /* IPV6_OPTS_SUPPORTED */ +#define CM_SOCKOPT_OPT_IPV6_PKTINFO CM_INET_OPT_IPV6_PKTINFO +#endif /* IPV6_SUPPORTED */ + +/* added new IPv4 socket options for IPv4 IP options */ +#ifdef IPV4_OPTS_SUPPORTED +#define CM_SOCKOPT_OPT_IP_OPTIONS CM_INET_OPT_IP_OPTIONS +#define CM_SOCKOPT_OPT_IPV4_PKTINFO CM_INET_OPT_IPV4_PKTINFO +#define CM_SOCKOPT_OPT_IP_ROUTER_ALERT CM_INET_OPT_IP_ROUTER_ALERT +#endif /* IPV4_OPTS_SUPPORTED */ + +/* sctp socket options */ +/*cm_tpt_h_001.main_14 Updated for TUCL 2.1 Release (Kernel SCTP Support) */ +#ifdef CM_LKSCTP +#define CM_SOCKOPT_OPT_LINGER CM_INET_OPT_LINGER +#define CM_SOCKOPT_OPT_SCTP_EVENTS CM_INET_OPT_SCTP_EVENTS +#define CM_SOCKOPT_OPT_SCTP_PRIM_ADDR CM_INET_OPT_SCTP_PRIM_ADDR +#define CM_SOCKOPT_OPT_SCTP_PEERADDR_PARAMS CM_INET_OPT_SCTP_PEERADDR_PARAMS +#define CM_SOCKOPT_OPT_SCTP_GET_ASSOC_STA CM_INET_OPT_SCTP_GET_ASSOC_STA +#define CM_SOCKOPT_OPT_SCTP_GET_PADDR_INFO CM_INET_OPT_SCTP_GET_PADDR_INFO +/*cm_tpt_h_001.main_15 Updated for the support of configurable RTO parameters, + HBeat value Max retransmissions (Init, Path, Association)*/ +#define CM_SOCKOPT_OPT_SCTP_ASSOC_PARAMS CM_INET_OPT_SCTP_ASSOC_PARAMS +#define CM_SOCKOPT_OPT_SCTP_RTO_INFO CM_INET_OPT_SCTP_RTO_INFO +#define CM_SOCKOPT_OPT_SCTP_INIT_MSG CM_INET_OPT_SCTP_INIT_MSG +#endif + +/* IP header masks */ +#define CM_DF_MASK 0x4000 /* Don't Fragment bit */ +#define CM_MF_MASK 0x2000 /* More Fragment bit */ + +/* Protocol Values */ +#define CM_PROTOCOL_IP CM_INET_PROTO_IP /* IP protocol */ +#define CM_PROTOCOL_ICMP CM_INET_PROTO_ICMP /* ICMP protocol */ +#define CM_PROTOCOL_TCP CM_INET_PROTO_TCP /* TCP protocol */ +#define CM_PROTOCOL_UDP CM_INET_PROTO_UDP /* UDP protocol */ +#define CM_PROTOCOL_RAW CM_INET_PROTO_RAW /* Raw protocol */ +#define CM_PROTOCOL_SCTP CM_INET_PROTO_SCTP /* SCTP protocol */ +/*cm_tpt_h_001.main_14 Updated for TUCL 2.1 Release (Kernel SCTP Support) */ +#ifdef CM_LKSCTP +#define CM_PROTOCOL_LKSCTP CM_INET_PROTO_SCTP /* SCTP protocol */ +#endif +/* added new protocol */ +#define CM_PROTOCOL_RSVP CM_INET_PROTO_RSVP /* RSVP protocol */ + +#ifdef IPV6_SUPPORTED +#define CM_PROTOCOL_IPV6 CM_INET_PROTO_IPV6 /* IPV6 protocol */ +#define CM_PROTOCOL_ICMPV6 CM_INET_PROTO_ICMPV6 /* ICMP V6 protocol */ +#endif /* IPV6_SUPPORTED */ + +#ifdef CM_TLS +#define CM_PROTOCOL_TLS CM_PROTOCOL_TCP /* TLS runs over TCP */ +#endif + +/* Type of service parameters */ +#define CM_IPTOS_MIN_DELAY 0x10 +#define CM_IPTOS_MAX_TPUT 0x08 +#define CM_IPTOS_MAX_REL 0x04 + +/* Maximum Error Types */ +#define CM_MAX_ICMP_ERROR 5 +/* cm_tpt_h_001.main_16: Added new macro to support filter for ICMP messages */ +#ifdef CM_ICMP_FILTER_SUPPORT +#ifndef CM_MAX_ICMP_SOCKET +#define CM_MAX_ICMP_SOCKET 5 +#endif +#ifdef IPV6_SUPPORTED +#define CM_MAX_ICMPV6_MSGTYPE 140 +#endif +#endif + +/* ICMP Error Types */ +#define CM_ICMP_ET_DEST_UNREACHBLE 3 +#define CM_ICMP_ET_SRC_QUENCH 4 +#define CM_ICMP_ET_REDRCT 5 +#define CM_ICMP_ET_TIM_EXCEED 11 +#define CM_ICMP_ET_PARAM_PROB 12 + +/* ICMPV6 Error Types */ +#ifdef IPV6_SUPPORTED +#define CM_ICMP_ET_V6DEST_UNREACHABLE 1 +#define CM_ICMP_ET_V6PACKET_TOO_BIG 2 +#define CM_ICMP_ET_V6PACKET_TIME_EXCEEDED 3 +#define CM_ICMP_ET_V6PACKET_PARAM_PROB 4 +#endif /* IPV6_SUPPORTED */ + +/* ICMP Error Codes - destination unreachable */ +#define CM_ICMP_EC_NWK_UNREACH 0 +#define CM_ICMP_EC_HST_UNREACH 1 +#define CM_ICMP_EC_PROTO_UNREACH 2 +#define CM_ICMP_EC_PORT_UNREACH 3 +#define CM_ICMP_EC_FRAG_REQ_DFSET 4 +#define CM_ICMP_EC_SRC_RUT_FAIL 5 + +/* ICMP Error Codes - Source Quench */ +#define CM_ICMP_EC_SRC_QUENCH 4 + +/* ICMP Error Codes - Redirect */ +#define CM_ICMP_EC_RDRCT_NWK 0 +#define CM_ICMP_EC_RDRCT_HST 1 +#define CM_ICMP_EC_RDRCT_TOSNWK 2 +#define CM_ICMP_EC_RDRCT_TOSHST 3 + +/* ICMP Error codes - Time exceeded */ +#define CM_ICMP_EC_TTL_TRNST 0 +#define CM_ICMP_EC_TTL_REASM 1 + +/* ICMP V6 Error codes */ +#ifdef IPV6_SUPPORTED +/* Error codes - Destination unreachable */ +#define CM_ICMPV6_EC_NO_RTTO_DEST 0 +#define CM_ICMPV6_EC_ADMN_PROHIBIT 1 +#define CM_ICMPV6_EC_NOT_NEIGHBOR 2 +#define CM_ICMPV6_EC_ADDR_UNREACH 3 +#define CM_ICMPV6_EC_PORT_UNREACH 4 + +/* Error codes - Time exceeded */ +#define CM_ICMPV6_EC_HOPLIM_EXCD 0 +#define CM_ICMPV6_EC_FRG_REASM_TM_EXCD 1 + +/* Error codes - Paramter problem */ +#define CM_ICMPV6_EC_ERRHDR_FIELD 0 +#define CM_ICMPV6_EC_UNKNOWN_NXT_HDR 1 +#define CM_ICMPV6_EC_UNKNOWN_OPTION 2 + +#endif /* IPV6_SUPPORTED */ + +/* types of Filter parameter */ +#define CM_ICMP_NO_FILTER 0 +#define CM_ICMPVER4_FILTER CM_INET_IPV4ADDR_TYPE +#define CM_ICMPVER6_FILTER CM_INET_IPV6ADDR_TYPE + +/* For all Error code in a particular Error type */ +#define CM_ALL_CODES_MASK 0xFFFFFFFF + +/* types of header parameter */ +#define CM_HDRPARM_NOTPRSNT 0 +#define CM_HDRPARM_IPV4 CM_INET_IPV4ADDR_TYPE +#define CM_HDRPARM_IPV6 CM_INET_IPV6ADDR_TYPE +/* added new define for ipHdrParm.type */ +#define CM_HDRPARM_ICMP6 1 + +#define CM_IPV4_HDRLEN 20 /* Length of IP Header */ +#define CM_IPV6_HDRLEN 40 /* Length of IP Header */ +/* added new new define for IPv4 IP option */ +#define CM_IPV4_OPTS_MAXLEN 44 /* Max length of IPv4 Options */ +#endif /* CM_INET2 */ + +#define CM_INADDR_ANY CM_INET_INADDR_ANY + +#define CM_SOCKOPT_ENABLE CM_INET_OPT_ENABLE +#define CM_SOCKOPT_DISABLE CM_INET_OPT_DISABLE +#endif /* __CMINETH__ */ + +/* packing/unpacking functions */ +#define cmPkCmIpv4NetAddr(x, mBuf) SPkU32(x, mBuf) +/* Moved all packing functions to cm_tpt from + * cm_inet.c files. Hence no #defines are required */ +#define cmUnpkCmIpv4NetAddr(x, mBuf) SUnpkU32(x, mBuf) + +/* added macro to free memory allocated for IPv6 + * IPv6 extn hdrs*/ +#ifdef IPV6_OPTS_SUPPORTED +#define CM_TPT_FREE_IPV6_HDRPARM(_region, _pool, _hdrParm) \ +{ \ + CmIpv6HdrParm *_hdrParmIpv6; \ + U8 numOpts; \ + if (_hdrParm->type == CM_HDRPARM_IPV6) \ + { \ + _hdrParmIpv6 = &_hdrParm->u.hdrParmIpv6; \ + if( _hdrParmIpv6->ipv6ExtHdr.hbhHdrPrsnt) \ + { \ + for(numOpts = _hdrParmIpv6->ipv6ExtHdr.hbhOptsArr.numHBHOpts; \ + numOpts > 0; numOpts--) \ + { \ + SPutSBuf(_region, _pool, (Data *)_hdrParmIpv6->ipv6ExtHdr. \ + hbhOptsArr.hbhOpts[numOpts - 1].value, (Size)(_hdrParmIpv6-> \ + ipv6ExtHdr.hbhOptsArr.hbhOpts[numOpts - 1].length)); \ + SPutSBuf(_region, _pool, (Data *)&_hdrParmIpv6->ipv6ExtHdr. \ + hbhOptsArr.hbhOpts[numOpts - 1], \ + (Size)sizeof(CmInetIpv6HBHHdr)); \ + } \ + } \ + if(_hdrParmIpv6->ipv6ExtHdr.destOptsPrsnt) \ + { \ + for(numOpts = _hdrParmIpv6->ipv6ExtHdr.destOptsArr.numDestOpts; \ + numOpts > 0; numOpts--) \ + { \ + SPutSBuf(_region, _pool, (Data *)_hdrParmIpv6->ipv6ExtHdr. \ + destOptsArr.destOpts[numOpts - 1].value, (Size)(_hdrParmIpv6-> \ + ipv6ExtHdr.destOptsArr.destOpts[numOpts - 1].length)); \ + SPutSBuf(_region, _pool, (Data *)&_hdrParmIpv6->ipv6ExtHdr. \ + destOptsArr.destOpts[numOpts - 1], \ + (Size)sizeof(CmInetIpv6DestOptsHdr)); \ + } \ + } \ + if( _hdrParmIpv6->ipv6ExtHdr.rtOptsPrsnt) \ + { \ + SPutSBuf(_region, _pool, \ + (Data *)_hdrParmIpv6->ipv6ExtHdr.rtOpts.ipv6Addrs, \ + (Size)(_hdrParmIpv6->ipv6ExtHdr.rtOpts.numAddrs * 16)); \ + } \ + } \ +} +#endif /* IPV6_OPTS_SUPPORTED */ +#endif /* __CMTPTH__ */ + + +/********************************************************************30** + End of file +*********************************************************************31*/ diff --git a/src/cm/cm_tpt.x b/src/cm/cm_tpt.x new file mode 100755 index 000000000..8743c8e78 --- /dev/null +++ b/src/cm/cm_tpt.x @@ -0,0 +1,536 @@ +/******************************************************************************* +################################################################################ +# Copyright (c) [2017-2019] [Radisys] # +# # +# 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. # +################################################################################ +*******************************************************************************/ + +/********************************************************************20** + + Name: Common transport file + + Type: C include file + + Desc: Common file for transport related data structures + + File: cm_tpt.x + +*********************************************************************21*/ + +#ifdef SS_4GMX_LCORE +#define __CMTPTX__ 1 +#endif + +#ifndef __CMTPTX__ +#define __CMTPTX__ + + +#include "cm_inet.x" + +#ifdef CM_AAL +#include "cm_atm.x" +#endif + +#ifdef __cplusplus +extern "C" { +#endif /* _cplusplus */ + +#ifdef __CMINETX__ /* Put cm_inet dependencies here */ + +typedef CmInetIpv4Addr CmIpv4TptAddr; +typedef CmInetIpAddr CmIpv4NetAddr; + +#ifndef IPV6_SUPPORTED +typedef U8 CmInetIpAddr6[16]; /* 16 byte IPV6 address */ + +/* IPV6 Address */ +typedef struct cmInetIpv6Addr +{ + U16 port; + CmInetIpAddr6 ipv6NetAddr; +} CmInetIpv6Addr; +#endif /* IPV6_SUPPORTED */ + +/* IPV6 Network address */ +typedef CmInetIpv6Addr CmIpv6TptAddr; +typedef CmInetIpAddr6 CmIpv6NetAddr; + +#endif /* __CMINETX__ */ + +/* Network address */ +typedef struct cmNetAddr +{ + U8 type; /* type of network address */ + union + { + CmIpv4NetAddr ipv4NetAddr; /* IP network address */ + CmIpv6NetAddr ipv6NetAddr; /* IPv6 network address */ + }u; +} CmNetAddr; + +/* list of addresses */ +typedef struct _cmNetAddrTbl +{ + U16 count; /* Number of Table Entries */ + CmNetAddr netAddr[CM_MAX_NET_ADDR]; /* IPV4/IPV6 addresses */ +}CmNetAddrTbl; + +/* Added new structure for Local Interface */ +#ifdef LOCAL_INTF +/* used to pass local interface (on which packet was received) to upper user */ +typedef struct cmTptLocalInf +{ + Bool intfPrsnt; /* valid intf is present or not */ + U32 localIf; /* interface index IPv4(32 bit) or IPv6(32 bit) */ + CmNetAddr localIfAddr; /* interface address */ +}CmTptLocalInf; +#endif /* LOCAL_INTF */ + +#ifdef CM_INET2 +/* Multicast information */ +typedef struct cmNetMCastInf +{ + CmNetAddr mCastAddr; /* Multicast adddress */ + CmNetAddr localAddr; /* Local address */ +} CmNetMCastInf; + +#ifdef IPV6_SUPPORTED +typedef CmInetMCastInf6 CmNetMCastInf6; +#endif /* IPV6_SUPPORTED */ +#endif /* CM_INET2 */ + +/* Transport address */ +typedef struct cmTptAddr +{ + U8 type; /* type of transport address */ + union + { + CmIpv4TptAddr ipv4TptAddr; /* IP transport address */ + CmIpv6TptAddr ipv6TptAddr; /* IPv6 transport address */ +#ifdef CM_AAL + AtmVccId aalTptAddr; /* AAL transport address */ +#endif + }u; +} CmTptAddr; + +/*cm_tpt_x_001.main_12 Updated for TUCL 2.1 Release (Kernel SCTP Support) */ +#ifdef CM_LKSCTP +/* Array of Transport Addresses */ +typedef struct cmTptAddrLst +{ + U8 nmb; /* Number of Network Addresses */ + CmTptAddr tptAddr[CM_MAX_NET_ADDR]; /* List of Network Addresses */ +} CmTptAddrLst; + +typedef CmInetSockLinger CmSockLinger; +typedef CmInetSctpSockEvent CmSctpEvent; +typedef CmInetSctpPeerAddrParams CmSctpPeerAddrParams; +typedef CmInetSctpPrimAddr CmSctpPrimAddr; +typedef CmInetSctpPeerAddrInfo CmSctpPeerAddrInfo; +typedef CmInetSctpStatus CmSctpStatus; +typedef CmInetSctpRtoInfo CmSctpRtoInfo; +typedef CmInetSctpInitMsg CmSctpInitMsg; +typedef CmInetSctpAssocParams CmSctpAssocParams; +#endif + +/* Socket Options */ +typedef struct cmSockOpts +{ + U32 level; /* option level */ + U32 option; /* option name */ + union /* option parameters */ + { +#ifdef CM_INET2 +#ifdef IPV6_SUPPORTED + CmNetMCastInf6 mCastInfo6; /* IPV6 multicast information */ + U32 infId; /* IPV6 multicast outgoing interface */ +#endif /* IPV6_SUPPORTED */ + CmNetMCastInf mCastInfo; /* multicast information */ +#else + CmNetAddr mCastAddr; /* multicast information */ +#endif /* CM_INET2 */ + CmNetAddr lclAddr; /* local outgoing interface */ + U32 value; /* option value */ +/*cm_tpt_x_001.main_12 Updated for TUCL 2.1 Release (Kernel SCTP Support) */ +#ifdef CM_LKSCTP + CmSockLinger sockLinger; + CmSctpEvent sctpEvent; + CmSctpPeerAddrParams sctpPeerAddrParams; + CmSctpPrimAddr sctpPrimAddr; + CmSctpPeerAddrInfo sctpPeerAddrInfo; + CmSctpStatus sctpStatus; +/*cm_tpt_x_001.main_13 Updated for the support of configurable RTO parameters, + HBeat value Max retransmissions (Init, Path, Association)*/ + CmSctpRtoInfo sctpRtoInfo; + CmSctpInitMsg sctpInitMsg; + CmSctpAssocParams sctpPeerAssocParams; +#endif + }optVal; +}CmSockOpts; + +/* socket parameters */ +typedef struct cmSockParam +{ + U8 listenQSize; /* listen queue size */ + U8 numOpts; /* number of socket options */ + CmSockOpts sockOpts[CM_MAX_SOCK_OPTS]; /* socket options */ +} CmSockParam; + +#ifdef CM_TLS +typedef struct tlsTptParam +{ + S16 ctxId; + U8 listenQSize; + U8 numOpts; + CmSockOpts sockOpts[CM_MAX_SOCK_OPTS]; + +} TlsTptParam; +#endif /* CM_TLS */ + +/*cm_tpt_x_001.main_12 Updated for TUCL 2.1 Release (Kernel SCTP Support) */ +#ifdef CM_LKSCTP +typedef struct sctpSockParam +{ + U8 numOpts; /* number of socket options */ + CmSockOpts sockOpts[CM_MAX_SOCK_OPTS]; /* socket options */ +} SctpSockParam; +#endif + +/* Transport parameters */ +typedef struct cmTptParam +{ + U8 type; /* type of transport parameters */ + + union + { + CmSockParam sockParam; /* socket parameters */ +#ifdef CM_AAL + AalConParam aalParam; /* AAL connection parameters */ +#endif +#ifdef CM_TLS + TlsTptParam tlsParam; /* TLS parameters */ +#endif +/*cm_tpt_x_001.main_12 Updated for TUCL 2.1 Release (Kernel SCTP Support) */ +#ifdef CM_LKSCTP + SctpSockParam sctpParam; /* LKSCTP parameters */ +#endif + } u; + +} CmTptParam; + +#ifdef CM_INET2 +/* IPv4 header parameters */ +typedef struct cmIpv4HdrParm +{ + TknU8 proto; /* Protocol value */ + TknU8 dfBit; /* Don't fragment flag */ + TknU8 tos; /* Type of Service */ + TknU8 ttl; /* Time to Live */ + /* added new field */ +#ifdef IPV4_OPTS_SUPPORTED + TknStr64 ipv4HdrOpt; /* IPV4 hdr opt */ +#endif /* IPV4_OPTS_SUPPORTED */ +} CmIpv4HdrParm; + +#ifdef IPV6_SUPPORTED +/* added new structures for IPv6 ext hdr support */ +#ifdef IPV6_OPTS_SUPPORTED +/* structure to hold TLV of each HBH option */ +typedef struct cmIpv6HBHHdr +{ + U8 type; + U8 length; + U8 *value; +} CmIpv6HBHHdr; + +/* structure to hold TLV of each Destination option */ +typedef struct cmIpv6DestOptsHdr +{ + U8 type; + U8 length; + U8 *value; +} CmIpv6DestOptsHdr; + +/* structure to hold IPV6 addresses of the Route header */ +typedef struct cmIpv6RtHdr +{ + U8 numAddrs; + U32 slMap; + CmIpv6NetAddr *ipv6Addrs; +} CmIpv6RtHdr; + +/* array of all HBH options */ +typedef struct cmIpv6HBHHdrArr +{ + U8 numHBHOpts; + CmIpv6HBHHdr *hbhOpts; +} CmIpv6HBHHdrArr; + +/* array of all Destination options */ +typedef struct cmIpv6DestOptsArr +{ + U8 numDestOpts; + CmIpv6DestOptsHdr *destOpts; +} CmIpv6DestOptsArr; + +/* structure having 3 substructures for 3 types of ext headers */ +typedef struct cmIpv6ExtHdr +{ + Bool hbhHdrPrsnt; + CmIpv6HBHHdrArr hbhOptsArr; + + Bool destOptsPrsnt; + CmIpv6DestOptsArr destOptsArr; + + Bool rtOptsPrsnt; + CmIpv6RtHdr rtOpts; +} CmIpv6ExtHdr; +#endif /* IPV6_OPTS_SUPPORTED */ + +/* IPV6 header parameters */ +typedef struct cmIpv6HdrParm +{ + TknU8 ttl; /* Set the hop limit */ + + /* added new field */ + CmNetAddr srcAddr6; /* src addr to set on send pkt(IPv6) */ + + /* added new field */ +#ifdef IPV6_OPTS_SUPPORTED + CmIpv6ExtHdr ipv6ExtHdr; +#endif /* IPV6_OPTS_SUPPORTED */ +} CmIpv6HdrParm; +#endif /* IPV6_SUPPORTED */ + +/* IP header paramters */ +typedef struct cmIpHdrParm +{ + U8 type; /* Type of IP header parameters */ + union + { + CmIpv4HdrParm hdrParmIpv4; /* IPv4 header parameters */ +#ifdef IPV6_SUPPORTED + CmIpv6HdrParm hdrParmIpv6; /* IPv6 header parameters */ +#endif /* IPV6_SUPPORTED */ + }u; + +} CmIpHdrParm; + +/* IPv4 header */ +typedef struct cmIpv4Hdr +{ + U8 hdrVer; /* Header and Version */ + U8 tos; /* Type Of Service */ + S16 length; /* Total length */ + U16 id; /* Identification */ + S16 off; /* Flags and Offset */ + U8 ttl; /* Time to Live */ + U8 proto; /* Protocol */ + U16 chkSum; /* Checksum */ + U32 srcAddr; /* Source Address */ + U32 destAddr; /* Destination Address */ + +} CmIpv4Hdr; + +#ifdef IPV6_SUPPORTED +/* IPv6 header */ +typedef struct cmIpv6Hdr +{ + union + { + struct ip6_hdrctl + { + U32 ip6_un1_flow; + U16 ip6_un1_plen; + U8 ip6_un1_nxt; + U8 ip6_un1_hlim; + } ip6_un1; + U8 ip6_un2_vfc; + } ip6_ctlun; + CmIpv6NetAddr ip6_src; + CmIpv6NetAddr ip6_dst; +} CmIpv6Hdr; +#endif /* IPV6_SUPPORTED */ + +typedef struct cmIcmpError +{ + U8 errType; /* ICMP Error Type */ + U32 errCodeMask; /* ICMP Error Code Mask */ + +} CmIcmpError; + +/* ICMP v4 filter parameters */ +typedef struct cmIcmpv4Filter +{ + U8 icmpMsgFlag; /* Flag to listen to any ICMP msgs */ + U8 allMsg; /* Flag to listen to ICMP messages */ + U8 protocol; /* ICMP packets with protocol only */ + U8 num; /* Number of valid type - code + * combinations in the error array */ + CmIcmpError icmpError[CM_MAX_ICMP_ERROR]; /* Error type & Code array */ + +}CmIcmpv4Filter; + +#ifdef IPV6_SUPPORTED +typedef struct cmIcmpv6Filter +{ + U8 icmpMsgFlag; /* Flag to listen to any ICMP msgs */ + U8 allMsg; /* Flag to listen to all ICMP messages */ + U8 num; /* Number of valid type - code + * combinations in the error array */ + CmIcmpError icmpError[CM_MAX_ICMP_ERROR]; /* Error type & Code array */ + +} CmIcmpv6Filter; +#endif /* IPV6_SUPPORTED */ + +/* ICMP filter paramters */ +typedef struct cmIcmpFilter +{ + U8 type; /* ICMP version */ + union + { + CmIcmpv4Filter icmpv4Filter; /* ICMPv4 filter structure */ +#ifdef IPV6_SUPPORTED + CmIcmpv6Filter icmpv6Filter; /* ICMPv6 filter structure */ +#endif /* IPV6_SUPPORTED */ + }u; + +} CmIcmpFilter; + +/* ICMP header */ +typedef struct cmIcmpv4Hdr +{ + U8 icmpType; /* Type of message */ + U8 icmpCode; /* Message code */ + U16 chkSum; /* Ones complement cksum of struct */ + + union + { + U8 ihPptr; /* ICMP parameter problem */ + U32 rdrctAddr; /* ICMP redirect address */ + struct idSeq + { + S16 icdId; /* Identifier */ + S16 icdSeq; /* Sequence Number */ + } u1; + U32 ihVoid; + } u2; + + union + { + struct idTime + { + U32 itOtime; /* Original time stamp */ + U32 itRtime; /* Received time stamp */ + U32 itTtime; /* Transmit time stamp */ + } s; + CmIpv4Hdr icmpIpHdr; /* IP header */ + U32 id_mask; + } u3; + +} CmIcmpv4Hdr; + +#ifdef IPV6_SUPPORTED +typedef struct cmIcmpv6Hdr +{ + U8 icmp6_type; /* type field */ + U8 icmp6_code; /* code field */ + U16 icmp6_cksum; /* checksum field */ + + union + { + U32 icmp6_un_data32[1]; /* type-specific field */ + U16 icmp6_un_data16[2]; /* type-specific field */ + U8 icmp6_un_data8[4]; /* type-specific field */ + } icmp6_dataun; +} CmIcmpv6Hdr; +#endif /* IPV6_SUPPORTED */ + +#endif /* CM_INET2 */ + +/* packing/unpacking function prototypes */ +/* Added packing and unpacking function prototypes */ +EXTERN S16 cmPkCmIpv4TptAddr ARGS((CmIpv4TptAddr *pkParam, Buffer *mBuf)); +EXTERN S16 cmPkCmNetAddrTbl ARGS((CmNetAddrTbl *pkParam, Buffer *mBuf)); +EXTERN S16 cmPkCmNetAddr ARGS((CmNetAddr *pkParam, Buffer *mBuf)); +EXTERN S16 cmPkCmTptAddr ARGS((CmTptAddr *pkParam, Buffer *mBuf)); +#ifdef IPV6_SUPPORTED +EXTERN S16 cmPkCmNetMCastInf6 ARGS((CmNetMCastInf6 *pkParam, Buffer *mBuf)); +#endif /* IPV6_SUPPORTED */ +EXTERN S16 cmPkCmTptParam ARGS((CmTptParam *pkParam, Buffer *mBuf)); +EXTERN S16 cmUnpkCmNetAddrTbl ARGS((CmNetAddrTbl *unpkParam, Buffer *mBuf)); +EXTERN S16 cmUnpkCmIpv4TptAddr ARGS((CmIpv4TptAddr *unpkParam, Buffer *mBuf)); +EXTERN S16 cmUnpkCmNetAddr ARGS((CmNetAddr *unpkParam, Buffer *mBuf)); +EXTERN S16 cmUnpkCmTptAddr ARGS((CmTptAddr *unpkParam, Buffer *mBuf)); +#ifdef IPV6_SUPPORTED +EXTERN S16 cmUnpkCmNetMCastInf6 ARGS((CmNetMCastInf6 *unpkParam, Buffer *mBuf)); +#endif /* IPV6_SUPPORTED */ + +EXTERN S16 cmUnpkCmTptParam ARGS((CmTptParam *unpkParam, Buffer *mBuf)); + +#ifdef CM_INET2 +EXTERN S16 cmPkCmIpHdrParm ARGS((CmIpHdrParm *pkParam, Buffer *mBuf)); + +/* changed to include meminfo required to hold IPv6 + extension headers */ +#ifdef IPV6_OPTS_SUPPORTED +EXTERN S16 cmUnpkCmIpHdrParm ARGS((CmIpHdrParm *unpkParam, Buffer *mBuf, + Mem *memInfo)); +#else +EXTERN S16 cmUnpkCmIpHdrParm ARGS((CmIpHdrParm *unpkParam, Buffer *mBuf)); +#endif + +/* added new packing/unpacking function */ +#ifdef LOCAL_INTF +EXTERN S16 cmPkCmTptLocalInf ARGS((CmTptLocalInf *pkParam, Buffer *mBuf)); +EXTERN S16 cmUnpkCmTptLocalInf ARGS((CmTptLocalInf *unpkParam, Buffer *mBuf)); +#endif /* LOCAL_INTF */ + +EXTERN S16 cmPkCmIcmpFilter ARGS((CmIcmpFilter *pkParam, Buffer *mBuf)); +EXTERN S16 cmUnpkCmIcmpFilter ARGS((CmIcmpFilter *unpkParam, Buffer *mBuf)); + +/* added new packing/unpacking functions */ +#ifdef IPV6_OPTS_SUPPORTED +EXTERN S16 cmPkCmIpv6ExtHdr ARGS((CmIpv6ExtHdr *pkParam, Buffer *mBuf)); +EXTERN S16 cmPkCmIpv6RtHdr ARGS((CmIpv6RtHdr *pkParam, Buffer *mBuf)); +EXTERN S16 cmUnpkCmIpv6RtHdr ARGS((CmIpv6RtHdr *unpkParam, Buffer *mBuf, + Mem *memInfo)); +EXTERN S16 cmUnpkCmIpv6ExtHdr ARGS((CmIpv6ExtHdr *unpkParam, Buffer *mBuf, + Mem *memInfo)); +EXTERN S16 cmPkCmIpv6DestOptsArr ARGS((CmIpv6DestOptsArr *pkParam, + Buffer *mBuf)); +EXTERN S16 cmPkCmIpv6DestOptsHdr ARGS((CmIpv6DestOptsHdr *pkParam, + Buffer *mBuf)); +EXTERN S16 cmUnpkCmIpv6DestOptsHdr ARGS((CmIpv6DestOptsHdr *unpkParam, + Buffer *mBuf, Mem *memInfo)); +EXTERN S16 cmUnpkCmIpv6DestOptsArr ARGS((CmIpv6DestOptsArr *unpkParam, + Buffer *mBuf, Mem *memInfo)); +EXTERN S16 cmPkCmIpv6HBHHdrArr ARGS((CmIpv6HBHHdrArr *pkParam, Buffer *mBuf)); +EXTERN S16 cmPkCmIpv6HBHHdr ARGS((CmIpv6HBHHdr *pkParam, Buffer *mBuf)); +EXTERN S16 cmUnpkCmIpv6HBHHdr ARGS((CmIpv6HBHHdr *unpkParam, Buffer *mBuf, + Mem *memInfo)); +EXTERN S16 cmUnpkCmIpv6HBHHdrArr ARGS((CmIpv6HBHHdrArr *unpkParam, + Buffer *mBuf, Mem *memInfo)); +#endif /* IPV6_OPTS_SUPPORTED */ +#endif /* CM_INET2 */ + +#ifdef __cplusplus +} +#endif + +#endif /* __CMTPTX__ */ + +/********************************************************************30** + End of file +*********************************************************************31*/ diff --git a/src/cm/envopt.h b/src/cm/envopt.h index 7d5107d82..ec5c37f69 100755 --- a/src/cm/envopt.h +++ b/src/cm/envopt.h @@ -35,6 +35,14 @@ #define __ENVOPTH__ #define IOT_REPETITION +/************************************************************************ + kernel SCTP parameters +************************************************************************/ +#define CM_LKSCTP +#define CM_LKSCTP_NONBLOCK +#define SCTP_CONNECTX_NEW +#define CMINETDBG + /* defines */ /************************************************************************** diff --git a/src/cu_app/cu_app_f1ap.c b/src/cu_app/cu_app_f1ap.c deleted file mode 100644 index 6f5a1121d..000000000 --- a/src/cu_app/cu_app_f1ap.c +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* -################################################################################ -# Copyright (c) [2017-2019] [Radisys] # -# # -# 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. # -################################################################################ -*******************************************************************************/ - -/* This file contains handler for incoming F1AP message and sending of F1AP response */ - -#include "cu_mgr_main.h" -#include "cu_sctp.h" - -/******************************************************************* - * - * @brief Handles received F1AP message and sends back response - * - * @details - * - * Function : cuAppInmsgHdlr - * - * Functionality: - * - Decodes received F1AP control message - * - Prepares response message, encodes and sends to SCTP - * - * @params[in] - * @return ROK - success - * RFAILED - failure - * - * ****************************************************************/ -void cuAppInmsgHdlr(char *recvBuf, U8 len) -{ - char *respBuf; - U8 respLen = 0; - - /* TODO : - call ASN decoder for incoming message - Check message type and fills its response - Call ASN encoder for response - Send Message to SCTP */ - - sctpOutMsgSend(respBuf, respLen); - -} /* End of cuAppInmsgHdlr */ - -/********************************************************************** - End of file -**********************************************************************/ diff --git a/src/cu_app/cu_sctp.c b/src/cu_app/cu_sctp.c deleted file mode 100644 index a1543c09c..000000000 --- a/src/cu_app/cu_sctp.c +++ /dev/null @@ -1,629 +0,0 @@ -/******************************************************************************* -################################################################################ -# Copyright (c) [2017-2019] [Radisys] # -# # -# 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. # -################################################################################ -*******************************************************************************/ - -/* This file contains all SCTP related functionality */ - -#include -#include -#include -#include -#include -#include - -#include "cu_sctp.h" - -/* Global variable declaration */ -S8 sockFd; -S8 lstnSockFd; -U8 socket_type; -Bool nonblocking; -Bool connUp; -int assocId; - -sockaddr_storage_t local_addr; -sockaddr_storage_t remote_addr; -U8 la_len; -U8 ra_len; - -SctpParams *sctpCfg; - -/************************************************************************** - * @brief Task Initiation callback function. - * - * @details - * - * Function : sctpActvInit - * - * Functionality: - * This function is supplied as one of parameters during SCTP's - * task registration. SSI will invoke this function once, after - * it creates and attaches this TAPA Task to a system task. - * - * @param[in] Ent entity, the entity ID of this task. - * @param[in] Inst inst, the instance ID of this task. - * @param[in] Region region, the region ID registered for memory - * usage of this task. - * @param[in] Reason reason. - * @return ROK - success - * RFAILED - failure - ***************************************************************************/ -S16 sctpActvInit(Ent entity, Inst inst, Region region, Reason reason) -{ - sockFd = 0; - lstnSockFd = 0; - connUp = FALSE; - assocId = 0; - nonblocking = FALSE; - sctpCfg = &(cuCfgParams.sctpParams); - return ROK; - -} - -/************************************************************************** - * @brief Task Activation callback function. - * - * @details - * - * Function : sctpActvTsk - * - * Functionality: - * This function handles all SCTP messages received - * This API is registered with SSI during the - * Task Registration of DU APP. - * - * @param[in] Pst *pst, Post structure of the primitive. - * @param[in] Buffer *mBuf, Packed primitive parameters in the - * buffer. - * @return ROK - success - * RFAILED - failure - * - ***************************************************************************/ -S16 sctpActvTsk(Pst *pst, Buffer *mBuf) -{ - -//TODO: TBD - return ROK; -} - -/******************************************************************* - * - * @brief Converts internet address to sockaddr type - * - * @details - * - * Function : getSockAddr - * - * Functionality: - * Converts internet address to sockaddr type - * - * @params[in] - * @return ROK - success - * RFAILED - failure - * - * ****************************************************************/ - -S16 getSockAddr(char *hostIp, U16 portNum, Bool ipv4Pres, Bool local) -{ - sockaddr_storage_t address; - struct hostent *host; - void *la_raw; - U8 addr_len; - - /* Getting the transport address for local host name */ - if(ipv4Pres) - { - host = gethostbyname(hostIp); - if (host == NULL || host->h_length < 1) - { - printf("\nBad hostname: %s", hostIp); - RETVALUE(NULLP); - } - addr_len = sizeof(address.v4); - la_raw = &address.v4.sin_addr; - address.v4.sin_family = AF_INET; - address.v4.sin_port = htons(portNum); - } - else - { - host = gethostbyname2(hostIp, AF_INET6); - if (host == NULL || host->h_length < 1) - { - printf("\n Bad hostname: %s", hostIp); - RETVALUE(RFAILED); - } - addr_len = sizeof(address.v6); - la_raw = &address.v6.sin6_addr; - address.v6.sin6_family = AF_INET6; - address.v6.sin6_port = htons(portNum); - address.v6.sin6_scope_id = 0; - } - - memcpy((U8 *)la_raw, (U8 *)host->h_addr_list[0], host->h_length); - - if(local) - { - local_addr = address; - la_len = addr_len; - } - else - { - remote_addr = address; - ra_len = addr_len; - } - - RETVALUE(ROK); -} /* End of getSockAddr() */ - -/******************************************************************* - * - * @brief Opens a non-blocking socket and binds to local address - * - * @details - * - * Function : openSctpEndp - * - * Functionality: - * Opens a non-blocking socket and binds to local address - * - * @params[in] - * @return ROK - success - * RFAILED - failure - * - * ****************************************************************/ -S16 openSctpEndp() -{ - sa_family_t la_family; - U8 la_len; - U8 error; - - printf("\nEntering openSctpEndp"); - - /* Getting the transport address for local host name */ - if(sctpCfg->cuIpAddr.ipV4Pres) - { - printf("\nLocal Host Address %s",cuCfgParams.sctpParams.cuIpAddr.ipV4Addr); - if(getSockAddr(sctpCfg->cuIpAddr.ipV4Addr, sctpCfg->cuPort, TRUE, TRUE) != ROK ) - { - printf("\nUnable to get local address"); - RETVALUE(RFAILED); - } - la_len = sizeof(local_addr.v4); - la_family = AF_INET; - } - else - { - if(getSockAddr(sctpCfg->cuIpAddr.ipV6Addr, sctpCfg->cuPort, FALSE, TRUE) != ROK ) - { - printf("\nUnable to get local address"); - RETVALUE(RFAILED); - } - la_len = sizeof(local_addr.v6); - la_family = AF_INET6; - } - - socket_type = SOCK_STREAM; - - /* Creating new end point */ - lstnSockFd = socket(la_family, socket_type, IPPROTO_SCTP); - if (lstnSockFd < 0) - { - printf("\n Failed to create socket %s", strerror(errno)); - RETVALUE(RFAILED); - } - - /* Binding socket to local address and port */ - error = bind(lstnSockFd, &local_addr.sa, la_len); - if(error != 0) - { - printf("\n Failed to bind to socket. Error [%s]", strerror(errno)); - RETVALUE(RFAILED); - } - - /* Setting socket as non-blocking*/ - error = fcntl(lstnSockFd, F_SETFL, O_NONBLOCK); - if (error != 0) - { - printf("\n Failed to set socket as non blocking. Error [%s]", strerror(errno)); - RETVALUE(RFAILED); - } - else - { - nonblocking = TRUE; - } - - RETVALUE(ROK); - -} /* End of openSctpEndp() */ - -/******************************************************************* - * - * @brief Listens for connection request from peer SCTP - * - * @details - * - * Function : sctpConnAccept - * - * Functionality: - * Listens and accepts SCTP connection request from peer. - * Here, DU-SCTP will initate connection towards CU-SCTP - * - * @params[in] - * @return ROK - success - * RFAILED - failure - * - * ****************************************************************/ -S16 sctpConnAccept() -{ - U8 error; - U8 ret; - socklen_t len = 0; - - /* Getting the transport address for remote host name */ - if(sctpCfg->duIpAddr.ipV4Pres) - { - ret = getSockAddr(sctpCfg->duIpAddr.ipV4Addr, sctpCfg->duPort, TRUE, FALSE); - } - else - { - ret = getSockAddr(sctpCfg->duIpAddr.ipV6Addr, sctpCfg->duPort, FALSE, FALSE); - } - if(ret != ROK) - { - printf("\nUnable to get remote address"); - RETVALUE(RFAILED); - } - - printf("\nStart listening on sockFd %d", lstnSockFd); - /* Mark sockFd as being able to accept new associations */ - error = listen(lstnSockFd, 5); - if (error != 0) - { - printf("\nListen Failure: %s", strerror(errno)); - RETVALUE(RFAILED); - } - - while(!connUp) - { - len = 0; - if (!sockFd) - { - if ((sockFd = accept(lstnSockFd, &remote_addr.sa, &len)) < 0) - { - if(errno == EAGAIN && nonblocking) - { - sockFd = 0; - continue; - } - printf("\nFailure in accepting connection request. Error: %s", strerror(errno)); - RETVALUE(RFAILED); - } - else - { - /* Mark connection UP */ - printf("\nCommunication UP. Sock Fd %d", sockFd); - connUp = TRUE; - } - } - } - - RETVALUE(ROK); -}/* End of sctpConnAccept */ - -/******************************************************************* - * - * @brief Handles an incoming message - * - * @details - * - * Function : sctpInmsgHdlr - * - * Functionality: - * Handles an incoming message - * - * @params[in] Socket file descriptor - * Incoming message header - * Message Length - * - * @return ROK - success - * RFAILED - failure - * - * ****************************************************************/ -S16 sctpInmsgHdlr(struct msghdr *msg, size_t msgLen) -{ - sctp_cmsg_data_t *data; - struct cmsghdr *cmsg; - union sctp_notification *sn; - - for (cmsg = CMSG_FIRSTHDR(msg); cmsg != NULL; cmsg = CMSG_NXTHDR(msg, cmsg)) - { - data = (sctp_cmsg_data_t *)CMSG_DATA(cmsg); - } - - printf("\nReceived Message"); - /* if incoming message is data */ - if (!(MSG_NOTIFICATION & msg->msg_flags)) - { - U8 index = 0; - char *recvBuf; - char *temp = recvBuf; - U8 len = msgLen; - U8 temp_len; - U8 i; - - /* Extracting the received message */ - while( msgLen > 0) - { - temp = msg->msg_iov[index].iov_base; - temp_len = msg->msg_iov[index].iov_len; - - if(temp_len > msgLen) - { - temp[(temp_len = msgLen) - 1] = '\0'; - } - - if((msgLen -= temp_len) > 0) - { - index++; - } - for (i = 0; i < temp_len-1 ; ++i) - { - if (!isprint(temp[i])) - temp[i] = '.'; - } - printf("\nPrinting temp %s", temp); - temp = temp + temp_len; - index++; - } - recvBuf[len - 1] = '\0'; - printf("\n Message: %s temp %s", recvBuf, temp); - - /* Send received message to cu_app handler */ - cuAppInmsgHdlr(recvBuf, len); - - } - else /* If the incoming message is notification */ - { - /* Extract and perform necessary action - Change the connUp state accordingly */ - union sctp_notification *notify; - notify = (union sctp_notification *)msg->msg_iov->iov_base; - - if (SCTP_ASSOC_CHANGE != notify->sn_header.sn_type) - { - printf("\nReceived unexpected notification: %d", notify->sn_header.sn_type); - RETVALUE(RFAILED); - } - - switch(notify->sn_assoc_change.sac_state) - { - case SCTP_COMM_UP: - printf("Received SCTP_COMM_UP\n"); - break; - case SCTP_COMM_LOST: - printf("Received SCTP_COMM_LOST\n"); - break; - case SCTP_RESTART: - printf("Received SCTP_RESTART\n"); - break; - case SCTP_SHUTDOWN_COMP: - printf("Received SCTP_SHUTDOWN_COMP\n"); - break; - case SCTP_CANT_STR_ASSOC: - printf("Received SCTP_CANT_STR_ASSOC\n"); - break; - } - } - RETVALUE(ROK); -} - -/******************************************************************* - * - * @brief Receives message on the socket - * - * @details - * - * Function : sctpSockPoll - * - * Functionality: - * Receives message on the socket - * - * @params[in] - * @return ROK - success - * RFAILED - failure - * - * ****************************************************************/ -S16 sctpSockPoll() -{ - U8 error; - struct msghdr inmessage; - struct iovec iov; - char incmsg[CMSG_SPACE(sizeof(_sctp_cmsg_data_t))]; - sockaddr_storage_t msgname; - - /* Initialize inmessage with enough space for DATA... */ - memset(&inmessage, 0, sizeof(inmessage)); - if ((iov.iov_base = malloc(REALLY_BIG)) == NULL) - { - printf("\n malloc not enough memory!!!"); - close(sockFd); - connUp = FALSE; - RETVALUE(RFAILED); - } - iov.iov_len = REALLY_BIG; - inmessage.msg_iov = &iov; - inmessage.msg_iovlen = 1; - /* or a control message. */ - inmessage.msg_control = incmsg; - inmessage.msg_controllen = sizeof(incmsg); - inmessage.msg_name = &msgname; - inmessage.msg_namelen = sizeof(msgname); - - while (connUp) - { - error = recvmsg(sockFd, &inmessage, MSG_WAITALL); - if (error < 0) - { - if (nonblocking && (EAGAIN == errno)) - { - error = 0; - continue; - } - if (socket_type == SOCK_STREAM) - { - if (ENOTCONN != errno) - { - break; - } - printf("No association is present now!!\n"); - close(sockFd); - sockFd = 0; - connUp = FALSE; - } - break; - } - - sctpInmsgHdlr(&inmessage, error); - - inmessage.msg_control = incmsg; - inmessage.msg_controllen = sizeof(incmsg); - inmessage.msg_name = &msgname; - inmessage.msg_namelen = sizeof(msgname); - iov.iov_len = REALLY_BIG; - - }/* End of while(connUp) */ - - RETVALUE(ROK); -}/* End of sctpSockPoll() */ - -/******************************************************************* - * - * @brief Send message on SCTP socket - * - * @details - * - * Function : sctpOutMsgSend - * - * Functionality: - * Send message on SCTP socket - * - * @params[in] - * @return ROK - success - * RFAILED - failure - * - * ****************************************************************/ -S16 sctpOutMsgSend(char *message, U8 msglen) -{ - struct msghdr outmsg; - struct iovec iov; - int error = 0; - - do{ - if(connUp && msglen != 0) - { - iov.iov_base = message; - iov.iov_len = msglen; - - outmsg.msg_iov = &iov; - outmsg.msg_iovlen = 1; - outmsg.msg_control = NULL; - outmsg.msg_controllen = 0; - outmsg.msg_name = &remote_addr; - outmsg.msg_namelen = ra_len; - outmsg.msg_flags = 0; - - error = sendmsg(sockFd, &outmsg, 0); - } - - if(error != msglen) - { - if(nonblocking && EAGAIN == errno) - { - continue; - } - else - { - printf("\n Error [%s] while sending message on SCTP assoc", strerror(errno)); - RETVALUE(RFAILED); - } - } - else - { - break; - } - }while(error != msglen); - - RETVALUE(ROK); - -} /* End of sctpOutMsgSend */ - -/******************************************************************* - * - * @brief SCTP Assoc establishment request from DU - * - * @details - * - * Function : sctpAssocReq - * - * Functionality: - * This function opens a socket at DU and - * intiates SCTP connection. - * - * @params[in] - * @return ROK - success - * RFAILED - failure - * - * ****************************************************************/ - -void sctpStartReq() -{ - printf("\nStarting CU SCTP"); - - /* Open SCTP socket and bind to local address */ - if(openSctpEndp() != ROK) - { - printf("\nFailed while opening SCTP endpoint"); - if(lstnSockFd > 0 ) - { - close(lstnSockFd); - lstnSockFd = 0; - } - /* TODO : Send Assoc establishment failure to cu_app if needed*/ - } - else if(sctpConnAccept() != ROK) /* send connection request */ - { - printf("\nFailed while connecting to peer"); - close(lstnSockFd); - lstnSockFd = 0; - assocId = 0; - nonblocking = FALSE; - /* TODO : Send Assoc establishment failure to cu_app */ - } - else - { - /* Send AssocCfm to cu_app */ - if(sctpSockPoll() != ROK) - { - printf("\nFailed while polling"); - /* Send failure to cu_app */ - } - } -} /* End of sctpStartReq */ - -/********************************************************************** - End of file -**********************************************************************/ diff --git a/src/cu_app/cu_util.c b/src/cu_stub/cu_stub.c similarity index 60% rename from src/cu_app/cu_util.c rename to src/cu_stub/cu_stub.c index 10741f0b1..00340e4d8 100644 --- a/src/cu_app/cu_util.c +++ b/src/cu_stub/cu_stub.c @@ -16,19 +16,75 @@ ################################################################################ *******************************************************************************/ -/* This file contains configurations for CU */ +/* This functions contains main() for cu_app */ -#include "cu_mgr_main.h" +#include "cu_stub.h" +#include "cu_stub_sctp.h" #define CU_ID 1 -#define CU_NAME "Oran_OAM_CU" -#define DU_IP_V4_ADDR "127.0.0.1" -#define CU_IP_V4_ADDR "127.0.0.2" +#define CU_NAME "ORAN_OAM_CU" +#define DU_IP_V4_ADDR "10.0.2.20" +#define CU_IP_V4_ADDR "10.0.2.25" #define DU_IP_V6_ADDR "0000:0000:0000:0000:0000:0000:0000:0001" #define CU_IP_V6_ADDR "0000:0000:0000:0000:0000:0000:0000:0011" #define DU_PORT 38472 #define CU_PORT 38472 +/******************************************************************* + * + * @brief Handles SCTP notification + * + * @details + * + * Function : sctpNtfyInd + * + * Functionality: + * Handles SCTP notification + * + * @params[in] sctp notification + * @return void + * + ******************************************************************/ +void sctpNtfyInd(CmInetSctpNotification *ntfy) +{ +//TODO +} + +/******************************************************************* + * + * @brief Main function of CU APP + * + * @details + * + * Function : main + * + * Functionality: + * - Reads CU related configurations + * - Initialize SCTP Parameters + * - Start SCTP receiver thread + * + * @params[in] + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ + +S16 tst() +{ + printf("\nStarting cu_app"); + + /* Read CU configurations */ + readCuCfg(); + + /* Initializing SCTP global parameters */ + sctpActvInit(0, 0, 0, 0); + + /* Start CU-SCTP to listen on incoming connection */ + sctpStartReq(); + + RETVALUE(ROK); +} + /******************************************************************* * * @brief Read CU related configuration @@ -48,29 +104,32 @@ void readCuCfg() { + U32 ipv4_du, ipv4_cu; + printf("\nReading CU configurations"); - + + cmInetAddr((S8*)DU_IP_V4_ADDR, &ipv4_du); + cmInetAddr((S8*)CU_IP_V4_ADDR, &ipv4_cu); + //U32 ipv6_int = inet_addr(DU_IP_V6_ADDR); + cuCfgParams.cuId = CU_ID; strcpy(cuCfgParams.cuName, CU_NAME); /* DU IP Address and Port*/ cuCfgParams.sctpParams.duIpAddr.ipV4Pres = true; - strcpy(cuCfgParams.sctpParams.duIpAddr.ipV4Addr, (char*)DU_IP_V4_ADDR); + cuCfgParams.sctpParams.duIpAddr.ipV4Addr = ipv4_du; cuCfgParams.sctpParams.duIpAddr.ipV6Pres = false; - strcpy(cuCfgParams.sctpParams.duIpAddr.ipV6Addr, (char*)DU_IP_V6_ADDR); + //strcpy(cuCfgParams.sctpParams.duIpAddr.ipV6Addr, (char*)DU_IP_V6_ADDR); cuCfgParams.sctpParams.duPort = DU_PORT; /* CU IP Address and Port*/ cuCfgParams.sctpParams.cuIpAddr.ipV4Pres = true; - strcpy(cuCfgParams.sctpParams.cuIpAddr.ipV4Addr, (char*)CU_IP_V4_ADDR); - printf("\nCU IP Address %s",cuCfgParams.sctpParams.cuIpAddr.ipV4Addr); + cuCfgParams.sctpParams.cuIpAddr.ipV4Addr = ipv4_cu; cuCfgParams.sctpParams.cuIpAddr.ipV6Pres = false; - printf("\nCU IP Address %s",cuCfgParams.sctpParams.cuIpAddr.ipV4Addr); - strcpy(cuCfgParams.sctpParams.cuIpAddr.ipV6Addr, DU_IP_V6_ADDR); + //strcpy(cuCfgParams.sctpParams.cuIpAddr.ipV6Addr, DU_IP_V6_ADDR); cuCfgParams.sctpParams.cuPort = CU_PORT; } /* End of readCuCfg */ - /********************************************************************** End of file **********************************************************************/ diff --git a/src/cu_app/cu_common.h b/src/cu_stub/cu_stub.h similarity index 61% rename from src/cu_app/cu_common.h rename to src/cu_stub/cu_stub.h index b2eeb9152..b2b98adcc 100644 --- a/src/cu_app/cu_common.h +++ b/src/cu_stub/cu_stub.h @@ -16,25 +16,54 @@ ################################################################################ *******************************************************************************/ -/* This file contains common defines for CU Config Params */ +#ifndef __CU_MGR_MAIN_H__ +#define __CU_MGR_MAIN_H__ -#ifndef __CU_COMMON_H__ -#define __CU_COMMON_H__ -#include "envdep.h" +#include "stdio.h" +#include "stdlib.h" +#include "string.h" +#include "stdbool.h" +#include "ctype.h" +#include "envopt.h" /* Environment options */ +#include "envdep.h" /* Environment dependent */ +#include "envind.h" /* Environment independent */ -#define MAX_IPV4_LEN 16 -#define MAX_IPV6_LEN 40 -#define CU_DU_NAME_LEN_MAX 150 /* Max length of CU/DU name string */ +#include "gen.h" /* General */ +#include "ssi.h" /* System services */ +#include "ss_queue.h" +#include "ss_task.h" +#include "ss_msg.h" +#include "cm_inet.h" + +#include "gen.x" /* General */ +#include "ssi.x" /* System services */ +#include "ss_queue.x" +#include "ss_task.x" +#include "ss_msg.x" +#include "cm_lib.x" +#include "cm_inet.x" + +#define MAX_IPV6_LEN 16 +#define CU_DU_NAME_LEN_MAX 50 /* Max length of CU/DU name string */ + +#define CU_APP_MEM_REG 1 +#define CU_POOL 1 typedef struct ipAddr { Bool ipV4Pres; - char ipV4Addr[MAX_IPV4_LEN]; + U32 ipV4Addr; Bool ipV6Pres; - char ipV6Addr[MAX_IPV6_LEN]; + U8 ipV6Addr[MAX_IPV6_LEN]; }SctpIpAddr; +typedef struct RrcVersion +{ + U8 rrcVer; /* Latest RRC Version */ + U32 extRrcVer; /* Latest RRC version extended */ +}RrcVersion; + typedef struct sctpParams { SctpIpAddr duIpAddr; @@ -48,11 +77,16 @@ typedef struct cuCfgParams U32 cuId; char cuName[CU_DU_NAME_LEN_MAX]; SctpParams sctpParams; + RrcVersion rrcVersion; }CuCfgParams; +CuCfgParams cuCfgParams; //global variable to hold all configs -extern CuCfgParams cuCfgParams; +void readCuCfg(); +void cuAppInmsgHdlr(Buffer *mBuf); +void sctpNtfyInd(CmInetSctpNotification *ntfy); #endif + /********************************************************************** End of file **********************************************************************/ diff --git a/src/cu_stub/cu_stub_sctp.c b/src/cu_stub/cu_stub_sctp.c new file mode 100644 index 000000000..c7a3eeb1c --- /dev/null +++ b/src/cu_stub/cu_stub_sctp.c @@ -0,0 +1,556 @@ +/******************************************************************************* +################################################################################ +# Copyright (c) [2017-2019] [Radisys] # +# # +# 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. # +################################################################################ +*******************************************************************************/ + +/* This file contains all SCTP related functionality */ + +#include +#include "f1ap_msg_hdl.h" +#include "cu_stub_sctp.h" + +/* Global variable declaration */ +CmInetFd lstnSockFd; /* Listening Socket file descriptor */ +CmInetFd sockFd; /* Socket File descriptor */ +U8 socket_type; /* Socket type */ +Bool nonblocking; /* Blocking/Non-blocking socket */ +Bool connUp; /* Is connection up */ +int assocId; /* Assoc Id of connected assoc */ + +CmInetNetAddrLst localAddrLst; +CmInetNetAddrLst remoteAddrLst; + +SctpParams *sctpCfg; /* SCTP configurations at DU */ + +/************************************************************************** + * @brief Task Initiation callback function. + * + * @details + * + * Function : sctpActvInit + * + * Functionality: + * This function is supplied as one of parameters during SCTP's + * task registration. SSI will invoke this function once, after + * it creates and attaches this TAPA Task to a system task. + * + * @param[in] Ent entity, the entity ID of this task. + * @param[in] Inst inst, the instance ID of this task. + * @param[in] Region region, the region ID registered for memory + * usage of this task. + * @param[in] Reason reason. + * @return ROK - success + * RFAILED - failure + ***************************************************************************/ +S16 sctpActvInit(Ent entity, Inst inst, Region region, Reason reason) +{ + connUp = FALSE; + assocId = 0; + nonblocking = FALSE; + sctpCfg = &(cuCfgParams.sctpParams); + return ROK; + +} + +/************************************************************************** + * @brief Task Activation callback function. + * + * @details + * + * Function : sctpActvTsk + * + * Functionality: + * This function handles all SCTP messages received + * This API is registered with SSI during the + * Task Registration of DU APP. + * + * @param[in] Pst *pst, Post structure of the primitive. + * @param[in] Buffer *mBuf, Packed primitive parameters in the + * buffer. + * @return ROK - success + * RFAILED - failure + * + ***************************************************************************/ +S16 sctpActvTsk(Pst *pst, Buffer *mBuf) +{ + +//TODO: TBD + return ROK; +} + +/******************************************************************* + * + * @brief Opens a non-blocking socket and binds to local address + * + * @details + * + * Function : openSctpEndp + * + * Functionality: + * Opens a non-blocking socket and binds to local address + * + * @params[in] + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +S16 openSctpEndp() +{ + U8 ret; + U8 numRetry = 0; + + /* Opening a non-blocking SCTP socket */ + socket_type = CM_INET_STREAM; + + do{ + ret = cmInetSocket(socket_type, &lstnSockFd, IPPROTO_SCTP,(sctpCfg->cuIpAddr.ipV4Pres ? AF_INET : AF_INET6)); + if (ret != ROK) + { + numRetry++; + if(numRetry >= MAX_RETRY) + { + printf("\nAll attempts to open socket failed."); + /* Send indication to du_app */ + RETVALUE(RFAILED); + } + else + { + printf("\nRetrying socket opening"); + } + } + else + { + printf("\nSocket[%d] opened successfully",lstnSockFd.fd); + break; + } + }while(numRetry < MAX_RETRY); + + RETVALUE(ROK); +} /* End of openSctpEndp */ + + +/******************************************************************* + * + * @brief Bind socket to local Ip address and port + * + * @details + * + * Function : bindSctpEndp + * + * Functionality: + * -Bind socket to local Ip address and port + * + * @params[in] + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +S16 bindSctpEndp() +{ + + U8 ret; + U8 numRetry = 0; + + /* Binding the socket with local address */ + localAddrLst.count = 1; + if(sctpCfg->cuIpAddr.ipV4Pres) + { + localAddrLst.addrs[0].type = CM_INET_IPV4ADDR_TYPE; + localAddrLst.addrs[0].u.ipv4NetAddr = CM_INET_NTOH_U32(sctpCfg->cuIpAddr.ipV4Addr); + } + else if(sctpCfg->cuIpAddr.ipV6Pres) + { + localAddrLst.addrs[0].type = CM_INET_IPV6ADDR_TYPE; + // CM_INET_COPY_IPV6ADDR(&(localAddrLst.addrs[0].u.ipv6NetAddr),&(sctpCfg->cuIpAddr.ipV6Addr); + } + else + { + localAddrLst.addrs[0].type = CM_INET_IPV4ADDR_TYPE; + localAddrLst.addrs[0].u.ipv4NetAddr = 0; + } + + do{ + ret = cmInetSctpBindx(&lstnSockFd, &localAddrLst, sctpCfg->cuPort); + if (ret != ROK) + { + numRetry++; + if(numRetry >= MAX_RETRY) + { + printf("\nAll attempts to bind socket failed."); + cmInetClose(&lstnSockFd); + /* Send indication to du_app */ + RETVALUE(RFAILED); + } + else + { + printf("\nRetrying socket binding"); + } + } + else + { + printf("\nSocket bind successful"); + break; + } + }while(numRetry < MAX_RETRY); + + RETVALUE(ROK); + +} /* End of bindSctpEndp() */ + +/******************************************************************* + * + * @brief Sets socket options as per requirement + * + * @details + * + * Function : sctpSetSockOpts + * + * Functionality: + * Sets socket options as per requirement + * + * @params[in] + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +S16 sctpSetSockOpts() +{ + CmSctpEvent sctpEvent; + + sctpEvent.dataIoEvent = TRUE; + sctpEvent.associationEvent = TRUE; + sctpEvent.addressEvent = TRUE; + sctpEvent.sendFailureEvent = TRUE; + sctpEvent.peerErrorEvent = TRUE; + sctpEvent.shutdownEvent = TRUE; + sctpEvent.partialDeliveryEvent = TRUE; + sctpEvent.adaptationLayerEvent = TRUE; + + cmInetSetOpt(&sockFd, CM_SOCKOPT_LEVEL_SCTP, CM_SOCKOPT_OPT_SCTP_EVENTS, &sctpEvent); + RETVALUE(ROK); +} + +/******************************************************************* + * + * @brief Initiates connection with peer SCTP + * + * @details + * + * Function : sctpAccept + * + * Functionality: + * Establishes SCTP connection with peer. + * Here, DU-SCTP will initate connection towards CU-SCTP + * + * @params[in] + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +S16 sctpAccept() +{ + U8 ret; + CmInetAddr peerAddr; + + ret = cmInetListen(&lstnSockFd, 1);; + if (ret != ROK) + { + printf("\nListening on socket failed"); + cmInetClose(&lstnSockFd); + RETVALUE(RFAILED); + } + + while(!connUp) + { + ret = cmInetAccept(&lstnSockFd, &peerAddr, &sockFd); + if (ret == ROKDNA) + { + continue; + } + else if(ret != ROK) + { + printf("\nFailed to accept connection"); + RETVALUE(RFAILED); + } + else + { + connUp = TRUE; + sctpSetSockOpts(); + printf("\nAccepted incoming connection"); + break; + } + } + + RETVALUE(ROK); +}/* End of sctpAccept() */ + +/******************************************************************* + * + * @brief Handles an SCTP notification message + * + * @details + * + * Function : sctpNtfyHdlr + * + * Functionality: + * Handles an SCTP notification message + * + * @params[in] Notify message + * + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +S16 sctpNtfyHdlr(CmInetSctpNotification *ntfy) +{ + switch(ntfy->header.nType) + { + case CM_INET_SCTP_ASSOC_CHANGE : + switch(ntfy->u.assocChange.state) + { + case CM_INET_SCTP_COMM_UP: + printf("\nSCTP notify assocchange(comm up) received"); + connUp = TRUE; + break; + case CM_INET_SCTP_COMM_LOST: + printf("\nSCTP notify assocchange(comm lost) received"); + connUp = FALSE; + break; + case CM_INET_SCTP_RESTART: + printf("\nSCTP notify assocchange(sctp restart) received"); + connUp = FALSE; + break; + case CM_INET_SCTP_SHUTDOWN_COMP: /* association gracefully shutdown */ + printf("\nSCTP notify assocchange(shutdown complete) received\n"); + connUp = FALSE; + break; + case CM_INET_SCTP_CANT_STR_ASSOC: + printf("\nSCTP notify assocchange(cant str assoc) received\n"); + connUp = FALSE; + break; + default: + printf("\nInvalid event"); + break; + } + break; + case CM_INET_SCTP_PEER_ADDR_CHANGE : + printf("\nSCTP notify peer addr change received"); + /* Need to add handler */ + break; + case CM_INET_SCTP_REMOTE_ERROR : + printf("\nSCTP notify remote error received"); + break; + case CM_INET_SCTP_SEND_FAILED : + printf("\nSCTP notify send failed received\n"); + break; + case CM_INET_SCTP_SHUTDOWN_EVENT : /* peer socket gracefully closed */ + printf("\nSCTP notify shutdown event received\n"); + connUp = FALSE; + break; + case CM_INET_SCTP_ADAPTATION_INDICATION : + printf("\nSCTP notify adaptation indication received\n"); + break; + case CM_INET_SCTP_PARTIAL_DELIVERY_EVENT: + printf("\nSCTP notify partial delivery received\n"); + break; + default: + printf("\nInvalid sctp notification type\n"); + break; + } + + sctpNtfyInd(ntfy); + RETVALUE(ROK); +}/* End of sctpNtfyHdlr */ + +/******************************************************************* + * + * @brief Receives message on the socket + * + * @details + * + * Function : sctpSockPoll + * + * Functionality: + * Receives message on the socket + * + * @params[in] + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +S16 sctpSockPoll() +{ + U8 ret; + S16 numFds; + CmInetFdSet readFd; + U16 port; + U32 timeout; /* timeout for cmInetSelect() */ + U32 *timeoutPtr; /* pointer to timeout */ + U32 flag; + Buffer *mBuf; + MsgLen bufLen; + CmInetMemInfo memInfo; /* buffer allocation info */ + CmInetNetAddr addr; + CmInetSctpSndRcvInfo info; + CmInetSctpNotification ntfy; + + if (sockFd.blocking) + { + /* blocking */ + timeoutPtr = NULLP; + } + else + { + /* non-blocking */ + timeout = 0; + timeoutPtr = &timeout; + } + memInfo.region = CU_APP_MEM_REG; + memInfo.pool = CU_POOL; + CM_INET_FD_ZERO(&readFd); + + while(1) + { + CM_INET_FD_SET(&sockFd, &readFd); + ret = cmInetSelect(&readFd, NULLP, timeoutPtr, &numFds); + if (CM_INET_FD_ISSET(&sockFd, &readFd)) + { + CM_INET_FD_CLR(&sockFd, &readFd); + ret = cmInetSctpRecvMsg(&sockFd, &addr, &port, &memInfo, &mBuf, &bufLen, &info, &flag, &ntfy); + if (ret != ROK) + { + printf("\nFailed to receive sctp msg\n"); + } + else + { + if ((flag & CM_INET_SCTP_MSG_NOTIFICATION) != 0) + { + ret = sctpNtfyHdlr(&ntfy); + if(ret != ROK) + { + printf("\nFailed to process sctp notify msg\n"); + } + } + else if(connUp) /* If data received */ + { + F1InmsgHdlr(mBuf); + SPutMsg(mBuf); + } + else + { + SPutMsg(mBuf); + } + } + } + }; + + RETVALUE(ROK); +}/* End of sctpSockPoll() */ + +/******************************************************************* + * + * @brief Send message on SCTP socket + * + * @details + * + * Function : sctpOutMsgSend + * + * Functionality: + * Send message on SCTP socket + * + * @params[in] + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +S16 sctpOutMsgSend(Buffer *mBuf) +{ + U8 ret; + MsgLen len; /* number of actually sent octets */ + CmInetNetAddr peerAddr; /* destination port address */ + CmInetNetAddr *dstAddr; + CmInetMemInfo memInfo; + + memInfo.region = CU_APP_MEM_REG; + memInfo.pool = CU_POOL; + + + if(sctpCfg->duIpAddr.ipV4Pres) + { + peerAddr.type = CM_INET_IPV4ADDR_TYPE; + peerAddr.u.ipv4NetAddr = CM_INET_NTOH_U32(sctpCfg->duIpAddr.ipV4Addr); + dstAddr = &peerAddr; + } + else if(sctpCfg->duIpAddr.ipV6Pres) + { + peerAddr.type = CM_INET_IPV6ADDR_TYPE; + //CM_INET_COPY_IPV6ADDR(&(primDstAddr.u.ipv6NetAddr),&(sctpCfg->duIpAddr.ipV6Addr); + dstAddr = &peerAddr; + } + else + { + dstAddr = NULLP; + } + + ret = cmInetSctpSendMsg(&sockFd, dstAddr, sctpCfg->duPort, &memInfo, mBuf, &len, 0, FALSE, 0, 0/*SCT_PROTID_NONE*/, RWOULDBLOCK); + if(ret != ROK && ret != RWOULDBLOCK) + { + printf("\nFailed sending the message"); + RETVALUE(RFAILED); + } + + RETVALUE(ROK); +} /* End of sctpOutMsgSend */ + +/******************************************************************* + * + * @brief Start SCTP at CU + * + * @details + * + * Function : sctpStartReq + * + * Functionality: + * Start SCTP at CU + * + * @params[in] + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +void sctpStartReq() +{ + if(openSctpEndp() != ROK) + { + printf("\nFailed while opening socket"); + } + else if(bindSctpEndp() != ROK) + { + printf("\nFailed while binding socket"); + } + else if(sctpAccept() != ROK) + { + printf("\nFailed while accepting connection"); + } + else if(sctpSockPoll() != ROK) + { + printf("\nFailed while polling"); + } +} /* End of sctpAssocReq */ + +/********************************************************************** + End of file +**********************************************************************/ diff --git a/src/cu_app/cu_sctp.h b/src/cu_stub/cu_stub_sctp.h similarity index 74% rename from src/cu_app/cu_sctp.h rename to src/cu_stub/cu_stub_sctp.h index 1d1c371aa..4cd30bf78 100644 --- a/src/cu_app/cu_sctp.h +++ b/src/cu_stub/cu_stub_sctp.h @@ -21,34 +21,19 @@ #ifndef __CU_SCTP_H__ #define __CU_SCTP_H__ -#include -#include -#include "cu_mgr_main.h" +#include "cu_stub.h" +#include "cm_inet.h" +#include "cm_tpt.h" + +#include "cm_inet.x" +#include "cm_tpt.x" + +#define MAX_RETRY 5 EXTERN S16 sctpActvInit(Ent entity, Inst inst, Region region, Reason reason); EXTERN S16 sctpActvTsk(Pst *pst, Buffer *mBuf); EXTERN void sctpStartReq(); -EXTERN S16 sctpOutMsgSend(char *message, U8 msglen); - -#define REALLY_BIG 65536 - -/* Convenience structure to determine space needed for cmsg. */ -typedef union -{ - struct sctp_initmsg init; - struct sctp_sndrcvinfo sndrcvinfo; -}_sctp_cmsg_data_t; - -#define CMSG_SPACE_INITMSG (CMSG_SPACE(sizeof(struct sctp_initmsg))) -#define CMSG_SPACE_SNDRCV (CMSG_SPACE(sizeof(struct sctp_sndrcvinfo))) - -typedef union -{ - struct sockaddr_storage ss; - struct sockaddr_in v4; - struct sockaddr_in6 v6; - struct sockaddr sa; -} sockaddr_storage_t; +EXTERN S16 sctpOutMsgSend(Buffer *mBuf); #endif diff --git a/src/du_app/F1AP/asn/--help b/src/du_app/F1AP/asn/--help new file mode 100755 index 000000000..b8f814ff9 Binary files /dev/null and b/src/du_app/F1AP/asn/--help differ diff --git a/src/du_app/F1AP/asn/.F1SetupRequest.h.swp b/src/du_app/F1AP/asn/.F1SetupRequest.h.swp new file mode 100755 index 000000000..6686feb46 Binary files /dev/null and b/src/du_app/F1AP/asn/.F1SetupRequest.h.swp differ diff --git a/src/du_app/F1AP/asn/ANY.c b/src/du_app/F1AP/asn/ANY.c new file mode 100755 index 000000000..0b815577e --- /dev/null +++ b/src/du_app/F1AP/asn/ANY.c @@ -0,0 +1,450 @@ +/* + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs = { + sizeof(ANY_t), + offsetof(ANY_t, _asn_ctx), + ASN_OSUBV_ANY +}; +asn_TYPE_operation_t asn_OP_ANY = { + OCTET_STRING_free, + OCTET_STRING_print, + OCTET_STRING_compare, + OCTET_STRING_decode_ber, + OCTET_STRING_encode_der, + OCTET_STRING_decode_xer_hex, + ANY_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, 0, 0, 0, +#else + ANY_decode_uper, + ANY_encode_uper, + ANY_decode_aper, + ANY_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + 0, /* Random fill is not defined for ANY type */ + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_ANY = { + "ANY", + "ANY", + &asn_OP_ANY, + 0, 0, 0, 0, + { 0, 0, asn_generic_no_constraint }, /* No constraints */ + 0, 0, /* No members */ + &asn_SPC_ANY_specs, +}; + +#undef RETURN +#define RETURN(_code) \ + do { \ + asn_dec_rval_t tmprval; \ + tmprval.code = _code; \ + tmprval.consumed = consumed_myself; \ + return tmprval; \ + } while(0) + +asn_enc_rval_t +ANY_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, + void *app_key) { + if(flags & XER_F_CANONICAL) { + /* + * Canonical XER-encoding of ANY type is not supported. + */ + ASN__ENCODE_FAILED; + } + + /* Dump as binary */ + return OCTET_STRING_encode_xer(td, sptr, ilevel, flags, cb, app_key); +} + +struct _callback_arg { + uint8_t *buffer; + size_t offset; + size_t size; +}; + +static int ANY__consume_bytes(const void *buffer, size_t size, void *key); + +int +ANY_fromType(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr) { + struct _callback_arg arg; + asn_enc_rval_t erval = {0,0,0}; + + if(!st || !td) { + errno = EINVAL; + return -1; + } + + if(!sptr) { + if(st->buf) FREEMEM(st->buf); + st->size = 0; + return 0; + } + + arg.offset = arg.size = 0; + arg.buffer = 0; + + erval = der_encode(td, sptr, ANY__consume_bytes, &arg); + if(erval.encoded == -1) { + if(arg.buffer) FREEMEM(arg.buffer); + return -1; + } + assert((size_t)erval.encoded == arg.offset); + + if(st->buf) FREEMEM(st->buf); + st->buf = arg.buffer; + st->size = arg.offset; + + return 0; +} + +int +ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr) { + uint8_t *buffer = NULL; + ssize_t erval; + + if(!st || !td) { + errno = EINVAL; + return -1; + } + + if(!sptr) { + if(st->buf) FREEMEM(st->buf); + st->size = 0; + return 0; + } + + erval = aper_encode_to_new_buffer(td, td->encoding_constraints.per_constraints, sptr, (void**)&buffer); + + if(erval == -1) { + if(buffer) FREEMEM(buffer); + return -1; + } + assert((size_t)erval > 0); + + if(st->buf) FREEMEM(st->buf); + st->buf = buffer; + st->size = erval; + + return 0; +} + +ANY_t * +ANY_new_fromType(asn_TYPE_descriptor_t *td, void *sptr) { + ANY_t tmp; + ANY_t *st; + + if(!td || !sptr) { + errno = EINVAL; + return 0; + } + + memset(&tmp, 0, sizeof(tmp)); + + if(ANY_fromType(&tmp, td, sptr)) return 0; + + st = (ANY_t *)CALLOC(1, sizeof(ANY_t)); + if(st) { + *st = tmp; + return st; + } else { + FREEMEM(tmp.buf); + return 0; + } +} + +ANY_t * +ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr) { + ANY_t tmp; + ANY_t *st; + + if(!td || !sptr) { + errno = EINVAL; + return 0; + } + + memset(&tmp, 0, sizeof(tmp)); + + if(ANY_fromType_aper(&tmp, td, sptr)) return 0; + + st = (ANY_t *)CALLOC(1, sizeof(ANY_t)); + if(st) { + *st = tmp; + return st; + } else { + FREEMEM(tmp.buf); + return 0; + } +} + +int +ANY_to_type(ANY_t *st, asn_TYPE_descriptor_t *td, void **struct_ptr) { + asn_dec_rval_t rval; + void *newst = 0; + + if(!st || !td || !struct_ptr) { + errno = EINVAL; + return -1; + } + + if(st->buf == 0) { + /* Nothing to convert, make it empty. */ + *struct_ptr = (void *)0; + return 0; + } + + rval = ber_decode(0, td, (void **)&newst, st->buf, st->size); + if(rval.code == RC_OK) { + *struct_ptr = newst; + return 0; + } else { + /* Remove possibly partially decoded data. */ + ASN_STRUCT_FREE(*td, newst); + return -1; + } +} + +int +ANY_to_type_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void **struct_ptr) { + asn_dec_rval_t rval; + void *newst = 0; + + if(!st || !td || !struct_ptr) { + errno = EINVAL; + return -1; + } + + if(st->buf == 0) { + /* Nothing to convert, make it empty. */ + *struct_ptr = (void *)0; + return 0; + } + + rval = aper_decode(0, td, (void **)&newst, st->buf, st->size, 0, 0); + if(rval.code == RC_OK) { + *struct_ptr = newst; + return 0; + } else { + /* Remove possibly partially decoded data. */ + ASN_STRUCT_FREE(*td, newst); + return -1; + } +} + +static int ANY__consume_bytes(const void *buffer, size_t size, void *key) { + struct _callback_arg *arg = (struct _callback_arg *)key; + + if((arg->offset + size) >= arg->size) { + size_t nsize = (arg->size ? arg->size << 2 : 16) + size; + void *p = REALLOC(arg->buffer, nsize); + if(!p) return -1; + arg->buffer = (uint8_t *)p; + arg->size = nsize; + } + + memcpy(arg->buffer + arg->offset, buffer, size); + arg->offset += size; + assert(arg->offset < arg->size); + + return 0; +} + +#ifndef ASN_DISABLE_PER_SUPPORT + +asn_dec_rval_t +ANY_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_ANY_specs; + size_t consumed_myself = 0; + int repeat; + ANY_t *st = (ANY_t *)*sptr; + + (void)opt_codec_ctx; + (void)constraints; + + /* + * Allocate the structure. + */ + if(!st) { + st = (ANY_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) RETURN(RC_FAIL); + } + + ASN_DEBUG("UPER Decoding ANY type"); + + st->size = 0; + do { + ssize_t raw_len; + ssize_t len_bytes; + ssize_t len_bits; + void *p; + int ret; + + /* Get the PER length */ + raw_len = uper_get_length(pd, -1, 0, &repeat); + if(raw_len < 0) RETURN(RC_WMORE); + if(raw_len == 0 && st->buf) break; + + ASN_DEBUG("Got PER length len %" ASN_PRI_SIZE ", %s (%s)", raw_len, + repeat ? "repeat" : "once", td->name); + len_bytes = raw_len; + len_bits = len_bytes * 8; + + p = REALLOC(st->buf, st->size + len_bytes + 1); + if(!p) RETURN(RC_FAIL); + st->buf = (uint8_t *)p; + + ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); + if(ret < 0) RETURN(RC_WMORE); + consumed_myself += len_bits; + st->size += len_bytes; + } while(repeat); + st->buf[st->size] = 0; /* nul-terminate */ + + RETURN(RC_OK); +} + +asn_enc_rval_t +ANY_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const ANY_t *st = (const ANY_t *)sptr; + asn_enc_rval_t er = {0, 0, 0}; + const uint8_t *buf; + size_t size; + int ret; + + (void)constraints; + + if(!st || (!st->buf && st->size)) ASN__ENCODE_FAILED; + + buf = st->buf; + size = st->size; + do { + int need_eom = 0; + ssize_t may_save = uper_put_length(po, size, &need_eom); + if(may_save < 0) ASN__ENCODE_FAILED; + + ret = per_put_many_bits(po, buf, may_save * 8); + if(ret) ASN__ENCODE_FAILED; + + buf += may_save; + size -= may_save; + assert(!(may_save & 0x07) || !size); + if(need_eom && uper_put_length(po, 0, 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + } while(size); + + ASN__ENCODED_OK(er); +} + +asn_dec_rval_t +ANY_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_ANY_specs; + size_t consumed_myself = 0; + int repeat; + ANY_t *st = (ANY_t *)*sptr; + + (void)opt_codec_ctx; + (void)constraints; + + /* + * Allocate the structure. + */ + if(!st) { + st = (ANY_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) RETURN(RC_FAIL); + } + + ASN_DEBUG("APER Decoding ANY type"); + + st->size = 0; + do { + ssize_t raw_len; + ssize_t len_bytes; + ssize_t len_bits; + void *p; + int ret; + + /* Get the PER length */ + raw_len = aper_get_length(pd, -1, 0, &repeat); + if(raw_len < 0) RETURN(RC_WMORE); + if(raw_len == 0 && st->buf) break; + + ASN_DEBUG("Got PER length len %" ASN_PRI_SIZE ", %s (%s)", raw_len, + repeat ? "repeat" : "once", td->name); + len_bytes = raw_len; + len_bits = len_bytes * 8; + + p = REALLOC(st->buf, st->size + len_bytes + 1); + if(!p) RETURN(RC_FAIL); + st->buf = (uint8_t *)p; + + ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); + if(ret < 0) RETURN(RC_WMORE); + consumed_myself += len_bits; + st->size += len_bytes; + } while(repeat); + st->buf[st->size] = 0; /* nul-terminate */ + + RETURN(RC_OK); +} + +asn_enc_rval_t +ANY_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const ANY_t *st = (const ANY_t *)sptr; + asn_enc_rval_t er = {0, 0, 0}; + const uint8_t *buf; + size_t size; + int ret; + + (void)constraints; + + if(!st || (!st->buf && st->size)) ASN__ENCODE_FAILED; + + buf = st->buf; + size = st->size; + do { + int need_eom = 0; + ssize_t may_save = uper_put_length(po, size, &need_eom); + if(may_save < 0) ASN__ENCODE_FAILED; + + ret = per_put_many_bits(po, buf, may_save * 8); + if(ret) ASN__ENCODE_FAILED; + + buf += may_save; + size -= may_save; + assert(!(may_save & 0x07) || !size); + if(need_eom && uper_put_length(po, 0, 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + } while(size); + + ASN__ENCODED_OK(er); +} +#endif /* ASN_DISABLE_PER_SUPPORT */ + diff --git a/src/du_app/F1AP/asn/ANY.h b/src/du_app/F1AP/asn/ANY.h new file mode 100755 index 000000000..b30381fa1 --- /dev/null +++ b/src/du_app/F1AP/asn/ANY.h @@ -0,0 +1,65 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_TYPE_ANY_H +#define ASN_TYPE_ANY_H + +#include /* Implemented via OCTET STRING type */ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct ANY { + uint8_t *buf; /* BER-encoded ANY contents */ + int size; /* Size of the above buffer */ + + asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ +} ANY_t; + +extern asn_TYPE_descriptor_t asn_DEF_ANY; +extern asn_TYPE_operation_t asn_OP_ANY; +extern asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs; + +asn_struct_free_f ANY_free; +asn_struct_print_f ANY_print; +ber_type_decoder_f ANY_decode_ber; +der_type_encoder_f ANY_encode_der; +xer_type_encoder_f ANY_encode_xer; +per_type_decoder_f ANY_decode_uper; +per_type_encoder_f ANY_encode_uper; +per_type_decoder_f ANY_decode_aper; +per_type_encoder_f ANY_encode_aper; + +#define ANY_free OCTET_STRING_free +#define ANY_print OCTET_STRING_print +#define ANY_compare OCTET_STRING_compare +#define ANY_constraint asn_generic_no_constraint +#define ANY_decode_ber OCTET_STRING_decode_ber +#define ANY_encode_der OCTET_STRING_encode_der +#define ANY_decode_xer OCTET_STRING_decode_xer_hex + +/****************************** + * Handy conversion routines. * + ******************************/ + +/* Convert another ASN.1 type into the ANY. This implies DER encoding. */ +int ANY_fromType(ANY_t *, asn_TYPE_descriptor_t *td, void *struct_ptr); +int ANY_fromType_aper(ANY_t *st, asn_TYPE_descriptor_t *td, void *sptr); +ANY_t *ANY_new_fromType(asn_TYPE_descriptor_t *td, void *struct_ptr); +ANY_t *ANY_new_fromType_aper(asn_TYPE_descriptor_t *td, void *sptr); + +/* Convert the contents of the ANY type into the specified type. */ +int ANY_to_type(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr); +int ANY_to_type_aper(ANY_t *, asn_TYPE_descriptor_t *td, void **struct_ptr); + +#define ANY_fromBuf(s, buf, size) OCTET_STRING_fromBuf((s), (buf), (size)) +#define ANY_new_fromBuf(buf, size) OCTET_STRING_new_fromBuf( \ + &asn_DEF_ANY, (buf), (size)) + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_TYPE_ANY_H */ diff --git a/src/du_app/F1AP/asn/AllocationAndRetentionPriority.c b/src/du_app/F1AP/asn/AllocationAndRetentionPriority.c new file mode 100755 index 000000000..ee491f80e --- /dev/null +++ b/src/du_app/F1AP/asn/AllocationAndRetentionPriority.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "AllocationAndRetentionPriority.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_AllocationAndRetentionPriority_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AllocationAndRetentionPriority, priorityLevel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PriorityLevel, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "priorityLevel" + }, + { ATF_NOFLAGS, 0, offsetof(struct AllocationAndRetentionPriority, pre_emptionCapability), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Pre_emptionCapability, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pre-emptionCapability" + }, + { ATF_NOFLAGS, 0, offsetof(struct AllocationAndRetentionPriority, pre_emptionVulnerability), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Pre_emptionVulnerability, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pre-emptionVulnerability" + }, + { ATF_POINTER, 1, offsetof(struct AllocationAndRetentionPriority, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P0, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_AllocationAndRetentionPriority_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_AllocationAndRetentionPriority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AllocationAndRetentionPriority_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* priorityLevel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pre-emptionCapability */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pre-emptionVulnerability */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AllocationAndRetentionPriority_specs_1 = { + sizeof(struct AllocationAndRetentionPriority), + offsetof(struct AllocationAndRetentionPriority, _asn_ctx), + asn_MAP_AllocationAndRetentionPriority_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_AllocationAndRetentionPriority_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AllocationAndRetentionPriority = { + "AllocationAndRetentionPriority", + "AllocationAndRetentionPriority", + &asn_OP_SEQUENCE, + asn_DEF_AllocationAndRetentionPriority_tags_1, + sizeof(asn_DEF_AllocationAndRetentionPriority_tags_1) + /sizeof(asn_DEF_AllocationAndRetentionPriority_tags_1[0]), /* 1 */ + asn_DEF_AllocationAndRetentionPriority_tags_1, /* Same as above */ + sizeof(asn_DEF_AllocationAndRetentionPriority_tags_1) + /sizeof(asn_DEF_AllocationAndRetentionPriority_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AllocationAndRetentionPriority_1, + 4, /* Elements count */ + &asn_SPC_AllocationAndRetentionPriority_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/AllocationAndRetentionPriority.h b/src/du_app/F1AP/asn/AllocationAndRetentionPriority.h new file mode 100755 index 000000000..1ded7748e --- /dev/null +++ b/src/du_app/F1AP/asn/AllocationAndRetentionPriority.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _AllocationAndRetentionPriority_H_ +#define _AllocationAndRetentionPriority_H_ + + +#include + +/* Including external dependencies */ +#include "PriorityLevel.h" +#include "Pre-emptionCapability.h" +#include "Pre-emptionVulnerability.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* AllocationAndRetentionPriority */ +typedef struct AllocationAndRetentionPriority { + PriorityLevel_t priorityLevel; + Pre_emptionCapability_t pre_emptionCapability; + Pre_emptionVulnerability_t pre_emptionVulnerability; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AllocationAndRetentionPriority_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AllocationAndRetentionPriority; +extern asn_SEQUENCE_specifics_t asn_SPC_AllocationAndRetentionPriority_specs_1; +extern asn_TYPE_member_t asn_MBR_AllocationAndRetentionPriority_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AllocationAndRetentionPriority_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Associated-SCell-Item.c b/src/du_app/F1AP/asn/Associated-SCell-Item.c new file mode 100755 index 000000000..11301fb3b --- /dev/null +++ b/src/du_app/F1AP/asn/Associated-SCell-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Associated-SCell-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_Associated_SCell_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Associated_SCell_Item, sCell_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRCGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sCell-ID" + }, + { ATF_POINTER, 1, offsetof(struct Associated_SCell_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_Associated_SCell_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_Associated_SCell_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Associated_SCell_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCell-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Associated_SCell_Item_specs_1 = { + sizeof(struct Associated_SCell_Item), + offsetof(struct Associated_SCell_Item, _asn_ctx), + asn_MAP_Associated_SCell_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_Associated_SCell_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Associated_SCell_Item = { + "Associated-SCell-Item", + "Associated-SCell-Item", + &asn_OP_SEQUENCE, + asn_DEF_Associated_SCell_Item_tags_1, + sizeof(asn_DEF_Associated_SCell_Item_tags_1) + /sizeof(asn_DEF_Associated_SCell_Item_tags_1[0]), /* 1 */ + asn_DEF_Associated_SCell_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_Associated_SCell_Item_tags_1) + /sizeof(asn_DEF_Associated_SCell_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Associated_SCell_Item_1, + 2, /* Elements count */ + &asn_SPC_Associated_SCell_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Associated-SCell-Item.h b/src/du_app/F1AP/asn/Associated-SCell-Item.h new file mode 100755 index 000000000..6f3a6afe2 --- /dev/null +++ b/src/du_app/F1AP/asn/Associated-SCell-Item.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Associated_SCell_Item_H_ +#define _Associated_SCell_Item_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* Associated-SCell-Item */ +typedef struct Associated_SCell_Item { + NRCGI_t sCell_ID; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Associated_SCell_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Associated_SCell_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _Associated_SCell_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Associated-SCell-List.c b/src/du_app/F1AP/asn/Associated-SCell-List.c new file mode 100755 index 000000000..e8dc662ee --- /dev/null +++ b/src/du_app/F1AP/asn/Associated-SCell-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Associated-SCell-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_Associated_SCell_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_Associated_SCell_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_Associated_SCell_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P45, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Associated_SCell_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Associated_SCell_List_specs_1 = { + sizeof(struct Associated_SCell_List), + offsetof(struct Associated_SCell_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Associated_SCell_List = { + "Associated-SCell-List", + "Associated-SCell-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_Associated_SCell_List_tags_1, + sizeof(asn_DEF_Associated_SCell_List_tags_1) + /sizeof(asn_DEF_Associated_SCell_List_tags_1[0]), /* 1 */ + asn_DEF_Associated_SCell_List_tags_1, /* Same as above */ + sizeof(asn_DEF_Associated_SCell_List_tags_1) + /sizeof(asn_DEF_Associated_SCell_List_tags_1[0]), /* 1 */ + { &asn_OER_type_Associated_SCell_List_constr_1, &asn_PER_type_Associated_SCell_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Associated_SCell_List_1, + 1, /* Single element */ + &asn_SPC_Associated_SCell_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Associated-SCell-List.h b/src/du_app/F1AP/asn/Associated-SCell-List.h new file mode 100755 index 000000000..45863b4bf --- /dev/null +++ b/src/du_app/F1AP/asn/Associated-SCell-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Associated_SCell_List_H_ +#define _Associated_SCell_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* Associated-SCell-List */ +typedef struct Associated_SCell_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Associated_SCell_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Associated_SCell_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _Associated_SCell_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/AvailablePLMNList-Item.c b/src/du_app/F1AP/asn/AvailablePLMNList-Item.c new file mode 100755 index 000000000..48a54373c --- /dev/null +++ b/src/du_app/F1AP/asn/AvailablePLMNList-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "AvailablePLMNList-Item.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_AvailablePLMNList_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AvailablePLMNList_Item, pLMNIdentity), + (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 */ + "pLMNIdentity" + }, + { ATF_POINTER, 1, offsetof(struct AvailablePLMNList_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_AvailablePLMNList_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_AvailablePLMNList_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AvailablePLMNList_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AvailablePLMNList_Item_specs_1 = { + sizeof(struct AvailablePLMNList_Item), + offsetof(struct AvailablePLMNList_Item, _asn_ctx), + asn_MAP_AvailablePLMNList_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_AvailablePLMNList_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AvailablePLMNList_Item = { + "AvailablePLMNList-Item", + "AvailablePLMNList-Item", + &asn_OP_SEQUENCE, + asn_DEF_AvailablePLMNList_Item_tags_1, + sizeof(asn_DEF_AvailablePLMNList_Item_tags_1) + /sizeof(asn_DEF_AvailablePLMNList_Item_tags_1[0]), /* 1 */ + asn_DEF_AvailablePLMNList_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_AvailablePLMNList_Item_tags_1) + /sizeof(asn_DEF_AvailablePLMNList_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AvailablePLMNList_Item_1, + 2, /* Elements count */ + &asn_SPC_AvailablePLMNList_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/AvailablePLMNList-Item.h b/src/du_app/F1AP/asn/AvailablePLMNList-Item.h new file mode 100755 index 000000000..278c5937d --- /dev/null +++ b/src/du_app/F1AP/asn/AvailablePLMNList-Item.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _AvailablePLMNList_Item_H_ +#define _AvailablePLMNList_Item_H_ + + +#include + +/* Including external dependencies */ +#include "PLMN-Identity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* AvailablePLMNList-Item */ +typedef struct AvailablePLMNList_Item { + PLMN_Identity_t pLMNIdentity; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AvailablePLMNList_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AvailablePLMNList_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_AvailablePLMNList_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_AvailablePLMNList_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AvailablePLMNList_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/AvailablePLMNList.c b/src/du_app/F1AP/asn/AvailablePLMNList.c new file mode 100755 index 000000000..b8d25170d --- /dev/null +++ b/src/du_app/F1AP/asn/AvailablePLMNList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "AvailablePLMNList.h" + +#include "AvailablePLMNList-Item.h" +static asn_oer_constraints_t asn_OER_type_AvailablePLMNList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..6)) */}; +static asn_per_constraints_t asn_PER_type_AvailablePLMNList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 6 } /* (SIZE(1..6)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_AvailablePLMNList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_AvailablePLMNList_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_AvailablePLMNList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_AvailablePLMNList_specs_1 = { + sizeof(struct AvailablePLMNList), + offsetof(struct AvailablePLMNList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_AvailablePLMNList = { + "AvailablePLMNList", + "AvailablePLMNList", + &asn_OP_SEQUENCE_OF, + asn_DEF_AvailablePLMNList_tags_1, + sizeof(asn_DEF_AvailablePLMNList_tags_1) + /sizeof(asn_DEF_AvailablePLMNList_tags_1[0]), /* 1 */ + asn_DEF_AvailablePLMNList_tags_1, /* Same as above */ + sizeof(asn_DEF_AvailablePLMNList_tags_1) + /sizeof(asn_DEF_AvailablePLMNList_tags_1[0]), /* 1 */ + { &asn_OER_type_AvailablePLMNList_constr_1, &asn_PER_type_AvailablePLMNList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_AvailablePLMNList_1, + 1, /* Single element */ + &asn_SPC_AvailablePLMNList_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/AvailablePLMNList.h b/src/du_app/F1AP/asn/AvailablePLMNList.h new file mode 100755 index 000000000..01434c391 --- /dev/null +++ b/src/du_app/F1AP/asn/AvailablePLMNList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _AvailablePLMNList_H_ +#define _AvailablePLMNList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct AvailablePLMNList_Item; + +/* AvailablePLMNList */ +typedef struct AvailablePLMNList { + A_SEQUENCE_OF(struct AvailablePLMNList_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AvailablePLMNList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AvailablePLMNList; + +#ifdef __cplusplus +} +#endif + +#endif /* _AvailablePLMNList_H_ */ +#include diff --git a/src/du_app/F1AP/asn/AveragingWindow.c b/src/du_app/F1AP/asn/AveragingWindow.c new file mode 100755 index 000000000..c669bdc55 --- /dev/null +++ b/src/du_app/F1AP/asn/AveragingWindow.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "AveragingWindow.h" + +int +AveragingWindow_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 4095)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AveragingWindow_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_AveragingWindow_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 12, 12, 0, 4095 } /* (0..4095,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_AveragingWindow_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AveragingWindow = { + "AveragingWindow", + "AveragingWindow", + &asn_OP_NativeInteger, + asn_DEF_AveragingWindow_tags_1, + sizeof(asn_DEF_AveragingWindow_tags_1) + /sizeof(asn_DEF_AveragingWindow_tags_1[0]), /* 1 */ + asn_DEF_AveragingWindow_tags_1, /* Same as above */ + sizeof(asn_DEF_AveragingWindow_tags_1) + /sizeof(asn_DEF_AveragingWindow_tags_1[0]), /* 1 */ + { &asn_OER_type_AveragingWindow_constr_1, &asn_PER_type_AveragingWindow_constr_1, AveragingWindow_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/AveragingWindow.h b/src/du_app/F1AP/asn/AveragingWindow.h new file mode 100755 index 000000000..f6af884a3 --- /dev/null +++ b/src/du_app/F1AP/asn/AveragingWindow.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _AveragingWindow_H_ +#define _AveragingWindow_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AveragingWindow */ +typedef long AveragingWindow_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AveragingWindow_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AveragingWindow; +asn_struct_free_f AveragingWindow_free; +asn_struct_print_f AveragingWindow_print; +asn_constr_check_f AveragingWindow_constraint; +ber_type_decoder_f AveragingWindow_decode_ber; +der_type_encoder_f AveragingWindow_encode_der; +xer_type_decoder_f AveragingWindow_decode_xer; +xer_type_encoder_f AveragingWindow_encode_xer; +oer_type_decoder_f AveragingWindow_decode_oer; +oer_type_encoder_f AveragingWindow_encode_oer; +per_type_decoder_f AveragingWindow_decode_uper; +per_type_encoder_f AveragingWindow_encode_uper; +per_type_decoder_f AveragingWindow_decode_aper; +per_type_encoder_f AveragingWindow_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AveragingWindow_H_ */ +#include diff --git a/src/du_app/F1AP/asn/BIT_STRING.c b/src/du_app/F1AP/asn/BIT_STRING.c new file mode 100755 index 000000000..6b9e29cbf --- /dev/null +++ b/src/du_app/F1AP/asn/BIT_STRING.c @@ -0,0 +1,686 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * BIT STRING basic type description. + */ +static const ber_tlv_tag_t asn_DEF_BIT_STRING_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs = { + sizeof(BIT_STRING_t), + offsetof(BIT_STRING_t, _asn_ctx), + ASN_OSUBV_BIT +}; +asn_TYPE_operation_t asn_OP_BIT_STRING = { + OCTET_STRING_free, /* Implemented in terms of OCTET STRING */ + BIT_STRING_print, + BIT_STRING_compare, + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_decode_xer_binary, + BIT_STRING_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + BIT_STRING_decode_oer, + BIT_STRING_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + BIT_STRING_decode_uper, /* Unaligned PER decoder */ + BIT_STRING_encode_uper, /* Unaligned PER encoder */ + OCTET_STRING_decode_aper, /* Aligned PER decoder */ + OCTET_STRING_encode_aper, /* Aligned PER encoder */ +#endif /* ASN_DISABLE_PER_SUPPORT */ + BIT_STRING_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_BIT_STRING = { + "BIT STRING", + "BIT_STRING", + &asn_OP_BIT_STRING, + asn_DEF_BIT_STRING_tags, + sizeof(asn_DEF_BIT_STRING_tags) + / sizeof(asn_DEF_BIT_STRING_tags[0]), + asn_DEF_BIT_STRING_tags, /* Same as above */ + sizeof(asn_DEF_BIT_STRING_tags) + / sizeof(asn_DEF_BIT_STRING_tags[0]), + { 0, 0, BIT_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs +}; + +/* + * BIT STRING generic constraint. + */ +int +BIT_STRING_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + printf("Inside %s:%d\n", __FILE__,__LINE__); + + if(st && st->buf) { + if((st->size == 0 && st->bits_unused) + || st->bits_unused < 0 || st->bits_unused > 7) { + ASN__CTFAIL(app_key, td, sptr, + "%s: invalid padding byte (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + return 0; +} + +static const char *_bit_pattern[16] = { + "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", + "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111" +}; + +asn_enc_rval_t +BIT_STRING_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t er = {0, 0, 0}; + char scratch[128]; + char *p = scratch; + char *scend = scratch + (sizeof(scratch) - 10); + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + int xcan = (flags & XER_F_CANONICAL); + uint8_t *buf; + uint8_t *end; + + if(!st || !st->buf) + ASN__ENCODE_FAILED; + + er.encoded = 0; + + buf = st->buf; + end = buf + st->size - 1; /* Last byte is special */ + + /* + * Binary dump + */ + for(; buf < end; buf++) { + int v = *buf; + int nline = xcan?0:(((buf - st->buf) % 8) == 0); + if(p >= scend || nline) { + ASN__CALLBACK(scratch, p - scratch); + p = scratch; + if(nline) ASN__TEXT_INDENT(1, ilevel); + } + memcpy(p + 0, _bit_pattern[v >> 4], 4); + memcpy(p + 4, _bit_pattern[v & 0x0f], 4); + p += 8; + } + + if(!xcan && ((buf - st->buf) % 8) == 0) + ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK(scratch, p - scratch); + p = scratch; + + if(buf == end) { + int v = *buf; + int ubits = st->bits_unused; + int i; + for(i = 7; i >= ubits; i--) + *p++ = (v & (1 << i)) ? 0x31 : 0x30; + ASN__CALLBACK(scratch, p - scratch); + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} + + +/* + * BIT STRING specific contents printer. + */ +int +BIT_STRING_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const char * const h2c = "0123456789ABCDEF"; + char scratch[64]; + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + uint8_t *buf; + uint8_t *end; + char *p = scratch; + + (void)td; /* Unused argument */ + + if(!st || !st->buf) + return (cb("", 8, app_key) < 0) ? -1 : 0; + + ilevel++; + buf = st->buf; + end = buf + st->size; + + /* + * Hexadecimal dump. + */ + for(; buf < end; buf++) { + if((buf - st->buf) % 16 == 0 && (st->size > 16) + && buf != st->buf) { + _i_INDENT(1); + /* Dump the string */ + if(cb(scratch, p - scratch, app_key) < 0) return -1; + p = scratch; + } + *p++ = h2c[*buf >> 4]; + *p++ = h2c[*buf & 0x0F]; + *p++ = 0x20; + } + + if(p > scratch) { + p--; /* Eat the tailing space */ + + if((st->size > 16)) { + _i_INDENT(1); + } + + /* Dump the incomplete 16-bytes row */ + if(cb(scratch, p - scratch, app_key) < 0) + return -1; + } + + if(st->bits_unused) { + int ret = snprintf(scratch, sizeof(scratch), " (%d bit%s unused)", + st->bits_unused, st->bits_unused == 1 ? "" : "s"); + assert(ret > 0 && ret < (ssize_t)sizeof(scratch)); + if(ret > 0 && ret < (ssize_t)sizeof(scratch) + && cb(scratch, ret, app_key) < 0) + return -1; + } + + return 0; +} + +/* + * Non-destructively remove the trailing 0-bits from the given bit string. + */ +static const BIT_STRING_t * +BIT_STRING__compactify(const BIT_STRING_t *st, BIT_STRING_t *tmp) { + const uint8_t *b; + union { + const uint8_t *c_buf; + uint8_t *nc_buf; + } unconst; + + if(st->size == 0) { + assert(st->bits_unused == 0); + return st; + } else { + for(b = &st->buf[st->size - 1]; b > st->buf && *b == 0; b--) { + ; + } + /* b points to the last byte which may contain data */ + if(*b) { + int unused = 7; + uint8_t v = *b; + v &= -(int8_t)v; + if(v & 0x0F) unused -= 4; + if(v & 0x33) unused -= 2; + if(v & 0x55) unused -= 1; + tmp->size = b-st->buf + 1; + tmp->bits_unused = unused; + } else { + tmp->size = b-st->buf; + tmp->bits_unused = 0; + } + + assert(b >= st->buf); + } + + unconst.c_buf = st->buf; + tmp->buf = unconst.nc_buf; + return tmp; +} + +/* + * Lexicographically compare the common prefix of both strings, + * and if it is the same return -1 for the smallest string. + */ +int +BIT_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + /* + * Remove information about trailing bits, since + * X.680 (08/2015) #22.7 "ensure that different semantics are not" + * "associated with [values that differ only in] the trailing 0 bits." + */ + BIT_STRING_t compact_a, compact_b; + const BIT_STRING_t *a = BIT_STRING__compactify(aptr, &compact_a); + const BIT_STRING_t *b = BIT_STRING__compactify(bptr, &compact_b); + const asn_OCTET_STRING_specifics_t *specs = td->specifics; + + assert(specs && specs->subvariant == ASN_OSUBV_BIT); + + if(a && b) { + size_t common_prefix_size = a->size <= b->size ? a->size : b->size; + int ret = memcmp(a->buf, b->buf, common_prefix_size); + if(ret == 0) { + /* Figure out which string with equal prefixes is longer. */ + if(a->size < b->size) { + return -1; + } else if(a->size > b->size) { + return 1; + } else { + /* Figure out how many unused bits */ + if(a->bits_unused > b->bits_unused) { + return -1; + } else if(a->bits_unused < b->bits_unused) { + return 1; + } else { + return 0; + } + } + } else { + return ret; + } + } else if(!a && !b) { + return 0; + } else if(!a) { + return -1; + } else { + return 1; + } +} + +#ifndef ASN_DISABLE_PER_SUPPORT + +#undef RETURN +#define RETURN(_code) \ + do { \ + asn_dec_rval_t tmprval; \ + tmprval.code = _code; \ + tmprval.consumed = consumed_myself; \ + return tmprval; \ + } while(0) + +static asn_per_constraint_t asn_DEF_BIT_STRING_constraint_size = { + APC_SEMI_CONSTRAINED, -1, -1, 0, 0}; + +asn_dec_rval_t +BIT_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_BIT_STRING_specs; + const asn_per_constraints_t *pc = + constraints ? constraints : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *csiz; + asn_dec_rval_t rval = { RC_OK, 0 }; + BIT_STRING_t *st = (BIT_STRING_t *)*sptr; + ssize_t consumed_myself = 0; + int repeat; + + (void)opt_codec_ctx; + + if(pc) { + csiz = &pc->size; + } else { + csiz = &asn_DEF_BIT_STRING_constraint_size; + } + + if(specs->subvariant != ASN_OSUBV_BIT) { + ASN_DEBUG("Subvariant %d is not BIT OSUBV_BIT", specs->subvariant); + RETURN(RC_FAIL); + } + + /* + * Allocate the string. + */ + if(!st) { + st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) RETURN(RC_FAIL); + } + + ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", + csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", + csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); + + if(csiz->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) RETURN(RC_WMORE); + if(inext) { + csiz = &asn_DEF_BIT_STRING_constraint_size; + } + } + + if(csiz->effective_bits >= 0) { + FREEMEM(st->buf); + st->size = (csiz->upper_bound + 7) >> 3; + st->buf = (uint8_t *)MALLOC(st->size + 1); + if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } + } + + /* X.691, #16.5: zero-length encoding */ + /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ + /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ + if(csiz->effective_bits == 0) { + int ret; + ASN_DEBUG("Encoding BIT STRING size %ld", csiz->upper_bound); + ret = per_get_many_bits(pd, st->buf, 0, csiz->upper_bound); + if(ret < 0) RETURN(RC_WMORE); + consumed_myself += csiz->upper_bound; + st->buf[st->size] = 0; + st->bits_unused = (8 - (csiz->upper_bound & 0x7)) & 0x7; + RETURN(RC_OK); + } + + st->size = 0; + do { + ssize_t raw_len; + ssize_t len_bytes; + ssize_t len_bits; + void *p; + int ret; + + /* Get the PER length */ + raw_len = uper_get_length(pd, csiz->effective_bits, csiz->lower_bound, + &repeat); + if(raw_len < 0) RETURN(RC_WMORE); + if(raw_len == 0 && st->buf) break; + + ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", + (long)csiz->effective_bits, (long)raw_len, + repeat ? "repeat" : "once", td->name); + len_bits = raw_len; + len_bytes = (len_bits + 7) >> 3; + if(len_bits & 0x7) st->bits_unused = 8 - (len_bits & 0x7); + /* len_bits be multiple of 16K if repeat is set */ + p = REALLOC(st->buf, st->size + len_bytes + 1); + if(!p) RETURN(RC_FAIL); + st->buf = (uint8_t *)p; + + ret = per_get_many_bits(pd, &st->buf[st->size], 0, len_bits); + if(ret < 0) RETURN(RC_WMORE); + st->size += len_bytes; + } while(repeat); + st->buf[st->size] = 0; /* nul-terminate */ + + return rval; +} + +asn_enc_rval_t +BIT_STRING_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_BIT_STRING_specs; + const asn_per_constraints_t *pc = + constraints ? constraints : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *csiz; + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + BIT_STRING_t compact_bstr; /* Do not modify this directly! */ + asn_enc_rval_t er = { 0, 0, 0 }; + int inext = 0; /* Lies not within extension root */ + size_t size_in_bits; + const uint8_t *buf; + int ret; + int ct_extensible; + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + if(specs->subvariant == ASN_OSUBV_BIT) { + if((st->size == 0 && st->bits_unused) || (st->bits_unused & ~7)) +{ + ASN__ENCODE_FAILED; +} + } else { + ASN__ENCODE_FAILED; + } + + if(pc) { + csiz = &pc->size; + } else { + csiz = &asn_DEF_BIT_STRING_constraint_size; + } + ct_extensible = csiz->flags & APC_EXTENSIBLE; + + /* Figure out the size without the trailing bits */ + // st = BIT_STRING__compactify(st, &compact_bstr); + size_in_bits = 8 * st->size - st->bits_unused; + + ASN_DEBUG( + "Encoding %s into %" ASN_PRI_SIZE " bits" + " (%ld..%ld, effective %d)%s", + td->name, size_in_bits, csiz->lower_bound, csiz->upper_bound, + csiz->effective_bits, ct_extensible ? " EXT" : ""); + + /* Figure out whether size lies within PER visible constraint */ + + if(csiz->effective_bits >= 0) { + if((ssize_t)size_in_bits > csiz->upper_bound) { + if(ct_extensible) { + csiz = &asn_DEF_BIT_STRING_constraint_size; + inext = 1; + } else { + printf("Inside bit string endocde %s:%d\n", __FILE__, __LINE__); + ASN__ENCODE_FAILED; + } + } + } else { + inext = 0; + } + + if(ct_extensible) { + /* Declare whether length is [not] within extension root */ + if(per_put_few_bits(po, inext, 1)) +{ + printf("Inside bit string endocde %s:%d\n", __FILE__, __LINE__); + ASN__ENCODE_FAILED; +} + } + + if(csiz->effective_bits >= 0 && !inext) { + int add_trailer = (ssize_t)size_in_bits < csiz->lower_bound; + ASN_DEBUG( + "Encoding %" ASN_PRI_SIZE " bytes (%ld), length (in %d bits) trailer %d; actual " + "value %" ASN_PRI_SSIZE "", + st->size, size_in_bits - csiz->lower_bound, csiz->effective_bits, + add_trailer, + add_trailer ? 0 : (ssize_t)size_in_bits - csiz->lower_bound); + ret = per_put_few_bits( + po, add_trailer ? 0 : (ssize_t)size_in_bits - csiz->lower_bound, + csiz->effective_bits); + if(ret) +{ + printf("Inside bit string endocde %s:%d\n", __FILE__, __LINE__); +ASN__ENCODE_FAILED; +} + ret = per_put_many_bits(po, st->buf, size_in_bits); + if(ret) +{ + printf("Inside bit string endocde %s:%d\n", __FILE__, __LINE__); +ASN__ENCODE_FAILED; +} + if(add_trailer) { + static const uint8_t zeros[16]; + size_t trailing_zero_bits = csiz->lower_bound - size_in_bits; + while(trailing_zero_bits > 0) { + if(trailing_zero_bits > 8 * sizeof(zeros)) { + ret = per_put_many_bits(po, zeros, 8 * sizeof(zeros)); + trailing_zero_bits -= 8 * sizeof(zeros); + } else { + ret = per_put_many_bits(po, zeros, trailing_zero_bits); + trailing_zero_bits = 0; + } + if(ret) +{ + printf("Inside bit string endocde %s:%d\n", __FILE__, __LINE__); +ASN__ENCODE_FAILED; +} + } + } + ASN__ENCODED_OK(er); + } + + ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes", st->size); + + buf = st->buf; + do { + int need_eom = 0; + ssize_t maySave = uper_put_length(po, size_in_bits, &need_eom); + if(maySave < 0) +{ + printf("Inside bit string endocde %s:%d\n", __FILE__, __LINE__); +ASN__ENCODE_FAILED; +} + + ASN_DEBUG("Encoding %" ASN_PRI_SSIZE " of %" ASN_PRI_SIZE "", maySave, size_in_bits); + + ret = per_put_many_bits(po, buf, maySave); + if(ret) +{ + printf("Inside bit string endocde %s:%d\n", __FILE__, __LINE__); +ASN__ENCODE_FAILED; +} + + buf += maySave >> 3; + size_in_bits -= maySave; + assert(!(maySave & 0x07) || !size_in_bits); + if(need_eom && uper_put_length(po, 0, 0)) +{ + printf("Inside bit string endocde %s:%d\n", __FILE__, __LINE__); + ASN__ENCODE_FAILED; /* End of Message length */ +} + } while(size_in_bits); + + ASN__ENCODED_OK(er); +} + +#endif /* ASN_DISABLE_PER_SUPPORT */ + +asn_random_fill_result_t +BIT_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_BIT_STRING_specs; + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + static unsigned lengths[] = {0, 1, 2, 3, 4, 8, + 126, 127, 128, 16383, 16384, 16385, + 65534, 65535, 65536, 65537}; + uint8_t *buf; + uint8_t *bend; + uint8_t *b; + size_t rnd_bits, rnd_len; + BIT_STRING_t *st; + + if(max_length == 0) return result_skipped; + + switch(specs->subvariant) { + case ASN_OSUBV_ANY: + return result_failed; + case ASN_OSUBV_BIT: + break; + default: + break; + } + + /* Figure out how far we should go */ + rnd_bits = lengths[asn_random_between( + 0, sizeof(lengths) / sizeof(lengths[0]) - 1)]; + if(!constraints || !constraints->per_constraints) + constraints = &td->encoding_constraints; + if(constraints->per_constraints) { + const asn_per_constraint_t *pc = &constraints->per_constraints->size; + if(pc->flags & APC_CONSTRAINED) { + long suggested_upper_bound = pc->upper_bound < (ssize_t)max_length + ? pc->upper_bound + : (ssize_t)max_length; + if(max_length < (size_t)pc->lower_bound) { + return result_skipped; + } + if(pc->flags & APC_EXTENSIBLE) { + switch(asn_random_between(0, 5)) { + case 0: + if(pc->lower_bound > 0) { + rnd_bits = pc->lower_bound - 1; + break; + } + /* Fall through */ + case 1: + rnd_bits = pc->upper_bound + 1; + break; + case 2: + /* Keep rnd_bits from the table */ + if(rnd_bits < max_length) { + break; + } + /* Fall through */ + default: + rnd_bits = asn_random_between(pc->lower_bound, + suggested_upper_bound); + } + } else { + rnd_bits = + asn_random_between(pc->lower_bound, suggested_upper_bound); + } + } else { + rnd_bits = asn_random_between(0, max_length - 1); + } + } else if(rnd_bits >= max_length) { + rnd_bits = asn_random_between(0, max_length - 1); + } + + rnd_len = (rnd_bits + 7) / 8; + buf = CALLOC(1, rnd_len + 1); + if(!buf) return result_failed; + + bend = &buf[rnd_len]; + + for(b = buf; b < bend; b++) { + *(uint8_t *)b = asn_random_between(0, 255); + } + *b = 0; /* Zero-terminate just in case. */ + + if(*sptr) { + st = *sptr; + FREEMEM(st->buf); + } else { + st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) { + FREEMEM(buf); + return result_failed; + } + } + + st->buf = buf; + st->size = rnd_len; + st->bits_unused = (8 - (rnd_bits & 0x7)) & 0x7; + if(st->bits_unused) { + assert(st->size > 0); + st->buf[st->size-1] &= 0xff << st->bits_unused; + } + + result_ok.length = st->size; + return result_ok; +} diff --git a/src/du_app/F1AP/asn/BIT_STRING.h b/src/du_app/F1AP/asn/BIT_STRING.h new file mode 100755 index 000000000..c1bdbbcfb --- /dev/null +++ b/src/du_app/F1AP/asn/BIT_STRING.h @@ -0,0 +1,48 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _BIT_STRING_H_ +#define _BIT_STRING_H_ + +#include /* Some help from OCTET STRING */ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct BIT_STRING_s { + uint8_t *buf; /* BIT STRING body */ + size_t size; /* Size of the above buffer */ + + int bits_unused;/* Unused trailing bits in the last octet (0..7) */ + + asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ +} BIT_STRING_t; + +extern asn_TYPE_descriptor_t asn_DEF_BIT_STRING; +extern asn_TYPE_operation_t asn_OP_BIT_STRING; +extern asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs; + +asn_struct_print_f BIT_STRING_print; /* Human-readable output */ +asn_struct_compare_f BIT_STRING_compare; +asn_constr_check_f BIT_STRING_constraint; +xer_type_encoder_f BIT_STRING_encode_xer; +oer_type_decoder_f BIT_STRING_decode_oer; +oer_type_encoder_f BIT_STRING_encode_oer; +per_type_decoder_f BIT_STRING_decode_uper; +per_type_encoder_f BIT_STRING_encode_uper; +asn_random_fill_f BIT_STRING_random_fill; + +#define BIT_STRING_free OCTET_STRING_free +#define BIT_STRING_decode_ber OCTET_STRING_decode_ber +#define BIT_STRING_encode_der OCTET_STRING_encode_der +#define BIT_STRING_decode_xer OCTET_STRING_decode_xer_binary +#define BIT_STRING_decode_aper OCTET_STRING_decode_aper +#define BIT_STRING_encode_aper OCTET_STRING_encode_aper + +#ifdef __cplusplus +} +#endif + +#endif /* _BIT_STRING_H_ */ diff --git a/src/du_app/F1AP/asn/BIT_STRING_oer.c b/src/du_app/F1AP/asn/BIT_STRING_oer.c new file mode 100755 index 000000000..aff5075cd --- /dev/null +++ b/src/du_app/F1AP/asn/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/src/du_app/F1AP/asn/BOOLEAN.c b/src/du_app/F1AP/asn/BOOLEAN.c new file mode 100755 index 000000000..25831e2b6 --- /dev/null +++ b/src/du_app/F1AP/asn/BOOLEAN.c @@ -0,0 +1,492 @@ +/*- + * Copyright (c) 2003, 2005 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * BOOLEAN basic type description. + */ +static const ber_tlv_tag_t asn_DEF_BOOLEAN_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_operation_t asn_OP_BOOLEAN = { + BOOLEAN_free, + BOOLEAN_print, + BOOLEAN_compare, + BOOLEAN_decode_ber, + BOOLEAN_encode_der, + BOOLEAN_decode_xer, + BOOLEAN_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + BOOLEAN_decode_oer, + BOOLEAN_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + BOOLEAN_decode_uper, /* Unaligned PER decoder */ + BOOLEAN_encode_uper, /* Unaligned PER encoder */ + BOOLEAN_decode_aper, /* Aligned PER decoder */ + BOOLEAN_encode_aper, /* Aligned PER encoder */ +#endif /* ASN_DISABLE_PER_SUPPORT */ + BOOLEAN_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_BOOLEAN = { + "BOOLEAN", + "BOOLEAN", + &asn_OP_BOOLEAN, + asn_DEF_BOOLEAN_tags, + sizeof(asn_DEF_BOOLEAN_tags) / sizeof(asn_DEF_BOOLEAN_tags[0]), + asn_DEF_BOOLEAN_tags, /* Same as above */ + sizeof(asn_DEF_BOOLEAN_tags) / sizeof(asn_DEF_BOOLEAN_tags[0]), + { 0, 0, asn_generic_no_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +/* + * Decode BOOLEAN type. + */ +asn_dec_rval_t +BOOLEAN_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **bool_value, + const void *buf_ptr, size_t size, int tag_mode) { + BOOLEAN_t *st = (BOOLEAN_t *)*bool_value; + asn_dec_rval_t rval; + ber_tlv_len_t length; + ber_tlv_len_t lidx; + + if(st == NULL) { + st = (BOOLEAN_t *)(*bool_value = CALLOC(1, sizeof(*st))); + if(st == NULL) { + rval.code = RC_FAIL; + rval.consumed = 0; + return rval; + } + } + + ASN_DEBUG("Decoding %s as BOOLEAN (tm=%d)", + td->name, tag_mode); + + /* + * Check tags. + */ + rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, + tag_mode, 0, &length, 0); + if(rval.code != RC_OK) + return rval; + + ASN_DEBUG("Boolean length is %d bytes", (int)length); + + buf_ptr = ((const char *)buf_ptr) + rval.consumed; + size -= rval.consumed; + if(length > (ber_tlv_len_t)size) { + rval.code = RC_WMORE; + rval.consumed = 0; + return rval; + } + + /* + * Compute boolean value. + */ + for(*st = 0, lidx = 0; + (lidx < length) && *st == 0; lidx++) { + /* + * Very simple approach: read bytes until the end or + * value is already TRUE. + * BOOLEAN is not supposed to contain meaningful data anyway. + */ + *st |= ((const uint8_t *)buf_ptr)[lidx]; + } + + rval.code = RC_OK; + rval.consumed += length; + + ASN_DEBUG("Took %ld/%ld bytes to encode %s, value=%d", + (long)rval.consumed, (long)length, + td->name, *st); + + return rval; +} + +asn_enc_rval_t +BOOLEAN_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, + void *app_key) { + asn_enc_rval_t erval = {0,0,0}; + const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; + + erval.encoded = der_write_tags(td, 1, tag_mode, 0, tag, cb, app_key); + if(erval.encoded == -1) { + erval.failed_type = td; + erval.structure_ptr = sptr; + return erval; + } + + if(cb) { + uint8_t bool_value; + + bool_value = *st ? 0xff : 0; /* 0xff mandated by DER */ + + if(cb(&bool_value, 1, app_key) < 0) { + erval.encoded = -1; + erval.failed_type = td; + erval.structure_ptr = sptr; + return erval; + } + } + + erval.encoded += 1; + + ASN__ENCODED_OK(erval); +} + + +/* + * Decode the chunk of XML text encoding INTEGER. + */ +static enum xer_pbd_rval +BOOLEAN__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, + const void *chunk_buf, size_t chunk_size) { + BOOLEAN_t *st = (BOOLEAN_t *)sptr; + const char *p = (const char *)chunk_buf; + + (void)td; + + if(chunk_size && p[0] == 0x3c /* '<' */) { + switch(xer_check_tag(chunk_buf, chunk_size, "false")) { + case XCT_BOTH: + /* "" */ + *st = 0; + break; + case XCT_UNKNOWN_BO: + if(xer_check_tag(chunk_buf, chunk_size, "true") + != XCT_BOTH) + return XPBD_BROKEN_ENCODING; + /* "" */ + *st = 1; /* Or 0xff as in DER?.. */ + break; + default: + return XPBD_BROKEN_ENCODING; + } + return XPBD_BODY_CONSUMED; + } else { + return XPBD_BROKEN_ENCODING; + } +} + + +asn_dec_rval_t +BOOLEAN_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, size_t size) { + return xer_decode_primitive(opt_codec_ctx, td, + sptr, sizeof(BOOLEAN_t), opt_mname, buf_ptr, size, + BOOLEAN__xer_body_decode); +} + +asn_enc_rval_t +BOOLEAN_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; + asn_enc_rval_t er = {0, 0, 0}; + + (void)ilevel; + (void)flags; + + if(!st) ASN__ENCODE_FAILED; + + if(*st) { + ASN__CALLBACK("", 7); + } else { + ASN__CALLBACK("", 8); + } + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} + +int +BOOLEAN_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; + const char *buf; + size_t buflen; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(st) { + if(*st) { + buf = "TRUE"; + buflen = 4; + } else { + buf = "FALSE"; + buflen = 5; + } + } else { + buf = ""; + buflen = 8; + } + + return (cb(buf, buflen, app_key) < 0) ? -1 : 0; +} + +void +BOOLEAN_free(const asn_TYPE_descriptor_t *td, void *ptr, + enum asn_struct_free_method method) { + if(td && ptr) { + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(ptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(ptr, 0, sizeof(BOOLEAN_t)); + break; + } + } +} + +#ifndef ASN_DISABLE_PER_SUPPORT + +asn_dec_rval_t +BOOLEAN_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rv; + BOOLEAN_t *st = (BOOLEAN_t *)*sptr; + + (void)opt_codec_ctx; + (void)td; + (void)constraints; + + if(!st) { + st = (BOOLEAN_t *)(*sptr = MALLOC(sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + /* + * Extract a single bit + */ + switch(per_get_few_bits(pd, 1)) { + case 1: *st = 1; break; + case 0: *st = 0; break; + case -1: default: ASN__DECODE_STARVED; + } + + ASN_DEBUG("%s decoded as %s", td->name, *st ? "TRUE" : "FALSE"); + + rv.code = RC_OK; + rv.consumed = 1; + return rv; +} + + +asn_enc_rval_t +BOOLEAN_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + + (void)constraints; + + if(!st) ASN__ENCODE_FAILED; + + if(per_put_few_bits(po, *st ? 1 : 0, 1)) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} + +asn_dec_rval_t +BOOLEAN_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + asn_dec_rval_t rv; + BOOLEAN_t *st = (BOOLEAN_t *)*sptr; + + (void)opt_codec_ctx; + (void)constraints; + (void)td; + + if(!st) { + st = (BOOLEAN_t *)(*sptr = MALLOC(sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + /* + * Extract a single bit + */ + switch(per_get_few_bits(pd, 1)) { + case 1: + *st = 1; + break; + case 0: + *st = 0; + break; + case -1: + default: + ASN__DECODE_STARVED; + } + + ASN_DEBUG("%s decoded as %s", td->name, *st ? "TRUE" : "FALSE"); + + rv.code = RC_OK; + rv.consumed = 1; + return rv; +} + +asn_enc_rval_t +BOOLEAN_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const BOOLEAN_t *st = (const BOOLEAN_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + + (void)constraints; + + if(!st) ASN__ENCODE_FAILED; + + if(per_put_few_bits(po, *st ? 1 : 0, 1)) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} + +#endif /* ASN_DISABLE_PER_SUPPORT */ + +#ifndef ASN_DISABLE_OER_SUPPORT + +/* + * Encode as Canonical OER. + */ +asn_enc_rval_t +BOOLEAN_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 = { 1, 0, 0 }; + const BOOLEAN_t *st = sptr; + uint8_t bool_value = *st ? 0xff : 0; /* 0xff mandated by OER */ + + (void)td; + (void)constraints; /* Constraints are unused in OER */ + + if(cb(&bool_value, 1, app_key) < 0) { + ASN__ENCODE_FAILED; + } else { + ASN__ENCODED_OK(er); + } +} + +asn_dec_rval_t +BOOLEAN_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, 1}; + BOOLEAN_t *st; + + (void)opt_codec_ctx; + (void)td; + (void)constraints; /* Constraints are unused in OER */ + + if(size < 1) { + ASN__DECODE_STARVED; + } + + if(!(st = *sptr)) { + st = (BOOLEAN_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + *st = *(const uint8_t *)ptr; + + return ok; +} + + + +#endif + +int +BOOLEAN_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const BOOLEAN_t *a = aptr; + const BOOLEAN_t *b = bptr; + + (void)td; + + if(a && b) { + if(!*a == !*b) { /* TRUE can be encoded by any non-zero byte. */ + return 0; + } else if(!*a) { + return -1; + } else { + return 1; + } + } else if(!a) { + return -1; + } else { + return 1; + } +} + +asn_random_fill_result_t +BOOLEAN_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + BOOLEAN_t *st = *sptr; + + if(max_length == 0) return result_skipped; + + if(st == NULL) { + st = (BOOLEAN_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(st == NULL) { + return result_failed; + } + } + + if(!constraints || !constraints->per_constraints) + constraints = &td->encoding_constraints; + if(constraints->per_constraints) { + const asn_per_constraint_t *pc = &constraints->per_constraints->value; + if(pc->flags & APC_CONSTRAINED) { + *st = asn_random_between(pc->lower_bound, pc->upper_bound); + return result_ok; + } + } + + /* Simulate booleans that are sloppily set and biased. */ + switch(asn_random_between(0, 7)) { + case 0: + case 1: + case 2: + *st = 0; break; + case 3: *st = -1; break; + case 4: *st = 1; break; + case 5: *st = INT_MIN; break; + case 6: *st = INT_MAX; break; + default: + *st = asn_random_between(INT_MIN, INT_MAX); + break; + } + return result_ok; +} diff --git a/src/du_app/F1AP/asn/BOOLEAN.h b/src/du_app/F1AP/asn/BOOLEAN.h new file mode 100755 index 000000000..620acf7f1 --- /dev/null +++ b/src/du_app/F1AP/asn/BOOLEAN.h @@ -0,0 +1,45 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _BOOLEAN_H_ +#define _BOOLEAN_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * The underlying integer may contain various values, but everything + * non-zero is capped to 0xff by the DER encoder. The BER decoder may + * yield non-zero values different from 1, beware. + */ +typedef int BOOLEAN_t; + +extern asn_TYPE_descriptor_t asn_DEF_BOOLEAN; +extern asn_TYPE_operation_t asn_OP_BOOLEAN; + +asn_struct_free_f BOOLEAN_free; +asn_struct_print_f BOOLEAN_print; +asn_struct_compare_f BOOLEAN_compare; +ber_type_decoder_f BOOLEAN_decode_ber; +der_type_encoder_f BOOLEAN_encode_der; +oer_type_decoder_f BOOLEAN_decode_oer; +oer_type_encoder_f BOOLEAN_encode_oer; +per_type_decoder_f BOOLEAN_decode_uper; +per_type_encoder_f BOOLEAN_encode_uper; +per_type_decoder_f BOOLEAN_decode_aper; +per_type_encoder_f BOOLEAN_encode_aper; +xer_type_decoder_f BOOLEAN_decode_xer; +xer_type_encoder_f BOOLEAN_encode_xer; +asn_random_fill_f BOOLEAN_random_fill; + +#define BOOLEAN_constraint asn_generic_no_constraint + +#ifdef __cplusplus +} +#endif + +#endif /* _BOOLEAN_H_ */ diff --git a/src/du_app/F1AP/asn/BearerTypeChange.c b/src/du_app/F1AP/asn/BearerTypeChange.c new file mode 100755 index 000000000..a94ac6a62 --- /dev/null +++ b/src/du_app/F1AP/asn/BearerTypeChange.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "BearerTypeChange.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_BearerTypeChange_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_BearerTypeChange_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_BearerTypeChange_value2enum_1[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_BearerTypeChange_enum2value_1[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_BearerTypeChange_specs_1 = { + asn_MAP_BearerTypeChange_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_BearerTypeChange_enum2value_1, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_BearerTypeChange_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_BearerTypeChange = { + "BearerTypeChange", + "BearerTypeChange", + &asn_OP_NativeEnumerated, + asn_DEF_BearerTypeChange_tags_1, + sizeof(asn_DEF_BearerTypeChange_tags_1) + /sizeof(asn_DEF_BearerTypeChange_tags_1[0]), /* 1 */ + asn_DEF_BearerTypeChange_tags_1, /* Same as above */ + sizeof(asn_DEF_BearerTypeChange_tags_1) + /sizeof(asn_DEF_BearerTypeChange_tags_1[0]), /* 1 */ + { &asn_OER_type_BearerTypeChange_constr_1, &asn_PER_type_BearerTypeChange_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BearerTypeChange_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/BearerTypeChange.h b/src/du_app/F1AP/asn/BearerTypeChange.h new file mode 100755 index 000000000..5fcce40fd --- /dev/null +++ b/src/du_app/F1AP/asn/BearerTypeChange.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BearerTypeChange_H_ +#define _BearerTypeChange_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BearerTypeChange { + BearerTypeChange_true = 0 + /* + * Enumeration is extensible + */ +} e_BearerTypeChange; + +/* BearerTypeChange */ +typedef long BearerTypeChange_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BearerTypeChange; +asn_struct_free_f BearerTypeChange_free; +asn_struct_print_f BearerTypeChange_print; +asn_constr_check_f BearerTypeChange_constraint; +ber_type_decoder_f BearerTypeChange_decode_ber; +der_type_encoder_f BearerTypeChange_encode_der; +xer_type_decoder_f BearerTypeChange_decode_xer; +xer_type_encoder_f BearerTypeChange_encode_xer; +oer_type_decoder_f BearerTypeChange_decode_oer; +oer_type_encoder_f BearerTypeChange_encode_oer; +per_type_decoder_f BearerTypeChange_decode_uper; +per_type_encoder_f BearerTypeChange_encode_uper; +per_type_decoder_f BearerTypeChange_decode_aper; +per_type_encoder_f BearerTypeChange_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _BearerTypeChange_H_ */ +#include diff --git a/src/du_app/F1AP/asn/BitRate.c b/src/du_app/F1AP/asn/BitRate.c new file mode 100755 index 000000000..dfc5dfc11 --- /dev/null +++ b/src/du_app/F1AP/asn/BitRate.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "BitRate.h" + +int +BitRate_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= 0 && value <= 4000000000000)) { + /* 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_BitRate_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_BitRate_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 42, -1, 0, 4000000000000 } /* (0..4000000000000,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_BitRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_BitRate = { + "BitRate", + "BitRate", + &asn_OP_INTEGER, + asn_DEF_BitRate_tags_1, + sizeof(asn_DEF_BitRate_tags_1) + /sizeof(asn_DEF_BitRate_tags_1[0]), /* 1 */ + asn_DEF_BitRate_tags_1, /* Same as above */ + sizeof(asn_DEF_BitRate_tags_1) + /sizeof(asn_DEF_BitRate_tags_1[0]), /* 1 */ + { &asn_OER_type_BitRate_constr_1, &asn_PER_type_BitRate_constr_1, BitRate_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/BitRate.h b/src/du_app/F1AP/asn/BitRate.h new file mode 100755 index 000000000..e2a7d5daf --- /dev/null +++ b/src/du_app/F1AP/asn/BitRate.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BitRate_H_ +#define _BitRate_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* BitRate */ +typedef INTEGER_t BitRate_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_BitRate_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_BitRate; +asn_struct_free_f BitRate_free; +asn_struct_print_f BitRate_print; +asn_constr_check_f BitRate_constraint; +ber_type_decoder_f BitRate_decode_ber; +der_type_encoder_f BitRate_encode_der; +xer_type_decoder_f BitRate_decode_xer; +xer_type_encoder_f BitRate_encode_xer; +oer_type_decoder_f BitRate_decode_oer; +oer_type_encoder_f BitRate_encode_oer; +per_type_decoder_f BitRate_decode_uper; +per_type_encoder_f BitRate_encode_uper; +per_type_decoder_f BitRate_decode_aper; +per_type_encoder_f BitRate_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _BitRate_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Broadcast-To-Be-Cancelled-Item.c b/src/du_app/F1AP/asn/Broadcast-To-Be-Cancelled-Item.c new file mode 100755 index 000000000..c954a0eb9 --- /dev/null +++ b/src/du_app/F1AP/asn/Broadcast-To-Be-Cancelled-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Broadcast-To-Be-Cancelled-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_Broadcast_To_Be_Cancelled_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Broadcast_To_Be_Cancelled_Item, 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, 1, offsetof(struct Broadcast_To_Be_Cancelled_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_Broadcast_To_Be_Cancelled_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_Broadcast_To_Be_Cancelled_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Broadcast_To_Be_Cancelled_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Broadcast_To_Be_Cancelled_Item_specs_1 = { + sizeof(struct Broadcast_To_Be_Cancelled_Item), + offsetof(struct Broadcast_To_Be_Cancelled_Item, _asn_ctx), + asn_MAP_Broadcast_To_Be_Cancelled_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_Broadcast_To_Be_Cancelled_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Broadcast_To_Be_Cancelled_Item = { + "Broadcast-To-Be-Cancelled-Item", + "Broadcast-To-Be-Cancelled-Item", + &asn_OP_SEQUENCE, + asn_DEF_Broadcast_To_Be_Cancelled_Item_tags_1, + sizeof(asn_DEF_Broadcast_To_Be_Cancelled_Item_tags_1) + /sizeof(asn_DEF_Broadcast_To_Be_Cancelled_Item_tags_1[0]), /* 1 */ + asn_DEF_Broadcast_To_Be_Cancelled_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_Broadcast_To_Be_Cancelled_Item_tags_1) + /sizeof(asn_DEF_Broadcast_To_Be_Cancelled_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Broadcast_To_Be_Cancelled_Item_1, + 2, /* Elements count */ + &asn_SPC_Broadcast_To_Be_Cancelled_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Broadcast-To-Be-Cancelled-Item.h b/src/du_app/F1AP/asn/Broadcast-To-Be-Cancelled-Item.h new file mode 100755 index 000000000..b0a79cac0 --- /dev/null +++ b/src/du_app/F1AP/asn/Broadcast-To-Be-Cancelled-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Broadcast_To_Be_Cancelled_Item_H_ +#define _Broadcast_To_Be_Cancelled_Item_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* Broadcast-To-Be-Cancelled-Item */ +typedef struct Broadcast_To_Be_Cancelled_Item { + NRCGI_t nRCGI; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Broadcast_To_Be_Cancelled_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Broadcast_To_Be_Cancelled_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _Broadcast_To_Be_Cancelled_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Broadcast-To-Be-Cancelled-List.c b/src/du_app/F1AP/asn/Broadcast-To-Be-Cancelled-List.c new file mode 100755 index 000000000..95584308a --- /dev/null +++ b/src/du_app/F1AP/asn/Broadcast-To-Be-Cancelled-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Broadcast-To-Be-Cancelled-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_Broadcast_To_Be_Cancelled_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..512)) */}; +static asn_per_constraints_t asn_PER_type_Broadcast_To_Be_Cancelled_List_constr_1 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_Broadcast_To_Be_Cancelled_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P52, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Broadcast_To_Be_Cancelled_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Broadcast_To_Be_Cancelled_List_specs_1 = { + sizeof(struct Broadcast_To_Be_Cancelled_List), + offsetof(struct Broadcast_To_Be_Cancelled_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Broadcast_To_Be_Cancelled_List = { + "Broadcast-To-Be-Cancelled-List", + "Broadcast-To-Be-Cancelled-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_Broadcast_To_Be_Cancelled_List_tags_1, + sizeof(asn_DEF_Broadcast_To_Be_Cancelled_List_tags_1) + /sizeof(asn_DEF_Broadcast_To_Be_Cancelled_List_tags_1[0]), /* 1 */ + asn_DEF_Broadcast_To_Be_Cancelled_List_tags_1, /* Same as above */ + sizeof(asn_DEF_Broadcast_To_Be_Cancelled_List_tags_1) + /sizeof(asn_DEF_Broadcast_To_Be_Cancelled_List_tags_1[0]), /* 1 */ + { &asn_OER_type_Broadcast_To_Be_Cancelled_List_constr_1, &asn_PER_type_Broadcast_To_Be_Cancelled_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Broadcast_To_Be_Cancelled_List_1, + 1, /* Single element */ + &asn_SPC_Broadcast_To_Be_Cancelled_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Broadcast-To-Be-Cancelled-List.h b/src/du_app/F1AP/asn/Broadcast-To-Be-Cancelled-List.h new file mode 100755 index 000000000..4e0579bde --- /dev/null +++ b/src/du_app/F1AP/asn/Broadcast-To-Be-Cancelled-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Broadcast_To_Be_Cancelled_List_H_ +#define _Broadcast_To_Be_Cancelled_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* Broadcast-To-Be-Cancelled-List */ +typedef struct Broadcast_To_Be_Cancelled_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Broadcast_To_Be_Cancelled_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Broadcast_To_Be_Cancelled_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _Broadcast_To_Be_Cancelled_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/C-RNTI.c b/src/du_app/F1AP/asn/C-RNTI.c new file mode 100755 index 000000000..db8e9be6f --- /dev/null +++ b/src/du_app/F1AP/asn/C-RNTI.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "C-RNTI.h" + +int +C_RNTI_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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_C_RNTI_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_C_RNTI_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_C_RNTI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_C_RNTI = { + "C-RNTI", + "C-RNTI", + &asn_OP_NativeInteger, + asn_DEF_C_RNTI_tags_1, + sizeof(asn_DEF_C_RNTI_tags_1) + /sizeof(asn_DEF_C_RNTI_tags_1[0]), /* 1 */ + asn_DEF_C_RNTI_tags_1, /* Same as above */ + sizeof(asn_DEF_C_RNTI_tags_1) + /sizeof(asn_DEF_C_RNTI_tags_1[0]), /* 1 */ + { &asn_OER_type_C_RNTI_constr_1, &asn_PER_type_C_RNTI_constr_1, C_RNTI_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/C-RNTI.h b/src/du_app/F1AP/asn/C-RNTI.h new file mode 100755 index 000000000..c36303abd --- /dev/null +++ b/src/du_app/F1AP/asn/C-RNTI.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _C_RNTI_H_ +#define _C_RNTI_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* C-RNTI */ +typedef long C_RNTI_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_C_RNTI; +asn_struct_free_f C_RNTI_free; +asn_struct_print_f C_RNTI_print; +asn_constr_check_f C_RNTI_constraint; +ber_type_decoder_f C_RNTI_decode_ber; +der_type_encoder_f C_RNTI_encode_der; +xer_type_decoder_f C_RNTI_decode_xer; +xer_type_encoder_f C_RNTI_encode_xer; +oer_type_decoder_f C_RNTI_decode_oer; +oer_type_encoder_f C_RNTI_encode_oer; +per_type_decoder_f C_RNTI_decode_uper; +per_type_encoder_f C_RNTI_encode_uper; +per_type_decoder_f C_RNTI_decode_aper; +per_type_encoder_f C_RNTI_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _C_RNTI_H_ */ +#include diff --git a/src/du_app/F1AP/asn/CG-ConfigInfo.c b/src/du_app/F1AP/asn/CG-ConfigInfo.c new file mode 100755 index 000000000..54b2236c8 --- /dev/null +++ b/src/du_app/F1AP/asn/CG-ConfigInfo.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CG-ConfigInfo.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_CG_ConfigInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CG_ConfigInfo = { + "CG-ConfigInfo", + "CG-ConfigInfo", + &asn_OP_OCTET_STRING, + asn_DEF_CG_ConfigInfo_tags_1, + sizeof(asn_DEF_CG_ConfigInfo_tags_1) + /sizeof(asn_DEF_CG_ConfigInfo_tags_1[0]), /* 1 */ + asn_DEF_CG_ConfigInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_CG_ConfigInfo_tags_1) + /sizeof(asn_DEF_CG_ConfigInfo_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/CG-ConfigInfo.h b/src/du_app/F1AP/asn/CG-ConfigInfo.h new file mode 100755 index 000000000..4849c70c0 --- /dev/null +++ b/src/du_app/F1AP/asn/CG-ConfigInfo.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CG_ConfigInfo_H_ +#define _CG_ConfigInfo_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CG-ConfigInfo */ +typedef OCTET_STRING_t CG_ConfigInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CG_ConfigInfo; +asn_struct_free_f CG_ConfigInfo_free; +asn_struct_print_f CG_ConfigInfo_print; +asn_constr_check_f CG_ConfigInfo_constraint; +ber_type_decoder_f CG_ConfigInfo_decode_ber; +der_type_encoder_f CG_ConfigInfo_encode_der; +xer_type_decoder_f CG_ConfigInfo_decode_xer; +xer_type_encoder_f CG_ConfigInfo_encode_xer; +oer_type_decoder_f CG_ConfigInfo_decode_oer; +oer_type_encoder_f CG_ConfigInfo_encode_oer; +per_type_decoder_f CG_ConfigInfo_decode_uper; +per_type_encoder_f CG_ConfigInfo_encode_uper; +per_type_decoder_f CG_ConfigInfo_decode_aper; +per_type_encoder_f CG_ConfigInfo_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CG_ConfigInfo_H_ */ +#include diff --git a/src/du_app/F1AP/asn/CNUEPagingIdentity.c b/src/du_app/F1AP/asn/CNUEPagingIdentity.c new file mode 100755 index 000000000..d10cd9b36 --- /dev/null +++ b/src/du_app/F1AP/asn/CNUEPagingIdentity.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CNUEPagingIdentity.h" + +#include "ProtocolIE-SingleContainer.h" +static int +memb_fiveG_S_TMSI_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 48)) { + /* Constraint 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_fiveG_S_TMSI_constr_2 CC_NOTUSED = { + { 0, 0 }, + 48 /* (SIZE(48..48)) */}; +static asn_per_constraints_t asn_PER_memb_fiveG_S_TMSI_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 48, 48 } /* (SIZE(48..48)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_CNUEPagingIdentity_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_CNUEPagingIdentity_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_CNUEPagingIdentity_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CNUEPagingIdentity, choice.fiveG_S_TMSI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_fiveG_S_TMSI_constr_2, &asn_PER_memb_fiveG_S_TMSI_constr_2, memb_fiveG_S_TMSI_constraint_1 }, + 0, 0, /* No default value */ + "fiveG-S-TMSI" + }, + { ATF_POINTER, 0, offsetof(struct CNUEPagingIdentity, choice.choice_extension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_SingleContainer_4590P60, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-extension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_CNUEPagingIdentity_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveG-S-TMSI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* choice-extension */ +}; +asn_CHOICE_specifics_t asn_SPC_CNUEPagingIdentity_specs_1 = { + sizeof(struct CNUEPagingIdentity), + offsetof(struct CNUEPagingIdentity, _asn_ctx), + offsetof(struct CNUEPagingIdentity, present), + sizeof(((struct CNUEPagingIdentity *)0)->present), + asn_MAP_CNUEPagingIdentity_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_CNUEPagingIdentity = { + "CNUEPagingIdentity", + "CNUEPagingIdentity", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_CNUEPagingIdentity_constr_1, &asn_PER_type_CNUEPagingIdentity_constr_1, CHOICE_constraint }, + asn_MBR_CNUEPagingIdentity_1, + 2, /* Elements count */ + &asn_SPC_CNUEPagingIdentity_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/CNUEPagingIdentity.h b/src/du_app/F1AP/asn/CNUEPagingIdentity.h new file mode 100755 index 000000000..1d237a2a2 --- /dev/null +++ b/src/du_app/F1AP/asn/CNUEPagingIdentity.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CNUEPagingIdentity_H_ +#define _CNUEPagingIdentity_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CNUEPagingIdentity_PR { + CNUEPagingIdentity_PR_NOTHING, /* No components present */ + CNUEPagingIdentity_PR_fiveG_S_TMSI, + CNUEPagingIdentity_PR_choice_extension +} CNUEPagingIdentity_PR; + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* CNUEPagingIdentity */ +typedef struct CNUEPagingIdentity { + CNUEPagingIdentity_PR present; + union CNUEPagingIdentity_u { + BIT_STRING_t fiveG_S_TMSI; + struct ProtocolIE_SingleContainer *choice_extension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CNUEPagingIdentity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CNUEPagingIdentity; +extern asn_CHOICE_specifics_t asn_SPC_CNUEPagingIdentity_specs_1; +extern asn_TYPE_member_t asn_MBR_CNUEPagingIdentity_1[2]; +extern asn_per_constraints_t asn_PER_type_CNUEPagingIdentity_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _CNUEPagingIdentity_H_ */ +#include diff --git a/src/du_app/F1AP/asn/CP-TransportLayerAddress.c b/src/du_app/F1AP/asn/CP-TransportLayerAddress.c new file mode 100755 index 000000000..216002de8 --- /dev/null +++ b/src/du_app/F1AP/asn/CP-TransportLayerAddress.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CP-TransportLayerAddress.h" + +#include "Endpoint-IP-address-and-port.h" +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_CP_TransportLayerAddress_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_CP_TransportLayerAddress_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_CP_TransportLayerAddress_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CP_TransportLayerAddress, choice.endpoint_IP_address), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "endpoint-IP-address" + }, + { ATF_POINTER, 0, offsetof(struct CP_TransportLayerAddress, choice.endpoint_IP_address_and_port), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Endpoint_IP_address_and_port, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "endpoint-IP-address-and-port" + }, + { ATF_POINTER, 0, offsetof(struct CP_TransportLayerAddress, choice.choice_extension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_SingleContainer_4590P61, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-extension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_CP_TransportLayerAddress_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* endpoint-IP-address */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* endpoint-IP-address-and-port */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-extension */ +}; +asn_CHOICE_specifics_t asn_SPC_CP_TransportLayerAddress_specs_1 = { + sizeof(struct CP_TransportLayerAddress), + offsetof(struct CP_TransportLayerAddress, _asn_ctx), + offsetof(struct CP_TransportLayerAddress, present), + sizeof(((struct CP_TransportLayerAddress *)0)->present), + asn_MAP_CP_TransportLayerAddress_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_CP_TransportLayerAddress = { + "CP-TransportLayerAddress", + "CP-TransportLayerAddress", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_CP_TransportLayerAddress_constr_1, &asn_PER_type_CP_TransportLayerAddress_constr_1, CHOICE_constraint }, + asn_MBR_CP_TransportLayerAddress_1, + 3, /* Elements count */ + &asn_SPC_CP_TransportLayerAddress_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/CP-TransportLayerAddress.h b/src/du_app/F1AP/asn/CP-TransportLayerAddress.h new file mode 100755 index 000000000..b41a7fe41 --- /dev/null +++ b/src/du_app/F1AP/asn/CP-TransportLayerAddress.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CP_TransportLayerAddress_H_ +#define _CP_TransportLayerAddress_H_ + + +#include + +/* Including external dependencies */ +#include "TransportLayerAddress.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CP_TransportLayerAddress_PR { + CP_TransportLayerAddress_PR_NOTHING, /* No components present */ + CP_TransportLayerAddress_PR_endpoint_IP_address, + CP_TransportLayerAddress_PR_endpoint_IP_address_and_port, + CP_TransportLayerAddress_PR_choice_extension +} CP_TransportLayerAddress_PR; + +/* Forward declarations */ +struct Endpoint_IP_address_and_port; +struct ProtocolIE_SingleContainer; + +/* CP-TransportLayerAddress */ +typedef struct CP_TransportLayerAddress { + CP_TransportLayerAddress_PR present; + union CP_TransportLayerAddress_u { + TransportLayerAddress_t endpoint_IP_address; + struct Endpoint_IP_address_and_port *endpoint_IP_address_and_port; + struct ProtocolIE_SingleContainer *choice_extension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CP_TransportLayerAddress_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CP_TransportLayerAddress; +extern asn_CHOICE_specifics_t asn_SPC_CP_TransportLayerAddress_specs_1; +extern asn_TYPE_member_t asn_MBR_CP_TransportLayerAddress_1[3]; +extern asn_per_constraints_t asn_PER_type_CP_TransportLayerAddress_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _CP_TransportLayerAddress_H_ */ +#include diff --git a/src/du_app/F1AP/asn/CUtoDURRCInformation.c b/src/du_app/F1AP/asn/CUtoDURRCInformation.c new file mode 100755 index 000000000..fa892d41c --- /dev/null +++ b/src/du_app/F1AP/asn/CUtoDURRCInformation.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CUtoDURRCInformation.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_CUtoDURRCInformation_1[] = { + { ATF_POINTER, 4, offsetof(struct CUtoDURRCInformation, cG_ConfigInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CG_ConfigInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cG-ConfigInfo" + }, + { ATF_POINTER, 3, offsetof(struct CUtoDURRCInformation, uE_CapabilityRAT_ContainerList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UE_CapabilityRAT_ContainerList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uE-CapabilityRAT-ContainerList" + }, + { ATF_POINTER, 2, offsetof(struct CUtoDURRCInformation, measConfig), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measConfig" + }, + { ATF_POINTER, 1, offsetof(struct CUtoDURRCInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_CUtoDURRCInformation_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_CUtoDURRCInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CUtoDURRCInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cG-ConfigInfo */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uE-CapabilityRAT-ContainerList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* measConfig */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CUtoDURRCInformation_specs_1 = { + sizeof(struct CUtoDURRCInformation), + offsetof(struct CUtoDURRCInformation, _asn_ctx), + asn_MAP_CUtoDURRCInformation_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_CUtoDURRCInformation_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CUtoDURRCInformation = { + "CUtoDURRCInformation", + "CUtoDURRCInformation", + &asn_OP_SEQUENCE, + asn_DEF_CUtoDURRCInformation_tags_1, + sizeof(asn_DEF_CUtoDURRCInformation_tags_1) + /sizeof(asn_DEF_CUtoDURRCInformation_tags_1[0]), /* 1 */ + asn_DEF_CUtoDURRCInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_CUtoDURRCInformation_tags_1) + /sizeof(asn_DEF_CUtoDURRCInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CUtoDURRCInformation_1, + 4, /* Elements count */ + &asn_SPC_CUtoDURRCInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/CUtoDURRCInformation.h b/src/du_app/F1AP/asn/CUtoDURRCInformation.h new file mode 100755 index 000000000..755f39d37 --- /dev/null +++ b/src/du_app/F1AP/asn/CUtoDURRCInformation.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CUtoDURRCInformation_H_ +#define _CUtoDURRCInformation_H_ + + +#include + +/* Including external dependencies */ +#include "CG-ConfigInfo.h" +#include "UE-CapabilityRAT-ContainerList.h" +#include "MeasConfig.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* CUtoDURRCInformation */ +typedef struct CUtoDURRCInformation { + CG_ConfigInfo_t *cG_ConfigInfo; /* OPTIONAL */ + UE_CapabilityRAT_ContainerList_t *uE_CapabilityRAT_ContainerList; /* OPTIONAL */ + MeasConfig_t *measConfig; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CUtoDURRCInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CUtoDURRCInformation; + +#ifdef __cplusplus +} +#endif + +#endif /* _CUtoDURRCInformation_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Cancel-all-Warning-Messages-Indicator.c b/src/du_app/F1AP/asn/Cancel-all-Warning-Messages-Indicator.c new file mode 100755 index 000000000..13e6e1a82 --- /dev/null +++ b/src/du_app/F1AP/asn/Cancel-all-Warning-Messages-Indicator.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Cancel-all-Warning-Messages-Indicator.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Cancel_all_Warning_Messages_Indicator_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_Cancel_all_Warning_Messages_Indicator_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_Cancel_all_Warning_Messages_Indicator_value2enum_1[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_Cancel_all_Warning_Messages_Indicator_enum2value_1[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_Cancel_all_Warning_Messages_Indicator_specs_1 = { + asn_MAP_Cancel_all_Warning_Messages_Indicator_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Cancel_all_Warning_Messages_Indicator_enum2value_1, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_Cancel_all_Warning_Messages_Indicator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Cancel_all_Warning_Messages_Indicator = { + "Cancel-all-Warning-Messages-Indicator", + "Cancel-all-Warning-Messages-Indicator", + &asn_OP_NativeEnumerated, + asn_DEF_Cancel_all_Warning_Messages_Indicator_tags_1, + sizeof(asn_DEF_Cancel_all_Warning_Messages_Indicator_tags_1) + /sizeof(asn_DEF_Cancel_all_Warning_Messages_Indicator_tags_1[0]), /* 1 */ + asn_DEF_Cancel_all_Warning_Messages_Indicator_tags_1, /* Same as above */ + sizeof(asn_DEF_Cancel_all_Warning_Messages_Indicator_tags_1) + /sizeof(asn_DEF_Cancel_all_Warning_Messages_Indicator_tags_1[0]), /* 1 */ + { &asn_OER_type_Cancel_all_Warning_Messages_Indicator_constr_1, &asn_PER_type_Cancel_all_Warning_Messages_Indicator_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Cancel_all_Warning_Messages_Indicator_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Cancel-all-Warning-Messages-Indicator.h b/src/du_app/F1AP/asn/Cancel-all-Warning-Messages-Indicator.h new file mode 100755 index 000000000..dcc7f03f2 --- /dev/null +++ b/src/du_app/F1AP/asn/Cancel-all-Warning-Messages-Indicator.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Cancel_all_Warning_Messages_Indicator_H_ +#define _Cancel_all_Warning_Messages_Indicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Cancel_all_Warning_Messages_Indicator { + Cancel_all_Warning_Messages_Indicator_true = 0 + /* + * Enumeration is extensible + */ +} e_Cancel_all_Warning_Messages_Indicator; + +/* Cancel-all-Warning-Messages-Indicator */ +typedef long Cancel_all_Warning_Messages_Indicator_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Cancel_all_Warning_Messages_Indicator; +asn_struct_free_f Cancel_all_Warning_Messages_Indicator_free; +asn_struct_print_f Cancel_all_Warning_Messages_Indicator_print; +asn_constr_check_f Cancel_all_Warning_Messages_Indicator_constraint; +ber_type_decoder_f Cancel_all_Warning_Messages_Indicator_decode_ber; +der_type_encoder_f Cancel_all_Warning_Messages_Indicator_encode_der; +xer_type_decoder_f Cancel_all_Warning_Messages_Indicator_decode_xer; +xer_type_encoder_f Cancel_all_Warning_Messages_Indicator_encode_xer; +oer_type_decoder_f Cancel_all_Warning_Messages_Indicator_decode_oer; +oer_type_encoder_f Cancel_all_Warning_Messages_Indicator_encode_oer; +per_type_decoder_f Cancel_all_Warning_Messages_Indicator_decode_uper; +per_type_encoder_f Cancel_all_Warning_Messages_Indicator_encode_uper; +per_type_decoder_f Cancel_all_Warning_Messages_Indicator_decode_aper; +per_type_encoder_f Cancel_all_Warning_Messages_Indicator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Cancel_all_Warning_Messages_Indicator_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Candidate-SpCell-Item.c b/src/du_app/F1AP/asn/Candidate-SpCell-Item.c new file mode 100755 index 000000000..ced8afc26 --- /dev/null +++ b/src/du_app/F1AP/asn/Candidate-SpCell-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Candidate-SpCell-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_Candidate_SpCell_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Candidate_SpCell_Item, candidate_SpCell_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRCGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "candidate-SpCell-ID" + }, + { ATF_POINTER, 1, offsetof(struct Candidate_SpCell_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_Candidate_SpCell_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_Candidate_SpCell_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Candidate_SpCell_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* candidate-SpCell-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Candidate_SpCell_Item_specs_1 = { + sizeof(struct Candidate_SpCell_Item), + offsetof(struct Candidate_SpCell_Item, _asn_ctx), + asn_MAP_Candidate_SpCell_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_Candidate_SpCell_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Candidate_SpCell_Item = { + "Candidate-SpCell-Item", + "Candidate-SpCell-Item", + &asn_OP_SEQUENCE, + asn_DEF_Candidate_SpCell_Item_tags_1, + sizeof(asn_DEF_Candidate_SpCell_Item_tags_1) + /sizeof(asn_DEF_Candidate_SpCell_Item_tags_1[0]), /* 1 */ + asn_DEF_Candidate_SpCell_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_Candidate_SpCell_Item_tags_1) + /sizeof(asn_DEF_Candidate_SpCell_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Candidate_SpCell_Item_1, + 2, /* Elements count */ + &asn_SPC_Candidate_SpCell_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Candidate-SpCell-Item.h b/src/du_app/F1AP/asn/Candidate-SpCell-Item.h new file mode 100755 index 000000000..14e43a1ef --- /dev/null +++ b/src/du_app/F1AP/asn/Candidate-SpCell-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Candidate_SpCell_Item_H_ +#define _Candidate_SpCell_Item_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* Candidate-SpCell-Item */ +typedef struct Candidate_SpCell_Item { + NRCGI_t candidate_SpCell_ID; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Candidate_SpCell_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Candidate_SpCell_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _Candidate_SpCell_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Candidate-SpCell-List.c b/src/du_app/F1AP/asn/Candidate-SpCell-List.c new file mode 100755 index 000000000..f83b3dddf --- /dev/null +++ b/src/du_app/F1AP/asn/Candidate-SpCell-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Candidate-SpCell-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_Candidate_SpCell_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_Candidate_SpCell_List_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 */ +}; +static asn_TYPE_member_t asn_MBR_Candidate_SpCell_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Candidate_SpCell_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Candidate_SpCell_List_specs_1 = { + sizeof(struct Candidate_SpCell_List), + offsetof(struct Candidate_SpCell_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Candidate_SpCell_List = { + "Candidate-SpCell-List", + "Candidate-SpCell-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_Candidate_SpCell_List_tags_1, + sizeof(asn_DEF_Candidate_SpCell_List_tags_1) + /sizeof(asn_DEF_Candidate_SpCell_List_tags_1[0]), /* 1 */ + asn_DEF_Candidate_SpCell_List_tags_1, /* Same as above */ + sizeof(asn_DEF_Candidate_SpCell_List_tags_1) + /sizeof(asn_DEF_Candidate_SpCell_List_tags_1[0]), /* 1 */ + { &asn_OER_type_Candidate_SpCell_List_constr_1, &asn_PER_type_Candidate_SpCell_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Candidate_SpCell_List_1, + 1, /* Single element */ + &asn_SPC_Candidate_SpCell_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Candidate-SpCell-List.h b/src/du_app/F1AP/asn/Candidate-SpCell-List.h new file mode 100755 index 000000000..788662923 --- /dev/null +++ b/src/du_app/F1AP/asn/Candidate-SpCell-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Candidate_SpCell_List_H_ +#define _Candidate_SpCell_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* Candidate-SpCell-List */ +typedef struct Candidate_SpCell_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Candidate_SpCell_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Candidate_SpCell_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _Candidate_SpCell_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Cause.c b/src/du_app/F1AP/asn/Cause.c new file mode 100755 index 000000000..0a4705667 --- /dev/null +++ b/src/du_app/F1AP/asn/Cause.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Cause.h" + +#include "ProtocolIE-SingleContainer.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, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_Cause_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.radioNetwork), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseRadioNetwork, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "radioNetwork" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.transport), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseTransport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transport" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.protocol), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseProtocol, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocol" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cause, choice.misc), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseMisc, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "misc" + }, + { ATF_POINTER, 0, offsetof(struct Cause, choice.choice_extension), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_SingleContainer_4590P59, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-extension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_Cause_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioNetwork */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* choice-extension */ +}; +asn_CHOICE_specifics_t asn_SPC_Cause_specs_1 = { + sizeof(struct Cause), + offsetof(struct Cause, _asn_ctx), + offsetof(struct Cause, present), + sizeof(((struct Cause *)0)->present), + asn_MAP_Cause_tag2el_1, + 5, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_Cause = { + "Cause", + "Cause", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_Cause_constr_1, &asn_PER_type_Cause_constr_1, CHOICE_constraint }, + asn_MBR_Cause_1, + 5, /* Elements count */ + &asn_SPC_Cause_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Cause.h b/src/du_app/F1AP/asn/Cause.h new file mode 100755 index 000000000..f1ab75756 --- /dev/null +++ b/src/du_app/F1AP/asn/Cause.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Cause_H_ +#define _Cause_H_ + + +#include + +/* Including external dependencies */ +#include "CauseRadioNetwork.h" +#include "CauseTransport.h" +#include "CauseProtocol.h" +#include "CauseMisc.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Cause_PR { + Cause_PR_NOTHING, /* No components present */ + Cause_PR_radioNetwork, + Cause_PR_transport, + Cause_PR_protocol, + Cause_PR_misc, + Cause_PR_choice_extension +} Cause_PR; + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* Cause */ +typedef struct Cause { + Cause_PR present; + union Cause_u { + CauseRadioNetwork_t radioNetwork; + CauseTransport_t transport; + CauseProtocol_t protocol; + CauseMisc_t misc; + struct ProtocolIE_SingleContainer *choice_extension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cause_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Cause; +extern asn_CHOICE_specifics_t asn_SPC_Cause_specs_1; +extern asn_TYPE_member_t asn_MBR_Cause_1[5]; +extern asn_per_constraints_t asn_PER_type_Cause_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Cause_H_ */ +#include diff --git a/src/du_app/F1AP/asn/CauseMisc.c b/src/du_app/F1AP/asn/CauseMisc.c new file mode 100755 index 000000000..da7422216 --- /dev/null +++ b/src/du_app/F1AP/asn/CauseMisc.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CauseMisc.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CauseMisc_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_CauseMisc_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_CauseMisc_value2enum_1[] = { + { 0, 27, "control-processing-overload" }, + { 1, 42, "not-enough-user-plane-processing-resources" }, + { 2, 16, "hardware-failure" }, + { 3, 15, "om-intervention" }, + { 4, 11, "unspecified" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_CauseMisc_enum2value_1[] = { + 0, /* control-processing-overload(0) */ + 2, /* hardware-failure(2) */ + 1, /* not-enough-user-plane-processing-resources(1) */ + 3, /* om-intervention(3) */ + 4 /* unspecified(4) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_CauseMisc_specs_1 = { + asn_MAP_CauseMisc_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CauseMisc_enum2value_1, /* N => "tag"; sorted by N */ + 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_CauseMisc_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CauseMisc = { + "CauseMisc", + "CauseMisc", + &asn_OP_NativeEnumerated, + asn_DEF_CauseMisc_tags_1, + sizeof(asn_DEF_CauseMisc_tags_1) + /sizeof(asn_DEF_CauseMisc_tags_1[0]), /* 1 */ + asn_DEF_CauseMisc_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseMisc_tags_1) + /sizeof(asn_DEF_CauseMisc_tags_1[0]), /* 1 */ + { &asn_OER_type_CauseMisc_constr_1, &asn_PER_type_CauseMisc_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CauseMisc_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/CauseMisc.h b/src/du_app/F1AP/asn/CauseMisc.h new file mode 100755 index 000000000..8ad11f1b6 --- /dev/null +++ b/src/du_app/F1AP/asn/CauseMisc.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CauseMisc_H_ +#define _CauseMisc_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CauseMisc { + CauseMisc_control_processing_overload = 0, + CauseMisc_not_enough_user_plane_processing_resources = 1, + CauseMisc_hardware_failure = 2, + CauseMisc_om_intervention = 3, + CauseMisc_unspecified = 4 + /* + * Enumeration is extensible + */ +} e_CauseMisc; + +/* CauseMisc */ +typedef long CauseMisc_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CauseMisc_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CauseMisc; +extern const asn_INTEGER_specifics_t asn_SPC_CauseMisc_specs_1; +asn_struct_free_f CauseMisc_free; +asn_struct_print_f CauseMisc_print; +asn_constr_check_f CauseMisc_constraint; +ber_type_decoder_f CauseMisc_decode_ber; +der_type_encoder_f CauseMisc_encode_der; +xer_type_decoder_f CauseMisc_decode_xer; +xer_type_encoder_f CauseMisc_encode_xer; +oer_type_decoder_f CauseMisc_decode_oer; +oer_type_encoder_f CauseMisc_encode_oer; +per_type_decoder_f CauseMisc_decode_uper; +per_type_encoder_f CauseMisc_encode_uper; +per_type_decoder_f CauseMisc_decode_aper; +per_type_encoder_f CauseMisc_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseMisc_H_ */ +#include diff --git a/src/du_app/F1AP/asn/CauseProtocol.c b/src/du_app/F1AP/asn/CauseProtocol.c new file mode 100755 index 000000000..bae25ea78 --- /dev/null +++ b/src/du_app/F1AP/asn/CauseProtocol.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CauseProtocol.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CauseProtocol_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_CauseProtocol_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CauseProtocol_value2enum_1[] = { + { 0, 21, "transfer-syntax-error" }, + { 1, 28, "abstract-syntax-error-reject" }, + { 2, 39, "abstract-syntax-error-ignore-and-notify" }, + { 3, 42, "message-not-compatible-with-receiver-state" }, + { 4, 14, "semantic-error" }, + { 5, 49, "abstract-syntax-error-falsely-constructed-message" }, + { 6, 11, "unspecified" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_CauseProtocol_enum2value_1[] = { + 5, /* abstract-syntax-error-falsely-constructed-message(5) */ + 2, /* abstract-syntax-error-ignore-and-notify(2) */ + 1, /* abstract-syntax-error-reject(1) */ + 3, /* message-not-compatible-with-receiver-state(3) */ + 4, /* semantic-error(4) */ + 0, /* transfer-syntax-error(0) */ + 6 /* unspecified(6) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_CauseProtocol_specs_1 = { + asn_MAP_CauseProtocol_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CauseProtocol_enum2value_1, /* N => "tag"; sorted by N */ + 7, /* Number of elements in the maps */ + 8, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CauseProtocol_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CauseProtocol = { + "CauseProtocol", + "CauseProtocol", + &asn_OP_NativeEnumerated, + asn_DEF_CauseProtocol_tags_1, + sizeof(asn_DEF_CauseProtocol_tags_1) + /sizeof(asn_DEF_CauseProtocol_tags_1[0]), /* 1 */ + asn_DEF_CauseProtocol_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseProtocol_tags_1) + /sizeof(asn_DEF_CauseProtocol_tags_1[0]), /* 1 */ + { &asn_OER_type_CauseProtocol_constr_1, &asn_PER_type_CauseProtocol_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CauseProtocol_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/CauseProtocol.h b/src/du_app/F1AP/asn/CauseProtocol.h new file mode 100755 index 000000000..b11015f9c --- /dev/null +++ b/src/du_app/F1AP/asn/CauseProtocol.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CauseProtocol_H_ +#define _CauseProtocol_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CauseProtocol { + CauseProtocol_transfer_syntax_error = 0, + CauseProtocol_abstract_syntax_error_reject = 1, + CauseProtocol_abstract_syntax_error_ignore_and_notify = 2, + CauseProtocol_message_not_compatible_with_receiver_state = 3, + CauseProtocol_semantic_error = 4, + CauseProtocol_abstract_syntax_error_falsely_constructed_message = 5, + CauseProtocol_unspecified = 6 + /* + * Enumeration is extensible + */ +} e_CauseProtocol; + +/* CauseProtocol */ +typedef long CauseProtocol_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CauseProtocol_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CauseProtocol; +extern const asn_INTEGER_specifics_t asn_SPC_CauseProtocol_specs_1; +asn_struct_free_f CauseProtocol_free; +asn_struct_print_f CauseProtocol_print; +asn_constr_check_f CauseProtocol_constraint; +ber_type_decoder_f CauseProtocol_decode_ber; +der_type_encoder_f CauseProtocol_encode_der; +xer_type_decoder_f CauseProtocol_decode_xer; +xer_type_encoder_f CauseProtocol_encode_xer; +oer_type_decoder_f CauseProtocol_decode_oer; +oer_type_encoder_f CauseProtocol_encode_oer; +per_type_decoder_f CauseProtocol_decode_uper; +per_type_encoder_f CauseProtocol_encode_uper; +per_type_decoder_f CauseProtocol_decode_aper; +per_type_encoder_f CauseProtocol_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseProtocol_H_ */ +#include diff --git a/src/du_app/F1AP/asn/CauseRadioNetwork.c b/src/du_app/F1AP/asn/CauseRadioNetwork.c new file mode 100755 index 000000000..432e0022b --- /dev/null +++ b/src/du_app/F1AP/asn/CauseRadioNetwork.c @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CauseRadioNetwork.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CauseRadioNetwork_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_CauseRadioNetwork_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 10 } /* (0..10,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CauseRadioNetwork_value2enum_1[] = { + { 0, 11, "unspecified" }, + { 1, 14, "rl-failure-rlc" }, + { 2, 46, "unknown-or-already-allocated-gnb-cu-ue-f1ap-id" }, + { 3, 46, "unknown-or-already-allocated-gnd-du-ue-f1ap-id" }, + { 4, 42, "unknown-or-inconsistent-pair-of-ue-f1ap-id" }, + { 5, 32, "interaction-with-other-procedure" }, + { 6, 23, "not-supported-qci-Value" }, + { 7, 34, "action-desirable-for-radio-reasons" }, + { 8, 28, "no-radio-resources-available" }, + { 9, 19, "procedure-cancelled" }, + { 10, 14, "normal-release" }, + { 11, 18, "cell-not-available" }, + { 12, 17, "rl-failure-others" }, + { 13, 12, "ue-rejection" }, + { 14, 37, "resources-not-available-for-the-slice" }, + { 15, 30, "amf-initiated-abnormal-release" }, + { 16, 26, "release-due-to-pre-emption" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_CauseRadioNetwork_enum2value_1[] = { + 7, /* action-desirable-for-radio-reasons(7) */ + 15, /* amf-initiated-abnormal-release(15) */ + 11, /* cell-not-available(11) */ + 5, /* interaction-with-other-procedure(5) */ + 8, /* no-radio-resources-available(8) */ + 10, /* normal-release(10) */ + 6, /* not-supported-qci-Value(6) */ + 9, /* procedure-cancelled(9) */ + 16, /* release-due-to-pre-emption(16) */ + 14, /* resources-not-available-for-the-slice(14) */ + 12, /* rl-failure-others(12) */ + 1, /* rl-failure-rlc(1) */ + 13, /* ue-rejection(13) */ + 2, /* unknown-or-already-allocated-gnb-cu-ue-f1ap-id(2) */ + 3, /* unknown-or-already-allocated-gnd-du-ue-f1ap-id(3) */ + 4, /* unknown-or-inconsistent-pair-of-ue-f1ap-id(4) */ + 0 /* unspecified(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_CauseRadioNetwork_specs_1 = { + asn_MAP_CauseRadioNetwork_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CauseRadioNetwork_enum2value_1, /* N => "tag"; sorted by N */ + 17, /* Number of elements in the maps */ + 12, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CauseRadioNetwork_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CauseRadioNetwork = { + "CauseRadioNetwork", + "CauseRadioNetwork", + &asn_OP_NativeEnumerated, + asn_DEF_CauseRadioNetwork_tags_1, + sizeof(asn_DEF_CauseRadioNetwork_tags_1) + /sizeof(asn_DEF_CauseRadioNetwork_tags_1[0]), /* 1 */ + asn_DEF_CauseRadioNetwork_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseRadioNetwork_tags_1) + /sizeof(asn_DEF_CauseRadioNetwork_tags_1[0]), /* 1 */ + { &asn_OER_type_CauseRadioNetwork_constr_1, &asn_PER_type_CauseRadioNetwork_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CauseRadioNetwork_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/CauseRadioNetwork.h b/src/du_app/F1AP/asn/CauseRadioNetwork.h new file mode 100755 index 000000000..9397f505b --- /dev/null +++ b/src/du_app/F1AP/asn/CauseRadioNetwork.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CauseRadioNetwork_H_ +#define _CauseRadioNetwork_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CauseRadioNetwork { + CauseRadioNetwork_unspecified = 0, + CauseRadioNetwork_rl_failure_rlc = 1, + CauseRadioNetwork_unknown_or_already_allocated_gnb_cu_ue_f1ap_id = 2, + CauseRadioNetwork_unknown_or_already_allocated_gnd_du_ue_f1ap_id = 3, + CauseRadioNetwork_unknown_or_inconsistent_pair_of_ue_f1ap_id = 4, + CauseRadioNetwork_interaction_with_other_procedure = 5, + CauseRadioNetwork_not_supported_qci_Value = 6, + CauseRadioNetwork_action_desirable_for_radio_reasons = 7, + CauseRadioNetwork_no_radio_resources_available = 8, + CauseRadioNetwork_procedure_cancelled = 9, + CauseRadioNetwork_normal_release = 10, + /* + * Enumeration is extensible + */ + CauseRadioNetwork_cell_not_available = 11, + CauseRadioNetwork_rl_failure_others = 12, + CauseRadioNetwork_ue_rejection = 13, + CauseRadioNetwork_resources_not_available_for_the_slice = 14, + CauseRadioNetwork_amf_initiated_abnormal_release = 15, + CauseRadioNetwork_release_due_to_pre_emption = 16 +} e_CauseRadioNetwork; + +/* CauseRadioNetwork */ +typedef long CauseRadioNetwork_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CauseRadioNetwork_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CauseRadioNetwork; +extern const asn_INTEGER_specifics_t asn_SPC_CauseRadioNetwork_specs_1; +asn_struct_free_f CauseRadioNetwork_free; +asn_struct_print_f CauseRadioNetwork_print; +asn_constr_check_f CauseRadioNetwork_constraint; +ber_type_decoder_f CauseRadioNetwork_decode_ber; +der_type_encoder_f CauseRadioNetwork_encode_der; +xer_type_decoder_f CauseRadioNetwork_decode_xer; +xer_type_encoder_f CauseRadioNetwork_encode_xer; +oer_type_decoder_f CauseRadioNetwork_decode_oer; +oer_type_encoder_f CauseRadioNetwork_encode_oer; +per_type_decoder_f CauseRadioNetwork_decode_uper; +per_type_encoder_f CauseRadioNetwork_encode_uper; +per_type_decoder_f CauseRadioNetwork_decode_aper; +per_type_encoder_f CauseRadioNetwork_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseRadioNetwork_H_ */ +#include diff --git a/src/du_app/F1AP/asn/CauseTransport.c b/src/du_app/F1AP/asn/CauseTransport.c new file mode 100755 index 000000000..5b7593fce --- /dev/null +++ b/src/du_app/F1AP/asn/CauseTransport.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CauseTransport.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CauseTransport_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_CauseTransport_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CauseTransport_value2enum_1[] = { + { 0, 11, "unspecified" }, + { 1, 30, "transport-resource-unavailable" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_CauseTransport_enum2value_1[] = { + 1, /* transport-resource-unavailable(1) */ + 0 /* unspecified(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_CauseTransport_specs_1 = { + asn_MAP_CauseTransport_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CauseTransport_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CauseTransport_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CauseTransport = { + "CauseTransport", + "CauseTransport", + &asn_OP_NativeEnumerated, + asn_DEF_CauseTransport_tags_1, + sizeof(asn_DEF_CauseTransport_tags_1) + /sizeof(asn_DEF_CauseTransport_tags_1[0]), /* 1 */ + asn_DEF_CauseTransport_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseTransport_tags_1) + /sizeof(asn_DEF_CauseTransport_tags_1[0]), /* 1 */ + { &asn_OER_type_CauseTransport_constr_1, &asn_PER_type_CauseTransport_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CauseTransport_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/CauseTransport.h b/src/du_app/F1AP/asn/CauseTransport.h new file mode 100755 index 000000000..b6354d250 --- /dev/null +++ b/src/du_app/F1AP/asn/CauseTransport.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CauseTransport_H_ +#define _CauseTransport_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CauseTransport { + CauseTransport_unspecified = 0, + CauseTransport_transport_resource_unavailable = 1 + /* + * Enumeration is extensible + */ +} e_CauseTransport; + +/* CauseTransport */ +typedef long CauseTransport_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CauseTransport_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CauseTransport; +extern const asn_INTEGER_specifics_t asn_SPC_CauseTransport_specs_1; +asn_struct_free_f CauseTransport_free; +asn_struct_print_f CauseTransport_print; +asn_constr_check_f CauseTransport_constraint; +ber_type_decoder_f CauseTransport_decode_ber; +der_type_encoder_f CauseTransport_encode_der; +xer_type_decoder_f CauseTransport_decode_xer; +xer_type_encoder_f CauseTransport_encode_xer; +oer_type_decoder_f CauseTransport_decode_oer; +oer_type_encoder_f CauseTransport_encode_oer; +per_type_decoder_f CauseTransport_decode_uper; +per_type_encoder_f CauseTransport_encode_uper; +per_type_decoder_f CauseTransport_decode_aper; +per_type_encoder_f CauseTransport_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseTransport_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Cell-Direction.c b/src/du_app/F1AP/asn/Cell-Direction.c new file mode 100755 index 000000000..0a13515f3 --- /dev/null +++ b/src/du_app/F1AP/asn/Cell-Direction.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Cell-Direction.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Cell_Direction_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_Cell_Direction_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_Cell_Direction_value2enum_1[] = { + { 0, 7, "dl-only" }, + { 1, 7, "ul-only" } +}; +static const unsigned int asn_MAP_Cell_Direction_enum2value_1[] = { + 0, /* dl-only(0) */ + 1 /* ul-only(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_Cell_Direction_specs_1 = { + asn_MAP_Cell_Direction_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Cell_Direction_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_Cell_Direction_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Cell_Direction = { + "Cell-Direction", + "Cell-Direction", + &asn_OP_NativeEnumerated, + asn_DEF_Cell_Direction_tags_1, + sizeof(asn_DEF_Cell_Direction_tags_1) + /sizeof(asn_DEF_Cell_Direction_tags_1[0]), /* 1 */ + asn_DEF_Cell_Direction_tags_1, /* Same as above */ + sizeof(asn_DEF_Cell_Direction_tags_1) + /sizeof(asn_DEF_Cell_Direction_tags_1[0]), /* 1 */ + { &asn_OER_type_Cell_Direction_constr_1, &asn_PER_type_Cell_Direction_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Cell_Direction_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Cell-Direction.h b/src/du_app/F1AP/asn/Cell-Direction.h new file mode 100755 index 000000000..521ce8b50 --- /dev/null +++ b/src/du_app/F1AP/asn/Cell-Direction.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Cell_Direction_H_ +#define _Cell_Direction_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Cell_Direction { + Cell_Direction_dl_only = 0, + Cell_Direction_ul_only = 1 +} e_Cell_Direction; + +/* Cell-Direction */ +typedef long Cell_Direction_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Cell_Direction; +asn_struct_free_f Cell_Direction_free; +asn_struct_print_f Cell_Direction_print; +asn_constr_check_f Cell_Direction_constraint; +ber_type_decoder_f Cell_Direction_decode_ber; +der_type_encoder_f Cell_Direction_encode_der; +xer_type_decoder_f Cell_Direction_decode_xer; +xer_type_encoder_f Cell_Direction_encode_xer; +oer_type_decoder_f Cell_Direction_decode_oer; +oer_type_encoder_f Cell_Direction_encode_oer; +per_type_decoder_f Cell_Direction_decode_uper; +per_type_encoder_f Cell_Direction_encode_uper; +per_type_decoder_f Cell_Direction_decode_aper; +per_type_encoder_f Cell_Direction_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Cell_Direction_H_ */ +#include diff --git a/src/du_app/F1AP/asn/CellBarred.c b/src/du_app/F1AP/asn/CellBarred.c new file mode 100755 index 000000000..5c9a57e2c --- /dev/null +++ b/src/du_app/F1AP/asn/CellBarred.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CellBarred.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CellBarred_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_CellBarred_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CellBarred_value2enum_1[] = { + { 0, 6, "barred" }, + { 1, 10, "not-barred" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_CellBarred_enum2value_1[] = { + 0, /* barred(0) */ + 1 /* not-barred(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_CellBarred_specs_1 = { + asn_MAP_CellBarred_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CellBarred_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CellBarred_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CellBarred = { + "CellBarred", + "CellBarred", + &asn_OP_NativeEnumerated, + asn_DEF_CellBarred_tags_1, + sizeof(asn_DEF_CellBarred_tags_1) + /sizeof(asn_DEF_CellBarred_tags_1[0]), /* 1 */ + asn_DEF_CellBarred_tags_1, /* Same as above */ + sizeof(asn_DEF_CellBarred_tags_1) + /sizeof(asn_DEF_CellBarred_tags_1[0]), /* 1 */ + { &asn_OER_type_CellBarred_constr_1, &asn_PER_type_CellBarred_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CellBarred_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/CellBarred.h b/src/du_app/F1AP/asn/CellBarred.h new file mode 100755 index 000000000..1c63fd398 --- /dev/null +++ b/src/du_app/F1AP/asn/CellBarred.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CellBarred_H_ +#define _CellBarred_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CellBarred { + CellBarred_barred = 0, + CellBarred_not_barred = 1 + /* + * Enumeration is extensible + */ +} e_CellBarred; + +/* CellBarred */ +typedef long CellBarred_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CellBarred_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CellBarred; +extern const asn_INTEGER_specifics_t asn_SPC_CellBarred_specs_1; +asn_struct_free_f CellBarred_free; +asn_struct_print_f CellBarred_print; +asn_constr_check_f CellBarred_constraint; +ber_type_decoder_f CellBarred_decode_ber; +der_type_encoder_f CellBarred_encode_der; +xer_type_decoder_f CellBarred_decode_xer; +xer_type_encoder_f CellBarred_encode_xer; +oer_type_decoder_f CellBarred_decode_oer; +oer_type_encoder_f CellBarred_encode_oer; +per_type_decoder_f CellBarred_decode_uper; +per_type_encoder_f CellBarred_encode_uper; +per_type_decoder_f CellBarred_decode_aper; +per_type_encoder_f CellBarred_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CellBarred_H_ */ +#include diff --git a/src/du_app/F1AP/asn/CellGroupConfig.c b/src/du_app/F1AP/asn/CellGroupConfig.c new file mode 100755 index 000000000..5a95dfa1f --- /dev/null +++ b/src/du_app/F1AP/asn/CellGroupConfig.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CellGroupConfig.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_CellGroupConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CellGroupConfig = { + "CellGroupConfig", + "CellGroupConfig", + &asn_OP_OCTET_STRING, + asn_DEF_CellGroupConfig_tags_1, + sizeof(asn_DEF_CellGroupConfig_tags_1) + /sizeof(asn_DEF_CellGroupConfig_tags_1[0]), /* 1 */ + asn_DEF_CellGroupConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_CellGroupConfig_tags_1) + /sizeof(asn_DEF_CellGroupConfig_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/CellGroupConfig.h b/src/du_app/F1AP/asn/CellGroupConfig.h new file mode 100755 index 000000000..f17e1f33d --- /dev/null +++ b/src/du_app/F1AP/asn/CellGroupConfig.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CellGroupConfig_H_ +#define _CellGroupConfig_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CellGroupConfig */ +typedef OCTET_STRING_t CellGroupConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CellGroupConfig; +asn_struct_free_f CellGroupConfig_free; +asn_struct_print_f CellGroupConfig_print; +asn_constr_check_f CellGroupConfig_constraint; +ber_type_decoder_f CellGroupConfig_decode_ber; +der_type_encoder_f CellGroupConfig_encode_der; +xer_type_decoder_f CellGroupConfig_decode_xer; +xer_type_encoder_f CellGroupConfig_encode_xer; +oer_type_decoder_f CellGroupConfig_decode_oer; +oer_type_encoder_f CellGroupConfig_encode_oer; +per_type_decoder_f CellGroupConfig_decode_uper; +per_type_encoder_f CellGroupConfig_encode_uper; +per_type_decoder_f CellGroupConfig_decode_aper; +per_type_encoder_f CellGroupConfig_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CellGroupConfig_H_ */ +#include diff --git a/src/du_app/F1AP/asn/CellULConfigured.c b/src/du_app/F1AP/asn/CellULConfigured.c new file mode 100755 index 000000000..76e2a9906 --- /dev/null +++ b/src/du_app/F1AP/asn/CellULConfigured.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CellULConfigured.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CellULConfigured_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_CellULConfigured_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_CellULConfigured_value2enum_1[] = { + { 0, 4, "none" }, + { 1, 2, "ul" }, + { 2, 3, "sul" }, + { 3, 10, "ul-and-sul" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_CellULConfigured_enum2value_1[] = { + 0, /* none(0) */ + 2, /* sul(2) */ + 1, /* ul(1) */ + 3 /* ul-and-sul(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_CellULConfigured_specs_1 = { + asn_MAP_CellULConfigured_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CellULConfigured_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_CellULConfigured_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CellULConfigured = { + "CellULConfigured", + "CellULConfigured", + &asn_OP_NativeEnumerated, + asn_DEF_CellULConfigured_tags_1, + sizeof(asn_DEF_CellULConfigured_tags_1) + /sizeof(asn_DEF_CellULConfigured_tags_1[0]), /* 1 */ + asn_DEF_CellULConfigured_tags_1, /* Same as above */ + sizeof(asn_DEF_CellULConfigured_tags_1) + /sizeof(asn_DEF_CellULConfigured_tags_1[0]), /* 1 */ + { &asn_OER_type_CellULConfigured_constr_1, &asn_PER_type_CellULConfigured_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CellULConfigured_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/CellULConfigured.h b/src/du_app/F1AP/asn/CellULConfigured.h new file mode 100755 index 000000000..2aa09892e --- /dev/null +++ b/src/du_app/F1AP/asn/CellULConfigured.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CellULConfigured_H_ +#define _CellULConfigured_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CellULConfigured { + CellULConfigured_none = 0, + CellULConfigured_ul = 1, + CellULConfigured_sul = 2, + CellULConfigured_ul_and_sul = 3 + /* + * Enumeration is extensible + */ +} e_CellULConfigured; + +/* CellULConfigured */ +typedef long CellULConfigured_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CellULConfigured_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CellULConfigured; +extern const asn_INTEGER_specifics_t asn_SPC_CellULConfigured_specs_1; +asn_struct_free_f CellULConfigured_free; +asn_struct_print_f CellULConfigured_print; +asn_constr_check_f CellULConfigured_constraint; +ber_type_decoder_f CellULConfigured_decode_ber; +der_type_encoder_f CellULConfigured_encode_der; +xer_type_decoder_f CellULConfigured_decode_xer; +xer_type_encoder_f CellULConfigured_encode_xer; +oer_type_decoder_f CellULConfigured_decode_oer; +oer_type_encoder_f CellULConfigured_encode_oer; +per_type_decoder_f CellULConfigured_decode_uper; +per_type_encoder_f CellULConfigured_encode_uper; +per_type_decoder_f CellULConfigured_decode_aper; +per_type_encoder_f CellULConfigured_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CellULConfigured_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Cells-Broadcast-Cancelled-Item.c b/src/du_app/F1AP/asn/Cells-Broadcast-Cancelled-Item.c new file mode 100755 index 000000000..5528c2374 --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-Broadcast-Cancelled-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Cells-Broadcast-Cancelled-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_Cells_Broadcast_Cancelled_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_Broadcast_Cancelled_Item, nRCGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRCGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nRCGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cells_Broadcast_Cancelled_Item, numberOfBroadcasts), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NumberOfBroadcasts, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "numberOfBroadcasts" + }, + { ATF_POINTER, 1, offsetof(struct Cells_Broadcast_Cancelled_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_Cells_Broadcast_Cancelled_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_Cells_Broadcast_Cancelled_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Cells_Broadcast_Cancelled_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* numberOfBroadcasts */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Cells_Broadcast_Cancelled_Item_specs_1 = { + sizeof(struct Cells_Broadcast_Cancelled_Item), + offsetof(struct Cells_Broadcast_Cancelled_Item, _asn_ctx), + asn_MAP_Cells_Broadcast_Cancelled_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Cells_Broadcast_Cancelled_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_Broadcast_Cancelled_Item = { + "Cells-Broadcast-Cancelled-Item", + "Cells-Broadcast-Cancelled-Item", + &asn_OP_SEQUENCE, + asn_DEF_Cells_Broadcast_Cancelled_Item_tags_1, + sizeof(asn_DEF_Cells_Broadcast_Cancelled_Item_tags_1) + /sizeof(asn_DEF_Cells_Broadcast_Cancelled_Item_tags_1[0]), /* 1 */ + asn_DEF_Cells_Broadcast_Cancelled_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_Cells_Broadcast_Cancelled_Item_tags_1) + /sizeof(asn_DEF_Cells_Broadcast_Cancelled_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_Broadcast_Cancelled_Item_1, + 3, /* Elements count */ + &asn_SPC_Cells_Broadcast_Cancelled_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Cells-Broadcast-Cancelled-Item.h b/src/du_app/F1AP/asn/Cells-Broadcast-Cancelled-Item.h new file mode 100755 index 000000000..f96ddbc10 --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-Broadcast-Cancelled-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Cells_Broadcast_Cancelled_Item_H_ +#define _Cells_Broadcast_Cancelled_Item_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include "NumberOfBroadcasts.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* Cells-Broadcast-Cancelled-Item */ +typedef struct Cells_Broadcast_Cancelled_Item { + NRCGI_t nRCGI; + NumberOfBroadcasts_t numberOfBroadcasts; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_Broadcast_Cancelled_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Cells_Broadcast_Cancelled_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _Cells_Broadcast_Cancelled_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Cells-Broadcast-Cancelled-List.c b/src/du_app/F1AP/asn/Cells-Broadcast-Cancelled-List.c new file mode 100755 index 000000000..b8f6bf293 --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-Broadcast-Cancelled-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Cells-Broadcast-Cancelled-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_Cells_Broadcast_Cancelled_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..512)) */}; +static asn_per_constraints_t asn_PER_type_Cells_Broadcast_Cancelled_List_constr_1 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_Cells_Broadcast_Cancelled_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P53, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Cells_Broadcast_Cancelled_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Cells_Broadcast_Cancelled_List_specs_1 = { + sizeof(struct Cells_Broadcast_Cancelled_List), + offsetof(struct Cells_Broadcast_Cancelled_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_Broadcast_Cancelled_List = { + "Cells-Broadcast-Cancelled-List", + "Cells-Broadcast-Cancelled-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_Cells_Broadcast_Cancelled_List_tags_1, + sizeof(asn_DEF_Cells_Broadcast_Cancelled_List_tags_1) + /sizeof(asn_DEF_Cells_Broadcast_Cancelled_List_tags_1[0]), /* 1 */ + asn_DEF_Cells_Broadcast_Cancelled_List_tags_1, /* Same as above */ + sizeof(asn_DEF_Cells_Broadcast_Cancelled_List_tags_1) + /sizeof(asn_DEF_Cells_Broadcast_Cancelled_List_tags_1[0]), /* 1 */ + { &asn_OER_type_Cells_Broadcast_Cancelled_List_constr_1, &asn_PER_type_Cells_Broadcast_Cancelled_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Cells_Broadcast_Cancelled_List_1, + 1, /* Single element */ + &asn_SPC_Cells_Broadcast_Cancelled_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Cells-Broadcast-Cancelled-List.h b/src/du_app/F1AP/asn/Cells-Broadcast-Cancelled-List.h new file mode 100755 index 000000000..8156f7c7f --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-Broadcast-Cancelled-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Cells_Broadcast_Cancelled_List_H_ +#define _Cells_Broadcast_Cancelled_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* Cells-Broadcast-Cancelled-List */ +typedef struct Cells_Broadcast_Cancelled_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_Broadcast_Cancelled_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Cells_Broadcast_Cancelled_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _Cells_Broadcast_Cancelled_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Cells-Broadcast-Completed-Item.c b/src/du_app/F1AP/asn/Cells-Broadcast-Completed-Item.c new file mode 100755 index 000000000..060f4f654 --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-Broadcast-Completed-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Cells-Broadcast-Completed-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_Cells_Broadcast_Completed_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_Broadcast_Completed_Item, 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, 1, offsetof(struct Cells_Broadcast_Completed_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_Cells_Broadcast_Completed_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_Cells_Broadcast_Completed_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Cells_Broadcast_Completed_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Cells_Broadcast_Completed_Item_specs_1 = { + sizeof(struct Cells_Broadcast_Completed_Item), + offsetof(struct Cells_Broadcast_Completed_Item, _asn_ctx), + asn_MAP_Cells_Broadcast_Completed_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_Cells_Broadcast_Completed_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_Broadcast_Completed_Item = { + "Cells-Broadcast-Completed-Item", + "Cells-Broadcast-Completed-Item", + &asn_OP_SEQUENCE, + asn_DEF_Cells_Broadcast_Completed_Item_tags_1, + sizeof(asn_DEF_Cells_Broadcast_Completed_Item_tags_1) + /sizeof(asn_DEF_Cells_Broadcast_Completed_Item_tags_1[0]), /* 1 */ + asn_DEF_Cells_Broadcast_Completed_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_Cells_Broadcast_Completed_Item_tags_1) + /sizeof(asn_DEF_Cells_Broadcast_Completed_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_Broadcast_Completed_Item_1, + 2, /* Elements count */ + &asn_SPC_Cells_Broadcast_Completed_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Cells-Broadcast-Completed-Item.h b/src/du_app/F1AP/asn/Cells-Broadcast-Completed-Item.h new file mode 100755 index 000000000..1ba3fa1a7 --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-Broadcast-Completed-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Cells_Broadcast_Completed_Item_H_ +#define _Cells_Broadcast_Completed_Item_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* Cells-Broadcast-Completed-Item */ +typedef struct Cells_Broadcast_Completed_Item { + NRCGI_t nRCGI; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_Broadcast_Completed_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Cells_Broadcast_Completed_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _Cells_Broadcast_Completed_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Cells-Broadcast-Completed-List.c b/src/du_app/F1AP/asn/Cells-Broadcast-Completed-List.c new file mode 100755 index 000000000..6ffbcc72f --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-Broadcast-Completed-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Cells-Broadcast-Completed-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_Cells_Broadcast_Completed_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..512)) */}; +static asn_per_constraints_t asn_PER_type_Cells_Broadcast_Completed_List_constr_1 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_Cells_Broadcast_Completed_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P51, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Cells_Broadcast_Completed_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Cells_Broadcast_Completed_List_specs_1 = { + sizeof(struct Cells_Broadcast_Completed_List), + offsetof(struct Cells_Broadcast_Completed_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_Broadcast_Completed_List = { + "Cells-Broadcast-Completed-List", + "Cells-Broadcast-Completed-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_Cells_Broadcast_Completed_List_tags_1, + sizeof(asn_DEF_Cells_Broadcast_Completed_List_tags_1) + /sizeof(asn_DEF_Cells_Broadcast_Completed_List_tags_1[0]), /* 1 */ + asn_DEF_Cells_Broadcast_Completed_List_tags_1, /* Same as above */ + sizeof(asn_DEF_Cells_Broadcast_Completed_List_tags_1) + /sizeof(asn_DEF_Cells_Broadcast_Completed_List_tags_1[0]), /* 1 */ + { &asn_OER_type_Cells_Broadcast_Completed_List_constr_1, &asn_PER_type_Cells_Broadcast_Completed_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Cells_Broadcast_Completed_List_1, + 1, /* Single element */ + &asn_SPC_Cells_Broadcast_Completed_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Cells-Broadcast-Completed-List.h b/src/du_app/F1AP/asn/Cells-Broadcast-Completed-List.h new file mode 100755 index 000000000..4d66480f2 --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-Broadcast-Completed-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Cells_Broadcast_Completed_List_H_ +#define _Cells_Broadcast_Completed_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* Cells-Broadcast-Completed-List */ +typedef struct Cells_Broadcast_Completed_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_Broadcast_Completed_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Cells_Broadcast_Completed_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _Cells_Broadcast_Completed_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Cells-Failed-to-be-Activated-List-Item.c b/src/du_app/F1AP/asn/Cells-Failed-to-be-Activated-List-Item.c new file mode 100755 index 000000000..1096faa6e --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-Failed-to-be-Activated-List-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Cells-Failed-to-be-Activated-List-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_Cells_Failed_to_be_Activated_List_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_Failed_to_be_Activated_List_Item, nRCGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRCGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nRCGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cells_Failed_to_be_Activated_List_Item, cause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 1, offsetof(struct Cells_Failed_to_be_Activated_List_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_Cells_Failed_to_be_Activated_List_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_Cells_Failed_to_be_Activated_List_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Cells_Failed_to_be_Activated_List_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Cells_Failed_to_be_Activated_List_Item_specs_1 = { + sizeof(struct Cells_Failed_to_be_Activated_List_Item), + offsetof(struct Cells_Failed_to_be_Activated_List_Item, _asn_ctx), + asn_MAP_Cells_Failed_to_be_Activated_List_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Cells_Failed_to_be_Activated_List_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_Failed_to_be_Activated_List_Item = { + "Cells-Failed-to-be-Activated-List-Item", + "Cells-Failed-to-be-Activated-List-Item", + &asn_OP_SEQUENCE, + asn_DEF_Cells_Failed_to_be_Activated_List_Item_tags_1, + sizeof(asn_DEF_Cells_Failed_to_be_Activated_List_Item_tags_1) + /sizeof(asn_DEF_Cells_Failed_to_be_Activated_List_Item_tags_1[0]), /* 1 */ + asn_DEF_Cells_Failed_to_be_Activated_List_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_Cells_Failed_to_be_Activated_List_Item_tags_1) + /sizeof(asn_DEF_Cells_Failed_to_be_Activated_List_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_Failed_to_be_Activated_List_Item_1, + 3, /* Elements count */ + &asn_SPC_Cells_Failed_to_be_Activated_List_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Cells-Failed-to-be-Activated-List-Item.h b/src/du_app/F1AP/asn/Cells-Failed-to-be-Activated-List-Item.h new file mode 100755 index 000000000..207bb19bb --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-Failed-to-be-Activated-List-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Cells_Failed_to_be_Activated_List_Item_H_ +#define _Cells_Failed_to_be_Activated_List_Item_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include "Cause.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* Cells-Failed-to-be-Activated-List-Item */ +typedef struct Cells_Failed_to_be_Activated_List_Item { + NRCGI_t nRCGI; + Cause_t cause; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_Failed_to_be_Activated_List_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Cells_Failed_to_be_Activated_List_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _Cells_Failed_to_be_Activated_List_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Cells-Failed-to-be-Activated-List.c b/src/du_app/F1AP/asn/Cells-Failed-to-be-Activated-List.c new file mode 100755 index 000000000..8ddded3d6 --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-Failed-to-be-Activated-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Cells-Failed-to-be-Activated-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_Cells_Failed_to_be_Activated_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..512)) */}; +static asn_per_constraints_t asn_PER_type_Cells_Failed_to_be_Activated_List_constr_1 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_Cells_Failed_to_be_Activated_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Cells_Failed_to_be_Activated_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Cells_Failed_to_be_Activated_List_specs_1 = { + sizeof(struct Cells_Failed_to_be_Activated_List), + offsetof(struct Cells_Failed_to_be_Activated_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_Failed_to_be_Activated_List = { + "Cells-Failed-to-be-Activated-List", + "Cells-Failed-to-be-Activated-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_Cells_Failed_to_be_Activated_List_tags_1, + sizeof(asn_DEF_Cells_Failed_to_be_Activated_List_tags_1) + /sizeof(asn_DEF_Cells_Failed_to_be_Activated_List_tags_1[0]), /* 1 */ + asn_DEF_Cells_Failed_to_be_Activated_List_tags_1, /* Same as above */ + sizeof(asn_DEF_Cells_Failed_to_be_Activated_List_tags_1) + /sizeof(asn_DEF_Cells_Failed_to_be_Activated_List_tags_1[0]), /* 1 */ + { &asn_OER_type_Cells_Failed_to_be_Activated_List_constr_1, &asn_PER_type_Cells_Failed_to_be_Activated_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Cells_Failed_to_be_Activated_List_1, + 1, /* Single element */ + &asn_SPC_Cells_Failed_to_be_Activated_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Cells-Failed-to-be-Activated-List.h b/src/du_app/F1AP/asn/Cells-Failed-to-be-Activated-List.h new file mode 100755 index 000000000..fdddb31b9 --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-Failed-to-be-Activated-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Cells_Failed_to_be_Activated_List_H_ +#define _Cells_Failed_to_be_Activated_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* Cells-Failed-to-be-Activated-List */ +typedef struct Cells_Failed_to_be_Activated_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_Failed_to_be_Activated_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Cells_Failed_to_be_Activated_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _Cells_Failed_to_be_Activated_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Cells-Status-Item.c b/src/du_app/F1AP/asn/Cells-Status-Item.c new file mode 100755 index 000000000..eb2647270 --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-Status-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Cells-Status-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_Cells_Status_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_Status_Item, nRCGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRCGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nRCGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cells_Status_Item, service_status), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Service_Status, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "service-status" + }, + { ATF_POINTER, 1, offsetof(struct Cells_Status_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_Cells_Status_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_Cells_Status_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Cells_Status_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* service-status */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Cells_Status_Item_specs_1 = { + sizeof(struct Cells_Status_Item), + offsetof(struct Cells_Status_Item, _asn_ctx), + asn_MAP_Cells_Status_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Cells_Status_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_Status_Item = { + "Cells-Status-Item", + "Cells-Status-Item", + &asn_OP_SEQUENCE, + asn_DEF_Cells_Status_Item_tags_1, + sizeof(asn_DEF_Cells_Status_Item_tags_1) + /sizeof(asn_DEF_Cells_Status_Item_tags_1[0]), /* 1 */ + asn_DEF_Cells_Status_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_Cells_Status_Item_tags_1) + /sizeof(asn_DEF_Cells_Status_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_Status_Item_1, + 3, /* Elements count */ + &asn_SPC_Cells_Status_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Cells-Status-Item.h b/src/du_app/F1AP/asn/Cells-Status-Item.h new file mode 100755 index 000000000..4be44c4b1 --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-Status-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Cells_Status_Item_H_ +#define _Cells_Status_Item_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include "Service-Status.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* Cells-Status-Item */ +typedef struct Cells_Status_Item { + NRCGI_t nRCGI; + Service_Status_t service_status; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_Status_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Cells_Status_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _Cells_Status_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Cells-Status-List.c b/src/du_app/F1AP/asn/Cells-Status-List.c new file mode 100755 index 000000000..54983a909 --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-Status-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Cells-Status-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_Cells_Status_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..512)) */}; +static asn_per_constraints_t asn_PER_type_Cells_Status_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 10, 10, 0, 512 } /* (SIZE(0..512)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_Cells_Status_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Cells_Status_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Cells_Status_List_specs_1 = { + sizeof(struct Cells_Status_List), + offsetof(struct Cells_Status_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_Status_List = { + "Cells-Status-List", + "Cells-Status-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_Cells_Status_List_tags_1, + sizeof(asn_DEF_Cells_Status_List_tags_1) + /sizeof(asn_DEF_Cells_Status_List_tags_1[0]), /* 1 */ + asn_DEF_Cells_Status_List_tags_1, /* Same as above */ + sizeof(asn_DEF_Cells_Status_List_tags_1) + /sizeof(asn_DEF_Cells_Status_List_tags_1[0]), /* 1 */ + { &asn_OER_type_Cells_Status_List_constr_1, &asn_PER_type_Cells_Status_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Cells_Status_List_1, + 1, /* Single element */ + &asn_SPC_Cells_Status_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Cells-Status-List.h b/src/du_app/F1AP/asn/Cells-Status-List.h new file mode 100755 index 000000000..99f56df33 --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-Status-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Cells_Status_List_H_ +#define _Cells_Status_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* Cells-Status-List */ +typedef struct Cells_Status_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_Status_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Cells_Status_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _Cells_Status_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Cells-To-Be-Broadcast-Item.c b/src/du_app/F1AP/asn/Cells-To-Be-Broadcast-Item.c new file mode 100755 index 000000000..4f6c4457b --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-To-Be-Broadcast-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Cells-To-Be-Broadcast-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_Cells_To_Be_Broadcast_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_To_Be_Broadcast_Item, 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, 1, offsetof(struct Cells_To_Be_Broadcast_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_Cells_To_Be_Broadcast_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_Cells_To_Be_Broadcast_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Cells_To_Be_Broadcast_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Cells_To_Be_Broadcast_Item_specs_1 = { + sizeof(struct Cells_To_Be_Broadcast_Item), + offsetof(struct Cells_To_Be_Broadcast_Item, _asn_ctx), + asn_MAP_Cells_To_Be_Broadcast_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_Cells_To_Be_Broadcast_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_To_Be_Broadcast_Item = { + "Cells-To-Be-Broadcast-Item", + "Cells-To-Be-Broadcast-Item", + &asn_OP_SEQUENCE, + asn_DEF_Cells_To_Be_Broadcast_Item_tags_1, + sizeof(asn_DEF_Cells_To_Be_Broadcast_Item_tags_1) + /sizeof(asn_DEF_Cells_To_Be_Broadcast_Item_tags_1[0]), /* 1 */ + asn_DEF_Cells_To_Be_Broadcast_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_Cells_To_Be_Broadcast_Item_tags_1) + /sizeof(asn_DEF_Cells_To_Be_Broadcast_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_To_Be_Broadcast_Item_1, + 2, /* Elements count */ + &asn_SPC_Cells_To_Be_Broadcast_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Cells-To-Be-Broadcast-Item.h b/src/du_app/F1AP/asn/Cells-To-Be-Broadcast-Item.h new file mode 100755 index 000000000..505962c65 --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-To-Be-Broadcast-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Cells_To_Be_Broadcast_Item_H_ +#define _Cells_To_Be_Broadcast_Item_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* Cells-To-Be-Broadcast-Item */ +typedef struct Cells_To_Be_Broadcast_Item { + NRCGI_t nRCGI; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_To_Be_Broadcast_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Cells_To_Be_Broadcast_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _Cells_To_Be_Broadcast_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Cells-To-Be-Broadcast-List.c b/src/du_app/F1AP/asn/Cells-To-Be-Broadcast-List.c new file mode 100755 index 000000000..149d059b4 --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-To-Be-Broadcast-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Cells-To-Be-Broadcast-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_Cells_To_Be_Broadcast_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..512)) */}; +static asn_per_constraints_t asn_PER_type_Cells_To_Be_Broadcast_List_constr_1 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_Cells_To_Be_Broadcast_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P50, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Cells_To_Be_Broadcast_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Cells_To_Be_Broadcast_List_specs_1 = { + sizeof(struct Cells_To_Be_Broadcast_List), + offsetof(struct Cells_To_Be_Broadcast_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_To_Be_Broadcast_List = { + "Cells-To-Be-Broadcast-List", + "Cells-To-Be-Broadcast-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_Cells_To_Be_Broadcast_List_tags_1, + sizeof(asn_DEF_Cells_To_Be_Broadcast_List_tags_1) + /sizeof(asn_DEF_Cells_To_Be_Broadcast_List_tags_1[0]), /* 1 */ + asn_DEF_Cells_To_Be_Broadcast_List_tags_1, /* Same as above */ + sizeof(asn_DEF_Cells_To_Be_Broadcast_List_tags_1) + /sizeof(asn_DEF_Cells_To_Be_Broadcast_List_tags_1[0]), /* 1 */ + { &asn_OER_type_Cells_To_Be_Broadcast_List_constr_1, &asn_PER_type_Cells_To_Be_Broadcast_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Cells_To_Be_Broadcast_List_1, + 1, /* Single element */ + &asn_SPC_Cells_To_Be_Broadcast_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Cells-To-Be-Broadcast-List.h b/src/du_app/F1AP/asn/Cells-To-Be-Broadcast-List.h new file mode 100755 index 000000000..0a94136aa --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-To-Be-Broadcast-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Cells_To_Be_Broadcast_List_H_ +#define _Cells_To_Be_Broadcast_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* Cells-To-Be-Broadcast-List */ +typedef struct Cells_To_Be_Broadcast_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_To_Be_Broadcast_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Cells_To_Be_Broadcast_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _Cells_To_Be_Broadcast_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Cells-to-be-Activated-List-Item.c b/src/du_app/F1AP/asn/Cells-to-be-Activated-List-Item.c new file mode 100755 index 000000000..6e0bdcb08 --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-to-be-Activated-List-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Cells-to-be-Activated-List-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_Cells_to_be_Activated_List_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_to_be_Activated_List_Item, 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 Cells_to_be_Activated_List_Item, nRPCI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRPCI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nRPCI" + }, + { ATF_POINTER, 1, offsetof(struct Cells_to_be_Activated_List_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_Cells_to_be_Activated_List_Item_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_Cells_to_be_Activated_List_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Cells_to_be_Activated_List_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nRPCI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Cells_to_be_Activated_List_Item_specs_1 = { + sizeof(struct Cells_to_be_Activated_List_Item), + offsetof(struct Cells_to_be_Activated_List_Item, _asn_ctx), + asn_MAP_Cells_to_be_Activated_List_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Cells_to_be_Activated_List_Item_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_to_be_Activated_List_Item = { + "Cells-to-be-Activated-List-Item", + "Cells-to-be-Activated-List-Item", + &asn_OP_SEQUENCE, + asn_DEF_Cells_to_be_Activated_List_Item_tags_1, + sizeof(asn_DEF_Cells_to_be_Activated_List_Item_tags_1) + /sizeof(asn_DEF_Cells_to_be_Activated_List_Item_tags_1[0]), /* 1 */ + asn_DEF_Cells_to_be_Activated_List_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_Cells_to_be_Activated_List_Item_tags_1) + /sizeof(asn_DEF_Cells_to_be_Activated_List_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_to_be_Activated_List_Item_1, + 3, /* Elements count */ + &asn_SPC_Cells_to_be_Activated_List_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Cells-to-be-Activated-List-Item.h b/src/du_app/F1AP/asn/Cells-to-be-Activated-List-Item.h new file mode 100755 index 000000000..505463438 --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-to-be-Activated-List-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Cells_to_be_Activated_List_Item_H_ +#define _Cells_to_be_Activated_List_Item_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include "NRPCI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* Cells-to-be-Activated-List-Item */ +typedef struct Cells_to_be_Activated_List_Item { + NRCGI_t nRCGI; + NRPCI_t *nRPCI; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_to_be_Activated_List_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Cells_to_be_Activated_List_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _Cells_to_be_Activated_List_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Cells-to-be-Activated-List.c b/src/du_app/F1AP/asn/Cells-to-be-Activated-List.c new file mode 100755 index 000000000..0760f6381 --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-to-be-Activated-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Cells-to-be-Activated-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_Cells_to_be_Activated_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..512)) */}; +static asn_per_constraints_t asn_PER_type_Cells_to_be_Activated_List_constr_1 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_Cells_to_be_Activated_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Cells_to_be_Activated_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Cells_to_be_Activated_List_specs_1 = { + sizeof(struct Cells_to_be_Activated_List), + offsetof(struct Cells_to_be_Activated_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_to_be_Activated_List = { + "Cells-to-be-Activated-List", + "Cells-to-be-Activated-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_Cells_to_be_Activated_List_tags_1, + sizeof(asn_DEF_Cells_to_be_Activated_List_tags_1) + /sizeof(asn_DEF_Cells_to_be_Activated_List_tags_1[0]), /* 1 */ + asn_DEF_Cells_to_be_Activated_List_tags_1, /* Same as above */ + sizeof(asn_DEF_Cells_to_be_Activated_List_tags_1) + /sizeof(asn_DEF_Cells_to_be_Activated_List_tags_1[0]), /* 1 */ + { &asn_OER_type_Cells_to_be_Activated_List_constr_1, &asn_PER_type_Cells_to_be_Activated_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Cells_to_be_Activated_List_1, + 1, /* Single element */ + &asn_SPC_Cells_to_be_Activated_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Cells-to-be-Activated-List.h b/src/du_app/F1AP/asn/Cells-to-be-Activated-List.h new file mode 100755 index 000000000..6f5a6c55a --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-to-be-Activated-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Cells_to_be_Activated_List_H_ +#define _Cells_to_be_Activated_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* Cells-to-be-Activated-List */ +typedef struct Cells_to_be_Activated_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_to_be_Activated_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Cells_to_be_Activated_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _Cells_to_be_Activated_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Cells-to-be-Barred-Item.c b/src/du_app/F1AP/asn/Cells-to-be-Barred-Item.c new file mode 100755 index 000000000..5d1bce804 --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-to-be-Barred-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Cells-to-be-Barred-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_Cells_to_be_Barred_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_to_be_Barred_Item, nRCGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRCGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nRCGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cells_to_be_Barred_Item, cellBarred), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellBarred, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellBarred" + }, + { ATF_POINTER, 1, offsetof(struct Cells_to_be_Barred_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_Cells_to_be_Barred_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_Cells_to_be_Barred_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Cells_to_be_Barred_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cellBarred */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Cells_to_be_Barred_Item_specs_1 = { + sizeof(struct Cells_to_be_Barred_Item), + offsetof(struct Cells_to_be_Barred_Item, _asn_ctx), + asn_MAP_Cells_to_be_Barred_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Cells_to_be_Barred_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_to_be_Barred_Item = { + "Cells-to-be-Barred-Item", + "Cells-to-be-Barred-Item", + &asn_OP_SEQUENCE, + asn_DEF_Cells_to_be_Barred_Item_tags_1, + sizeof(asn_DEF_Cells_to_be_Barred_Item_tags_1) + /sizeof(asn_DEF_Cells_to_be_Barred_Item_tags_1[0]), /* 1 */ + asn_DEF_Cells_to_be_Barred_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_Cells_to_be_Barred_Item_tags_1) + /sizeof(asn_DEF_Cells_to_be_Barred_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_to_be_Barred_Item_1, + 3, /* Elements count */ + &asn_SPC_Cells_to_be_Barred_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Cells-to-be-Barred-Item.h b/src/du_app/F1AP/asn/Cells-to-be-Barred-Item.h new file mode 100755 index 000000000..746d7b2f6 --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-to-be-Barred-Item.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Cells_to_be_Barred_Item_H_ +#define _Cells_to_be_Barred_Item_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include "CellBarred.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* Cells-to-be-Barred-Item */ +typedef struct Cells_to_be_Barred_Item { + NRCGI_t nRCGI; + CellBarred_t cellBarred; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_to_be_Barred_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Cells_to_be_Barred_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _Cells_to_be_Barred_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Cells-to-be-Barred-List.c b/src/du_app/F1AP/asn/Cells-to-be-Barred-List.c new file mode 100755 index 000000000..7ea348da1 --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-to-be-Barred-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Cells-to-be-Barred-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_Cells_to_be_Barred_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..512)) */}; +static asn_per_constraints_t asn_PER_type_Cells_to_be_Barred_List_constr_1 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_Cells_to_be_Barred_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Cells_to_be_Barred_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Cells_to_be_Barred_List_specs_1 = { + sizeof(struct Cells_to_be_Barred_List), + offsetof(struct Cells_to_be_Barred_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_to_be_Barred_List = { + "Cells-to-be-Barred-List", + "Cells-to-be-Barred-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_Cells_to_be_Barred_List_tags_1, + sizeof(asn_DEF_Cells_to_be_Barred_List_tags_1) + /sizeof(asn_DEF_Cells_to_be_Barred_List_tags_1[0]), /* 1 */ + asn_DEF_Cells_to_be_Barred_List_tags_1, /* Same as above */ + sizeof(asn_DEF_Cells_to_be_Barred_List_tags_1) + /sizeof(asn_DEF_Cells_to_be_Barred_List_tags_1[0]), /* 1 */ + { &asn_OER_type_Cells_to_be_Barred_List_constr_1, &asn_PER_type_Cells_to_be_Barred_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Cells_to_be_Barred_List_1, + 1, /* Single element */ + &asn_SPC_Cells_to_be_Barred_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Cells-to-be-Barred-List.h b/src/du_app/F1AP/asn/Cells-to-be-Barred-List.h new file mode 100755 index 000000000..63a11ac02 --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-to-be-Barred-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Cells_to_be_Barred_List_H_ +#define _Cells_to_be_Barred_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* Cells-to-be-Barred-List */ +typedef struct Cells_to_be_Barred_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_to_be_Barred_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Cells_to_be_Barred_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _Cells_to_be_Barred_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Cells-to-be-Deactivated-List-Item.c b/src/du_app/F1AP/asn/Cells-to-be-Deactivated-List-Item.c new file mode 100755 index 000000000..276653aa8 --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-to-be-Deactivated-List-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Cells-to-be-Deactivated-List-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_Cells_to_be_Deactivated_List_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_to_be_Deactivated_List_Item, 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, 1, offsetof(struct Cells_to_be_Deactivated_List_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_Cells_to_be_Deactivated_List_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_Cells_to_be_Deactivated_List_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Cells_to_be_Deactivated_List_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Cells_to_be_Deactivated_List_Item_specs_1 = { + sizeof(struct Cells_to_be_Deactivated_List_Item), + offsetof(struct Cells_to_be_Deactivated_List_Item, _asn_ctx), + asn_MAP_Cells_to_be_Deactivated_List_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_Cells_to_be_Deactivated_List_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_to_be_Deactivated_List_Item = { + "Cells-to-be-Deactivated-List-Item", + "Cells-to-be-Deactivated-List-Item", + &asn_OP_SEQUENCE, + asn_DEF_Cells_to_be_Deactivated_List_Item_tags_1, + sizeof(asn_DEF_Cells_to_be_Deactivated_List_Item_tags_1) + /sizeof(asn_DEF_Cells_to_be_Deactivated_List_Item_tags_1[0]), /* 1 */ + asn_DEF_Cells_to_be_Deactivated_List_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_Cells_to_be_Deactivated_List_Item_tags_1) + /sizeof(asn_DEF_Cells_to_be_Deactivated_List_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_to_be_Deactivated_List_Item_1, + 2, /* Elements count */ + &asn_SPC_Cells_to_be_Deactivated_List_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Cells-to-be-Deactivated-List-Item.h b/src/du_app/F1AP/asn/Cells-to-be-Deactivated-List-Item.h new file mode 100755 index 000000000..8af7f3fe2 --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-to-be-Deactivated-List-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Cells_to_be_Deactivated_List_Item_H_ +#define _Cells_to_be_Deactivated_List_Item_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* Cells-to-be-Deactivated-List-Item */ +typedef struct Cells_to_be_Deactivated_List_Item { + NRCGI_t nRCGI; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_to_be_Deactivated_List_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Cells_to_be_Deactivated_List_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _Cells_to_be_Deactivated_List_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Cells-to-be-Deactivated-List.c b/src/du_app/F1AP/asn/Cells-to-be-Deactivated-List.c new file mode 100755 index 000000000..566339921 --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-to-be-Deactivated-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Cells-to-be-Deactivated-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_Cells_to_be_Deactivated_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..512)) */}; +static asn_per_constraints_t asn_PER_type_Cells_to_be_Deactivated_List_constr_1 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_Cells_to_be_Deactivated_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Cells_to_be_Deactivated_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Cells_to_be_Deactivated_List_specs_1 = { + sizeof(struct Cells_to_be_Deactivated_List), + offsetof(struct Cells_to_be_Deactivated_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_to_be_Deactivated_List = { + "Cells-to-be-Deactivated-List", + "Cells-to-be-Deactivated-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_Cells_to_be_Deactivated_List_tags_1, + sizeof(asn_DEF_Cells_to_be_Deactivated_List_tags_1) + /sizeof(asn_DEF_Cells_to_be_Deactivated_List_tags_1[0]), /* 1 */ + asn_DEF_Cells_to_be_Deactivated_List_tags_1, /* Same as above */ + sizeof(asn_DEF_Cells_to_be_Deactivated_List_tags_1) + /sizeof(asn_DEF_Cells_to_be_Deactivated_List_tags_1[0]), /* 1 */ + { &asn_OER_type_Cells_to_be_Deactivated_List_constr_1, &asn_PER_type_Cells_to_be_Deactivated_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Cells_to_be_Deactivated_List_1, + 1, /* Single element */ + &asn_SPC_Cells_to_be_Deactivated_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Cells-to-be-Deactivated-List.h b/src/du_app/F1AP/asn/Cells-to-be-Deactivated-List.h new file mode 100755 index 000000000..6307ded9f --- /dev/null +++ b/src/du_app/F1AP/asn/Cells-to-be-Deactivated-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Cells_to_be_Deactivated_List_H_ +#define _Cells_to_be_Deactivated_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* Cells-to-be-Deactivated-List */ +typedef struct Cells_to_be_Deactivated_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_to_be_Deactivated_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Cells_to_be_Deactivated_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _Cells_to_be_Deactivated_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Configured-EPS-TAC.c b/src/du_app/F1AP/asn/Configured-EPS-TAC.c new file mode 100755 index 000000000..b370932c5 --- /dev/null +++ b/src/du_app/F1AP/asn/Configured-EPS-TAC.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Configured-EPS-TAC.h" + +int +Configured_EPS_TAC_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Configured_EPS_TAC_constr_1 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +asn_per_constraints_t asn_PER_type_Configured_EPS_TAC_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Configured_EPS_TAC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Configured_EPS_TAC = { + "Configured-EPS-TAC", + "Configured-EPS-TAC", + &asn_OP_OCTET_STRING, + asn_DEF_Configured_EPS_TAC_tags_1, + sizeof(asn_DEF_Configured_EPS_TAC_tags_1) + /sizeof(asn_DEF_Configured_EPS_TAC_tags_1[0]), /* 1 */ + asn_DEF_Configured_EPS_TAC_tags_1, /* Same as above */ + sizeof(asn_DEF_Configured_EPS_TAC_tags_1) + /sizeof(asn_DEF_Configured_EPS_TAC_tags_1[0]), /* 1 */ + { &asn_OER_type_Configured_EPS_TAC_constr_1, &asn_PER_type_Configured_EPS_TAC_constr_1, Configured_EPS_TAC_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Configured-EPS-TAC.h b/src/du_app/F1AP/asn/Configured-EPS-TAC.h new file mode 100755 index 000000000..e76ac2b88 --- /dev/null +++ b/src/du_app/F1AP/asn/Configured-EPS-TAC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Configured_EPS_TAC_H_ +#define _Configured_EPS_TAC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Configured-EPS-TAC */ +typedef OCTET_STRING_t Configured_EPS_TAC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Configured_EPS_TAC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Configured_EPS_TAC; +asn_struct_free_f Configured_EPS_TAC_free; +asn_struct_print_f Configured_EPS_TAC_print; +asn_constr_check_f Configured_EPS_TAC_constraint; +ber_type_decoder_f Configured_EPS_TAC_decode_ber; +der_type_encoder_f Configured_EPS_TAC_encode_der; +xer_type_decoder_f Configured_EPS_TAC_decode_xer; +xer_type_encoder_f Configured_EPS_TAC_encode_xer; +oer_type_decoder_f Configured_EPS_TAC_decode_oer; +oer_type_encoder_f Configured_EPS_TAC_encode_oer; +per_type_decoder_f Configured_EPS_TAC_decode_uper; +per_type_encoder_f Configured_EPS_TAC_encode_uper; +per_type_decoder_f Configured_EPS_TAC_decode_aper; +per_type_encoder_f Configured_EPS_TAC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Configured_EPS_TAC_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Criticality.c b/src/du_app/F1AP/asn/Criticality.c new file mode 100755 index 000000000..2509271d1 --- /dev/null +++ b/src/du_app/F1AP/asn/Criticality.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-CommonDataTypes" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Criticality.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Criticality_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_Criticality_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_Criticality_value2enum_1[] = { + { 0, 6, "reject" }, + { 1, 6, "ignore" }, + { 2, 6, "notify" } +}; +static const unsigned int asn_MAP_Criticality_enum2value_1[] = { + 1, /* ignore(1) */ + 2, /* notify(2) */ + 0 /* reject(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Criticality_specs_1 = { + asn_MAP_Criticality_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Criticality_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_Criticality_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Criticality = { + "Criticality", + "Criticality", + &asn_OP_NativeEnumerated, + asn_DEF_Criticality_tags_1, + sizeof(asn_DEF_Criticality_tags_1) + /sizeof(asn_DEF_Criticality_tags_1[0]), /* 1 */ + asn_DEF_Criticality_tags_1, /* Same as above */ + sizeof(asn_DEF_Criticality_tags_1) + /sizeof(asn_DEF_Criticality_tags_1[0]), /* 1 */ + { &asn_OER_type_Criticality_constr_1, &asn_PER_type_Criticality_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Criticality_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Criticality.h b/src/du_app/F1AP/asn/Criticality.h new file mode 100755 index 000000000..26030459e --- /dev/null +++ b/src/du_app/F1AP/asn/Criticality.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-CommonDataTypes" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Criticality_H_ +#define _Criticality_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Criticality { + Criticality_reject = 0, + Criticality_ignore = 1, + Criticality_notify = 2 +} e_Criticality; + +/* Criticality */ +typedef long Criticality_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Criticality_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Criticality; +extern const asn_INTEGER_specifics_t asn_SPC_Criticality_specs_1; +asn_struct_free_f Criticality_free; +asn_struct_print_f Criticality_print; +asn_constr_check_f Criticality_constraint; +ber_type_decoder_f Criticality_decode_ber; +der_type_encoder_f Criticality_encode_der; +xer_type_decoder_f Criticality_decode_xer; +xer_type_encoder_f Criticality_encode_xer; +oer_type_decoder_f Criticality_decode_oer; +oer_type_encoder_f Criticality_encode_oer; +per_type_decoder_f Criticality_decode_uper; +per_type_encoder_f Criticality_encode_uper; +per_type_decoder_f Criticality_decode_aper; +per_type_encoder_f Criticality_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Criticality_H_ */ +#include diff --git a/src/du_app/F1AP/asn/CriticalityDiagnostics-IE-Item.c b/src/du_app/F1AP/asn/CriticalityDiagnostics-IE-Item.c new file mode 100755 index 000000000..c2cca02b2 --- /dev/null +++ b/src/du_app/F1AP/asn/CriticalityDiagnostics-IE-Item.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CriticalityDiagnostics-IE-Item.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_Item, iECriticality), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iECriticality" + }, + { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_Item, iE_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_Item, typeOfError), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TypeOfError, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "typeOfError" + }, + { ATF_POINTER, 1, offsetof(struct CriticalityDiagnostics_IE_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_CriticalityDiagnostics_IE_Item_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_IE_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_IE_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* iECriticality */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* iE-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* typeOfError */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_IE_Item_specs_1 = { + sizeof(struct CriticalityDiagnostics_IE_Item), + offsetof(struct CriticalityDiagnostics_IE_Item, _asn_ctx), + asn_MAP_CriticalityDiagnostics_IE_Item_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_CriticalityDiagnostics_IE_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_Item = { + "CriticalityDiagnostics-IE-Item", + "CriticalityDiagnostics-IE-Item", + &asn_OP_SEQUENCE, + asn_DEF_CriticalityDiagnostics_IE_Item_tags_1, + sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1) + /sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1[0]), /* 1 */ + asn_DEF_CriticalityDiagnostics_IE_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1) + /sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CriticalityDiagnostics_IE_Item_1, + 4, /* Elements count */ + &asn_SPC_CriticalityDiagnostics_IE_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/CriticalityDiagnostics-IE-Item.h b/src/du_app/F1AP/asn/CriticalityDiagnostics-IE-Item.h new file mode 100755 index 000000000..e0aa93c83 --- /dev/null +++ b/src/du_app/F1AP/asn/CriticalityDiagnostics-IE-Item.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CriticalityDiagnostics_IE_Item_H_ +#define _CriticalityDiagnostics_IE_Item_H_ + + +#include + +/* Including external dependencies */ +#include "Criticality.h" +#include "ProtocolIE-ID.h" +#include "TypeOfError.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* CriticalityDiagnostics-IE-Item */ +typedef struct CriticalityDiagnostics_IE_Item { + Criticality_t iECriticality; + ProtocolIE_ID_t iE_ID; + TypeOfError_t typeOfError; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CriticalityDiagnostics_IE_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_IE_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_Item_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CriticalityDiagnostics_IE_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/CriticalityDiagnostics-IE-List.c b/src/du_app/F1AP/asn/CriticalityDiagnostics-IE-List.c new file mode 100755 index 000000000..22810e331 --- /dev/null +++ b/src/du_app/F1AP/asn/CriticalityDiagnostics-IE-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CriticalityDiagnostics-IE-List.h" + +#include "CriticalityDiagnostics-IE-Item.h" +static asn_oer_constraints_t asn_OER_type_CriticalityDiagnostics_IE_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..256)) */}; +asn_per_constraints_t asn_PER_type_CriticalityDiagnostics_IE_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics_IE_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_IE_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_CriticalityDiagnostics_IE_List_specs_1 = { + sizeof(struct CriticalityDiagnostics_IE_List), + offsetof(struct CriticalityDiagnostics_IE_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List = { + "CriticalityDiagnostics-IE-List", + "CriticalityDiagnostics-IE-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_CriticalityDiagnostics_IE_List_tags_1, + sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1) + /sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */ + asn_DEF_CriticalityDiagnostics_IE_List_tags_1, /* Same as above */ + sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1) + /sizeof(asn_DEF_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */ + { &asn_OER_type_CriticalityDiagnostics_IE_List_constr_1, &asn_PER_type_CriticalityDiagnostics_IE_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_CriticalityDiagnostics_IE_List_1, + 1, /* Single element */ + &asn_SPC_CriticalityDiagnostics_IE_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/CriticalityDiagnostics-IE-List.h b/src/du_app/F1AP/asn/CriticalityDiagnostics-IE-List.h new file mode 100755 index 000000000..3b833c779 --- /dev/null +++ b/src/du_app/F1AP/asn/CriticalityDiagnostics-IE-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CriticalityDiagnostics_IE_List_H_ +#define _CriticalityDiagnostics_IE_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct CriticalityDiagnostics_IE_Item; + +/* CriticalityDiagnostics-IE-List */ +typedef struct CriticalityDiagnostics_IE_List { + A_SEQUENCE_OF(struct CriticalityDiagnostics_IE_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CriticalityDiagnostics_IE_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List; +extern asn_SET_OF_specifics_t asn_SPC_CriticalityDiagnostics_IE_List_specs_1; +extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_List_1[1]; +extern asn_per_constraints_t asn_PER_type_CriticalityDiagnostics_IE_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _CriticalityDiagnostics_IE_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/CriticalityDiagnostics.c b/src/du_app/F1AP/asn/CriticalityDiagnostics.c new file mode 100755 index 000000000..ea41ed431 --- /dev/null +++ b/src/du_app/F1AP/asn/CriticalityDiagnostics.c @@ -0,0 +1,104 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CriticalityDiagnostics.h" + +#include "CriticalityDiagnostics-IE-List.h" +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_1[] = { + { ATF_POINTER, 6, offsetof(struct CriticalityDiagnostics, procedureCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProcedureCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "procedureCode" + }, + { ATF_POINTER, 5, offsetof(struct CriticalityDiagnostics, triggeringMessage), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TriggeringMessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "triggeringMessage" + }, + { ATF_POINTER, 4, offsetof(struct CriticalityDiagnostics, procedureCriticality), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "procedureCriticality" + }, + { ATF_POINTER, 3, offsetof(struct CriticalityDiagnostics, transactionID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transactionID" + }, + { ATF_POINTER, 2, offsetof(struct CriticalityDiagnostics, iEsCriticalityDiagnostics), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CriticalityDiagnostics_IE_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iEsCriticalityDiagnostics" + }, + { ATF_POINTER, 1, offsetof(struct CriticalityDiagnostics, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_CriticalityDiagnostics_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* triggeringMessage */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* procedureCriticality */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* transactionID */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* iEsCriticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_specs_1 = { + sizeof(struct CriticalityDiagnostics), + offsetof(struct CriticalityDiagnostics, _asn_ctx), + asn_MAP_CriticalityDiagnostics_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_CriticalityDiagnostics_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics = { + "CriticalityDiagnostics", + "CriticalityDiagnostics", + &asn_OP_SEQUENCE, + asn_DEF_CriticalityDiagnostics_tags_1, + sizeof(asn_DEF_CriticalityDiagnostics_tags_1) + /sizeof(asn_DEF_CriticalityDiagnostics_tags_1[0]), /* 1 */ + asn_DEF_CriticalityDiagnostics_tags_1, /* Same as above */ + sizeof(asn_DEF_CriticalityDiagnostics_tags_1) + /sizeof(asn_DEF_CriticalityDiagnostics_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CriticalityDiagnostics_1, + 6, /* Elements count */ + &asn_SPC_CriticalityDiagnostics_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/CriticalityDiagnostics.h b/src/du_app/F1AP/asn/CriticalityDiagnostics.h new file mode 100755 index 000000000..366e1ca95 --- /dev/null +++ b/src/du_app/F1AP/asn/CriticalityDiagnostics.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CriticalityDiagnostics_H_ +#define _CriticalityDiagnostics_H_ + + +#include + +/* Including external dependencies */ +#include "ProcedureCode.h" +#include "TriggeringMessage.h" +#include "Criticality.h" +#include "TransactionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct CriticalityDiagnostics_IE_List; +struct ProtocolExtensionContainer; + +/* CriticalityDiagnostics */ +typedef struct CriticalityDiagnostics { + ProcedureCode_t *procedureCode; /* OPTIONAL */ + TriggeringMessage_t *triggeringMessage; /* OPTIONAL */ + Criticality_t *procedureCriticality; /* OPTIONAL */ + TransactionID_t *transactionID; /* OPTIONAL */ + struct CriticalityDiagnostics_IE_List *iEsCriticalityDiagnostics; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CriticalityDiagnostics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics; + +#ifdef __cplusplus +} +#endif + +#endif /* _CriticalityDiagnostics_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DCBasedDuplicationConfigured.c b/src/du_app/F1AP/asn/DCBasedDuplicationConfigured.c new file mode 100755 index 000000000..823ad8da7 --- /dev/null +++ b/src/du_app/F1AP/asn/DCBasedDuplicationConfigured.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DCBasedDuplicationConfigured.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DCBasedDuplicationConfigured_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_DCBasedDuplicationConfigured_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_DCBasedDuplicationConfigured_value2enum_1[] = { + { 0, 4, "true" }, + { 1, 5, "false" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_DCBasedDuplicationConfigured_enum2value_1[] = { + 1, /* false(1) */ + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_DCBasedDuplicationConfigured_specs_1 = { + asn_MAP_DCBasedDuplicationConfigured_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DCBasedDuplicationConfigured_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* 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_DCBasedDuplicationConfigured_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DCBasedDuplicationConfigured = { + "DCBasedDuplicationConfigured", + "DCBasedDuplicationConfigured", + &asn_OP_NativeEnumerated, + asn_DEF_DCBasedDuplicationConfigured_tags_1, + sizeof(asn_DEF_DCBasedDuplicationConfigured_tags_1) + /sizeof(asn_DEF_DCBasedDuplicationConfigured_tags_1[0]), /* 1 */ + asn_DEF_DCBasedDuplicationConfigured_tags_1, /* Same as above */ + sizeof(asn_DEF_DCBasedDuplicationConfigured_tags_1) + /sizeof(asn_DEF_DCBasedDuplicationConfigured_tags_1[0]), /* 1 */ + { &asn_OER_type_DCBasedDuplicationConfigured_constr_1, &asn_PER_type_DCBasedDuplicationConfigured_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DCBasedDuplicationConfigured_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DCBasedDuplicationConfigured.h b/src/du_app/F1AP/asn/DCBasedDuplicationConfigured.h new file mode 100755 index 000000000..e14ac3ebb --- /dev/null +++ b/src/du_app/F1AP/asn/DCBasedDuplicationConfigured.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DCBasedDuplicationConfigured_H_ +#define _DCBasedDuplicationConfigured_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DCBasedDuplicationConfigured { + DCBasedDuplicationConfigured_true = 0, + /* + * Enumeration is extensible + */ + DCBasedDuplicationConfigured_false = 1 +} e_DCBasedDuplicationConfigured; + +/* DCBasedDuplicationConfigured */ +typedef long DCBasedDuplicationConfigured_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DCBasedDuplicationConfigured; +asn_struct_free_f DCBasedDuplicationConfigured_free; +asn_struct_print_f DCBasedDuplicationConfigured_print; +asn_constr_check_f DCBasedDuplicationConfigured_constraint; +ber_type_decoder_f DCBasedDuplicationConfigured_decode_ber; +der_type_encoder_f DCBasedDuplicationConfigured_encode_der; +xer_type_decoder_f DCBasedDuplicationConfigured_decode_xer; +xer_type_encoder_f DCBasedDuplicationConfigured_encode_xer; +oer_type_decoder_f DCBasedDuplicationConfigured_decode_oer; +oer_type_encoder_f DCBasedDuplicationConfigured_encode_oer; +per_type_decoder_f DCBasedDuplicationConfigured_decode_uper; +per_type_encoder_f DCBasedDuplicationConfigured_encode_uper; +per_type_decoder_f DCBasedDuplicationConfigured_decode_aper; +per_type_encoder_f DCBasedDuplicationConfigured_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DCBasedDuplicationConfigured_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DLRRCMessageTransfer.c b/src/du_app/F1AP/asn/DLRRCMessageTransfer.c new file mode 100755 index 000000000..911ed496d --- /dev/null +++ b/src/du_app/F1AP/asn/DLRRCMessageTransfer.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DLRRCMessageTransfer.h" + +asn_TYPE_member_t asn_MBR_DLRRCMessageTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DLRRCMessageTransfer, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P32, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_DLRRCMessageTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DLRRCMessageTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DLRRCMessageTransfer_specs_1 = { + sizeof(struct DLRRCMessageTransfer), + offsetof(struct DLRRCMessageTransfer, _asn_ctx), + asn_MAP_DLRRCMessageTransfer_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_DLRRCMessageTransfer = { + "DLRRCMessageTransfer", + "DLRRCMessageTransfer", + &asn_OP_SEQUENCE, + asn_DEF_DLRRCMessageTransfer_tags_1, + sizeof(asn_DEF_DLRRCMessageTransfer_tags_1) + /sizeof(asn_DEF_DLRRCMessageTransfer_tags_1[0]), /* 1 */ + asn_DEF_DLRRCMessageTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_DLRRCMessageTransfer_tags_1) + /sizeof(asn_DEF_DLRRCMessageTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DLRRCMessageTransfer_1, + 1, /* Elements count */ + &asn_SPC_DLRRCMessageTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DLRRCMessageTransfer.h b/src/du_app/F1AP/asn/DLRRCMessageTransfer.h new file mode 100755 index 000000000..2ede7abc4 --- /dev/null +++ b/src/du_app/F1AP/asn/DLRRCMessageTransfer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DLRRCMessageTransfer_H_ +#define _DLRRCMessageTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DLRRCMessageTransfer */ +typedef struct DLRRCMessageTransfer { + ProtocolIE_Container_4587P32_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DLRRCMessageTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DLRRCMessageTransfer; +extern asn_SEQUENCE_specifics_t asn_SPC_DLRRCMessageTransfer_specs_1; +extern asn_TYPE_member_t asn_MBR_DLRRCMessageTransfer_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DLRRCMessageTransfer_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DLUPTNLInformation-ToBeSetup-Item.c b/src/du_app/F1AP/asn/DLUPTNLInformation-ToBeSetup-Item.c new file mode 100755 index 000000000..e58846ffc --- /dev/null +++ b/src/du_app/F1AP/asn/DLUPTNLInformation-ToBeSetup-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DLUPTNLInformation-ToBeSetup-Item.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_DLUPTNLInformation_ToBeSetup_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DLUPTNLInformation_ToBeSetup_Item, dLUPTNLInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dLUPTNLInformation" + }, + { ATF_POINTER, 1, offsetof(struct DLUPTNLInformation_ToBeSetup_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_DLUPTNLInformation_ToBeSetup_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_DLUPTNLInformation_ToBeSetup_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DLUPTNLInformation_ToBeSetup_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dLUPTNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DLUPTNLInformation_ToBeSetup_Item_specs_1 = { + sizeof(struct DLUPTNLInformation_ToBeSetup_Item), + offsetof(struct DLUPTNLInformation_ToBeSetup_Item, _asn_ctx), + asn_MAP_DLUPTNLInformation_ToBeSetup_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_DLUPTNLInformation_ToBeSetup_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DLUPTNLInformation_ToBeSetup_Item = { + "DLUPTNLInformation-ToBeSetup-Item", + "DLUPTNLInformation-ToBeSetup-Item", + &asn_OP_SEQUENCE, + asn_DEF_DLUPTNLInformation_ToBeSetup_Item_tags_1, + sizeof(asn_DEF_DLUPTNLInformation_ToBeSetup_Item_tags_1) + /sizeof(asn_DEF_DLUPTNLInformation_ToBeSetup_Item_tags_1[0]), /* 1 */ + asn_DEF_DLUPTNLInformation_ToBeSetup_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_DLUPTNLInformation_ToBeSetup_Item_tags_1) + /sizeof(asn_DEF_DLUPTNLInformation_ToBeSetup_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DLUPTNLInformation_ToBeSetup_Item_1, + 2, /* Elements count */ + &asn_SPC_DLUPTNLInformation_ToBeSetup_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DLUPTNLInformation-ToBeSetup-Item.h b/src/du_app/F1AP/asn/DLUPTNLInformation-ToBeSetup-Item.h new file mode 100755 index 000000000..2c40b5f04 --- /dev/null +++ b/src/du_app/F1AP/asn/DLUPTNLInformation-ToBeSetup-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DLUPTNLInformation_ToBeSetup_Item_H_ +#define _DLUPTNLInformation_ToBeSetup_Item_H_ + + +#include + +/* Including external dependencies */ +#include "UPTransportLayerInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* DLUPTNLInformation-ToBeSetup-Item */ +typedef struct DLUPTNLInformation_ToBeSetup_Item { + UPTransportLayerInformation_t dLUPTNLInformation; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DLUPTNLInformation_ToBeSetup_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DLUPTNLInformation_ToBeSetup_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_DLUPTNLInformation_ToBeSetup_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_DLUPTNLInformation_ToBeSetup_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DLUPTNLInformation_ToBeSetup_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DLUPTNLInformation-ToBeSetup-List.c b/src/du_app/F1AP/asn/DLUPTNLInformation-ToBeSetup-List.c new file mode 100755 index 000000000..14128efde --- /dev/null +++ b/src/du_app/F1AP/asn/DLUPTNLInformation-ToBeSetup-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DLUPTNLInformation-ToBeSetup-List.h" + +#include "DLUPTNLInformation-ToBeSetup-Item.h" +static asn_oer_constraints_t asn_OER_type_DLUPTNLInformation_ToBeSetup_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..2)) */}; +asn_per_constraints_t asn_PER_type_DLUPTNLInformation_ToBeSetup_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 1, 1, 1, 2 } /* (SIZE(1..2)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_DLUPTNLInformation_ToBeSetup_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DLUPTNLInformation_ToBeSetup_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DLUPTNLInformation_ToBeSetup_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_DLUPTNLInformation_ToBeSetup_List_specs_1 = { + sizeof(struct DLUPTNLInformation_ToBeSetup_List), + offsetof(struct DLUPTNLInformation_ToBeSetup_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DLUPTNLInformation_ToBeSetup_List = { + "DLUPTNLInformation-ToBeSetup-List", + "DLUPTNLInformation-ToBeSetup-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_DLUPTNLInformation_ToBeSetup_List_tags_1, + sizeof(asn_DEF_DLUPTNLInformation_ToBeSetup_List_tags_1) + /sizeof(asn_DEF_DLUPTNLInformation_ToBeSetup_List_tags_1[0]), /* 1 */ + asn_DEF_DLUPTNLInformation_ToBeSetup_List_tags_1, /* Same as above */ + sizeof(asn_DEF_DLUPTNLInformation_ToBeSetup_List_tags_1) + /sizeof(asn_DEF_DLUPTNLInformation_ToBeSetup_List_tags_1[0]), /* 1 */ + { &asn_OER_type_DLUPTNLInformation_ToBeSetup_List_constr_1, &asn_PER_type_DLUPTNLInformation_ToBeSetup_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DLUPTNLInformation_ToBeSetup_List_1, + 1, /* Single element */ + &asn_SPC_DLUPTNLInformation_ToBeSetup_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DLUPTNLInformation-ToBeSetup-List.h b/src/du_app/F1AP/asn/DLUPTNLInformation-ToBeSetup-List.h new file mode 100755 index 000000000..55d20d386 --- /dev/null +++ b/src/du_app/F1AP/asn/DLUPTNLInformation-ToBeSetup-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DLUPTNLInformation_ToBeSetup_List_H_ +#define _DLUPTNLInformation_ToBeSetup_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct DLUPTNLInformation_ToBeSetup_Item; + +/* DLUPTNLInformation-ToBeSetup-List */ +typedef struct DLUPTNLInformation_ToBeSetup_List { + A_SEQUENCE_OF(struct DLUPTNLInformation_ToBeSetup_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DLUPTNLInformation_ToBeSetup_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DLUPTNLInformation_ToBeSetup_List; +extern asn_SET_OF_specifics_t asn_SPC_DLUPTNLInformation_ToBeSetup_List_specs_1; +extern asn_TYPE_member_t asn_MBR_DLUPTNLInformation_ToBeSetup_List_1[1]; +extern asn_per_constraints_t asn_PER_type_DLUPTNLInformation_ToBeSetup_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _DLUPTNLInformation_ToBeSetup_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRB-Activity-Item.c b/src/du_app/F1AP/asn/DRB-Activity-Item.c new file mode 100755 index 000000000..3db36c71f --- /dev/null +++ b/src/du_app/F1AP/asn/DRB-Activity-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRB-Activity-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_DRB_Activity_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRB_Activity_Item, dRBID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRBID" + }, + { ATF_POINTER, 2, offsetof(struct DRB_Activity_Item, dRB_Activity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRB_Activity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRB-Activity" + }, + { ATF_POINTER, 1, offsetof(struct DRB_Activity_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_DRB_Activity_Item_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_DRB_Activity_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRB_Activity_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dRBID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dRB-Activity */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DRB_Activity_Item_specs_1 = { + sizeof(struct DRB_Activity_Item), + offsetof(struct DRB_Activity_Item, _asn_ctx), + asn_MAP_DRB_Activity_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_DRB_Activity_Item_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRB_Activity_Item = { + "DRB-Activity-Item", + "DRB-Activity-Item", + &asn_OP_SEQUENCE, + asn_DEF_DRB_Activity_Item_tags_1, + sizeof(asn_DEF_DRB_Activity_Item_tags_1) + /sizeof(asn_DEF_DRB_Activity_Item_tags_1[0]), /* 1 */ + asn_DEF_DRB_Activity_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_DRB_Activity_Item_tags_1) + /sizeof(asn_DEF_DRB_Activity_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRB_Activity_Item_1, + 3, /* Elements count */ + &asn_SPC_DRB_Activity_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRB-Activity-Item.h b/src/du_app/F1AP/asn/DRB-Activity-Item.h new file mode 100755 index 000000000..81b555333 --- /dev/null +++ b/src/du_app/F1AP/asn/DRB-Activity-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRB_Activity_Item_H_ +#define _DRB_Activity_Item_H_ + + +#include + +/* Including external dependencies */ +#include "DRBID.h" +#include "DRB-Activity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* DRB-Activity-Item */ +typedef struct DRB_Activity_Item { + DRBID_t dRBID; + DRB_Activity_t *dRB_Activity; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRB_Activity_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRB_Activity_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRB_Activity_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRB-Activity-List.c b/src/du_app/F1AP/asn/DRB-Activity-List.c new file mode 100755 index 000000000..53a46df10 --- /dev/null +++ b/src/du_app/F1AP/asn/DRB-Activity-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRB-Activity-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_DRB_Activity_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_DRB_Activity_List_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 */ +}; +static asn_TYPE_member_t asn_MBR_DRB_Activity_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P54, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRB_Activity_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_DRB_Activity_List_specs_1 = { + sizeof(struct DRB_Activity_List), + offsetof(struct DRB_Activity_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DRB_Activity_List = { + "DRB-Activity-List", + "DRB-Activity-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_DRB_Activity_List_tags_1, + sizeof(asn_DEF_DRB_Activity_List_tags_1) + /sizeof(asn_DEF_DRB_Activity_List_tags_1[0]), /* 1 */ + asn_DEF_DRB_Activity_List_tags_1, /* Same as above */ + sizeof(asn_DEF_DRB_Activity_List_tags_1) + /sizeof(asn_DEF_DRB_Activity_List_tags_1[0]), /* 1 */ + { &asn_OER_type_DRB_Activity_List_constr_1, &asn_PER_type_DRB_Activity_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DRB_Activity_List_1, + 1, /* Single element */ + &asn_SPC_DRB_Activity_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRB-Activity-List.h b/src/du_app/F1AP/asn/DRB-Activity-List.h new file mode 100755 index 000000000..053f6a89e --- /dev/null +++ b/src/du_app/F1AP/asn/DRB-Activity-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRB_Activity_List_H_ +#define _DRB_Activity_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* DRB-Activity-List */ +typedef struct DRB_Activity_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRB_Activity_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRB_Activity_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRB_Activity_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRB-Activity.c b/src/du_app/F1AP/asn/DRB-Activity.c new file mode 100755 index 000000000..b52c48daf --- /dev/null +++ b/src/du_app/F1AP/asn/DRB-Activity.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRB-Activity.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DRB_Activity_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_DRB_Activity_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_DRB_Activity_value2enum_1[] = { + { 0, 6, "active" }, + { 1, 10, "not-active" } +}; +static const unsigned int asn_MAP_DRB_Activity_enum2value_1[] = { + 0, /* active(0) */ + 1 /* not-active(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_DRB_Activity_specs_1 = { + asn_MAP_DRB_Activity_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DRB_Activity_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_DRB_Activity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DRB_Activity = { + "DRB-Activity", + "DRB-Activity", + &asn_OP_NativeEnumerated, + asn_DEF_DRB_Activity_tags_1, + sizeof(asn_DEF_DRB_Activity_tags_1) + /sizeof(asn_DEF_DRB_Activity_tags_1[0]), /* 1 */ + asn_DEF_DRB_Activity_tags_1, /* Same as above */ + sizeof(asn_DEF_DRB_Activity_tags_1) + /sizeof(asn_DEF_DRB_Activity_tags_1[0]), /* 1 */ + { &asn_OER_type_DRB_Activity_constr_1, &asn_PER_type_DRB_Activity_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DRB_Activity_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRB-Activity.h b/src/du_app/F1AP/asn/DRB-Activity.h new file mode 100755 index 000000000..3a414d2d8 --- /dev/null +++ b/src/du_app/F1AP/asn/DRB-Activity.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRB_Activity_H_ +#define _DRB_Activity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DRB_Activity { + DRB_Activity_active = 0, + DRB_Activity_not_active = 1 +} e_DRB_Activity; + +/* DRB-Activity */ +typedef long DRB_Activity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DRB_Activity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DRB_Activity; +extern const asn_INTEGER_specifics_t asn_SPC_DRB_Activity_specs_1; +asn_struct_free_f DRB_Activity_free; +asn_struct_print_f DRB_Activity_print; +asn_constr_check_f DRB_Activity_constraint; +ber_type_decoder_f DRB_Activity_decode_ber; +der_type_encoder_f DRB_Activity_encode_der; +xer_type_decoder_f DRB_Activity_decode_xer; +xer_type_encoder_f DRB_Activity_encode_xer; +oer_type_decoder_f DRB_Activity_decode_oer; +oer_type_encoder_f DRB_Activity_encode_oer; +per_type_decoder_f DRB_Activity_decode_uper; +per_type_encoder_f DRB_Activity_encode_uper; +per_type_decoder_f DRB_Activity_decode_aper; +per_type_encoder_f DRB_Activity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRB_Activity_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRB-Information.c b/src/du_app/F1AP/asn/DRB-Information.c new file mode 100755 index 000000000..648cc94d2 --- /dev/null +++ b/src/du_app/F1AP/asn/DRB-Information.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRB-Information.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_DRB_Information_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRB_Information, dRB_QoS), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_QoSFlowLevelQoSParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRB-QoS" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRB_Information, sNSSAI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SNSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sNSSAI" + }, + { ATF_POINTER, 1, offsetof(struct DRB_Information, notificationControl), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NotificationControl, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "notificationControl" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRB_Information, flows_Mapped_To_DRB_List), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Flows_Mapped_To_DRB_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "flows-Mapped-To-DRB-List" + }, + { ATF_POINTER, 1, offsetof(struct DRB_Information, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_DRB_Information_oms_1[] = { 2, 4 }; +static const ber_tlv_tag_t asn_DEF_DRB_Information_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRB_Information_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dRB-QoS */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sNSSAI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* notificationControl */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* flows-Mapped-To-DRB-List */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DRB_Information_specs_1 = { + sizeof(struct DRB_Information), + offsetof(struct DRB_Information, _asn_ctx), + asn_MAP_DRB_Information_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_DRB_Information_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRB_Information = { + "DRB-Information", + "DRB-Information", + &asn_OP_SEQUENCE, + asn_DEF_DRB_Information_tags_1, + sizeof(asn_DEF_DRB_Information_tags_1) + /sizeof(asn_DEF_DRB_Information_tags_1[0]), /* 1 */ + asn_DEF_DRB_Information_tags_1, /* Same as above */ + sizeof(asn_DEF_DRB_Information_tags_1) + /sizeof(asn_DEF_DRB_Information_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRB_Information_1, + 5, /* Elements count */ + &asn_SPC_DRB_Information_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRB-Information.h b/src/du_app/F1AP/asn/DRB-Information.h new file mode 100755 index 000000000..632156d6f --- /dev/null +++ b/src/du_app/F1AP/asn/DRB-Information.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRB_Information_H_ +#define _DRB_Information_H_ + + +#include + +/* Including external dependencies */ +#include "QoSFlowLevelQoSParameters.h" +#include "SNSSAI.h" +#include "NotificationControl.h" +#include "Flows-Mapped-To-DRB-List.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* DRB-Information */ +typedef struct DRB_Information { + QoSFlowLevelQoSParameters_t dRB_QoS; + SNSSAI_t sNSSAI; + NotificationControl_t *notificationControl; /* OPTIONAL */ + Flows_Mapped_To_DRB_List_t flows_Mapped_To_DRB_List; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRB_Information_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRB_Information; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRB_Information_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRB-Notify-Item.c b/src/du_app/F1AP/asn/DRB-Notify-Item.c new file mode 100755 index 000000000..dfc9c7a9d --- /dev/null +++ b/src/du_app/F1AP/asn/DRB-Notify-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRB-Notify-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_DRB_Notify_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRB_Notify_Item, dRBID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRBID" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRB_Notify_Item, notification_Cause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Notification_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "notification-Cause" + }, + { ATF_POINTER, 1, offsetof(struct DRB_Notify_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P26, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_DRB_Notify_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_DRB_Notify_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRB_Notify_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dRBID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* notification-Cause */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DRB_Notify_Item_specs_1 = { + sizeof(struct DRB_Notify_Item), + offsetof(struct DRB_Notify_Item, _asn_ctx), + asn_MAP_DRB_Notify_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_DRB_Notify_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRB_Notify_Item = { + "DRB-Notify-Item", + "DRB-Notify-Item", + &asn_OP_SEQUENCE, + asn_DEF_DRB_Notify_Item_tags_1, + sizeof(asn_DEF_DRB_Notify_Item_tags_1) + /sizeof(asn_DEF_DRB_Notify_Item_tags_1[0]), /* 1 */ + asn_DEF_DRB_Notify_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_DRB_Notify_Item_tags_1) + /sizeof(asn_DEF_DRB_Notify_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRB_Notify_Item_1, + 3, /* Elements count */ + &asn_SPC_DRB_Notify_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRB-Notify-Item.h b/src/du_app/F1AP/asn/DRB-Notify-Item.h new file mode 100755 index 000000000..4bd8e1021 --- /dev/null +++ b/src/du_app/F1AP/asn/DRB-Notify-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRB_Notify_Item_H_ +#define _DRB_Notify_Item_H_ + + +#include + +/* Including external dependencies */ +#include "DRBID.h" +#include "Notification-Cause.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* DRB-Notify-Item */ +typedef struct DRB_Notify_Item { + DRBID_t dRBID; + Notification_Cause_t notification_Cause; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRB_Notify_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRB_Notify_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRB_Notify_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRB-Notify-List.c b/src/du_app/F1AP/asn/DRB-Notify-List.c new file mode 100755 index 000000000..c4ee68c7c --- /dev/null +++ b/src/du_app/F1AP/asn/DRB-Notify-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRB-Notify-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_DRB_Notify_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_DRB_Notify_List_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 */ +}; +static asn_TYPE_member_t asn_MBR_DRB_Notify_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P56, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRB_Notify_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_DRB_Notify_List_specs_1 = { + sizeof(struct DRB_Notify_List), + offsetof(struct DRB_Notify_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DRB_Notify_List = { + "DRB-Notify-List", + "DRB-Notify-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_DRB_Notify_List_tags_1, + sizeof(asn_DEF_DRB_Notify_List_tags_1) + /sizeof(asn_DEF_DRB_Notify_List_tags_1[0]), /* 1 */ + asn_DEF_DRB_Notify_List_tags_1, /* Same as above */ + sizeof(asn_DEF_DRB_Notify_List_tags_1) + /sizeof(asn_DEF_DRB_Notify_List_tags_1[0]), /* 1 */ + { &asn_OER_type_DRB_Notify_List_constr_1, &asn_PER_type_DRB_Notify_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DRB_Notify_List_1, + 1, /* Single element */ + &asn_SPC_DRB_Notify_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRB-Notify-List.h b/src/du_app/F1AP/asn/DRB-Notify-List.h new file mode 100755 index 000000000..648fd7954 --- /dev/null +++ b/src/du_app/F1AP/asn/DRB-Notify-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRB_Notify_List_H_ +#define _DRB_Notify_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* DRB-Notify-List */ +typedef struct DRB_Notify_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRB_Notify_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRB_Notify_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRB_Notify_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBID.c b/src/du_app/F1AP/asn/DRBID.c new file mode 100755 index 000000000..93a050b4d --- /dev/null +++ b/src/du_app/F1AP/asn/DRBID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBID.h" + +int +DRBID_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 <= 32)) { + /* 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_DRBID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_DRBID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 1, 32 } /* (1..32,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DRBID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DRBID = { + "DRBID", + "DRBID", + &asn_OP_NativeInteger, + asn_DEF_DRBID_tags_1, + sizeof(asn_DEF_DRBID_tags_1) + /sizeof(asn_DEF_DRBID_tags_1[0]), /* 1 */ + asn_DEF_DRBID_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBID_tags_1) + /sizeof(asn_DEF_DRBID_tags_1[0]), /* 1 */ + { &asn_OER_type_DRBID_constr_1, &asn_PER_type_DRBID_constr_1, DRBID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/DRBID.h b/src/du_app/F1AP/asn/DRBID.h new file mode 100755 index 000000000..c1a77bfdf --- /dev/null +++ b/src/du_app/F1AP/asn/DRBID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBID_H_ +#define _DRBID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DRBID */ +typedef long DRBID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DRBID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DRBID; +asn_struct_free_f DRBID_free; +asn_struct_print_f DRBID_print; +asn_constr_check_f DRBID_constraint; +ber_type_decoder_f DRBID_decode_ber; +der_type_encoder_f DRBID_encode_der; +xer_type_decoder_f DRBID_decode_xer; +xer_type_encoder_f DRBID_encode_xer; +oer_type_decoder_f DRBID_decode_oer; +oer_type_encoder_f DRBID_encode_oer; +per_type_decoder_f DRBID_decode_uper; +per_type_encoder_f DRBID_encode_uper; +per_type_decoder_f DRBID_decode_aper; +per_type_encoder_f DRBID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBID_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBs-FailedToBeModified-Item.c b/src/du_app/F1AP/asn/DRBs-FailedToBeModified-Item.c new file mode 100755 index 000000000..a54d23f1e --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-FailedToBeModified-Item.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBs-FailedToBeModified-Item.h" + +#include "Cause.h" +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_DRBs_FailedToBeModified_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_FailedToBeModified_Item, dRBID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRBID" + }, + { ATF_POINTER, 2, offsetof(struct DRBs_FailedToBeModified_Item, cause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 1, offsetof(struct DRBs_FailedToBeModified_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_DRBs_FailedToBeModified_Item_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_DRBs_FailedToBeModified_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_FailedToBeModified_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dRBID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DRBs_FailedToBeModified_Item_specs_1 = { + sizeof(struct DRBs_FailedToBeModified_Item), + offsetof(struct DRBs_FailedToBeModified_Item, _asn_ctx), + asn_MAP_DRBs_FailedToBeModified_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_DRBs_FailedToBeModified_Item_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_FailedToBeModified_Item = { + "DRBs-FailedToBeModified-Item", + "DRBs-FailedToBeModified-Item", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_FailedToBeModified_Item_tags_1, + sizeof(asn_DEF_DRBs_FailedToBeModified_Item_tags_1) + /sizeof(asn_DEF_DRBs_FailedToBeModified_Item_tags_1[0]), /* 1 */ + asn_DEF_DRBs_FailedToBeModified_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBs_FailedToBeModified_Item_tags_1) + /sizeof(asn_DEF_DRBs_FailedToBeModified_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_FailedToBeModified_Item_1, + 3, /* Elements count */ + &asn_SPC_DRBs_FailedToBeModified_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRBs-FailedToBeModified-Item.h b/src/du_app/F1AP/asn/DRBs-FailedToBeModified-Item.h new file mode 100755 index 000000000..9cbf72f88 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-FailedToBeModified-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBs_FailedToBeModified_Item_H_ +#define _DRBs_FailedToBeModified_Item_H_ + + +#include + +/* Including external dependencies */ +#include "DRBID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Cause; +struct ProtocolExtensionContainer; + +/* DRBs-FailedToBeModified-Item */ +typedef struct DRBs_FailedToBeModified_Item { + DRBID_t dRBID; + struct Cause *cause; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_FailedToBeModified_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRBs_FailedToBeModified_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBs_FailedToBeModified_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBs-FailedToBeModified-List.c b/src/du_app/F1AP/asn/DRBs-FailedToBeModified-List.c new file mode 100755 index 000000000..05a161d92 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-FailedToBeModified-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBs-FailedToBeModified-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_DRBs_FailedToBeModified_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_DRBs_FailedToBeModified_List_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 */ +}; +static asn_TYPE_member_t asn_MBR_DRBs_FailedToBeModified_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P41, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_FailedToBeModified_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_DRBs_FailedToBeModified_List_specs_1 = { + sizeof(struct DRBs_FailedToBeModified_List), + offsetof(struct DRBs_FailedToBeModified_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_FailedToBeModified_List = { + "DRBs-FailedToBeModified-List", + "DRBs-FailedToBeModified-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_DRBs_FailedToBeModified_List_tags_1, + sizeof(asn_DEF_DRBs_FailedToBeModified_List_tags_1) + /sizeof(asn_DEF_DRBs_FailedToBeModified_List_tags_1[0]), /* 1 */ + asn_DEF_DRBs_FailedToBeModified_List_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBs_FailedToBeModified_List_tags_1) + /sizeof(asn_DEF_DRBs_FailedToBeModified_List_tags_1[0]), /* 1 */ + { &asn_OER_type_DRBs_FailedToBeModified_List_constr_1, &asn_PER_type_DRBs_FailedToBeModified_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DRBs_FailedToBeModified_List_1, + 1, /* Single element */ + &asn_SPC_DRBs_FailedToBeModified_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRBs-FailedToBeModified-List.h b/src/du_app/F1AP/asn/DRBs-FailedToBeModified-List.h new file mode 100755 index 000000000..1309b6154 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-FailedToBeModified-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBs_FailedToBeModified_List_H_ +#define _DRBs_FailedToBeModified_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* DRBs-FailedToBeModified-List */ +typedef struct DRBs_FailedToBeModified_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_FailedToBeModified_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRBs_FailedToBeModified_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBs_FailedToBeModified_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBs-FailedToBeSetup-Item.c b/src/du_app/F1AP/asn/DRBs-FailedToBeSetup-Item.c new file mode 100755 index 000000000..24a699bbc --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-FailedToBeSetup-Item.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBs-FailedToBeSetup-Item.h" + +#include "Cause.h" +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_DRBs_FailedToBeSetup_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_FailedToBeSetup_Item, dRBID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRBID" + }, + { ATF_POINTER, 2, offsetof(struct DRBs_FailedToBeSetup_Item, cause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 1, offsetof(struct DRBs_FailedToBeSetup_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_DRBs_FailedToBeSetup_Item_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_DRBs_FailedToBeSetup_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_FailedToBeSetup_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dRBID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DRBs_FailedToBeSetup_Item_specs_1 = { + sizeof(struct DRBs_FailedToBeSetup_Item), + offsetof(struct DRBs_FailedToBeSetup_Item, _asn_ctx), + asn_MAP_DRBs_FailedToBeSetup_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_DRBs_FailedToBeSetup_Item_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_FailedToBeSetup_Item = { + "DRBs-FailedToBeSetup-Item", + "DRBs-FailedToBeSetup-Item", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_FailedToBeSetup_Item_tags_1, + sizeof(asn_DEF_DRBs_FailedToBeSetup_Item_tags_1) + /sizeof(asn_DEF_DRBs_FailedToBeSetup_Item_tags_1[0]), /* 1 */ + asn_DEF_DRBs_FailedToBeSetup_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBs_FailedToBeSetup_Item_tags_1) + /sizeof(asn_DEF_DRBs_FailedToBeSetup_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_FailedToBeSetup_Item_1, + 3, /* Elements count */ + &asn_SPC_DRBs_FailedToBeSetup_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRBs-FailedToBeSetup-Item.h b/src/du_app/F1AP/asn/DRBs-FailedToBeSetup-Item.h new file mode 100755 index 000000000..790b47efb --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-FailedToBeSetup-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBs_FailedToBeSetup_Item_H_ +#define _DRBs_FailedToBeSetup_Item_H_ + + +#include + +/* Including external dependencies */ +#include "DRBID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Cause; +struct ProtocolExtensionContainer; + +/* DRBs-FailedToBeSetup-Item */ +typedef struct DRBs_FailedToBeSetup_Item { + DRBID_t dRBID; + struct Cause *cause; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_FailedToBeSetup_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRBs_FailedToBeSetup_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBs_FailedToBeSetup_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBs-FailedToBeSetup-List.c b/src/du_app/F1AP/asn/DRBs-FailedToBeSetup-List.c new file mode 100755 index 000000000..21daaef7a --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-FailedToBeSetup-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBs-FailedToBeSetup-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_DRBs_FailedToBeSetup_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_DRBs_FailedToBeSetup_List_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 */ +}; +static asn_TYPE_member_t asn_MBR_DRBs_FailedToBeSetup_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P26, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_FailedToBeSetup_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_DRBs_FailedToBeSetup_List_specs_1 = { + sizeof(struct DRBs_FailedToBeSetup_List), + offsetof(struct DRBs_FailedToBeSetup_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_FailedToBeSetup_List = { + "DRBs-FailedToBeSetup-List", + "DRBs-FailedToBeSetup-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_DRBs_FailedToBeSetup_List_tags_1, + sizeof(asn_DEF_DRBs_FailedToBeSetup_List_tags_1) + /sizeof(asn_DEF_DRBs_FailedToBeSetup_List_tags_1[0]), /* 1 */ + asn_DEF_DRBs_FailedToBeSetup_List_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBs_FailedToBeSetup_List_tags_1) + /sizeof(asn_DEF_DRBs_FailedToBeSetup_List_tags_1[0]), /* 1 */ + { &asn_OER_type_DRBs_FailedToBeSetup_List_constr_1, &asn_PER_type_DRBs_FailedToBeSetup_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DRBs_FailedToBeSetup_List_1, + 1, /* Single element */ + &asn_SPC_DRBs_FailedToBeSetup_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRBs-FailedToBeSetup-List.h b/src/du_app/F1AP/asn/DRBs-FailedToBeSetup-List.h new file mode 100755 index 000000000..4604949c7 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-FailedToBeSetup-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBs_FailedToBeSetup_List_H_ +#define _DRBs_FailedToBeSetup_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* DRBs-FailedToBeSetup-List */ +typedef struct DRBs_FailedToBeSetup_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_FailedToBeSetup_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRBs_FailedToBeSetup_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBs_FailedToBeSetup_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBs-FailedToBeSetupMod-Item.c b/src/du_app/F1AP/asn/DRBs-FailedToBeSetupMod-Item.c new file mode 100755 index 000000000..7c4625fab --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-FailedToBeSetupMod-Item.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBs-FailedToBeSetupMod-Item.h" + +#include "Cause.h" +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_DRBs_FailedToBeSetupMod_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_FailedToBeSetupMod_Item, dRBID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRBID" + }, + { ATF_POINTER, 2, offsetof(struct DRBs_FailedToBeSetupMod_Item, cause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 1, offsetof(struct DRBs_FailedToBeSetupMod_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_DRBs_FailedToBeSetupMod_Item_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_DRBs_FailedToBeSetupMod_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_FailedToBeSetupMod_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dRBID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DRBs_FailedToBeSetupMod_Item_specs_1 = { + sizeof(struct DRBs_FailedToBeSetupMod_Item), + offsetof(struct DRBs_FailedToBeSetupMod_Item, _asn_ctx), + asn_MAP_DRBs_FailedToBeSetupMod_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_DRBs_FailedToBeSetupMod_Item_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_FailedToBeSetupMod_Item = { + "DRBs-FailedToBeSetupMod-Item", + "DRBs-FailedToBeSetupMod-Item", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_FailedToBeSetupMod_Item_tags_1, + sizeof(asn_DEF_DRBs_FailedToBeSetupMod_Item_tags_1) + /sizeof(asn_DEF_DRBs_FailedToBeSetupMod_Item_tags_1[0]), /* 1 */ + asn_DEF_DRBs_FailedToBeSetupMod_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBs_FailedToBeSetupMod_Item_tags_1) + /sizeof(asn_DEF_DRBs_FailedToBeSetupMod_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_FailedToBeSetupMod_Item_1, + 3, /* Elements count */ + &asn_SPC_DRBs_FailedToBeSetupMod_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRBs-FailedToBeSetupMod-Item.h b/src/du_app/F1AP/asn/DRBs-FailedToBeSetupMod-Item.h new file mode 100755 index 000000000..3d0c79f2f --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-FailedToBeSetupMod-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBs_FailedToBeSetupMod_Item_H_ +#define _DRBs_FailedToBeSetupMod_Item_H_ + + +#include + +/* Including external dependencies */ +#include "DRBID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Cause; +struct ProtocolExtensionContainer; + +/* DRBs-FailedToBeSetupMod-Item */ +typedef struct DRBs_FailedToBeSetupMod_Item { + DRBID_t dRBID; + struct Cause *cause; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_FailedToBeSetupMod_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRBs_FailedToBeSetupMod_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBs_FailedToBeSetupMod_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBs-FailedToBeSetupMod-List.c b/src/du_app/F1AP/asn/DRBs-FailedToBeSetupMod-List.c new file mode 100755 index 000000000..87fb6f1af --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-FailedToBeSetupMod-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBs-FailedToBeSetupMod-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_DRBs_FailedToBeSetupMod_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_DRBs_FailedToBeSetupMod_List_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 */ +}; +static asn_TYPE_member_t asn_MBR_DRBs_FailedToBeSetupMod_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P43, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_FailedToBeSetupMod_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_DRBs_FailedToBeSetupMod_List_specs_1 = { + sizeof(struct DRBs_FailedToBeSetupMod_List), + offsetof(struct DRBs_FailedToBeSetupMod_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_FailedToBeSetupMod_List = { + "DRBs-FailedToBeSetupMod-List", + "DRBs-FailedToBeSetupMod-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_DRBs_FailedToBeSetupMod_List_tags_1, + sizeof(asn_DEF_DRBs_FailedToBeSetupMod_List_tags_1) + /sizeof(asn_DEF_DRBs_FailedToBeSetupMod_List_tags_1[0]), /* 1 */ + asn_DEF_DRBs_FailedToBeSetupMod_List_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBs_FailedToBeSetupMod_List_tags_1) + /sizeof(asn_DEF_DRBs_FailedToBeSetupMod_List_tags_1[0]), /* 1 */ + { &asn_OER_type_DRBs_FailedToBeSetupMod_List_constr_1, &asn_PER_type_DRBs_FailedToBeSetupMod_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DRBs_FailedToBeSetupMod_List_1, + 1, /* Single element */ + &asn_SPC_DRBs_FailedToBeSetupMod_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRBs-FailedToBeSetupMod-List.h b/src/du_app/F1AP/asn/DRBs-FailedToBeSetupMod-List.h new file mode 100755 index 000000000..a57dde98a --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-FailedToBeSetupMod-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBs_FailedToBeSetupMod_List_H_ +#define _DRBs_FailedToBeSetupMod_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* DRBs-FailedToBeSetupMod-List */ +typedef struct DRBs_FailedToBeSetupMod_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_FailedToBeSetupMod_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRBs_FailedToBeSetupMod_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBs_FailedToBeSetupMod_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBs-Modified-Item.c b/src/du_app/F1AP/asn/DRBs-Modified-Item.c new file mode 100755 index 000000000..445abb4dc --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-Modified-Item.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBs-Modified-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_DRBs_Modified_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Modified_Item, dRBID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRBID" + }, + { ATF_POINTER, 1, offsetof(struct DRBs_Modified_Item, lCID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LCID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lCID" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Modified_Item, dLUPTNLInformation_ToBeSetup_List), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DLUPTNLInformation_ToBeSetup_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dLUPTNLInformation-ToBeSetup-List" + }, + { ATF_POINTER, 1, offsetof(struct DRBs_Modified_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P24, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_DRBs_Modified_Item_oms_1[] = { 1, 3 }; +static const ber_tlv_tag_t asn_DEF_DRBs_Modified_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_Modified_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dRBID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lCID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dLUPTNLInformation-ToBeSetup-List */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DRBs_Modified_Item_specs_1 = { + sizeof(struct DRBs_Modified_Item), + offsetof(struct DRBs_Modified_Item, _asn_ctx), + asn_MAP_DRBs_Modified_Item_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_DRBs_Modified_Item_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_Modified_Item = { + "DRBs-Modified-Item", + "DRBs-Modified-Item", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_Modified_Item_tags_1, + sizeof(asn_DEF_DRBs_Modified_Item_tags_1) + /sizeof(asn_DEF_DRBs_Modified_Item_tags_1[0]), /* 1 */ + asn_DEF_DRBs_Modified_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBs_Modified_Item_tags_1) + /sizeof(asn_DEF_DRBs_Modified_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_Modified_Item_1, + 4, /* Elements count */ + &asn_SPC_DRBs_Modified_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRBs-Modified-Item.h b/src/du_app/F1AP/asn/DRBs-Modified-Item.h new file mode 100755 index 000000000..d52bd0f67 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-Modified-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBs_Modified_Item_H_ +#define _DRBs_Modified_Item_H_ + + +#include + +/* Including external dependencies */ +#include "DRBID.h" +#include "LCID.h" +#include "DLUPTNLInformation-ToBeSetup-List.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* DRBs-Modified-Item */ +typedef struct DRBs_Modified_Item { + DRBID_t dRBID; + LCID_t *lCID; /* OPTIONAL */ + DLUPTNLInformation_ToBeSetup_List_t dLUPTNLInformation_ToBeSetup_List; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_Modified_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRBs_Modified_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBs_Modified_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBs-Modified-List.c b/src/du_app/F1AP/asn/DRBs-Modified-List.c new file mode 100755 index 000000000..4dbd845d8 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-Modified-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBs-Modified-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_DRBs_Modified_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_DRBs_Modified_List_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 */ +}; +static asn_TYPE_member_t asn_MBR_DRBs_Modified_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P38, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_Modified_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_DRBs_Modified_List_specs_1 = { + sizeof(struct DRBs_Modified_List), + offsetof(struct DRBs_Modified_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_Modified_List = { + "DRBs-Modified-List", + "DRBs-Modified-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_DRBs_Modified_List_tags_1, + sizeof(asn_DEF_DRBs_Modified_List_tags_1) + /sizeof(asn_DEF_DRBs_Modified_List_tags_1[0]), /* 1 */ + asn_DEF_DRBs_Modified_List_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBs_Modified_List_tags_1) + /sizeof(asn_DEF_DRBs_Modified_List_tags_1[0]), /* 1 */ + { &asn_OER_type_DRBs_Modified_List_constr_1, &asn_PER_type_DRBs_Modified_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DRBs_Modified_List_1, + 1, /* Single element */ + &asn_SPC_DRBs_Modified_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRBs-Modified-List.h b/src/du_app/F1AP/asn/DRBs-Modified-List.h new file mode 100755 index 000000000..ce06fcee9 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-Modified-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBs_Modified_List_H_ +#define _DRBs_Modified_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* DRBs-Modified-List */ +typedef struct DRBs_Modified_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_Modified_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRBs_Modified_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBs_Modified_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBs-ModifiedConf-Item.c b/src/du_app/F1AP/asn/DRBs-ModifiedConf-Item.c new file mode 100755 index 000000000..d1593a802 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-ModifiedConf-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBs-ModifiedConf-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_DRBs_ModifiedConf_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ModifiedConf_Item, dRBID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRBID" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ModifiedConf_Item, uLUPTNLInformation_ToBeSetup_List), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ULUPTNLInformation_ToBeSetup_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uLUPTNLInformation-ToBeSetup-List" + }, + { ATF_POINTER, 1, offsetof(struct DRBs_ModifiedConf_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P25, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_DRBs_ModifiedConf_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_DRBs_ModifiedConf_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_ModifiedConf_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dRBID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uLUPTNLInformation-ToBeSetup-List */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DRBs_ModifiedConf_Item_specs_1 = { + sizeof(struct DRBs_ModifiedConf_Item), + offsetof(struct DRBs_ModifiedConf_Item, _asn_ctx), + asn_MAP_DRBs_ModifiedConf_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_DRBs_ModifiedConf_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_ModifiedConf_Item = { + "DRBs-ModifiedConf-Item", + "DRBs-ModifiedConf-Item", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_ModifiedConf_Item_tags_1, + sizeof(asn_DEF_DRBs_ModifiedConf_Item_tags_1) + /sizeof(asn_DEF_DRBs_ModifiedConf_Item_tags_1[0]), /* 1 */ + asn_DEF_DRBs_ModifiedConf_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBs_ModifiedConf_Item_tags_1) + /sizeof(asn_DEF_DRBs_ModifiedConf_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_ModifiedConf_Item_1, + 3, /* Elements count */ + &asn_SPC_DRBs_ModifiedConf_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRBs-ModifiedConf-Item.h b/src/du_app/F1AP/asn/DRBs-ModifiedConf-Item.h new file mode 100755 index 000000000..25fe2eb58 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-ModifiedConf-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBs_ModifiedConf_Item_H_ +#define _DRBs_ModifiedConf_Item_H_ + + +#include + +/* Including external dependencies */ +#include "DRBID.h" +#include "ULUPTNLInformation-ToBeSetup-List.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* DRBs-ModifiedConf-Item */ +typedef struct DRBs_ModifiedConf_Item { + DRBID_t dRBID; + ULUPTNLInformation_ToBeSetup_List_t uLUPTNLInformation_ToBeSetup_List; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_ModifiedConf_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRBs_ModifiedConf_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBs_ModifiedConf_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBs-ModifiedConf-List.c b/src/du_app/F1AP/asn/DRBs-ModifiedConf-List.c new file mode 100755 index 000000000..116c66d29 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-ModifiedConf-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBs-ModifiedConf-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_DRBs_ModifiedConf_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_DRBs_ModifiedConf_List_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 */ +}; +static asn_TYPE_member_t asn_MBR_DRBs_ModifiedConf_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P49, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_ModifiedConf_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_DRBs_ModifiedConf_List_specs_1 = { + sizeof(struct DRBs_ModifiedConf_List), + offsetof(struct DRBs_ModifiedConf_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_ModifiedConf_List = { + "DRBs-ModifiedConf-List", + "DRBs-ModifiedConf-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_DRBs_ModifiedConf_List_tags_1, + sizeof(asn_DEF_DRBs_ModifiedConf_List_tags_1) + /sizeof(asn_DEF_DRBs_ModifiedConf_List_tags_1[0]), /* 1 */ + asn_DEF_DRBs_ModifiedConf_List_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBs_ModifiedConf_List_tags_1) + /sizeof(asn_DEF_DRBs_ModifiedConf_List_tags_1[0]), /* 1 */ + { &asn_OER_type_DRBs_ModifiedConf_List_constr_1, &asn_PER_type_DRBs_ModifiedConf_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DRBs_ModifiedConf_List_1, + 1, /* Single element */ + &asn_SPC_DRBs_ModifiedConf_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRBs-ModifiedConf-List.h b/src/du_app/F1AP/asn/DRBs-ModifiedConf-List.h new file mode 100755 index 000000000..298643f1f --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-ModifiedConf-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBs_ModifiedConf_List_H_ +#define _DRBs_ModifiedConf_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* DRBs-ModifiedConf-List */ +typedef struct DRBs_ModifiedConf_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_ModifiedConf_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRBs_ModifiedConf_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBs_ModifiedConf_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBs-Required-ToBeModified-Item.c b/src/du_app/F1AP/asn/DRBs-Required-ToBeModified-Item.c new file mode 100755 index 000000000..e389aa315 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-Required-ToBeModified-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBs-Required-ToBeModified-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_DRBs_Required_ToBeModified_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Required_ToBeModified_Item, dRBID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRBID" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Required_ToBeModified_Item, dLUPTNLInformation_ToBeSetup_List), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DLUPTNLInformation_ToBeSetup_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dLUPTNLInformation-ToBeSetup-List" + }, + { ATF_POINTER, 1, offsetof(struct DRBs_Required_ToBeModified_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P27, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_DRBs_Required_ToBeModified_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_DRBs_Required_ToBeModified_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_Required_ToBeModified_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dRBID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dLUPTNLInformation-ToBeSetup-List */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DRBs_Required_ToBeModified_Item_specs_1 = { + sizeof(struct DRBs_Required_ToBeModified_Item), + offsetof(struct DRBs_Required_ToBeModified_Item, _asn_ctx), + asn_MAP_DRBs_Required_ToBeModified_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_DRBs_Required_ToBeModified_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_Required_ToBeModified_Item = { + "DRBs-Required-ToBeModified-Item", + "DRBs-Required-ToBeModified-Item", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_Required_ToBeModified_Item_tags_1, + sizeof(asn_DEF_DRBs_Required_ToBeModified_Item_tags_1) + /sizeof(asn_DEF_DRBs_Required_ToBeModified_Item_tags_1[0]), /* 1 */ + asn_DEF_DRBs_Required_ToBeModified_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBs_Required_ToBeModified_Item_tags_1) + /sizeof(asn_DEF_DRBs_Required_ToBeModified_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_Required_ToBeModified_Item_1, + 3, /* Elements count */ + &asn_SPC_DRBs_Required_ToBeModified_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRBs-Required-ToBeModified-Item.h b/src/du_app/F1AP/asn/DRBs-Required-ToBeModified-Item.h new file mode 100755 index 000000000..3d45389e3 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-Required-ToBeModified-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBs_Required_ToBeModified_Item_H_ +#define _DRBs_Required_ToBeModified_Item_H_ + + +#include + +/* Including external dependencies */ +#include "DRBID.h" +#include "DLUPTNLInformation-ToBeSetup-List.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* DRBs-Required-ToBeModified-Item */ +typedef struct DRBs_Required_ToBeModified_Item { + DRBID_t dRBID; + DLUPTNLInformation_ToBeSetup_List_t dLUPTNLInformation_ToBeSetup_List; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_Required_ToBeModified_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRBs_Required_ToBeModified_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBs_Required_ToBeModified_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBs-Required-ToBeModified-List.c b/src/du_app/F1AP/asn/DRBs-Required-ToBeModified-List.c new file mode 100755 index 000000000..852eb7a58 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-Required-ToBeModified-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBs-Required-ToBeModified-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_DRBs_Required_ToBeModified_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_DRBs_Required_ToBeModified_List_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 */ +}; +static asn_TYPE_member_t asn_MBR_DRBs_Required_ToBeModified_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P46, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_Required_ToBeModified_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_DRBs_Required_ToBeModified_List_specs_1 = { + sizeof(struct DRBs_Required_ToBeModified_List), + offsetof(struct DRBs_Required_ToBeModified_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_Required_ToBeModified_List = { + "DRBs-Required-ToBeModified-List", + "DRBs-Required-ToBeModified-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_DRBs_Required_ToBeModified_List_tags_1, + sizeof(asn_DEF_DRBs_Required_ToBeModified_List_tags_1) + /sizeof(asn_DEF_DRBs_Required_ToBeModified_List_tags_1[0]), /* 1 */ + asn_DEF_DRBs_Required_ToBeModified_List_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBs_Required_ToBeModified_List_tags_1) + /sizeof(asn_DEF_DRBs_Required_ToBeModified_List_tags_1[0]), /* 1 */ + { &asn_OER_type_DRBs_Required_ToBeModified_List_constr_1, &asn_PER_type_DRBs_Required_ToBeModified_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DRBs_Required_ToBeModified_List_1, + 1, /* Single element */ + &asn_SPC_DRBs_Required_ToBeModified_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRBs-Required-ToBeModified-List.h b/src/du_app/F1AP/asn/DRBs-Required-ToBeModified-List.h new file mode 100755 index 000000000..d136ef447 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-Required-ToBeModified-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBs_Required_ToBeModified_List_H_ +#define _DRBs_Required_ToBeModified_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* DRBs-Required-ToBeModified-List */ +typedef struct DRBs_Required_ToBeModified_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_Required_ToBeModified_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRBs_Required_ToBeModified_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBs_Required_ToBeModified_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBs-Required-ToBeReleased-Item.c b/src/du_app/F1AP/asn/DRBs-Required-ToBeReleased-Item.c new file mode 100755 index 000000000..365f7ec1f --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-Required-ToBeReleased-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBs-Required-ToBeReleased-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_DRBs_Required_ToBeReleased_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Required_ToBeReleased_Item, dRBID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRBID" + }, + { ATF_POINTER, 1, offsetof(struct DRBs_Required_ToBeReleased_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P28, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_DRBs_Required_ToBeReleased_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_DRBs_Required_ToBeReleased_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_Required_ToBeReleased_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dRBID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DRBs_Required_ToBeReleased_Item_specs_1 = { + sizeof(struct DRBs_Required_ToBeReleased_Item), + offsetof(struct DRBs_Required_ToBeReleased_Item, _asn_ctx), + asn_MAP_DRBs_Required_ToBeReleased_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_DRBs_Required_ToBeReleased_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_Required_ToBeReleased_Item = { + "DRBs-Required-ToBeReleased-Item", + "DRBs-Required-ToBeReleased-Item", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_Required_ToBeReleased_Item_tags_1, + sizeof(asn_DEF_DRBs_Required_ToBeReleased_Item_tags_1) + /sizeof(asn_DEF_DRBs_Required_ToBeReleased_Item_tags_1[0]), /* 1 */ + asn_DEF_DRBs_Required_ToBeReleased_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBs_Required_ToBeReleased_Item_tags_1) + /sizeof(asn_DEF_DRBs_Required_ToBeReleased_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_Required_ToBeReleased_Item_1, + 2, /* Elements count */ + &asn_SPC_DRBs_Required_ToBeReleased_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRBs-Required-ToBeReleased-Item.h b/src/du_app/F1AP/asn/DRBs-Required-ToBeReleased-Item.h new file mode 100755 index 000000000..27627856e --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-Required-ToBeReleased-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBs_Required_ToBeReleased_Item_H_ +#define _DRBs_Required_ToBeReleased_Item_H_ + + +#include + +/* Including external dependencies */ +#include "DRBID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* DRBs-Required-ToBeReleased-Item */ +typedef struct DRBs_Required_ToBeReleased_Item { + DRBID_t dRBID; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_Required_ToBeReleased_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRBs_Required_ToBeReleased_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBs_Required_ToBeReleased_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBs-Required-ToBeReleased-List.c b/src/du_app/F1AP/asn/DRBs-Required-ToBeReleased-List.c new file mode 100755 index 000000000..c718272bb --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-Required-ToBeReleased-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBs-Required-ToBeReleased-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_DRBs_Required_ToBeReleased_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_DRBs_Required_ToBeReleased_List_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 */ +}; +static asn_TYPE_member_t asn_MBR_DRBs_Required_ToBeReleased_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P47, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_Required_ToBeReleased_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_DRBs_Required_ToBeReleased_List_specs_1 = { + sizeof(struct DRBs_Required_ToBeReleased_List), + offsetof(struct DRBs_Required_ToBeReleased_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_Required_ToBeReleased_List = { + "DRBs-Required-ToBeReleased-List", + "DRBs-Required-ToBeReleased-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_DRBs_Required_ToBeReleased_List_tags_1, + sizeof(asn_DEF_DRBs_Required_ToBeReleased_List_tags_1) + /sizeof(asn_DEF_DRBs_Required_ToBeReleased_List_tags_1[0]), /* 1 */ + asn_DEF_DRBs_Required_ToBeReleased_List_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBs_Required_ToBeReleased_List_tags_1) + /sizeof(asn_DEF_DRBs_Required_ToBeReleased_List_tags_1[0]), /* 1 */ + { &asn_OER_type_DRBs_Required_ToBeReleased_List_constr_1, &asn_PER_type_DRBs_Required_ToBeReleased_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DRBs_Required_ToBeReleased_List_1, + 1, /* Single element */ + &asn_SPC_DRBs_Required_ToBeReleased_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRBs-Required-ToBeReleased-List.h b/src/du_app/F1AP/asn/DRBs-Required-ToBeReleased-List.h new file mode 100755 index 000000000..84f5db306 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-Required-ToBeReleased-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBs_Required_ToBeReleased_List_H_ +#define _DRBs_Required_ToBeReleased_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* DRBs-Required-ToBeReleased-List */ +typedef struct DRBs_Required_ToBeReleased_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_Required_ToBeReleased_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRBs_Required_ToBeReleased_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBs_Required_ToBeReleased_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBs-Setup-Item.c b/src/du_app/F1AP/asn/DRBs-Setup-Item.c new file mode 100755 index 000000000..9a7bee937 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-Setup-Item.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBs-Setup-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_DRBs_Setup_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Setup_Item, dRBID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRBID" + }, + { ATF_POINTER, 1, offsetof(struct DRBs_Setup_Item, lCID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LCID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lCID" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Setup_Item, dLUPTNLInformation_ToBeSetup_List), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DLUPTNLInformation_ToBeSetup_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dLUPTNLInformation-ToBeSetup-List" + }, + { ATF_POINTER, 1, offsetof(struct DRBs_Setup_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P29, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_DRBs_Setup_Item_oms_1[] = { 1, 3 }; +static const ber_tlv_tag_t asn_DEF_DRBs_Setup_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_Setup_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dRBID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lCID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dLUPTNLInformation-ToBeSetup-List */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DRBs_Setup_Item_specs_1 = { + sizeof(struct DRBs_Setup_Item), + offsetof(struct DRBs_Setup_Item, _asn_ctx), + asn_MAP_DRBs_Setup_Item_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_DRBs_Setup_Item_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_Setup_Item = { + "DRBs-Setup-Item", + "DRBs-Setup-Item", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_Setup_Item_tags_1, + sizeof(asn_DEF_DRBs_Setup_Item_tags_1) + /sizeof(asn_DEF_DRBs_Setup_Item_tags_1[0]), /* 1 */ + asn_DEF_DRBs_Setup_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBs_Setup_Item_tags_1) + /sizeof(asn_DEF_DRBs_Setup_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_Setup_Item_1, + 4, /* Elements count */ + &asn_SPC_DRBs_Setup_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRBs-Setup-Item.h b/src/du_app/F1AP/asn/DRBs-Setup-Item.h new file mode 100755 index 000000000..56dee6134 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-Setup-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBs_Setup_Item_H_ +#define _DRBs_Setup_Item_H_ + + +#include + +/* Including external dependencies */ +#include "DRBID.h" +#include "LCID.h" +#include "DLUPTNLInformation-ToBeSetup-List.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* DRBs-Setup-Item */ +typedef struct DRBs_Setup_Item { + DRBID_t dRBID; + LCID_t *lCID; /* OPTIONAL */ + DLUPTNLInformation_ToBeSetup_List_t dLUPTNLInformation_ToBeSetup_List; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_Setup_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRBs_Setup_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBs_Setup_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBs-Setup-List.c b/src/du_app/F1AP/asn/DRBs-Setup-List.c new file mode 100755 index 000000000..919ba6d06 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-Setup-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBs-Setup-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_DRBs_Setup_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_DRBs_Setup_List_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 */ +}; +static asn_TYPE_member_t asn_MBR_DRBs_Setup_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P24, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_Setup_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_DRBs_Setup_List_specs_1 = { + sizeof(struct DRBs_Setup_List), + offsetof(struct DRBs_Setup_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_Setup_List = { + "DRBs-Setup-List", + "DRBs-Setup-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_DRBs_Setup_List_tags_1, + sizeof(asn_DEF_DRBs_Setup_List_tags_1) + /sizeof(asn_DEF_DRBs_Setup_List_tags_1[0]), /* 1 */ + asn_DEF_DRBs_Setup_List_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBs_Setup_List_tags_1) + /sizeof(asn_DEF_DRBs_Setup_List_tags_1[0]), /* 1 */ + { &asn_OER_type_DRBs_Setup_List_constr_1, &asn_PER_type_DRBs_Setup_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DRBs_Setup_List_1, + 1, /* Single element */ + &asn_SPC_DRBs_Setup_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRBs-Setup-List.h b/src/du_app/F1AP/asn/DRBs-Setup-List.h new file mode 100755 index 000000000..51931c0e5 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-Setup-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBs_Setup_List_H_ +#define _DRBs_Setup_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* DRBs-Setup-List */ +typedef struct DRBs_Setup_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_Setup_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRBs_Setup_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBs_Setup_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBs-SetupMod-Item.c b/src/du_app/F1AP/asn/DRBs-SetupMod-Item.c new file mode 100755 index 000000000..8902a477c --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-SetupMod-Item.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBs-SetupMod-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_DRBs_SetupMod_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_SetupMod_Item, dRBID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRBID" + }, + { ATF_POINTER, 1, offsetof(struct DRBs_SetupMod_Item, lCID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LCID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lCID" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_SetupMod_Item, dLUPTNLInformation_ToBeSetup_List), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DLUPTNLInformation_ToBeSetup_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dLUPTNLInformation-ToBeSetup-List" + }, + { ATF_POINTER, 1, offsetof(struct DRBs_SetupMod_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P30, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_DRBs_SetupMod_Item_oms_1[] = { 1, 3 }; +static const ber_tlv_tag_t asn_DEF_DRBs_SetupMod_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_SetupMod_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dRBID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lCID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dLUPTNLInformation-ToBeSetup-List */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DRBs_SetupMod_Item_specs_1 = { + sizeof(struct DRBs_SetupMod_Item), + offsetof(struct DRBs_SetupMod_Item, _asn_ctx), + asn_MAP_DRBs_SetupMod_Item_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_DRBs_SetupMod_Item_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_SetupMod_Item = { + "DRBs-SetupMod-Item", + "DRBs-SetupMod-Item", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_SetupMod_Item_tags_1, + sizeof(asn_DEF_DRBs_SetupMod_Item_tags_1) + /sizeof(asn_DEF_DRBs_SetupMod_Item_tags_1[0]), /* 1 */ + asn_DEF_DRBs_SetupMod_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBs_SetupMod_Item_tags_1) + /sizeof(asn_DEF_DRBs_SetupMod_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_SetupMod_Item_1, + 4, /* Elements count */ + &asn_SPC_DRBs_SetupMod_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRBs-SetupMod-Item.h b/src/du_app/F1AP/asn/DRBs-SetupMod-Item.h new file mode 100755 index 000000000..79b1ed8ec --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-SetupMod-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBs_SetupMod_Item_H_ +#define _DRBs_SetupMod_Item_H_ + + +#include + +/* Including external dependencies */ +#include "DRBID.h" +#include "LCID.h" +#include "DLUPTNLInformation-ToBeSetup-List.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* DRBs-SetupMod-Item */ +typedef struct DRBs_SetupMod_Item { + DRBID_t dRBID; + LCID_t *lCID; /* OPTIONAL */ + DLUPTNLInformation_ToBeSetup_List_t dLUPTNLInformation_ToBeSetup_List; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_SetupMod_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRBs_SetupMod_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBs_SetupMod_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBs-SetupMod-List.c b/src/du_app/F1AP/asn/DRBs-SetupMod-List.c new file mode 100755 index 000000000..58a04c867 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-SetupMod-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBs-SetupMod-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_DRBs_SetupMod_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_DRBs_SetupMod_List_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 */ +}; +static asn_TYPE_member_t asn_MBR_DRBs_SetupMod_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P37, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_SetupMod_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_DRBs_SetupMod_List_specs_1 = { + sizeof(struct DRBs_SetupMod_List), + offsetof(struct DRBs_SetupMod_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_SetupMod_List = { + "DRBs-SetupMod-List", + "DRBs-SetupMod-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_DRBs_SetupMod_List_tags_1, + sizeof(asn_DEF_DRBs_SetupMod_List_tags_1) + /sizeof(asn_DEF_DRBs_SetupMod_List_tags_1[0]), /* 1 */ + asn_DEF_DRBs_SetupMod_List_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBs_SetupMod_List_tags_1) + /sizeof(asn_DEF_DRBs_SetupMod_List_tags_1[0]), /* 1 */ + { &asn_OER_type_DRBs_SetupMod_List_constr_1, &asn_PER_type_DRBs_SetupMod_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DRBs_SetupMod_List_1, + 1, /* Single element */ + &asn_SPC_DRBs_SetupMod_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRBs-SetupMod-List.h b/src/du_app/F1AP/asn/DRBs-SetupMod-List.h new file mode 100755 index 000000000..530e911fd --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-SetupMod-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBs_SetupMod_List_H_ +#define _DRBs_SetupMod_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* DRBs-SetupMod-List */ +typedef struct DRBs_SetupMod_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_SetupMod_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRBs_SetupMod_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBs_SetupMod_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBs-ToBeModified-Item.c b/src/du_app/F1AP/asn/DRBs-ToBeModified-Item.c new file mode 100755 index 000000000..c8c778da5 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-ToBeModified-Item.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBs-ToBeModified-Item.h" + +#include "QoSInformation.h" +#include "ULConfiguration.h" +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_DRBs_ToBeModified_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeModified_Item, dRBID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRBID" + }, + { ATF_POINTER, 1, offsetof(struct DRBs_ToBeModified_Item, qoSInformation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_QoSInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qoSInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeModified_Item, uLUPTNLInformation_ToBeSetup_List), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ULUPTNLInformation_ToBeSetup_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uLUPTNLInformation-ToBeSetup-List" + }, + { ATF_POINTER, 2, offsetof(struct DRBs_ToBeModified_Item, uLConfiguration), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ULConfiguration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uLConfiguration" + }, + { ATF_POINTER, 1, offsetof(struct DRBs_ToBeModified_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P31, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_DRBs_ToBeModified_Item_oms_1[] = { 1, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_DRBs_ToBeModified_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_ToBeModified_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dRBID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* qoSInformation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uLUPTNLInformation-ToBeSetup-List */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* uLConfiguration */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DRBs_ToBeModified_Item_specs_1 = { + sizeof(struct DRBs_ToBeModified_Item), + offsetof(struct DRBs_ToBeModified_Item, _asn_ctx), + asn_MAP_DRBs_ToBeModified_Item_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_DRBs_ToBeModified_Item_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeModified_Item = { + "DRBs-ToBeModified-Item", + "DRBs-ToBeModified-Item", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_ToBeModified_Item_tags_1, + sizeof(asn_DEF_DRBs_ToBeModified_Item_tags_1) + /sizeof(asn_DEF_DRBs_ToBeModified_Item_tags_1[0]), /* 1 */ + asn_DEF_DRBs_ToBeModified_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBs_ToBeModified_Item_tags_1) + /sizeof(asn_DEF_DRBs_ToBeModified_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_ToBeModified_Item_1, + 5, /* Elements count */ + &asn_SPC_DRBs_ToBeModified_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRBs-ToBeModified-Item.h b/src/du_app/F1AP/asn/DRBs-ToBeModified-Item.h new file mode 100755 index 000000000..1500833bf --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-ToBeModified-Item.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBs_ToBeModified_Item_H_ +#define _DRBs_ToBeModified_Item_H_ + + +#include + +/* Including external dependencies */ +#include "DRBID.h" +#include "ULUPTNLInformation-ToBeSetup-List.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct QoSInformation; +struct ULConfiguration; +struct ProtocolExtensionContainer; + +/* DRBs-ToBeModified-Item */ +typedef struct DRBs_ToBeModified_Item { + DRBID_t dRBID; + struct QoSInformation *qoSInformation; /* OPTIONAL */ + ULUPTNLInformation_ToBeSetup_List_t uLUPTNLInformation_ToBeSetup_List; + struct ULConfiguration *uLConfiguration; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_ToBeModified_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeModified_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBs_ToBeModified_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBs-ToBeModified-List.c b/src/du_app/F1AP/asn/DRBs-ToBeModified-List.c new file mode 100755 index 000000000..0e3ab5c66 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-ToBeModified-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBs-ToBeModified-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_DRBs_ToBeModified_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_DRBs_ToBeModified_List_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 */ +}; +static asn_TYPE_member_t asn_MBR_DRBs_ToBeModified_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P34, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_ToBeModified_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_DRBs_ToBeModified_List_specs_1 = { + sizeof(struct DRBs_ToBeModified_List), + offsetof(struct DRBs_ToBeModified_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeModified_List = { + "DRBs-ToBeModified-List", + "DRBs-ToBeModified-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_DRBs_ToBeModified_List_tags_1, + sizeof(asn_DEF_DRBs_ToBeModified_List_tags_1) + /sizeof(asn_DEF_DRBs_ToBeModified_List_tags_1[0]), /* 1 */ + asn_DEF_DRBs_ToBeModified_List_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBs_ToBeModified_List_tags_1) + /sizeof(asn_DEF_DRBs_ToBeModified_List_tags_1[0]), /* 1 */ + { &asn_OER_type_DRBs_ToBeModified_List_constr_1, &asn_PER_type_DRBs_ToBeModified_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DRBs_ToBeModified_List_1, + 1, /* Single element */ + &asn_SPC_DRBs_ToBeModified_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRBs-ToBeModified-List.h b/src/du_app/F1AP/asn/DRBs-ToBeModified-List.h new file mode 100755 index 000000000..a4b3d3c38 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-ToBeModified-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBs_ToBeModified_List_H_ +#define _DRBs_ToBeModified_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* DRBs-ToBeModified-List */ +typedef struct DRBs_ToBeModified_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_ToBeModified_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeModified_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBs_ToBeModified_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBs-ToBeReleased-Item.c b/src/du_app/F1AP/asn/DRBs-ToBeReleased-Item.c new file mode 100755 index 000000000..2a1d9acd3 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-ToBeReleased-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBs-ToBeReleased-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_DRBs_ToBeReleased_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeReleased_Item, dRBID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRBID" + }, + { ATF_POINTER, 1, offsetof(struct DRBs_ToBeReleased_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P32, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_DRBs_ToBeReleased_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_DRBs_ToBeReleased_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_ToBeReleased_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dRBID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DRBs_ToBeReleased_Item_specs_1 = { + sizeof(struct DRBs_ToBeReleased_Item), + offsetof(struct DRBs_ToBeReleased_Item, _asn_ctx), + asn_MAP_DRBs_ToBeReleased_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_DRBs_ToBeReleased_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeReleased_Item = { + "DRBs-ToBeReleased-Item", + "DRBs-ToBeReleased-Item", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_ToBeReleased_Item_tags_1, + sizeof(asn_DEF_DRBs_ToBeReleased_Item_tags_1) + /sizeof(asn_DEF_DRBs_ToBeReleased_Item_tags_1[0]), /* 1 */ + asn_DEF_DRBs_ToBeReleased_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBs_ToBeReleased_Item_tags_1) + /sizeof(asn_DEF_DRBs_ToBeReleased_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_ToBeReleased_Item_1, + 2, /* Elements count */ + &asn_SPC_DRBs_ToBeReleased_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRBs-ToBeReleased-Item.h b/src/du_app/F1AP/asn/DRBs-ToBeReleased-Item.h new file mode 100755 index 000000000..64d3dbac8 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-ToBeReleased-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBs_ToBeReleased_Item_H_ +#define _DRBs_ToBeReleased_Item_H_ + + +#include + +/* Including external dependencies */ +#include "DRBID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* DRBs-ToBeReleased-Item */ +typedef struct DRBs_ToBeReleased_Item { + DRBID_t dRBID; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_ToBeReleased_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeReleased_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBs_ToBeReleased_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBs-ToBeReleased-List.c b/src/du_app/F1AP/asn/DRBs-ToBeReleased-List.c new file mode 100755 index 000000000..dc53b749f --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-ToBeReleased-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBs-ToBeReleased-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_DRBs_ToBeReleased_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_DRBs_ToBeReleased_List_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 */ +}; +static asn_TYPE_member_t asn_MBR_DRBs_ToBeReleased_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P36, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_ToBeReleased_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_DRBs_ToBeReleased_List_specs_1 = { + sizeof(struct DRBs_ToBeReleased_List), + offsetof(struct DRBs_ToBeReleased_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeReleased_List = { + "DRBs-ToBeReleased-List", + "DRBs-ToBeReleased-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_DRBs_ToBeReleased_List_tags_1, + sizeof(asn_DEF_DRBs_ToBeReleased_List_tags_1) + /sizeof(asn_DEF_DRBs_ToBeReleased_List_tags_1[0]), /* 1 */ + asn_DEF_DRBs_ToBeReleased_List_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBs_ToBeReleased_List_tags_1) + /sizeof(asn_DEF_DRBs_ToBeReleased_List_tags_1[0]), /* 1 */ + { &asn_OER_type_DRBs_ToBeReleased_List_constr_1, &asn_PER_type_DRBs_ToBeReleased_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DRBs_ToBeReleased_List_1, + 1, /* Single element */ + &asn_SPC_DRBs_ToBeReleased_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRBs-ToBeReleased-List.h b/src/du_app/F1AP/asn/DRBs-ToBeReleased-List.h new file mode 100755 index 000000000..0b3447aa8 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-ToBeReleased-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBs_ToBeReleased_List_H_ +#define _DRBs_ToBeReleased_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* DRBs-ToBeReleased-List */ +typedef struct DRBs_ToBeReleased_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_ToBeReleased_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeReleased_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBs_ToBeReleased_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBs-ToBeSetup-Item.c b/src/du_app/F1AP/asn/DRBs-ToBeSetup-Item.c new file mode 100755 index 000000000..3aa6205b5 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-ToBeSetup-Item.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBs-ToBeSetup-Item.h" + +#include "ULConfiguration.h" +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_DRBs_ToBeSetup_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetup_Item, dRBID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRBID" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetup_Item, qoSInformation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_QoSInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qoSInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetup_Item, uLUPTNLInformation_ToBeSetup_List), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ULUPTNLInformation_ToBeSetup_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uLUPTNLInformation-ToBeSetup-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetup_Item, rLCMode), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RLCMode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rLCMode" + }, + { ATF_POINTER, 3, offsetof(struct DRBs_ToBeSetup_Item, uLConfiguration), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ULConfiguration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uLConfiguration" + }, + { ATF_POINTER, 2, offsetof(struct DRBs_ToBeSetup_Item, duplicationActivation), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DuplicationActivation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "duplicationActivation" + }, + { ATF_POINTER, 1, offsetof(struct DRBs_ToBeSetup_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P33, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_DRBs_ToBeSetup_Item_oms_1[] = { 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_DRBs_ToBeSetup_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_ToBeSetup_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dRBID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* qoSInformation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uLUPTNLInformation-ToBeSetup-List */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* rLCMode */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* uLConfiguration */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* duplicationActivation */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DRBs_ToBeSetup_Item_specs_1 = { + sizeof(struct DRBs_ToBeSetup_Item), + offsetof(struct DRBs_ToBeSetup_Item, _asn_ctx), + asn_MAP_DRBs_ToBeSetup_Item_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_DRBs_ToBeSetup_Item_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeSetup_Item = { + "DRBs-ToBeSetup-Item", + "DRBs-ToBeSetup-Item", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_ToBeSetup_Item_tags_1, + sizeof(asn_DEF_DRBs_ToBeSetup_Item_tags_1) + /sizeof(asn_DEF_DRBs_ToBeSetup_Item_tags_1[0]), /* 1 */ + asn_DEF_DRBs_ToBeSetup_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBs_ToBeSetup_Item_tags_1) + /sizeof(asn_DEF_DRBs_ToBeSetup_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_ToBeSetup_Item_1, + 7, /* Elements count */ + &asn_SPC_DRBs_ToBeSetup_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRBs-ToBeSetup-Item.h b/src/du_app/F1AP/asn/DRBs-ToBeSetup-Item.h new file mode 100755 index 000000000..bfe922883 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-ToBeSetup-Item.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBs_ToBeSetup_Item_H_ +#define _DRBs_ToBeSetup_Item_H_ + + +#include + +/* Including external dependencies */ +#include "DRBID.h" +#include "QoSInformation.h" +#include "ULUPTNLInformation-ToBeSetup-List.h" +#include "RLCMode.h" +#include "DuplicationActivation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ULConfiguration; +struct ProtocolExtensionContainer; + +/* DRBs-ToBeSetup-Item */ +typedef struct DRBs_ToBeSetup_Item { + DRBID_t dRBID; + QoSInformation_t qoSInformation; + ULUPTNLInformation_ToBeSetup_List_t uLUPTNLInformation_ToBeSetup_List; + RLCMode_t rLCMode; + struct ULConfiguration *uLConfiguration; /* OPTIONAL */ + DuplicationActivation_t *duplicationActivation; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_ToBeSetup_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeSetup_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBs_ToBeSetup_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBs-ToBeSetup-List.c b/src/du_app/F1AP/asn/DRBs-ToBeSetup-List.c new file mode 100755 index 000000000..5c4e4d3f0 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-ToBeSetup-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBs-ToBeSetup-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_DRBs_ToBeSetup_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_DRBs_ToBeSetup_List_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 */ +}; +static asn_TYPE_member_t asn_MBR_DRBs_ToBeSetup_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_ToBeSetup_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_DRBs_ToBeSetup_List_specs_1 = { + sizeof(struct DRBs_ToBeSetup_List), + offsetof(struct DRBs_ToBeSetup_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeSetup_List = { + "DRBs-ToBeSetup-List", + "DRBs-ToBeSetup-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_DRBs_ToBeSetup_List_tags_1, + sizeof(asn_DEF_DRBs_ToBeSetup_List_tags_1) + /sizeof(asn_DEF_DRBs_ToBeSetup_List_tags_1[0]), /* 1 */ + asn_DEF_DRBs_ToBeSetup_List_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBs_ToBeSetup_List_tags_1) + /sizeof(asn_DEF_DRBs_ToBeSetup_List_tags_1[0]), /* 1 */ + { &asn_OER_type_DRBs_ToBeSetup_List_constr_1, &asn_PER_type_DRBs_ToBeSetup_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DRBs_ToBeSetup_List_1, + 1, /* Single element */ + &asn_SPC_DRBs_ToBeSetup_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRBs-ToBeSetup-List.h b/src/du_app/F1AP/asn/DRBs-ToBeSetup-List.h new file mode 100755 index 000000000..d27a6111a --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-ToBeSetup-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBs_ToBeSetup_List_H_ +#define _DRBs_ToBeSetup_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* DRBs-ToBeSetup-List */ +typedef struct DRBs_ToBeSetup_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_ToBeSetup_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeSetup_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBs_ToBeSetup_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBs-ToBeSetupMod-Item.c b/src/du_app/F1AP/asn/DRBs-ToBeSetupMod-Item.c new file mode 100755 index 000000000..d585bfde8 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-ToBeSetupMod-Item.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBs-ToBeSetupMod-Item.h" + +#include "ULConfiguration.h" +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_DRBs_ToBeSetupMod_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetupMod_Item, dRBID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRBID" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetupMod_Item, qoSInformation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_QoSInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qoSInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetupMod_Item, uLUPTNLInformation_ToBeSetup_List), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ULUPTNLInformation_ToBeSetup_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uLUPTNLInformation-ToBeSetup-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetupMod_Item, rLCMode), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RLCMode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rLCMode" + }, + { ATF_POINTER, 3, offsetof(struct DRBs_ToBeSetupMod_Item, uLConfiguration), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ULConfiguration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uLConfiguration" + }, + { ATF_POINTER, 2, offsetof(struct DRBs_ToBeSetupMod_Item, duplicationActivation), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DuplicationActivation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "duplicationActivation" + }, + { ATF_POINTER, 1, offsetof(struct DRBs_ToBeSetupMod_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P34, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_DRBs_ToBeSetupMod_Item_oms_1[] = { 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_DRBs_ToBeSetupMod_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_ToBeSetupMod_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dRBID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* qoSInformation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uLUPTNLInformation-ToBeSetup-List */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* rLCMode */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* uLConfiguration */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* duplicationActivation */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DRBs_ToBeSetupMod_Item_specs_1 = { + sizeof(struct DRBs_ToBeSetupMod_Item), + offsetof(struct DRBs_ToBeSetupMod_Item, _asn_ctx), + asn_MAP_DRBs_ToBeSetupMod_Item_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_DRBs_ToBeSetupMod_Item_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeSetupMod_Item = { + "DRBs-ToBeSetupMod-Item", + "DRBs-ToBeSetupMod-Item", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_ToBeSetupMod_Item_tags_1, + sizeof(asn_DEF_DRBs_ToBeSetupMod_Item_tags_1) + /sizeof(asn_DEF_DRBs_ToBeSetupMod_Item_tags_1[0]), /* 1 */ + asn_DEF_DRBs_ToBeSetupMod_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBs_ToBeSetupMod_Item_tags_1) + /sizeof(asn_DEF_DRBs_ToBeSetupMod_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_ToBeSetupMod_Item_1, + 7, /* Elements count */ + &asn_SPC_DRBs_ToBeSetupMod_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRBs-ToBeSetupMod-Item.h b/src/du_app/F1AP/asn/DRBs-ToBeSetupMod-Item.h new file mode 100755 index 000000000..becc0f7ab --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-ToBeSetupMod-Item.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBs_ToBeSetupMod_Item_H_ +#define _DRBs_ToBeSetupMod_Item_H_ + + +#include + +/* Including external dependencies */ +#include "DRBID.h" +#include "QoSInformation.h" +#include "ULUPTNLInformation-ToBeSetup-List.h" +#include "RLCMode.h" +#include "DuplicationActivation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ULConfiguration; +struct ProtocolExtensionContainer; + +/* DRBs-ToBeSetupMod-Item */ +typedef struct DRBs_ToBeSetupMod_Item { + DRBID_t dRBID; + QoSInformation_t qoSInformation; + ULUPTNLInformation_ToBeSetup_List_t uLUPTNLInformation_ToBeSetup_List; + RLCMode_t rLCMode; + struct ULConfiguration *uLConfiguration; /* OPTIONAL */ + DuplicationActivation_t *duplicationActivation; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_ToBeSetupMod_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeSetupMod_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBs_ToBeSetupMod_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRBs-ToBeSetupMod-List.c b/src/du_app/F1AP/asn/DRBs-ToBeSetupMod-List.c new file mode 100755 index 000000000..5daf7b202 --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-ToBeSetupMod-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRBs-ToBeSetupMod-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_DRBs_ToBeSetupMod_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_DRBs_ToBeSetupMod_List_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 */ +}; +static asn_TYPE_member_t asn_MBR_DRBs_ToBeSetupMod_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P33, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_ToBeSetupMod_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_DRBs_ToBeSetupMod_List_specs_1 = { + sizeof(struct DRBs_ToBeSetupMod_List), + offsetof(struct DRBs_ToBeSetupMod_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeSetupMod_List = { + "DRBs-ToBeSetupMod-List", + "DRBs-ToBeSetupMod-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_DRBs_ToBeSetupMod_List_tags_1, + sizeof(asn_DEF_DRBs_ToBeSetupMod_List_tags_1) + /sizeof(asn_DEF_DRBs_ToBeSetupMod_List_tags_1[0]), /* 1 */ + asn_DEF_DRBs_ToBeSetupMod_List_tags_1, /* Same as above */ + sizeof(asn_DEF_DRBs_ToBeSetupMod_List_tags_1) + /sizeof(asn_DEF_DRBs_ToBeSetupMod_List_tags_1[0]), /* 1 */ + { &asn_OER_type_DRBs_ToBeSetupMod_List_constr_1, &asn_PER_type_DRBs_ToBeSetupMod_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DRBs_ToBeSetupMod_List_1, + 1, /* Single element */ + &asn_SPC_DRBs_ToBeSetupMod_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRBs-ToBeSetupMod-List.h b/src/du_app/F1AP/asn/DRBs-ToBeSetupMod-List.h new file mode 100755 index 000000000..37cfbc7ce --- /dev/null +++ b/src/du_app/F1AP/asn/DRBs-ToBeSetupMod-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRBs_ToBeSetupMod_List_H_ +#define _DRBs_ToBeSetupMod_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* DRBs-ToBeSetupMod-List */ +typedef struct DRBs_ToBeSetupMod_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_ToBeSetupMod_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeSetupMod_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRBs_ToBeSetupMod_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRX-Config.c b/src/du_app/F1AP/asn/DRX-Config.c new file mode 100755 index 000000000..613a46783 --- /dev/null +++ b/src/du_app/F1AP/asn/DRX-Config.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRX-Config.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_DRX_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DRX_Config = { + "DRX-Config", + "DRX-Config", + &asn_OP_OCTET_STRING, + asn_DEF_DRX_Config_tags_1, + sizeof(asn_DEF_DRX_Config_tags_1) + /sizeof(asn_DEF_DRX_Config_tags_1[0]), /* 1 */ + asn_DEF_DRX_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_DRX_Config_tags_1) + /sizeof(asn_DEF_DRX_Config_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRX-Config.h b/src/du_app/F1AP/asn/DRX-Config.h new file mode 100755 index 000000000..b70b3322c --- /dev/null +++ b/src/du_app/F1AP/asn/DRX-Config.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRX_Config_H_ +#define _DRX_Config_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DRX-Config */ +typedef OCTET_STRING_t DRX_Config_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRX_Config; +asn_struct_free_f DRX_Config_free; +asn_struct_print_f DRX_Config_print; +asn_constr_check_f DRX_Config_constraint; +ber_type_decoder_f DRX_Config_decode_ber; +der_type_encoder_f DRX_Config_encode_der; +xer_type_decoder_f DRX_Config_decode_xer; +xer_type_encoder_f DRX_Config_encode_xer; +oer_type_decoder_f DRX_Config_decode_oer; +oer_type_encoder_f DRX_Config_encode_oer; +per_type_decoder_f DRX_Config_decode_uper; +per_type_encoder_f DRX_Config_encode_uper; +per_type_decoder_f DRX_Config_decode_aper; +per_type_encoder_f DRX_Config_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRX_Config_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRX-LongCycleStartOffset.c b/src/du_app/F1AP/asn/DRX-LongCycleStartOffset.c new file mode 100755 index 000000000..bb19e01d1 --- /dev/null +++ b/src/du_app/F1AP/asn/DRX-LongCycleStartOffset.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRX-LongCycleStartOffset.h" + +int +DRX_LongCycleStartOffset_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 <= 10239)) { + /* 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_DRX_LongCycleStartOffset_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..10239) */, + -1}; +static asn_per_constraints_t asn_PER_type_DRX_LongCycleStartOffset_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 10239 } /* (0..10239) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_DRX_LongCycleStartOffset_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DRX_LongCycleStartOffset = { + "DRX-LongCycleStartOffset", + "DRX-LongCycleStartOffset", + &asn_OP_NativeInteger, + asn_DEF_DRX_LongCycleStartOffset_tags_1, + sizeof(asn_DEF_DRX_LongCycleStartOffset_tags_1) + /sizeof(asn_DEF_DRX_LongCycleStartOffset_tags_1[0]), /* 1 */ + asn_DEF_DRX_LongCycleStartOffset_tags_1, /* Same as above */ + sizeof(asn_DEF_DRX_LongCycleStartOffset_tags_1) + /sizeof(asn_DEF_DRX_LongCycleStartOffset_tags_1[0]), /* 1 */ + { &asn_OER_type_DRX_LongCycleStartOffset_constr_1, &asn_PER_type_DRX_LongCycleStartOffset_constr_1, DRX_LongCycleStartOffset_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/DRX-LongCycleStartOffset.h b/src/du_app/F1AP/asn/DRX-LongCycleStartOffset.h new file mode 100755 index 000000000..7cee9b373 --- /dev/null +++ b/src/du_app/F1AP/asn/DRX-LongCycleStartOffset.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRX_LongCycleStartOffset_H_ +#define _DRX_LongCycleStartOffset_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DRX-LongCycleStartOffset */ +typedef long DRX_LongCycleStartOffset_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRX_LongCycleStartOffset; +asn_struct_free_f DRX_LongCycleStartOffset_free; +asn_struct_print_f DRX_LongCycleStartOffset_print; +asn_constr_check_f DRX_LongCycleStartOffset_constraint; +ber_type_decoder_f DRX_LongCycleStartOffset_decode_ber; +der_type_encoder_f DRX_LongCycleStartOffset_encode_der; +xer_type_decoder_f DRX_LongCycleStartOffset_decode_xer; +xer_type_encoder_f DRX_LongCycleStartOffset_encode_xer; +oer_type_decoder_f DRX_LongCycleStartOffset_decode_oer; +oer_type_encoder_f DRX_LongCycleStartOffset_encode_oer; +per_type_decoder_f DRX_LongCycleStartOffset_decode_uper; +per_type_encoder_f DRX_LongCycleStartOffset_encode_uper; +per_type_decoder_f DRX_LongCycleStartOffset_decode_aper; +per_type_encoder_f DRX_LongCycleStartOffset_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRX_LongCycleStartOffset_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRXConfigurationIndicator.c b/src/du_app/F1AP/asn/DRXConfigurationIndicator.c new file mode 100755 index 000000000..01a58f032 --- /dev/null +++ b/src/du_app/F1AP/asn/DRXConfigurationIndicator.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRXConfigurationIndicator.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DRXConfigurationIndicator_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_DRXConfigurationIndicator_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_DRXConfigurationIndicator_value2enum_1[] = { + { 0, 7, "release" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_DRXConfigurationIndicator_enum2value_1[] = { + 0 /* release(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_DRXConfigurationIndicator_specs_1 = { + asn_MAP_DRXConfigurationIndicator_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DRXConfigurationIndicator_enum2value_1, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_DRXConfigurationIndicator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DRXConfigurationIndicator = { + "DRXConfigurationIndicator", + "DRXConfigurationIndicator", + &asn_OP_NativeEnumerated, + asn_DEF_DRXConfigurationIndicator_tags_1, + sizeof(asn_DEF_DRXConfigurationIndicator_tags_1) + /sizeof(asn_DEF_DRXConfigurationIndicator_tags_1[0]), /* 1 */ + asn_DEF_DRXConfigurationIndicator_tags_1, /* Same as above */ + sizeof(asn_DEF_DRXConfigurationIndicator_tags_1) + /sizeof(asn_DEF_DRXConfigurationIndicator_tags_1[0]), /* 1 */ + { &asn_OER_type_DRXConfigurationIndicator_constr_1, &asn_PER_type_DRXConfigurationIndicator_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DRXConfigurationIndicator_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRXConfigurationIndicator.h b/src/du_app/F1AP/asn/DRXConfigurationIndicator.h new file mode 100755 index 000000000..8f786842b --- /dev/null +++ b/src/du_app/F1AP/asn/DRXConfigurationIndicator.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRXConfigurationIndicator_H_ +#define _DRXConfigurationIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DRXConfigurationIndicator { + DRXConfigurationIndicator_release = 0 + /* + * Enumeration is extensible + */ +} e_DRXConfigurationIndicator; + +/* DRXConfigurationIndicator */ +typedef long DRXConfigurationIndicator_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRXConfigurationIndicator; +asn_struct_free_f DRXConfigurationIndicator_free; +asn_struct_print_f DRXConfigurationIndicator_print; +asn_constr_check_f DRXConfigurationIndicator_constraint; +ber_type_decoder_f DRXConfigurationIndicator_decode_ber; +der_type_encoder_f DRXConfigurationIndicator_encode_der; +xer_type_decoder_f DRXConfigurationIndicator_decode_xer; +xer_type_encoder_f DRXConfigurationIndicator_encode_xer; +oer_type_decoder_f DRXConfigurationIndicator_decode_oer; +oer_type_encoder_f DRXConfigurationIndicator_encode_oer; +per_type_decoder_f DRXConfigurationIndicator_decode_uper; +per_type_encoder_f DRXConfigurationIndicator_encode_uper; +per_type_decoder_f DRXConfigurationIndicator_decode_aper; +per_type_encoder_f DRXConfigurationIndicator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRXConfigurationIndicator_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DRXCycle.c b/src/du_app/F1AP/asn/DRXCycle.c new file mode 100755 index 000000000..dfa897858 --- /dev/null +++ b/src/du_app/F1AP/asn/DRXCycle.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRXCycle.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_DRXCycle_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRXCycle, longDRXCycleLength), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LongDRXCycleLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longDRXCycleLength" + }, + { ATF_POINTER, 3, offsetof(struct DRXCycle, shortDRXCycleLength), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ShortDRXCycleLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "shortDRXCycleLength" + }, + { ATF_POINTER, 2, offsetof(struct DRXCycle, shortDRXCycleTimer), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ShortDRXCycleTimer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "shortDRXCycleTimer" + }, + { ATF_POINTER, 1, offsetof(struct DRXCycle, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P35, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_DRXCycle_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_DRXCycle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRXCycle_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* longDRXCycleLength */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* shortDRXCycleLength */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* shortDRXCycleTimer */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DRXCycle_specs_1 = { + sizeof(struct DRXCycle), + offsetof(struct DRXCycle, _asn_ctx), + asn_MAP_DRXCycle_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_DRXCycle_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRXCycle = { + "DRXCycle", + "DRXCycle", + &asn_OP_SEQUENCE, + asn_DEF_DRXCycle_tags_1, + sizeof(asn_DEF_DRXCycle_tags_1) + /sizeof(asn_DEF_DRXCycle_tags_1[0]), /* 1 */ + asn_DEF_DRXCycle_tags_1, /* Same as above */ + sizeof(asn_DEF_DRXCycle_tags_1) + /sizeof(asn_DEF_DRXCycle_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRXCycle_1, + 4, /* Elements count */ + &asn_SPC_DRXCycle_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DRXCycle.h b/src/du_app/F1AP/asn/DRXCycle.h new file mode 100755 index 000000000..6af629162 --- /dev/null +++ b/src/du_app/F1AP/asn/DRXCycle.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRXCycle_H_ +#define _DRXCycle_H_ + + +#include + +/* Including external dependencies */ +#include "LongDRXCycleLength.h" +#include "ShortDRXCycleLength.h" +#include "ShortDRXCycleTimer.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* DRXCycle */ +typedef struct DRXCycle { + LongDRXCycleLength_t longDRXCycleLength; + ShortDRXCycleLength_t *shortDRXCycleLength; /* OPTIONAL */ + ShortDRXCycleTimer_t *shortDRXCycleTimer; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRXCycle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRXCycle; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRXCycle_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DUtoCURRCContainer.c b/src/du_app/F1AP/asn/DUtoCURRCContainer.c new file mode 100755 index 000000000..0357625e4 --- /dev/null +++ b/src/du_app/F1AP/asn/DUtoCURRCContainer.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DUtoCURRCContainer.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_DUtoCURRCContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DUtoCURRCContainer = { + "DUtoCURRCContainer", + "DUtoCURRCContainer", + &asn_OP_OCTET_STRING, + asn_DEF_DUtoCURRCContainer_tags_1, + sizeof(asn_DEF_DUtoCURRCContainer_tags_1) + /sizeof(asn_DEF_DUtoCURRCContainer_tags_1[0]), /* 1 */ + asn_DEF_DUtoCURRCContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_DUtoCURRCContainer_tags_1) + /sizeof(asn_DEF_DUtoCURRCContainer_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DUtoCURRCContainer.h b/src/du_app/F1AP/asn/DUtoCURRCContainer.h new file mode 100755 index 000000000..73f7eb92c --- /dev/null +++ b/src/du_app/F1AP/asn/DUtoCURRCContainer.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DUtoCURRCContainer_H_ +#define _DUtoCURRCContainer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DUtoCURRCContainer */ +typedef OCTET_STRING_t DUtoCURRCContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DUtoCURRCContainer; +asn_struct_free_f DUtoCURRCContainer_free; +asn_struct_print_f DUtoCURRCContainer_print; +asn_constr_check_f DUtoCURRCContainer_constraint; +ber_type_decoder_f DUtoCURRCContainer_decode_ber; +der_type_encoder_f DUtoCURRCContainer_encode_der; +xer_type_decoder_f DUtoCURRCContainer_decode_xer; +xer_type_encoder_f DUtoCURRCContainer_encode_xer; +oer_type_decoder_f DUtoCURRCContainer_decode_oer; +oer_type_encoder_f DUtoCURRCContainer_encode_oer; +per_type_decoder_f DUtoCURRCContainer_decode_uper; +per_type_encoder_f DUtoCURRCContainer_encode_uper; +per_type_decoder_f DUtoCURRCContainer_decode_aper; +per_type_encoder_f DUtoCURRCContainer_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DUtoCURRCContainer_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DUtoCURRCInformation.c b/src/du_app/F1AP/asn/DUtoCURRCInformation.c new file mode 100755 index 000000000..7fffe06f5 --- /dev/null +++ b/src/du_app/F1AP/asn/DUtoCURRCInformation.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DUtoCURRCInformation.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_DUtoCURRCInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DUtoCURRCInformation, cellGroupConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellGroupConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellGroupConfig" + }, + { ATF_POINTER, 3, offsetof(struct DUtoCURRCInformation, measGapConfig), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasGapConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measGapConfig" + }, + { ATF_POINTER, 2, offsetof(struct DUtoCURRCInformation, requestedP_MaxFR1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestedP-MaxFR1" + }, + { ATF_POINTER, 1, offsetof(struct DUtoCURRCInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P36, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_DUtoCURRCInformation_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_DUtoCURRCInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DUtoCURRCInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellGroupConfig */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measGapConfig */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* requestedP-MaxFR1 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DUtoCURRCInformation_specs_1 = { + sizeof(struct DUtoCURRCInformation), + offsetof(struct DUtoCURRCInformation, _asn_ctx), + asn_MAP_DUtoCURRCInformation_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_DUtoCURRCInformation_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DUtoCURRCInformation = { + "DUtoCURRCInformation", + "DUtoCURRCInformation", + &asn_OP_SEQUENCE, + asn_DEF_DUtoCURRCInformation_tags_1, + sizeof(asn_DEF_DUtoCURRCInformation_tags_1) + /sizeof(asn_DEF_DUtoCURRCInformation_tags_1[0]), /* 1 */ + asn_DEF_DUtoCURRCInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_DUtoCURRCInformation_tags_1) + /sizeof(asn_DEF_DUtoCURRCInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DUtoCURRCInformation_1, + 4, /* Elements count */ + &asn_SPC_DUtoCURRCInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DUtoCURRCInformation.h b/src/du_app/F1AP/asn/DUtoCURRCInformation.h new file mode 100755 index 000000000..d8dd92940 --- /dev/null +++ b/src/du_app/F1AP/asn/DUtoCURRCInformation.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DUtoCURRCInformation_H_ +#define _DUtoCURRCInformation_H_ + + +#include + +/* Including external dependencies */ +#include "CellGroupConfig.h" +#include "MeasGapConfig.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* DUtoCURRCInformation */ +typedef struct DUtoCURRCInformation { + CellGroupConfig_t cellGroupConfig; + MeasGapConfig_t *measGapConfig; /* OPTIONAL */ + OCTET_STRING_t *requestedP_MaxFR1; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DUtoCURRCInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DUtoCURRCInformation; + +#ifdef __cplusplus +} +#endif + +#endif /* _DUtoCURRCInformation_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Dedicated-SIDelivery-NeededUE-Item.c b/src/du_app/F1AP/asn/Dedicated-SIDelivery-NeededUE-Item.c new file mode 100755 index 000000000..6aafe890b --- /dev/null +++ b/src/du_app/F1AP/asn/Dedicated-SIDelivery-NeededUE-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Dedicated-SIDelivery-NeededUE-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_Dedicated_SIDelivery_NeededUE_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Dedicated_SIDelivery_NeededUE_Item, gNB_CU_UE_F1AP_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNB_CU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gNB-CU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct Dedicated_SIDelivery_NeededUE_Item, nRCGI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRCGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nRCGI" + }, + { ATF_POINTER, 1, offsetof(struct Dedicated_SIDelivery_NeededUE_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_Dedicated_SIDelivery_NeededUE_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_Dedicated_SIDelivery_NeededUE_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Dedicated_SIDelivery_NeededUE_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB-CU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nRCGI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Dedicated_SIDelivery_NeededUE_Item_specs_1 = { + sizeof(struct Dedicated_SIDelivery_NeededUE_Item), + offsetof(struct Dedicated_SIDelivery_NeededUE_Item, _asn_ctx), + asn_MAP_Dedicated_SIDelivery_NeededUE_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Dedicated_SIDelivery_NeededUE_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Dedicated_SIDelivery_NeededUE_Item = { + "Dedicated-SIDelivery-NeededUE-Item", + "Dedicated-SIDelivery-NeededUE-Item", + &asn_OP_SEQUENCE, + asn_DEF_Dedicated_SIDelivery_NeededUE_Item_tags_1, + sizeof(asn_DEF_Dedicated_SIDelivery_NeededUE_Item_tags_1) + /sizeof(asn_DEF_Dedicated_SIDelivery_NeededUE_Item_tags_1[0]), /* 1 */ + asn_DEF_Dedicated_SIDelivery_NeededUE_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_Dedicated_SIDelivery_NeededUE_Item_tags_1) + /sizeof(asn_DEF_Dedicated_SIDelivery_NeededUE_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Dedicated_SIDelivery_NeededUE_Item_1, + 3, /* Elements count */ + &asn_SPC_Dedicated_SIDelivery_NeededUE_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Dedicated-SIDelivery-NeededUE-Item.h b/src/du_app/F1AP/asn/Dedicated-SIDelivery-NeededUE-Item.h new file mode 100755 index 000000000..1a28a6d44 --- /dev/null +++ b/src/du_app/F1AP/asn/Dedicated-SIDelivery-NeededUE-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Dedicated_SIDelivery_NeededUE_Item_H_ +#define _Dedicated_SIDelivery_NeededUE_Item_H_ + + +#include + +/* Including external dependencies */ +#include "GNB-CU-UE-F1AP-ID.h" +#include "NRCGI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* Dedicated-SIDelivery-NeededUE-Item */ +typedef struct Dedicated_SIDelivery_NeededUE_Item { + GNB_CU_UE_F1AP_ID_t gNB_CU_UE_F1AP_ID; + NRCGI_t nRCGI; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Dedicated_SIDelivery_NeededUE_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Dedicated_SIDelivery_NeededUE_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _Dedicated_SIDelivery_NeededUE_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Dedicated-SIDelivery-NeededUE-List.c b/src/du_app/F1AP/asn/Dedicated-SIDelivery-NeededUE-List.c new file mode 100755 index 000000000..329ac4068 --- /dev/null +++ b/src/du_app/F1AP/asn/Dedicated-SIDelivery-NeededUE-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Dedicated-SIDelivery-NeededUE-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_Dedicated_SIDelivery_NeededUE_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65536)) */}; +static asn_per_constraints_t asn_PER_type_Dedicated_SIDelivery_NeededUE_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, -1, 1, 65536 } /* (SIZE(1..65536)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_Dedicated_SIDelivery_NeededUE_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Dedicated_SIDelivery_NeededUE_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Dedicated_SIDelivery_NeededUE_List_specs_1 = { + sizeof(struct Dedicated_SIDelivery_NeededUE_List), + offsetof(struct Dedicated_SIDelivery_NeededUE_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Dedicated_SIDelivery_NeededUE_List = { + "Dedicated-SIDelivery-NeededUE-List", + "Dedicated-SIDelivery-NeededUE-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_Dedicated_SIDelivery_NeededUE_List_tags_1, + sizeof(asn_DEF_Dedicated_SIDelivery_NeededUE_List_tags_1) + /sizeof(asn_DEF_Dedicated_SIDelivery_NeededUE_List_tags_1[0]), /* 1 */ + asn_DEF_Dedicated_SIDelivery_NeededUE_List_tags_1, /* Same as above */ + sizeof(asn_DEF_Dedicated_SIDelivery_NeededUE_List_tags_1) + /sizeof(asn_DEF_Dedicated_SIDelivery_NeededUE_List_tags_1[0]), /* 1 */ + { &asn_OER_type_Dedicated_SIDelivery_NeededUE_List_constr_1, &asn_PER_type_Dedicated_SIDelivery_NeededUE_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Dedicated_SIDelivery_NeededUE_List_1, + 1, /* Single element */ + &asn_SPC_Dedicated_SIDelivery_NeededUE_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Dedicated-SIDelivery-NeededUE-List.h b/src/du_app/F1AP/asn/Dedicated-SIDelivery-NeededUE-List.h new file mode 100755 index 000000000..033e35db8 --- /dev/null +++ b/src/du_app/F1AP/asn/Dedicated-SIDelivery-NeededUE-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Dedicated_SIDelivery_NeededUE_List_H_ +#define _Dedicated_SIDelivery_NeededUE_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* Dedicated-SIDelivery-NeededUE-List */ +typedef struct Dedicated_SIDelivery_NeededUE_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Dedicated_SIDelivery_NeededUE_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Dedicated_SIDelivery_NeededUE_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _Dedicated_SIDelivery_NeededUE_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DuplicationActivation.c b/src/du_app/F1AP/asn/DuplicationActivation.c new file mode 100755 index 000000000..82d0ba15c --- /dev/null +++ b/src/du_app/F1AP/asn/DuplicationActivation.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DuplicationActivation.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DuplicationActivation_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_DuplicationActivation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_DuplicationActivation_value2enum_1[] = { + { 0, 6, "active" }, + { 1, 8, "inactive" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_DuplicationActivation_enum2value_1[] = { + 0, /* active(0) */ + 1 /* inactive(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_DuplicationActivation_specs_1 = { + asn_MAP_DuplicationActivation_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DuplicationActivation_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_DuplicationActivation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DuplicationActivation = { + "DuplicationActivation", + "DuplicationActivation", + &asn_OP_NativeEnumerated, + asn_DEF_DuplicationActivation_tags_1, + sizeof(asn_DEF_DuplicationActivation_tags_1) + /sizeof(asn_DEF_DuplicationActivation_tags_1[0]), /* 1 */ + asn_DEF_DuplicationActivation_tags_1, /* Same as above */ + sizeof(asn_DEF_DuplicationActivation_tags_1) + /sizeof(asn_DEF_DuplicationActivation_tags_1[0]), /* 1 */ + { &asn_OER_type_DuplicationActivation_constr_1, &asn_PER_type_DuplicationActivation_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DuplicationActivation_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DuplicationActivation.h b/src/du_app/F1AP/asn/DuplicationActivation.h new file mode 100755 index 000000000..a3818831a --- /dev/null +++ b/src/du_app/F1AP/asn/DuplicationActivation.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DuplicationActivation_H_ +#define _DuplicationActivation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DuplicationActivation { + DuplicationActivation_active = 0, + DuplicationActivation_inactive = 1 + /* + * Enumeration is extensible + */ +} e_DuplicationActivation; + +/* DuplicationActivation */ +typedef long DuplicationActivation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DuplicationActivation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DuplicationActivation; +extern const asn_INTEGER_specifics_t asn_SPC_DuplicationActivation_specs_1; +asn_struct_free_f DuplicationActivation_free; +asn_struct_print_f DuplicationActivation_print; +asn_constr_check_f DuplicationActivation_constraint; +ber_type_decoder_f DuplicationActivation_decode_ber; +der_type_encoder_f DuplicationActivation_encode_der; +xer_type_decoder_f DuplicationActivation_decode_xer; +xer_type_encoder_f DuplicationActivation_encode_xer; +oer_type_decoder_f DuplicationActivation_decode_oer; +oer_type_encoder_f DuplicationActivation_encode_oer; +per_type_decoder_f DuplicationActivation_decode_uper; +per_type_encoder_f DuplicationActivation_encode_uper; +per_type_decoder_f DuplicationActivation_decode_aper; +per_type_encoder_f DuplicationActivation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DuplicationActivation_H_ */ +#include diff --git a/src/du_app/F1AP/asn/DuplicationIndication.c b/src/du_app/F1AP/asn/DuplicationIndication.c new file mode 100755 index 000000000..c2329c41b --- /dev/null +++ b/src/du_app/F1AP/asn/DuplicationIndication.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DuplicationIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DuplicationIndication_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_DuplicationIndication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_DuplicationIndication_value2enum_1[] = { + { 0, 4, "true" }, + { 1, 5, "false" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_DuplicationIndication_enum2value_1[] = { + 1, /* false(1) */ + 0 /* true(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_DuplicationIndication_specs_1 = { + asn_MAP_DuplicationIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_DuplicationIndication_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* 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_DuplicationIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DuplicationIndication = { + "DuplicationIndication", + "DuplicationIndication", + &asn_OP_NativeEnumerated, + asn_DEF_DuplicationIndication_tags_1, + sizeof(asn_DEF_DuplicationIndication_tags_1) + /sizeof(asn_DEF_DuplicationIndication_tags_1[0]), /* 1 */ + asn_DEF_DuplicationIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_DuplicationIndication_tags_1) + /sizeof(asn_DEF_DuplicationIndication_tags_1[0]), /* 1 */ + { &asn_OER_type_DuplicationIndication_constr_1, &asn_PER_type_DuplicationIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DuplicationIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/DuplicationIndication.h b/src/du_app/F1AP/asn/DuplicationIndication.h new file mode 100755 index 000000000..bb7c29092 --- /dev/null +++ b/src/du_app/F1AP/asn/DuplicationIndication.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DuplicationIndication_H_ +#define _DuplicationIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DuplicationIndication { + DuplicationIndication_true = 0, + /* + * Enumeration is extensible + */ + DuplicationIndication_false = 1 +} e_DuplicationIndication; + +/* DuplicationIndication */ +typedef long DuplicationIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DuplicationIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DuplicationIndication; +extern const asn_INTEGER_specifics_t asn_SPC_DuplicationIndication_specs_1; +asn_struct_free_f DuplicationIndication_free; +asn_struct_print_f DuplicationIndication_print; +asn_constr_check_f DuplicationIndication_constraint; +ber_type_decoder_f DuplicationIndication_decode_ber; +der_type_encoder_f DuplicationIndication_encode_der; +xer_type_decoder_f DuplicationIndication_decode_xer; +xer_type_encoder_f DuplicationIndication_encode_xer; +oer_type_decoder_f DuplicationIndication_decode_oer; +oer_type_encoder_f DuplicationIndication_encode_oer; +per_type_decoder_f DuplicationIndication_decode_uper; +per_type_encoder_f DuplicationIndication_encode_uper; +per_type_decoder_f DuplicationIndication_decode_aper; +per_type_encoder_f DuplicationIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DuplicationIndication_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Dynamic5QIDescriptor.c b/src/du_app/F1AP/asn/Dynamic5QIDescriptor.c new file mode 100755 index 000000000..77b951522 --- /dev/null +++ b/src/du_app/F1AP/asn/Dynamic5QIDescriptor.c @@ -0,0 +1,238 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Dynamic5QIDescriptor.h" + +#include "ProtocolExtensionContainer.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_qoSPriorityLevel_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 <= 127)) { + /* 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_fiveQI_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_delayCritical_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_delayCritical_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 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_qoSPriorityLevel_constr_2 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +static asn_per_constraints_t asn_PER_memb_qoSPriorityLevel_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_fiveQI_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_fiveQI_constr_5 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 asn_INTEGER_enum_map_t asn_MAP_delayCritical_value2enum_6[] = { + { 0, 14, "delay-critical" }, + { 1, 18, "non-delay-critical" } +}; +static const unsigned int asn_MAP_delayCritical_enum2value_6[] = { + 0, /* delay-critical(0) */ + 1 /* non-delay-critical(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_delayCritical_specs_6 = { + asn_MAP_delayCritical_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_delayCritical_enum2value_6, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_delayCritical_tags_6[] = { + (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_delayCritical_6 = { + "delayCritical", + "delayCritical", + &asn_OP_NativeEnumerated, + asn_DEF_delayCritical_tags_6, + sizeof(asn_DEF_delayCritical_tags_6) + /sizeof(asn_DEF_delayCritical_tags_6[0]) - 1, /* 1 */ + asn_DEF_delayCritical_tags_6, /* Same as above */ + sizeof(asn_DEF_delayCritical_tags_6) + /sizeof(asn_DEF_delayCritical_tags_6[0]), /* 2 */ + { &asn_OER_type_delayCritical_constr_6, &asn_PER_type_delayCritical_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_delayCritical_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Dynamic5QIDescriptor_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Dynamic5QIDescriptor, qoSPriorityLevel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_qoSPriorityLevel_constr_2, &asn_PER_memb_qoSPriorityLevel_constr_2, memb_qoSPriorityLevel_constraint_1 }, + 0, 0, /* No default value */ + "qoSPriorityLevel" + }, + { ATF_NOFLAGS, 0, offsetof(struct Dynamic5QIDescriptor, packetDelayBudget), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PacketDelayBudget, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "packetDelayBudget" + }, + { ATF_NOFLAGS, 0, offsetof(struct Dynamic5QIDescriptor, packetErrorRate), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PacketErrorRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "packetErrorRate" + }, + { ATF_POINTER, 5, offsetof(struct Dynamic5QIDescriptor, fiveQI), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_fiveQI_constr_5, &asn_PER_memb_fiveQI_constr_5, memb_fiveQI_constraint_1 }, + 0, 0, /* No default value */ + "fiveQI" + }, + { ATF_POINTER, 4, offsetof(struct Dynamic5QIDescriptor, delayCritical), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_delayCritical_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "delayCritical" + }, + { ATF_POINTER, 3, offsetof(struct Dynamic5QIDescriptor, averagingWindow), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AveragingWindow, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "averagingWindow" + }, + { ATF_POINTER, 2, offsetof(struct Dynamic5QIDescriptor, maxDataBurstVolume), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MaxDataBurstVolume, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxDataBurstVolume" + }, + { ATF_POINTER, 1, offsetof(struct Dynamic5QIDescriptor, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P37, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_Dynamic5QIDescriptor_oms_1[] = { 3, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_Dynamic5QIDescriptor_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Dynamic5QIDescriptor_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qoSPriorityLevel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* packetDelayBudget */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* packetErrorRate */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* fiveQI */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* delayCritical */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* averagingWindow */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* maxDataBurstVolume */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Dynamic5QIDescriptor_specs_1 = { + sizeof(struct Dynamic5QIDescriptor), + offsetof(struct Dynamic5QIDescriptor, _asn_ctx), + asn_MAP_Dynamic5QIDescriptor_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_Dynamic5QIDescriptor_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Dynamic5QIDescriptor = { + "Dynamic5QIDescriptor", + "Dynamic5QIDescriptor", + &asn_OP_SEQUENCE, + asn_DEF_Dynamic5QIDescriptor_tags_1, + sizeof(asn_DEF_Dynamic5QIDescriptor_tags_1) + /sizeof(asn_DEF_Dynamic5QIDescriptor_tags_1[0]), /* 1 */ + asn_DEF_Dynamic5QIDescriptor_tags_1, /* Same as above */ + sizeof(asn_DEF_Dynamic5QIDescriptor_tags_1) + /sizeof(asn_DEF_Dynamic5QIDescriptor_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Dynamic5QIDescriptor_1, + 8, /* Elements count */ + &asn_SPC_Dynamic5QIDescriptor_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Dynamic5QIDescriptor.h b/src/du_app/F1AP/asn/Dynamic5QIDescriptor.h new file mode 100755 index 000000000..8bf30b204 --- /dev/null +++ b/src/du_app/F1AP/asn/Dynamic5QIDescriptor.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Dynamic5QIDescriptor_H_ +#define _Dynamic5QIDescriptor_H_ + + +#include + +/* Including external dependencies */ +#include +#include "PacketDelayBudget.h" +#include "PacketErrorRate.h" +#include +#include "AveragingWindow.h" +#include "MaxDataBurstVolume.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Dynamic5QIDescriptor__delayCritical { + Dynamic5QIDescriptor__delayCritical_delay_critical = 0, + Dynamic5QIDescriptor__delayCritical_non_delay_critical = 1 +} e_Dynamic5QIDescriptor__delayCritical; + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* Dynamic5QIDescriptor */ +typedef struct Dynamic5QIDescriptor { + long qoSPriorityLevel; + PacketDelayBudget_t packetDelayBudget; + PacketErrorRate_t packetErrorRate; + long *fiveQI; /* OPTIONAL */ + long *delayCritical; /* OPTIONAL */ + AveragingWindow_t *averagingWindow; /* OPTIONAL */ + MaxDataBurstVolume_t *maxDataBurstVolume; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Dynamic5QIDescriptor_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_delayCritical_6; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_Dynamic5QIDescriptor; +extern asn_SEQUENCE_specifics_t asn_SPC_Dynamic5QIDescriptor_specs_1; +extern asn_TYPE_member_t asn_MBR_Dynamic5QIDescriptor_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Dynamic5QIDescriptor_H_ */ +#include diff --git a/src/du_app/F1AP/asn/EUTRA-Cell-ID.c b/src/du_app/F1AP/asn/EUTRA-Cell-ID.c new file mode 100755 index 000000000..32fa72c95 --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-Cell-ID.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-Cell-ID.h" + +int +EUTRA_Cell_ID_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_EUTRA_Cell_ID_constr_1 CC_NOTUSED = { + { 0, 0 }, + 28 /* (SIZE(28..28)) */}; +asn_per_constraints_t asn_PER_type_EUTRA_Cell_ID_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_EUTRA_Cell_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_Cell_ID = { + "EUTRA-Cell-ID", + "EUTRA-Cell-ID", + &asn_OP_BIT_STRING, + asn_DEF_EUTRA_Cell_ID_tags_1, + sizeof(asn_DEF_EUTRA_Cell_ID_tags_1) + /sizeof(asn_DEF_EUTRA_Cell_ID_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_Cell_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_Cell_ID_tags_1) + /sizeof(asn_DEF_EUTRA_Cell_ID_tags_1[0]), /* 1 */ + { &asn_OER_type_EUTRA_Cell_ID_constr_1, &asn_PER_type_EUTRA_Cell_ID_constr_1, EUTRA_Cell_ID_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/EUTRA-Cell-ID.h b/src/du_app/F1AP/asn/EUTRA-Cell-ID.h new file mode 100755 index 000000000..f581abe40 --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-Cell-ID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_Cell_ID_H_ +#define _EUTRA_Cell_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EUTRA-Cell-ID */ +typedef BIT_STRING_t EUTRA_Cell_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EUTRA_Cell_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_Cell_ID; +asn_struct_free_f EUTRA_Cell_ID_free; +asn_struct_print_f EUTRA_Cell_ID_print; +asn_constr_check_f EUTRA_Cell_ID_constraint; +ber_type_decoder_f EUTRA_Cell_ID_decode_ber; +der_type_encoder_f EUTRA_Cell_ID_encode_der; +xer_type_decoder_f EUTRA_Cell_ID_decode_xer; +xer_type_encoder_f EUTRA_Cell_ID_encode_xer; +oer_type_decoder_f EUTRA_Cell_ID_decode_oer; +oer_type_encoder_f EUTRA_Cell_ID_encode_oer; +per_type_decoder_f EUTRA_Cell_ID_decode_uper; +per_type_encoder_f EUTRA_Cell_ID_encode_uper; +per_type_decoder_f EUTRA_Cell_ID_decode_aper; +per_type_encoder_f EUTRA_Cell_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_Cell_ID_H_ */ +#include diff --git a/src/du_app/F1AP/asn/EUTRA-Coex-FDD-Info.c b/src/du_app/F1AP/asn/EUTRA-Coex-FDD-Info.c new file mode 100755 index 000000000..dd7df8341 --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-Coex-FDD-Info.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-Coex-FDD-Info.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_EUTRA_Coex_FDD_Info_1[] = { + { ATF_POINTER, 1, offsetof(struct EUTRA_Coex_FDD_Info, uL_EARFCN), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ExtendedEARFCN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uL-EARFCN" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_Coex_FDD_Info, dL_EARFCN), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ExtendedEARFCN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dL-EARFCN" + }, + { ATF_POINTER, 1, offsetof(struct EUTRA_Coex_FDD_Info, uL_Transmission_Bandwidth), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_Transmission_Bandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uL-Transmission-Bandwidth" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_Coex_FDD_Info, dL_Transmission_Bandwidth), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_Transmission_Bandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dL-Transmission-Bandwidth" + }, + { ATF_POINTER, 1, offsetof(struct EUTRA_Coex_FDD_Info, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P42, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_EUTRA_Coex_FDD_Info_oms_1[] = { 0, 2, 4 }; +static const ber_tlv_tag_t asn_DEF_EUTRA_Coex_FDD_Info_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EUTRA_Coex_FDD_Info_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uL-EARFCN */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dL-EARFCN */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uL-Transmission-Bandwidth */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* dL-Transmission-Bandwidth */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EUTRA_Coex_FDD_Info_specs_1 = { + sizeof(struct EUTRA_Coex_FDD_Info), + offsetof(struct EUTRA_Coex_FDD_Info, _asn_ctx), + asn_MAP_EUTRA_Coex_FDD_Info_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_EUTRA_Coex_FDD_Info_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_Coex_FDD_Info = { + "EUTRA-Coex-FDD-Info", + "EUTRA-Coex-FDD-Info", + &asn_OP_SEQUENCE, + asn_DEF_EUTRA_Coex_FDD_Info_tags_1, + sizeof(asn_DEF_EUTRA_Coex_FDD_Info_tags_1) + /sizeof(asn_DEF_EUTRA_Coex_FDD_Info_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_Coex_FDD_Info_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_Coex_FDD_Info_tags_1) + /sizeof(asn_DEF_EUTRA_Coex_FDD_Info_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRA_Coex_FDD_Info_1, + 5, /* Elements count */ + &asn_SPC_EUTRA_Coex_FDD_Info_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/EUTRA-Coex-FDD-Info.h b/src/du_app/F1AP/asn/EUTRA-Coex-FDD-Info.h new file mode 100755 index 000000000..980d7d304 --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-Coex-FDD-Info.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_Coex_FDD_Info_H_ +#define _EUTRA_Coex_FDD_Info_H_ + + +#include + +/* Including external dependencies */ +#include "ExtendedEARFCN.h" +#include "EUTRA-Transmission-Bandwidth.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* EUTRA-Coex-FDD-Info */ +typedef struct EUTRA_Coex_FDD_Info { + ExtendedEARFCN_t *uL_EARFCN; /* OPTIONAL */ + ExtendedEARFCN_t dL_EARFCN; + EUTRA_Transmission_Bandwidth_t *uL_Transmission_Bandwidth; /* OPTIONAL */ + EUTRA_Transmission_Bandwidth_t dL_Transmission_Bandwidth; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_Coex_FDD_Info_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_Coex_FDD_Info; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRA_Coex_FDD_Info_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_Coex_FDD_Info_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_Coex_FDD_Info_H_ */ +#include diff --git a/src/du_app/F1AP/asn/EUTRA-Coex-Mode-Info.c b/src/du_app/F1AP/asn/EUTRA-Coex-Mode-Info.c new file mode 100755 index 000000000..aaffaefe1 --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-Coex-Mode-Info.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-Coex-Mode-Info.h" + +#include "EUTRA-Coex-FDD-Info.h" +#include "EUTRA-Coex-TDD-Info.h" +static asn_oer_constraints_t asn_OER_type_EUTRA_Coex_Mode_Info_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EUTRA_Coex_Mode_Info_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_EUTRA_Coex_Mode_Info_1[] = { + { ATF_POINTER, 0, offsetof(struct EUTRA_Coex_Mode_Info, choice.fDD), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_Coex_FDD_Info, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fDD" + }, + { ATF_POINTER, 0, offsetof(struct EUTRA_Coex_Mode_Info, choice.tDD), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_Coex_TDD_Info, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tDD" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_EUTRA_Coex_Mode_Info_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fDD */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* tDD */ +}; +asn_CHOICE_specifics_t asn_SPC_EUTRA_Coex_Mode_Info_specs_1 = { + sizeof(struct EUTRA_Coex_Mode_Info), + offsetof(struct EUTRA_Coex_Mode_Info, _asn_ctx), + offsetof(struct EUTRA_Coex_Mode_Info, present), + sizeof(((struct EUTRA_Coex_Mode_Info *)0)->present), + asn_MAP_EUTRA_Coex_Mode_Info_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_Coex_Mode_Info = { + "EUTRA-Coex-Mode-Info", + "EUTRA-Coex-Mode-Info", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_EUTRA_Coex_Mode_Info_constr_1, &asn_PER_type_EUTRA_Coex_Mode_Info_constr_1, CHOICE_constraint }, + asn_MBR_EUTRA_Coex_Mode_Info_1, + 2, /* Elements count */ + &asn_SPC_EUTRA_Coex_Mode_Info_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/EUTRA-Coex-Mode-Info.h b/src/du_app/F1AP/asn/EUTRA-Coex-Mode-Info.h new file mode 100755 index 000000000..0ae5ee221 --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-Coex-Mode-Info.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_Coex_Mode_Info_H_ +#define _EUTRA_Coex_Mode_Info_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EUTRA_Coex_Mode_Info_PR { + EUTRA_Coex_Mode_Info_PR_NOTHING, /* No components present */ + EUTRA_Coex_Mode_Info_PR_fDD, + EUTRA_Coex_Mode_Info_PR_tDD + /* Extensions may appear below */ + +} EUTRA_Coex_Mode_Info_PR; + +/* Forward declarations */ +struct EUTRA_Coex_FDD_Info; +struct EUTRA_Coex_TDD_Info; + +/* EUTRA-Coex-Mode-Info */ +typedef struct EUTRA_Coex_Mode_Info { + EUTRA_Coex_Mode_Info_PR present; + union EUTRA_Coex_Mode_Info_u { + struct EUTRA_Coex_FDD_Info *fDD; + struct EUTRA_Coex_TDD_Info *tDD; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_Coex_Mode_Info_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_Coex_Mode_Info; +extern asn_CHOICE_specifics_t asn_SPC_EUTRA_Coex_Mode_Info_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_Coex_Mode_Info_1[2]; +extern asn_per_constraints_t asn_PER_type_EUTRA_Coex_Mode_Info_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_Coex_Mode_Info_H_ */ +#include diff --git a/src/du_app/F1AP/asn/EUTRA-Coex-TDD-Info.c b/src/du_app/F1AP/asn/EUTRA-Coex-TDD-Info.c new file mode 100755 index 000000000..76cf7a82f --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-Coex-TDD-Info.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-Coex-TDD-Info.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_EUTRA_Coex_TDD_Info_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_Coex_TDD_Info, eARFCN), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ExtendedEARFCN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eARFCN" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_Coex_TDD_Info, transmission_Bandwidth), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_Transmission_Bandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transmission-Bandwidth" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_Coex_TDD_Info, subframeAssignment), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_SubframeAssignment, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subframeAssignment" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_Coex_TDD_Info, specialSubframe_Info), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_SpecialSubframe_Info, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "specialSubframe-Info" + }, + { ATF_POINTER, 1, offsetof(struct EUTRA_Coex_TDD_Info, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P43, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_EUTRA_Coex_TDD_Info_oms_1[] = { 4 }; +static const ber_tlv_tag_t asn_DEF_EUTRA_Coex_TDD_Info_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EUTRA_Coex_TDD_Info_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eARFCN */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transmission-Bandwidth */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* subframeAssignment */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* specialSubframe-Info */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EUTRA_Coex_TDD_Info_specs_1 = { + sizeof(struct EUTRA_Coex_TDD_Info), + offsetof(struct EUTRA_Coex_TDD_Info, _asn_ctx), + asn_MAP_EUTRA_Coex_TDD_Info_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_EUTRA_Coex_TDD_Info_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_Coex_TDD_Info = { + "EUTRA-Coex-TDD-Info", + "EUTRA-Coex-TDD-Info", + &asn_OP_SEQUENCE, + asn_DEF_EUTRA_Coex_TDD_Info_tags_1, + sizeof(asn_DEF_EUTRA_Coex_TDD_Info_tags_1) + /sizeof(asn_DEF_EUTRA_Coex_TDD_Info_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_Coex_TDD_Info_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_Coex_TDD_Info_tags_1) + /sizeof(asn_DEF_EUTRA_Coex_TDD_Info_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRA_Coex_TDD_Info_1, + 5, /* Elements count */ + &asn_SPC_EUTRA_Coex_TDD_Info_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/EUTRA-Coex-TDD-Info.h b/src/du_app/F1AP/asn/EUTRA-Coex-TDD-Info.h new file mode 100755 index 000000000..7167eb7a1 --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-Coex-TDD-Info.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_Coex_TDD_Info_H_ +#define _EUTRA_Coex_TDD_Info_H_ + + +#include + +/* Including external dependencies */ +#include "ExtendedEARFCN.h" +#include "EUTRA-Transmission-Bandwidth.h" +#include "EUTRA-SubframeAssignment.h" +#include "EUTRA-SpecialSubframe-Info.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* EUTRA-Coex-TDD-Info */ +typedef struct EUTRA_Coex_TDD_Info { + ExtendedEARFCN_t eARFCN; + EUTRA_Transmission_Bandwidth_t transmission_Bandwidth; + EUTRA_SubframeAssignment_t subframeAssignment; + EUTRA_SpecialSubframe_Info_t specialSubframe_Info; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_Coex_TDD_Info_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_Coex_TDD_Info; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRA_Coex_TDD_Info_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_Coex_TDD_Info_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_Coex_TDD_Info_H_ */ +#include diff --git a/src/du_app/F1AP/asn/EUTRA-CyclicPrefixDL.c b/src/du_app/F1AP/asn/EUTRA-CyclicPrefixDL.c new file mode 100755 index 000000000..113b54fe0 --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-CyclicPrefixDL.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-CyclicPrefixDL.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EUTRA_CyclicPrefixDL_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EUTRA_CyclicPrefixDL_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EUTRA_CyclicPrefixDL_value2enum_1[] = { + { 0, 6, "normal" }, + { 1, 8, "extended" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_EUTRA_CyclicPrefixDL_enum2value_1[] = { + 1, /* extended(1) */ + 0 /* normal(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_EUTRA_CyclicPrefixDL_specs_1 = { + asn_MAP_EUTRA_CyclicPrefixDL_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EUTRA_CyclicPrefixDL_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EUTRA_CyclicPrefixDL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_CyclicPrefixDL = { + "EUTRA-CyclicPrefixDL", + "EUTRA-CyclicPrefixDL", + &asn_OP_NativeEnumerated, + asn_DEF_EUTRA_CyclicPrefixDL_tags_1, + sizeof(asn_DEF_EUTRA_CyclicPrefixDL_tags_1) + /sizeof(asn_DEF_EUTRA_CyclicPrefixDL_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_CyclicPrefixDL_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_CyclicPrefixDL_tags_1) + /sizeof(asn_DEF_EUTRA_CyclicPrefixDL_tags_1[0]), /* 1 */ + { &asn_OER_type_EUTRA_CyclicPrefixDL_constr_1, &asn_PER_type_EUTRA_CyclicPrefixDL_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EUTRA_CyclicPrefixDL_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/EUTRA-CyclicPrefixDL.h b/src/du_app/F1AP/asn/EUTRA-CyclicPrefixDL.h new file mode 100755 index 000000000..99de9628d --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-CyclicPrefixDL.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_CyclicPrefixDL_H_ +#define _EUTRA_CyclicPrefixDL_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EUTRA_CyclicPrefixDL { + EUTRA_CyclicPrefixDL_normal = 0, + EUTRA_CyclicPrefixDL_extended = 1 + /* + * Enumeration is extensible + */ +} e_EUTRA_CyclicPrefixDL; + +/* EUTRA-CyclicPrefixDL */ +typedef long EUTRA_CyclicPrefixDL_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EUTRA_CyclicPrefixDL_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_CyclicPrefixDL; +extern const asn_INTEGER_specifics_t asn_SPC_EUTRA_CyclicPrefixDL_specs_1; +asn_struct_free_f EUTRA_CyclicPrefixDL_free; +asn_struct_print_f EUTRA_CyclicPrefixDL_print; +asn_constr_check_f EUTRA_CyclicPrefixDL_constraint; +ber_type_decoder_f EUTRA_CyclicPrefixDL_decode_ber; +der_type_encoder_f EUTRA_CyclicPrefixDL_encode_der; +xer_type_decoder_f EUTRA_CyclicPrefixDL_decode_xer; +xer_type_encoder_f EUTRA_CyclicPrefixDL_encode_xer; +oer_type_decoder_f EUTRA_CyclicPrefixDL_decode_oer; +oer_type_encoder_f EUTRA_CyclicPrefixDL_encode_oer; +per_type_decoder_f EUTRA_CyclicPrefixDL_decode_uper; +per_type_encoder_f EUTRA_CyclicPrefixDL_encode_uper; +per_type_decoder_f EUTRA_CyclicPrefixDL_decode_aper; +per_type_encoder_f EUTRA_CyclicPrefixDL_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_CyclicPrefixDL_H_ */ +#include diff --git a/src/du_app/F1AP/asn/EUTRA-CyclicPrefixUL.c b/src/du_app/F1AP/asn/EUTRA-CyclicPrefixUL.c new file mode 100755 index 000000000..93c11e8e5 --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-CyclicPrefixUL.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-CyclicPrefixUL.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EUTRA_CyclicPrefixUL_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EUTRA_CyclicPrefixUL_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EUTRA_CyclicPrefixUL_value2enum_1[] = { + { 0, 6, "normal" }, + { 1, 8, "extended" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_EUTRA_CyclicPrefixUL_enum2value_1[] = { + 1, /* extended(1) */ + 0 /* normal(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_EUTRA_CyclicPrefixUL_specs_1 = { + asn_MAP_EUTRA_CyclicPrefixUL_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EUTRA_CyclicPrefixUL_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EUTRA_CyclicPrefixUL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_CyclicPrefixUL = { + "EUTRA-CyclicPrefixUL", + "EUTRA-CyclicPrefixUL", + &asn_OP_NativeEnumerated, + asn_DEF_EUTRA_CyclicPrefixUL_tags_1, + sizeof(asn_DEF_EUTRA_CyclicPrefixUL_tags_1) + /sizeof(asn_DEF_EUTRA_CyclicPrefixUL_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_CyclicPrefixUL_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_CyclicPrefixUL_tags_1) + /sizeof(asn_DEF_EUTRA_CyclicPrefixUL_tags_1[0]), /* 1 */ + { &asn_OER_type_EUTRA_CyclicPrefixUL_constr_1, &asn_PER_type_EUTRA_CyclicPrefixUL_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EUTRA_CyclicPrefixUL_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/EUTRA-CyclicPrefixUL.h b/src/du_app/F1AP/asn/EUTRA-CyclicPrefixUL.h new file mode 100755 index 000000000..653b85c6f --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-CyclicPrefixUL.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_CyclicPrefixUL_H_ +#define _EUTRA_CyclicPrefixUL_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EUTRA_CyclicPrefixUL { + EUTRA_CyclicPrefixUL_normal = 0, + EUTRA_CyclicPrefixUL_extended = 1 + /* + * Enumeration is extensible + */ +} e_EUTRA_CyclicPrefixUL; + +/* EUTRA-CyclicPrefixUL */ +typedef long EUTRA_CyclicPrefixUL_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EUTRA_CyclicPrefixUL_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_CyclicPrefixUL; +extern const asn_INTEGER_specifics_t asn_SPC_EUTRA_CyclicPrefixUL_specs_1; +asn_struct_free_f EUTRA_CyclicPrefixUL_free; +asn_struct_print_f EUTRA_CyclicPrefixUL_print; +asn_constr_check_f EUTRA_CyclicPrefixUL_constraint; +ber_type_decoder_f EUTRA_CyclicPrefixUL_decode_ber; +der_type_encoder_f EUTRA_CyclicPrefixUL_encode_der; +xer_type_decoder_f EUTRA_CyclicPrefixUL_decode_xer; +xer_type_encoder_f EUTRA_CyclicPrefixUL_encode_xer; +oer_type_decoder_f EUTRA_CyclicPrefixUL_decode_oer; +oer_type_encoder_f EUTRA_CyclicPrefixUL_encode_oer; +per_type_decoder_f EUTRA_CyclicPrefixUL_decode_uper; +per_type_encoder_f EUTRA_CyclicPrefixUL_encode_uper; +per_type_decoder_f EUTRA_CyclicPrefixUL_decode_aper; +per_type_encoder_f EUTRA_CyclicPrefixUL_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_CyclicPrefixUL_H_ */ +#include diff --git a/src/du_app/F1AP/asn/EUTRA-FDD-Info.c b/src/du_app/F1AP/asn/EUTRA-FDD-Info.c new file mode 100755 index 000000000..231efb46c --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-FDD-Info.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-FDD-Info.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_EUTRA_FDD_Info_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_FDD_Info, uL_offsetToPointA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OffsetToPointA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uL-offsetToPointA" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_FDD_Info, dL_offsetToPointA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OffsetToPointA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dL-offsetToPointA" + }, + { ATF_POINTER, 1, offsetof(struct EUTRA_FDD_Info, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P47, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_EUTRA_FDD_Info_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_EUTRA_FDD_Info_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EUTRA_FDD_Info_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uL-offsetToPointA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dL-offsetToPointA */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EUTRA_FDD_Info_specs_1 = { + sizeof(struct EUTRA_FDD_Info), + offsetof(struct EUTRA_FDD_Info, _asn_ctx), + asn_MAP_EUTRA_FDD_Info_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_EUTRA_FDD_Info_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_FDD_Info = { + "EUTRA-FDD-Info", + "EUTRA-FDD-Info", + &asn_OP_SEQUENCE, + asn_DEF_EUTRA_FDD_Info_tags_1, + sizeof(asn_DEF_EUTRA_FDD_Info_tags_1) + /sizeof(asn_DEF_EUTRA_FDD_Info_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_FDD_Info_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_FDD_Info_tags_1) + /sizeof(asn_DEF_EUTRA_FDD_Info_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRA_FDD_Info_1, + 3, /* Elements count */ + &asn_SPC_EUTRA_FDD_Info_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/EUTRA-FDD-Info.h b/src/du_app/F1AP/asn/EUTRA-FDD-Info.h new file mode 100755 index 000000000..5425fa0c5 --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-FDD-Info.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_FDD_Info_H_ +#define _EUTRA_FDD_Info_H_ + + +#include + +/* Including external dependencies */ +#include "OffsetToPointA.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* EUTRA-FDD-Info */ +typedef struct EUTRA_FDD_Info { + OffsetToPointA_t uL_offsetToPointA; + OffsetToPointA_t dL_offsetToPointA; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_FDD_Info_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_FDD_Info; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRA_FDD_Info_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_FDD_Info_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_FDD_Info_H_ */ +#include diff --git a/src/du_app/F1AP/asn/EUTRA-Mode-Info.c b/src/du_app/F1AP/asn/EUTRA-Mode-Info.c new file mode 100755 index 000000000..dff5a4a02 --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-Mode-Info.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-Mode-Info.h" + +#include "EUTRA-FDD-Info.h" +#include "EUTRA-TDD-Info.h" +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_EUTRA_Mode_Info_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EUTRA_Mode_Info_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_EUTRA_Mode_Info_1[] = { + { ATF_POINTER, 0, offsetof(struct EUTRA_Mode_Info, choice.eUTRAFDD), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_FDD_Info, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRAFDD" + }, + { ATF_POINTER, 0, offsetof(struct EUTRA_Mode_Info, choice.eUTRATDD), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_TDD_Info, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRATDD" + }, + { ATF_POINTER, 0, offsetof(struct EUTRA_Mode_Info, choice.choice_extension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_SingleContainer_4590P62, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-extension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_EUTRA_Mode_Info_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eUTRAFDD */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eUTRATDD */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-extension */ +}; +asn_CHOICE_specifics_t asn_SPC_EUTRA_Mode_Info_specs_1 = { + sizeof(struct EUTRA_Mode_Info), + offsetof(struct EUTRA_Mode_Info, _asn_ctx), + offsetof(struct EUTRA_Mode_Info, present), + sizeof(((struct EUTRA_Mode_Info *)0)->present), + asn_MAP_EUTRA_Mode_Info_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_Mode_Info = { + "EUTRA-Mode-Info", + "EUTRA-Mode-Info", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_EUTRA_Mode_Info_constr_1, &asn_PER_type_EUTRA_Mode_Info_constr_1, CHOICE_constraint }, + asn_MBR_EUTRA_Mode_Info_1, + 3, /* Elements count */ + &asn_SPC_EUTRA_Mode_Info_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/EUTRA-Mode-Info.h b/src/du_app/F1AP/asn/EUTRA-Mode-Info.h new file mode 100755 index 000000000..bd16e9e2e --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-Mode-Info.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_Mode_Info_H_ +#define _EUTRA_Mode_Info_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EUTRA_Mode_Info_PR { + EUTRA_Mode_Info_PR_NOTHING, /* No components present */ + EUTRA_Mode_Info_PR_eUTRAFDD, + EUTRA_Mode_Info_PR_eUTRATDD, + EUTRA_Mode_Info_PR_choice_extension +} EUTRA_Mode_Info_PR; + +/* Forward declarations */ +struct EUTRA_FDD_Info; +struct EUTRA_TDD_Info; +struct ProtocolIE_SingleContainer; + +/* EUTRA-Mode-Info */ +typedef struct EUTRA_Mode_Info { + EUTRA_Mode_Info_PR present; + union EUTRA_Mode_Info_u { + struct EUTRA_FDD_Info *eUTRAFDD; + struct EUTRA_TDD_Info *eUTRATDD; + struct ProtocolIE_SingleContainer *choice_extension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_Mode_Info_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_Mode_Info; +extern asn_CHOICE_specifics_t asn_SPC_EUTRA_Mode_Info_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_Mode_Info_1[3]; +extern asn_per_constraints_t asn_PER_type_EUTRA_Mode_Info_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_Mode_Info_H_ */ +#include diff --git a/src/du_app/F1AP/asn/EUTRA-NR-CellResourceCoordinationReq-Container.c b/src/du_app/F1AP/asn/EUTRA-NR-CellResourceCoordinationReq-Container.c new file mode 100755 index 000000000..862f6221a --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-NR-CellResourceCoordinationReq-Container.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-NR-CellResourceCoordinationReq-Container.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_EUTRA_NR_CellResourceCoordinationReq_Container_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_NR_CellResourceCoordinationReq_Container = { + "EUTRA-NR-CellResourceCoordinationReq-Container", + "EUTRA-NR-CellResourceCoordinationReq-Container", + &asn_OP_OCTET_STRING, + asn_DEF_EUTRA_NR_CellResourceCoordinationReq_Container_tags_1, + sizeof(asn_DEF_EUTRA_NR_CellResourceCoordinationReq_Container_tags_1) + /sizeof(asn_DEF_EUTRA_NR_CellResourceCoordinationReq_Container_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_NR_CellResourceCoordinationReq_Container_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_NR_CellResourceCoordinationReq_Container_tags_1) + /sizeof(asn_DEF_EUTRA_NR_CellResourceCoordinationReq_Container_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/EUTRA-NR-CellResourceCoordinationReq-Container.h b/src/du_app/F1AP/asn/EUTRA-NR-CellResourceCoordinationReq-Container.h new file mode 100755 index 000000000..581fc48d8 --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-NR-CellResourceCoordinationReq-Container.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_NR_CellResourceCoordinationReq_Container_H_ +#define _EUTRA_NR_CellResourceCoordinationReq_Container_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EUTRA-NR-CellResourceCoordinationReq-Container */ +typedef OCTET_STRING_t EUTRA_NR_CellResourceCoordinationReq_Container_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_NR_CellResourceCoordinationReq_Container; +asn_struct_free_f EUTRA_NR_CellResourceCoordinationReq_Container_free; +asn_struct_print_f EUTRA_NR_CellResourceCoordinationReq_Container_print; +asn_constr_check_f EUTRA_NR_CellResourceCoordinationReq_Container_constraint; +ber_type_decoder_f EUTRA_NR_CellResourceCoordinationReq_Container_decode_ber; +der_type_encoder_f EUTRA_NR_CellResourceCoordinationReq_Container_encode_der; +xer_type_decoder_f EUTRA_NR_CellResourceCoordinationReq_Container_decode_xer; +xer_type_encoder_f EUTRA_NR_CellResourceCoordinationReq_Container_encode_xer; +oer_type_decoder_f EUTRA_NR_CellResourceCoordinationReq_Container_decode_oer; +oer_type_encoder_f EUTRA_NR_CellResourceCoordinationReq_Container_encode_oer; +per_type_decoder_f EUTRA_NR_CellResourceCoordinationReq_Container_decode_uper; +per_type_encoder_f EUTRA_NR_CellResourceCoordinationReq_Container_encode_uper; +per_type_decoder_f EUTRA_NR_CellResourceCoordinationReq_Container_decode_aper; +per_type_encoder_f EUTRA_NR_CellResourceCoordinationReq_Container_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_NR_CellResourceCoordinationReq_Container_H_ */ +#include diff --git a/src/du_app/F1AP/asn/EUTRA-NR-CellResourceCoordinationReqAck-Container.c b/src/du_app/F1AP/asn/EUTRA-NR-CellResourceCoordinationReqAck-Container.c new file mode 100755 index 000000000..23e55f82e --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-NR-CellResourceCoordinationReqAck-Container.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-NR-CellResourceCoordinationReqAck-Container.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_EUTRA_NR_CellResourceCoordinationReqAck_Container_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_NR_CellResourceCoordinationReqAck_Container = { + "EUTRA-NR-CellResourceCoordinationReqAck-Container", + "EUTRA-NR-CellResourceCoordinationReqAck-Container", + &asn_OP_OCTET_STRING, + asn_DEF_EUTRA_NR_CellResourceCoordinationReqAck_Container_tags_1, + sizeof(asn_DEF_EUTRA_NR_CellResourceCoordinationReqAck_Container_tags_1) + /sizeof(asn_DEF_EUTRA_NR_CellResourceCoordinationReqAck_Container_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_NR_CellResourceCoordinationReqAck_Container_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_NR_CellResourceCoordinationReqAck_Container_tags_1) + /sizeof(asn_DEF_EUTRA_NR_CellResourceCoordinationReqAck_Container_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/EUTRA-NR-CellResourceCoordinationReqAck-Container.h b/src/du_app/F1AP/asn/EUTRA-NR-CellResourceCoordinationReqAck-Container.h new file mode 100755 index 000000000..992d553d8 --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-NR-CellResourceCoordinationReqAck-Container.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_NR_CellResourceCoordinationReqAck_Container_H_ +#define _EUTRA_NR_CellResourceCoordinationReqAck_Container_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EUTRA-NR-CellResourceCoordinationReqAck-Container */ +typedef OCTET_STRING_t EUTRA_NR_CellResourceCoordinationReqAck_Container_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_NR_CellResourceCoordinationReqAck_Container; +asn_struct_free_f EUTRA_NR_CellResourceCoordinationReqAck_Container_free; +asn_struct_print_f EUTRA_NR_CellResourceCoordinationReqAck_Container_print; +asn_constr_check_f EUTRA_NR_CellResourceCoordinationReqAck_Container_constraint; +ber_type_decoder_f EUTRA_NR_CellResourceCoordinationReqAck_Container_decode_ber; +der_type_encoder_f EUTRA_NR_CellResourceCoordinationReqAck_Container_encode_der; +xer_type_decoder_f EUTRA_NR_CellResourceCoordinationReqAck_Container_decode_xer; +xer_type_encoder_f EUTRA_NR_CellResourceCoordinationReqAck_Container_encode_xer; +oer_type_decoder_f EUTRA_NR_CellResourceCoordinationReqAck_Container_decode_oer; +oer_type_encoder_f EUTRA_NR_CellResourceCoordinationReqAck_Container_encode_oer; +per_type_decoder_f EUTRA_NR_CellResourceCoordinationReqAck_Container_decode_uper; +per_type_encoder_f EUTRA_NR_CellResourceCoordinationReqAck_Container_encode_uper; +per_type_decoder_f EUTRA_NR_CellResourceCoordinationReqAck_Container_decode_aper; +per_type_encoder_f EUTRA_NR_CellResourceCoordinationReqAck_Container_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_NR_CellResourceCoordinationReqAck_Container_H_ */ +#include diff --git a/src/du_app/F1AP/asn/EUTRA-PRACH-Configuration.c b/src/du_app/F1AP/asn/EUTRA-PRACH-Configuration.c new file mode 100755 index 000000000..2208b4fe5 --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-PRACH-Configuration.c @@ -0,0 +1,235 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-PRACH-Configuration.h" + +#include "ProtocolExtensionContainer.h" +static int +memb_rootSequenceIndex_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 <= 837)) { + /* 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_zeroCorrelationIndex_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 <= 15)) { + /* 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_prach_FreqOffset_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 <= 94)) { + /* 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_prach_ConfigIndex_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 <= 63)) { + /* Constraint 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_rootSequenceIndex_constr_2 CC_NOTUSED = { + { 2, 1 } /* (0..837) */, + -1}; +static asn_per_constraints_t asn_PER_memb_rootSequenceIndex_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 0, 837 } /* (0..837) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_zeroCorrelationIndex_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_zeroCorrelationIndex_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_prach_FreqOffset_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..94) */, + -1}; +static asn_per_constraints_t asn_PER_memb_prach_FreqOffset_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 94 } /* (0..94) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_prach_ConfigIndex_constr_6 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +static asn_per_constraints_t asn_PER_memb_prach_ConfigIndex_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_EUTRA_PRACH_Configuration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_PRACH_Configuration, rootSequenceIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_rootSequenceIndex_constr_2, &asn_PER_memb_rootSequenceIndex_constr_2, memb_rootSequenceIndex_constraint_1 }, + 0, 0, /* No default value */ + "rootSequenceIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_PRACH_Configuration, zeroCorrelationIndex), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_zeroCorrelationIndex_constr_3, &asn_PER_memb_zeroCorrelationIndex_constr_3, memb_zeroCorrelationIndex_constraint_1 }, + 0, 0, /* No default value */ + "zeroCorrelationIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_PRACH_Configuration, highSpeedFlag), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "highSpeedFlag" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_PRACH_Configuration, prach_FreqOffset), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_prach_FreqOffset_constr_5, &asn_PER_memb_prach_FreqOffset_constr_5, memb_prach_FreqOffset_constraint_1 }, + 0, 0, /* No default value */ + "prach-FreqOffset" + }, + { ATF_POINTER, 2, offsetof(struct EUTRA_PRACH_Configuration, prach_ConfigIndex), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_prach_ConfigIndex_constr_6, &asn_PER_memb_prach_ConfigIndex_constr_6, memb_prach_ConfigIndex_constraint_1 }, + 0, 0, /* No default value */ + "prach-ConfigIndex" + }, + { ATF_POINTER, 1, offsetof(struct EUTRA_PRACH_Configuration, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P44, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_EUTRA_PRACH_Configuration_oms_1[] = { 4, 5 }; +static const ber_tlv_tag_t asn_DEF_EUTRA_PRACH_Configuration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EUTRA_PRACH_Configuration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rootSequenceIndex */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* zeroCorrelationIndex */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* highSpeedFlag */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* prach-FreqOffset */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* prach-ConfigIndex */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EUTRA_PRACH_Configuration_specs_1 = { + sizeof(struct EUTRA_PRACH_Configuration), + offsetof(struct EUTRA_PRACH_Configuration, _asn_ctx), + asn_MAP_EUTRA_PRACH_Configuration_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_EUTRA_PRACH_Configuration_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_PRACH_Configuration = { + "EUTRA-PRACH-Configuration", + "EUTRA-PRACH-Configuration", + &asn_OP_SEQUENCE, + asn_DEF_EUTRA_PRACH_Configuration_tags_1, + sizeof(asn_DEF_EUTRA_PRACH_Configuration_tags_1) + /sizeof(asn_DEF_EUTRA_PRACH_Configuration_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_PRACH_Configuration_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_PRACH_Configuration_tags_1) + /sizeof(asn_DEF_EUTRA_PRACH_Configuration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRA_PRACH_Configuration_1, + 6, /* Elements count */ + &asn_SPC_EUTRA_PRACH_Configuration_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/EUTRA-PRACH-Configuration.h b/src/du_app/F1AP/asn/EUTRA-PRACH-Configuration.h new file mode 100755 index 000000000..a8c42316b --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-PRACH-Configuration.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_PRACH_Configuration_H_ +#define _EUTRA_PRACH_Configuration_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* EUTRA-PRACH-Configuration */ +typedef struct EUTRA_PRACH_Configuration { + long rootSequenceIndex; + long zeroCorrelationIndex; + BOOLEAN_t highSpeedFlag; + long prach_FreqOffset; + long *prach_ConfigIndex; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_PRACH_Configuration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_PRACH_Configuration; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRA_PRACH_Configuration_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_PRACH_Configuration_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_PRACH_Configuration_H_ */ +#include diff --git a/src/du_app/F1AP/asn/EUTRA-SpecialSubframe-Info.c b/src/du_app/F1AP/asn/EUTRA-SpecialSubframe-Info.c new file mode 100755 index 000000000..7de726084 --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-SpecialSubframe-Info.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-SpecialSubframe-Info.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_EUTRA_SpecialSubframe_Info_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_SpecialSubframe_Info, specialSubframePatterns), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_SpecialSubframePatterns, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "specialSubframePatterns" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_SpecialSubframe_Info, cyclicPrefixDL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_CyclicPrefixDL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cyclicPrefixDL" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_SpecialSubframe_Info, cyclicPrefixUL), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_CyclicPrefixUL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cyclicPrefixUL" + }, + { ATF_POINTER, 1, offsetof(struct EUTRA_SpecialSubframe_Info, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P45, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_EUTRA_SpecialSubframe_Info_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_EUTRA_SpecialSubframe_Info_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EUTRA_SpecialSubframe_Info_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* specialSubframePatterns */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cyclicPrefixDL */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* cyclicPrefixUL */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EUTRA_SpecialSubframe_Info_specs_1 = { + sizeof(struct EUTRA_SpecialSubframe_Info), + offsetof(struct EUTRA_SpecialSubframe_Info, _asn_ctx), + asn_MAP_EUTRA_SpecialSubframe_Info_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_EUTRA_SpecialSubframe_Info_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_SpecialSubframe_Info = { + "EUTRA-SpecialSubframe-Info", + "EUTRA-SpecialSubframe-Info", + &asn_OP_SEQUENCE, + asn_DEF_EUTRA_SpecialSubframe_Info_tags_1, + sizeof(asn_DEF_EUTRA_SpecialSubframe_Info_tags_1) + /sizeof(asn_DEF_EUTRA_SpecialSubframe_Info_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_SpecialSubframe_Info_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_SpecialSubframe_Info_tags_1) + /sizeof(asn_DEF_EUTRA_SpecialSubframe_Info_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRA_SpecialSubframe_Info_1, + 4, /* Elements count */ + &asn_SPC_EUTRA_SpecialSubframe_Info_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/EUTRA-SpecialSubframe-Info.h b/src/du_app/F1AP/asn/EUTRA-SpecialSubframe-Info.h new file mode 100755 index 000000000..a2482f12f --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-SpecialSubframe-Info.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_SpecialSubframe_Info_H_ +#define _EUTRA_SpecialSubframe_Info_H_ + + +#include + +/* Including external dependencies */ +#include "EUTRA-SpecialSubframePatterns.h" +#include "EUTRA-CyclicPrefixDL.h" +#include "EUTRA-CyclicPrefixUL.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* EUTRA-SpecialSubframe-Info */ +typedef struct EUTRA_SpecialSubframe_Info { + EUTRA_SpecialSubframePatterns_t specialSubframePatterns; + EUTRA_CyclicPrefixDL_t cyclicPrefixDL; + EUTRA_CyclicPrefixUL_t cyclicPrefixUL; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_SpecialSubframe_Info_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_SpecialSubframe_Info; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRA_SpecialSubframe_Info_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_SpecialSubframe_Info_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_SpecialSubframe_Info_H_ */ +#include diff --git a/src/du_app/F1AP/asn/EUTRA-SpecialSubframePatterns.c b/src/du_app/F1AP/asn/EUTRA-SpecialSubframePatterns.c new file mode 100755 index 000000000..11c4f7957 --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-SpecialSubframePatterns.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-SpecialSubframePatterns.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EUTRA_SpecialSubframePatterns_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EUTRA_SpecialSubframePatterns_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 10 } /* (0..10,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EUTRA_SpecialSubframePatterns_value2enum_1[] = { + { 0, 4, "ssp0" }, + { 1, 4, "ssp1" }, + { 2, 4, "ssp2" }, + { 3, 4, "ssp3" }, + { 4, 4, "ssp4" }, + { 5, 4, "ssp5" }, + { 6, 4, "ssp6" }, + { 7, 4, "ssp7" }, + { 8, 4, "ssp8" }, + { 9, 4, "ssp9" }, + { 10, 5, "ssp10" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_EUTRA_SpecialSubframePatterns_enum2value_1[] = { + 0, /* ssp0(0) */ + 1, /* ssp1(1) */ + 10, /* ssp10(10) */ + 2, /* ssp2(2) */ + 3, /* ssp3(3) */ + 4, /* ssp4(4) */ + 5, /* ssp5(5) */ + 6, /* ssp6(6) */ + 7, /* ssp7(7) */ + 8, /* ssp8(8) */ + 9 /* ssp9(9) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_EUTRA_SpecialSubframePatterns_specs_1 = { + asn_MAP_EUTRA_SpecialSubframePatterns_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EUTRA_SpecialSubframePatterns_enum2value_1, /* N => "tag"; sorted by N */ + 11, /* Number of elements in the maps */ + 12, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EUTRA_SpecialSubframePatterns_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_SpecialSubframePatterns = { + "EUTRA-SpecialSubframePatterns", + "EUTRA-SpecialSubframePatterns", + &asn_OP_NativeEnumerated, + asn_DEF_EUTRA_SpecialSubframePatterns_tags_1, + sizeof(asn_DEF_EUTRA_SpecialSubframePatterns_tags_1) + /sizeof(asn_DEF_EUTRA_SpecialSubframePatterns_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_SpecialSubframePatterns_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_SpecialSubframePatterns_tags_1) + /sizeof(asn_DEF_EUTRA_SpecialSubframePatterns_tags_1[0]), /* 1 */ + { &asn_OER_type_EUTRA_SpecialSubframePatterns_constr_1, &asn_PER_type_EUTRA_SpecialSubframePatterns_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EUTRA_SpecialSubframePatterns_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/EUTRA-SpecialSubframePatterns.h b/src/du_app/F1AP/asn/EUTRA-SpecialSubframePatterns.h new file mode 100755 index 000000000..4e01634b1 --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-SpecialSubframePatterns.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_SpecialSubframePatterns_H_ +#define _EUTRA_SpecialSubframePatterns_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EUTRA_SpecialSubframePatterns { + EUTRA_SpecialSubframePatterns_ssp0 = 0, + EUTRA_SpecialSubframePatterns_ssp1 = 1, + EUTRA_SpecialSubframePatterns_ssp2 = 2, + EUTRA_SpecialSubframePatterns_ssp3 = 3, + EUTRA_SpecialSubframePatterns_ssp4 = 4, + EUTRA_SpecialSubframePatterns_ssp5 = 5, + EUTRA_SpecialSubframePatterns_ssp6 = 6, + EUTRA_SpecialSubframePatterns_ssp7 = 7, + EUTRA_SpecialSubframePatterns_ssp8 = 8, + EUTRA_SpecialSubframePatterns_ssp9 = 9, + EUTRA_SpecialSubframePatterns_ssp10 = 10 + /* + * Enumeration is extensible + */ +} e_EUTRA_SpecialSubframePatterns; + +/* EUTRA-SpecialSubframePatterns */ +typedef long EUTRA_SpecialSubframePatterns_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EUTRA_SpecialSubframePatterns_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_SpecialSubframePatterns; +extern const asn_INTEGER_specifics_t asn_SPC_EUTRA_SpecialSubframePatterns_specs_1; +asn_struct_free_f EUTRA_SpecialSubframePatterns_free; +asn_struct_print_f EUTRA_SpecialSubframePatterns_print; +asn_constr_check_f EUTRA_SpecialSubframePatterns_constraint; +ber_type_decoder_f EUTRA_SpecialSubframePatterns_decode_ber; +der_type_encoder_f EUTRA_SpecialSubframePatterns_encode_der; +xer_type_decoder_f EUTRA_SpecialSubframePatterns_decode_xer; +xer_type_encoder_f EUTRA_SpecialSubframePatterns_encode_xer; +oer_type_decoder_f EUTRA_SpecialSubframePatterns_decode_oer; +oer_type_encoder_f EUTRA_SpecialSubframePatterns_encode_oer; +per_type_decoder_f EUTRA_SpecialSubframePatterns_decode_uper; +per_type_encoder_f EUTRA_SpecialSubframePatterns_encode_uper; +per_type_decoder_f EUTRA_SpecialSubframePatterns_decode_aper; +per_type_encoder_f EUTRA_SpecialSubframePatterns_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_SpecialSubframePatterns_H_ */ +#include diff --git a/src/du_app/F1AP/asn/EUTRA-SubframeAssignment.c b/src/du_app/F1AP/asn/EUTRA-SubframeAssignment.c new file mode 100755 index 000000000..71d35ade0 --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-SubframeAssignment.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-SubframeAssignment.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EUTRA_SubframeAssignment_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EUTRA_SubframeAssignment_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_EUTRA_SubframeAssignment_value2enum_1[] = { + { 0, 3, "sa0" }, + { 1, 3, "sa1" }, + { 2, 3, "sa2" }, + { 3, 3, "sa3" }, + { 4, 3, "sa4" }, + { 5, 3, "sa5" }, + { 6, 3, "sa6" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_EUTRA_SubframeAssignment_enum2value_1[] = { + 0, /* sa0(0) */ + 1, /* sa1(1) */ + 2, /* sa2(2) */ + 3, /* sa3(3) */ + 4, /* sa4(4) */ + 5, /* sa5(5) */ + 6 /* sa6(6) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_EUTRA_SubframeAssignment_specs_1 = { + asn_MAP_EUTRA_SubframeAssignment_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EUTRA_SubframeAssignment_enum2value_1, /* N => "tag"; sorted by N */ + 7, /* Number of elements in the maps */ + 8, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EUTRA_SubframeAssignment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_SubframeAssignment = { + "EUTRA-SubframeAssignment", + "EUTRA-SubframeAssignment", + &asn_OP_NativeEnumerated, + asn_DEF_EUTRA_SubframeAssignment_tags_1, + sizeof(asn_DEF_EUTRA_SubframeAssignment_tags_1) + /sizeof(asn_DEF_EUTRA_SubframeAssignment_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_SubframeAssignment_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_SubframeAssignment_tags_1) + /sizeof(asn_DEF_EUTRA_SubframeAssignment_tags_1[0]), /* 1 */ + { &asn_OER_type_EUTRA_SubframeAssignment_constr_1, &asn_PER_type_EUTRA_SubframeAssignment_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EUTRA_SubframeAssignment_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/EUTRA-SubframeAssignment.h b/src/du_app/F1AP/asn/EUTRA-SubframeAssignment.h new file mode 100755 index 000000000..80bf30b69 --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-SubframeAssignment.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_SubframeAssignment_H_ +#define _EUTRA_SubframeAssignment_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EUTRA_SubframeAssignment { + EUTRA_SubframeAssignment_sa0 = 0, + EUTRA_SubframeAssignment_sa1 = 1, + EUTRA_SubframeAssignment_sa2 = 2, + EUTRA_SubframeAssignment_sa3 = 3, + EUTRA_SubframeAssignment_sa4 = 4, + EUTRA_SubframeAssignment_sa5 = 5, + EUTRA_SubframeAssignment_sa6 = 6 + /* + * Enumeration is extensible + */ +} e_EUTRA_SubframeAssignment; + +/* EUTRA-SubframeAssignment */ +typedef long EUTRA_SubframeAssignment_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EUTRA_SubframeAssignment_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_SubframeAssignment; +extern const asn_INTEGER_specifics_t asn_SPC_EUTRA_SubframeAssignment_specs_1; +asn_struct_free_f EUTRA_SubframeAssignment_free; +asn_struct_print_f EUTRA_SubframeAssignment_print; +asn_constr_check_f EUTRA_SubframeAssignment_constraint; +ber_type_decoder_f EUTRA_SubframeAssignment_decode_ber; +der_type_encoder_f EUTRA_SubframeAssignment_encode_der; +xer_type_decoder_f EUTRA_SubframeAssignment_decode_xer; +xer_type_encoder_f EUTRA_SubframeAssignment_encode_xer; +oer_type_decoder_f EUTRA_SubframeAssignment_decode_oer; +oer_type_encoder_f EUTRA_SubframeAssignment_encode_oer; +per_type_decoder_f EUTRA_SubframeAssignment_decode_uper; +per_type_encoder_f EUTRA_SubframeAssignment_encode_uper; +per_type_decoder_f EUTRA_SubframeAssignment_decode_aper; +per_type_encoder_f EUTRA_SubframeAssignment_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_SubframeAssignment_H_ */ +#include diff --git a/src/du_app/F1AP/asn/EUTRA-TDD-Info.c b/src/du_app/F1AP/asn/EUTRA-TDD-Info.c new file mode 100755 index 000000000..a58b618d6 --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-TDD-Info.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-TDD-Info.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_EUTRA_TDD_Info_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_TDD_Info, offsetToPointA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OffsetToPointA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offsetToPointA" + }, + { ATF_POINTER, 1, offsetof(struct EUTRA_TDD_Info, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P48, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_EUTRA_TDD_Info_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_EUTRA_TDD_Info_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EUTRA_TDD_Info_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* offsetToPointA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EUTRA_TDD_Info_specs_1 = { + sizeof(struct EUTRA_TDD_Info), + offsetof(struct EUTRA_TDD_Info, _asn_ctx), + asn_MAP_EUTRA_TDD_Info_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_EUTRA_TDD_Info_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_TDD_Info = { + "EUTRA-TDD-Info", + "EUTRA-TDD-Info", + &asn_OP_SEQUENCE, + asn_DEF_EUTRA_TDD_Info_tags_1, + sizeof(asn_DEF_EUTRA_TDD_Info_tags_1) + /sizeof(asn_DEF_EUTRA_TDD_Info_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_TDD_Info_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_TDD_Info_tags_1) + /sizeof(asn_DEF_EUTRA_TDD_Info_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRA_TDD_Info_1, + 2, /* Elements count */ + &asn_SPC_EUTRA_TDD_Info_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/EUTRA-TDD-Info.h b/src/du_app/F1AP/asn/EUTRA-TDD-Info.h new file mode 100755 index 000000000..8f08cec4b --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-TDD-Info.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_TDD_Info_H_ +#define _EUTRA_TDD_Info_H_ + + +#include + +/* Including external dependencies */ +#include "OffsetToPointA.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* EUTRA-TDD-Info */ +typedef struct EUTRA_TDD_Info { + OffsetToPointA_t offsetToPointA; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_TDD_Info_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_TDD_Info; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRA_TDD_Info_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_TDD_Info_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_TDD_Info_H_ */ +#include diff --git a/src/du_app/F1AP/asn/EUTRA-Transmission-Bandwidth.c b/src/du_app/F1AP/asn/EUTRA-Transmission-Bandwidth.c new file mode 100755 index 000000000..60aed6bc6 --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-Transmission-Bandwidth.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-Transmission-Bandwidth.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EUTRA_Transmission_Bandwidth_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_EUTRA_Transmission_Bandwidth_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_EUTRA_Transmission_Bandwidth_value2enum_1[] = { + { 0, 3, "bw6" }, + { 1, 4, "bw15" }, + { 2, 4, "bw25" }, + { 3, 4, "bw50" }, + { 4, 4, "bw75" }, + { 5, 5, "bw100" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_EUTRA_Transmission_Bandwidth_enum2value_1[] = { + 5, /* bw100(5) */ + 1, /* bw15(1) */ + 2, /* bw25(2) */ + 3, /* bw50(3) */ + 0, /* bw6(0) */ + 4 /* bw75(4) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_EUTRA_Transmission_Bandwidth_specs_1 = { + asn_MAP_EUTRA_Transmission_Bandwidth_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_EUTRA_Transmission_Bandwidth_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_EUTRA_Transmission_Bandwidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_Transmission_Bandwidth = { + "EUTRA-Transmission-Bandwidth", + "EUTRA-Transmission-Bandwidth", + &asn_OP_NativeEnumerated, + asn_DEF_EUTRA_Transmission_Bandwidth_tags_1, + sizeof(asn_DEF_EUTRA_Transmission_Bandwidth_tags_1) + /sizeof(asn_DEF_EUTRA_Transmission_Bandwidth_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_Transmission_Bandwidth_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_Transmission_Bandwidth_tags_1) + /sizeof(asn_DEF_EUTRA_Transmission_Bandwidth_tags_1[0]), /* 1 */ + { &asn_OER_type_EUTRA_Transmission_Bandwidth_constr_1, &asn_PER_type_EUTRA_Transmission_Bandwidth_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EUTRA_Transmission_Bandwidth_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/EUTRA-Transmission-Bandwidth.h b/src/du_app/F1AP/asn/EUTRA-Transmission-Bandwidth.h new file mode 100755 index 000000000..900052744 --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRA-Transmission-Bandwidth.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_Transmission_Bandwidth_H_ +#define _EUTRA_Transmission_Bandwidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EUTRA_Transmission_Bandwidth { + EUTRA_Transmission_Bandwidth_bw6 = 0, + EUTRA_Transmission_Bandwidth_bw15 = 1, + EUTRA_Transmission_Bandwidth_bw25 = 2, + EUTRA_Transmission_Bandwidth_bw50 = 3, + EUTRA_Transmission_Bandwidth_bw75 = 4, + EUTRA_Transmission_Bandwidth_bw100 = 5 + /* + * Enumeration is extensible + */ +} e_EUTRA_Transmission_Bandwidth; + +/* EUTRA-Transmission-Bandwidth */ +typedef long EUTRA_Transmission_Bandwidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EUTRA_Transmission_Bandwidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_Transmission_Bandwidth; +extern const asn_INTEGER_specifics_t asn_SPC_EUTRA_Transmission_Bandwidth_specs_1; +asn_struct_free_f EUTRA_Transmission_Bandwidth_free; +asn_struct_print_f EUTRA_Transmission_Bandwidth_print; +asn_constr_check_f EUTRA_Transmission_Bandwidth_constraint; +ber_type_decoder_f EUTRA_Transmission_Bandwidth_decode_ber; +der_type_encoder_f EUTRA_Transmission_Bandwidth_encode_der; +xer_type_decoder_f EUTRA_Transmission_Bandwidth_decode_xer; +xer_type_encoder_f EUTRA_Transmission_Bandwidth_encode_xer; +oer_type_decoder_f EUTRA_Transmission_Bandwidth_decode_oer; +oer_type_encoder_f EUTRA_Transmission_Bandwidth_encode_oer; +per_type_decoder_f EUTRA_Transmission_Bandwidth_decode_uper; +per_type_encoder_f EUTRA_Transmission_Bandwidth_encode_uper; +per_type_decoder_f EUTRA_Transmission_Bandwidth_decode_aper; +per_type_encoder_f EUTRA_Transmission_Bandwidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_Transmission_Bandwidth_H_ */ +#include diff --git a/src/du_app/F1AP/asn/EUTRACells-List-item.c b/src/du_app/F1AP/asn/EUTRACells-List-item.c new file mode 100755 index 000000000..a82ec4a2a --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRACells-List-item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRACells-List-item.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_EUTRACells_List_item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRACells_List_item, eUTRA_Cell_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_Cell_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRA-Cell-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRACells_List_item, served_EUTRA_Cells_Information), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Served_EUTRA_Cells_Information, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "served-EUTRA-Cells-Information" + }, + { ATF_POINTER, 1, offsetof(struct EUTRACells_List_item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P41, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_EUTRACells_List_item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_EUTRACells_List_item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EUTRACells_List_item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eUTRA-Cell-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* served-EUTRA-Cells-Information */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EUTRACells_List_item_specs_1 = { + sizeof(struct EUTRACells_List_item), + offsetof(struct EUTRACells_List_item, _asn_ctx), + asn_MAP_EUTRACells_List_item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_EUTRACells_List_item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRACells_List_item = { + "EUTRACells-List-item", + "EUTRACells-List-item", + &asn_OP_SEQUENCE, + asn_DEF_EUTRACells_List_item_tags_1, + sizeof(asn_DEF_EUTRACells_List_item_tags_1) + /sizeof(asn_DEF_EUTRACells_List_item_tags_1[0]), /* 1 */ + asn_DEF_EUTRACells_List_item_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRACells_List_item_tags_1) + /sizeof(asn_DEF_EUTRACells_List_item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRACells_List_item_1, + 3, /* Elements count */ + &asn_SPC_EUTRACells_List_item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/EUTRACells-List-item.h b/src/du_app/F1AP/asn/EUTRACells-List-item.h new file mode 100755 index 000000000..9045127f7 --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRACells-List-item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRACells_List_item_H_ +#define _EUTRACells_List_item_H_ + + +#include + +/* Including external dependencies */ +#include "EUTRA-Cell-ID.h" +#include "Served-EUTRA-Cells-Information.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* EUTRACells-List-item */ +typedef struct EUTRACells_List_item { + EUTRA_Cell_ID_t eUTRA_Cell_ID; + Served_EUTRA_Cells_Information_t served_EUTRA_Cells_Information; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRACells_List_item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRACells_List_item; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRACells_List_item_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRACells_List_item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRACells_List_item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/EUTRACells-List.c b/src/du_app/F1AP/asn/EUTRACells-List.c new file mode 100755 index 000000000..d144f45d4 --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRACells-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRACells-List.h" + +#include "EUTRACells-List-item.h" +static asn_oer_constraints_t asn_OER_type_EUTRACells_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..256)) */}; +asn_per_constraints_t asn_PER_type_EUTRACells_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_EUTRACells_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EUTRACells_List_item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_EUTRACells_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_EUTRACells_List_specs_1 = { + sizeof(struct EUTRACells_List), + offsetof(struct EUTRACells_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRACells_List = { + "EUTRACells-List", + "EUTRACells-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_EUTRACells_List_tags_1, + sizeof(asn_DEF_EUTRACells_List_tags_1) + /sizeof(asn_DEF_EUTRACells_List_tags_1[0]), /* 1 */ + asn_DEF_EUTRACells_List_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRACells_List_tags_1) + /sizeof(asn_DEF_EUTRACells_List_tags_1[0]), /* 1 */ + { &asn_OER_type_EUTRACells_List_constr_1, &asn_PER_type_EUTRACells_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_EUTRACells_List_1, + 1, /* Single element */ + &asn_SPC_EUTRACells_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/EUTRACells-List.h b/src/du_app/F1AP/asn/EUTRACells-List.h new file mode 100755 index 000000000..f4403869f --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRACells-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRACells_List_H_ +#define _EUTRACells_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EUTRACells_List_item; + +/* EUTRACells-List */ +typedef struct EUTRACells_List { + A_SEQUENCE_OF(struct EUTRACells_List_item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRACells_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRACells_List; +extern asn_SET_OF_specifics_t asn_SPC_EUTRACells_List_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRACells_List_1[1]; +extern asn_per_constraints_t asn_PER_type_EUTRACells_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRACells_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/EUTRANQoS.c b/src/du_app/F1AP/asn/EUTRANQoS.c new file mode 100755 index 000000000..087e7ccf1 --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRANQoS.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRANQoS.h" + +#include "GBR-QosInformation.h" +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_EUTRANQoS_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRANQoS, 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_NOFLAGS, 0, offsetof(struct EUTRANQoS, allocationAndRetentionPriority), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AllocationAndRetentionPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "allocationAndRetentionPriority" + }, + { ATF_POINTER, 2, offsetof(struct EUTRANQoS, gbrQosInformation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GBR_QosInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gbrQosInformation" + }, + { ATF_POINTER, 1, offsetof(struct EUTRANQoS, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P46, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_EUTRANQoS_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_EUTRANQoS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EUTRANQoS_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qCI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* allocationAndRetentionPriority */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* gbrQosInformation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EUTRANQoS_specs_1 = { + sizeof(struct EUTRANQoS), + offsetof(struct EUTRANQoS, _asn_ctx), + asn_MAP_EUTRANQoS_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_EUTRANQoS_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRANQoS = { + "EUTRANQoS", + "EUTRANQoS", + &asn_OP_SEQUENCE, + asn_DEF_EUTRANQoS_tags_1, + sizeof(asn_DEF_EUTRANQoS_tags_1) + /sizeof(asn_DEF_EUTRANQoS_tags_1[0]), /* 1 */ + asn_DEF_EUTRANQoS_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRANQoS_tags_1) + /sizeof(asn_DEF_EUTRANQoS_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRANQoS_1, + 4, /* Elements count */ + &asn_SPC_EUTRANQoS_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/EUTRANQoS.h b/src/du_app/F1AP/asn/EUTRANQoS.h new file mode 100755 index 000000000..05853a038 --- /dev/null +++ b/src/du_app/F1AP/asn/EUTRANQoS.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRANQoS_H_ +#define _EUTRANQoS_H_ + + +#include + +/* Including external dependencies */ +#include "QCI.h" +#include "AllocationAndRetentionPriority.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GBR_QosInformation; +struct ProtocolExtensionContainer; + +/* EUTRANQoS */ +typedef struct EUTRANQoS { + QCI_t qCI; + AllocationAndRetentionPriority_t allocationAndRetentionPriority; + struct GBR_QosInformation *gbrQosInformation; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRANQoS_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRANQoS; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRANQoS_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRANQoS_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRANQoS_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Endpoint-IP-address-and-port.c b/src/du_app/F1AP/asn/Endpoint-IP-address-and-port.c new file mode 100755 index 000000000..3762e2edf --- /dev/null +++ b/src/du_app/F1AP/asn/Endpoint-IP-address-and-port.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Endpoint-IP-address-and-port.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_Endpoint_IP_address_and_port_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Endpoint_IP_address_and_port, endpointIPAddress), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "endpointIPAddress" + }, + { ATF_POINTER, 1, offsetof(struct Endpoint_IP_address_and_port, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P38, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_Endpoint_IP_address_and_port_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_Endpoint_IP_address_and_port_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Endpoint_IP_address_and_port_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* endpointIPAddress */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Endpoint_IP_address_and_port_specs_1 = { + sizeof(struct Endpoint_IP_address_and_port), + offsetof(struct Endpoint_IP_address_and_port, _asn_ctx), + asn_MAP_Endpoint_IP_address_and_port_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_Endpoint_IP_address_and_port_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Endpoint_IP_address_and_port = { + "Endpoint-IP-address-and-port", + "Endpoint-IP-address-and-port", + &asn_OP_SEQUENCE, + asn_DEF_Endpoint_IP_address_and_port_tags_1, + sizeof(asn_DEF_Endpoint_IP_address_and_port_tags_1) + /sizeof(asn_DEF_Endpoint_IP_address_and_port_tags_1[0]), /* 1 */ + asn_DEF_Endpoint_IP_address_and_port_tags_1, /* Same as above */ + sizeof(asn_DEF_Endpoint_IP_address_and_port_tags_1) + /sizeof(asn_DEF_Endpoint_IP_address_and_port_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Endpoint_IP_address_and_port_1, + 2, /* Elements count */ + &asn_SPC_Endpoint_IP_address_and_port_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Endpoint-IP-address-and-port.h b/src/du_app/F1AP/asn/Endpoint-IP-address-and-port.h new file mode 100755 index 000000000..a08a4517b --- /dev/null +++ b/src/du_app/F1AP/asn/Endpoint-IP-address-and-port.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Endpoint_IP_address_and_port_H_ +#define _Endpoint_IP_address_and_port_H_ + + +#include + +/* Including external dependencies */ +#include "TransportLayerAddress.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* Endpoint-IP-address-and-port */ +typedef struct Endpoint_IP_address_and_port { + TransportLayerAddress_t endpointIPAddress; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Endpoint_IP_address_and_port_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Endpoint_IP_address_and_port; +extern asn_SEQUENCE_specifics_t asn_SPC_Endpoint_IP_address_and_port_specs_1; +extern asn_TYPE_member_t asn_MBR_Endpoint_IP_address_and_port_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Endpoint_IP_address_and_port_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ErrorIndication.c b/src/du_app/F1AP/asn/ErrorIndication.c new file mode 100755 index 000000000..1b585b337 --- /dev/null +++ b/src/du_app/F1AP/asn/ErrorIndication.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ErrorIndication.h" + +asn_TYPE_member_t asn_MBR_ErrorIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ErrorIndication, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ErrorIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ErrorIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_specs_1 = { + sizeof(struct ErrorIndication), + offsetof(struct ErrorIndication, _asn_ctx), + asn_MAP_ErrorIndication_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ErrorIndication = { + "ErrorIndication", + "ErrorIndication", + &asn_OP_SEQUENCE, + asn_DEF_ErrorIndication_tags_1, + sizeof(asn_DEF_ErrorIndication_tags_1) + /sizeof(asn_DEF_ErrorIndication_tags_1[0]), /* 1 */ + asn_DEF_ErrorIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ErrorIndication_tags_1) + /sizeof(asn_DEF_ErrorIndication_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ErrorIndication_1, + 1, /* Elements count */ + &asn_SPC_ErrorIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/ErrorIndication.h b/src/du_app/F1AP/asn/ErrorIndication.h new file mode 100755 index 000000000..76fe690d1 --- /dev/null +++ b/src/du_app/F1AP/asn/ErrorIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ErrorIndication_H_ +#define _ErrorIndication_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ErrorIndication */ +typedef struct ErrorIndication { + ProtocolIE_Container_4587P2_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ErrorIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ErrorIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_ErrorIndication_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ErrorIndication_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ExecuteDuplication.c b/src/du_app/F1AP/asn/ExecuteDuplication.c new file mode 100755 index 000000000..85a17b97a --- /dev/null +++ b/src/du_app/F1AP/asn/ExecuteDuplication.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ExecuteDuplication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ExecuteDuplication_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_ExecuteDuplication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ExecuteDuplication_value2enum_1[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ExecuteDuplication_enum2value_1[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ExecuteDuplication_specs_1 = { + asn_MAP_ExecuteDuplication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ExecuteDuplication_enum2value_1, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ExecuteDuplication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ExecuteDuplication = { + "ExecuteDuplication", + "ExecuteDuplication", + &asn_OP_NativeEnumerated, + asn_DEF_ExecuteDuplication_tags_1, + sizeof(asn_DEF_ExecuteDuplication_tags_1) + /sizeof(asn_DEF_ExecuteDuplication_tags_1[0]), /* 1 */ + asn_DEF_ExecuteDuplication_tags_1, /* Same as above */ + sizeof(asn_DEF_ExecuteDuplication_tags_1) + /sizeof(asn_DEF_ExecuteDuplication_tags_1[0]), /* 1 */ + { &asn_OER_type_ExecuteDuplication_constr_1, &asn_PER_type_ExecuteDuplication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ExecuteDuplication_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/ExecuteDuplication.h b/src/du_app/F1AP/asn/ExecuteDuplication.h new file mode 100755 index 000000000..cdd32f2ef --- /dev/null +++ b/src/du_app/F1AP/asn/ExecuteDuplication.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ExecuteDuplication_H_ +#define _ExecuteDuplication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ExecuteDuplication { + ExecuteDuplication_true = 0 + /* + * Enumeration is extensible + */ +} e_ExecuteDuplication; + +/* ExecuteDuplication */ +typedef long ExecuteDuplication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ExecuteDuplication; +asn_struct_free_f ExecuteDuplication_free; +asn_struct_print_f ExecuteDuplication_print; +asn_constr_check_f ExecuteDuplication_constraint; +ber_type_decoder_f ExecuteDuplication_decode_ber; +der_type_encoder_f ExecuteDuplication_encode_der; +xer_type_decoder_f ExecuteDuplication_decode_xer; +xer_type_encoder_f ExecuteDuplication_encode_xer; +oer_type_decoder_f ExecuteDuplication_decode_oer; +oer_type_encoder_f ExecuteDuplication_encode_oer; +per_type_decoder_f ExecuteDuplication_decode_uper; +per_type_encoder_f ExecuteDuplication_encode_uper; +per_type_decoder_f ExecuteDuplication_decode_aper; +per_type_encoder_f ExecuteDuplication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ExecuteDuplication_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ExtendedAvailablePLMN-Item.c b/src/du_app/F1AP/asn/ExtendedAvailablePLMN-Item.c new file mode 100755 index 000000000..91d8d59a3 --- /dev/null +++ b/src/du_app/F1AP/asn/ExtendedAvailablePLMN-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ExtendedAvailablePLMN-Item.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ExtendedAvailablePLMN_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ExtendedAvailablePLMN_Item, pLMNIdentity), + (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 */ + "pLMNIdentity" + }, + { ATF_POINTER, 1, offsetof(struct ExtendedAvailablePLMN_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P39, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ExtendedAvailablePLMN_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ExtendedAvailablePLMN_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ExtendedAvailablePLMN_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ExtendedAvailablePLMN_Item_specs_1 = { + sizeof(struct ExtendedAvailablePLMN_Item), + offsetof(struct ExtendedAvailablePLMN_Item, _asn_ctx), + asn_MAP_ExtendedAvailablePLMN_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ExtendedAvailablePLMN_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ExtendedAvailablePLMN_Item = { + "ExtendedAvailablePLMN-Item", + "ExtendedAvailablePLMN-Item", + &asn_OP_SEQUENCE, + asn_DEF_ExtendedAvailablePLMN_Item_tags_1, + sizeof(asn_DEF_ExtendedAvailablePLMN_Item_tags_1) + /sizeof(asn_DEF_ExtendedAvailablePLMN_Item_tags_1[0]), /* 1 */ + asn_DEF_ExtendedAvailablePLMN_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ExtendedAvailablePLMN_Item_tags_1) + /sizeof(asn_DEF_ExtendedAvailablePLMN_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ExtendedAvailablePLMN_Item_1, + 2, /* Elements count */ + &asn_SPC_ExtendedAvailablePLMN_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/ExtendedAvailablePLMN-Item.h b/src/du_app/F1AP/asn/ExtendedAvailablePLMN-Item.h new file mode 100755 index 000000000..678af1515 --- /dev/null +++ b/src/du_app/F1AP/asn/ExtendedAvailablePLMN-Item.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ExtendedAvailablePLMN_Item_H_ +#define _ExtendedAvailablePLMN_Item_H_ + + +#include + +/* Including external dependencies */ +#include "PLMN-Identity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* ExtendedAvailablePLMN-Item */ +typedef struct ExtendedAvailablePLMN_Item { + PLMN_Identity_t pLMNIdentity; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ExtendedAvailablePLMN_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ExtendedAvailablePLMN_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ExtendedAvailablePLMN_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ExtendedAvailablePLMN_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ExtendedAvailablePLMN_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ExtendedAvailablePLMN-List.c b/src/du_app/F1AP/asn/ExtendedAvailablePLMN-List.c new file mode 100755 index 000000000..a9077caa4 --- /dev/null +++ b/src/du_app/F1AP/asn/ExtendedAvailablePLMN-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ExtendedAvailablePLMN-List.h" + +#include "ExtendedAvailablePLMN-Item.h" +static asn_oer_constraints_t asn_OER_type_ExtendedAvailablePLMN_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..6)) */}; +static asn_per_constraints_t asn_PER_type_ExtendedAvailablePLMN_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 6 } /* (SIZE(1..6)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ExtendedAvailablePLMN_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ExtendedAvailablePLMN_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ExtendedAvailablePLMN_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ExtendedAvailablePLMN_List_specs_1 = { + sizeof(struct ExtendedAvailablePLMN_List), + offsetof(struct ExtendedAvailablePLMN_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ExtendedAvailablePLMN_List = { + "ExtendedAvailablePLMN-List", + "ExtendedAvailablePLMN-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_ExtendedAvailablePLMN_List_tags_1, + sizeof(asn_DEF_ExtendedAvailablePLMN_List_tags_1) + /sizeof(asn_DEF_ExtendedAvailablePLMN_List_tags_1[0]), /* 1 */ + asn_DEF_ExtendedAvailablePLMN_List_tags_1, /* Same as above */ + sizeof(asn_DEF_ExtendedAvailablePLMN_List_tags_1) + /sizeof(asn_DEF_ExtendedAvailablePLMN_List_tags_1[0]), /* 1 */ + { &asn_OER_type_ExtendedAvailablePLMN_List_constr_1, &asn_PER_type_ExtendedAvailablePLMN_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ExtendedAvailablePLMN_List_1, + 1, /* Single element */ + &asn_SPC_ExtendedAvailablePLMN_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/ExtendedAvailablePLMN-List.h b/src/du_app/F1AP/asn/ExtendedAvailablePLMN-List.h new file mode 100755 index 000000000..ea56cd2bb --- /dev/null +++ b/src/du_app/F1AP/asn/ExtendedAvailablePLMN-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ExtendedAvailablePLMN_List_H_ +#define _ExtendedAvailablePLMN_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ExtendedAvailablePLMN_Item; + +/* ExtendedAvailablePLMN-List */ +typedef struct ExtendedAvailablePLMN_List { + A_SEQUENCE_OF(struct ExtendedAvailablePLMN_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ExtendedAvailablePLMN_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ExtendedAvailablePLMN_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _ExtendedAvailablePLMN_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ExtendedEARFCN.c b/src/du_app/F1AP/asn/ExtendedEARFCN.c new file mode 100755 index 000000000..f2232fd89 --- /dev/null +++ b/src/du_app/F1AP/asn/ExtendedEARFCN.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ExtendedEARFCN.h" + +int +ExtendedEARFCN_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 <= 262143)) { + /* 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_ExtendedEARFCN_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..262143) */, + -1}; +asn_per_constraints_t asn_PER_type_ExtendedEARFCN_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, 0, 262143 } /* (0..262143) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ExtendedEARFCN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ExtendedEARFCN = { + "ExtendedEARFCN", + "ExtendedEARFCN", + &asn_OP_NativeInteger, + asn_DEF_ExtendedEARFCN_tags_1, + sizeof(asn_DEF_ExtendedEARFCN_tags_1) + /sizeof(asn_DEF_ExtendedEARFCN_tags_1[0]), /* 1 */ + asn_DEF_ExtendedEARFCN_tags_1, /* Same as above */ + sizeof(asn_DEF_ExtendedEARFCN_tags_1) + /sizeof(asn_DEF_ExtendedEARFCN_tags_1[0]), /* 1 */ + { &asn_OER_type_ExtendedEARFCN_constr_1, &asn_PER_type_ExtendedEARFCN_constr_1, ExtendedEARFCN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/ExtendedEARFCN.h b/src/du_app/F1AP/asn/ExtendedEARFCN.h new file mode 100755 index 000000000..33bbbaa1b --- /dev/null +++ b/src/du_app/F1AP/asn/ExtendedEARFCN.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ExtendedEARFCN_H_ +#define _ExtendedEARFCN_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ExtendedEARFCN */ +typedef long ExtendedEARFCN_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ExtendedEARFCN_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ExtendedEARFCN; +asn_struct_free_f ExtendedEARFCN_free; +asn_struct_print_f ExtendedEARFCN_print; +asn_constr_check_f ExtendedEARFCN_constraint; +ber_type_decoder_f ExtendedEARFCN_decode_ber; +der_type_encoder_f ExtendedEARFCN_encode_der; +xer_type_decoder_f ExtendedEARFCN_decode_xer; +xer_type_encoder_f ExtendedEARFCN_encode_xer; +oer_type_decoder_f ExtendedEARFCN_decode_oer; +oer_type_encoder_f ExtendedEARFCN_encode_oer; +per_type_decoder_f ExtendedEARFCN_decode_uper; +per_type_encoder_f ExtendedEARFCN_encode_uper; +per_type_decoder_f ExtendedEARFCN_decode_aper; +per_type_encoder_f ExtendedEARFCN_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ExtendedEARFCN_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ExtendedServedPLMNs-Item.c b/src/du_app/F1AP/asn/ExtendedServedPLMNs-Item.c new file mode 100755 index 000000000..0d5f19576 --- /dev/null +++ b/src/du_app/F1AP/asn/ExtendedServedPLMNs-Item.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ExtendedServedPLMNs-Item.h" + +#include "SliceSupportList.h" +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ExtendedServedPLMNs_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ExtendedServedPLMNs_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 ExtendedServedPLMNs_Item, tAISliceSupportList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SliceSupportList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAISliceSupportList" + }, + { ATF_POINTER, 1, offsetof(struct ExtendedServedPLMNs_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P40, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ExtendedServedPLMNs_Item_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ExtendedServedPLMNs_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ExtendedServedPLMNs_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tAISliceSupportList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ExtendedServedPLMNs_Item_specs_1 = { + sizeof(struct ExtendedServedPLMNs_Item), + offsetof(struct ExtendedServedPLMNs_Item, _asn_ctx), + asn_MAP_ExtendedServedPLMNs_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ExtendedServedPLMNs_Item_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ExtendedServedPLMNs_Item = { + "ExtendedServedPLMNs-Item", + "ExtendedServedPLMNs-Item", + &asn_OP_SEQUENCE, + asn_DEF_ExtendedServedPLMNs_Item_tags_1, + sizeof(asn_DEF_ExtendedServedPLMNs_Item_tags_1) + /sizeof(asn_DEF_ExtendedServedPLMNs_Item_tags_1[0]), /* 1 */ + asn_DEF_ExtendedServedPLMNs_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ExtendedServedPLMNs_Item_tags_1) + /sizeof(asn_DEF_ExtendedServedPLMNs_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ExtendedServedPLMNs_Item_1, + 3, /* Elements count */ + &asn_SPC_ExtendedServedPLMNs_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/ExtendedServedPLMNs-Item.h b/src/du_app/F1AP/asn/ExtendedServedPLMNs-Item.h new file mode 100755 index 000000000..7d489f3b3 --- /dev/null +++ b/src/du_app/F1AP/asn/ExtendedServedPLMNs-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ExtendedServedPLMNs_Item_H_ +#define _ExtendedServedPLMNs_Item_H_ + + +#include + +/* Including external dependencies */ +#include "PLMN-Identity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SliceSupportList; +struct ProtocolExtensionContainer; + +/* ExtendedServedPLMNs-Item */ +typedef struct ExtendedServedPLMNs_Item { + PLMN_Identity_t pLMN_Identity; + struct SliceSupportList *tAISliceSupportList; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ExtendedServedPLMNs_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ExtendedServedPLMNs_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ExtendedServedPLMNs_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ExtendedServedPLMNs_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ExtendedServedPLMNs_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ExtendedServedPLMNs-List.c b/src/du_app/F1AP/asn/ExtendedServedPLMNs-List.c new file mode 100755 index 000000000..01da2cd05 --- /dev/null +++ b/src/du_app/F1AP/asn/ExtendedServedPLMNs-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ExtendedServedPLMNs-List.h" + +#include "ExtendedServedPLMNs-Item.h" +static asn_oer_constraints_t asn_OER_type_ExtendedServedPLMNs_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..6)) */}; +static asn_per_constraints_t asn_PER_type_ExtendedServedPLMNs_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 6 } /* (SIZE(1..6)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ExtendedServedPLMNs_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ExtendedServedPLMNs_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ExtendedServedPLMNs_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ExtendedServedPLMNs_List_specs_1 = { + sizeof(struct ExtendedServedPLMNs_List), + offsetof(struct ExtendedServedPLMNs_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ExtendedServedPLMNs_List = { + "ExtendedServedPLMNs-List", + "ExtendedServedPLMNs-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_ExtendedServedPLMNs_List_tags_1, + sizeof(asn_DEF_ExtendedServedPLMNs_List_tags_1) + /sizeof(asn_DEF_ExtendedServedPLMNs_List_tags_1[0]), /* 1 */ + asn_DEF_ExtendedServedPLMNs_List_tags_1, /* Same as above */ + sizeof(asn_DEF_ExtendedServedPLMNs_List_tags_1) + /sizeof(asn_DEF_ExtendedServedPLMNs_List_tags_1[0]), /* 1 */ + { &asn_OER_type_ExtendedServedPLMNs_List_constr_1, &asn_PER_type_ExtendedServedPLMNs_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ExtendedServedPLMNs_List_1, + 1, /* Single element */ + &asn_SPC_ExtendedServedPLMNs_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/ExtendedServedPLMNs-List.h b/src/du_app/F1AP/asn/ExtendedServedPLMNs-List.h new file mode 100755 index 000000000..ea659212b --- /dev/null +++ b/src/du_app/F1AP/asn/ExtendedServedPLMNs-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ExtendedServedPLMNs_List_H_ +#define _ExtendedServedPLMNs_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ExtendedServedPLMNs_Item; + +/* ExtendedServedPLMNs-List */ +typedef struct ExtendedServedPLMNs_List { + A_SEQUENCE_OF(struct ExtendedServedPLMNs_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ExtendedServedPLMNs_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ExtendedServedPLMNs_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _ExtendedServedPLMNs_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/F1AP-PDU.c b/src/du_app/F1AP/asn/F1AP-PDU.c new file mode 100755 index 000000000..d5cb378ea --- /dev/null +++ b/src/du_app/F1AP/asn/F1AP-PDU.c @@ -0,0 +1,89 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Descriptions" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "F1AP-PDU.h" + +#include "InitiatingMessage.h" +#include "SuccessfulOutcome.h" +#include "UnsuccessfulOutcome.h" +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_F1AP_PDU_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_F1AP_PDU_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 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_F1AP_PDU_1[] = { + { ATF_POINTER, 0, offsetof(struct F1AP_PDU, choice.initiatingMessage), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InitiatingMessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "initiatingMessage" + }, + { ATF_POINTER, 0, offsetof(struct F1AP_PDU, choice.successfulOutcome), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SuccessfulOutcome, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "successfulOutcome" + }, + { ATF_POINTER, 0, offsetof(struct F1AP_PDU, choice.unsuccessfulOutcome), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UnsuccessfulOutcome, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "unsuccessfulOutcome" + }, + { ATF_POINTER, 0, offsetof(struct F1AP_PDU, choice.choice_extension), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_SingleContainer_4590P0, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-extension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_F1AP_PDU_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* initiatingMessage */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* successfulOutcome */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* unsuccessfulOutcome */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* choice-extension */ +}; +static asn_CHOICE_specifics_t asn_SPC_F1AP_PDU_specs_1 = { + sizeof(struct F1AP_PDU), + offsetof(struct F1AP_PDU, _asn_ctx), + offsetof(struct F1AP_PDU, present), + sizeof(((struct F1AP_PDU *)0)->present), + asn_MAP_F1AP_PDU_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_F1AP_PDU = { + "F1AP-PDU", + "F1AP-PDU", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_F1AP_PDU_constr_1, &asn_PER_type_F1AP_PDU_constr_1, CHOICE_constraint }, + asn_MBR_F1AP_PDU_1, + 4, /* Elements count */ + &asn_SPC_F1AP_PDU_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/F1AP-PDU.h b/src/du_app/F1AP/asn/F1AP-PDU.h new file mode 100755 index 000000000..de0874ff6 --- /dev/null +++ b/src/du_app/F1AP/asn/F1AP-PDU.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Descriptions" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _F1AP_PDU_H_ +#define _F1AP_PDU_H_ + + +#include +#include +#include +#include +//#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum F1AP_PDU_PR { + F1AP_PDU_PR_NOTHING, /* No components present */ + F1AP_PDU_PR_initiatingMessage, + F1AP_PDU_PR_successfulOutcome, + F1AP_PDU_PR_unsuccessfulOutcome, + F1AP_PDU_PR_choice_extension +} F1AP_PDU_PR; + +/* Forward declarations */ +struct InitiatingMessage; +struct SuccessfulOutcome; +struct UnsuccessfulOutcome; +struct ProtocolIE_SingleContainer; + +/* F1AP-PDU */ +typedef struct F1AP_PDU { + F1AP_PDU_PR present; + union F1AP_PDU_u { + InitiatingMessage_t *initiatingMessage; + SuccessfulOutcome_t *successfulOutcome; + UnsuccessfulOutcome_t *unsuccessfulOutcome; + struct ProtocolIE_SingleContainer *choice_extension; + } choice; +#if 0 + union F1AP_PDU_u { + struct InitiatingMessage *initiatingMessage; + struct SuccessfulOutcome *successfulOutcome; + struct UnsuccessfulOutcome *unsuccessfulOutcome; + struct ProtocolIE_SingleContainer *choice_extension; + } choice; +#endif + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} F1AP_PDU_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_F1AP_PDU; + +#ifdef __cplusplus +} +#endif + +#endif /* _F1AP_PDU_H_ */ +#include diff --git a/src/du_app/F1AP/asn/F1SetupFailure.c b/src/du_app/F1AP/asn/F1SetupFailure.c new file mode 100755 index 000000000..8cf621a92 --- /dev/null +++ b/src/du_app/F1AP/asn/F1SetupFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "F1SetupFailure.h" + +asn_TYPE_member_t asn_MBR_F1SetupFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct F1SetupFailure, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_F1SetupFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_F1SetupFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_F1SetupFailure_specs_1 = { + sizeof(struct F1SetupFailure), + offsetof(struct F1SetupFailure, _asn_ctx), + asn_MAP_F1SetupFailure_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_F1SetupFailure = { + "F1SetupFailure", + "F1SetupFailure", + &asn_OP_SEQUENCE, + asn_DEF_F1SetupFailure_tags_1, + sizeof(asn_DEF_F1SetupFailure_tags_1) + /sizeof(asn_DEF_F1SetupFailure_tags_1[0]), /* 1 */ + asn_DEF_F1SetupFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_F1SetupFailure_tags_1) + /sizeof(asn_DEF_F1SetupFailure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_F1SetupFailure_1, + 1, /* Elements count */ + &asn_SPC_F1SetupFailure_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/F1SetupFailure.h b/src/du_app/F1AP/asn/F1SetupFailure.h new file mode 100755 index 000000000..6b8ea8f71 --- /dev/null +++ b/src/du_app/F1AP/asn/F1SetupFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _F1SetupFailure_H_ +#define _F1SetupFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* F1SetupFailure */ +typedef struct F1SetupFailure { + ProtocolIE_Container_4587P5_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} F1SetupFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_F1SetupFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_F1SetupFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_F1SetupFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _F1SetupFailure_H_ */ +#include diff --git a/src/du_app/F1AP/asn/F1SetupRequest.c b/src/du_app/F1AP/asn/F1SetupRequest.c new file mode 100755 index 000000000..0c1211060 --- /dev/null +++ b/src/du_app/F1AP/asn/F1SetupRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "F1SetupRequest.h" + +asn_TYPE_member_t asn_MBR_F1SetupRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct F1SetupRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_F1SetupRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_F1SetupRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_F1SetupRequest_specs_1 = { + sizeof(struct F1SetupRequest), + offsetof(struct F1SetupRequest, _asn_ctx), + asn_MAP_F1SetupRequest_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_F1SetupRequest = { + "F1SetupRequest", + "F1SetupRequest", + &asn_OP_SEQUENCE, + asn_DEF_F1SetupRequest_tags_1, + sizeof(asn_DEF_F1SetupRequest_tags_1) + /sizeof(asn_DEF_F1SetupRequest_tags_1[0]), /* 1 */ + asn_DEF_F1SetupRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_F1SetupRequest_tags_1) + /sizeof(asn_DEF_F1SetupRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_F1SetupRequest_1, + 1, /* Elements count */ + &asn_SPC_F1SetupRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/F1SetupRequest.h b/src/du_app/F1AP/asn/F1SetupRequest.h new file mode 100755 index 000000000..9050c3363 --- /dev/null +++ b/src/du_app/F1AP/asn/F1SetupRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _F1SetupRequest_H_ +#define _F1SetupRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* F1SetupRequest */ +typedef struct F1SetupRequest { + ProtocolIE_Container_4587P3_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} F1SetupRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_F1SetupRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_F1SetupRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_F1SetupRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _F1SetupRequest_H_ */ +#include diff --git a/src/du_app/F1AP/asn/F1SetupResponse.c b/src/du_app/F1AP/asn/F1SetupResponse.c new file mode 100755 index 000000000..89bd75452 --- /dev/null +++ b/src/du_app/F1AP/asn/F1SetupResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "F1SetupResponse.h" + +asn_TYPE_member_t asn_MBR_F1SetupResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct F1SetupResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_F1SetupResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_F1SetupResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_F1SetupResponse_specs_1 = { + sizeof(struct F1SetupResponse), + offsetof(struct F1SetupResponse, _asn_ctx), + asn_MAP_F1SetupResponse_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_F1SetupResponse = { + "F1SetupResponse", + "F1SetupResponse", + &asn_OP_SEQUENCE, + asn_DEF_F1SetupResponse_tags_1, + sizeof(asn_DEF_F1SetupResponse_tags_1) + /sizeof(asn_DEF_F1SetupResponse_tags_1[0]), /* 1 */ + asn_DEF_F1SetupResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_F1SetupResponse_tags_1) + /sizeof(asn_DEF_F1SetupResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_F1SetupResponse_1, + 1, /* Elements count */ + &asn_SPC_F1SetupResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/F1SetupResponse.h b/src/du_app/F1AP/asn/F1SetupResponse.h new file mode 100755 index 000000000..fa9184717 --- /dev/null +++ b/src/du_app/F1AP/asn/F1SetupResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _F1SetupResponse_H_ +#define _F1SetupResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* F1SetupResponse */ +typedef struct F1SetupResponse { + ProtocolIE_Container_4587P4_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} F1SetupResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_F1SetupResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_F1SetupResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_F1SetupResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _F1SetupResponse_H_ */ +#include diff --git a/src/du_app/F1AP/asn/FDD-Info.c b/src/du_app/F1AP/asn/FDD-Info.c new file mode 100755 index 000000000..c4edd6526 --- /dev/null +++ b/src/du_app/F1AP/asn/FDD-Info.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FDD-Info.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_FDD_Info_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct FDD_Info, uL_NRFreqInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRFreqInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uL-NRFreqInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct FDD_Info, dL_NRFreqInfo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRFreqInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dL-NRFreqInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct FDD_Info, uL_Transmission_Bandwidth), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Transmission_Bandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uL-Transmission-Bandwidth" + }, + { ATF_NOFLAGS, 0, offsetof(struct FDD_Info, dL_Transmission_Bandwidth), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Transmission_Bandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dL-Transmission-Bandwidth" + }, + { ATF_POINTER, 1, offsetof(struct FDD_Info, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P49, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_FDD_Info_oms_1[] = { 4 }; +static const ber_tlv_tag_t asn_DEF_FDD_Info_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_FDD_Info_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uL-NRFreqInfo */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dL-NRFreqInfo */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uL-Transmission-Bandwidth */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* dL-Transmission-Bandwidth */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_FDD_Info_specs_1 = { + sizeof(struct FDD_Info), + offsetof(struct FDD_Info, _asn_ctx), + asn_MAP_FDD_Info_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_FDD_Info_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FDD_Info = { + "FDD-Info", + "FDD-Info", + &asn_OP_SEQUENCE, + asn_DEF_FDD_Info_tags_1, + sizeof(asn_DEF_FDD_Info_tags_1) + /sizeof(asn_DEF_FDD_Info_tags_1[0]), /* 1 */ + asn_DEF_FDD_Info_tags_1, /* Same as above */ + sizeof(asn_DEF_FDD_Info_tags_1) + /sizeof(asn_DEF_FDD_Info_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FDD_Info_1, + 5, /* Elements count */ + &asn_SPC_FDD_Info_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/FDD-Info.h b/src/du_app/F1AP/asn/FDD-Info.h new file mode 100755 index 000000000..0b00cfdc9 --- /dev/null +++ b/src/du_app/F1AP/asn/FDD-Info.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FDD_Info_H_ +#define _FDD_Info_H_ + + +#include + +/* Including external dependencies */ +#include "NRFreqInfo.h" +#include "Transmission-Bandwidth.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* FDD-Info */ +typedef struct FDD_Info { + NRFreqInfo_t uL_NRFreqInfo; + NRFreqInfo_t dL_NRFreqInfo; + Transmission_Bandwidth_t uL_Transmission_Bandwidth; + Transmission_Bandwidth_t dL_Transmission_Bandwidth; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FDD_Info_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FDD_Info; +extern asn_SEQUENCE_specifics_t asn_SPC_FDD_Info_specs_1; +extern asn_TYPE_member_t asn_MBR_FDD_Info_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FDD_Info_H_ */ +#include diff --git a/src/du_app/F1AP/asn/FiveGS-TAC.c b/src/du_app/F1AP/asn/FiveGS-TAC.c new file mode 100755 index 000000000..3eab26eeb --- /dev/null +++ b/src/du_app/F1AP/asn/FiveGS-TAC.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FiveGS-TAC.h" + +int +FiveGS_TAC_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 3)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_FiveGS_TAC_constr_1 CC_NOTUSED = { + { 0, 0 }, + 3 /* (SIZE(3..3)) */}; +asn_per_constraints_t asn_PER_type_FiveGS_TAC_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_FiveGS_TAC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FiveGS_TAC = { + "FiveGS-TAC", + "FiveGS-TAC", + &asn_OP_OCTET_STRING, + asn_DEF_FiveGS_TAC_tags_1, + sizeof(asn_DEF_FiveGS_TAC_tags_1) + /sizeof(asn_DEF_FiveGS_TAC_tags_1[0]), /* 1 */ + asn_DEF_FiveGS_TAC_tags_1, /* Same as above */ + sizeof(asn_DEF_FiveGS_TAC_tags_1) + /sizeof(asn_DEF_FiveGS_TAC_tags_1[0]), /* 1 */ + { &asn_OER_type_FiveGS_TAC_constr_1, &asn_PER_type_FiveGS_TAC_constr_1, FiveGS_TAC_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/FiveGS-TAC.h b/src/du_app/F1AP/asn/FiveGS-TAC.h new file mode 100755 index 000000000..3b9794443 --- /dev/null +++ b/src/du_app/F1AP/asn/FiveGS-TAC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FiveGS_TAC_H_ +#define _FiveGS_TAC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FiveGS-TAC */ +typedef OCTET_STRING_t FiveGS_TAC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FiveGS_TAC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FiveGS_TAC; +asn_struct_free_f FiveGS_TAC_free; +asn_struct_print_f FiveGS_TAC_print; +asn_constr_check_f FiveGS_TAC_constraint; +ber_type_decoder_f FiveGS_TAC_decode_ber; +der_type_encoder_f FiveGS_TAC_encode_der; +xer_type_decoder_f FiveGS_TAC_decode_xer; +xer_type_encoder_f FiveGS_TAC_encode_xer; +oer_type_decoder_f FiveGS_TAC_decode_oer; +oer_type_encoder_f FiveGS_TAC_encode_oer; +per_type_decoder_f FiveGS_TAC_decode_uper; +per_type_encoder_f FiveGS_TAC_encode_uper; +per_type_decoder_f FiveGS_TAC_decode_aper; +per_type_encoder_f FiveGS_TAC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _FiveGS_TAC_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Flows-Mapped-To-DRB-Item.c b/src/du_app/F1AP/asn/Flows-Mapped-To-DRB-Item.c new file mode 100755 index 000000000..fb0518785 --- /dev/null +++ b/src/du_app/F1AP/asn/Flows-Mapped-To-DRB-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Flows-Mapped-To-DRB-Item.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_Flows_Mapped_To_DRB_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Flows_Mapped_To_DRB_Item, qoSFlowIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_QoSFlowIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qoSFlowIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct Flows_Mapped_To_DRB_Item, qoSFlowLevelQoSParameters), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_QoSFlowLevelQoSParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qoSFlowLevelQoSParameters" + }, + { ATF_POINTER, 1, offsetof(struct Flows_Mapped_To_DRB_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P50, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_Flows_Mapped_To_DRB_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_Flows_Mapped_To_DRB_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Flows_Mapped_To_DRB_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qoSFlowIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* qoSFlowLevelQoSParameters */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Flows_Mapped_To_DRB_Item_specs_1 = { + sizeof(struct Flows_Mapped_To_DRB_Item), + offsetof(struct Flows_Mapped_To_DRB_Item, _asn_ctx), + asn_MAP_Flows_Mapped_To_DRB_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Flows_Mapped_To_DRB_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Flows_Mapped_To_DRB_Item = { + "Flows-Mapped-To-DRB-Item", + "Flows-Mapped-To-DRB-Item", + &asn_OP_SEQUENCE, + asn_DEF_Flows_Mapped_To_DRB_Item_tags_1, + sizeof(asn_DEF_Flows_Mapped_To_DRB_Item_tags_1) + /sizeof(asn_DEF_Flows_Mapped_To_DRB_Item_tags_1[0]), /* 1 */ + asn_DEF_Flows_Mapped_To_DRB_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_Flows_Mapped_To_DRB_Item_tags_1) + /sizeof(asn_DEF_Flows_Mapped_To_DRB_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Flows_Mapped_To_DRB_Item_1, + 3, /* Elements count */ + &asn_SPC_Flows_Mapped_To_DRB_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Flows-Mapped-To-DRB-Item.h b/src/du_app/F1AP/asn/Flows-Mapped-To-DRB-Item.h new file mode 100755 index 000000000..8cdb8c017 --- /dev/null +++ b/src/du_app/F1AP/asn/Flows-Mapped-To-DRB-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Flows_Mapped_To_DRB_Item_H_ +#define _Flows_Mapped_To_DRB_Item_H_ + + +#include + +/* Including external dependencies */ +#include "QoSFlowIdentifier.h" +#include "QoSFlowLevelQoSParameters.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* Flows-Mapped-To-DRB-Item */ +typedef struct Flows_Mapped_To_DRB_Item { + QoSFlowIdentifier_t qoSFlowIdentifier; + QoSFlowLevelQoSParameters_t qoSFlowLevelQoSParameters; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Flows_Mapped_To_DRB_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Flows_Mapped_To_DRB_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_Flows_Mapped_To_DRB_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_Flows_Mapped_To_DRB_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Flows_Mapped_To_DRB_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Flows-Mapped-To-DRB-List.c b/src/du_app/F1AP/asn/Flows-Mapped-To-DRB-List.c new file mode 100755 index 000000000..08f24b7d0 --- /dev/null +++ b/src/du_app/F1AP/asn/Flows-Mapped-To-DRB-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Flows-Mapped-To-DRB-List.h" + +#include "Flows-Mapped-To-DRB-Item.h" +static asn_oer_constraints_t asn_OER_type_Flows_Mapped_To_DRB_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +asn_per_constraints_t asn_PER_type_Flows_Mapped_To_DRB_List_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_Flows_Mapped_To_DRB_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Flows_Mapped_To_DRB_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Flows_Mapped_To_DRB_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Flows_Mapped_To_DRB_List_specs_1 = { + sizeof(struct Flows_Mapped_To_DRB_List), + offsetof(struct Flows_Mapped_To_DRB_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Flows_Mapped_To_DRB_List = { + "Flows-Mapped-To-DRB-List", + "Flows-Mapped-To-DRB-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_Flows_Mapped_To_DRB_List_tags_1, + sizeof(asn_DEF_Flows_Mapped_To_DRB_List_tags_1) + /sizeof(asn_DEF_Flows_Mapped_To_DRB_List_tags_1[0]), /* 1 */ + asn_DEF_Flows_Mapped_To_DRB_List_tags_1, /* Same as above */ + sizeof(asn_DEF_Flows_Mapped_To_DRB_List_tags_1) + /sizeof(asn_DEF_Flows_Mapped_To_DRB_List_tags_1[0]), /* 1 */ + { &asn_OER_type_Flows_Mapped_To_DRB_List_constr_1, &asn_PER_type_Flows_Mapped_To_DRB_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Flows_Mapped_To_DRB_List_1, + 1, /* Single element */ + &asn_SPC_Flows_Mapped_To_DRB_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Flows-Mapped-To-DRB-List.h b/src/du_app/F1AP/asn/Flows-Mapped-To-DRB-List.h new file mode 100755 index 000000000..a88e6982a --- /dev/null +++ b/src/du_app/F1AP/asn/Flows-Mapped-To-DRB-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Flows_Mapped_To_DRB_List_H_ +#define _Flows_Mapped_To_DRB_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Flows_Mapped_To_DRB_Item; + +/* Flows-Mapped-To-DRB-List */ +typedef struct Flows_Mapped_To_DRB_List { + A_SEQUENCE_OF(struct Flows_Mapped_To_DRB_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Flows_Mapped_To_DRB_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Flows_Mapped_To_DRB_List; +extern asn_SET_OF_specifics_t asn_SPC_Flows_Mapped_To_DRB_List_specs_1; +extern asn_TYPE_member_t asn_MBR_Flows_Mapped_To_DRB_List_1[1]; +extern asn_per_constraints_t asn_PER_type_Flows_Mapped_To_DRB_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Flows_Mapped_To_DRB_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/FreqBandNrItem.c b/src/du_app/F1AP/asn/FreqBandNrItem.c new file mode 100755 index 000000000..a5b038e40 --- /dev/null +++ b/src/du_app/F1AP/asn/FreqBandNrItem.c @@ -0,0 +1,186 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FreqBandNrItem.h" + +#include "ProtocolExtensionContainer.h" +#include "SupportedSULFreqBandItem.h" +static int +memb_freqBandIndicatorNr_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 1024)) { + /* 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_supportedSULBandList_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 <= 32)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_supportedSULBandList_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..32)) */}; +static asn_per_constraints_t asn_PER_type_supportedSULBandList_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 0, 32 } /* (SIZE(0..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_freqBandIndicatorNr_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_freqBandIndicatorNr_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 10, 10, 1, 1024 } /* (1..1024,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_supportedSULBandList_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..32)) */}; +static asn_per_constraints_t asn_PER_memb_supportedSULBandList_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 0, 32 } /* (SIZE(0..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_supportedSULBandList_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SupportedSULFreqBandItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_supportedSULBandList_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_supportedSULBandList_specs_3 = { + sizeof(struct FreqBandNrItem__supportedSULBandList), + offsetof(struct FreqBandNrItem__supportedSULBandList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_supportedSULBandList_3 = { + "supportedSULBandList", + "supportedSULBandList", + &asn_OP_SEQUENCE_OF, + asn_DEF_supportedSULBandList_tags_3, + sizeof(asn_DEF_supportedSULBandList_tags_3) + /sizeof(asn_DEF_supportedSULBandList_tags_3[0]) - 1, /* 1 */ + asn_DEF_supportedSULBandList_tags_3, /* Same as above */ + sizeof(asn_DEF_supportedSULBandList_tags_3) + /sizeof(asn_DEF_supportedSULBandList_tags_3[0]), /* 2 */ + { &asn_OER_type_supportedSULBandList_constr_3, &asn_PER_type_supportedSULBandList_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_supportedSULBandList_3, + 1, /* Single element */ + &asn_SPC_supportedSULBandList_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_FreqBandNrItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct FreqBandNrItem, freqBandIndicatorNr), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_freqBandIndicatorNr_constr_2, &asn_PER_memb_freqBandIndicatorNr_constr_2, memb_freqBandIndicatorNr_constraint_1 }, + 0, 0, /* No default value */ + "freqBandIndicatorNr" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreqBandNrItem, supportedSULBandList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_supportedSULBandList_3, + 0, + { &asn_OER_memb_supportedSULBandList_constr_3, &asn_PER_memb_supportedSULBandList_constr_3, memb_supportedSULBandList_constraint_1 }, + 0, 0, /* No default value */ + "supportedSULBandList" + }, + { ATF_POINTER, 1, offsetof(struct FreqBandNrItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P51, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_FreqBandNrItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_FreqBandNrItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_FreqBandNrItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* freqBandIndicatorNr */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* supportedSULBandList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_FreqBandNrItem_specs_1 = { + sizeof(struct FreqBandNrItem), + offsetof(struct FreqBandNrItem, _asn_ctx), + asn_MAP_FreqBandNrItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_FreqBandNrItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FreqBandNrItem = { + "FreqBandNrItem", + "FreqBandNrItem", + &asn_OP_SEQUENCE, + asn_DEF_FreqBandNrItem_tags_1, + sizeof(asn_DEF_FreqBandNrItem_tags_1) + /sizeof(asn_DEF_FreqBandNrItem_tags_1[0]), /* 1 */ + asn_DEF_FreqBandNrItem_tags_1, /* Same as above */ + sizeof(asn_DEF_FreqBandNrItem_tags_1) + /sizeof(asn_DEF_FreqBandNrItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FreqBandNrItem_1, + 3, /* Elements count */ + &asn_SPC_FreqBandNrItem_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/FreqBandNrItem.h b/src/du_app/F1AP/asn/FreqBandNrItem.h new file mode 100755 index 000000000..a5919360c --- /dev/null +++ b/src/du_app/F1AP/asn/FreqBandNrItem.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FreqBandNrItem_H_ +#define _FreqBandNrItem_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; +struct SupportedSULFreqBandItem; + +/* FreqBandNrItem */ +typedef struct FreqBandNrItem { + long freqBandIndicatorNr; + struct FreqBandNrItem__supportedSULBandList { + A_SEQUENCE_OF(struct SupportedSULFreqBandItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } supportedSULBandList; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FreqBandNrItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FreqBandNrItem; +extern asn_SEQUENCE_specifics_t asn_SPC_FreqBandNrItem_specs_1; +extern asn_TYPE_member_t asn_MBR_FreqBandNrItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FreqBandNrItem_H_ */ +#include diff --git a/src/du_app/F1AP/asn/FullConfiguration.c b/src/du_app/F1AP/asn/FullConfiguration.c new file mode 100755 index 000000000..c52b86658 --- /dev/null +++ b/src/du_app/F1AP/asn/FullConfiguration.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FullConfiguration.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_FullConfiguration_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_FullConfiguration_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_FullConfiguration_value2enum_1[] = { + { 0, 4, "full" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_FullConfiguration_enum2value_1[] = { + 0 /* full(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_FullConfiguration_specs_1 = { + asn_MAP_FullConfiguration_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_FullConfiguration_enum2value_1, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_FullConfiguration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FullConfiguration = { + "FullConfiguration", + "FullConfiguration", + &asn_OP_NativeEnumerated, + asn_DEF_FullConfiguration_tags_1, + sizeof(asn_DEF_FullConfiguration_tags_1) + /sizeof(asn_DEF_FullConfiguration_tags_1[0]), /* 1 */ + asn_DEF_FullConfiguration_tags_1, /* Same as above */ + sizeof(asn_DEF_FullConfiguration_tags_1) + /sizeof(asn_DEF_FullConfiguration_tags_1[0]), /* 1 */ + { &asn_OER_type_FullConfiguration_constr_1, &asn_PER_type_FullConfiguration_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_FullConfiguration_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/FullConfiguration.h b/src/du_app/F1AP/asn/FullConfiguration.h new file mode 100755 index 000000000..5ab1dea0b --- /dev/null +++ b/src/du_app/F1AP/asn/FullConfiguration.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FullConfiguration_H_ +#define _FullConfiguration_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum FullConfiguration { + FullConfiguration_full = 0 + /* + * Enumeration is extensible + */ +} e_FullConfiguration; + +/* FullConfiguration */ +typedef long FullConfiguration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FullConfiguration; +asn_struct_free_f FullConfiguration_free; +asn_struct_print_f FullConfiguration_print; +asn_constr_check_f FullConfiguration_constraint; +ber_type_decoder_f FullConfiguration_decode_ber; +der_type_encoder_f FullConfiguration_encode_der; +xer_type_decoder_f FullConfiguration_decode_xer; +xer_type_encoder_f FullConfiguration_encode_xer; +oer_type_decoder_f FullConfiguration_decode_oer; +oer_type_encoder_f FullConfiguration_encode_oer; +per_type_decoder_f FullConfiguration_decode_uper; +per_type_encoder_f FullConfiguration_encode_uper; +per_type_decoder_f FullConfiguration_decode_aper; +per_type_encoder_f FullConfiguration_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _FullConfiguration_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GBR-QoSFlowInformation.c b/src/du_app/F1AP/asn/GBR-QoSFlowInformation.c new file mode 100755 index 000000000..a31f1d5bd --- /dev/null +++ b/src/du_app/F1AP/asn/GBR-QoSFlowInformation.c @@ -0,0 +1,113 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GBR-QoSFlowInformation.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_GBR_QoSFlowInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GBR_QoSFlowInformation, maxFlowBitRateDownlink), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxFlowBitRateDownlink" + }, + { ATF_NOFLAGS, 0, offsetof(struct GBR_QoSFlowInformation, maxFlowBitRateUplink), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxFlowBitRateUplink" + }, + { ATF_NOFLAGS, 0, offsetof(struct GBR_QoSFlowInformation, guaranteedFlowBitRateDownlink), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "guaranteedFlowBitRateDownlink" + }, + { ATF_NOFLAGS, 0, offsetof(struct GBR_QoSFlowInformation, guaranteedFlowBitRateUplink), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "guaranteedFlowBitRateUplink" + }, + { ATF_POINTER, 3, offsetof(struct GBR_QoSFlowInformation, maxPacketLossRateDownlink), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MaxPacketLossRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxPacketLossRateDownlink" + }, + { ATF_POINTER, 2, offsetof(struct GBR_QoSFlowInformation, maxPacketLossRateUplink), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MaxPacketLossRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxPacketLossRateUplink" + }, + { ATF_POINTER, 1, offsetof(struct GBR_QoSFlowInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P53, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_GBR_QoSFlowInformation_oms_1[] = { 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_GBR_QoSFlowInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GBR_QoSFlowInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxFlowBitRateDownlink */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* maxFlowBitRateUplink */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* guaranteedFlowBitRateDownlink */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* guaranteedFlowBitRateUplink */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* maxPacketLossRateDownlink */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* maxPacketLossRateUplink */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GBR_QoSFlowInformation_specs_1 = { + sizeof(struct GBR_QoSFlowInformation), + offsetof(struct GBR_QoSFlowInformation, _asn_ctx), + asn_MAP_GBR_QoSFlowInformation_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_GBR_QoSFlowInformation_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GBR_QoSFlowInformation = { + "GBR-QoSFlowInformation", + "GBR-QoSFlowInformation", + &asn_OP_SEQUENCE, + asn_DEF_GBR_QoSFlowInformation_tags_1, + sizeof(asn_DEF_GBR_QoSFlowInformation_tags_1) + /sizeof(asn_DEF_GBR_QoSFlowInformation_tags_1[0]), /* 1 */ + asn_DEF_GBR_QoSFlowInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_GBR_QoSFlowInformation_tags_1) + /sizeof(asn_DEF_GBR_QoSFlowInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GBR_QoSFlowInformation_1, + 7, /* Elements count */ + &asn_SPC_GBR_QoSFlowInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GBR-QoSFlowInformation.h b/src/du_app/F1AP/asn/GBR-QoSFlowInformation.h new file mode 100755 index 000000000..9e207d1e2 --- /dev/null +++ b/src/du_app/F1AP/asn/GBR-QoSFlowInformation.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GBR_QoSFlowInformation_H_ +#define _GBR_QoSFlowInformation_H_ + + +#include + +/* Including external dependencies */ +#include "BitRate.h" +#include "MaxPacketLossRate.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* GBR-QoSFlowInformation */ +typedef struct GBR_QoSFlowInformation { + BitRate_t maxFlowBitRateDownlink; + BitRate_t maxFlowBitRateUplink; + BitRate_t guaranteedFlowBitRateDownlink; + BitRate_t guaranteedFlowBitRateUplink; + MaxPacketLossRate_t *maxPacketLossRateDownlink; /* OPTIONAL */ + MaxPacketLossRate_t *maxPacketLossRateUplink; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GBR_QoSFlowInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GBR_QoSFlowInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_GBR_QoSFlowInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_GBR_QoSFlowInformation_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GBR_QoSFlowInformation_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GBR-QosInformation.c b/src/du_app/F1AP/asn/GBR-QosInformation.c new file mode 100755 index 000000000..60a05fd0f --- /dev/null +++ b/src/du_app/F1AP/asn/GBR-QosInformation.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GBR-QosInformation.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_GBR_QosInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GBR_QosInformation, e_RAB_MaximumBitrateDL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e-RAB-MaximumBitrateDL" + }, + { ATF_NOFLAGS, 0, offsetof(struct GBR_QosInformation, e_RAB_MaximumBitrateUL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e-RAB-MaximumBitrateUL" + }, + { ATF_NOFLAGS, 0, offsetof(struct GBR_QosInformation, e_RAB_GuaranteedBitrateDL), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e-RAB-GuaranteedBitrateDL" + }, + { ATF_NOFLAGS, 0, offsetof(struct GBR_QosInformation, e_RAB_GuaranteedBitrateUL), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e-RAB-GuaranteedBitrateUL" + }, + { ATF_POINTER, 1, offsetof(struct GBR_QosInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P52, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_GBR_QosInformation_oms_1[] = { 4 }; +static const ber_tlv_tag_t asn_DEF_GBR_QosInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GBR_QosInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-MaximumBitrateDL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e-RAB-MaximumBitrateUL */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* e-RAB-GuaranteedBitrateDL */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* e-RAB-GuaranteedBitrateUL */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GBR_QosInformation_specs_1 = { + sizeof(struct GBR_QosInformation), + offsetof(struct GBR_QosInformation, _asn_ctx), + asn_MAP_GBR_QosInformation_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_GBR_QosInformation_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GBR_QosInformation = { + "GBR-QosInformation", + "GBR-QosInformation", + &asn_OP_SEQUENCE, + asn_DEF_GBR_QosInformation_tags_1, + sizeof(asn_DEF_GBR_QosInformation_tags_1) + /sizeof(asn_DEF_GBR_QosInformation_tags_1[0]), /* 1 */ + asn_DEF_GBR_QosInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_GBR_QosInformation_tags_1) + /sizeof(asn_DEF_GBR_QosInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GBR_QosInformation_1, + 5, /* Elements count */ + &asn_SPC_GBR_QosInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GBR-QosInformation.h b/src/du_app/F1AP/asn/GBR-QosInformation.h new file mode 100755 index 000000000..fa72284a8 --- /dev/null +++ b/src/du_app/F1AP/asn/GBR-QosInformation.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GBR_QosInformation_H_ +#define _GBR_QosInformation_H_ + + +#include + +/* Including external dependencies */ +#include "BitRate.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* GBR-QosInformation */ +typedef struct GBR_QosInformation { + BitRate_t e_RAB_MaximumBitrateDL; + BitRate_t e_RAB_MaximumBitrateUL; + BitRate_t e_RAB_GuaranteedBitrateDL; + BitRate_t e_RAB_GuaranteedBitrateUL; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GBR_QosInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GBR_QosInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_GBR_QosInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_GBR_QosInformation_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GBR_QosInformation_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNB-CU-Name.c b/src/du_app/F1AP/asn/GNB-CU-Name.c new file mode 100755 index 000000000..9e942cdb6 --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-CU-Name.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNB-CU-Name.h" + +static const int permitted_alphabet_table_1[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ +10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ + 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ +38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ + 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ +64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ +}; +static const int permitted_alphabet_code2value_1[74] = { +32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, +55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, +75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, +97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, +113,114,115,116,117,118,119,120,121,122,}; + + +static int check_permitted_alphabet_1(const void *sptr) { + const int *table = permitted_alphabet_table_1; + /* The underlying type is PrintableString */ + const PrintableString_t *st = (const PrintableString_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!table[cv]) return -1; + } + return 0; +} + +int +GNB_CU_Name_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const PrintableString_t *st = (const PrintableString_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 150) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int asn_PER_MAP_GNB_CU_Name_1_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) + return -1; + return permitted_alphabet_table_1[value] - 1; +} +static int asn_PER_MAP_GNB_CU_Name_1_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) + return -1; + return permitted_alphabet_code2value_1[code]; +} +/* + * This type is implemented using PrintableString, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_GNB_CU_Name_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_type_GNB_CU_Name_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, + asn_PER_MAP_GNB_CU_Name_1_v2c, /* Value to PER code map */ + asn_PER_MAP_GNB_CU_Name_1_c2v /* PER code to value map */ +}; +static const ber_tlv_tag_t asn_DEF_GNB_CU_Name_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GNB_CU_Name = { + "GNB-CU-Name", + "GNB-CU-Name", + &asn_OP_PrintableString, + asn_DEF_GNB_CU_Name_tags_1, + sizeof(asn_DEF_GNB_CU_Name_tags_1) + /sizeof(asn_DEF_GNB_CU_Name_tags_1[0]), /* 1 */ + asn_DEF_GNB_CU_Name_tags_1, /* Same as above */ + sizeof(asn_DEF_GNB_CU_Name_tags_1) + /sizeof(asn_DEF_GNB_CU_Name_tags_1[0]), /* 1 */ + { &asn_OER_type_GNB_CU_Name_constr_1, &asn_PER_type_GNB_CU_Name_constr_1, GNB_CU_Name_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/GNB-CU-Name.h b/src/du_app/F1AP/asn/GNB-CU-Name.h new file mode 100755 index 000000000..339a70d98 --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-CU-Name.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNB_CU_Name_H_ +#define _GNB_CU_Name_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* GNB-CU-Name */ +typedef PrintableString_t GNB_CU_Name_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_Name; +asn_struct_free_f GNB_CU_Name_free; +asn_struct_print_f GNB_CU_Name_print; +asn_constr_check_f GNB_CU_Name_constraint; +ber_type_decoder_f GNB_CU_Name_decode_ber; +der_type_encoder_f GNB_CU_Name_encode_der; +xer_type_decoder_f GNB_CU_Name_decode_xer; +xer_type_encoder_f GNB_CU_Name_encode_xer; +oer_type_decoder_f GNB_CU_Name_decode_oer; +oer_type_encoder_f GNB_CU_Name_encode_oer; +per_type_decoder_f GNB_CU_Name_decode_uper; +per_type_encoder_f GNB_CU_Name_encode_uper; +per_type_decoder_f GNB_CU_Name_decode_aper; +per_type_encoder_f GNB_CU_Name_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNB_CU_Name_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNB-CU-TNL-Association-Failed-To-Setup-Item.c b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-Failed-To-Setup-Item.c new file mode 100755 index 000000000..d57febfa4 --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-Failed-To-Setup-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNB-CU-TNL-Association-Failed-To-Setup-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_Failed_To_Setup_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_Failed_To_Setup_Item, tNLAssociationTransportLayerAddress), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_CP_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tNLAssociationTransportLayerAddress" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_Failed_To_Setup_Item, cause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 1, offsetof(struct GNB_CU_TNL_Association_Failed_To_Setup_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P56, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_GNB_CU_TNL_Association_Failed_To_Setup_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNB_CU_TNL_Association_Failed_To_Setup_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tNLAssociationTransportLayerAddress */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_GNB_CU_TNL_Association_Failed_To_Setup_Item_specs_1 = { + sizeof(struct GNB_CU_TNL_Association_Failed_To_Setup_Item), + offsetof(struct GNB_CU_TNL_Association_Failed_To_Setup_Item, _asn_ctx), + asn_MAP_GNB_CU_TNL_Association_Failed_To_Setup_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_GNB_CU_TNL_Association_Failed_To_Setup_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_Item = { + "GNB-CU-TNL-Association-Failed-To-Setup-Item", + "GNB-CU-TNL-Association-Failed-To-Setup-Item", + &asn_OP_SEQUENCE, + asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_Item_tags_1, + sizeof(asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_Item_tags_1) + /sizeof(asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_Item_tags_1[0]), /* 1 */ + asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_Item_tags_1) + /sizeof(asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_CU_TNL_Association_Failed_To_Setup_Item_1, + 3, /* Elements count */ + &asn_SPC_GNB_CU_TNL_Association_Failed_To_Setup_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNB-CU-TNL-Association-Failed-To-Setup-Item.h b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-Failed-To-Setup-Item.h new file mode 100755 index 000000000..589d3231a --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-Failed-To-Setup-Item.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNB_CU_TNL_Association_Failed_To_Setup_Item_H_ +#define _GNB_CU_TNL_Association_Failed_To_Setup_Item_H_ + + +#include + +/* Including external dependencies */ +#include "CP-TransportLayerAddress.h" +#include "Cause.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* GNB-CU-TNL-Association-Failed-To-Setup-Item */ +typedef struct GNB_CU_TNL_Association_Failed_To_Setup_Item { + CP_TransportLayerAddress_t tNLAssociationTransportLayerAddress; + Cause_t cause; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_CU_TNL_Association_Failed_To_Setup_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNB_CU_TNL_Association_Failed_To_Setup_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNB-CU-TNL-Association-Failed-To-Setup-List.c b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-Failed-To-Setup-List.c new file mode 100755 index 000000000..57ed27802 --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-Failed-To-Setup-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNB-CU-TNL-Association-Failed-To-Setup-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_GNB_CU_TNL_Association_Failed_To_Setup_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_GNB_CU_TNL_Association_Failed_To_Setup_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_Failed_To_Setup_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_GNB_CU_TNL_Association_Failed_To_Setup_List_specs_1 = { + sizeof(struct GNB_CU_TNL_Association_Failed_To_Setup_List), + offsetof(struct GNB_CU_TNL_Association_Failed_To_Setup_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_List = { + "GNB-CU-TNL-Association-Failed-To-Setup-List", + "GNB-CU-TNL-Association-Failed-To-Setup-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_List_tags_1, + sizeof(asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_List_tags_1) + /sizeof(asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_List_tags_1[0]), /* 1 */ + asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_List_tags_1, /* Same as above */ + sizeof(asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_List_tags_1) + /sizeof(asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_List_tags_1[0]), /* 1 */ + { &asn_OER_type_GNB_CU_TNL_Association_Failed_To_Setup_List_constr_1, &asn_PER_type_GNB_CU_TNL_Association_Failed_To_Setup_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_GNB_CU_TNL_Association_Failed_To_Setup_List_1, + 1, /* Single element */ + &asn_SPC_GNB_CU_TNL_Association_Failed_To_Setup_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNB-CU-TNL-Association-Failed-To-Setup-List.h b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-Failed-To-Setup-List.h new file mode 100755 index 000000000..c43973a33 --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-Failed-To-Setup-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNB_CU_TNL_Association_Failed_To_Setup_List_H_ +#define _GNB_CU_TNL_Association_Failed_To_Setup_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* GNB-CU-TNL-Association-Failed-To-Setup-List */ +typedef struct GNB_CU_TNL_Association_Failed_To_Setup_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_CU_TNL_Association_Failed_To_Setup_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNB_CU_TNL_Association_Failed_To_Setup_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNB-CU-TNL-Association-Setup-Item.c b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-Setup-Item.c new file mode 100755 index 000000000..57b574ab6 --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-Setup-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNB-CU-TNL-Association-Setup-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_Setup_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_Setup_Item, tNLAssociationTransportLayerAddress), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_CP_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tNLAssociationTransportLayerAddress" + }, + { ATF_POINTER, 1, offsetof(struct GNB_CU_TNL_Association_Setup_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P55, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_GNB_CU_TNL_Association_Setup_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_GNB_CU_TNL_Association_Setup_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNB_CU_TNL_Association_Setup_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tNLAssociationTransportLayerAddress */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_GNB_CU_TNL_Association_Setup_Item_specs_1 = { + sizeof(struct GNB_CU_TNL_Association_Setup_Item), + offsetof(struct GNB_CU_TNL_Association_Setup_Item, _asn_ctx), + asn_MAP_GNB_CU_TNL_Association_Setup_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_GNB_CU_TNL_Association_Setup_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_Setup_Item = { + "GNB-CU-TNL-Association-Setup-Item", + "GNB-CU-TNL-Association-Setup-Item", + &asn_OP_SEQUENCE, + asn_DEF_GNB_CU_TNL_Association_Setup_Item_tags_1, + sizeof(asn_DEF_GNB_CU_TNL_Association_Setup_Item_tags_1) + /sizeof(asn_DEF_GNB_CU_TNL_Association_Setup_Item_tags_1[0]), /* 1 */ + asn_DEF_GNB_CU_TNL_Association_Setup_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_GNB_CU_TNL_Association_Setup_Item_tags_1) + /sizeof(asn_DEF_GNB_CU_TNL_Association_Setup_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_CU_TNL_Association_Setup_Item_1, + 2, /* Elements count */ + &asn_SPC_GNB_CU_TNL_Association_Setup_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNB-CU-TNL-Association-Setup-Item.h b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-Setup-Item.h new file mode 100755 index 000000000..f3b9485a5 --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-Setup-Item.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNB_CU_TNL_Association_Setup_Item_H_ +#define _GNB_CU_TNL_Association_Setup_Item_H_ + + +#include + +/* Including external dependencies */ +#include "CP-TransportLayerAddress.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* GNB-CU-TNL-Association-Setup-Item */ +typedef struct GNB_CU_TNL_Association_Setup_Item { + CP_TransportLayerAddress_t tNLAssociationTransportLayerAddress; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_CU_TNL_Association_Setup_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_Setup_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNB_CU_TNL_Association_Setup_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNB-CU-TNL-Association-Setup-List.c b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-Setup-List.c new file mode 100755 index 000000000..d85861afa --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-Setup-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNB-CU-TNL-Association-Setup-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_GNB_CU_TNL_Association_Setup_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_GNB_CU_TNL_Association_Setup_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_Setup_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNB_CU_TNL_Association_Setup_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_GNB_CU_TNL_Association_Setup_List_specs_1 = { + sizeof(struct GNB_CU_TNL_Association_Setup_List), + offsetof(struct GNB_CU_TNL_Association_Setup_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_Setup_List = { + "GNB-CU-TNL-Association-Setup-List", + "GNB-CU-TNL-Association-Setup-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_GNB_CU_TNL_Association_Setup_List_tags_1, + sizeof(asn_DEF_GNB_CU_TNL_Association_Setup_List_tags_1) + /sizeof(asn_DEF_GNB_CU_TNL_Association_Setup_List_tags_1[0]), /* 1 */ + asn_DEF_GNB_CU_TNL_Association_Setup_List_tags_1, /* Same as above */ + sizeof(asn_DEF_GNB_CU_TNL_Association_Setup_List_tags_1) + /sizeof(asn_DEF_GNB_CU_TNL_Association_Setup_List_tags_1[0]), /* 1 */ + { &asn_OER_type_GNB_CU_TNL_Association_Setup_List_constr_1, &asn_PER_type_GNB_CU_TNL_Association_Setup_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_GNB_CU_TNL_Association_Setup_List_1, + 1, /* Single element */ + &asn_SPC_GNB_CU_TNL_Association_Setup_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNB-CU-TNL-Association-Setup-List.h b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-Setup-List.h new file mode 100755 index 000000000..ec78ed80d --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-Setup-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNB_CU_TNL_Association_Setup_List_H_ +#define _GNB_CU_TNL_Association_Setup_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* GNB-CU-TNL-Association-Setup-List */ +typedef struct GNB_CU_TNL_Association_Setup_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_CU_TNL_Association_Setup_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_Setup_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNB_CU_TNL_Association_Setup_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Add-Item.c b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Add-Item.c new file mode 100755 index 000000000..742c14480 --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Add-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNB-CU-TNL-Association-To-Add-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_To_Add_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_To_Add_Item, tNLAssociationTransportLayerAddress), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_CP_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tNLAssociationTransportLayerAddress" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_To_Add_Item, tNLAssociationUsage), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TNLAssociationUsage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tNLAssociationUsage" + }, + { ATF_POINTER, 1, offsetof(struct GNB_CU_TNL_Association_To_Add_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P57, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_GNB_CU_TNL_Association_To_Add_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_GNB_CU_TNL_Association_To_Add_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNB_CU_TNL_Association_To_Add_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tNLAssociationTransportLayerAddress */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tNLAssociationUsage */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_GNB_CU_TNL_Association_To_Add_Item_specs_1 = { + sizeof(struct GNB_CU_TNL_Association_To_Add_Item), + offsetof(struct GNB_CU_TNL_Association_To_Add_Item, _asn_ctx), + asn_MAP_GNB_CU_TNL_Association_To_Add_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_GNB_CU_TNL_Association_To_Add_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_To_Add_Item = { + "GNB-CU-TNL-Association-To-Add-Item", + "GNB-CU-TNL-Association-To-Add-Item", + &asn_OP_SEQUENCE, + asn_DEF_GNB_CU_TNL_Association_To_Add_Item_tags_1, + sizeof(asn_DEF_GNB_CU_TNL_Association_To_Add_Item_tags_1) + /sizeof(asn_DEF_GNB_CU_TNL_Association_To_Add_Item_tags_1[0]), /* 1 */ + asn_DEF_GNB_CU_TNL_Association_To_Add_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_GNB_CU_TNL_Association_To_Add_Item_tags_1) + /sizeof(asn_DEF_GNB_CU_TNL_Association_To_Add_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_CU_TNL_Association_To_Add_Item_1, + 3, /* Elements count */ + &asn_SPC_GNB_CU_TNL_Association_To_Add_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Add-Item.h b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Add-Item.h new file mode 100755 index 000000000..0ebc5b1ba --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Add-Item.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNB_CU_TNL_Association_To_Add_Item_H_ +#define _GNB_CU_TNL_Association_To_Add_Item_H_ + + +#include + +/* Including external dependencies */ +#include "CP-TransportLayerAddress.h" +#include "TNLAssociationUsage.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* GNB-CU-TNL-Association-To-Add-Item */ +typedef struct GNB_CU_TNL_Association_To_Add_Item { + CP_TransportLayerAddress_t tNLAssociationTransportLayerAddress; + TNLAssociationUsage_t tNLAssociationUsage; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_CU_TNL_Association_To_Add_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_To_Add_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNB_CU_TNL_Association_To_Add_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Add-List.c b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Add-List.c new file mode 100755 index 000000000..f09d1bf35 --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Add-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNB-CU-TNL-Association-To-Add-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_GNB_CU_TNL_Association_To_Add_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_GNB_CU_TNL_Association_To_Add_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_To_Add_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNB_CU_TNL_Association_To_Add_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_GNB_CU_TNL_Association_To_Add_List_specs_1 = { + sizeof(struct GNB_CU_TNL_Association_To_Add_List), + offsetof(struct GNB_CU_TNL_Association_To_Add_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_To_Add_List = { + "GNB-CU-TNL-Association-To-Add-List", + "GNB-CU-TNL-Association-To-Add-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_GNB_CU_TNL_Association_To_Add_List_tags_1, + sizeof(asn_DEF_GNB_CU_TNL_Association_To_Add_List_tags_1) + /sizeof(asn_DEF_GNB_CU_TNL_Association_To_Add_List_tags_1[0]), /* 1 */ + asn_DEF_GNB_CU_TNL_Association_To_Add_List_tags_1, /* Same as above */ + sizeof(asn_DEF_GNB_CU_TNL_Association_To_Add_List_tags_1) + /sizeof(asn_DEF_GNB_CU_TNL_Association_To_Add_List_tags_1[0]), /* 1 */ + { &asn_OER_type_GNB_CU_TNL_Association_To_Add_List_constr_1, &asn_PER_type_GNB_CU_TNL_Association_To_Add_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_GNB_CU_TNL_Association_To_Add_List_1, + 1, /* Single element */ + &asn_SPC_GNB_CU_TNL_Association_To_Add_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Add-List.h b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Add-List.h new file mode 100755 index 000000000..ffcb3ef9b --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Add-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNB_CU_TNL_Association_To_Add_List_H_ +#define _GNB_CU_TNL_Association_To_Add_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* GNB-CU-TNL-Association-To-Add-List */ +typedef struct GNB_CU_TNL_Association_To_Add_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_CU_TNL_Association_To_Add_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_To_Add_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNB_CU_TNL_Association_To_Add_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Remove-Item.c b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Remove-Item.c new file mode 100755 index 000000000..5dde88033 --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Remove-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNB-CU-TNL-Association-To-Remove-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_To_Remove_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_To_Remove_Item, tNLAssociationTransportLayerAddress), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_CP_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tNLAssociationTransportLayerAddress" + }, + { ATF_POINTER, 1, offsetof(struct GNB_CU_TNL_Association_To_Remove_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P58, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_GNB_CU_TNL_Association_To_Remove_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_GNB_CU_TNL_Association_To_Remove_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNB_CU_TNL_Association_To_Remove_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tNLAssociationTransportLayerAddress */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_GNB_CU_TNL_Association_To_Remove_Item_specs_1 = { + sizeof(struct GNB_CU_TNL_Association_To_Remove_Item), + offsetof(struct GNB_CU_TNL_Association_To_Remove_Item, _asn_ctx), + asn_MAP_GNB_CU_TNL_Association_To_Remove_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_GNB_CU_TNL_Association_To_Remove_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_To_Remove_Item = { + "GNB-CU-TNL-Association-To-Remove-Item", + "GNB-CU-TNL-Association-To-Remove-Item", + &asn_OP_SEQUENCE, + asn_DEF_GNB_CU_TNL_Association_To_Remove_Item_tags_1, + sizeof(asn_DEF_GNB_CU_TNL_Association_To_Remove_Item_tags_1) + /sizeof(asn_DEF_GNB_CU_TNL_Association_To_Remove_Item_tags_1[0]), /* 1 */ + asn_DEF_GNB_CU_TNL_Association_To_Remove_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_GNB_CU_TNL_Association_To_Remove_Item_tags_1) + /sizeof(asn_DEF_GNB_CU_TNL_Association_To_Remove_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_CU_TNL_Association_To_Remove_Item_1, + 2, /* Elements count */ + &asn_SPC_GNB_CU_TNL_Association_To_Remove_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Remove-Item.h b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Remove-Item.h new file mode 100755 index 000000000..696286da8 --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Remove-Item.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNB_CU_TNL_Association_To_Remove_Item_H_ +#define _GNB_CU_TNL_Association_To_Remove_Item_H_ + + +#include + +/* Including external dependencies */ +#include "CP-TransportLayerAddress.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* GNB-CU-TNL-Association-To-Remove-Item */ +typedef struct GNB_CU_TNL_Association_To_Remove_Item { + CP_TransportLayerAddress_t tNLAssociationTransportLayerAddress; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_CU_TNL_Association_To_Remove_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_To_Remove_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNB_CU_TNL_Association_To_Remove_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Remove-List.c b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Remove-List.c new file mode 100755 index 000000000..dae9934ec --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Remove-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNB-CU-TNL-Association-To-Remove-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_GNB_CU_TNL_Association_To_Remove_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_GNB_CU_TNL_Association_To_Remove_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_To_Remove_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNB_CU_TNL_Association_To_Remove_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_GNB_CU_TNL_Association_To_Remove_List_specs_1 = { + sizeof(struct GNB_CU_TNL_Association_To_Remove_List), + offsetof(struct GNB_CU_TNL_Association_To_Remove_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_To_Remove_List = { + "GNB-CU-TNL-Association-To-Remove-List", + "GNB-CU-TNL-Association-To-Remove-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_GNB_CU_TNL_Association_To_Remove_List_tags_1, + sizeof(asn_DEF_GNB_CU_TNL_Association_To_Remove_List_tags_1) + /sizeof(asn_DEF_GNB_CU_TNL_Association_To_Remove_List_tags_1[0]), /* 1 */ + asn_DEF_GNB_CU_TNL_Association_To_Remove_List_tags_1, /* Same as above */ + sizeof(asn_DEF_GNB_CU_TNL_Association_To_Remove_List_tags_1) + /sizeof(asn_DEF_GNB_CU_TNL_Association_To_Remove_List_tags_1[0]), /* 1 */ + { &asn_OER_type_GNB_CU_TNL_Association_To_Remove_List_constr_1, &asn_PER_type_GNB_CU_TNL_Association_To_Remove_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_GNB_CU_TNL_Association_To_Remove_List_1, + 1, /* Single element */ + &asn_SPC_GNB_CU_TNL_Association_To_Remove_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Remove-List.h b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Remove-List.h new file mode 100755 index 000000000..02cee9fb1 --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Remove-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNB_CU_TNL_Association_To_Remove_List_H_ +#define _GNB_CU_TNL_Association_To_Remove_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* GNB-CU-TNL-Association-To-Remove-List */ +typedef struct GNB_CU_TNL_Association_To_Remove_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_CU_TNL_Association_To_Remove_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_To_Remove_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNB_CU_TNL_Association_To_Remove_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Update-Item.c b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Update-Item.c new file mode 100755 index 000000000..ed5165f9d --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Update-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNB-CU-TNL-Association-To-Update-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_To_Update_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_To_Update_Item, tNLAssociationTransportLayerAddress), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_CP_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tNLAssociationTransportLayerAddress" + }, + { ATF_POINTER, 2, offsetof(struct GNB_CU_TNL_Association_To_Update_Item, tNLAssociationUsage), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TNLAssociationUsage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tNLAssociationUsage" + }, + { ATF_POINTER, 1, offsetof(struct GNB_CU_TNL_Association_To_Update_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P59, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_GNB_CU_TNL_Association_To_Update_Item_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_GNB_CU_TNL_Association_To_Update_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNB_CU_TNL_Association_To_Update_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tNLAssociationTransportLayerAddress */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tNLAssociationUsage */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_GNB_CU_TNL_Association_To_Update_Item_specs_1 = { + sizeof(struct GNB_CU_TNL_Association_To_Update_Item), + offsetof(struct GNB_CU_TNL_Association_To_Update_Item, _asn_ctx), + asn_MAP_GNB_CU_TNL_Association_To_Update_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_GNB_CU_TNL_Association_To_Update_Item_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_To_Update_Item = { + "GNB-CU-TNL-Association-To-Update-Item", + "GNB-CU-TNL-Association-To-Update-Item", + &asn_OP_SEQUENCE, + asn_DEF_GNB_CU_TNL_Association_To_Update_Item_tags_1, + sizeof(asn_DEF_GNB_CU_TNL_Association_To_Update_Item_tags_1) + /sizeof(asn_DEF_GNB_CU_TNL_Association_To_Update_Item_tags_1[0]), /* 1 */ + asn_DEF_GNB_CU_TNL_Association_To_Update_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_GNB_CU_TNL_Association_To_Update_Item_tags_1) + /sizeof(asn_DEF_GNB_CU_TNL_Association_To_Update_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_CU_TNL_Association_To_Update_Item_1, + 3, /* Elements count */ + &asn_SPC_GNB_CU_TNL_Association_To_Update_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Update-Item.h b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Update-Item.h new file mode 100755 index 000000000..ca1790d0c --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Update-Item.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNB_CU_TNL_Association_To_Update_Item_H_ +#define _GNB_CU_TNL_Association_To_Update_Item_H_ + + +#include + +/* Including external dependencies */ +#include "CP-TransportLayerAddress.h" +#include "TNLAssociationUsage.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* GNB-CU-TNL-Association-To-Update-Item */ +typedef struct GNB_CU_TNL_Association_To_Update_Item { + CP_TransportLayerAddress_t tNLAssociationTransportLayerAddress; + TNLAssociationUsage_t *tNLAssociationUsage; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_CU_TNL_Association_To_Update_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_To_Update_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNB_CU_TNL_Association_To_Update_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Update-List.c b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Update-List.c new file mode 100755 index 000000000..8eb3f2333 --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Update-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNB-CU-TNL-Association-To-Update-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_GNB_CU_TNL_Association_To_Update_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_GNB_CU_TNL_Association_To_Update_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_To_Update_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNB_CU_TNL_Association_To_Update_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_GNB_CU_TNL_Association_To_Update_List_specs_1 = { + sizeof(struct GNB_CU_TNL_Association_To_Update_List), + offsetof(struct GNB_CU_TNL_Association_To_Update_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_To_Update_List = { + "GNB-CU-TNL-Association-To-Update-List", + "GNB-CU-TNL-Association-To-Update-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_GNB_CU_TNL_Association_To_Update_List_tags_1, + sizeof(asn_DEF_GNB_CU_TNL_Association_To_Update_List_tags_1) + /sizeof(asn_DEF_GNB_CU_TNL_Association_To_Update_List_tags_1[0]), /* 1 */ + asn_DEF_GNB_CU_TNL_Association_To_Update_List_tags_1, /* Same as above */ + sizeof(asn_DEF_GNB_CU_TNL_Association_To_Update_List_tags_1) + /sizeof(asn_DEF_GNB_CU_TNL_Association_To_Update_List_tags_1[0]), /* 1 */ + { &asn_OER_type_GNB_CU_TNL_Association_To_Update_List_constr_1, &asn_PER_type_GNB_CU_TNL_Association_To_Update_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_GNB_CU_TNL_Association_To_Update_List_1, + 1, /* Single element */ + &asn_SPC_GNB_CU_TNL_Association_To_Update_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Update-List.h b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Update-List.h new file mode 100755 index 000000000..3a59fe16e --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-CU-TNL-Association-To-Update-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNB_CU_TNL_Association_To_Update_List_H_ +#define _GNB_CU_TNL_Association_To_Update_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* GNB-CU-TNL-Association-To-Update-List */ +typedef struct GNB_CU_TNL_Association_To_Update_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_CU_TNL_Association_To_Update_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_To_Update_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNB_CU_TNL_Association_To_Update_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNB-CU-UE-F1AP-ID.c b/src/du_app/F1AP/asn/GNB-CU-UE-F1AP-ID.c new file mode 100755 index 000000000..d8f1653e0 --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-CU-UE-F1AP-ID.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNB-CU-UE-F1AP-ID.h" + +int +GNB_CU_UE_F1AP_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + /* Constraint check succeeded */ + return 0; +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_GNB_CU_UE_F1AP_ID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..4294967295) */, + -1}; +asn_per_constraints_t asn_PER_type_GNB_CU_UE_F1AP_ID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +const asn_INTEGER_specifics_t asn_SPC_GNB_CU_UE_F1AP_ID_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_GNB_CU_UE_F1AP_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GNB_CU_UE_F1AP_ID = { + "GNB-CU-UE-F1AP-ID", + "GNB-CU-UE-F1AP-ID", + &asn_OP_NativeInteger, + asn_DEF_GNB_CU_UE_F1AP_ID_tags_1, + sizeof(asn_DEF_GNB_CU_UE_F1AP_ID_tags_1) + /sizeof(asn_DEF_GNB_CU_UE_F1AP_ID_tags_1[0]), /* 1 */ + asn_DEF_GNB_CU_UE_F1AP_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_GNB_CU_UE_F1AP_ID_tags_1) + /sizeof(asn_DEF_GNB_CU_UE_F1AP_ID_tags_1[0]), /* 1 */ + { &asn_OER_type_GNB_CU_UE_F1AP_ID_constr_1, &asn_PER_type_GNB_CU_UE_F1AP_ID_constr_1, GNB_CU_UE_F1AP_ID_constraint }, + 0, 0, /* No members */ + &asn_SPC_GNB_CU_UE_F1AP_ID_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNB-CU-UE-F1AP-ID.h b/src/du_app/F1AP/asn/GNB-CU-UE-F1AP-ID.h new file mode 100755 index 000000000..5f618a12c --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-CU-UE-F1AP-ID.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNB_CU_UE_F1AP_ID_H_ +#define _GNB_CU_UE_F1AP_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* GNB-CU-UE-F1AP-ID */ +typedef unsigned long GNB_CU_UE_F1AP_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GNB_CU_UE_F1AP_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_UE_F1AP_ID; +extern const asn_INTEGER_specifics_t asn_SPC_GNB_CU_UE_F1AP_ID_specs_1; +asn_struct_free_f GNB_CU_UE_F1AP_ID_free; +asn_struct_print_f GNB_CU_UE_F1AP_ID_print; +asn_constr_check_f GNB_CU_UE_F1AP_ID_constraint; +ber_type_decoder_f GNB_CU_UE_F1AP_ID_decode_ber; +der_type_encoder_f GNB_CU_UE_F1AP_ID_encode_der; +xer_type_decoder_f GNB_CU_UE_F1AP_ID_decode_xer; +xer_type_encoder_f GNB_CU_UE_F1AP_ID_encode_xer; +oer_type_decoder_f GNB_CU_UE_F1AP_ID_decode_oer; +oer_type_encoder_f GNB_CU_UE_F1AP_ID_encode_oer; +per_type_decoder_f GNB_CU_UE_F1AP_ID_decode_uper; +per_type_encoder_f GNB_CU_UE_F1AP_ID_encode_uper; +per_type_decoder_f GNB_CU_UE_F1AP_ID_decode_aper; +per_type_encoder_f GNB_CU_UE_F1AP_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNB_CU_UE_F1AP_ID_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNB-CUSystemInformation.c b/src/du_app/F1AP/asn/GNB-CUSystemInformation.c new file mode 100755 index 000000000..a5ed51b27 --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-CUSystemInformation.c @@ -0,0 +1,143 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNB-CUSystemInformation.h" + +#include "ProtocolExtensionContainer.h" +#include "SibtypetobeupdatedListItem.h" +static int +memb_sibtypetobeupdatedlist_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 32)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_sibtypetobeupdatedlist_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_sibtypetobeupdatedlist_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_sibtypetobeupdatedlist_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_memb_sibtypetobeupdatedlist_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_sibtypetobeupdatedlist_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SibtypetobeupdatedListItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_sibtypetobeupdatedlist_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_sibtypetobeupdatedlist_specs_2 = { + sizeof(struct GNB_CUSystemInformation__sibtypetobeupdatedlist), + offsetof(struct GNB_CUSystemInformation__sibtypetobeupdatedlist, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_sibtypetobeupdatedlist_2 = { + "sibtypetobeupdatedlist", + "sibtypetobeupdatedlist", + &asn_OP_SEQUENCE_OF, + asn_DEF_sibtypetobeupdatedlist_tags_2, + sizeof(asn_DEF_sibtypetobeupdatedlist_tags_2) + /sizeof(asn_DEF_sibtypetobeupdatedlist_tags_2[0]) - 1, /* 1 */ + asn_DEF_sibtypetobeupdatedlist_tags_2, /* Same as above */ + sizeof(asn_DEF_sibtypetobeupdatedlist_tags_2) + /sizeof(asn_DEF_sibtypetobeupdatedlist_tags_2[0]), /* 2 */ + { &asn_OER_type_sibtypetobeupdatedlist_constr_2, &asn_PER_type_sibtypetobeupdatedlist_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_sibtypetobeupdatedlist_2, + 1, /* Single element */ + &asn_SPC_sibtypetobeupdatedlist_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_GNB_CUSystemInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_CUSystemInformation, sibtypetobeupdatedlist), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_sibtypetobeupdatedlist_2, + 0, + { &asn_OER_memb_sibtypetobeupdatedlist_constr_2, &asn_PER_memb_sibtypetobeupdatedlist_constr_2, memb_sibtypetobeupdatedlist_constraint_1 }, + 0, 0, /* No default value */ + "sibtypetobeupdatedlist" + }, + { ATF_POINTER, 1, offsetof(struct GNB_CUSystemInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P54, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_GNB_CUSystemInformation_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_GNB_CUSystemInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNB_CUSystemInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sibtypetobeupdatedlist */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_GNB_CUSystemInformation_specs_1 = { + sizeof(struct GNB_CUSystemInformation), + offsetof(struct GNB_CUSystemInformation, _asn_ctx), + asn_MAP_GNB_CUSystemInformation_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_GNB_CUSystemInformation_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_CUSystemInformation = { + "GNB-CUSystemInformation", + "GNB-CUSystemInformation", + &asn_OP_SEQUENCE, + asn_DEF_GNB_CUSystemInformation_tags_1, + sizeof(asn_DEF_GNB_CUSystemInformation_tags_1) + /sizeof(asn_DEF_GNB_CUSystemInformation_tags_1[0]), /* 1 */ + asn_DEF_GNB_CUSystemInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_GNB_CUSystemInformation_tags_1) + /sizeof(asn_DEF_GNB_CUSystemInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_CUSystemInformation_1, + 2, /* Elements count */ + &asn_SPC_GNB_CUSystemInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNB-CUSystemInformation.h b/src/du_app/F1AP/asn/GNB-CUSystemInformation.h new file mode 100755 index 000000000..0e7cf02a6 --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-CUSystemInformation.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNB_CUSystemInformation_H_ +#define _GNB_CUSystemInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; +struct SibtypetobeupdatedListItem; + +/* GNB-CUSystemInformation */ +typedef struct GNB_CUSystemInformation { + struct GNB_CUSystemInformation__sibtypetobeupdatedlist { + A_SEQUENCE_OF(struct SibtypetobeupdatedListItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } sibtypetobeupdatedlist; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_CUSystemInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNB_CUSystemInformation; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNB_CUSystemInformation_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNB-DU-ID.c b/src/du_app/F1AP/asn/GNB-DU-ID.c new file mode 100755 index 000000000..1b58daa4b --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-DU-ID.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNB-DU-ID.h" + +int +GNB_DU_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= 0 && value <= 68719476735)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_GNB_DU_ID_constr_1 CC_NOTUSED = { + { 8, 1 } /* (0..68719476735) */, + -1}; +static asn_per_constraints_t asn_PER_type_GNB_DU_ID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 36, -1, 0, 68719476735 } /* (0..68719476735) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_GNB_DU_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GNB_DU_ID = { + "GNB-DU-ID", + "GNB-DU-ID", + &asn_OP_INTEGER, + asn_DEF_GNB_DU_ID_tags_1, + sizeof(asn_DEF_GNB_DU_ID_tags_1) + /sizeof(asn_DEF_GNB_DU_ID_tags_1[0]), /* 1 */ + asn_DEF_GNB_DU_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_GNB_DU_ID_tags_1) + /sizeof(asn_DEF_GNB_DU_ID_tags_1[0]), /* 1 */ + { &asn_OER_type_GNB_DU_ID_constr_1, &asn_PER_type_GNB_DU_ID_constr_1, GNB_DU_ID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/GNB-DU-ID.h b/src/du_app/F1AP/asn/GNB-DU-ID.h new file mode 100755 index 000000000..80a8dd11e --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-DU-ID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNB_DU_ID_H_ +#define _GNB_DU_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* GNB-DU-ID */ +typedef INTEGER_t GNB_DU_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNB_DU_ID; +asn_struct_free_f GNB_DU_ID_free; +asn_struct_print_f GNB_DU_ID_print; +asn_constr_check_f GNB_DU_ID_constraint; +ber_type_decoder_f GNB_DU_ID_decode_ber; +der_type_encoder_f GNB_DU_ID_encode_der; +xer_type_decoder_f GNB_DU_ID_decode_xer; +xer_type_encoder_f GNB_DU_ID_encode_xer; +oer_type_decoder_f GNB_DU_ID_decode_oer; +oer_type_encoder_f GNB_DU_ID_encode_oer; +per_type_decoder_f GNB_DU_ID_decode_uper; +per_type_encoder_f GNB_DU_ID_encode_uper; +per_type_decoder_f GNB_DU_ID_decode_aper; +per_type_encoder_f GNB_DU_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNB_DU_ID_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNB-DU-Name.c b/src/du_app/F1AP/asn/GNB-DU-Name.c new file mode 100755 index 000000000..6899c40fc --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-DU-Name.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNB-DU-Name.h" + +static const int permitted_alphabet_table_1[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ +10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ + 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ +38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ + 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ +64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ +}; +static const int permitted_alphabet_code2value_1[74] = { +32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, +55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, +75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, +97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, +113,114,115,116,117,118,119,120,121,122,}; + + +static int check_permitted_alphabet_1(const void *sptr) { + const int *table = permitted_alphabet_table_1; + /* The underlying type is PrintableString */ + const PrintableString_t *st = (const PrintableString_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!table[cv]) return -1; + } + return 0; +} + +int +GNB_DU_Name_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const PrintableString_t *st = (const PrintableString_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 150) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int asn_PER_MAP_GNB_DU_Name_1_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) + return -1; + return permitted_alphabet_table_1[value] - 1; +} +static int asn_PER_MAP_GNB_DU_Name_1_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) + return -1; + return permitted_alphabet_code2value_1[code]; +} +/* + * This type is implemented using PrintableString, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_GNB_DU_Name_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_type_GNB_DU_Name_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, + asn_PER_MAP_GNB_DU_Name_1_v2c, /* Value to PER code map */ + asn_PER_MAP_GNB_DU_Name_1_c2v /* PER code to value map */ +}; +static const ber_tlv_tag_t asn_DEF_GNB_DU_Name_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GNB_DU_Name = { + "GNB-DU-Name", + "GNB-DU-Name", + &asn_OP_PrintableString, + asn_DEF_GNB_DU_Name_tags_1, + sizeof(asn_DEF_GNB_DU_Name_tags_1) + /sizeof(asn_DEF_GNB_DU_Name_tags_1[0]), /* 1 */ + asn_DEF_GNB_DU_Name_tags_1, /* Same as above */ + sizeof(asn_DEF_GNB_DU_Name_tags_1) + /sizeof(asn_DEF_GNB_DU_Name_tags_1[0]), /* 1 */ + { &asn_OER_type_GNB_DU_Name_constr_1, &asn_PER_type_GNB_DU_Name_constr_1, GNB_DU_Name_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/GNB-DU-Name.h b/src/du_app/F1AP/asn/GNB-DU-Name.h new file mode 100755 index 000000000..6fdeb60b0 --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-DU-Name.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNB_DU_Name_H_ +#define _GNB_DU_Name_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* GNB-DU-Name */ +typedef PrintableString_t GNB_DU_Name_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNB_DU_Name; +asn_struct_free_f GNB_DU_Name_free; +asn_struct_print_f GNB_DU_Name_print; +asn_constr_check_f GNB_DU_Name_constraint; +ber_type_decoder_f GNB_DU_Name_decode_ber; +der_type_encoder_f GNB_DU_Name_encode_der; +xer_type_decoder_f GNB_DU_Name_decode_xer; +xer_type_encoder_f GNB_DU_Name_encode_xer; +oer_type_decoder_f GNB_DU_Name_decode_oer; +oer_type_encoder_f GNB_DU_Name_encode_oer; +per_type_decoder_f GNB_DU_Name_decode_uper; +per_type_encoder_f GNB_DU_Name_encode_uper; +per_type_decoder_f GNB_DU_Name_decode_aper; +per_type_encoder_f GNB_DU_Name_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNB_DU_Name_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNB-DU-Served-Cells-Item.c b/src/du_app/F1AP/asn/GNB-DU-Served-Cells-Item.c new file mode 100755 index 000000000..935a57467 --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-DU-Served-Cells-Item.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNB-DU-Served-Cells-Item.h" + +#include "GNB-DU-System-Information.h" +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_GNB_DU_Served_Cells_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_DU_Served_Cells_Item, served_Cell_Information), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Served_Cell_Information, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "served-Cell-Information" + }, + { ATF_POINTER, 2, offsetof(struct GNB_DU_Served_Cells_Item, gNB_DU_System_Information), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNB_DU_System_Information, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gNB-DU-System-Information" + }, + { ATF_POINTER, 1, offsetof(struct GNB_DU_Served_Cells_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P60, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_GNB_DU_Served_Cells_Item_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_GNB_DU_Served_Cells_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNB_DU_Served_Cells_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* served-Cell-Information */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gNB-DU-System-Information */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_GNB_DU_Served_Cells_Item_specs_1 = { + sizeof(struct GNB_DU_Served_Cells_Item), + offsetof(struct GNB_DU_Served_Cells_Item, _asn_ctx), + asn_MAP_GNB_DU_Served_Cells_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_GNB_DU_Served_Cells_Item_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_DU_Served_Cells_Item = { + "GNB-DU-Served-Cells-Item", + "GNB-DU-Served-Cells-Item", + &asn_OP_SEQUENCE, + asn_DEF_GNB_DU_Served_Cells_Item_tags_1, + sizeof(asn_DEF_GNB_DU_Served_Cells_Item_tags_1) + /sizeof(asn_DEF_GNB_DU_Served_Cells_Item_tags_1[0]), /* 1 */ + asn_DEF_GNB_DU_Served_Cells_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_GNB_DU_Served_Cells_Item_tags_1) + /sizeof(asn_DEF_GNB_DU_Served_Cells_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_DU_Served_Cells_Item_1, + 3, /* Elements count */ + &asn_SPC_GNB_DU_Served_Cells_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNB-DU-Served-Cells-Item.h b/src/du_app/F1AP/asn/GNB-DU-Served-Cells-Item.h new file mode 100755 index 000000000..5beccf493 --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-DU-Served-Cells-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNB_DU_Served_Cells_Item_H_ +#define _GNB_DU_Served_Cells_Item_H_ + + +#include + +/* Including external dependencies */ +#include "Served-Cell-Information.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GNB_DU_System_Information; +struct ProtocolExtensionContainer; + +/* GNB-DU-Served-Cells-Item */ +typedef struct GNB_DU_Served_Cells_Item { + Served_Cell_Information_t served_Cell_Information; + struct GNB_DU_System_Information *gNB_DU_System_Information; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_DU_Served_Cells_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNB_DU_Served_Cells_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNB_DU_Served_Cells_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNB-DU-Served-Cells-List.c b/src/du_app/F1AP/asn/GNB-DU-Served-Cells-List.c new file mode 100755 index 000000000..fa6ca05b7 --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-DU-Served-Cells-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNB-DU-Served-Cells-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_GNB_DU_Served_Cells_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..512)) */}; +static asn_per_constraints_t asn_PER_type_GNB_DU_Served_Cells_List_constr_1 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_GNB_DU_Served_Cells_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNB_DU_Served_Cells_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_GNB_DU_Served_Cells_List_specs_1 = { + sizeof(struct GNB_DU_Served_Cells_List), + offsetof(struct GNB_DU_Served_Cells_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_DU_Served_Cells_List = { + "GNB-DU-Served-Cells-List", + "GNB-DU-Served-Cells-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_GNB_DU_Served_Cells_List_tags_1, + sizeof(asn_DEF_GNB_DU_Served_Cells_List_tags_1) + /sizeof(asn_DEF_GNB_DU_Served_Cells_List_tags_1[0]), /* 1 */ + asn_DEF_GNB_DU_Served_Cells_List_tags_1, /* Same as above */ + sizeof(asn_DEF_GNB_DU_Served_Cells_List_tags_1) + /sizeof(asn_DEF_GNB_DU_Served_Cells_List_tags_1[0]), /* 1 */ + { &asn_OER_type_GNB_DU_Served_Cells_List_constr_1, &asn_PER_type_GNB_DU_Served_Cells_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_GNB_DU_Served_Cells_List_1, + 1, /* Single element */ + &asn_SPC_GNB_DU_Served_Cells_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNB-DU-Served-Cells-List.h b/src/du_app/F1AP/asn/GNB-DU-Served-Cells-List.h new file mode 100755 index 000000000..e9913496e --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-DU-Served-Cells-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNB_DU_Served_Cells_List_H_ +#define _GNB_DU_Served_Cells_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* GNB-DU-Served-Cells-List */ +typedef struct GNB_DU_Served_Cells_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_DU_Served_Cells_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNB_DU_Served_Cells_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNB_DU_Served_Cells_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNB-DU-System-Information.c b/src/du_app/F1AP/asn/GNB-DU-System-Information.c new file mode 100755 index 000000000..7de1e2cdf --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-DU-System-Information.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNB-DU-System-Information.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_GNB_DU_System_Information_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_DU_System_Information, mIB_message), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MIB_message, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mIB-message" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNB_DU_System_Information, sIB1_message), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SIB1_message, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sIB1-message" + }, + { ATF_POINTER, 1, offsetof(struct GNB_DU_System_Information, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P61, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_GNB_DU_System_Information_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_GNB_DU_System_Information_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNB_DU_System_Information_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mIB-message */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sIB1-message */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNB_DU_System_Information_specs_1 = { + sizeof(struct GNB_DU_System_Information), + offsetof(struct GNB_DU_System_Information, _asn_ctx), + asn_MAP_GNB_DU_System_Information_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_GNB_DU_System_Information_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_DU_System_Information = { + "GNB-DU-System-Information", + "GNB-DU-System-Information", + &asn_OP_SEQUENCE, + asn_DEF_GNB_DU_System_Information_tags_1, + sizeof(asn_DEF_GNB_DU_System_Information_tags_1) + /sizeof(asn_DEF_GNB_DU_System_Information_tags_1[0]), /* 1 */ + asn_DEF_GNB_DU_System_Information_tags_1, /* Same as above */ + sizeof(asn_DEF_GNB_DU_System_Information_tags_1) + /sizeof(asn_DEF_GNB_DU_System_Information_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_DU_System_Information_1, + 3, /* Elements count */ + &asn_SPC_GNB_DU_System_Information_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNB-DU-System-Information.h b/src/du_app/F1AP/asn/GNB-DU-System-Information.h new file mode 100755 index 000000000..d05e35c32 --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-DU-System-Information.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNB_DU_System_Information_H_ +#define _GNB_DU_System_Information_H_ + + +#include + +/* Including external dependencies */ +#include "MIB-message.h" +#include "SIB1-message.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* GNB-DU-System-Information */ +typedef struct GNB_DU_System_Information { + MIB_message_t mIB_message; + SIB1_message_t sIB1_message; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_DU_System_Information_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNB_DU_System_Information; +extern asn_SEQUENCE_specifics_t asn_SPC_GNB_DU_System_Information_specs_1; +extern asn_TYPE_member_t asn_MBR_GNB_DU_System_Information_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNB_DU_System_Information_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNB-DU-UE-F1AP-ID.c b/src/du_app/F1AP/asn/GNB-DU-UE-F1AP-ID.c new file mode 100755 index 000000000..497cbe502 --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-DU-UE-F1AP-ID.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNB-DU-UE-F1AP-ID.h" + +int +GNB_DU_UE_F1AP_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + /* Constraint check succeeded */ + return 0; +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_GNB_DU_UE_F1AP_ID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..4294967295) */, + -1}; +asn_per_constraints_t asn_PER_type_GNB_DU_UE_F1AP_ID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, 0, 4294967295 } /* (0..4294967295) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +const asn_INTEGER_specifics_t asn_SPC_GNB_DU_UE_F1AP_ID_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_GNB_DU_UE_F1AP_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GNB_DU_UE_F1AP_ID = { + "GNB-DU-UE-F1AP-ID", + "GNB-DU-UE-F1AP-ID", + &asn_OP_NativeInteger, + asn_DEF_GNB_DU_UE_F1AP_ID_tags_1, + sizeof(asn_DEF_GNB_DU_UE_F1AP_ID_tags_1) + /sizeof(asn_DEF_GNB_DU_UE_F1AP_ID_tags_1[0]), /* 1 */ + asn_DEF_GNB_DU_UE_F1AP_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_GNB_DU_UE_F1AP_ID_tags_1) + /sizeof(asn_DEF_GNB_DU_UE_F1AP_ID_tags_1[0]), /* 1 */ + { &asn_OER_type_GNB_DU_UE_F1AP_ID_constr_1, &asn_PER_type_GNB_DU_UE_F1AP_ID_constr_1, GNB_DU_UE_F1AP_ID_constraint }, + 0, 0, /* No members */ + &asn_SPC_GNB_DU_UE_F1AP_ID_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNB-DU-UE-F1AP-ID.h b/src/du_app/F1AP/asn/GNB-DU-UE-F1AP-ID.h new file mode 100755 index 000000000..ba76131e7 --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-DU-UE-F1AP-ID.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNB_DU_UE_F1AP_ID_H_ +#define _GNB_DU_UE_F1AP_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* GNB-DU-UE-F1AP-ID */ +typedef unsigned long GNB_DU_UE_F1AP_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GNB_DU_UE_F1AP_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GNB_DU_UE_F1AP_ID; +extern const asn_INTEGER_specifics_t asn_SPC_GNB_DU_UE_F1AP_ID_specs_1; +asn_struct_free_f GNB_DU_UE_F1AP_ID_free; +asn_struct_print_f GNB_DU_UE_F1AP_ID_print; +asn_constr_check_f GNB_DU_UE_F1AP_ID_constraint; +ber_type_decoder_f GNB_DU_UE_F1AP_ID_decode_ber; +der_type_encoder_f GNB_DU_UE_F1AP_ID_encode_der; +xer_type_decoder_f GNB_DU_UE_F1AP_ID_decode_xer; +xer_type_encoder_f GNB_DU_UE_F1AP_ID_encode_xer; +oer_type_decoder_f GNB_DU_UE_F1AP_ID_decode_oer; +oer_type_encoder_f GNB_DU_UE_F1AP_ID_encode_oer; +per_type_decoder_f GNB_DU_UE_F1AP_ID_decode_uper; +per_type_encoder_f GNB_DU_UE_F1AP_ID_encode_uper; +per_type_decoder_f GNB_DU_UE_F1AP_ID_decode_aper; +per_type_encoder_f GNB_DU_UE_F1AP_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNB_DU_UE_F1AP_ID_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNB-DUConfigurationQuery.c b/src/du_app/F1AP/asn/GNB-DUConfigurationQuery.c new file mode 100755 index 000000000..9363999ab --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-DUConfigurationQuery.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNB-DUConfigurationQuery.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_GNB_DUConfigurationQuery_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_GNB_DUConfigurationQuery_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_GNB_DUConfigurationQuery_value2enum_1[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_GNB_DUConfigurationQuery_enum2value_1[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_GNB_DUConfigurationQuery_specs_1 = { + asn_MAP_GNB_DUConfigurationQuery_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_GNB_DUConfigurationQuery_enum2value_1, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_GNB_DUConfigurationQuery_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GNB_DUConfigurationQuery = { + "GNB-DUConfigurationQuery", + "GNB-DUConfigurationQuery", + &asn_OP_NativeEnumerated, + asn_DEF_GNB_DUConfigurationQuery_tags_1, + sizeof(asn_DEF_GNB_DUConfigurationQuery_tags_1) + /sizeof(asn_DEF_GNB_DUConfigurationQuery_tags_1[0]), /* 1 */ + asn_DEF_GNB_DUConfigurationQuery_tags_1, /* Same as above */ + sizeof(asn_DEF_GNB_DUConfigurationQuery_tags_1) + /sizeof(asn_DEF_GNB_DUConfigurationQuery_tags_1[0]), /* 1 */ + { &asn_OER_type_GNB_DUConfigurationQuery_constr_1, &asn_PER_type_GNB_DUConfigurationQuery_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_GNB_DUConfigurationQuery_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNB-DUConfigurationQuery.h b/src/du_app/F1AP/asn/GNB-DUConfigurationQuery.h new file mode 100755 index 000000000..042634f2d --- /dev/null +++ b/src/du_app/F1AP/asn/GNB-DUConfigurationQuery.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNB_DUConfigurationQuery_H_ +#define _GNB_DUConfigurationQuery_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GNB_DUConfigurationQuery { + GNB_DUConfigurationQuery_true = 0 + /* + * Enumeration is extensible + */ +} e_GNB_DUConfigurationQuery; + +/* GNB-DUConfigurationQuery */ +typedef long GNB_DUConfigurationQuery_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNB_DUConfigurationQuery; +asn_struct_free_f GNB_DUConfigurationQuery_free; +asn_struct_print_f GNB_DUConfigurationQuery_print; +asn_constr_check_f GNB_DUConfigurationQuery_constraint; +ber_type_decoder_f GNB_DUConfigurationQuery_decode_ber; +der_type_encoder_f GNB_DUConfigurationQuery_encode_der; +xer_type_decoder_f GNB_DUConfigurationQuery_decode_xer; +xer_type_encoder_f GNB_DUConfigurationQuery_encode_xer; +oer_type_decoder_f GNB_DUConfigurationQuery_decode_oer; +oer_type_encoder_f GNB_DUConfigurationQuery_encode_oer; +per_type_decoder_f GNB_DUConfigurationQuery_decode_uper; +per_type_encoder_f GNB_DUConfigurationQuery_encode_uper; +per_type_decoder_f GNB_DUConfigurationQuery_decode_aper; +per_type_encoder_f GNB_DUConfigurationQuery_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNB_DUConfigurationQuery_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNBCUConfigurationUpdate.c b/src/du_app/F1AP/asn/GNBCUConfigurationUpdate.c new file mode 100755 index 000000000..f15e0b618 --- /dev/null +++ b/src/du_app/F1AP/asn/GNBCUConfigurationUpdate.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNBCUConfigurationUpdate.h" + +asn_TYPE_member_t asn_MBR_GNBCUConfigurationUpdate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdate, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNBCUConfigurationUpdate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNBCUConfigurationUpdate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNBCUConfigurationUpdate_specs_1 = { + sizeof(struct GNBCUConfigurationUpdate), + offsetof(struct GNBCUConfigurationUpdate, _asn_ctx), + asn_MAP_GNBCUConfigurationUpdate_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_GNBCUConfigurationUpdate = { + "GNBCUConfigurationUpdate", + "GNBCUConfigurationUpdate", + &asn_OP_SEQUENCE, + asn_DEF_GNBCUConfigurationUpdate_tags_1, + sizeof(asn_DEF_GNBCUConfigurationUpdate_tags_1) + /sizeof(asn_DEF_GNBCUConfigurationUpdate_tags_1[0]), /* 1 */ + asn_DEF_GNBCUConfigurationUpdate_tags_1, /* Same as above */ + sizeof(asn_DEF_GNBCUConfigurationUpdate_tags_1) + /sizeof(asn_DEF_GNBCUConfigurationUpdate_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNBCUConfigurationUpdate_1, + 1, /* Elements count */ + &asn_SPC_GNBCUConfigurationUpdate_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNBCUConfigurationUpdate.h b/src/du_app/F1AP/asn/GNBCUConfigurationUpdate.h new file mode 100755 index 000000000..05105530a --- /dev/null +++ b/src/du_app/F1AP/asn/GNBCUConfigurationUpdate.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNBCUConfigurationUpdate_H_ +#define _GNBCUConfigurationUpdate_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* GNBCUConfigurationUpdate */ +typedef struct GNBCUConfigurationUpdate { + ProtocolIE_Container_4587P9_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNBCUConfigurationUpdate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNBCUConfigurationUpdate; +extern asn_SEQUENCE_specifics_t asn_SPC_GNBCUConfigurationUpdate_specs_1; +extern asn_TYPE_member_t asn_MBR_GNBCUConfigurationUpdate_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNBCUConfigurationUpdate_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNBCUConfigurationUpdateAcknowledge.c b/src/du_app/F1AP/asn/GNBCUConfigurationUpdateAcknowledge.c new file mode 100755 index 000000000..13a1e53c8 --- /dev/null +++ b/src/du_app/F1AP/asn/GNBCUConfigurationUpdateAcknowledge.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNBCUConfigurationUpdateAcknowledge.h" + +asn_TYPE_member_t asn_MBR_GNBCUConfigurationUpdateAcknowledge_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateAcknowledge, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNBCUConfigurationUpdateAcknowledge_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNBCUConfigurationUpdateAcknowledge_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNBCUConfigurationUpdateAcknowledge_specs_1 = { + sizeof(struct GNBCUConfigurationUpdateAcknowledge), + offsetof(struct GNBCUConfigurationUpdateAcknowledge, _asn_ctx), + asn_MAP_GNBCUConfigurationUpdateAcknowledge_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_GNBCUConfigurationUpdateAcknowledge = { + "GNBCUConfigurationUpdateAcknowledge", + "GNBCUConfigurationUpdateAcknowledge", + &asn_OP_SEQUENCE, + asn_DEF_GNBCUConfigurationUpdateAcknowledge_tags_1, + sizeof(asn_DEF_GNBCUConfigurationUpdateAcknowledge_tags_1) + /sizeof(asn_DEF_GNBCUConfigurationUpdateAcknowledge_tags_1[0]), /* 1 */ + asn_DEF_GNBCUConfigurationUpdateAcknowledge_tags_1, /* Same as above */ + sizeof(asn_DEF_GNBCUConfigurationUpdateAcknowledge_tags_1) + /sizeof(asn_DEF_GNBCUConfigurationUpdateAcknowledge_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNBCUConfigurationUpdateAcknowledge_1, + 1, /* Elements count */ + &asn_SPC_GNBCUConfigurationUpdateAcknowledge_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNBCUConfigurationUpdateAcknowledge.h b/src/du_app/F1AP/asn/GNBCUConfigurationUpdateAcknowledge.h new file mode 100755 index 000000000..24338359e --- /dev/null +++ b/src/du_app/F1AP/asn/GNBCUConfigurationUpdateAcknowledge.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNBCUConfigurationUpdateAcknowledge_H_ +#define _GNBCUConfigurationUpdateAcknowledge_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* GNBCUConfigurationUpdateAcknowledge */ +typedef struct GNBCUConfigurationUpdateAcknowledge { + ProtocolIE_Container_4587P10_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNBCUConfigurationUpdateAcknowledge_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNBCUConfigurationUpdateAcknowledge; +extern asn_SEQUENCE_specifics_t asn_SPC_GNBCUConfigurationUpdateAcknowledge_specs_1; +extern asn_TYPE_member_t asn_MBR_GNBCUConfigurationUpdateAcknowledge_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNBCUConfigurationUpdateAcknowledge_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNBCUConfigurationUpdateFailure.c b/src/du_app/F1AP/asn/GNBCUConfigurationUpdateFailure.c new file mode 100755 index 000000000..517e253cf --- /dev/null +++ b/src/du_app/F1AP/asn/GNBCUConfigurationUpdateFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNBCUConfigurationUpdateFailure.h" + +asn_TYPE_member_t asn_MBR_GNBCUConfigurationUpdateFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateFailure, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNBCUConfigurationUpdateFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNBCUConfigurationUpdateFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNBCUConfigurationUpdateFailure_specs_1 = { + sizeof(struct GNBCUConfigurationUpdateFailure), + offsetof(struct GNBCUConfigurationUpdateFailure, _asn_ctx), + asn_MAP_GNBCUConfigurationUpdateFailure_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_GNBCUConfigurationUpdateFailure = { + "GNBCUConfigurationUpdateFailure", + "GNBCUConfigurationUpdateFailure", + &asn_OP_SEQUENCE, + asn_DEF_GNBCUConfigurationUpdateFailure_tags_1, + sizeof(asn_DEF_GNBCUConfigurationUpdateFailure_tags_1) + /sizeof(asn_DEF_GNBCUConfigurationUpdateFailure_tags_1[0]), /* 1 */ + asn_DEF_GNBCUConfigurationUpdateFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_GNBCUConfigurationUpdateFailure_tags_1) + /sizeof(asn_DEF_GNBCUConfigurationUpdateFailure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNBCUConfigurationUpdateFailure_1, + 1, /* Elements count */ + &asn_SPC_GNBCUConfigurationUpdateFailure_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNBCUConfigurationUpdateFailure.h b/src/du_app/F1AP/asn/GNBCUConfigurationUpdateFailure.h new file mode 100755 index 000000000..22b167217 --- /dev/null +++ b/src/du_app/F1AP/asn/GNBCUConfigurationUpdateFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNBCUConfigurationUpdateFailure_H_ +#define _GNBCUConfigurationUpdateFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* GNBCUConfigurationUpdateFailure */ +typedef struct GNBCUConfigurationUpdateFailure { + ProtocolIE_Container_4587P11_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNBCUConfigurationUpdateFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNBCUConfigurationUpdateFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_GNBCUConfigurationUpdateFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_GNBCUConfigurationUpdateFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNBCUConfigurationUpdateFailure_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNBDUConfigurationUpdate.c b/src/du_app/F1AP/asn/GNBDUConfigurationUpdate.c new file mode 100755 index 000000000..1e7d238dd --- /dev/null +++ b/src/du_app/F1AP/asn/GNBDUConfigurationUpdate.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNBDUConfigurationUpdate.h" + +asn_TYPE_member_t asn_MBR_GNBDUConfigurationUpdate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdate, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNBDUConfigurationUpdate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNBDUConfigurationUpdate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNBDUConfigurationUpdate_specs_1 = { + sizeof(struct GNBDUConfigurationUpdate), + offsetof(struct GNBDUConfigurationUpdate, _asn_ctx), + asn_MAP_GNBDUConfigurationUpdate_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_GNBDUConfigurationUpdate = { + "GNBDUConfigurationUpdate", + "GNBDUConfigurationUpdate", + &asn_OP_SEQUENCE, + asn_DEF_GNBDUConfigurationUpdate_tags_1, + sizeof(asn_DEF_GNBDUConfigurationUpdate_tags_1) + /sizeof(asn_DEF_GNBDUConfigurationUpdate_tags_1[0]), /* 1 */ + asn_DEF_GNBDUConfigurationUpdate_tags_1, /* Same as above */ + sizeof(asn_DEF_GNBDUConfigurationUpdate_tags_1) + /sizeof(asn_DEF_GNBDUConfigurationUpdate_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNBDUConfigurationUpdate_1, + 1, /* Elements count */ + &asn_SPC_GNBDUConfigurationUpdate_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNBDUConfigurationUpdate.h b/src/du_app/F1AP/asn/GNBDUConfigurationUpdate.h new file mode 100755 index 000000000..ec02b9cf4 --- /dev/null +++ b/src/du_app/F1AP/asn/GNBDUConfigurationUpdate.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNBDUConfigurationUpdate_H_ +#define _GNBDUConfigurationUpdate_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* GNBDUConfigurationUpdate */ +typedef struct GNBDUConfigurationUpdate { + ProtocolIE_Container_4587P6_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNBDUConfigurationUpdate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNBDUConfigurationUpdate; +extern asn_SEQUENCE_specifics_t asn_SPC_GNBDUConfigurationUpdate_specs_1; +extern asn_TYPE_member_t asn_MBR_GNBDUConfigurationUpdate_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNBDUConfigurationUpdate_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNBDUConfigurationUpdateAcknowledge.c b/src/du_app/F1AP/asn/GNBDUConfigurationUpdateAcknowledge.c new file mode 100755 index 000000000..047e10cd2 --- /dev/null +++ b/src/du_app/F1AP/asn/GNBDUConfigurationUpdateAcknowledge.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNBDUConfigurationUpdateAcknowledge.h" + +asn_TYPE_member_t asn_MBR_GNBDUConfigurationUpdateAcknowledge_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdateAcknowledge, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNBDUConfigurationUpdateAcknowledge_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNBDUConfigurationUpdateAcknowledge_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNBDUConfigurationUpdateAcknowledge_specs_1 = { + sizeof(struct GNBDUConfigurationUpdateAcknowledge), + offsetof(struct GNBDUConfigurationUpdateAcknowledge, _asn_ctx), + asn_MAP_GNBDUConfigurationUpdateAcknowledge_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_GNBDUConfigurationUpdateAcknowledge = { + "GNBDUConfigurationUpdateAcknowledge", + "GNBDUConfigurationUpdateAcknowledge", + &asn_OP_SEQUENCE, + asn_DEF_GNBDUConfigurationUpdateAcknowledge_tags_1, + sizeof(asn_DEF_GNBDUConfigurationUpdateAcknowledge_tags_1) + /sizeof(asn_DEF_GNBDUConfigurationUpdateAcknowledge_tags_1[0]), /* 1 */ + asn_DEF_GNBDUConfigurationUpdateAcknowledge_tags_1, /* Same as above */ + sizeof(asn_DEF_GNBDUConfigurationUpdateAcknowledge_tags_1) + /sizeof(asn_DEF_GNBDUConfigurationUpdateAcknowledge_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNBDUConfigurationUpdateAcknowledge_1, + 1, /* Elements count */ + &asn_SPC_GNBDUConfigurationUpdateAcknowledge_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNBDUConfigurationUpdateAcknowledge.h b/src/du_app/F1AP/asn/GNBDUConfigurationUpdateAcknowledge.h new file mode 100755 index 000000000..708baab52 --- /dev/null +++ b/src/du_app/F1AP/asn/GNBDUConfigurationUpdateAcknowledge.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNBDUConfigurationUpdateAcknowledge_H_ +#define _GNBDUConfigurationUpdateAcknowledge_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* GNBDUConfigurationUpdateAcknowledge */ +typedef struct GNBDUConfigurationUpdateAcknowledge { + ProtocolIE_Container_4587P7_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNBDUConfigurationUpdateAcknowledge_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNBDUConfigurationUpdateAcknowledge; +extern asn_SEQUENCE_specifics_t asn_SPC_GNBDUConfigurationUpdateAcknowledge_specs_1; +extern asn_TYPE_member_t asn_MBR_GNBDUConfigurationUpdateAcknowledge_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNBDUConfigurationUpdateAcknowledge_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNBDUConfigurationUpdateFailure.c b/src/du_app/F1AP/asn/GNBDUConfigurationUpdateFailure.c new file mode 100755 index 000000000..8cb0b9dfa --- /dev/null +++ b/src/du_app/F1AP/asn/GNBDUConfigurationUpdateFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNBDUConfigurationUpdateFailure.h" + +asn_TYPE_member_t asn_MBR_GNBDUConfigurationUpdateFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdateFailure, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNBDUConfigurationUpdateFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNBDUConfigurationUpdateFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNBDUConfigurationUpdateFailure_specs_1 = { + sizeof(struct GNBDUConfigurationUpdateFailure), + offsetof(struct GNBDUConfigurationUpdateFailure, _asn_ctx), + asn_MAP_GNBDUConfigurationUpdateFailure_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_GNBDUConfigurationUpdateFailure = { + "GNBDUConfigurationUpdateFailure", + "GNBDUConfigurationUpdateFailure", + &asn_OP_SEQUENCE, + asn_DEF_GNBDUConfigurationUpdateFailure_tags_1, + sizeof(asn_DEF_GNBDUConfigurationUpdateFailure_tags_1) + /sizeof(asn_DEF_GNBDUConfigurationUpdateFailure_tags_1[0]), /* 1 */ + asn_DEF_GNBDUConfigurationUpdateFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_GNBDUConfigurationUpdateFailure_tags_1) + /sizeof(asn_DEF_GNBDUConfigurationUpdateFailure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNBDUConfigurationUpdateFailure_1, + 1, /* Elements count */ + &asn_SPC_GNBDUConfigurationUpdateFailure_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNBDUConfigurationUpdateFailure.h b/src/du_app/F1AP/asn/GNBDUConfigurationUpdateFailure.h new file mode 100755 index 000000000..49c1042f8 --- /dev/null +++ b/src/du_app/F1AP/asn/GNBDUConfigurationUpdateFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNBDUConfigurationUpdateFailure_H_ +#define _GNBDUConfigurationUpdateFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* GNBDUConfigurationUpdateFailure */ +typedef struct GNBDUConfigurationUpdateFailure { + ProtocolIE_Container_4587P8_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNBDUConfigurationUpdateFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNBDUConfigurationUpdateFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_GNBDUConfigurationUpdateFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_GNBDUConfigurationUpdateFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNBDUConfigurationUpdateFailure_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNBDUOverloadInformation.c b/src/du_app/F1AP/asn/GNBDUOverloadInformation.c new file mode 100755 index 000000000..cbc48d697 --- /dev/null +++ b/src/du_app/F1AP/asn/GNBDUOverloadInformation.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNBDUOverloadInformation.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_GNBDUOverloadInformation_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_GNBDUOverloadInformation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_GNBDUOverloadInformation_value2enum_1[] = { + { 0, 10, "overloaded" }, + { 1, 14, "not-overloaded" } +}; +static const unsigned int asn_MAP_GNBDUOverloadInformation_enum2value_1[] = { + 1, /* not-overloaded(1) */ + 0 /* overloaded(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_GNBDUOverloadInformation_specs_1 = { + asn_MAP_GNBDUOverloadInformation_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_GNBDUOverloadInformation_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_GNBDUOverloadInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GNBDUOverloadInformation = { + "GNBDUOverloadInformation", + "GNBDUOverloadInformation", + &asn_OP_NativeEnumerated, + asn_DEF_GNBDUOverloadInformation_tags_1, + sizeof(asn_DEF_GNBDUOverloadInformation_tags_1) + /sizeof(asn_DEF_GNBDUOverloadInformation_tags_1[0]), /* 1 */ + asn_DEF_GNBDUOverloadInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_GNBDUOverloadInformation_tags_1) + /sizeof(asn_DEF_GNBDUOverloadInformation_tags_1[0]), /* 1 */ + { &asn_OER_type_GNBDUOverloadInformation_constr_1, &asn_PER_type_GNBDUOverloadInformation_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_GNBDUOverloadInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNBDUOverloadInformation.h b/src/du_app/F1AP/asn/GNBDUOverloadInformation.h new file mode 100755 index 000000000..0fc602f04 --- /dev/null +++ b/src/du_app/F1AP/asn/GNBDUOverloadInformation.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNBDUOverloadInformation_H_ +#define _GNBDUOverloadInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GNBDUOverloadInformation { + GNBDUOverloadInformation_overloaded = 0, + GNBDUOverloadInformation_not_overloaded = 1 +} e_GNBDUOverloadInformation; + +/* GNBDUOverloadInformation */ +typedef long GNBDUOverloadInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNBDUOverloadInformation; +asn_struct_free_f GNBDUOverloadInformation_free; +asn_struct_print_f GNBDUOverloadInformation_print; +asn_constr_check_f GNBDUOverloadInformation_constraint; +ber_type_decoder_f GNBDUOverloadInformation_decode_ber; +der_type_encoder_f GNBDUOverloadInformation_encode_der; +xer_type_decoder_f GNBDUOverloadInformation_decode_xer; +xer_type_encoder_f GNBDUOverloadInformation_encode_xer; +oer_type_decoder_f GNBDUOverloadInformation_decode_oer; +oer_type_encoder_f GNBDUOverloadInformation_encode_oer; +per_type_decoder_f GNBDUOverloadInformation_decode_uper; +per_type_encoder_f GNBDUOverloadInformation_encode_uper; +per_type_decoder_f GNBDUOverloadInformation_decode_aper; +per_type_encoder_f GNBDUOverloadInformation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNBDUOverloadInformation_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNBDUResourceCoordinationRequest.c b/src/du_app/F1AP/asn/GNBDUResourceCoordinationRequest.c new file mode 100755 index 000000000..ee9849858 --- /dev/null +++ b/src/du_app/F1AP/asn/GNBDUResourceCoordinationRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNBDUResourceCoordinationRequest.h" + +asn_TYPE_member_t asn_MBR_GNBDUResourceCoordinationRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBDUResourceCoordinationRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNBDUResourceCoordinationRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNBDUResourceCoordinationRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNBDUResourceCoordinationRequest_specs_1 = { + sizeof(struct GNBDUResourceCoordinationRequest), + offsetof(struct GNBDUResourceCoordinationRequest, _asn_ctx), + asn_MAP_GNBDUResourceCoordinationRequest_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_GNBDUResourceCoordinationRequest = { + "GNBDUResourceCoordinationRequest", + "GNBDUResourceCoordinationRequest", + &asn_OP_SEQUENCE, + asn_DEF_GNBDUResourceCoordinationRequest_tags_1, + sizeof(asn_DEF_GNBDUResourceCoordinationRequest_tags_1) + /sizeof(asn_DEF_GNBDUResourceCoordinationRequest_tags_1[0]), /* 1 */ + asn_DEF_GNBDUResourceCoordinationRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_GNBDUResourceCoordinationRequest_tags_1) + /sizeof(asn_DEF_GNBDUResourceCoordinationRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNBDUResourceCoordinationRequest_1, + 1, /* Elements count */ + &asn_SPC_GNBDUResourceCoordinationRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNBDUResourceCoordinationRequest.h b/src/du_app/F1AP/asn/GNBDUResourceCoordinationRequest.h new file mode 100755 index 000000000..96695b826 --- /dev/null +++ b/src/du_app/F1AP/asn/GNBDUResourceCoordinationRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNBDUResourceCoordinationRequest_H_ +#define _GNBDUResourceCoordinationRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* GNBDUResourceCoordinationRequest */ +typedef struct GNBDUResourceCoordinationRequest { + ProtocolIE_Container_4587P12_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNBDUResourceCoordinationRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNBDUResourceCoordinationRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_GNBDUResourceCoordinationRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_GNBDUResourceCoordinationRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNBDUResourceCoordinationRequest_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNBDUResourceCoordinationResponse.c b/src/du_app/F1AP/asn/GNBDUResourceCoordinationResponse.c new file mode 100755 index 000000000..d5f4b5ef9 --- /dev/null +++ b/src/du_app/F1AP/asn/GNBDUResourceCoordinationResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNBDUResourceCoordinationResponse.h" + +asn_TYPE_member_t asn_MBR_GNBDUResourceCoordinationResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBDUResourceCoordinationResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNBDUResourceCoordinationResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNBDUResourceCoordinationResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNBDUResourceCoordinationResponse_specs_1 = { + sizeof(struct GNBDUResourceCoordinationResponse), + offsetof(struct GNBDUResourceCoordinationResponse, _asn_ctx), + asn_MAP_GNBDUResourceCoordinationResponse_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_GNBDUResourceCoordinationResponse = { + "GNBDUResourceCoordinationResponse", + "GNBDUResourceCoordinationResponse", + &asn_OP_SEQUENCE, + asn_DEF_GNBDUResourceCoordinationResponse_tags_1, + sizeof(asn_DEF_GNBDUResourceCoordinationResponse_tags_1) + /sizeof(asn_DEF_GNBDUResourceCoordinationResponse_tags_1[0]), /* 1 */ + asn_DEF_GNBDUResourceCoordinationResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_GNBDUResourceCoordinationResponse_tags_1) + /sizeof(asn_DEF_GNBDUResourceCoordinationResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNBDUResourceCoordinationResponse_1, + 1, /* Elements count */ + &asn_SPC_GNBDUResourceCoordinationResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNBDUResourceCoordinationResponse.h b/src/du_app/F1AP/asn/GNBDUResourceCoordinationResponse.h new file mode 100755 index 000000000..2f0c50c31 --- /dev/null +++ b/src/du_app/F1AP/asn/GNBDUResourceCoordinationResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNBDUResourceCoordinationResponse_H_ +#define _GNBDUResourceCoordinationResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* GNBDUResourceCoordinationResponse */ +typedef struct GNBDUResourceCoordinationResponse { + ProtocolIE_Container_4587P13_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNBDUResourceCoordinationResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNBDUResourceCoordinationResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_GNBDUResourceCoordinationResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_GNBDUResourceCoordinationResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNBDUResourceCoordinationResponse_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GNBDUStatusIndication.c b/src/du_app/F1AP/asn/GNBDUStatusIndication.c new file mode 100755 index 000000000..ac3f52489 --- /dev/null +++ b/src/du_app/F1AP/asn/GNBDUStatusIndication.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNBDUStatusIndication.h" + +asn_TYPE_member_t asn_MBR_GNBDUStatusIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBDUStatusIndication, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P39, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNBDUStatusIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNBDUStatusIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNBDUStatusIndication_specs_1 = { + sizeof(struct GNBDUStatusIndication), + offsetof(struct GNBDUStatusIndication, _asn_ctx), + asn_MAP_GNBDUStatusIndication_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_GNBDUStatusIndication = { + "GNBDUStatusIndication", + "GNBDUStatusIndication", + &asn_OP_SEQUENCE, + asn_DEF_GNBDUStatusIndication_tags_1, + sizeof(asn_DEF_GNBDUStatusIndication_tags_1) + /sizeof(asn_DEF_GNBDUStatusIndication_tags_1[0]), /* 1 */ + asn_DEF_GNBDUStatusIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_GNBDUStatusIndication_tags_1) + /sizeof(asn_DEF_GNBDUStatusIndication_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNBDUStatusIndication_1, + 1, /* Elements count */ + &asn_SPC_GNBDUStatusIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GNBDUStatusIndication.h b/src/du_app/F1AP/asn/GNBDUStatusIndication.h new file mode 100755 index 000000000..36353bd30 --- /dev/null +++ b/src/du_app/F1AP/asn/GNBDUStatusIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNBDUStatusIndication_H_ +#define _GNBDUStatusIndication_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* GNBDUStatusIndication */ +typedef struct GNBDUStatusIndication { + ProtocolIE_Container_4587P39_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNBDUStatusIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GNBDUStatusIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_GNBDUStatusIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_GNBDUStatusIndication_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNBDUStatusIndication_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GTP-TEID.c b/src/du_app/F1AP/asn/GTP-TEID.c new file mode 100755 index 000000000..42890bb5b --- /dev/null +++ b/src/du_app/F1AP/asn/GTP-TEID.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GTP-TEID.h" + +int +GTP_TEID_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 == 4)) { + /* 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_GTP_TEID_constr_1 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +asn_per_constraints_t asn_PER_type_GTP_TEID_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_GTP_TEID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GTP_TEID = { + "GTP-TEID", + "GTP-TEID", + &asn_OP_OCTET_STRING, + asn_DEF_GTP_TEID_tags_1, + sizeof(asn_DEF_GTP_TEID_tags_1) + /sizeof(asn_DEF_GTP_TEID_tags_1[0]), /* 1 */ + asn_DEF_GTP_TEID_tags_1, /* Same as above */ + sizeof(asn_DEF_GTP_TEID_tags_1) + /sizeof(asn_DEF_GTP_TEID_tags_1[0]), /* 1 */ + { &asn_OER_type_GTP_TEID_constr_1, &asn_PER_type_GTP_TEID_constr_1, GTP_TEID_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GTP-TEID.h b/src/du_app/F1AP/asn/GTP-TEID.h new file mode 100755 index 000000000..d5c6e8b5c --- /dev/null +++ b/src/du_app/F1AP/asn/GTP-TEID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GTP_TEID_H_ +#define _GTP_TEID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* GTP-TEID */ +typedef OCTET_STRING_t GTP_TEID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GTP_TEID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GTP_TEID; +asn_struct_free_f GTP_TEID_free; +asn_struct_print_f GTP_TEID_print; +asn_constr_check_f GTP_TEID_constraint; +ber_type_decoder_f GTP_TEID_decode_ber; +der_type_encoder_f GTP_TEID_encode_der; +xer_type_decoder_f GTP_TEID_decode_xer; +xer_type_encoder_f GTP_TEID_encode_xer; +oer_type_decoder_f GTP_TEID_decode_oer; +oer_type_encoder_f GTP_TEID_encode_oer; +per_type_decoder_f GTP_TEID_decode_uper; +per_type_encoder_f GTP_TEID_encode_uper; +per_type_decoder_f GTP_TEID_decode_aper; +per_type_encoder_f GTP_TEID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GTP_TEID_H_ */ +#include diff --git a/src/du_app/F1AP/asn/GTPTunnel.c b/src/du_app/F1AP/asn/GTPTunnel.c new file mode 100755 index 000000000..4691081d3 --- /dev/null +++ b/src/du_app/F1AP/asn/GTPTunnel.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GTPTunnel.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_GTPTunnel_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GTPTunnel, transportLayerAddress), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transportLayerAddress" + }, + { ATF_NOFLAGS, 0, offsetof(struct GTPTunnel, gTP_TEID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GTP_TEID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gTP-TEID" + }, + { ATF_POINTER, 1, offsetof(struct GTPTunnel, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P62, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_GTPTunnel_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_GTPTunnel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GTPTunnel_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transportLayerAddress */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gTP-TEID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GTPTunnel_specs_1 = { + sizeof(struct GTPTunnel), + offsetof(struct GTPTunnel, _asn_ctx), + asn_MAP_GTPTunnel_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_GTPTunnel_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GTPTunnel = { + "GTPTunnel", + "GTPTunnel", + &asn_OP_SEQUENCE, + asn_DEF_GTPTunnel_tags_1, + sizeof(asn_DEF_GTPTunnel_tags_1) + /sizeof(asn_DEF_GTPTunnel_tags_1[0]), /* 1 */ + asn_DEF_GTPTunnel_tags_1, /* Same as above */ + sizeof(asn_DEF_GTPTunnel_tags_1) + /sizeof(asn_DEF_GTPTunnel_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GTPTunnel_1, + 3, /* Elements count */ + &asn_SPC_GTPTunnel_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/GTPTunnel.h b/src/du_app/F1AP/asn/GTPTunnel.h new file mode 100755 index 000000000..97ebbe75e --- /dev/null +++ b/src/du_app/F1AP/asn/GTPTunnel.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GTPTunnel_H_ +#define _GTPTunnel_H_ + + +#include + +/* Including external dependencies */ +#include "TransportLayerAddress.h" +#include "GTP-TEID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* GTPTunnel */ +typedef struct GTPTunnel { + TransportLayerAddress_t transportLayerAddress; + GTP_TEID_t gTP_TEID; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GTPTunnel_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GTPTunnel; +extern asn_SEQUENCE_specifics_t asn_SPC_GTPTunnel_specs_1; +extern asn_TYPE_member_t asn_MBR_GTPTunnel_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GTPTunnel_H_ */ +#include diff --git a/src/du_app/F1AP/asn/HandoverPreparationInformation.c b/src/du_app/F1AP/asn/HandoverPreparationInformation.c new file mode 100755 index 000000000..6f19b8afe --- /dev/null +++ b/src/du_app/F1AP/asn/HandoverPreparationInformation.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "HandoverPreparationInformation.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_HandoverPreparationInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_HandoverPreparationInformation = { + "HandoverPreparationInformation", + "HandoverPreparationInformation", + &asn_OP_OCTET_STRING, + asn_DEF_HandoverPreparationInformation_tags_1, + sizeof(asn_DEF_HandoverPreparationInformation_tags_1) + /sizeof(asn_DEF_HandoverPreparationInformation_tags_1[0]), /* 1 */ + asn_DEF_HandoverPreparationInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_HandoverPreparationInformation_tags_1) + /sizeof(asn_DEF_HandoverPreparationInformation_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/HandoverPreparationInformation.h b/src/du_app/F1AP/asn/HandoverPreparationInformation.h new file mode 100755 index 000000000..2fe767823 --- /dev/null +++ b/src/du_app/F1AP/asn/HandoverPreparationInformation.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _HandoverPreparationInformation_H_ +#define _HandoverPreparationInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* HandoverPreparationInformation */ +typedef OCTET_STRING_t HandoverPreparationInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HandoverPreparationInformation; +asn_struct_free_f HandoverPreparationInformation_free; +asn_struct_print_f HandoverPreparationInformation_print; +asn_constr_check_f HandoverPreparationInformation_constraint; +ber_type_decoder_f HandoverPreparationInformation_decode_ber; +der_type_encoder_f HandoverPreparationInformation_encode_der; +xer_type_decoder_f HandoverPreparationInformation_decode_xer; +xer_type_encoder_f HandoverPreparationInformation_encode_xer; +oer_type_decoder_f HandoverPreparationInformation_decode_oer; +oer_type_encoder_f HandoverPreparationInformation_encode_oer; +per_type_decoder_f HandoverPreparationInformation_decode_uper; +per_type_encoder_f HandoverPreparationInformation_encode_uper; +per_type_decoder_f HandoverPreparationInformation_decode_aper; +per_type_encoder_f HandoverPreparationInformation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _HandoverPreparationInformation_H_ */ +#include diff --git a/src/du_app/F1AP/asn/INTEGER.c b/src/du_app/F1AP/asn/INTEGER.c new file mode 100755 index 000000000..2a2f4d720 --- /dev/null +++ b/src/du_app/F1AP/asn/INTEGER.c @@ -0,0 +1,1735 @@ +/*- + * Copyright (c) 2003-2014 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include /* Encoder and decoder of a primitive type */ +#include + +/* + * INTEGER basic type description. + */ +static const ber_tlv_tag_t asn_DEF_INTEGER_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_operation_t asn_OP_INTEGER = { + INTEGER_free, + INTEGER_print, + INTEGER_compare, + ber_decode_primitive, + INTEGER_encode_der, + INTEGER_decode_xer, + INTEGER_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + INTEGER_decode_oer, /* OER decoder */ + INTEGER_encode_oer, /* Canonical OER encoder */ +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + INTEGER_decode_uper, /* Unaligned PER decoder */ + INTEGER_encode_uper, /* Unaligned PER encoder */ + INTEGER_decode_aper, /* Aligned PER decoder */ + INTEGER_encode_aper, /* Aligned PER encoder */ +#endif /* ASN_DISABLE_PER_SUPPORT */ + INTEGER_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_INTEGER = { + "INTEGER", + "INTEGER", + &asn_OP_INTEGER, + asn_DEF_INTEGER_tags, + sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]), + asn_DEF_INTEGER_tags, /* Same as above */ + sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]), + { 0, 0, asn_generic_no_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +/* + * Encode INTEGER type using DER. + */ +asn_enc_rval_t +INTEGER_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, + void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + asn_enc_rval_t rval; + INTEGER_t effective_integer; + + ASN_DEBUG("%s %s as INTEGER (tm=%d)", + cb?"Encoding":"Estimating", td->name, tag_mode); + + /* + * Canonicalize integer in the buffer. + * (Remove too long sign extension, remove some first 0x00 bytes) + */ + if(st->buf) { + uint8_t *buf = st->buf; + uint8_t *end1 = buf + st->size - 1; + int shift; + + /* Compute the number of superfluous leading bytes */ + for(; buf < end1; buf++) { + /* + * If the contents octets of an integer value encoding + * consist of more than one octet, then the bits of the + * first octet and bit 8 of the second octet: + * a) shall not all be ones; and + * b) shall not all be zero. + */ + switch(*buf) { + case 0x00: if((buf[1] & 0x80) == 0) + continue; + break; + case 0xff: if((buf[1] & 0x80)) + continue; + break; + } + break; + } + + /* Remove leading superfluous bytes from the integer */ + shift = buf - st->buf; + if(shift) { + union { + const uint8_t *c_buf; + uint8_t *nc_buf; + } unconst; + unconst.c_buf = st->buf; + effective_integer.buf = unconst.nc_buf + shift; + effective_integer.size = st->size - shift; + + st = &effective_integer; + } + } + + rval = der_encode_primitive(td, st, tag_mode, tag, cb, app_key); + if(rval.structure_ptr == &effective_integer) { + rval.structure_ptr = sptr; + } + return rval; +} + +static const asn_INTEGER_enum_map_t *INTEGER_map_enum2value( + const asn_INTEGER_specifics_t *specs, const char *lstart, + const char *lstop); + +/* + * INTEGER specific human-readable output. + */ +static ssize_t +INTEGER__dump(const asn_TYPE_descriptor_t *td, const INTEGER_t *st, asn_app_consume_bytes_f *cb, void *app_key, int plainOrXER) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + char scratch[32]; + uint8_t *buf = st->buf; + uint8_t *buf_end = st->buf + st->size; + intmax_t value; + ssize_t wrote = 0; + char *p; + int ret; + + if(specs && specs->field_unsigned) + ret = asn_INTEGER2umax(st, (uintmax_t *)&value); + else + ret = asn_INTEGER2imax(st, &value); + + /* Simple case: the integer size is small */ + if(ret == 0) { + const asn_INTEGER_enum_map_t *el; + el = (value >= 0 || !specs || !specs->field_unsigned) + ? INTEGER_map_value2enum(specs, value) : 0; + if(el) { + if(plainOrXER == 0) + return asn__format_to_callback(cb, app_key, + "%" ASN_PRIdMAX " (%s)", value, el->enum_name); + else + return asn__format_to_callback(cb, app_key, + "<%s/>", el->enum_name); + } else if(plainOrXER && specs && specs->strict_enumeration) { + ASN_DEBUG("ASN.1 forbids dealing with " + "unknown value of ENUMERATED type"); + errno = EPERM; + return -1; + } else { + return asn__format_to_callback(cb, app_key, + (specs && specs->field_unsigned) + ? "%" ASN_PRIuMAX + : "%" ASN_PRIdMAX, + value); + } + } else if(plainOrXER && specs && specs->strict_enumeration) { + /* + * Here and earlier, we cannot encode the ENUMERATED values + * if there is no corresponding identifier. + */ + ASN_DEBUG("ASN.1 forbids dealing with " + "unknown value of ENUMERATED type"); + errno = EPERM; + return -1; + } + + /* Output in the long xx:yy:zz... format */ + /* TODO: replace with generic algorithm (Knuth TAOCP Vol 2, 4.3.1) */ + for(p = scratch; buf < buf_end; buf++) { + const char * const h2c = "0123456789ABCDEF"; + if((p - scratch) >= (ssize_t)(sizeof(scratch) - 4)) { + /* Flush buffer */ + if(cb(scratch, p - scratch, app_key) < 0) + return -1; + wrote += p - scratch; + p = scratch; + } + *p++ = h2c[*buf >> 4]; + *p++ = h2c[*buf & 0x0F]; + *p++ = 0x3a; /* ":" */ + } + if(p != scratch) + p--; /* Remove the last ":" */ + + wrote += p - scratch; + return (cb(scratch, p - scratch, app_key) < 0) ? -1 : wrote; +} + +/* + * INTEGER specific human-readable output. + */ +int +INTEGER_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + ssize_t ret; + + (void)ilevel; + + if(!st || !st->buf) + ret = cb("", 8, app_key); + else + ret = INTEGER__dump(td, st, cb, app_key, 0); + + return (ret < 0) ? -1 : 0; +} + +struct e2v_key { + const char *start; + const char *stop; + const asn_INTEGER_enum_map_t *vemap; + const unsigned int *evmap; +}; +static int +INTEGER__compar_enum2value(const void *kp, const void *am) { + const struct e2v_key *key = (const struct e2v_key *)kp; + const asn_INTEGER_enum_map_t *el = (const asn_INTEGER_enum_map_t *)am; + const char *ptr, *end, *name; + + /* Remap the element (sort by different criterion) */ + el = key->vemap + key->evmap[el - key->vemap]; + + /* Compare strings */ + for(ptr = key->start, end = key->stop, name = el->enum_name; + ptr < end; ptr++, name++) { + if(*ptr != *name || !*name) + return *(const unsigned char *)ptr + - *(const unsigned char *)name; + } + return name[0] ? -1 : 0; +} + +static const asn_INTEGER_enum_map_t * +INTEGER_map_enum2value(const asn_INTEGER_specifics_t *specs, const char *lstart, + const char *lstop) { + const asn_INTEGER_enum_map_t *el_found; + int count = specs ? specs->map_count : 0; + struct e2v_key key; + const char *lp; + + if(!count) return NULL; + + /* Guaranteed: assert(lstart < lstop); */ + /* Figure out the tag name */ + for(lstart++, lp = lstart; lp < lstop; lp++) { + switch(*lp) { + case 9: case 10: case 11: case 12: case 13: case 32: /* WSP */ + case 0x2f: /* '/' */ case 0x3e: /* '>' */ + break; + default: + continue; + } + break; + } + if(lp == lstop) return NULL; /* No tag found */ + lstop = lp; + + key.start = lstart; + key.stop = lstop; + key.vemap = specs->value2enum; + key.evmap = specs->enum2value; + el_found = (asn_INTEGER_enum_map_t *)bsearch(&key, + specs->value2enum, count, sizeof(specs->value2enum[0]), + INTEGER__compar_enum2value); + if(el_found) { + /* Remap enum2value into value2enum */ + el_found = key.vemap + key.evmap[el_found - key.vemap]; + } + return el_found; +} + +static int +INTEGER__compar_value2enum(const void *kp, const void *am) { + long a = *(const long *)kp; + const asn_INTEGER_enum_map_t *el = (const asn_INTEGER_enum_map_t *)am; + long b = el->nat_value; + if(a < b) return -1; + else if(a == b) return 0; + else return 1; +} + +const asn_INTEGER_enum_map_t * +INTEGER_map_value2enum(const asn_INTEGER_specifics_t *specs, long value) { + int count = specs ? specs->map_count : 0; + if(!count) return 0; + return (asn_INTEGER_enum_map_t *)bsearch(&value, specs->value2enum, + count, sizeof(specs->value2enum[0]), + INTEGER__compar_value2enum); +} + +static int +INTEGER_st_prealloc(INTEGER_t *st, int min_size) { + void *p = MALLOC(min_size + 1); + if(p) { + void *b = st->buf; + st->size = 0; + st->buf = p; + FREEMEM(b); + return 0; + } else { + return -1; + } +} + +/* + * Decode the chunk of XML text encoding INTEGER. + */ +static enum xer_pbd_rval +INTEGER__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, + const void *chunk_buf, size_t chunk_size) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + INTEGER_t *st = (INTEGER_t *)sptr; + intmax_t dec_value; + intmax_t hex_value = 0; + const char *lp; + const char *lstart = (const char *)chunk_buf; + const char *lstop = lstart + chunk_size; + enum { + ST_LEADSPACE, + ST_SKIPSPHEX, + ST_WAITDIGITS, + ST_DIGITS, + ST_DIGITS_TRAILSPACE, + ST_HEXDIGIT1, + ST_HEXDIGIT2, + ST_HEXDIGITS_TRAILSPACE, + ST_HEXCOLON, + ST_END_ENUM, + ST_UNEXPECTED + } state = ST_LEADSPACE; + const char *dec_value_start = 0; /* INVARIANT: always !0 in ST_DIGITS */ + const char *dec_value_end = 0; + + if(chunk_size) + ASN_DEBUG("INTEGER body %ld 0x%2x..0x%2x", + (long)chunk_size, *lstart, lstop[-1]); + + if(INTEGER_st_prealloc(st, (chunk_size/3) + 1)) + return XPBD_SYSTEM_FAILURE; + + /* + * We may have received a tag here. It will be processed inline. + * Use strtoul()-like code and serialize the result. + */ + for(lp = lstart; lp < lstop; lp++) { + int lv = *lp; + switch(lv) { + case 0x09: case 0x0a: case 0x0d: case 0x20: + switch(state) { + case ST_LEADSPACE: + case ST_DIGITS_TRAILSPACE: + case ST_HEXDIGITS_TRAILSPACE: + case ST_SKIPSPHEX: + continue; + case ST_DIGITS: + dec_value_end = lp; + state = ST_DIGITS_TRAILSPACE; + continue; + case ST_HEXCOLON: + state = ST_HEXDIGITS_TRAILSPACE; + continue; + default: + break; + } + break; + case 0x2d: /* '-' */ + if(state == ST_LEADSPACE) { + dec_value = 0; + dec_value_start = lp; + state = ST_WAITDIGITS; + continue; + } + break; + case 0x2b: /* '+' */ + if(state == ST_LEADSPACE) { + dec_value = 0; + dec_value_start = lp; + state = ST_WAITDIGITS; + continue; + } + break; + case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: + case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: + switch(state) { + case ST_DIGITS: continue; + case ST_SKIPSPHEX: /* Fall through */ + case ST_HEXDIGIT1: + hex_value = (lv - 0x30) << 4; + state = ST_HEXDIGIT2; + continue; + case ST_HEXDIGIT2: + hex_value += (lv - 0x30); + state = ST_HEXCOLON; + st->buf[st->size++] = (uint8_t)hex_value; + continue; + case ST_HEXCOLON: + return XPBD_BROKEN_ENCODING; + case ST_LEADSPACE: + dec_value = 0; + dec_value_start = lp; + /* FALL THROUGH */ + case ST_WAITDIGITS: + state = ST_DIGITS; + continue; + default: + break; + } + break; + case 0x3c: /* '<', start of XML encoded enumeration */ + if(state == ST_LEADSPACE) { + const asn_INTEGER_enum_map_t *el; + el = INTEGER_map_enum2value( + (const asn_INTEGER_specifics_t *) + td->specifics, lstart, lstop); + if(el) { + ASN_DEBUG("Found \"%s\" => %ld", + el->enum_name, el->nat_value); + dec_value = el->nat_value; + state = ST_END_ENUM; + lp = lstop - 1; + continue; + } + ASN_DEBUG("Unknown identifier for INTEGER"); + } + return XPBD_BROKEN_ENCODING; + case 0x3a: /* ':' */ + if(state == ST_HEXCOLON) { + /* This colon is expected */ + state = ST_HEXDIGIT1; + continue; + } else if(state == ST_DIGITS) { + /* The colon here means that we have + * decoded the first two hexadecimal + * places as a decimal value. + * Switch decoding mode. */ + ASN_DEBUG("INTEGER re-evaluate as hex form"); + state = ST_SKIPSPHEX; + dec_value_start = 0; + lp = lstart - 1; + continue; + } else { + ASN_DEBUG("state %d at %ld", state, (long)(lp - lstart)); + break; + } + /* [A-Fa-f] */ + case 0x41:case 0x42:case 0x43:case 0x44:case 0x45:case 0x46: + case 0x61:case 0x62:case 0x63:case 0x64:case 0x65:case 0x66: + switch(state) { + case ST_SKIPSPHEX: + case ST_LEADSPACE: /* Fall through */ + case ST_HEXDIGIT1: + hex_value = lv - ((lv < 0x61) ? 0x41 : 0x61); + hex_value += 10; + hex_value <<= 4; + state = ST_HEXDIGIT2; + continue; + case ST_HEXDIGIT2: + hex_value += lv - ((lv < 0x61) ? 0x41 : 0x61); + hex_value += 10; + st->buf[st->size++] = (uint8_t)hex_value; + state = ST_HEXCOLON; + continue; + case ST_DIGITS: + ASN_DEBUG("INTEGER re-evaluate as hex form"); + state = ST_SKIPSPHEX; + dec_value_start = 0; + lp = lstart - 1; + continue; + default: + break; + } + break; + } + + /* Found extra non-numeric stuff */ + ASN_DEBUG("INTEGER :: Found non-numeric 0x%2x at %ld", + lv, (long)(lp - lstart)); + state = ST_UNEXPECTED; + break; + } + + switch(state) { + case ST_END_ENUM: + /* Got a complete and valid enumeration encoded as a tag. */ + break; + case ST_DIGITS: + dec_value_end = lstop; + /* FALL THROUGH */ + case ST_DIGITS_TRAILSPACE: + /* The last symbol encountered was a digit. */ + switch(asn_strtoimax_lim(dec_value_start, &dec_value_end, &dec_value)) { + case ASN_STRTOX_OK: + if(specs && specs->field_unsigned && (uintmax_t) dec_value <= ULONG_MAX) { + break; + } else if(dec_value >= LONG_MIN && dec_value <= LONG_MAX) { + break; + } else { + /* + * We model INTEGER on long for XER, + * to avoid rewriting all the tests at once. + */ + ASN_DEBUG("INTEGER exceeds long range"); + } + /* Fall through */ + case ASN_STRTOX_ERROR_RANGE: + ASN_DEBUG("INTEGER decode %s hit range limit", td->name); + return XPBD_DECODER_LIMIT; + case ASN_STRTOX_ERROR_INVAL: + case ASN_STRTOX_EXPECT_MORE: + case ASN_STRTOX_EXTRA_DATA: + return XPBD_BROKEN_ENCODING; + } + break; + case ST_HEXCOLON: + case ST_HEXDIGITS_TRAILSPACE: + st->buf[st->size] = 0; /* Just in case termination */ + return XPBD_BODY_CONSUMED; + case ST_HEXDIGIT1: + case ST_HEXDIGIT2: + case ST_SKIPSPHEX: + return XPBD_BROKEN_ENCODING; + case ST_LEADSPACE: + /* Content not found */ + return XPBD_NOT_BODY_IGNORE; + case ST_WAITDIGITS: + case ST_UNEXPECTED: + ASN_DEBUG("INTEGER: No useful digits (state %d)", state); + return XPBD_BROKEN_ENCODING; /* No digits */ + } + + /* + * Convert the result of parsing of enumeration or a straight + * decimal value into a BER representation. + */ + if(asn_imax2INTEGER(st, dec_value)) { + ASN_DEBUG("INTEGER decode %s conversion failed", td->name); + return XPBD_SYSTEM_FAILURE; + } + + return XPBD_BODY_CONSUMED; +} + +asn_dec_rval_t +INTEGER_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, size_t size) { + return xer_decode_primitive(opt_codec_ctx, td, + sptr, sizeof(INTEGER_t), opt_mname, + buf_ptr, size, INTEGER__xer_body_decode); +} + +asn_enc_rval_t +INTEGER_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + asn_enc_rval_t er = {0,0,0}; + + (void)ilevel; + (void)flags; + + if(!st || !st->buf) + ASN__ENCODE_FAILED; + + er.encoded = INTEGER__dump(td, st, cb, app_key, 1); + if(er.encoded < 0) ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} + +#ifndef ASN_DISABLE_PER_SUPPORT + +asn_dec_rval_t +INTEGER_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval = { RC_OK, 0 }; + INTEGER_t *st = (INTEGER_t *)*sptr; + const asn_per_constraint_t *ct; + int repeat; + + (void)opt_codec_ctx; + + if(!st) { + st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + if(!constraints) constraints = td->encoding_constraints.per_constraints; + ct = constraints ? &constraints->value : 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) ASN__DECODE_STARVED; + if(inext) ct = 0; + } + + FREEMEM(st->buf); + st->buf = 0; + st->size = 0; + if(ct) { + if(ct->flags & APC_SEMI_CONSTRAINED) { + st->buf = (uint8_t *)CALLOC(1, 2); + if(!st->buf) ASN__DECODE_FAILED; + st->size = 1; + } else if(ct->flags & APC_CONSTRAINED && ct->range_bits >= 0) { + size_t size = (ct->range_bits + 7) >> 3; + st->buf = (uint8_t *)MALLOC(1 + size + 1); + if(!st->buf) ASN__DECODE_FAILED; + st->size = size; + } + } + + /* X.691-2008/11, #13.2.2, constrained whole number */ + if(ct && ct->flags != APC_UNCONSTRAINED) { + /* #11.5.6 */ + ASN_DEBUG("Integer with range %d bits", ct->range_bits); + if(ct->range_bits >= 0) { + if((size_t)ct->range_bits > 8 * sizeof(unsigned long)) + ASN__DECODE_FAILED; + + if(specs && specs->field_unsigned) { + unsigned long uvalue = 0; + if(uper_get_constrained_whole_number(pd, + &uvalue, ct->range_bits)) + ASN__DECODE_STARVED; + ASN_DEBUG("Got value %lu + low %ld", + uvalue, ct->lower_bound); + uvalue += ct->lower_bound; + if(asn_ulong2INTEGER(st, uvalue)) + ASN__DECODE_FAILED; + } else { + unsigned long uvalue = 0; + long svalue; + if(uper_get_constrained_whole_number(pd, + &uvalue, ct->range_bits)) + ASN__DECODE_STARVED; + ASN_DEBUG("Got value %lu + low %ld", + uvalue, ct->lower_bound); + if(per_long_range_unrebase(uvalue, ct->lower_bound, + ct->upper_bound, &svalue) + || asn_long2INTEGER(st, svalue)) { + ASN__DECODE_FAILED; + } + } + return rval; + } + } else { + ASN_DEBUG("Decoding unconstrained integer %s", td->name); + } + + /* X.691, #12.2.3, #12.2.4 */ + do { + ssize_t len = 0; + void *p = NULL; + int ret = 0; + + /* Get the PER length */ + len = uper_get_length(pd, -1, 0, &repeat); + if(len < 0) ASN__DECODE_STARVED; + + p = REALLOC(st->buf, st->size + len + 1); + if(!p) ASN__DECODE_FAILED; + st->buf = (uint8_t *)p; + + ret = per_get_many_bits(pd, &st->buf[st->size], 0, 8 * len); + if(ret < 0) ASN__DECODE_STARVED; + st->size += len; + } while(repeat); + st->buf[st->size] = 0; /* JIC */ + + /* #12.2.3 */ + if(ct && ct->lower_bound) { + /* + * TODO: replace by in-place arithmetics. + */ + long value = 0; + if(asn_INTEGER2long(st, &value)) + ASN__DECODE_FAILED; + if(asn_imax2INTEGER(st, value + ct->lower_bound)) + ASN__DECODE_FAILED; + } + + return rval; +} + +asn_enc_rval_t +INTEGER_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + const INTEGER_t *st = (const INTEGER_t *)sptr; + const uint8_t *buf; + const uint8_t *end; + const asn_per_constraint_t *ct; + long value = 0; + + if(!st || st->size == 0) ASN__ENCODE_FAILED; + + if(!constraints) constraints = td->encoding_constraints.per_constraints; + ct = constraints ? &constraints->value : 0; + + er.encoded = 0; + + if(ct) { + int inext = 0; + if(specs && specs->field_unsigned) { + unsigned long uval; + if(asn_INTEGER2ulong(st, &uval)) + ASN__ENCODE_FAILED; + /* Check proper range */ + if(ct->flags & APC_SEMI_CONSTRAINED) { + if(uval < (unsigned long)ct->lower_bound) + inext = 1; + } else if(ct->range_bits >= 0) { + if(uval < (unsigned long)ct->lower_bound + || uval > (unsigned long)ct->upper_bound) + inext = 1; + } + ASN_DEBUG("Value %lu (%02x/%" ASN_PRI_SIZE ") lb %lu ub %lu %s", + uval, st->buf[0], st->size, + ct->lower_bound, ct->upper_bound, + inext ? "ext" : "fix"); + value = uval; + } else { + if(asn_INTEGER2long(st, &value)) + ASN__ENCODE_FAILED; + /* Check proper range */ + if(ct->flags & APC_SEMI_CONSTRAINED) { + if(value < ct->lower_bound) + inext = 1; + } else if(ct->range_bits >= 0) { + if(value < ct->lower_bound + || value > ct->upper_bound) + inext = 1; + } + ASN_DEBUG("Value %ld (%02x/%" ASN_PRI_SIZE ") lb %ld ub %ld %s", + value, st->buf[0], st->size, + ct->lower_bound, ct->upper_bound, + inext ? "ext" : "fix"); + } + if(ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + if(inext) ct = 0; + } else if(inext) { + ASN__ENCODE_FAILED; + } + } + + + /* X.691-11/2008, #13.2.2, test if constrained whole number */ + if(ct && ct->range_bits >= 0) { + unsigned long v; + /* #11.5.6 -> #11.3 */ + ASN_DEBUG("Encoding integer %ld (%lu) with range %d bits", + value, value - ct->lower_bound, ct->range_bits); + if(specs && specs->field_unsigned) { + if ( ((unsigned long)ct->lower_bound > (unsigned long)(ct->upper_bound) + || ((unsigned long)value < (unsigned long)ct->lower_bound)) + || ((unsigned long)value > (unsigned long)ct->upper_bound) + ) { + ASN_DEBUG("Value %lu to-be-encoded is outside the bounds [%lu, %lu]!", + value, ct->lower_bound, ct->upper_bound); + ASN__ENCODE_FAILED; + } + v = (unsigned long)value - (unsigned long)ct->lower_bound; + } else { + if(per_long_range_rebase(value, ct->lower_bound, ct->upper_bound, &v)) { + ASN__ENCODE_FAILED; + } + } + if(uper_put_constrained_whole_number_u(po, v, ct->range_bits)) + ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + if(ct && ct->lower_bound) { + ASN_DEBUG("Adjust lower bound to %ld", ct->lower_bound); + /* TODO: adjust lower bound */ + ASN__ENCODE_FAILED; + } + + for(buf = st->buf, end = st->buf + st->size; buf < end;) { + int need_eom = 0; + ssize_t mayEncode = uper_put_length(po, end - buf, &need_eom); + if(mayEncode < 0) + ASN__ENCODE_FAILED; + if(per_put_many_bits(po, buf, 8 * mayEncode)) + ASN__ENCODE_FAILED; + buf += mayEncode; + if(need_eom && uper_put_length(po, 0, 0)) ASN__ENCODE_FAILED; + } + + ASN__ENCODED_OK(er); +} + +asn_dec_rval_t +INTEGER_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval = { RC_OK, 0 }; + INTEGER_t *st = (INTEGER_t *)*sptr; + const asn_per_constraint_t *ct; + int repeat; + + (void)opt_codec_ctx; + + if(!st) { + st = (INTEGER_t *)(*sptr = CALLOC(1, sizeof(*st))); + if(!st) ASN__DECODE_FAILED; + } + + if(!constraints) constraints = td->encoding_constraints.per_constraints; + ct = constraints ? &constraints->value : 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) ASN__DECODE_STARVED; + if(inext) ct = 0; + } + + FREEMEM(st->buf); + st->buf = 0; + st->size = 0; + if(ct) { + if(ct->flags & APC_SEMI_CONSTRAINED) { + st->buf = (uint8_t *)CALLOC(1, 2); + if(!st->buf) ASN__DECODE_FAILED; + st->size = 1; + } else if(ct->flags & APC_CONSTRAINED && ct->range_bits >= 0) { + size_t size = (ct->range_bits + 7) >> 3; + st->buf = (uint8_t *)MALLOC(1 + size + 1); + if(!st->buf) ASN__DECODE_FAILED; + st->size = size; + } + } + + /* X.691, #12.2.2 */ + if(ct && ct->flags != APC_UNCONSTRAINED) { + /* #10.5.6 */ + ASN_DEBUG("Integer with range %d bits", ct->range_bits); + if(ct->range_bits >= 0) { + if (ct->range_bits > 16) { + int max_range_bytes = (ct->range_bits >> 3) + + (((ct->range_bits % 8) > 0) ? 1 : 0); + int length = 0, i; + long value = 0; + + for (i = 1; ; i++) { + int upper = 1 << i; + if (upper >= max_range_bytes) + break; + } + ASN_DEBUG("Can encode %d (%d bytes) in %d bits", ct->range_bits, + max_range_bytes, i); + + if ((length = per_get_few_bits(pd, i)) < 0) + ASN__DECODE_FAILED; + + /* X.691 #12.2.6 length determinant + lb (1) */ + length += 1; + ASN_DEBUG("Got length %d", length); + if (aper_get_align(pd) != 0) + ASN__DECODE_FAILED; + while (length--) { + int buf = per_get_few_bits(pd, 8); + if (buf < 0) + ASN__DECODE_FAILED; + value += (((long)buf) << (8 * length)); + } + + value += ct->lower_bound; + if((specs && specs->field_unsigned) + ? asn_uint642INTEGER(st, (unsigned long)value) + : asn_int642INTEGER(st, value)) + ASN__DECODE_FAILED; + ASN_DEBUG("Got value %ld + low %ld", + value, ct->lower_bound); + } else { + long value = 0; + if (ct->range_bits < 8) { + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + } else if (ct->range_bits == 8) { + if (aper_get_align(pd) < 0) + ASN__DECODE_FAILED; + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + } else { + /* Align */ + if (aper_get_align(pd) < 0) + ASN__DECODE_FAILED; + value = per_get_few_bits(pd, 16); + if(value < 0) ASN__DECODE_STARVED; + } + value += ct->lower_bound; + if((specs && specs->field_unsigned) + ? asn_ulong2INTEGER(st, value) + : asn_long2INTEGER(st, value)) + ASN__DECODE_FAILED; + ASN_DEBUG("Got value %ld + low %ld", + value, ct->lower_bound); + } + return rval; + } else { + ASN__DECODE_FAILED; + } + } else { + ASN_DEBUG("Decoding unconstrained integer %s", td->name); + } + + /* X.691, #12.2.3, #12.2.4 */ + do { + ssize_t len; + void *p; + int ret; + + /* Get the PER length */ + len = aper_get_length(pd, -1, -1, &repeat); + if(len < 0) ASN__DECODE_STARVED; + + p = REALLOC(st->buf, st->size + len + 1); + if(!p) ASN__DECODE_FAILED; + st->buf = (uint8_t *)p; + + ret = per_get_many_bits(pd, &st->buf[st->size], 0, 8 * len); + if(ret < 0) ASN__DECODE_STARVED; + st->size += len; + } while(repeat); + st->buf[st->size] = 0; /* JIC */ + + /* #12.2.3 */ + if(ct && ct->lower_bound) { + /* + * TODO: replace by in-place arithmetics. + */ + long value; + if(asn_INTEGER2long(st, &value)) + ASN__DECODE_FAILED; + if(asn_long2INTEGER(st, value + ct->lower_bound)) + ASN__DECODE_FAILED; + } + + return rval; +} + +asn_enc_rval_t +INTEGER_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + const INTEGER_t *st = (const INTEGER_t *)sptr; + const uint8_t *buf; + const uint8_t *end; + const asn_per_constraint_t *ct; + long value = 0; + + if(!st || st->size == 0) ASN__ENCODE_FAILED; + + if(!constraints) constraints = td->encoding_constraints.per_constraints; + ct = constraints ? &constraints->value : 0; + + er.encoded = 0; + + if(ct) { + int inext = 0; + if(specs && specs->field_unsigned) { + unsigned long uval; + if(asn_INTEGER2ulong(st, &uval)) + ASN__ENCODE_FAILED; + /* Check proper range */ + if(ct->flags & APC_SEMI_CONSTRAINED) { + if(uval < (unsigned long)ct->lower_bound) + inext = 1; + } else if(ct->range_bits >= 0) { + if(uval < (unsigned long)ct->lower_bound + || uval > (unsigned long)ct->upper_bound) + inext = 1; + } + ASN_DEBUG("Value %lu (%02x/%lu) lb %ld ub %ld %s", + uval, st->buf[0], st->size, + ct->lower_bound, ct->upper_bound, + inext ? "ext" : "fix"); + value = uval; + } else { + if(asn_INTEGER2long(st, &value)) ASN__ENCODE_FAILED; + /* Check proper range */ + if(ct->flags & APC_SEMI_CONSTRAINED) { + if(value < ct->lower_bound) + inext = 1; + } else if(ct->range_bits >= 0) { + if(value < ct->lower_bound + || value > ct->upper_bound) + inext = 1; + } + ASN_DEBUG("Value %lu (%02x/%lu) lb %ld ub %ld %s", + value, st->buf[0], st->size, + ct->lower_bound, ct->upper_bound, + inext ? "ext" : "fix"); + } + if(ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + if(inext) ct = 0; + } else if(inext) { + ASN__ENCODE_FAILED; + } + } + + /* X.691, #12.2.2 */ + if(ct && ct->range_bits >= 0) { + unsigned long v; + + /* #10.5.6 */ + ASN_DEBUG("Encoding integer %ld (%lu) with range %d bits", + value, value - ct->lower_bound, ct->range_bits); + + v = value - ct->lower_bound; + + /* #12 <= 8 -> alignment ? */ + if (ct->range_bits < 8) { + if(per_put_few_bits(po, 0x00 | v, ct->range_bits)) + ASN__ENCODE_FAILED; + } else if (ct->range_bits == 8) { + if(aper_put_align(po) < 0) + ASN__ENCODE_FAILED; + if(per_put_few_bits(po, 0x00 | v, ct->range_bits)) + ASN__ENCODE_FAILED; + } else if (ct->range_bits <= 16) { + /* Consume the bytes to align on octet */ + if(aper_put_align(po) < 0) + ASN__ENCODE_FAILED; + if(per_put_few_bits(po, 0x0000 | v, + 16)) + ASN__ENCODE_FAILED; + } else { + /* TODO: extend to >64 bits */ + int64_t v64 = v; + int i, j; + int max_range_bytes = (ct->range_bits >> 3) + + (((ct->range_bits % 8) > 0) ? 1 : 0); + + for (i = 1; ; i++) { + int upper = 1 << i; + if (upper >= max_range_bytes) + break; + } + + for (j = sizeof(int64_t) -1; j != 0; j--) { + int64_t val; + val = v64 >> (j * 8); + if (val != 0) + break; + } + + /* Putting length in the minimum number of bits ex: 5 = 3bits */ + if (per_put_few_bits(po, j, i)) + ASN__ENCODE_FAILED; + + /* Consume the bits to align on octet */ + if (aper_put_align(po) < 0) + ASN__ENCODE_FAILED; + /* Put the value */ + for (i = 0; i <= j; i++) { + if(per_put_few_bits(po, (v64 >> (8 * (j - i))) & 0xff, 8)) + ASN__ENCODE_FAILED; + } + } + ASN__ENCODED_OK(er); + } + + if(ct && ct->lower_bound) { + ASN_DEBUG("Adjust lower bound to %ld", ct->lower_bound); + /* TODO: adjust lower bound */ + ASN__ENCODE_FAILED; + } + + for(buf = st->buf, end = st->buf + st->size; buf < end;) { + ssize_t mayEncode = aper_put_length(po, -1, end - buf); + if(mayEncode < 0) + ASN__ENCODE_FAILED; + if(per_put_many_bits(po, buf, 8 * mayEncode)) + ASN__ENCODE_FAILED; + buf += mayEncode; + } + + ASN__ENCODED_OK(er); +} + +#endif /* ASN_DISABLE_PER_SUPPORT */ + +static intmax_t +asn__integer_convert(const uint8_t *b, const uint8_t *end) { + uintmax_t value; + + /* Perform the sign initialization */ + /* Actually value = -(*b >> 7); gains nothing, yet unreadable! */ + if((*b >> 7)) { + value = (uintmax_t)(-1); + } else { + value = 0; + } + + /* Conversion engine */ + for(; b < end; b++) { + value = (value << 8) | *b; + } + + return value; +} + +int +asn_INTEGER2imax(const INTEGER_t *iptr, intmax_t *lptr) { + uint8_t *b, *end; + size_t size; + + /* Sanity checking */ + if(!iptr || !iptr->buf || !lptr) { + errno = EINVAL; + return -1; + } + + /* Cache the begin/end of the buffer */ + b = iptr->buf; /* Start of the INTEGER buffer */ + size = iptr->size; + end = b + size; /* Where to stop */ + + if(size > sizeof(intmax_t)) { + uint8_t *end1 = end - 1; + /* + * Slightly more advanced processing, + * able to process INTEGERs with >sizeof(intmax_t) bytes + * when the actual value is small, e.g. for intmax_t == int32_t + * (0x0000000000abcdef INTEGER would yield a fine 0x00abcdef int32_t) + */ + /* Skip out the insignificant leading bytes */ + for(; b < end1; b++) { + switch(*b) { + case 0x00: if((b[1] & 0x80) == 0) continue; break; + case 0xff: if((b[1] & 0x80) != 0) continue; break; + } + break; + } + + size = end - b; + if(size > sizeof(intmax_t)) { + /* Still cannot fit the sizeof(intmax_t) */ + errno = ERANGE; + return -1; + } + } + + /* Shortcut processing of a corner case */ + if(end == b) { + *lptr = 0; + return 0; + } + + *lptr = asn__integer_convert(b, end); + return 0; +} + +/* FIXME: negative INTEGER values are silently interpreted as large unsigned ones. */ +int +asn_INTEGER2umax(const INTEGER_t *iptr, uintmax_t *lptr) { + uint8_t *b, *end; + uintmax_t value; + size_t size; + + if(!iptr || !iptr->buf || !lptr) { + errno = EINVAL; + return -1; + } + + b = iptr->buf; + size = iptr->size; + end = b + size; + + /* If all extra leading bytes are zeroes, ignore them */ + for(; size > sizeof(value); b++, size--) { + if(*b) { + /* Value won't fit into uintmax_t */ + errno = ERANGE; + return -1; + } + } + + /* Conversion engine */ + for(value = 0; b < end; b++) + value = (value << 8) | *b; + + *lptr = value; + return 0; +} + +int +asn_umax2INTEGER(INTEGER_t *st, uintmax_t value) { + uint8_t *buf; + uint8_t *end; + uint8_t *b; + int shr; + + if(value <= ((~(uintmax_t)0) >> 1)) { + return asn_imax2INTEGER(st, value); + } + + buf = (uint8_t *)MALLOC(1 + sizeof(value)); + if(!buf) return -1; + + end = buf + (sizeof(value) + 1); + buf[0] = 0; /* INTEGERs are signed. 0-byte indicates positive. */ + for(b = buf + 1, shr = (sizeof(value) - 1) * 8; b < end; shr -= 8, b++) + *b = (uint8_t)(value >> shr); + + if(st->buf) FREEMEM(st->buf); + st->buf = buf; + st->size = 1 + sizeof(value); + + return 0; +} + +int +asn_imax2INTEGER(INTEGER_t *st, intmax_t value) { + uint8_t *buf, *bp; + uint8_t *p; + uint8_t *pstart; + uint8_t *pend1; + int littleEndian = 1; /* Run-time detection */ + int add; + + if(!st) { + errno = EINVAL; + return -1; + } + + buf = (uint8_t *)(long *)MALLOC(sizeof(value)); + if(!buf) return -1; + + if(*(char *)&littleEndian) { + pstart = (uint8_t *)&value + sizeof(value) - 1; + pend1 = (uint8_t *)&value; + add = -1; + } else { + pstart = (uint8_t *)&value; + pend1 = pstart + sizeof(value) - 1; + add = 1; + } + + /* + * If the contents octet consists of more than one octet, + * then bits of the first octet and bit 8 of the second octet: + * a) shall not all be ones; and + * b) shall not all be zero. + */ + for(p = pstart; p != pend1; p += add) { + switch(*p) { + case 0x00: if((*(p+add) & 0x80) == 0) + continue; + break; + case 0xff: if((*(p+add) & 0x80)) + continue; + break; + } + break; + } + /* Copy the integer body */ + for(bp = buf, pend1 += add; p != pend1; p += add) + *bp++ = *p; + + if(st->buf) FREEMEM(st->buf); + st->buf = buf; + st->size = bp - buf; + + return 0; +} + +int +asn_INTEGER2long(const INTEGER_t *iptr, long *l) { + intmax_t v; + if(asn_INTEGER2imax(iptr, &v) == 0) { + if(v < LONG_MIN || v > LONG_MAX) { + errno = ERANGE; + return -1; + } + *l = v; + return 0; + } else { + return -1; + } +} + +int +asn_INTEGER2ulong(const INTEGER_t *iptr, unsigned long *l) { + uintmax_t v; + if(asn_INTEGER2umax(iptr, &v) == 0) { + if(v > ULONG_MAX) { + errno = ERANGE; + return -1; + } + *l = v; + return 0; + } else { + return -1; + } +} + +int +asn_long2INTEGER(INTEGER_t *st, long value) { + return asn_imax2INTEGER(st, value); +} + +int +asn_ulong2INTEGER(INTEGER_t *st, unsigned long value) { + return asn_imax2INTEGER(st, value); +} + + +int +asn_uint642INTEGER(INTEGER_t *st, uint64_t value) { + uint8_t *buf; + uint8_t *end; + uint8_t *b; + int shr; + + if(value <= INT64_MAX) + return asn_int642INTEGER(st, value); + + buf = (uint8_t *)MALLOC(1 + sizeof(value)); + if(!buf) return -1; + + end = buf + (sizeof(value) + 1); + buf[0] = 0; + for(b = buf + 1, shr = (sizeof(value)-1)*8; b < end; shr -= 8, b++) + *b = (uint8_t)(value >> shr); + + if(st->buf) FREEMEM(st->buf); + st->buf = buf; + st->size = 1 + sizeof(value); + + return 0; +} + +int +asn_int642INTEGER(INTEGER_t *st, int64_t value) { + uint8_t *buf, *bp; + uint8_t *p; + uint8_t *pstart; + uint8_t *pend1; + int littleEndian = 1; /* Run-time detection */ + int add; + + if(!st) { + errno = EINVAL; + return -1; + } + + buf = (uint8_t *)MALLOC(sizeof(value)); + if(!buf) return -1; + + if(*(char *)&littleEndian) { + pstart = (uint8_t *)&value + sizeof(value) - 1; + pend1 = (uint8_t *)&value; + add = -1; + } else { + pstart = (uint8_t *)&value; + pend1 = pstart + sizeof(value) - 1; + add = 1; + } + + /* + * If the contents octet consists of more than one octet, + * then bits of the first octet and bit 8 of the second octet: + * a) shall not all be ones; and + * b) shall not all be zero. + */ + for(p = pstart; p != pend1; p += add) { + switch(*p) { + case 0x00: if((*(p+add) & 0x80) == 0) + continue; + break; + case 0xff: if((*(p+add) & 0x80)) + continue; + break; + } + break; + } + /* Copy the integer body */ + for(pstart = p, bp = buf, pend1 += add; p != pend1; p += add) + *bp++ = *p; + + if(st->buf) FREEMEM(st->buf); + st->buf = buf; + st->size = bp - buf; + + return 0; +} + +/* + * Parse the number in the given string until the given *end position, + * returning the position after the last parsed character back using the + * same (*end) pointer. + * WARNING: This behavior is different from the standard strtol/strtoimax(3). + */ +enum asn_strtox_result_e +asn_strtoimax_lim(const char *str, const char **end, intmax_t *intp) { + int sign = 1; + intmax_t value; + +#define ASN1_INTMAX_MAX ((~(uintmax_t)0) >> 1) + const intmax_t upper_boundary = ASN1_INTMAX_MAX / 10; + intmax_t last_digit_max = ASN1_INTMAX_MAX % 10; +#undef ASN1_INTMAX_MAX + + if(str >= *end) return ASN_STRTOX_ERROR_INVAL; + + switch(*str) { + case '-': + last_digit_max++; + sign = -1; + /* FALL THROUGH */ + case '+': + str++; + if(str >= *end) { + *end = str; + return ASN_STRTOX_EXPECT_MORE; + } + } + + for(value = 0; str < (*end); str++) { + switch(*str) { + case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: + case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: { + int d = *str - '0'; + if(value < upper_boundary) { + value = value * 10 + d; + } else if(value == upper_boundary) { + if(d <= last_digit_max) { + if(sign > 0) { + value = value * 10 + d; + } else { + sign = 1; + value = -value * 10 - d; + } + } else { + *end = str; + return ASN_STRTOX_ERROR_RANGE; + } + } else { + *end = str; + return ASN_STRTOX_ERROR_RANGE; + } + } + continue; + default: + *end = str; + *intp = sign * value; + return ASN_STRTOX_EXTRA_DATA; + } + } + + *end = str; + *intp = sign * value; + return ASN_STRTOX_OK; +} + +/* + * Parse the number in the given string until the given *end position, + * returning the position after the last parsed character back using the + * same (*end) pointer. + * WARNING: This behavior is different from the standard strtoul/strtoumax(3). + */ +enum asn_strtox_result_e +asn_strtoumax_lim(const char *str, const char **end, uintmax_t *uintp) { + uintmax_t value; + +#define ASN1_UINTMAX_MAX ((~(uintmax_t)0)) + const uintmax_t upper_boundary = ASN1_UINTMAX_MAX / 10; + uintmax_t last_digit_max = ASN1_UINTMAX_MAX % 10; +#undef ASN1_UINTMAX_MAX + + if(str >= *end) return ASN_STRTOX_ERROR_INVAL; + + switch(*str) { + case '-': + return ASN_STRTOX_ERROR_INVAL; + case '+': + str++; + if(str >= *end) { + *end = str; + return ASN_STRTOX_EXPECT_MORE; + } + } + + for(value = 0; str < (*end); str++) { + switch(*str) { + case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: + case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: { + unsigned int d = *str - '0'; + if(value < upper_boundary) { + value = value * 10 + d; + } else if(value == upper_boundary) { + if(d <= last_digit_max) { + value = value * 10 + d; + } else { + *end = str; + return ASN_STRTOX_ERROR_RANGE; + } + } else { + *end = str; + return ASN_STRTOX_ERROR_RANGE; + } + } + continue; + default: + *end = str; + *uintp = value; + return ASN_STRTOX_EXTRA_DATA; + } + } + + *end = str; + *uintp = value; + return ASN_STRTOX_OK; +} + +enum asn_strtox_result_e +asn_strtol_lim(const char *str, const char **end, long *lp) { + intmax_t value; + switch(asn_strtoimax_lim(str, end, &value)) { + case ASN_STRTOX_ERROR_RANGE: + return ASN_STRTOX_ERROR_RANGE; + case ASN_STRTOX_ERROR_INVAL: + return ASN_STRTOX_ERROR_INVAL; + case ASN_STRTOX_EXPECT_MORE: + return ASN_STRTOX_EXPECT_MORE; + case ASN_STRTOX_OK: + if(value >= LONG_MIN && value <= LONG_MAX) { + *lp = value; + return ASN_STRTOX_OK; + } else { + return ASN_STRTOX_ERROR_RANGE; + } + case ASN_STRTOX_EXTRA_DATA: + if(value >= LONG_MIN && value <= LONG_MAX) { + *lp = value; + return ASN_STRTOX_EXTRA_DATA; + } else { + return ASN_STRTOX_ERROR_RANGE; + } + } + + assert(!"Unreachable"); + return ASN_STRTOX_ERROR_INVAL; +} + +enum asn_strtox_result_e +asn_strtoul_lim(const char *str, const char **end, unsigned long *ulp) { + uintmax_t value; + switch(asn_strtoumax_lim(str, end, &value)) { + case ASN_STRTOX_ERROR_RANGE: + return ASN_STRTOX_ERROR_RANGE; + case ASN_STRTOX_ERROR_INVAL: + return ASN_STRTOX_ERROR_INVAL; + case ASN_STRTOX_EXPECT_MORE: + return ASN_STRTOX_EXPECT_MORE; + case ASN_STRTOX_OK: + if(value <= ULONG_MAX) { + *ulp = value; + return ASN_STRTOX_OK; + } else { + return ASN_STRTOX_ERROR_RANGE; + } + case ASN_STRTOX_EXTRA_DATA: + if(value <= ULONG_MAX) { + *ulp = value; + return ASN_STRTOX_EXTRA_DATA; + } else { + return ASN_STRTOX_ERROR_RANGE; + } + } + + assert(!"Unreachable"); + return ASN_STRTOX_ERROR_INVAL; +} + +int +INTEGER_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const INTEGER_t *a = aptr; + const INTEGER_t *b = bptr; + + (void)td; + + if(a && b) { + if(a->size && b->size) { + int sign_a = (a->buf[0] & 0x80) ? -1 : 1; + int sign_b = (b->buf[0] & 0x80) ? -1 : 1; + + if(sign_a < sign_b) return -1; + if(sign_a > sign_b) return 1; + + /* The shortest integer wins, unless comparing negatives */ + if(a->size < b->size) { + return -1 * sign_a; + } else if(a->size > b->size) { + return 1 * sign_b; + } + + return sign_a * memcmp(a->buf, b->buf, a->size); + } else if(a->size) { + int sign = (a->buf[0] & 0x80) ? -1 : 1; + return (1) * sign; + } else if(b->size) { + int sign = (a->buf[0] & 0x80) ? -1 : 1; + return (-1) * sign; + } else { + return 0; + } + } else if(!a && !b) { + return 0; + } else if(!a) { + return -1; + } else { + return 1; + } + +} + +asn_random_fill_result_t +INTEGER_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + INTEGER_t *st = *sptr; + const asn_INTEGER_enum_map_t *emap; + size_t emap_len; + intmax_t value; + int find_inside_map; + + if(max_length == 0) return result_skipped; + + if(st == NULL) { + st = (INTEGER_t *)CALLOC(1, sizeof(*st)); + if(st == NULL) { + return result_failed; + } + } + + if(specs) { + emap = specs->value2enum; + emap_len = specs->map_count; + if(specs->strict_enumeration) { + find_inside_map = emap_len > 0; + } else { + find_inside_map = emap_len ? asn_random_between(0, 1) : 0; + } + } else { + emap = 0; + emap_len = 0; + find_inside_map = 0; + } + + if(find_inside_map) { + assert(emap_len > 0); + value = emap[asn_random_between(0, emap_len - 1)].nat_value; + } else { + const asn_per_constraints_t *ct; + + static const long variants[] = { + -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384, + -16383, -257, -256, -255, -254, -129, -128, -127, + -126, -1, 0, 1, 126, 127, 128, 129, + 254, 255, 256, 257, 16383, 16384, 16385, 32767, + 32768, 32769, 65534, 65535, 65536, 65537}; + if(specs && specs->field_unsigned) { + assert(variants[18] == 0); + value = variants[asn_random_between( + 18, sizeof(variants) / sizeof(variants[0]) - 1)]; + } else { + value = variants[asn_random_between( + 0, sizeof(variants) / sizeof(variants[0]) - 1)]; + } + + if(!constraints) constraints = &td->encoding_constraints; + ct = constraints ? constraints->per_constraints : 0; + if(ct && (ct->value.flags & APC_CONSTRAINED)) { + if(value < ct->value.lower_bound || value > ct->value.upper_bound) { + value = asn_random_between(ct->value.lower_bound, + ct->value.upper_bound); + } + } + } + + if(asn_imax2INTEGER(st, value)) { + if(st == *sptr) { + ASN_STRUCT_RESET(*td, st); + } else { + ASN_STRUCT_FREE(*td, st); + } + return result_failed; + } else { + *sptr = st; + result_ok.length = st->size; + return result_ok; + } +} diff --git a/src/du_app/F1AP/asn/INTEGER.h b/src/du_app/F1AP/asn/INTEGER.h new file mode 100755 index 000000000..f776c072e --- /dev/null +++ b/src/du_app/F1AP/asn/INTEGER.h @@ -0,0 +1,108 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _INTEGER_H_ +#define _INTEGER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef ASN__PRIMITIVE_TYPE_t INTEGER_t; + +extern asn_TYPE_descriptor_t asn_DEF_INTEGER; +extern asn_TYPE_operation_t asn_OP_INTEGER; + +/* Map with to integer value association */ +typedef struct asn_INTEGER_enum_map_s { + long nat_value; /* associated native integer value */ + size_t enum_len; /* strlen("tag") */ + const char *enum_name; /* "tag" */ +} asn_INTEGER_enum_map_t; + +/* This type describes an enumeration for INTEGER and ENUMERATED types */ +typedef struct asn_INTEGER_specifics_s { + const asn_INTEGER_enum_map_t *value2enum; /* N -> "tag"; sorted by N */ + const unsigned int *enum2value; /* "tag" => N; sorted by tag */ + int map_count; /* Elements in either map */ + int extension; /* This map is extensible */ + int strict_enumeration; /* Enumeration set is fixed */ + int field_width; /* Size of native integer */ + int field_unsigned; /* Signed=0, unsigned=1 */ +} asn_INTEGER_specifics_t; + +#define INTEGER_free ASN__PRIMITIVE_TYPE_free +#define INTEGER_decode_ber ber_decode_primitive +#define INTEGER_constraint asn_generic_no_constraint +asn_struct_print_f INTEGER_print; +asn_struct_compare_f INTEGER_compare; +der_type_encoder_f INTEGER_encode_der; +xer_type_decoder_f INTEGER_decode_xer; +xer_type_encoder_f INTEGER_encode_xer; +oer_type_decoder_f INTEGER_decode_oer; +oer_type_encoder_f INTEGER_encode_oer; +per_type_decoder_f INTEGER_decode_uper; +per_type_encoder_f INTEGER_encode_uper; +per_type_decoder_f INTEGER_decode_aper; +per_type_encoder_f INTEGER_encode_aper; +asn_random_fill_f INTEGER_random_fill; + +/*********************************** + * Some handy conversion routines. * + ***********************************/ + +/* + * Natiwe size-independent conversion of native integers to/from INTEGER. + * (l_size) is in bytes. + * Returns 0 if it was possible to convert, -1 otherwise. + * -1/EINVAL: Mandatory argument missing + * -1/ERANGE: Value encoded is out of range for long representation + * -1/ENOMEM: Memory allocation failed (in asn_*2INTEGER()). + */ +int asn_INTEGER2imax(const INTEGER_t *i, intmax_t *l); +int asn_INTEGER2umax(const INTEGER_t *i, uintmax_t *l); +int asn_imax2INTEGER(INTEGER_t *i, intmax_t l); +int asn_umax2INTEGER(INTEGER_t *i, uintmax_t l); + +/* + * Size-specific conversion helpers. + */ +int asn_INTEGER2long(const INTEGER_t *i, long *l); +int asn_INTEGER2ulong(const INTEGER_t *i, unsigned long *l); +int asn_long2INTEGER(INTEGER_t *i, long l); +int asn_ulong2INTEGER(INTEGER_t *i, unsigned long l); +int asn_int642INTEGER(INTEGER_t *i, int64_t l); +int asn_uint642INTEGER(INTEGER_t *i, uint64_t l); + +/* A version of strtol/strtoimax(3) with nicer error reporting. */ +enum asn_strtox_result_e { + ASN_STRTOX_ERROR_RANGE = -3, /* Input outside of supported numeric range */ + ASN_STRTOX_ERROR_INVAL = -2, /* Invalid data encountered (e.g., "+-") */ + ASN_STRTOX_EXPECT_MORE = -1, /* More data expected (e.g. "+") */ + ASN_STRTOX_OK = 0, /* Conversion succeded, number ends at (*end) */ + ASN_STRTOX_EXTRA_DATA = 1 /* Conversion succeded, but the string has extra stuff */ +}; +enum asn_strtox_result_e asn_strtol_lim(const char *str, const char **end, + long *l); +enum asn_strtox_result_e asn_strtoul_lim(const char *str, const char **end, + unsigned long *l); +enum asn_strtox_result_e asn_strtoimax_lim(const char *str, const char **end, + intmax_t *l); +enum asn_strtox_result_e asn_strtoumax_lim(const char *str, const char **end, + uintmax_t *l); + +/* + * Convert the integer value into the corresponding enumeration map entry. + */ +const asn_INTEGER_enum_map_t *INTEGER_map_value2enum( + const asn_INTEGER_specifics_t *specs, long value); + +#ifdef __cplusplus +} +#endif + +#endif /* _INTEGER_H_ */ diff --git a/src/du_app/F1AP/asn/INTEGER_oer.c b/src/du_app/F1AP/asn/INTEGER_oer.c new file mode 100755 index 000000000..110689b2d --- /dev/null +++ b/src/du_app/F1AP/asn/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/src/du_app/F1AP/asn/IgnoreResourceCoordinationContainer.c b/src/du_app/F1AP/asn/IgnoreResourceCoordinationContainer.c new file mode 100755 index 000000000..65d9f789a --- /dev/null +++ b/src/du_app/F1AP/asn/IgnoreResourceCoordinationContainer.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "IgnoreResourceCoordinationContainer.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IgnoreResourceCoordinationContainer_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_IgnoreResourceCoordinationContainer_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_IgnoreResourceCoordinationContainer_value2enum_1[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_IgnoreResourceCoordinationContainer_enum2value_1[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_IgnoreResourceCoordinationContainer_specs_1 = { + asn_MAP_IgnoreResourceCoordinationContainer_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_IgnoreResourceCoordinationContainer_enum2value_1, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_IgnoreResourceCoordinationContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IgnoreResourceCoordinationContainer = { + "IgnoreResourceCoordinationContainer", + "IgnoreResourceCoordinationContainer", + &asn_OP_NativeEnumerated, + asn_DEF_IgnoreResourceCoordinationContainer_tags_1, + sizeof(asn_DEF_IgnoreResourceCoordinationContainer_tags_1) + /sizeof(asn_DEF_IgnoreResourceCoordinationContainer_tags_1[0]), /* 1 */ + asn_DEF_IgnoreResourceCoordinationContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_IgnoreResourceCoordinationContainer_tags_1) + /sizeof(asn_DEF_IgnoreResourceCoordinationContainer_tags_1[0]), /* 1 */ + { &asn_OER_type_IgnoreResourceCoordinationContainer_constr_1, &asn_PER_type_IgnoreResourceCoordinationContainer_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_IgnoreResourceCoordinationContainer_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/IgnoreResourceCoordinationContainer.h b/src/du_app/F1AP/asn/IgnoreResourceCoordinationContainer.h new file mode 100755 index 000000000..300050a8b --- /dev/null +++ b/src/du_app/F1AP/asn/IgnoreResourceCoordinationContainer.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _IgnoreResourceCoordinationContainer_H_ +#define _IgnoreResourceCoordinationContainer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum IgnoreResourceCoordinationContainer { + IgnoreResourceCoordinationContainer_true = 0 + /* + * Enumeration is extensible + */ +} e_IgnoreResourceCoordinationContainer; + +/* IgnoreResourceCoordinationContainer */ +typedef long IgnoreResourceCoordinationContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IgnoreResourceCoordinationContainer; +asn_struct_free_f IgnoreResourceCoordinationContainer_free; +asn_struct_print_f IgnoreResourceCoordinationContainer_print; +asn_constr_check_f IgnoreResourceCoordinationContainer_constraint; +ber_type_decoder_f IgnoreResourceCoordinationContainer_decode_ber; +der_type_encoder_f IgnoreResourceCoordinationContainer_encode_der; +xer_type_decoder_f IgnoreResourceCoordinationContainer_decode_xer; +xer_type_encoder_f IgnoreResourceCoordinationContainer_encode_xer; +oer_type_decoder_f IgnoreResourceCoordinationContainer_decode_oer; +oer_type_encoder_f IgnoreResourceCoordinationContainer_encode_oer; +per_type_decoder_f IgnoreResourceCoordinationContainer_decode_uper; +per_type_encoder_f IgnoreResourceCoordinationContainer_encode_uper; +per_type_decoder_f IgnoreResourceCoordinationContainer_decode_aper; +per_type_encoder_f IgnoreResourceCoordinationContainer_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IgnoreResourceCoordinationContainer_H_ */ +#include diff --git a/src/du_app/F1AP/asn/InactivityMonitoringRequest.c b/src/du_app/F1AP/asn/InactivityMonitoringRequest.c new file mode 100755 index 000000000..3ab2815eb --- /dev/null +++ b/src/du_app/F1AP/asn/InactivityMonitoringRequest.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "InactivityMonitoringRequest.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_InactivityMonitoringRequest_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_InactivityMonitoringRequest_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_InactivityMonitoringRequest_value2enum_1[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_InactivityMonitoringRequest_enum2value_1[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_InactivityMonitoringRequest_specs_1 = { + asn_MAP_InactivityMonitoringRequest_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_InactivityMonitoringRequest_enum2value_1, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_InactivityMonitoringRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_InactivityMonitoringRequest = { + "InactivityMonitoringRequest", + "InactivityMonitoringRequest", + &asn_OP_NativeEnumerated, + asn_DEF_InactivityMonitoringRequest_tags_1, + sizeof(asn_DEF_InactivityMonitoringRequest_tags_1) + /sizeof(asn_DEF_InactivityMonitoringRequest_tags_1[0]), /* 1 */ + asn_DEF_InactivityMonitoringRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_InactivityMonitoringRequest_tags_1) + /sizeof(asn_DEF_InactivityMonitoringRequest_tags_1[0]), /* 1 */ + { &asn_OER_type_InactivityMonitoringRequest_constr_1, &asn_PER_type_InactivityMonitoringRequest_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_InactivityMonitoringRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/InactivityMonitoringRequest.h b/src/du_app/F1AP/asn/InactivityMonitoringRequest.h new file mode 100755 index 000000000..e645dfb3d --- /dev/null +++ b/src/du_app/F1AP/asn/InactivityMonitoringRequest.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _InactivityMonitoringRequest_H_ +#define _InactivityMonitoringRequest_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum InactivityMonitoringRequest { + InactivityMonitoringRequest_true = 0 + /* + * Enumeration is extensible + */ +} e_InactivityMonitoringRequest; + +/* InactivityMonitoringRequest */ +typedef long InactivityMonitoringRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InactivityMonitoringRequest; +asn_struct_free_f InactivityMonitoringRequest_free; +asn_struct_print_f InactivityMonitoringRequest_print; +asn_constr_check_f InactivityMonitoringRequest_constraint; +ber_type_decoder_f InactivityMonitoringRequest_decode_ber; +der_type_encoder_f InactivityMonitoringRequest_encode_der; +xer_type_decoder_f InactivityMonitoringRequest_decode_xer; +xer_type_encoder_f InactivityMonitoringRequest_encode_xer; +oer_type_decoder_f InactivityMonitoringRequest_decode_oer; +oer_type_encoder_f InactivityMonitoringRequest_encode_oer; +per_type_decoder_f InactivityMonitoringRequest_decode_uper; +per_type_encoder_f InactivityMonitoringRequest_encode_uper; +per_type_decoder_f InactivityMonitoringRequest_decode_aper; +per_type_encoder_f InactivityMonitoringRequest_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _InactivityMonitoringRequest_H_ */ +#include diff --git a/src/du_app/F1AP/asn/InactivityMonitoringResponse.c b/src/du_app/F1AP/asn/InactivityMonitoringResponse.c new file mode 100755 index 000000000..2b2c50eb2 --- /dev/null +++ b/src/du_app/F1AP/asn/InactivityMonitoringResponse.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "InactivityMonitoringResponse.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_InactivityMonitoringResponse_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_InactivityMonitoringResponse_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_InactivityMonitoringResponse_value2enum_1[] = { + { 0, 13, "not-supported" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_InactivityMonitoringResponse_enum2value_1[] = { + 0 /* not-supported(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_InactivityMonitoringResponse_specs_1 = { + asn_MAP_InactivityMonitoringResponse_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_InactivityMonitoringResponse_enum2value_1, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_InactivityMonitoringResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_InactivityMonitoringResponse = { + "InactivityMonitoringResponse", + "InactivityMonitoringResponse", + &asn_OP_NativeEnumerated, + asn_DEF_InactivityMonitoringResponse_tags_1, + sizeof(asn_DEF_InactivityMonitoringResponse_tags_1) + /sizeof(asn_DEF_InactivityMonitoringResponse_tags_1[0]), /* 1 */ + asn_DEF_InactivityMonitoringResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_InactivityMonitoringResponse_tags_1) + /sizeof(asn_DEF_InactivityMonitoringResponse_tags_1[0]), /* 1 */ + { &asn_OER_type_InactivityMonitoringResponse_constr_1, &asn_PER_type_InactivityMonitoringResponse_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_InactivityMonitoringResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/InactivityMonitoringResponse.h b/src/du_app/F1AP/asn/InactivityMonitoringResponse.h new file mode 100755 index 000000000..507035cb9 --- /dev/null +++ b/src/du_app/F1AP/asn/InactivityMonitoringResponse.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _InactivityMonitoringResponse_H_ +#define _InactivityMonitoringResponse_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum InactivityMonitoringResponse { + InactivityMonitoringResponse_not_supported = 0 + /* + * Enumeration is extensible + */ +} e_InactivityMonitoringResponse; + +/* InactivityMonitoringResponse */ +typedef long InactivityMonitoringResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InactivityMonitoringResponse; +asn_struct_free_f InactivityMonitoringResponse_free; +asn_struct_print_f InactivityMonitoringResponse_print; +asn_constr_check_f InactivityMonitoringResponse_constraint; +ber_type_decoder_f InactivityMonitoringResponse_decode_ber; +der_type_encoder_f InactivityMonitoringResponse_encode_der; +xer_type_decoder_f InactivityMonitoringResponse_decode_xer; +xer_type_encoder_f InactivityMonitoringResponse_encode_xer; +oer_type_decoder_f InactivityMonitoringResponse_decode_oer; +oer_type_encoder_f InactivityMonitoringResponse_encode_oer; +per_type_decoder_f InactivityMonitoringResponse_decode_uper; +per_type_encoder_f InactivityMonitoringResponse_encode_uper; +per_type_decoder_f InactivityMonitoringResponse_decode_aper; +per_type_encoder_f InactivityMonitoringResponse_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _InactivityMonitoringResponse_H_ */ +#include diff --git a/src/du_app/F1AP/asn/InitialULRRCMessageTransfer.c b/src/du_app/F1AP/asn/InitialULRRCMessageTransfer.c new file mode 100755 index 000000000..da4a4a21f --- /dev/null +++ b/src/du_app/F1AP/asn/InitialULRRCMessageTransfer.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "InitialULRRCMessageTransfer.h" + +asn_TYPE_member_t asn_MBR_InitialULRRCMessageTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct InitialULRRCMessageTransfer, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P31, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_InitialULRRCMessageTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_InitialULRRCMessageTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_InitialULRRCMessageTransfer_specs_1 = { + sizeof(struct InitialULRRCMessageTransfer), + offsetof(struct InitialULRRCMessageTransfer, _asn_ctx), + asn_MAP_InitialULRRCMessageTransfer_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_InitialULRRCMessageTransfer = { + "InitialULRRCMessageTransfer", + "InitialULRRCMessageTransfer", + &asn_OP_SEQUENCE, + asn_DEF_InitialULRRCMessageTransfer_tags_1, + sizeof(asn_DEF_InitialULRRCMessageTransfer_tags_1) + /sizeof(asn_DEF_InitialULRRCMessageTransfer_tags_1[0]), /* 1 */ + asn_DEF_InitialULRRCMessageTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_InitialULRRCMessageTransfer_tags_1) + /sizeof(asn_DEF_InitialULRRCMessageTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_InitialULRRCMessageTransfer_1, + 1, /* Elements count */ + &asn_SPC_InitialULRRCMessageTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/InitialULRRCMessageTransfer.h b/src/du_app/F1AP/asn/InitialULRRCMessageTransfer.h new file mode 100755 index 000000000..160d2a03a --- /dev/null +++ b/src/du_app/F1AP/asn/InitialULRRCMessageTransfer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _InitialULRRCMessageTransfer_H_ +#define _InitialULRRCMessageTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* InitialULRRCMessageTransfer */ +typedef struct InitialULRRCMessageTransfer { + ProtocolIE_Container_4587P31_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} InitialULRRCMessageTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InitialULRRCMessageTransfer; +extern asn_SEQUENCE_specifics_t asn_SPC_InitialULRRCMessageTransfer_specs_1; +extern asn_TYPE_member_t asn_MBR_InitialULRRCMessageTransfer_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _InitialULRRCMessageTransfer_H_ */ +#include diff --git a/src/du_app/F1AP/asn/InitiatingMessage.c b/src/du_app/F1AP/asn/InitiatingMessage.c new file mode 100755 index 000000000..e41bee54b --- /dev/null +++ b/src/du_app/F1AP/asn/InitiatingMessage.c @@ -0,0 +1,670 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Descriptions" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "InitiatingMessage.h" + +static const long asn_VAL_1_id_Reset = 0; +static const long asn_VAL_1_reject = 0; +static const long asn_VAL_2_id_F1Setup = 1; +static const long asn_VAL_2_reject = 0; +static const long asn_VAL_3_id_gNBDUConfigurationUpdate = 3; +static const long asn_VAL_3_reject = 0; +static const long asn_VAL_4_id_gNBCUConfigurationUpdate = 4; +static const long asn_VAL_4_reject = 0; +static const long asn_VAL_5_id_UEContextSetup = 5; +static const long asn_VAL_5_reject = 0; +static const long asn_VAL_6_id_UEContextRelease = 6; +static const long asn_VAL_6_reject = 0; +static const long asn_VAL_7_id_UEContextModification = 7; +static const long asn_VAL_7_reject = 0; +static const long asn_VAL_8_id_UEContextModificationRequired = 8; +static const long asn_VAL_8_reject = 0; +static const long asn_VAL_9_id_WriteReplaceWarning = 20; +static const long asn_VAL_9_reject = 0; +static const long asn_VAL_10_id_PWSCancel = 21; +static const long asn_VAL_10_reject = 0; +static const long asn_VAL_11_id_GNBDUResourceCoordination = 16; +static const long asn_VAL_11_reject = 0; +static const long asn_VAL_12_id_ErrorIndication = 2; +static const long asn_VAL_12_ignore = 1; +static const long asn_VAL_13_id_UEContextReleaseRequest = 10; +static const long asn_VAL_13_ignore = 1; +static const long asn_VAL_14_id_DLRRCMessageTransfer = 12; +static const long asn_VAL_14_ignore = 1; +static const long asn_VAL_15_id_ULRRCMessageTransfer = 13; +static const long asn_VAL_15_ignore = 1; +static const long asn_VAL_16_id_UEInactivityNotification = 15; +static const long asn_VAL_16_ignore = 1; +static const long asn_VAL_17_id_privateMessage = 14; +static const long asn_VAL_17_ignore = 1; +static const long asn_VAL_18_id_InitialULRRCMessageTransfer = 11; +static const long asn_VAL_18_ignore = 1; +static const long asn_VAL_19_id_SystemInformationDeliveryCommand = 17; +static const long asn_VAL_19_ignore = 1; +static const long asn_VAL_20_id_Paging = 18; +static const long asn_VAL_20_ignore = 1; +static const long asn_VAL_21_id_Notify = 19; +static const long asn_VAL_21_ignore = 1; +static const long asn_VAL_22_id_PWSRestartIndication = 22; +static const long asn_VAL_22_ignore = 1; +static const long asn_VAL_23_id_PWSFailureIndication = 23; +static const long asn_VAL_23_ignore = 1; +static const long asn_VAL_24_id_GNBDUStatusIndication = 24; +static const long asn_VAL_24_ignore = 1; +static const long asn_VAL_25_id_RRCDeliveryReport = 25; +static const long asn_VAL_25_ignore = 1; +static const asn_ioc_cell_t asn_IOS_F1AP_ELEMENTARY_PROCEDURES_1_rows[] = { + { "&InitiatingMessage", aioc__type, &asn_DEF_Reset }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetAcknowledge }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_Reset }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_F1SetupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_F1SetupResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_F1SetupFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_F1Setup }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_GNBDUConfigurationUpdate }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_GNBDUConfigurationUpdateAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_GNBDUConfigurationUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_gNBDUConfigurationUpdate }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_GNBCUConfigurationUpdate }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_GNBCUConfigurationUpdateAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_GNBCUConfigurationUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_gNBCUConfigurationUpdate }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_UEContextSetupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_UEContextSetupResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_UEContextSetupFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_UEContextSetup }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_UEContextReleaseCommand }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_UEContextReleaseComplete }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_UEContextRelease }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_UEContextModificationRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_UEContextModificationResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_UEContextModificationFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_UEContextModification }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_UEContextModificationRequired }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_UEContextModificationConfirm }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_UEContextModificationRefuse }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_UEContextModificationRequired }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_WriteReplaceWarningRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_WriteReplaceWarningResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_WriteReplaceWarning }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_PWSCancelRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_PWSCancelResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_10_id_PWSCancel }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_GNBDUResourceCoordinationRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_GNBDUResourceCoordinationResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_GNBDUResourceCoordination }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_ErrorIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_UEContextReleaseRequest }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_13_id_UEContextReleaseRequest }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_DLRRCMessageTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_14_id_DLRRCMessageTransfer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ULRRCMessageTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_15_id_ULRRCMessageTransfer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_UEInactivityNotification }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_16_id_UEInactivityNotification }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_PrivateMessage }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_17_id_privateMessage }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_17_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_InitialULRRCMessageTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_18_id_InitialULRRCMessageTransfer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_18_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_SystemInformationDeliveryCommand }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_19_id_SystemInformationDeliveryCommand }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_19_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_Paging }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_20_id_Paging }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_20_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_Notify }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_21_id_Notify }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_21_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_PWSRestartIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_22_id_PWSRestartIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_22_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_PWSFailureIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_23_id_PWSFailureIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_GNBDUStatusIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_24_id_GNBDUStatusIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RRCDeliveryReport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_25_id_RRCDeliveryReport }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_25_ignore } +}; +static const asn_ioc_set_t asn_IOS_F1AP_ELEMENTARY_PROCEDURES_1[] = { + { 25, 5, asn_IOS_F1AP_ELEMENTARY_PROCEDURES_1_rows } +}; +static int +memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_InitiatingMessage_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_F1AP_ELEMENTARY_PROCEDURES_1; + size_t constraining_column = 3; /* &procedureCode */ + size_t for_column = 4; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct InitiatingMessage, procedureCode)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_InitiatingMessage_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_F1AP_ELEMENTARY_PROCEDURES_1; + size_t constraining_column = 3; /* &procedureCode */ + size_t for_column = 0; /* &InitiatingMessage */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct InitiatingMessage, procedureCode)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_oer_constraints_t asn_OER_memb_procedureCode_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_value_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.Reset), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Reset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Reset" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.F1SetupRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_F1SetupRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "F1SetupRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.GNBDUConfigurationUpdate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNBDUConfigurationUpdate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNBDUConfigurationUpdate" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.GNBCUConfigurationUpdate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNBCUConfigurationUpdate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNBCUConfigurationUpdate" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.UEContextSetupRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEContextSetupRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEContextSetupRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.UEContextReleaseCommand), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEContextReleaseCommand, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEContextReleaseCommand" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.UEContextModificationRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEContextModificationRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEContextModificationRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.UEContextModificationRequired), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEContextModificationRequired, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEContextModificationRequired" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.WriteReplaceWarningRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_WriteReplaceWarningRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "WriteReplaceWarningRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.PWSCancelRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PWSCancelRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PWSCancelRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.GNBDUResourceCoordinationRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNBDUResourceCoordinationRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNBDUResourceCoordinationRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ErrorIndication), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ErrorIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ErrorIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.UEContextReleaseRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEContextReleaseRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEContextReleaseRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.DLRRCMessageTransfer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DLRRCMessageTransfer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DLRRCMessageTransfer" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ULRRCMessageTransfer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ULRRCMessageTransfer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ULRRCMessageTransfer" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.UEInactivityNotification), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEInactivityNotification, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEInactivityNotification" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.PrivateMessage), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PrivateMessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PrivateMessage" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.InitialULRRCMessageTransfer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_InitialULRRCMessageTransfer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "InitialULRRCMessageTransfer" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.SystemInformationDeliveryCommand), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SystemInformationDeliveryCommand, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SystemInformationDeliveryCommand" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.Paging), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Paging, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Paging" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.Notify), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Notify, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Notify" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.PWSRestartIndication), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PWSRestartIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PWSRestartIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.PWSFailureIndication), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PWSFailureIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PWSFailureIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.GNBDUStatusIndication), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNBDUStatusIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNBDUStatusIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RRCDeliveryReport), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RRCDeliveryReport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RRCDeliveryReport" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 24 }, /* Reset */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 23 }, /* F1SetupRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 22 }, /* GNBDUConfigurationUpdate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 21 }, /* GNBCUConfigurationUpdate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 20 }, /* UEContextSetupRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 19 }, /* UEContextReleaseCommand */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 18 }, /* UEContextModificationRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 17 }, /* UEContextModificationRequired */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 16 }, /* WriteReplaceWarningRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -9, 15 }, /* PWSCancelRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -10, 14 }, /* GNBDUResourceCoordinationRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -11, 13 }, /* ErrorIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 12, -12, 12 }, /* UEContextReleaseRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 13, -13, 11 }, /* DLRRCMessageTransfer */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 14, -14, 10 }, /* ULRRCMessageTransfer */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 15, -15, 9 }, /* UEInactivityNotification */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 16, -16, 8 }, /* PrivateMessage */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 17, -17, 7 }, /* InitialULRRCMessageTransfer */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 18, -18, 6 }, /* SystemInformationDeliveryCommand */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 19, -19, 5 }, /* Paging */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 20, -20, 4 }, /* Notify */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 21, -21, 3 }, /* PWSRestartIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 22, -22, 2 }, /* PWSFailureIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 23, -23, 1 }, /* GNBDUStatusIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 24, -24, 0 } /* RRCDeliveryReport */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { + sizeof(struct InitiatingMessage__value), + offsetof(struct InitiatingMessage__value, _asn_ctx), + offsetof(struct InitiatingMessage__value, present), + sizeof(((struct InitiatingMessage__value *)0)->present), + asn_MAP_value_tag2el_4, + 25, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_4 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_4, + 25, /* Elements count */ + &asn_SPC_value_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_InitiatingMessage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, procedureCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProcedureCode, + 0, + { &asn_OER_memb_procedureCode_constr_2, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, + 0, 0, /* No default value */ + "procedureCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_InitiatingMessage_criticality_type, + { &asn_OER_memb_criticality_constr_3, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_4, + select_InitiatingMessage_value_type, + { &asn_OER_memb_value_constr_4, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_InitiatingMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_InitiatingMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_InitiatingMessage_specs_1 = { + sizeof(struct InitiatingMessage), + offsetof(struct InitiatingMessage, _asn_ctx), + asn_MAP_InitiatingMessage_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_InitiatingMessage = { + "InitiatingMessage", + "InitiatingMessage", + &asn_OP_SEQUENCE, + asn_DEF_InitiatingMessage_tags_1, + sizeof(asn_DEF_InitiatingMessage_tags_1) + /sizeof(asn_DEF_InitiatingMessage_tags_1[0]), /* 1 */ + asn_DEF_InitiatingMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_InitiatingMessage_tags_1) + /sizeof(asn_DEF_InitiatingMessage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_InitiatingMessage_1, + 3, /* Elements count */ + &asn_SPC_InitiatingMessage_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/InitiatingMessage.h b/src/du_app/F1AP/asn/InitiatingMessage.h new file mode 100755 index 000000000..3b93b3826 --- /dev/null +++ b/src/du_app/F1AP/asn/InitiatingMessage.h @@ -0,0 +1,151 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Descriptions" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _InitiatingMessage_H_ +#define _InitiatingMessage_H_ + + +#include + +/* Including external dependencies */ +#include "ProcedureCode.h" +#include "Criticality.h" +#include +#include +#include "Reset.h" +#include "ResetAcknowledge.h" +#include "F1SetupRequest.h" +#include "F1SetupResponse.h" +#include "F1SetupFailure.h" +#include "GNBDUConfigurationUpdate.h" +#include "GNBDUConfigurationUpdateAcknowledge.h" +#include "GNBDUConfigurationUpdateFailure.h" +#include "GNBCUConfigurationUpdate.h" +#include "GNBCUConfigurationUpdateAcknowledge.h" +#include "GNBCUConfigurationUpdateFailure.h" +#include "UEContextSetupRequest.h" +#include "UEContextSetupResponse.h" +#include "UEContextSetupFailure.h" +#include "UEContextReleaseCommand.h" +#include "UEContextReleaseComplete.h" +#include "UEContextModificationRequest.h" +#include "UEContextModificationResponse.h" +#include "UEContextModificationFailure.h" +#include "UEContextModificationRequired.h" +#include "UEContextModificationConfirm.h" +#include "UEContextModificationRefuse.h" +#include "WriteReplaceWarningRequest.h" +#include "WriteReplaceWarningResponse.h" +#include "PWSCancelRequest.h" +#include "PWSCancelResponse.h" +#include "GNBDUResourceCoordinationRequest.h" +#include "GNBDUResourceCoordinationResponse.h" +#include "ErrorIndication.h" +#include "UEContextReleaseRequest.h" +#include "DLRRCMessageTransfer.h" +#include "ULRRCMessageTransfer.h" +#include "UEInactivityNotification.h" +#include "PrivateMessage.h" +#include "InitialULRRCMessageTransfer.h" +#include "SystemInformationDeliveryCommand.h" +#include "Paging.h" +#include "Notify.h" +#include "PWSRestartIndication.h" +#include "PWSFailureIndication.h" +#include "GNBDUStatusIndication.h" +#include "RRCDeliveryReport.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum InitiatingMessage__value_PR { + InitiatingMessage__value_PR_NOTHING, /* No components present */ + InitiatingMessage__value_PR_Reset, + InitiatingMessage__value_PR_F1SetupRequest, + InitiatingMessage__value_PR_GNBDUConfigurationUpdate, + InitiatingMessage__value_PR_GNBCUConfigurationUpdate, + InitiatingMessage__value_PR_UEContextSetupRequest, + InitiatingMessage__value_PR_UEContextReleaseCommand, + InitiatingMessage__value_PR_UEContextModificationRequest, + InitiatingMessage__value_PR_UEContextModificationRequired, + InitiatingMessage__value_PR_WriteReplaceWarningRequest, + InitiatingMessage__value_PR_PWSCancelRequest, + InitiatingMessage__value_PR_GNBDUResourceCoordinationRequest, + InitiatingMessage__value_PR_ErrorIndication, + InitiatingMessage__value_PR_UEContextReleaseRequest, + InitiatingMessage__value_PR_DLRRCMessageTransfer, + InitiatingMessage__value_PR_ULRRCMessageTransfer, + InitiatingMessage__value_PR_UEInactivityNotification, + InitiatingMessage__value_PR_PrivateMessage, + InitiatingMessage__value_PR_InitialULRRCMessageTransfer, + InitiatingMessage__value_PR_SystemInformationDeliveryCommand, + InitiatingMessage__value_PR_Paging, + InitiatingMessage__value_PR_Notify, + InitiatingMessage__value_PR_PWSRestartIndication, + InitiatingMessage__value_PR_PWSFailureIndication, + InitiatingMessage__value_PR_GNBDUStatusIndication, + InitiatingMessage__value_PR_RRCDeliveryReport +} InitiatingMessage__value_PR; + +/* InitiatingMessage */ +typedef struct InitiatingMessage { + ProcedureCode_t procedureCode; + Criticality_t criticality; + struct InitiatingMessage__value { + InitiatingMessage__value_PR present; + union InitiatingMessage__value_u { + Reset_t Reset; + F1SetupRequest_t F1SetupRequest; + GNBDUConfigurationUpdate_t GNBDUConfigurationUpdate; + GNBCUConfigurationUpdate_t GNBCUConfigurationUpdate; + UEContextSetupRequest_t UEContextSetupRequest; + UEContextReleaseCommand_t UEContextReleaseCommand; + UEContextModificationRequest_t UEContextModificationRequest; + UEContextModificationRequired_t UEContextModificationRequired; + WriteReplaceWarningRequest_t WriteReplaceWarningRequest; + PWSCancelRequest_t PWSCancelRequest; + GNBDUResourceCoordinationRequest_t GNBDUResourceCoordinationRequest; + ErrorIndication_t ErrorIndication; + UEContextReleaseRequest_t UEContextReleaseRequest; + DLRRCMessageTransfer_t DLRRCMessageTransfer; + ULRRCMessageTransfer_t ULRRCMessageTransfer; + UEInactivityNotification_t UEInactivityNotification; + PrivateMessage_t PrivateMessage; + InitialULRRCMessageTransfer_t InitialULRRCMessageTransfer; + SystemInformationDeliveryCommand_t SystemInformationDeliveryCommand; + Paging_t Paging; + Notify_t Notify; + PWSRestartIndication_t PWSRestartIndication; + PWSFailureIndication_t PWSFailureIndication; + GNBDUStatusIndication_t GNBDUStatusIndication; + RRCDeliveryReport_t RRCDeliveryReport; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} InitiatingMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InitiatingMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_InitiatingMessage_specs_1; +extern asn_TYPE_member_t asn_MBR_InitiatingMessage_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _InitiatingMessage_H_ */ +#include diff --git a/src/du_app/F1AP/asn/LCID.c b/src/du_app/F1AP/asn/LCID.c new file mode 100755 index 000000000..ed0218d7c --- /dev/null +++ b/src/du_app/F1AP/asn/LCID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "LCID.h" + +int +LCID_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 <= 32)) { + /* 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_LCID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LCID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 1, 32 } /* (1..32,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_LCID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LCID = { + "LCID", + "LCID", + &asn_OP_NativeInteger, + asn_DEF_LCID_tags_1, + sizeof(asn_DEF_LCID_tags_1) + /sizeof(asn_DEF_LCID_tags_1[0]), /* 1 */ + asn_DEF_LCID_tags_1, /* Same as above */ + sizeof(asn_DEF_LCID_tags_1) + /sizeof(asn_DEF_LCID_tags_1[0]), /* 1 */ + { &asn_OER_type_LCID_constr_1, &asn_PER_type_LCID_constr_1, LCID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/LCID.h b/src/du_app/F1AP/asn/LCID.h new file mode 100755 index 000000000..2a0a38c90 --- /dev/null +++ b/src/du_app/F1AP/asn/LCID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _LCID_H_ +#define _LCID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LCID */ +typedef long LCID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LCID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LCID; +asn_struct_free_f LCID_free; +asn_struct_print_f LCID_print; +asn_constr_check_f LCID_constraint; +ber_type_decoder_f LCID_decode_ber; +der_type_encoder_f LCID_encode_der; +xer_type_decoder_f LCID_decode_xer; +xer_type_encoder_f LCID_encode_xer; +oer_type_decoder_f LCID_decode_oer; +oer_type_encoder_f LCID_encode_oer; +per_type_decoder_f LCID_decode_uper; +per_type_encoder_f LCID_encode_uper; +per_type_decoder_f LCID_decode_aper; +per_type_encoder_f LCID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LCID_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Latest-RRC-Version-Enhanced.c b/src/du_app/F1AP/asn/Latest-RRC-Version-Enhanced.c new file mode 100755 index 000000000..f463b45f8 --- /dev/null +++ b/src/du_app/F1AP/asn/Latest-RRC-Version-Enhanced.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Latest-RRC-Version-Enhanced.h" + +int +Latest_RRC_Version_Enhanced_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 3)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Latest_RRC_Version_Enhanced_constr_1 CC_NOTUSED = { + { 0, 0 }, + 3 /* (SIZE(3..3)) */}; +static asn_per_constraints_t asn_PER_type_Latest_RRC_Version_Enhanced_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_Latest_RRC_Version_Enhanced_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Latest_RRC_Version_Enhanced = { + "Latest-RRC-Version-Enhanced", + "Latest-RRC-Version-Enhanced", + &asn_OP_OCTET_STRING, + asn_DEF_Latest_RRC_Version_Enhanced_tags_1, + sizeof(asn_DEF_Latest_RRC_Version_Enhanced_tags_1) + /sizeof(asn_DEF_Latest_RRC_Version_Enhanced_tags_1[0]), /* 1 */ + asn_DEF_Latest_RRC_Version_Enhanced_tags_1, /* Same as above */ + sizeof(asn_DEF_Latest_RRC_Version_Enhanced_tags_1) + /sizeof(asn_DEF_Latest_RRC_Version_Enhanced_tags_1[0]), /* 1 */ + { &asn_OER_type_Latest_RRC_Version_Enhanced_constr_1, &asn_PER_type_Latest_RRC_Version_Enhanced_constr_1, Latest_RRC_Version_Enhanced_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Latest-RRC-Version-Enhanced.h b/src/du_app/F1AP/asn/Latest-RRC-Version-Enhanced.h new file mode 100755 index 000000000..ffa20edac --- /dev/null +++ b/src/du_app/F1AP/asn/Latest-RRC-Version-Enhanced.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Latest_RRC_Version_Enhanced_H_ +#define _Latest_RRC_Version_Enhanced_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Latest-RRC-Version-Enhanced */ +typedef OCTET_STRING_t Latest_RRC_Version_Enhanced_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Latest_RRC_Version_Enhanced; +asn_struct_free_f Latest_RRC_Version_Enhanced_free; +asn_struct_print_f Latest_RRC_Version_Enhanced_print; +asn_constr_check_f Latest_RRC_Version_Enhanced_constraint; +ber_type_decoder_f Latest_RRC_Version_Enhanced_decode_ber; +der_type_encoder_f Latest_RRC_Version_Enhanced_encode_der; +xer_type_decoder_f Latest_RRC_Version_Enhanced_decode_xer; +xer_type_encoder_f Latest_RRC_Version_Enhanced_encode_xer; +oer_type_decoder_f Latest_RRC_Version_Enhanced_decode_oer; +oer_type_encoder_f Latest_RRC_Version_Enhanced_encode_oer; +per_type_decoder_f Latest_RRC_Version_Enhanced_decode_uper; +per_type_encoder_f Latest_RRC_Version_Enhanced_encode_uper; +per_type_decoder_f Latest_RRC_Version_Enhanced_decode_aper; +per_type_encoder_f Latest_RRC_Version_Enhanced_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Latest_RRC_Version_Enhanced_H_ */ +#include diff --git a/src/du_app/F1AP/asn/LongDRXCycleLength.c b/src/du_app/F1AP/asn/LongDRXCycleLength.c new file mode 100755 index 000000000..ecd93bbbe --- /dev/null +++ b/src/du_app/F1AP/asn/LongDRXCycleLength.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "LongDRXCycleLength.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_LongDRXCycleLength_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_LongDRXCycleLength_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_LongDRXCycleLength_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_LongDRXCycleLength_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_LongDRXCycleLength_specs_1 = { + asn_MAP_LongDRXCycleLength_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_LongDRXCycleLength_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_LongDRXCycleLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LongDRXCycleLength = { + "LongDRXCycleLength", + "LongDRXCycleLength", + &asn_OP_NativeEnumerated, + asn_DEF_LongDRXCycleLength_tags_1, + sizeof(asn_DEF_LongDRXCycleLength_tags_1) + /sizeof(asn_DEF_LongDRXCycleLength_tags_1[0]), /* 1 */ + asn_DEF_LongDRXCycleLength_tags_1, /* Same as above */ + sizeof(asn_DEF_LongDRXCycleLength_tags_1) + /sizeof(asn_DEF_LongDRXCycleLength_tags_1[0]), /* 1 */ + { &asn_OER_type_LongDRXCycleLength_constr_1, &asn_PER_type_LongDRXCycleLength_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_LongDRXCycleLength_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/LongDRXCycleLength.h b/src/du_app/F1AP/asn/LongDRXCycleLength.h new file mode 100755 index 000000000..bbc2c38a7 --- /dev/null +++ b/src/du_app/F1AP/asn/LongDRXCycleLength.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _LongDRXCycleLength_H_ +#define _LongDRXCycleLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LongDRXCycleLength { + LongDRXCycleLength_ms10 = 0, + LongDRXCycleLength_ms20 = 1, + LongDRXCycleLength_ms32 = 2, + LongDRXCycleLength_ms40 = 3, + LongDRXCycleLength_ms60 = 4, + LongDRXCycleLength_ms64 = 5, + LongDRXCycleLength_ms70 = 6, + LongDRXCycleLength_ms80 = 7, + LongDRXCycleLength_ms128 = 8, + LongDRXCycleLength_ms160 = 9, + LongDRXCycleLength_ms256 = 10, + LongDRXCycleLength_ms320 = 11, + LongDRXCycleLength_ms512 = 12, + LongDRXCycleLength_ms640 = 13, + LongDRXCycleLength_ms1024 = 14, + LongDRXCycleLength_ms1280 = 15, + LongDRXCycleLength_ms2048 = 16, + LongDRXCycleLength_ms2560 = 17, + LongDRXCycleLength_ms5120 = 18, + LongDRXCycleLength_ms10240 = 19 + /* + * Enumeration is extensible + */ +} e_LongDRXCycleLength; + +/* LongDRXCycleLength */ +typedef long LongDRXCycleLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LongDRXCycleLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LongDRXCycleLength; +extern const asn_INTEGER_specifics_t asn_SPC_LongDRXCycleLength_specs_1; +asn_struct_free_f LongDRXCycleLength_free; +asn_struct_print_f LongDRXCycleLength_print; +asn_constr_check_f LongDRXCycleLength_constraint; +ber_type_decoder_f LongDRXCycleLength_decode_ber; +der_type_encoder_f LongDRXCycleLength_encode_der; +xer_type_decoder_f LongDRXCycleLength_decode_xer; +xer_type_encoder_f LongDRXCycleLength_encode_xer; +oer_type_decoder_f LongDRXCycleLength_decode_oer; +oer_type_encoder_f LongDRXCycleLength_encode_oer; +per_type_decoder_f LongDRXCycleLength_decode_uper; +per_type_encoder_f LongDRXCycleLength_encode_uper; +per_type_decoder_f LongDRXCycleLength_decode_aper; +per_type_encoder_f LongDRXCycleLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LongDRXCycleLength_H_ */ +#include diff --git a/src/du_app/F1AP/asn/MIB-message.c b/src/du_app/F1AP/asn/MIB-message.c new file mode 100755 index 000000000..2985b4bba --- /dev/null +++ b/src/du_app/F1AP/asn/MIB-message.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MIB-message.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_MIB_message_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MIB_message = { + "MIB-message", + "MIB-message", + &asn_OP_OCTET_STRING, + asn_DEF_MIB_message_tags_1, + sizeof(asn_DEF_MIB_message_tags_1) + /sizeof(asn_DEF_MIB_message_tags_1[0]), /* 1 */ + asn_DEF_MIB_message_tags_1, /* Same as above */ + sizeof(asn_DEF_MIB_message_tags_1) + /sizeof(asn_DEF_MIB_message_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/MIB-message.h b/src/du_app/F1AP/asn/MIB-message.h new file mode 100755 index 000000000..b3f582fec --- /dev/null +++ b/src/du_app/F1AP/asn/MIB-message.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MIB_message_H_ +#define _MIB_message_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MIB-message */ +typedef OCTET_STRING_t MIB_message_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MIB_message; +asn_struct_free_f MIB_message_free; +asn_struct_print_f MIB_message_print; +asn_constr_check_f MIB_message_constraint; +ber_type_decoder_f MIB_message_decode_ber; +der_type_encoder_f MIB_message_encode_der; +xer_type_decoder_f MIB_message_decode_xer; +xer_type_encoder_f MIB_message_encode_xer; +oer_type_decoder_f MIB_message_decode_oer; +oer_type_encoder_f MIB_message_encode_oer; +per_type_decoder_f MIB_message_decode_uper; +per_type_encoder_f MIB_message_encode_uper; +per_type_decoder_f MIB_message_decode_aper; +per_type_encoder_f MIB_message_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MIB_message_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Makefile.am.libasncodec b/src/du_app/F1AP/asn/Makefile.am.libasncodec new file mode 100755 index 000000000..d71497085 --- /dev/null +++ b/src/du_app/F1AP/asn/Makefile.am.libasncodec @@ -0,0 +1,860 @@ +ASN_MODULE_SRCS= \ + ./out/F1AP-PDU.c \ + ./out/InitiatingMessage.c \ + ./out/SuccessfulOutcome.c \ + ./out/UnsuccessfulOutcome.c \ + ./out/Reset.c \ + ./out/ResetType.c \ + ./out/ResetAll.c \ + ./out/UE-associatedLogicalF1-ConnectionListRes.c \ + ./out/ResetAcknowledge.c \ + ./out/UE-associatedLogicalF1-ConnectionListResAck.c \ + ./out/ErrorIndication.c \ + ./out/F1SetupRequest.c \ + ./out/GNB-DU-Served-Cells-List.c \ + ./out/F1SetupResponse.c \ + ./out/Cells-to-be-Activated-List.c \ + ./out/F1SetupFailure.c \ + ./out/GNBDUConfigurationUpdate.c \ + ./out/Served-Cells-To-Add-List.c \ + ./out/Served-Cells-To-Modify-List.c \ + ./out/Served-Cells-To-Delete-List.c \ + ./out/Cells-Status-List.c \ + ./out/Dedicated-SIDelivery-NeededUE-List.c \ + ./out/GNBDUConfigurationUpdateAcknowledge.c \ + ./out/GNBDUConfigurationUpdateFailure.c \ + ./out/GNBCUConfigurationUpdate.c \ + ./out/Cells-to-be-Deactivated-List.c \ + ./out/GNB-CU-TNL-Association-To-Add-List.c \ + ./out/GNB-CU-TNL-Association-To-Remove-List.c \ + ./out/GNB-CU-TNL-Association-To-Update-List.c \ + ./out/Cells-to-be-Barred-List.c \ + ./out/Protected-EUTRA-Resources-List.c \ + ./out/GNBCUConfigurationUpdateAcknowledge.c \ + ./out/Cells-Failed-to-be-Activated-List.c \ + ./out/GNB-CU-TNL-Association-Setup-List.c \ + ./out/GNB-CU-TNL-Association-Failed-To-Setup-List.c \ + ./out/GNBCUConfigurationUpdateFailure.c \ + ./out/GNBDUResourceCoordinationRequest.c \ + ./out/GNBDUResourceCoordinationResponse.c \ + ./out/UEContextSetupRequest.c \ + ./out/Candidate-SpCell-List.c \ + ./out/SCell-ToBeSetup-List.c \ + ./out/SRBs-ToBeSetup-List.c \ + ./out/DRBs-ToBeSetup-List.c \ + ./out/UEContextSetupResponse.c \ + ./out/DRBs-Setup-List.c \ + ./out/SRBs-FailedToBeSetup-List.c \ + ./out/DRBs-FailedToBeSetup-List.c \ + ./out/SCell-FailedtoSetup-List.c \ + ./out/SRBs-Setup-List.c \ + ./out/UEContextSetupFailure.c \ + ./out/Potential-SpCell-List.c \ + ./out/UEContextReleaseRequest.c \ + ./out/UEContextReleaseCommand.c \ + ./out/UEContextReleaseComplete.c \ + ./out/UEContextModificationRequest.c \ + ./out/SCell-ToBeSetupMod-List.c \ + ./out/SCell-ToBeRemoved-List.c \ + ./out/SRBs-ToBeSetupMod-List.c \ + ./out/DRBs-ToBeSetupMod-List.c \ + ./out/DRBs-ToBeModified-List.c \ + ./out/SRBs-ToBeReleased-List.c \ + ./out/DRBs-ToBeReleased-List.c \ + ./out/UEContextModificationResponse.c \ + ./out/DRBs-SetupMod-List.c \ + ./out/DRBs-Modified-List.c \ + ./out/SRBs-SetupMod-List.c \ + ./out/SRBs-Modified-List.c \ + ./out/DRBs-FailedToBeModified-List.c \ + ./out/SRBs-FailedToBeSetupMod-List.c \ + ./out/DRBs-FailedToBeSetupMod-List.c \ + ./out/SCell-FailedtoSetupMod-List.c \ + ./out/Associated-SCell-List.c \ + ./out/UEContextModificationFailure.c \ + ./out/UEContextModificationRequired.c \ + ./out/DRBs-Required-ToBeModified-List.c \ + ./out/DRBs-Required-ToBeReleased-List.c \ + ./out/SRBs-Required-ToBeReleased-List.c \ + ./out/UEContextModificationConfirm.c \ + ./out/DRBs-ModifiedConf-List.c \ + ./out/UEContextModificationRefuse.c \ + ./out/WriteReplaceWarningRequest.c \ + ./out/Cells-To-Be-Broadcast-List.c \ + ./out/WriteReplaceWarningResponse.c \ + ./out/Cells-Broadcast-Completed-List.c \ + ./out/PWSCancelRequest.c \ + ./out/Broadcast-To-Be-Cancelled-List.c \ + ./out/PWSCancelResponse.c \ + ./out/Cells-Broadcast-Cancelled-List.c \ + ./out/UEInactivityNotification.c \ + ./out/DRB-Activity-List.c \ + ./out/InitialULRRCMessageTransfer.c \ + ./out/DLRRCMessageTransfer.c \ + ./out/ULRRCMessageTransfer.c \ + ./out/PrivateMessage.c \ + ./out/SystemInformationDeliveryCommand.c \ + ./out/Paging.c \ + ./out/PagingCell-list.c \ + ./out/Notify.c \ + ./out/DRB-Notify-List.c \ + ./out/PWSRestartIndication.c \ + ./out/NR-CGI-List-For-Restart-List.c \ + ./out/PWSFailureIndication.c \ + ./out/PWS-Failed-NR-CGI-List.c \ + ./out/GNBDUStatusIndication.c \ + ./out/RRCDeliveryReport.c \ + ./out/AllocationAndRetentionPriority.c \ + ./out/Associated-SCell-Item.c \ + ./out/AvailablePLMNList.c \ + ./out/AvailablePLMNList-Item.c \ + ./out/AveragingWindow.c \ + ./out/BitRate.c \ + ./out/BearerTypeChange.c \ + ./out/ServedPLMNs-List.c \ + ./out/ServedPLMNs-Item.c \ + ./out/Cancel-all-Warning-Messages-Indicator.c \ + ./out/Candidate-SpCell-Item.c \ + ./out/Cause.c \ + ./out/CauseMisc.c \ + ./out/CauseProtocol.c \ + ./out/CauseRadioNetwork.c \ + ./out/CauseTransport.c \ + ./out/CellGroupConfig.c \ + ./out/Cell-Direction.c \ + ./out/Cells-Failed-to-be-Activated-List-Item.c \ + ./out/Cells-Status-Item.c \ + ./out/Cells-To-Be-Broadcast-Item.c \ + ./out/Cells-Broadcast-Completed-Item.c \ + ./out/Broadcast-To-Be-Cancelled-Item.c \ + ./out/Cells-Broadcast-Cancelled-Item.c \ + ./out/Cells-to-be-Activated-List-Item.c \ + ./out/Cells-to-be-Deactivated-List-Item.c \ + ./out/Cells-to-be-Barred-Item.c \ + ./out/CellBarred.c \ + ./out/CellULConfigured.c \ + ./out/CNUEPagingIdentity.c \ + ./out/CP-TransportLayerAddress.c \ + ./out/CriticalityDiagnostics.c \ + ./out/CriticalityDiagnostics-IE-List.c \ + ./out/CriticalityDiagnostics-IE-Item.c \ + ./out/C-RNTI.c \ + ./out/CUtoDURRCInformation.c \ + ./out/DCBasedDuplicationConfigured.c \ + ./out/Dedicated-SIDelivery-NeededUE-Item.c \ + ./out/DLUPTNLInformation-ToBeSetup-List.c \ + ./out/DLUPTNLInformation-ToBeSetup-Item.c \ + ./out/DRB-Activity-Item.c \ + ./out/DRB-Activity.c \ + ./out/DRBID.c \ + ./out/DRBs-FailedToBeModified-Item.c \ + ./out/DRBs-FailedToBeSetup-Item.c \ + ./out/DRBs-FailedToBeSetupMod-Item.c \ + ./out/DRB-Information.c \ + ./out/DRBs-Modified-Item.c \ + ./out/DRBs-ModifiedConf-Item.c \ + ./out/DRB-Notify-Item.c \ + ./out/DRBs-Required-ToBeModified-Item.c \ + ./out/DRBs-Required-ToBeReleased-Item.c \ + ./out/DRBs-Setup-Item.c \ + ./out/DRBs-SetupMod-Item.c \ + ./out/DRBs-ToBeModified-Item.c \ + ./out/DRBs-ToBeReleased-Item.c \ + ./out/DRBs-ToBeSetup-Item.c \ + ./out/DRBs-ToBeSetupMod-Item.c \ + ./out/DRXCycle.c \ + ./out/DRX-Config.c \ + ./out/DRXConfigurationIndicator.c \ + ./out/DRX-LongCycleStartOffset.c \ + ./out/DUtoCURRCContainer.c \ + ./out/DUtoCURRCInformation.c \ + ./out/DuplicationActivation.c \ + ./out/DuplicationIndication.c \ + ./out/Dynamic5QIDescriptor.c \ + ./out/Endpoint-IP-address-and-port.c \ + ./out/ExtendedAvailablePLMN-List.c \ + ./out/ExtendedAvailablePLMN-Item.c \ + ./out/ExtendedServedPLMNs-List.c \ + ./out/ExtendedServedPLMNs-Item.c \ + ./out/EUTRACells-List.c \ + ./out/EUTRACells-List-item.c \ + ./out/EUTRA-Cell-ID.c \ + ./out/EUTRA-Coex-FDD-Info.c \ + ./out/EUTRA-Coex-Mode-Info.c \ + ./out/EUTRA-Coex-TDD-Info.c \ + ./out/EUTRA-CyclicPrefixDL.c \ + ./out/EUTRA-CyclicPrefixUL.c \ + ./out/EUTRA-PRACH-Configuration.c \ + ./out/EUTRA-SpecialSubframe-Info.c \ + ./out/EUTRA-SpecialSubframePatterns.c \ + ./out/EUTRA-SubframeAssignment.c \ + ./out/EUTRA-Transmission-Bandwidth.c \ + ./out/EUTRANQoS.c \ + ./out/ExecuteDuplication.c \ + ./out/ExtendedEARFCN.c \ + ./out/EUTRA-Mode-Info.c \ + ./out/EUTRA-NR-CellResourceCoordinationReq-Container.c \ + ./out/EUTRA-NR-CellResourceCoordinationReqAck-Container.c \ + ./out/EUTRA-FDD-Info.c \ + ./out/EUTRA-TDD-Info.c \ + ./out/FDD-Info.c \ + ./out/Flows-Mapped-To-DRB-List.c \ + ./out/Flows-Mapped-To-DRB-Item.c \ + ./out/FreqBandNrItem.c \ + ./out/FullConfiguration.c \ + ./out/GBR-QosInformation.c \ + ./out/GBR-QoSFlowInformation.c \ + ./out/GNB-CUSystemInformation.c \ + ./out/GNB-CU-TNL-Association-Setup-Item.c \ + ./out/GNB-CU-TNL-Association-Failed-To-Setup-Item.c \ + ./out/GNB-CU-TNL-Association-To-Add-Item.c \ + ./out/GNB-CU-TNL-Association-To-Remove-Item.c \ + ./out/GNB-CU-TNL-Association-To-Update-Item.c \ + ./out/GNB-CU-UE-F1AP-ID.c \ + ./out/GNB-DU-UE-F1AP-ID.c \ + ./out/GNB-DU-ID.c \ + ./out/GNB-CU-Name.c \ + ./out/GNB-DU-Name.c \ + ./out/GNB-DU-Served-Cells-Item.c \ + ./out/GNB-DU-System-Information.c \ + ./out/GNB-DUConfigurationQuery.c \ + ./out/GNBDUOverloadInformation.c \ + ./out/GTP-TEID.c \ + ./out/GTPTunnel.c \ + ./out/HandoverPreparationInformation.c \ + ./out/IgnoreResourceCoordinationContainer.c \ + ./out/InactivityMonitoringRequest.c \ + ./out/InactivityMonitoringResponse.c \ + ./out/LCID.c \ + ./out/LongDRXCycleLength.c \ + ./out/MaskedIMEISV.c \ + ./out/MaxDataBurstVolume.c \ + ./out/MaxPacketLossRate.c \ + ./out/MIB-message.c \ + ./out/MeasConfig.c \ + ./out/MeasGapConfig.c \ + ./out/MeasurementTimingConfiguration.c \ + ./out/NeedforGap.c \ + ./out/NGRANAllocationAndRetentionPriority.c \ + ./out/NR-CGI-List-For-Restart-Item.c \ + ./out/NonDynamic5QIDescriptor.c \ + ./out/Notification-Cause.c \ + ./out/NotificationControl.c \ + ./out/NRFreqInfo.c \ + ./out/NRCGI.c \ + ./out/NR-Mode-Info.c \ + ./out/NRCellIdentity.c \ + ./out/NRNRB.c \ + ./out/NRPCI.c \ + ./out/NRSCS.c \ + ./out/NumberOfBroadcasts.c \ + ./out/NumberofBroadcastRequest.c \ + ./out/OffsetToPointA.c \ + ./out/PacketDelayBudget.c \ + ./out/PacketErrorRate.c \ + ./out/PER-Scalar.c \ + ./out/PER-Exponent.c \ + ./out/PagingCell-Item.c \ + ./out/PagingDRX.c \ + ./out/PagingIdentity.c \ + ./out/PagingOrigin.c \ + ./out/PagingPriority.c \ + ./out/PDCP-SN.c \ + ./out/PDCPSNLength.c \ + ./out/PDUSessionID.c \ + ./out/Ph-InfoSCG.c \ + ./out/PLMN-Identity.c \ + ./out/Pre-emptionCapability.c \ + ./out/Pre-emptionVulnerability.c \ + ./out/PriorityLevel.c \ + ./out/ProtectedEUTRAResourceIndication.c \ + ./out/Protected-EUTRA-Resources-Item.c \ + ./out/Potential-SpCell-Item.c \ + ./out/PWS-Failed-NR-CGI-Item.c \ + ./out/PWSSystemInformation.c \ + ./out/QCI.c \ + ./out/QoS-Characteristics.c \ + ./out/QoSFlowIdentifier.c \ + ./out/QoSFlowLevelQoSParameters.c \ + ./out/QoSFlowMappingIndication.c \ + ./out/QoSInformation.c \ + ./out/RANAC.c \ + ./out/RANUEPagingIdentity.c \ + ./out/RAT-FrequencyPriorityInformation.c \ + ./out/RAT-FrequencySelectionPriority.c \ + ./out/Reestablishment-Indication.c \ + ./out/RequestedBandCombinationIndex.c \ + ./out/RequestedFeatureSetEntryIndex.c \ + ./out/RequestedP-MaxFR2.c \ + ./out/RequestType.c \ + ./out/ResourceCoordinationEUTRACellInfo.c \ + ./out/ResourceCoordinationTransferInformation.c \ + ./out/ResourceCoordinationTransferContainer.c \ + ./out/RepetitionPeriod.c \ + ./out/RLCFailureIndication.c \ + ./out/RLCMode.c \ + ./out/RLC-Status.c \ + ./out/RRCContainer.c \ + ./out/RRCDeliveryStatus.c \ + ./out/RRCDeliveryStatusRequest.c \ + ./out/RRCReconfigurationCompleteIndicator.c \ + ./out/RRC-Version.c \ + ./out/SCell-FailedtoSetup-Item.c \ + ./out/SCell-FailedtoSetupMod-Item.c \ + ./out/SCell-ToBeRemoved-Item.c \ + ./out/SCell-ToBeSetup-Item.c \ + ./out/SCell-ToBeSetupMod-Item.c \ + ./out/SCellIndex.c \ + ./out/SIBType-PWS.c \ + ./out/SelectedBandCombinationIndex.c \ + ./out/SelectedFeatureSetEntryIndex.c \ + ./out/Latest-RRC-Version-Enhanced.c \ + ./out/CG-ConfigInfo.c \ + ./out/ServCellIndex.c \ + ./out/ServingCellMO.c \ + ./out/Served-Cell-Information.c \ + ./out/Served-Cells-To-Add-Item.c \ + ./out/Served-Cells-To-Delete-Item.c \ + ./out/Served-Cells-To-Modify-Item.c \ + ./out/Served-EUTRA-Cells-Information.c \ + ./out/Service-State.c \ + ./out/Service-Status.c \ + ./out/ShortDRXCycleLength.c \ + ./out/ShortDRXCycleTimer.c \ + ./out/SIB1-message.c \ + ./out/SItype.c \ + ./out/SItype-List.c \ + ./out/SItype-Item.c \ + ./out/SibtypetobeupdatedListItem.c \ + ./out/SliceSupportList.c \ + ./out/SliceSupportItem.c \ + ./out/SNSSAI.c \ + ./out/SpectrumSharingGroupID.c \ + ./out/SRBID.c \ + ./out/SRBs-FailedToBeSetup-Item.c \ + ./out/SRBs-FailedToBeSetupMod-Item.c \ + ./out/SRBs-Modified-Item.c \ + ./out/SRBs-Required-ToBeReleased-Item.c \ + ./out/SRBs-Setup-Item.c \ + ./out/SRBs-SetupMod-Item.c \ + ./out/SRBs-ToBeReleased-Item.c \ + ./out/SRBs-ToBeSetup-Item.c \ + ./out/SRBs-ToBeSetupMod-Item.c \ + ./out/SUL-Information.c \ + ./out/SubscriberProfileIDforRFP.c \ + ./out/SULAccessIndication.c \ + ./out/SupportedSULFreqBandItem.c \ + ./out/FiveGS-TAC.c \ + ./out/Configured-EPS-TAC.c \ + ./out/TDD-Info.c \ + ./out/TimeToWait.c \ + ./out/TNLAssociationUsage.c \ + ./out/TransportLayerAddress.c \ + ./out/TransactionID.c \ + ./out/Transmission-Bandwidth.c \ + ./out/TransmissionActionIndicator.c \ + ./out/TypeOfError.c \ + ./out/UE-associatedLogicalF1-ConnectionItem.c \ + ./out/UEAssistanceInformation.c \ + ./out/UE-CapabilityRAT-ContainerList.c \ + ./out/UEIdentityIndexValue.c \ + ./out/ULConfiguration.c \ + ./out/ULUEConfiguration.c \ + ./out/ULUPTNLInformation-ToBeSetup-List.c \ + ./out/ULUPTNLInformation-ToBeSetup-Item.c \ + ./out/UplinkTxDirectCurrentListInformation.c \ + ./out/UPTransportLayerInformation.c \ + ./out/Criticality.c \ + ./out/Presence.c \ + ./out/PrivateIE-ID.c \ + ./out/ProcedureCode.c \ + ./out/ProtocolExtensionID.c \ + ./out/ProtocolIE-ID.c \ + ./out/TriggeringMessage.c \ + ./out/ProtocolIE-Container.c \ + ./out/ProtocolIE-SingleContainer.c \ + ./out/ProtocolIE-Field.c \ + ./out/ProtocolIE-ContainerPair.c \ + ./out/ProtocolIE-FieldPair.c \ + ./out/ProtocolExtensionContainer.c \ + ./out/ProtocolExtensionField.c \ + ./out/PrivateIE-Container.c \ + ./out/PrivateIE-Field.c + +ASN_MODULE_HDRS= \ + ./out/F1AP-PDU.h \ + ./out/InitiatingMessage.h \ + ./out/SuccessfulOutcome.h \ + ./out/UnsuccessfulOutcome.h \ + ./out/Reset.h \ + ./out/ResetType.h \ + ./out/ResetAll.h \ + ./out/UE-associatedLogicalF1-ConnectionListRes.h \ + ./out/ResetAcknowledge.h \ + ./out/UE-associatedLogicalF1-ConnectionListResAck.h \ + ./out/ErrorIndication.h \ + ./out/F1SetupRequest.h \ + ./out/GNB-DU-Served-Cells-List.h \ + ./out/F1SetupResponse.h \ + ./out/Cells-to-be-Activated-List.h \ + ./out/F1SetupFailure.h \ + ./out/GNBDUConfigurationUpdate.h \ + ./out/Served-Cells-To-Add-List.h \ + ./out/Served-Cells-To-Modify-List.h \ + ./out/Served-Cells-To-Delete-List.h \ + ./out/Cells-Status-List.h \ + ./out/Dedicated-SIDelivery-NeededUE-List.h \ + ./out/GNBDUConfigurationUpdateAcknowledge.h \ + ./out/GNBDUConfigurationUpdateFailure.h \ + ./out/GNBCUConfigurationUpdate.h \ + ./out/Cells-to-be-Deactivated-List.h \ + ./out/GNB-CU-TNL-Association-To-Add-List.h \ + ./out/GNB-CU-TNL-Association-To-Remove-List.h \ + ./out/GNB-CU-TNL-Association-To-Update-List.h \ + ./out/Cells-to-be-Barred-List.h \ + ./out/Protected-EUTRA-Resources-List.h \ + ./out/GNBCUConfigurationUpdateAcknowledge.h \ + ./out/Cells-Failed-to-be-Activated-List.h \ + ./out/GNB-CU-TNL-Association-Setup-List.h \ + ./out/GNB-CU-TNL-Association-Failed-To-Setup-List.h \ + ./out/GNBCUConfigurationUpdateFailure.h \ + ./out/GNBDUResourceCoordinationRequest.h \ + ./out/GNBDUResourceCoordinationResponse.h \ + ./out/UEContextSetupRequest.h \ + ./out/Candidate-SpCell-List.h \ + ./out/SCell-ToBeSetup-List.h \ + ./out/SRBs-ToBeSetup-List.h \ + ./out/DRBs-ToBeSetup-List.h \ + ./out/UEContextSetupResponse.h \ + ./out/DRBs-Setup-List.h \ + ./out/SRBs-FailedToBeSetup-List.h \ + ./out/DRBs-FailedToBeSetup-List.h \ + ./out/SCell-FailedtoSetup-List.h \ + ./out/SRBs-Setup-List.h \ + ./out/UEContextSetupFailure.h \ + ./out/Potential-SpCell-List.h \ + ./out/UEContextReleaseRequest.h \ + ./out/UEContextReleaseCommand.h \ + ./out/UEContextReleaseComplete.h \ + ./out/UEContextModificationRequest.h \ + ./out/SCell-ToBeSetupMod-List.h \ + ./out/SCell-ToBeRemoved-List.h \ + ./out/SRBs-ToBeSetupMod-List.h \ + ./out/DRBs-ToBeSetupMod-List.h \ + ./out/DRBs-ToBeModified-List.h \ + ./out/SRBs-ToBeReleased-List.h \ + ./out/DRBs-ToBeReleased-List.h \ + ./out/UEContextModificationResponse.h \ + ./out/DRBs-SetupMod-List.h \ + ./out/DRBs-Modified-List.h \ + ./out/SRBs-SetupMod-List.h \ + ./out/SRBs-Modified-List.h \ + ./out/DRBs-FailedToBeModified-List.h \ + ./out/SRBs-FailedToBeSetupMod-List.h \ + ./out/DRBs-FailedToBeSetupMod-List.h \ + ./out/SCell-FailedtoSetupMod-List.h \ + ./out/Associated-SCell-List.h \ + ./out/UEContextModificationFailure.h \ + ./out/UEContextModificationRequired.h \ + ./out/DRBs-Required-ToBeModified-List.h \ + ./out/DRBs-Required-ToBeReleased-List.h \ + ./out/SRBs-Required-ToBeReleased-List.h \ + ./out/UEContextModificationConfirm.h \ + ./out/DRBs-ModifiedConf-List.h \ + ./out/UEContextModificationRefuse.h \ + ./out/WriteReplaceWarningRequest.h \ + ./out/Cells-To-Be-Broadcast-List.h \ + ./out/WriteReplaceWarningResponse.h \ + ./out/Cells-Broadcast-Completed-List.h \ + ./out/PWSCancelRequest.h \ + ./out/Broadcast-To-Be-Cancelled-List.h \ + ./out/PWSCancelResponse.h \ + ./out/Cells-Broadcast-Cancelled-List.h \ + ./out/UEInactivityNotification.h \ + ./out/DRB-Activity-List.h \ + ./out/InitialULRRCMessageTransfer.h \ + ./out/DLRRCMessageTransfer.h \ + ./out/ULRRCMessageTransfer.h \ + ./out/PrivateMessage.h \ + ./out/SystemInformationDeliveryCommand.h \ + ./out/Paging.h \ + ./out/PagingCell-list.h \ + ./out/Notify.h \ + ./out/DRB-Notify-List.h \ + ./out/PWSRestartIndication.h \ + ./out/NR-CGI-List-For-Restart-List.h \ + ./out/PWSFailureIndication.h \ + ./out/PWS-Failed-NR-CGI-List.h \ + ./out/GNBDUStatusIndication.h \ + ./out/RRCDeliveryReport.h \ + ./out/AllocationAndRetentionPriority.h \ + ./out/Associated-SCell-Item.h \ + ./out/AvailablePLMNList.h \ + ./out/AvailablePLMNList-Item.h \ + ./out/AveragingWindow.h \ + ./out/BitRate.h \ + ./out/BearerTypeChange.h \ + ./out/ServedPLMNs-List.h \ + ./out/ServedPLMNs-Item.h \ + ./out/Cancel-all-Warning-Messages-Indicator.h \ + ./out/Candidate-SpCell-Item.h \ + ./out/Cause.h \ + ./out/CauseMisc.h \ + ./out/CauseProtocol.h \ + ./out/CauseRadioNetwork.h \ + ./out/CauseTransport.h \ + ./out/CellGroupConfig.h \ + ./out/Cell-Direction.h \ + ./out/Cells-Failed-to-be-Activated-List-Item.h \ + ./out/Cells-Status-Item.h \ + ./out/Cells-To-Be-Broadcast-Item.h \ + ./out/Cells-Broadcast-Completed-Item.h \ + ./out/Broadcast-To-Be-Cancelled-Item.h \ + ./out/Cells-Broadcast-Cancelled-Item.h \ + ./out/Cells-to-be-Activated-List-Item.h \ + ./out/Cells-to-be-Deactivated-List-Item.h \ + ./out/Cells-to-be-Barred-Item.h \ + ./out/CellBarred.h \ + ./out/CellULConfigured.h \ + ./out/CNUEPagingIdentity.h \ + ./out/CP-TransportLayerAddress.h \ + ./out/CriticalityDiagnostics.h \ + ./out/CriticalityDiagnostics-IE-List.h \ + ./out/CriticalityDiagnostics-IE-Item.h \ + ./out/C-RNTI.h \ + ./out/CUtoDURRCInformation.h \ + ./out/DCBasedDuplicationConfigured.h \ + ./out/Dedicated-SIDelivery-NeededUE-Item.h \ + ./out/DLUPTNLInformation-ToBeSetup-List.h \ + ./out/DLUPTNLInformation-ToBeSetup-Item.h \ + ./out/DRB-Activity-Item.h \ + ./out/DRB-Activity.h \ + ./out/DRBID.h \ + ./out/DRBs-FailedToBeModified-Item.h \ + ./out/DRBs-FailedToBeSetup-Item.h \ + ./out/DRBs-FailedToBeSetupMod-Item.h \ + ./out/DRB-Information.h \ + ./out/DRBs-Modified-Item.h \ + ./out/DRBs-ModifiedConf-Item.h \ + ./out/DRB-Notify-Item.h \ + ./out/DRBs-Required-ToBeModified-Item.h \ + ./out/DRBs-Required-ToBeReleased-Item.h \ + ./out/DRBs-Setup-Item.h \ + ./out/DRBs-SetupMod-Item.h \ + ./out/DRBs-ToBeModified-Item.h \ + ./out/DRBs-ToBeReleased-Item.h \ + ./out/DRBs-ToBeSetup-Item.h \ + ./out/DRBs-ToBeSetupMod-Item.h \ + ./out/DRXCycle.h \ + ./out/DRX-Config.h \ + ./out/DRXConfigurationIndicator.h \ + ./out/DRX-LongCycleStartOffset.h \ + ./out/DUtoCURRCContainer.h \ + ./out/DUtoCURRCInformation.h \ + ./out/DuplicationActivation.h \ + ./out/DuplicationIndication.h \ + ./out/Dynamic5QIDescriptor.h \ + ./out/Endpoint-IP-address-and-port.h \ + ./out/ExtendedAvailablePLMN-List.h \ + ./out/ExtendedAvailablePLMN-Item.h \ + ./out/ExtendedServedPLMNs-List.h \ + ./out/ExtendedServedPLMNs-Item.h \ + ./out/EUTRACells-List.h \ + ./out/EUTRACells-List-item.h \ + ./out/EUTRA-Cell-ID.h \ + ./out/EUTRA-Coex-FDD-Info.h \ + ./out/EUTRA-Coex-Mode-Info.h \ + ./out/EUTRA-Coex-TDD-Info.h \ + ./out/EUTRA-CyclicPrefixDL.h \ + ./out/EUTRA-CyclicPrefixUL.h \ + ./out/EUTRA-PRACH-Configuration.h \ + ./out/EUTRA-SpecialSubframe-Info.h \ + ./out/EUTRA-SpecialSubframePatterns.h \ + ./out/EUTRA-SubframeAssignment.h \ + ./out/EUTRA-Transmission-Bandwidth.h \ + ./out/EUTRANQoS.h \ + ./out/ExecuteDuplication.h \ + ./out/ExtendedEARFCN.h \ + ./out/EUTRA-Mode-Info.h \ + ./out/EUTRA-NR-CellResourceCoordinationReq-Container.h \ + ./out/EUTRA-NR-CellResourceCoordinationReqAck-Container.h \ + ./out/EUTRA-FDD-Info.h \ + ./out/EUTRA-TDD-Info.h \ + ./out/FDD-Info.h \ + ./out/Flows-Mapped-To-DRB-List.h \ + ./out/Flows-Mapped-To-DRB-Item.h \ + ./out/FreqBandNrItem.h \ + ./out/FullConfiguration.h \ + ./out/GBR-QosInformation.h \ + ./out/GBR-QoSFlowInformation.h \ + ./out/GNB-CUSystemInformation.h \ + ./out/GNB-CU-TNL-Association-Setup-Item.h \ + ./out/GNB-CU-TNL-Association-Failed-To-Setup-Item.h \ + ./out/GNB-CU-TNL-Association-To-Add-Item.h \ + ./out/GNB-CU-TNL-Association-To-Remove-Item.h \ + ./out/GNB-CU-TNL-Association-To-Update-Item.h \ + ./out/GNB-CU-UE-F1AP-ID.h \ + ./out/GNB-DU-UE-F1AP-ID.h \ + ./out/GNB-DU-ID.h \ + ./out/GNB-CU-Name.h \ + ./out/GNB-DU-Name.h \ + ./out/GNB-DU-Served-Cells-Item.h \ + ./out/GNB-DU-System-Information.h \ + ./out/GNB-DUConfigurationQuery.h \ + ./out/GNBDUOverloadInformation.h \ + ./out/GTP-TEID.h \ + ./out/GTPTunnel.h \ + ./out/HandoverPreparationInformation.h \ + ./out/IgnoreResourceCoordinationContainer.h \ + ./out/InactivityMonitoringRequest.h \ + ./out/InactivityMonitoringResponse.h \ + ./out/LCID.h \ + ./out/LongDRXCycleLength.h \ + ./out/MaskedIMEISV.h \ + ./out/MaxDataBurstVolume.h \ + ./out/MaxPacketLossRate.h \ + ./out/MIB-message.h \ + ./out/MeasConfig.h \ + ./out/MeasGapConfig.h \ + ./out/MeasurementTimingConfiguration.h \ + ./out/NeedforGap.h \ + ./out/NGRANAllocationAndRetentionPriority.h \ + ./out/NR-CGI-List-For-Restart-Item.h \ + ./out/NonDynamic5QIDescriptor.h \ + ./out/Notification-Cause.h \ + ./out/NotificationControl.h \ + ./out/NRFreqInfo.h \ + ./out/NRCGI.h \ + ./out/NR-Mode-Info.h \ + ./out/NRCellIdentity.h \ + ./out/NRNRB.h \ + ./out/NRPCI.h \ + ./out/NRSCS.h \ + ./out/NumberOfBroadcasts.h \ + ./out/NumberofBroadcastRequest.h \ + ./out/OffsetToPointA.h \ + ./out/PacketDelayBudget.h \ + ./out/PacketErrorRate.h \ + ./out/PER-Scalar.h \ + ./out/PER-Exponent.h \ + ./out/PagingCell-Item.h \ + ./out/PagingDRX.h \ + ./out/PagingIdentity.h \ + ./out/PagingOrigin.h \ + ./out/PagingPriority.h \ + ./out/PDCP-SN.h \ + ./out/PDCPSNLength.h \ + ./out/PDUSessionID.h \ + ./out/Ph-InfoSCG.h \ + ./out/PLMN-Identity.h \ + ./out/Pre-emptionCapability.h \ + ./out/Pre-emptionVulnerability.h \ + ./out/PriorityLevel.h \ + ./out/ProtectedEUTRAResourceIndication.h \ + ./out/Protected-EUTRA-Resources-Item.h \ + ./out/Potential-SpCell-Item.h \ + ./out/PWS-Failed-NR-CGI-Item.h \ + ./out/PWSSystemInformation.h \ + ./out/QCI.h \ + ./out/QoS-Characteristics.h \ + ./out/QoSFlowIdentifier.h \ + ./out/QoSFlowLevelQoSParameters.h \ + ./out/QoSFlowMappingIndication.h \ + ./out/QoSInformation.h \ + ./out/RANAC.h \ + ./out/RANUEPagingIdentity.h \ + ./out/RAT-FrequencyPriorityInformation.h \ + ./out/RAT-FrequencySelectionPriority.h \ + ./out/Reestablishment-Indication.h \ + ./out/RequestedBandCombinationIndex.h \ + ./out/RequestedFeatureSetEntryIndex.h \ + ./out/RequestedP-MaxFR2.h \ + ./out/RequestType.h \ + ./out/ResourceCoordinationEUTRACellInfo.h \ + ./out/ResourceCoordinationTransferInformation.h \ + ./out/ResourceCoordinationTransferContainer.h \ + ./out/RepetitionPeriod.h \ + ./out/RLCFailureIndication.h \ + ./out/RLCMode.h \ + ./out/RLC-Status.h \ + ./out/RRCContainer.h \ + ./out/RRCDeliveryStatus.h \ + ./out/RRCDeliveryStatusRequest.h \ + ./out/RRCReconfigurationCompleteIndicator.h \ + ./out/RRC-Version.h \ + ./out/SCell-FailedtoSetup-Item.h \ + ./out/SCell-FailedtoSetupMod-Item.h \ + ./out/SCell-ToBeRemoved-Item.h \ + ./out/SCell-ToBeSetup-Item.h \ + ./out/SCell-ToBeSetupMod-Item.h \ + ./out/SCellIndex.h \ + ./out/SIBType-PWS.h \ + ./out/SelectedBandCombinationIndex.h \ + ./out/SelectedFeatureSetEntryIndex.h \ + ./out/Latest-RRC-Version-Enhanced.h \ + ./out/CG-ConfigInfo.h \ + ./out/ServCellIndex.h \ + ./out/ServingCellMO.h \ + ./out/Served-Cell-Information.h \ + ./out/Served-Cells-To-Add-Item.h \ + ./out/Served-Cells-To-Delete-Item.h \ + ./out/Served-Cells-To-Modify-Item.h \ + ./out/Served-EUTRA-Cells-Information.h \ + ./out/Service-State.h \ + ./out/Service-Status.h \ + ./out/ShortDRXCycleLength.h \ + ./out/ShortDRXCycleTimer.h \ + ./out/SIB1-message.h \ + ./out/SItype.h \ + ./out/SItype-List.h \ + ./out/SItype-Item.h \ + ./out/SibtypetobeupdatedListItem.h \ + ./out/SliceSupportList.h \ + ./out/SliceSupportItem.h \ + ./out/SNSSAI.h \ + ./out/SpectrumSharingGroupID.h \ + ./out/SRBID.h \ + ./out/SRBs-FailedToBeSetup-Item.h \ + ./out/SRBs-FailedToBeSetupMod-Item.h \ + ./out/SRBs-Modified-Item.h \ + ./out/SRBs-Required-ToBeReleased-Item.h \ + ./out/SRBs-Setup-Item.h \ + ./out/SRBs-SetupMod-Item.h \ + ./out/SRBs-ToBeReleased-Item.h \ + ./out/SRBs-ToBeSetup-Item.h \ + ./out/SRBs-ToBeSetupMod-Item.h \ + ./out/SUL-Information.h \ + ./out/SubscriberProfileIDforRFP.h \ + ./out/SULAccessIndication.h \ + ./out/SupportedSULFreqBandItem.h \ + ./out/FiveGS-TAC.h \ + ./out/Configured-EPS-TAC.h \ + ./out/TDD-Info.h \ + ./out/TimeToWait.h \ + ./out/TNLAssociationUsage.h \ + ./out/TransportLayerAddress.h \ + ./out/TransactionID.h \ + ./out/Transmission-Bandwidth.h \ + ./out/TransmissionActionIndicator.h \ + ./out/TypeOfError.h \ + ./out/UE-associatedLogicalF1-ConnectionItem.h \ + ./out/UEAssistanceInformation.h \ + ./out/UE-CapabilityRAT-ContainerList.h \ + ./out/UEIdentityIndexValue.h \ + ./out/ULConfiguration.h \ + ./out/ULUEConfiguration.h \ + ./out/ULUPTNLInformation-ToBeSetup-List.h \ + ./out/ULUPTNLInformation-ToBeSetup-Item.h \ + ./out/UplinkTxDirectCurrentListInformation.h \ + ./out/UPTransportLayerInformation.h \ + ./out/Criticality.h \ + ./out/Presence.h \ + ./out/PrivateIE-ID.h \ + ./out/ProcedureCode.h \ + ./out/ProtocolExtensionID.h \ + ./out/ProtocolIE-ID.h \ + ./out/TriggeringMessage.h \ + ./out/ProtocolIE-Container.h \ + ./out/ProtocolIE-SingleContainer.h \ + ./out/ProtocolIE-Field.h \ + ./out/ProtocolIE-ContainerPair.h \ + ./out/ProtocolIE-FieldPair.h \ + ./out/ProtocolExtensionContainer.h \ + ./out/ProtocolExtensionField.h \ + ./out/PrivateIE-Container.h \ + ./out/PrivateIE-Field.h + +ASN_MODULE_HDRS+=./out/ANY.h +ASN_MODULE_SRCS+=./out/ANY.c +ASN_MODULE_HDRS+=./out/OCTET_STRING.h +ASN_MODULE_HDRS+=./out/OPEN_TYPE.h +ASN_MODULE_SRCS+=./out/OPEN_TYPE.c +ASN_MODULE_HDRS+=./out/constr_CHOICE.h +ASN_MODULE_HDRS+=./out/BOOLEAN.h +ASN_MODULE_SRCS+=./out/BOOLEAN.c +ASN_MODULE_HDRS+=./out/INTEGER.h +ASN_MODULE_SRCS+=./out/INTEGER.c +ASN_MODULE_HDRS+=./out/NativeEnumerated.h +ASN_MODULE_SRCS+=./out/NativeEnumerated.c +ASN_MODULE_HDRS+=./out/NativeInteger.h +ASN_MODULE_SRCS+=./out/NativeInteger.c +ASN_MODULE_HDRS+=./out/OBJECT_IDENTIFIER.h +ASN_MODULE_SRCS+=./out/OBJECT_IDENTIFIER.c +ASN_MODULE_HDRS+=./out/PrintableString.h +ASN_MODULE_SRCS+=./out/PrintableString.c +ASN_MODULE_HDRS+=./out/asn_SEQUENCE_OF.h +ASN_MODULE_SRCS+=./out/asn_SEQUENCE_OF.c +ASN_MODULE_HDRS+=./out/asn_SET_OF.h +ASN_MODULE_SRCS+=./out/asn_SET_OF.c +ASN_MODULE_SRCS+=./out/constr_CHOICE.c +ASN_MODULE_HDRS+=./out/constr_SEQUENCE.h +ASN_MODULE_SRCS+=./out/constr_SEQUENCE.c +ASN_MODULE_HDRS+=./out/constr_SEQUENCE_OF.h +ASN_MODULE_SRCS+=./out/constr_SEQUENCE_OF.c +ASN_MODULE_HDRS+=./out/constr_SET_OF.h +ASN_MODULE_SRCS+=./out/constr_SET_OF.c +ASN_MODULE_HDRS+=./out/asn_application.h +ASN_MODULE_SRCS+=./out/asn_application.c +ASN_MODULE_HDRS+=./out/asn_ioc.h +ASN_MODULE_HDRS+=./out/asn_system.h +ASN_MODULE_HDRS+=./out/asn_codecs.h +ASN_MODULE_HDRS+=./out/asn_internal.h +ASN_MODULE_SRCS+=./out/asn_internal.c +ASN_MODULE_HDRS+=./out/asn_random_fill.h +ASN_MODULE_SRCS+=./out/asn_random_fill.c +ASN_MODULE_HDRS+=./out/asn_bit_data.h +ASN_MODULE_SRCS+=./out/asn_bit_data.c +ASN_MODULE_SRCS+=./out/OCTET_STRING.c +ASN_MODULE_HDRS+=./out/BIT_STRING.h +ASN_MODULE_SRCS+=./out/BIT_STRING.c +ASN_MODULE_SRCS+=./out/asn_codecs_prim.c +ASN_MODULE_HDRS+=./out/asn_codecs_prim.h +ASN_MODULE_HDRS+=./out/ber_tlv_length.h +ASN_MODULE_SRCS+=./out/ber_tlv_length.c +ASN_MODULE_HDRS+=./out/ber_tlv_tag.h +ASN_MODULE_SRCS+=./out/ber_tlv_tag.c +ASN_MODULE_HDRS+=./out/ber_decoder.h +ASN_MODULE_SRCS+=./out/ber_decoder.c +ASN_MODULE_HDRS+=./out/der_encoder.h +ASN_MODULE_SRCS+=./out/der_encoder.c +ASN_MODULE_HDRS+=./out/constr_TYPE.h +ASN_MODULE_SRCS+=./out/constr_TYPE.c +ASN_MODULE_HDRS+=./out/constraints.h +ASN_MODULE_SRCS+=./out/constraints.c +ASN_MODULE_HDRS+=./out/xer_support.h +ASN_MODULE_SRCS+=./out/xer_support.c +ASN_MODULE_HDRS+=./out/xer_decoder.h +ASN_MODULE_SRCS+=./out/xer_decoder.c +ASN_MODULE_HDRS+=./out/xer_encoder.h +ASN_MODULE_SRCS+=./out/xer_encoder.c +ASN_MODULE_HDRS+=./out/per_support.h +ASN_MODULE_SRCS+=./out/per_support.c +ASN_MODULE_HDRS+=./out/per_decoder.h +ASN_MODULE_SRCS+=./out/per_decoder.c +ASN_MODULE_HDRS+=./out/per_encoder.h +ASN_MODULE_SRCS+=./out/per_encoder.c +ASN_MODULE_HDRS+=./out/per_opentype.h +ASN_MODULE_SRCS+=./out/per_opentype.c +ASN_MODULE_HDRS+=./out/oer_decoder.h +ASN_MODULE_HDRS+=./out/oer_encoder.h +ASN_MODULE_HDRS+=./out/oer_support.h +ASN_MODULE_SRCS+=./out/oer_decoder.c +ASN_MODULE_SRCS+=./out/oer_encoder.c +ASN_MODULE_SRCS+=./out/oer_support.c +ASN_MODULE_SRCS+=./out/OPEN_TYPE_oer.c +ASN_MODULE_SRCS+=./out/INTEGER_oer.c +ASN_MODULE_SRCS+=./out/BIT_STRING_oer.c +ASN_MODULE_SRCS+=./out/OCTET_STRING_oer.c +ASN_MODULE_SRCS+=./out/NativeInteger_oer.c +ASN_MODULE_SRCS+=./out/NativeEnumerated_oer.c +ASN_MODULE_SRCS+=./out/constr_CHOICE_oer.c +ASN_MODULE_SRCS+=./out/constr_SEQUENCE_oer.c +ASN_MODULE_SRCS+=./out/constr_SET_OF_oer.c + +ASN_MODULE_CFLAGS= + +lib_LTLIBRARIES+=libasncodec.la +libasncodec_la_SOURCES=$(ASN_MODULE_SRCS) $(ASN_MODULE_HDRS) +libasncodec_la_CPPFLAGS=-I$(top_srcdir)/./out/ +libasncodec_la_CFLAGS=$(ASN_MODULE_CFLAGS) +libasncodec_la_LDFLAGS=-lm diff --git a/src/du_app/F1AP/asn/MaskedIMEISV.c b/src/du_app/F1AP/asn/MaskedIMEISV.c new file mode 100755 index 000000000..2bb5d6df6 --- /dev/null +++ b/src/du_app/F1AP/asn/MaskedIMEISV.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MaskedIMEISV.h" + +int +MaskedIMEISV_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 == 64)) { + /* 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_MaskedIMEISV_constr_1 CC_NOTUSED = { + { 0, 0 }, + 64 /* (SIZE(64..64)) */}; +static asn_per_constraints_t asn_PER_type_MaskedIMEISV_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 64, 64 } /* (SIZE(64..64)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MaskedIMEISV_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MaskedIMEISV = { + "MaskedIMEISV", + "MaskedIMEISV", + &asn_OP_BIT_STRING, + asn_DEF_MaskedIMEISV_tags_1, + sizeof(asn_DEF_MaskedIMEISV_tags_1) + /sizeof(asn_DEF_MaskedIMEISV_tags_1[0]), /* 1 */ + asn_DEF_MaskedIMEISV_tags_1, /* Same as above */ + sizeof(asn_DEF_MaskedIMEISV_tags_1) + /sizeof(asn_DEF_MaskedIMEISV_tags_1[0]), /* 1 */ + { &asn_OER_type_MaskedIMEISV_constr_1, &asn_PER_type_MaskedIMEISV_constr_1, MaskedIMEISV_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/MaskedIMEISV.h b/src/du_app/F1AP/asn/MaskedIMEISV.h new file mode 100755 index 000000000..23db564da --- /dev/null +++ b/src/du_app/F1AP/asn/MaskedIMEISV.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MaskedIMEISV_H_ +#define _MaskedIMEISV_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MaskedIMEISV */ +typedef BIT_STRING_t MaskedIMEISV_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MaskedIMEISV; +asn_struct_free_f MaskedIMEISV_free; +asn_struct_print_f MaskedIMEISV_print; +asn_constr_check_f MaskedIMEISV_constraint; +ber_type_decoder_f MaskedIMEISV_decode_ber; +der_type_encoder_f MaskedIMEISV_encode_der; +xer_type_decoder_f MaskedIMEISV_decode_xer; +xer_type_encoder_f MaskedIMEISV_encode_xer; +oer_type_decoder_f MaskedIMEISV_decode_oer; +oer_type_encoder_f MaskedIMEISV_encode_oer; +per_type_decoder_f MaskedIMEISV_decode_uper; +per_type_encoder_f MaskedIMEISV_encode_uper; +per_type_decoder_f MaskedIMEISV_decode_aper; +per_type_encoder_f MaskedIMEISV_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MaskedIMEISV_H_ */ +#include diff --git a/src/du_app/F1AP/asn/MaxDataBurstVolume.c b/src/du_app/F1AP/asn/MaxDataBurstVolume.c new file mode 100755 index 000000000..a78f2bfc1 --- /dev/null +++ b/src/du_app/F1AP/asn/MaxDataBurstVolume.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MaxDataBurstVolume.h" + +int +MaxDataBurstVolume_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 4095)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MaxDataBurstVolume_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_MaxDataBurstVolume_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 12, 12, 0, 4095 } /* (0..4095,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MaxDataBurstVolume_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MaxDataBurstVolume = { + "MaxDataBurstVolume", + "MaxDataBurstVolume", + &asn_OP_NativeInteger, + asn_DEF_MaxDataBurstVolume_tags_1, + sizeof(asn_DEF_MaxDataBurstVolume_tags_1) + /sizeof(asn_DEF_MaxDataBurstVolume_tags_1[0]), /* 1 */ + asn_DEF_MaxDataBurstVolume_tags_1, /* Same as above */ + sizeof(asn_DEF_MaxDataBurstVolume_tags_1) + /sizeof(asn_DEF_MaxDataBurstVolume_tags_1[0]), /* 1 */ + { &asn_OER_type_MaxDataBurstVolume_constr_1, &asn_PER_type_MaxDataBurstVolume_constr_1, MaxDataBurstVolume_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/MaxDataBurstVolume.h b/src/du_app/F1AP/asn/MaxDataBurstVolume.h new file mode 100755 index 000000000..c5d4c0a58 --- /dev/null +++ b/src/du_app/F1AP/asn/MaxDataBurstVolume.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MaxDataBurstVolume_H_ +#define _MaxDataBurstVolume_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MaxDataBurstVolume */ +typedef long MaxDataBurstVolume_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MaxDataBurstVolume_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MaxDataBurstVolume; +asn_struct_free_f MaxDataBurstVolume_free; +asn_struct_print_f MaxDataBurstVolume_print; +asn_constr_check_f MaxDataBurstVolume_constraint; +ber_type_decoder_f MaxDataBurstVolume_decode_ber; +der_type_encoder_f MaxDataBurstVolume_encode_der; +xer_type_decoder_f MaxDataBurstVolume_decode_xer; +xer_type_encoder_f MaxDataBurstVolume_encode_xer; +oer_type_decoder_f MaxDataBurstVolume_decode_oer; +oer_type_encoder_f MaxDataBurstVolume_encode_oer; +per_type_decoder_f MaxDataBurstVolume_decode_uper; +per_type_encoder_f MaxDataBurstVolume_encode_uper; +per_type_decoder_f MaxDataBurstVolume_decode_aper; +per_type_encoder_f MaxDataBurstVolume_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MaxDataBurstVolume_H_ */ +#include diff --git a/src/du_app/F1AP/asn/MaxPacketLossRate.c b/src/du_app/F1AP/asn/MaxPacketLossRate.c new file mode 100755 index 000000000..5b845cae2 --- /dev/null +++ b/src/du_app/F1AP/asn/MaxPacketLossRate.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MaxPacketLossRate.h" + +int +MaxPacketLossRate_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 <= 1000)) { + /* 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_MaxPacketLossRate_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..1000) */, + -1}; +asn_per_constraints_t asn_PER_type_MaxPacketLossRate_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 0, 1000 } /* (0..1000) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_MaxPacketLossRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MaxPacketLossRate = { + "MaxPacketLossRate", + "MaxPacketLossRate", + &asn_OP_NativeInteger, + asn_DEF_MaxPacketLossRate_tags_1, + sizeof(asn_DEF_MaxPacketLossRate_tags_1) + /sizeof(asn_DEF_MaxPacketLossRate_tags_1[0]), /* 1 */ + asn_DEF_MaxPacketLossRate_tags_1, /* Same as above */ + sizeof(asn_DEF_MaxPacketLossRate_tags_1) + /sizeof(asn_DEF_MaxPacketLossRate_tags_1[0]), /* 1 */ + { &asn_OER_type_MaxPacketLossRate_constr_1, &asn_PER_type_MaxPacketLossRate_constr_1, MaxPacketLossRate_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/MaxPacketLossRate.h b/src/du_app/F1AP/asn/MaxPacketLossRate.h new file mode 100755 index 000000000..54c1b10a5 --- /dev/null +++ b/src/du_app/F1AP/asn/MaxPacketLossRate.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MaxPacketLossRate_H_ +#define _MaxPacketLossRate_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MaxPacketLossRate */ +typedef long MaxPacketLossRate_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MaxPacketLossRate_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MaxPacketLossRate; +asn_struct_free_f MaxPacketLossRate_free; +asn_struct_print_f MaxPacketLossRate_print; +asn_constr_check_f MaxPacketLossRate_constraint; +ber_type_decoder_f MaxPacketLossRate_decode_ber; +der_type_encoder_f MaxPacketLossRate_encode_der; +xer_type_decoder_f MaxPacketLossRate_decode_xer; +xer_type_encoder_f MaxPacketLossRate_encode_xer; +oer_type_decoder_f MaxPacketLossRate_decode_oer; +oer_type_encoder_f MaxPacketLossRate_encode_oer; +per_type_decoder_f MaxPacketLossRate_decode_uper; +per_type_encoder_f MaxPacketLossRate_encode_uper; +per_type_decoder_f MaxPacketLossRate_decode_aper; +per_type_encoder_f MaxPacketLossRate_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MaxPacketLossRate_H_ */ +#include diff --git a/src/du_app/F1AP/asn/MeasConfig.c b/src/du_app/F1AP/asn/MeasConfig.c new file mode 100755 index 000000000..17168480d --- /dev/null +++ b/src/du_app/F1AP/asn/MeasConfig.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasConfig.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_MeasConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MeasConfig = { + "MeasConfig", + "MeasConfig", + &asn_OP_OCTET_STRING, + asn_DEF_MeasConfig_tags_1, + sizeof(asn_DEF_MeasConfig_tags_1) + /sizeof(asn_DEF_MeasConfig_tags_1[0]), /* 1 */ + asn_DEF_MeasConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasConfig_tags_1) + /sizeof(asn_DEF_MeasConfig_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/MeasConfig.h b/src/du_app/F1AP/asn/MeasConfig.h new file mode 100755 index 000000000..d51aebd6c --- /dev/null +++ b/src/du_app/F1AP/asn/MeasConfig.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasConfig_H_ +#define _MeasConfig_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MeasConfig */ +typedef OCTET_STRING_t MeasConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasConfig; +asn_struct_free_f MeasConfig_free; +asn_struct_print_f MeasConfig_print; +asn_constr_check_f MeasConfig_constraint; +ber_type_decoder_f MeasConfig_decode_ber; +der_type_encoder_f MeasConfig_encode_der; +xer_type_decoder_f MeasConfig_decode_xer; +xer_type_encoder_f MeasConfig_encode_xer; +oer_type_decoder_f MeasConfig_decode_oer; +oer_type_encoder_f MeasConfig_encode_oer; +per_type_decoder_f MeasConfig_decode_uper; +per_type_encoder_f MeasConfig_encode_uper; +per_type_decoder_f MeasConfig_decode_aper; +per_type_encoder_f MeasConfig_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasConfig_H_ */ +#include diff --git a/src/du_app/F1AP/asn/MeasGapConfig.c b/src/du_app/F1AP/asn/MeasGapConfig.c new file mode 100755 index 000000000..20a720ff1 --- /dev/null +++ b/src/du_app/F1AP/asn/MeasGapConfig.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasGapConfig.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_MeasGapConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MeasGapConfig = { + "MeasGapConfig", + "MeasGapConfig", + &asn_OP_OCTET_STRING, + asn_DEF_MeasGapConfig_tags_1, + sizeof(asn_DEF_MeasGapConfig_tags_1) + /sizeof(asn_DEF_MeasGapConfig_tags_1[0]), /* 1 */ + asn_DEF_MeasGapConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasGapConfig_tags_1) + /sizeof(asn_DEF_MeasGapConfig_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/MeasGapConfig.h b/src/du_app/F1AP/asn/MeasGapConfig.h new file mode 100755 index 000000000..0964b10b9 --- /dev/null +++ b/src/du_app/F1AP/asn/MeasGapConfig.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasGapConfig_H_ +#define _MeasGapConfig_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MeasGapConfig */ +typedef OCTET_STRING_t MeasGapConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasGapConfig; +asn_struct_free_f MeasGapConfig_free; +asn_struct_print_f MeasGapConfig_print; +asn_constr_check_f MeasGapConfig_constraint; +ber_type_decoder_f MeasGapConfig_decode_ber; +der_type_encoder_f MeasGapConfig_encode_der; +xer_type_decoder_f MeasGapConfig_decode_xer; +xer_type_encoder_f MeasGapConfig_encode_xer; +oer_type_decoder_f MeasGapConfig_decode_oer; +oer_type_encoder_f MeasGapConfig_encode_oer; +per_type_decoder_f MeasGapConfig_decode_uper; +per_type_encoder_f MeasGapConfig_encode_uper; +per_type_decoder_f MeasGapConfig_decode_aper; +per_type_encoder_f MeasGapConfig_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasGapConfig_H_ */ +#include diff --git a/src/du_app/F1AP/asn/MeasurementTimingConfiguration.c b/src/du_app/F1AP/asn/MeasurementTimingConfiguration.c new file mode 100755 index 000000000..bba931856 --- /dev/null +++ b/src/du_app/F1AP/asn/MeasurementTimingConfiguration.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasurementTimingConfiguration.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_MeasurementTimingConfiguration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MeasurementTimingConfiguration = { + "MeasurementTimingConfiguration", + "MeasurementTimingConfiguration", + &asn_OP_OCTET_STRING, + asn_DEF_MeasurementTimingConfiguration_tags_1, + sizeof(asn_DEF_MeasurementTimingConfiguration_tags_1) + /sizeof(asn_DEF_MeasurementTimingConfiguration_tags_1[0]), /* 1 */ + asn_DEF_MeasurementTimingConfiguration_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasurementTimingConfiguration_tags_1) + /sizeof(asn_DEF_MeasurementTimingConfiguration_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/MeasurementTimingConfiguration.h b/src/du_app/F1AP/asn/MeasurementTimingConfiguration.h new file mode 100755 index 000000000..70711d94a --- /dev/null +++ b/src/du_app/F1AP/asn/MeasurementTimingConfiguration.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasurementTimingConfiguration_H_ +#define _MeasurementTimingConfiguration_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MeasurementTimingConfiguration */ +typedef OCTET_STRING_t MeasurementTimingConfiguration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasurementTimingConfiguration; +asn_struct_free_f MeasurementTimingConfiguration_free; +asn_struct_print_f MeasurementTimingConfiguration_print; +asn_constr_check_f MeasurementTimingConfiguration_constraint; +ber_type_decoder_f MeasurementTimingConfiguration_decode_ber; +der_type_encoder_f MeasurementTimingConfiguration_encode_der; +xer_type_decoder_f MeasurementTimingConfiguration_decode_xer; +xer_type_encoder_f MeasurementTimingConfiguration_encode_xer; +oer_type_decoder_f MeasurementTimingConfiguration_decode_oer; +oer_type_encoder_f MeasurementTimingConfiguration_encode_oer; +per_type_decoder_f MeasurementTimingConfiguration_decode_uper; +per_type_encoder_f MeasurementTimingConfiguration_encode_uper; +per_type_decoder_f MeasurementTimingConfiguration_decode_aper; +per_type_encoder_f MeasurementTimingConfiguration_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementTimingConfiguration_H_ */ +#include diff --git a/src/du_app/F1AP/asn/NGRANAllocationAndRetentionPriority.c b/src/du_app/F1AP/asn/NGRANAllocationAndRetentionPriority.c new file mode 100755 index 000000000..685f52ff0 --- /dev/null +++ b/src/du_app/F1AP/asn/NGRANAllocationAndRetentionPriority.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "NGRANAllocationAndRetentionPriority.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_NGRANAllocationAndRetentionPriority_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NGRANAllocationAndRetentionPriority, priorityLevel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PriorityLevel, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "priorityLevel" + }, + { ATF_NOFLAGS, 0, offsetof(struct NGRANAllocationAndRetentionPriority, pre_emptionCapability), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Pre_emptionCapability, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pre-emptionCapability" + }, + { ATF_NOFLAGS, 0, offsetof(struct NGRANAllocationAndRetentionPriority, pre_emptionVulnerability), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Pre_emptionVulnerability, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pre-emptionVulnerability" + }, + { ATF_POINTER, 1, offsetof(struct NGRANAllocationAndRetentionPriority, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P63, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_NGRANAllocationAndRetentionPriority_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_NGRANAllocationAndRetentionPriority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NGRANAllocationAndRetentionPriority_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* priorityLevel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pre-emptionCapability */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pre-emptionVulnerability */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NGRANAllocationAndRetentionPriority_specs_1 = { + sizeof(struct NGRANAllocationAndRetentionPriority), + offsetof(struct NGRANAllocationAndRetentionPriority, _asn_ctx), + asn_MAP_NGRANAllocationAndRetentionPriority_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_NGRANAllocationAndRetentionPriority_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NGRANAllocationAndRetentionPriority = { + "NGRANAllocationAndRetentionPriority", + "NGRANAllocationAndRetentionPriority", + &asn_OP_SEQUENCE, + asn_DEF_NGRANAllocationAndRetentionPriority_tags_1, + sizeof(asn_DEF_NGRANAllocationAndRetentionPriority_tags_1) + /sizeof(asn_DEF_NGRANAllocationAndRetentionPriority_tags_1[0]), /* 1 */ + asn_DEF_NGRANAllocationAndRetentionPriority_tags_1, /* Same as above */ + sizeof(asn_DEF_NGRANAllocationAndRetentionPriority_tags_1) + /sizeof(asn_DEF_NGRANAllocationAndRetentionPriority_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NGRANAllocationAndRetentionPriority_1, + 4, /* Elements count */ + &asn_SPC_NGRANAllocationAndRetentionPriority_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/NGRANAllocationAndRetentionPriority.h b/src/du_app/F1AP/asn/NGRANAllocationAndRetentionPriority.h new file mode 100755 index 000000000..c9da0b305 --- /dev/null +++ b/src/du_app/F1AP/asn/NGRANAllocationAndRetentionPriority.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NGRANAllocationAndRetentionPriority_H_ +#define _NGRANAllocationAndRetentionPriority_H_ + + +#include + +/* Including external dependencies */ +#include "PriorityLevel.h" +#include "Pre-emptionCapability.h" +#include "Pre-emptionVulnerability.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* NGRANAllocationAndRetentionPriority */ +typedef struct NGRANAllocationAndRetentionPriority { + PriorityLevel_t priorityLevel; + Pre_emptionCapability_t pre_emptionCapability; + Pre_emptionVulnerability_t pre_emptionVulnerability; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NGRANAllocationAndRetentionPriority_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NGRANAllocationAndRetentionPriority; +extern asn_SEQUENCE_specifics_t asn_SPC_NGRANAllocationAndRetentionPriority_specs_1; +extern asn_TYPE_member_t asn_MBR_NGRANAllocationAndRetentionPriority_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NGRANAllocationAndRetentionPriority_H_ */ +#include diff --git a/src/du_app/F1AP/asn/NR-CGI-List-For-Restart-Item.c b/src/du_app/F1AP/asn/NR-CGI-List-For-Restart-Item.c new file mode 100755 index 000000000..568248851 --- /dev/null +++ b/src/du_app/F1AP/asn/NR-CGI-List-For-Restart-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "NR-CGI-List-For-Restart-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_NR_CGI_List_For_Restart_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NR_CGI_List_For_Restart_Item, 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, 1, offsetof(struct NR_CGI_List_For_Restart_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P64, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_NR_CGI_List_For_Restart_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_NR_CGI_List_For_Restart_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NR_CGI_List_For_Restart_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_NR_CGI_List_For_Restart_Item_specs_1 = { + sizeof(struct NR_CGI_List_For_Restart_Item), + offsetof(struct NR_CGI_List_For_Restart_Item, _asn_ctx), + asn_MAP_NR_CGI_List_For_Restart_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_NR_CGI_List_For_Restart_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NR_CGI_List_For_Restart_Item = { + "NR-CGI-List-For-Restart-Item", + "NR-CGI-List-For-Restart-Item", + &asn_OP_SEQUENCE, + asn_DEF_NR_CGI_List_For_Restart_Item_tags_1, + sizeof(asn_DEF_NR_CGI_List_For_Restart_Item_tags_1) + /sizeof(asn_DEF_NR_CGI_List_For_Restart_Item_tags_1[0]), /* 1 */ + asn_DEF_NR_CGI_List_For_Restart_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_NR_CGI_List_For_Restart_Item_tags_1) + /sizeof(asn_DEF_NR_CGI_List_For_Restart_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NR_CGI_List_For_Restart_Item_1, + 2, /* Elements count */ + &asn_SPC_NR_CGI_List_For_Restart_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/NR-CGI-List-For-Restart-Item.h b/src/du_app/F1AP/asn/NR-CGI-List-For-Restart-Item.h new file mode 100755 index 000000000..abd2d024f --- /dev/null +++ b/src/du_app/F1AP/asn/NR-CGI-List-For-Restart-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NR_CGI_List_For_Restart_Item_H_ +#define _NR_CGI_List_For_Restart_Item_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* NR-CGI-List-For-Restart-Item */ +typedef struct NR_CGI_List_For_Restart_Item { + NRCGI_t nRCGI; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NR_CGI_List_For_Restart_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NR_CGI_List_For_Restart_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _NR_CGI_List_For_Restart_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/NR-CGI-List-For-Restart-List.c b/src/du_app/F1AP/asn/NR-CGI-List-For-Restart-List.c new file mode 100755 index 000000000..85cc952ca --- /dev/null +++ b/src/du_app/F1AP/asn/NR-CGI-List-For-Restart-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "NR-CGI-List-For-Restart-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_NR_CGI_List_For_Restart_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..512)) */}; +static asn_per_constraints_t asn_PER_type_NR_CGI_List_For_Restart_List_constr_1 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_NR_CGI_List_For_Restart_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P57, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NR_CGI_List_For_Restart_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_NR_CGI_List_For_Restart_List_specs_1 = { + sizeof(struct NR_CGI_List_For_Restart_List), + offsetof(struct NR_CGI_List_For_Restart_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_NR_CGI_List_For_Restart_List = { + "NR-CGI-List-For-Restart-List", + "NR-CGI-List-For-Restart-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_NR_CGI_List_For_Restart_List_tags_1, + sizeof(asn_DEF_NR_CGI_List_For_Restart_List_tags_1) + /sizeof(asn_DEF_NR_CGI_List_For_Restart_List_tags_1[0]), /* 1 */ + asn_DEF_NR_CGI_List_For_Restart_List_tags_1, /* Same as above */ + sizeof(asn_DEF_NR_CGI_List_For_Restart_List_tags_1) + /sizeof(asn_DEF_NR_CGI_List_For_Restart_List_tags_1[0]), /* 1 */ + { &asn_OER_type_NR_CGI_List_For_Restart_List_constr_1, &asn_PER_type_NR_CGI_List_For_Restart_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_NR_CGI_List_For_Restart_List_1, + 1, /* Single element */ + &asn_SPC_NR_CGI_List_For_Restart_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/NR-CGI-List-For-Restart-List.h b/src/du_app/F1AP/asn/NR-CGI-List-For-Restart-List.h new file mode 100755 index 000000000..f2d25e64a --- /dev/null +++ b/src/du_app/F1AP/asn/NR-CGI-List-For-Restart-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NR_CGI_List_For_Restart_List_H_ +#define _NR_CGI_List_For_Restart_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* NR-CGI-List-For-Restart-List */ +typedef struct NR_CGI_List_For_Restart_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NR_CGI_List_For_Restart_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NR_CGI_List_For_Restart_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _NR_CGI_List_For_Restart_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/NR-Mode-Info.c b/src/du_app/F1AP/asn/NR-Mode-Info.c new file mode 100755 index 000000000..6fa10cee6 --- /dev/null +++ b/src/du_app/F1AP/asn/NR-Mode-Info.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "NR-Mode-Info.h" + +#include "FDD-Info.h" +#include "TDD-Info.h" +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_NR_Mode_Info_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_NR_Mode_Info_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_NR_Mode_Info_1[] = { + { ATF_POINTER, 0, offsetof(struct NR_Mode_Info, choice.fDD), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FDD_Info, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fDD" + }, + { ATF_POINTER, 0, offsetof(struct NR_Mode_Info, choice.tDD), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TDD_Info, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tDD" + }, + { ATF_POINTER, 0, offsetof(struct NR_Mode_Info, choice.choice_extension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_SingleContainer_4590P63, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-extension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_NR_Mode_Info_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fDD */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tDD */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-extension */ +}; +asn_CHOICE_specifics_t asn_SPC_NR_Mode_Info_specs_1 = { + sizeof(struct NR_Mode_Info), + offsetof(struct NR_Mode_Info, _asn_ctx), + offsetof(struct NR_Mode_Info, present), + sizeof(((struct NR_Mode_Info *)0)->present), + asn_MAP_NR_Mode_Info_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_NR_Mode_Info = { + "NR-Mode-Info", + "NR-Mode-Info", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_NR_Mode_Info_constr_1, &asn_PER_type_NR_Mode_Info_constr_1, CHOICE_constraint }, + asn_MBR_NR_Mode_Info_1, + 3, /* Elements count */ + &asn_SPC_NR_Mode_Info_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/NR-Mode-Info.h b/src/du_app/F1AP/asn/NR-Mode-Info.h new file mode 100755 index 000000000..8f724e6db --- /dev/null +++ b/src/du_app/F1AP/asn/NR-Mode-Info.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NR_Mode_Info_H_ +#define _NR_Mode_Info_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NR_Mode_Info_PR { + NR_Mode_Info_PR_NOTHING, /* No components present */ + NR_Mode_Info_PR_fDD, + NR_Mode_Info_PR_tDD, + NR_Mode_Info_PR_choice_extension +} NR_Mode_Info_PR; + +/* Forward declarations */ +struct FDD_Info; +struct TDD_Info; +struct ProtocolIE_SingleContainer; + +/* NR-Mode-Info */ +typedef struct NR_Mode_Info { + NR_Mode_Info_PR present; + union NR_Mode_Info_u { + struct FDD_Info *fDD; + struct TDD_Info *tDD; + struct ProtocolIE_SingleContainer *choice_extension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NR_Mode_Info_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NR_Mode_Info; +extern asn_CHOICE_specifics_t asn_SPC_NR_Mode_Info_specs_1; +extern asn_TYPE_member_t asn_MBR_NR_Mode_Info_1[3]; +extern asn_per_constraints_t asn_PER_type_NR_Mode_Info_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NR_Mode_Info_H_ */ +#include diff --git a/src/du_app/F1AP/asn/NRCGI.c b/src/du_app/F1AP/asn/NRCGI.c new file mode 100755 index 000000000..22369da6a --- /dev/null +++ b/src/du_app/F1AP/asn/NRCGI.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "NRCGI.h" + +#include "ProtocolExtensionContainer.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" + }, + { ATF_POINTER, 1, offsetof(struct NRCGI, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P67, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_NRCGI_oms_1[] = { 2 }; +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_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NRCGI_specs_1 = { + sizeof(struct NRCGI), + offsetof(struct NRCGI, _asn_ctx), + asn_MAP_NRCGI_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_NRCGI_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* 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, + 3, /* Elements count */ + &asn_SPC_NRCGI_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/NRCGI.h b/src/du_app/F1AP/asn/NRCGI.h new file mode 100755 index 000000000..3b2c87b03 --- /dev/null +++ b/src/du_app/F1AP/asn/NRCGI.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NRCGI_H_ +#define _NRCGI_H_ + + +#include + +/* Including external dependencies */ +#include "PLMN-Identity.h" +#include "NRCellIdentity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* NRCGI */ +typedef struct NRCGI { + PLMN_Identity_t pLMN_Identity; + NRCellIdentity_t nRCellIdentity; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * 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[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NRCGI_H_ */ +#include diff --git a/src/du_app/F1AP/asn/NRCellIdentity.c b/src/du_app/F1AP/asn/NRCellIdentity.c new file mode 100755 index 000000000..ea9b51876 --- /dev/null +++ b/src/du_app/F1AP/asn/NRCellIdentity.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#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/src/du_app/F1AP/asn/NRCellIdentity.h b/src/du_app/F1AP/asn/NRCellIdentity.h new file mode 100755 index 000000000..83d85cf5b --- /dev/null +++ b/src/du_app/F1AP/asn/NRCellIdentity.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#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/src/du_app/F1AP/asn/NRFreqInfo.c b/src/du_app/F1AP/asn/NRFreqInfo.c new file mode 100755 index 000000000..9722aa5c3 --- /dev/null +++ b/src/du_app/F1AP/asn/NRFreqInfo.c @@ -0,0 +1,197 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "NRFreqInfo.h" + +#include "SUL-Information.h" +#include "ProtocolExtensionContainer.h" +#include "FreqBandNrItem.h" +static int +memb_nRARFCN_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 3279165)) { + /* 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_freqBandListNr_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* Determine the number of elements */ + size = _A_CSEQUENCE_FROM_VOID(sptr)->count; + + if((size >= 1 && size <= 32)) { + /* Perform validation of the inner elements */ + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_freqBandListNr_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_freqBandListNr_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_nRARFCN_constr_2 CC_NOTUSED = { + { 4, 1 } /* (0..3279165) */, + -1}; +static asn_per_constraints_t asn_PER_memb_nRARFCN_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 22, -1, 0, 3279165 } /* (0..3279165) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_freqBandListNr_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_memb_freqBandListNr_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_freqBandListNr_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_FreqBandNrItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_freqBandListNr_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_freqBandListNr_specs_4 = { + sizeof(struct NRFreqInfo__freqBandListNr), + offsetof(struct NRFreqInfo__freqBandListNr, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_freqBandListNr_4 = { + "freqBandListNr", + "freqBandListNr", + &asn_OP_SEQUENCE_OF, + asn_DEF_freqBandListNr_tags_4, + sizeof(asn_DEF_freqBandListNr_tags_4) + /sizeof(asn_DEF_freqBandListNr_tags_4[0]) - 1, /* 1 */ + asn_DEF_freqBandListNr_tags_4, /* Same as above */ + sizeof(asn_DEF_freqBandListNr_tags_4) + /sizeof(asn_DEF_freqBandListNr_tags_4[0]), /* 2 */ + { &asn_OER_type_freqBandListNr_constr_4, &asn_PER_type_freqBandListNr_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_freqBandListNr_4, + 1, /* Single element */ + &asn_SPC_freqBandListNr_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_NRFreqInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NRFreqInfo, nRARFCN), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_nRARFCN_constr_2, &asn_PER_memb_nRARFCN_constr_2, memb_nRARFCN_constraint_1 }, + 0, 0, /* No default value */ + "nRARFCN" + }, + { ATF_POINTER, 1, offsetof(struct NRFreqInfo, sul_Information), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SUL_Information, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sul-Information" + }, + { ATF_NOFLAGS, 0, offsetof(struct NRFreqInfo, freqBandListNr), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_freqBandListNr_4, + 0, + { &asn_OER_memb_freqBandListNr_constr_4, &asn_PER_memb_freqBandListNr_constr_4, memb_freqBandListNr_constraint_1 }, + 0, 0, /* No default value */ + "freqBandListNr" + }, + { ATF_POINTER, 1, offsetof(struct NRFreqInfo, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P66, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_NRFreqInfo_oms_1[] = { 1, 3 }; +static const ber_tlv_tag_t asn_DEF_NRFreqInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NRFreqInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRARFCN */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sul-Information */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* freqBandListNr */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NRFreqInfo_specs_1 = { + sizeof(struct NRFreqInfo), + offsetof(struct NRFreqInfo, _asn_ctx), + asn_MAP_NRFreqInfo_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_NRFreqInfo_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NRFreqInfo = { + "NRFreqInfo", + "NRFreqInfo", + &asn_OP_SEQUENCE, + asn_DEF_NRFreqInfo_tags_1, + sizeof(asn_DEF_NRFreqInfo_tags_1) + /sizeof(asn_DEF_NRFreqInfo_tags_1[0]), /* 1 */ + asn_DEF_NRFreqInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_NRFreqInfo_tags_1) + /sizeof(asn_DEF_NRFreqInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NRFreqInfo_1, + 4, /* Elements count */ + &asn_SPC_NRFreqInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/NRFreqInfo.h b/src/du_app/F1AP/asn/NRFreqInfo.h new file mode 100755 index 000000000..08f0ee93f --- /dev/null +++ b/src/du_app/F1AP/asn/NRFreqInfo.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NRFreqInfo_H_ +#define _NRFreqInfo_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SUL_Information; +struct ProtocolExtensionContainer; +struct FreqBandNrItem; + +/* NRFreqInfo */ +typedef struct NRFreqInfo { + long nRARFCN; + struct SUL_Information *sul_Information; /* OPTIONAL */ + struct NRFreqInfo__freqBandListNr { + A_SEQUENCE_OF(struct FreqBandNrItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } freqBandListNr; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NRFreqInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NRFreqInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_NRFreqInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_NRFreqInfo_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NRFreqInfo_H_ */ +#include diff --git a/src/du_app/F1AP/asn/NRNRB.c b/src/du_app/F1AP/asn/NRNRB.c new file mode 100755 index 000000000..9c787be06 --- /dev/null +++ b/src/du_app/F1AP/asn/NRNRB.c @@ -0,0 +1,112 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "NRNRB.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_NRNRB_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_NRNRB_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 28 } /* (0..28,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_NRNRB_value2enum_1[] = { + { 0, 5, "nrb11" }, + { 1, 5, "nrb18" }, + { 2, 5, "nrb24" }, + { 3, 5, "nrb25" }, + { 4, 5, "nrb31" }, + { 5, 5, "nrb32" }, + { 6, 5, "nrb38" }, + { 7, 5, "nrb51" }, + { 8, 5, "nrb52" }, + { 9, 5, "nrb65" }, + { 10, 5, "nrb66" }, + { 11, 5, "nrb78" }, + { 12, 5, "nrb79" }, + { 13, 5, "nrb93" }, + { 14, 6, "nrb106" }, + { 15, 6, "nrb107" }, + { 16, 6, "nrb121" }, + { 17, 6, "nrb132" }, + { 18, 6, "nrb133" }, + { 19, 6, "nrb135" }, + { 20, 6, "nrb160" }, + { 21, 6, "nrb162" }, + { 22, 6, "nrb189" }, + { 23, 6, "nrb216" }, + { 24, 6, "nrb217" }, + { 25, 6, "nrb245" }, + { 26, 6, "nrb264" }, + { 27, 6, "nrb270" }, + { 28, 6, "nrb273" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_NRNRB_enum2value_1[] = { + 14, /* nrb106(14) */ + 15, /* nrb107(15) */ + 0, /* nrb11(0) */ + 16, /* nrb121(16) */ + 17, /* nrb132(17) */ + 18, /* nrb133(18) */ + 19, /* nrb135(19) */ + 20, /* nrb160(20) */ + 21, /* nrb162(21) */ + 1, /* nrb18(1) */ + 22, /* nrb189(22) */ + 23, /* nrb216(23) */ + 24, /* nrb217(24) */ + 2, /* nrb24(2) */ + 25, /* nrb245(25) */ + 3, /* nrb25(3) */ + 26, /* nrb264(26) */ + 27, /* nrb270(27) */ + 28, /* nrb273(28) */ + 4, /* nrb31(4) */ + 5, /* nrb32(5) */ + 6, /* nrb38(6) */ + 7, /* nrb51(7) */ + 8, /* nrb52(8) */ + 9, /* nrb65(9) */ + 10, /* nrb66(10) */ + 11, /* nrb78(11) */ + 12, /* nrb79(12) */ + 13 /* nrb93(13) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_NRNRB_specs_1 = { + asn_MAP_NRNRB_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_NRNRB_enum2value_1, /* N => "tag"; sorted by N */ + 29, /* Number of elements in the maps */ + 30, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_NRNRB_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NRNRB = { + "NRNRB", + "NRNRB", + &asn_OP_NativeEnumerated, + asn_DEF_NRNRB_tags_1, + sizeof(asn_DEF_NRNRB_tags_1) + /sizeof(asn_DEF_NRNRB_tags_1[0]), /* 1 */ + asn_DEF_NRNRB_tags_1, /* Same as above */ + sizeof(asn_DEF_NRNRB_tags_1) + /sizeof(asn_DEF_NRNRB_tags_1[0]), /* 1 */ + { &asn_OER_type_NRNRB_constr_1, &asn_PER_type_NRNRB_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_NRNRB_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/NRNRB.h b/src/du_app/F1AP/asn/NRNRB.h new file mode 100755 index 000000000..9f351b970 --- /dev/null +++ b/src/du_app/F1AP/asn/NRNRB.h @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NRNRB_H_ +#define _NRNRB_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NRNRB { + NRNRB_nrb11 = 0, + NRNRB_nrb18 = 1, + NRNRB_nrb24 = 2, + NRNRB_nrb25 = 3, + NRNRB_nrb31 = 4, + NRNRB_nrb32 = 5, + NRNRB_nrb38 = 6, + NRNRB_nrb51 = 7, + NRNRB_nrb52 = 8, + NRNRB_nrb65 = 9, + NRNRB_nrb66 = 10, + NRNRB_nrb78 = 11, + NRNRB_nrb79 = 12, + NRNRB_nrb93 = 13, + NRNRB_nrb106 = 14, + NRNRB_nrb107 = 15, + NRNRB_nrb121 = 16, + NRNRB_nrb132 = 17, + NRNRB_nrb133 = 18, + NRNRB_nrb135 = 19, + NRNRB_nrb160 = 20, + NRNRB_nrb162 = 21, + NRNRB_nrb189 = 22, + NRNRB_nrb216 = 23, + NRNRB_nrb217 = 24, + NRNRB_nrb245 = 25, + NRNRB_nrb264 = 26, + NRNRB_nrb270 = 27, + NRNRB_nrb273 = 28 + /* + * Enumeration is extensible + */ +} e_NRNRB; + +/* NRNRB */ +typedef long NRNRB_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NRNRB_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NRNRB; +extern const asn_INTEGER_specifics_t asn_SPC_NRNRB_specs_1; +asn_struct_free_f NRNRB_free; +asn_struct_print_f NRNRB_print; +asn_constr_check_f NRNRB_constraint; +ber_type_decoder_f NRNRB_decode_ber; +der_type_encoder_f NRNRB_encode_der; +xer_type_decoder_f NRNRB_decode_xer; +xer_type_encoder_f NRNRB_encode_xer; +oer_type_decoder_f NRNRB_decode_oer; +oer_type_encoder_f NRNRB_encode_oer; +per_type_decoder_f NRNRB_decode_uper; +per_type_encoder_f NRNRB_encode_uper; +per_type_decoder_f NRNRB_decode_aper; +per_type_encoder_f NRNRB_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NRNRB_H_ */ +#include diff --git a/src/du_app/F1AP/asn/NRPCI.c b/src/du_app/F1AP/asn/NRPCI.c new file mode 100755 index 000000000..53c49de87 --- /dev/null +++ b/src/du_app/F1AP/asn/NRPCI.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "NRPCI.h" + +int +NRPCI_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_NRPCI_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..1007) */, + -1}; +asn_per_constraints_t asn_PER_type_NRPCI_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_NRPCI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NRPCI = { + "NRPCI", + "NRPCI", + &asn_OP_NativeInteger, + asn_DEF_NRPCI_tags_1, + sizeof(asn_DEF_NRPCI_tags_1) + /sizeof(asn_DEF_NRPCI_tags_1[0]), /* 1 */ + asn_DEF_NRPCI_tags_1, /* Same as above */ + sizeof(asn_DEF_NRPCI_tags_1) + /sizeof(asn_DEF_NRPCI_tags_1[0]), /* 1 */ + { &asn_OER_type_NRPCI_constr_1, &asn_PER_type_NRPCI_constr_1, NRPCI_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/NRPCI.h b/src/du_app/F1AP/asn/NRPCI.h new file mode 100755 index 000000000..0996f7447 --- /dev/null +++ b/src/du_app/F1AP/asn/NRPCI.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NRPCI_H_ +#define _NRPCI_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* NRPCI */ +typedef long NRPCI_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NRPCI_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NRPCI; +asn_struct_free_f NRPCI_free; +asn_struct_print_f NRPCI_print; +asn_constr_check_f NRPCI_constraint; +ber_type_decoder_f NRPCI_decode_ber; +der_type_encoder_f NRPCI_encode_der; +xer_type_decoder_f NRPCI_decode_xer; +xer_type_encoder_f NRPCI_encode_xer; +oer_type_decoder_f NRPCI_decode_oer; +oer_type_encoder_f NRPCI_encode_oer; +per_type_decoder_f NRPCI_decode_uper; +per_type_encoder_f NRPCI_encode_uper; +per_type_decoder_f NRPCI_decode_aper; +per_type_encoder_f NRPCI_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NRPCI_H_ */ +#include diff --git a/src/du_app/F1AP/asn/NRSCS.c b/src/du_app/F1AP/asn/NRSCS.c new file mode 100755 index 000000000..03f620e5f --- /dev/null +++ b/src/du_app/F1AP/asn/NRSCS.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "NRSCS.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_NRSCS_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_NRSCS_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_NRSCS_value2enum_1[] = { + { 0, 5, "scs15" }, + { 1, 5, "scs30" }, + { 2, 5, "scs60" }, + { 3, 6, "scs120" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_NRSCS_enum2value_1[] = { + 3, /* scs120(3) */ + 0, /* scs15(0) */ + 1, /* scs30(1) */ + 2 /* scs60(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_NRSCS_specs_1 = { + asn_MAP_NRSCS_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_NRSCS_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_NRSCS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NRSCS = { + "NRSCS", + "NRSCS", + &asn_OP_NativeEnumerated, + asn_DEF_NRSCS_tags_1, + sizeof(asn_DEF_NRSCS_tags_1) + /sizeof(asn_DEF_NRSCS_tags_1[0]), /* 1 */ + asn_DEF_NRSCS_tags_1, /* Same as above */ + sizeof(asn_DEF_NRSCS_tags_1) + /sizeof(asn_DEF_NRSCS_tags_1[0]), /* 1 */ + { &asn_OER_type_NRSCS_constr_1, &asn_PER_type_NRSCS_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_NRSCS_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/NRSCS.h b/src/du_app/F1AP/asn/NRSCS.h new file mode 100755 index 000000000..ba52ffe93 --- /dev/null +++ b/src/du_app/F1AP/asn/NRSCS.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NRSCS_H_ +#define _NRSCS_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NRSCS { + NRSCS_scs15 = 0, + NRSCS_scs30 = 1, + NRSCS_scs60 = 2, + NRSCS_scs120 = 3 + /* + * Enumeration is extensible + */ +} e_NRSCS; + +/* NRSCS */ +typedef long NRSCS_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NRSCS_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NRSCS; +extern const asn_INTEGER_specifics_t asn_SPC_NRSCS_specs_1; +asn_struct_free_f NRSCS_free; +asn_struct_print_f NRSCS_print; +asn_constr_check_f NRSCS_constraint; +ber_type_decoder_f NRSCS_decode_ber; +der_type_encoder_f NRSCS_encode_der; +xer_type_decoder_f NRSCS_decode_xer; +xer_type_encoder_f NRSCS_encode_xer; +oer_type_decoder_f NRSCS_decode_oer; +oer_type_encoder_f NRSCS_encode_oer; +per_type_decoder_f NRSCS_decode_uper; +per_type_encoder_f NRSCS_encode_uper; +per_type_decoder_f NRSCS_decode_aper; +per_type_encoder_f NRSCS_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NRSCS_H_ */ +#include diff --git a/src/du_app/F1AP/asn/NativeEnumerated.c b/src/du_app/F1AP/asn/NativeEnumerated.c new file mode 100755 index 000000000..800da97ca --- /dev/null +++ b/src/du_app/F1AP/asn/NativeEnumerated.c @@ -0,0 +1,367 @@ +/*- + * Copyright (c) 2004, 2007 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Read the NativeInteger.h for the explanation wrt. differences between + * INTEGER and NativeInteger. + * Basically, both are decoders and encoders of ASN.1 INTEGER type, but this + * implementation deals with the standard (machine-specific) representation + * of them instead of using the platform-independent buffer. + */ +#include +#include + +/* + * NativeEnumerated basic type description. + */ +static const ber_tlv_tag_t asn_DEF_NativeEnumerated_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_operation_t asn_OP_NativeEnumerated = { + NativeInteger_free, + NativeInteger_print, + NativeInteger_compare, + NativeInteger_decode_ber, + NativeInteger_encode_der, + NativeInteger_decode_xer, + NativeEnumerated_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + NativeEnumerated_decode_oer, + NativeEnumerated_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + NativeEnumerated_decode_uper, + NativeEnumerated_encode_uper, + NativeEnumerated_decode_aper, + NativeEnumerated_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + NativeEnumerated_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_NativeEnumerated = { + "ENUMERATED", /* The ASN.1 type is still ENUMERATED */ + "ENUMERATED", + &asn_OP_NativeEnumerated, + asn_DEF_NativeEnumerated_tags, + sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]), + asn_DEF_NativeEnumerated_tags, /* Same as above */ + sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]), + { 0, 0, asn_generic_no_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +asn_enc_rval_t +NativeEnumerated_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + const long *native = (const long *)sptr; + const asn_INTEGER_enum_map_t *el; + + (void)ilevel; + (void)flags; + + if(!native) ASN__ENCODE_FAILED; + + el = INTEGER_map_value2enum(specs, *native); + if(el) { + er.encoded = + asn__format_to_callback(cb, app_key, "<%s/>", el->enum_name); + if(er.encoded < 0) ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } else { + ASN_DEBUG( + "ASN.1 forbids dealing with " + "unknown value of ENUMERATED type"); + ASN__ENCODE_FAILED; + } +} + +asn_dec_rval_t +NativeEnumerated_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd) { + const asn_INTEGER_specifics_t *specs = td->specifics; + asn_dec_rval_t rval = { RC_OK, 0 }; + long *native = (long *)*sptr; + const asn_per_constraint_t *ct; + long value; + + (void)opt_codec_ctx; + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ASN__DECODE_FAILED; /* Mandatory! */ + if(!specs) ASN__DECODE_FAILED; + + if(!native) { + native = (long *)(*sptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + ASN_DEBUG("Decoding %s as NativeEnumerated", td->name); + + if(ct->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) ASN__DECODE_STARVED; + if(inext) ct = 0; + } + + if(ct && ct->range_bits >= 0) { + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + if(value >= (specs->extension + ? specs->extension - 1 : specs->map_count)) + ASN__DECODE_FAILED; + } else { + if(!specs->extension) + ASN__DECODE_FAILED; + /* + * X.691, #10.6: normally small non-negative whole number; + */ + value = uper_get_nsnnwn(pd); + if(value < 0) ASN__DECODE_STARVED; + value += specs->extension - 1; + if(value >= specs->map_count) + ASN__DECODE_FAILED; + } + + *native = specs->value2enum[value].nat_value; + ASN_DEBUG("Decoded %s = %ld", td->name, *native); + + return rval; +} + +static int +NativeEnumerated__compar_value2enum(const void *ap, const void *bp) { + const asn_INTEGER_enum_map_t *a = ap; + const asn_INTEGER_enum_map_t *b = bp; + if(a->nat_value == b->nat_value) + return 0; + if(a->nat_value < b->nat_value) + return -1; + return 1; +} + +asn_enc_rval_t +NativeEnumerated_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + long native, value; + const asn_per_constraint_t *ct; + int inext = 0; + asn_INTEGER_enum_map_t key; + const asn_INTEGER_enum_map_t *kf; + + if(!sptr) ASN__ENCODE_FAILED; + if(!specs) ASN__ENCODE_FAILED; + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ASN__ENCODE_FAILED; /* Mandatory! */ + + ASN_DEBUG("Encoding %s as NativeEnumerated", td->name); + + er.encoded = 0; + + native = *(const long *)sptr; + + key.nat_value = native; + kf = bsearch(&key, specs->value2enum, specs->map_count, + sizeof(key), NativeEnumerated__compar_value2enum); + if(!kf) { + ASN_DEBUG("No element corresponds to %ld", native); + ASN__ENCODE_FAILED; + } + value = kf - specs->value2enum; + + if(ct->range_bits >= 0) { + int cmpWith = specs->extension + ? specs->extension - 1 : specs->map_count; + if(value >= cmpWith) + inext = 1; + } + if(ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + if(inext) ct = 0; + } else if(inext) { + ASN__ENCODE_FAILED; + } + + if(ct && ct->range_bits >= 0) { + if(per_put_few_bits(po, value, ct->range_bits)) + ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + if(!specs->extension) + ASN__ENCODE_FAILED; + + /* + * X.691, #10.6: normally small non-negative whole number; + */ + ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld", + value, specs->extension, inext, + value - (inext ? (specs->extension - 1) : 0)); + if(uper_put_nsnnwn(po, value - (inext ? (specs->extension - 1) : 0))) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} + +asn_dec_rval_t +NativeEnumerated_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd) { + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval = { RC_OK, 0 }; + long *native = (long *)*sptr; + const asn_per_constraint_t *ct; + long value; + + (void)opt_codec_ctx; + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ASN__DECODE_FAILED; /* Mandatory! */ + if(!specs) ASN__DECODE_FAILED; + + if(!native) { + native = (long *)(*sptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + ASN_DEBUG("Decoding %s as NativeEnumerated", td->name); + + if(ct->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) ASN__DECODE_STARVED; + if(inext) ct = 0; + } + + /* Deal with APER padding */ + if(ct && ct->upper_bound >= 255) { + int padding = 0; + padding = (8 - (pd->moved % 8)) % 8; + ASN_DEBUG("For NativeEnumerated %s,offset= %lu Padding bits = %d", td->name, pd->moved, padding); + ASN_DEBUG("For NativeEnumerated %s, upper bound = %lu", td->name, ct->upper_bound); + if(padding > 0) + per_get_few_bits(pd, padding); + } + + if(ct && ct->range_bits >= 0) { + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + if(value >= (specs->extension + ? specs->extension - 1 : specs->map_count)) + ASN__DECODE_FAILED; + } else { + if(!specs->extension) + ASN__DECODE_FAILED; + /* + * X.691, #10.6: normally small non-negative whole number; + */ + value = uper_get_nsnnwn(pd); + if(value < 0) ASN__DECODE_STARVED; + value += specs->extension - 1; + if(value >= specs->map_count) + ASN__DECODE_FAILED; + } + + *native = specs->value2enum[value].nat_value; + ASN_DEBUG("Decoded %s = %ld", td->name, *native); + + return rval; +} + +asn_enc_rval_t +NativeEnumerated_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + long native, value; + const asn_per_constraint_t *ct; + int inext = 0; + asn_INTEGER_enum_map_t key; + asn_INTEGER_enum_map_t *kf; + + if(!sptr) ASN__ENCODE_FAILED; + if(!specs) ASN__ENCODE_FAILED; + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ASN__ENCODE_FAILED; /* Mandatory! */ + + ASN_DEBUG("Encoding %s as NativeEnumerated", td->name); + + er.encoded = 0; + + native = *(const long *)sptr; + if(native < 0) ASN__ENCODE_FAILED; + + key.nat_value = native; + kf = bsearch(&key, specs->value2enum, specs->map_count, + sizeof(key), NativeEnumerated__compar_value2enum); + if(!kf) { + ASN_DEBUG("No element corresponds to %ld", native); + ASN__ENCODE_FAILED; + } + value = kf - specs->value2enum; + + if(ct->range_bits >= 0) { + int cmpWith = specs->extension + ? specs->extension - 1 : specs->map_count; + if(value >= cmpWith) + inext = 1; + } + if(ct->flags & APC_EXTENSIBLE) { + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + if(inext) ct = 0; + } else if(inext) { + ASN__ENCODE_FAILED; + } + + if(ct && ct->range_bits >= 0) { + if(per_put_few_bits(po, value, ct->range_bits)) + ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + if(!specs->extension) + ASN__ENCODE_FAILED; + + /* + * X.691, #10.6: normally small non-negative whole number; + */ + ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld", + value, specs->extension, inext, + value - (inext ? (specs->extension - 1) : 0)); + if(uper_put_nsnnwn(po, value - (inext ? (specs->extension - 1) : 0))) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} diff --git a/src/du_app/F1AP/asn/NativeEnumerated.h b/src/du_app/F1AP/asn/NativeEnumerated.h new file mode 100755 index 000000000..459f0e633 --- /dev/null +++ b/src/du_app/F1AP/asn/NativeEnumerated.h @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * This type differs from the standard ENUMERATED in that it is modelled using + * the fixed machine type (long, int, short), so it can hold only values of + * limited length. There is no type (i.e., NativeEnumerated_t, any integer type + * will do). + * This type may be used when integer range is limited by subtype constraints. + */ +#ifndef _NativeEnumerated_H_ +#define _NativeEnumerated_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern asn_TYPE_descriptor_t asn_DEF_NativeEnumerated; +extern asn_TYPE_operation_t asn_OP_NativeEnumerated; + +xer_type_encoder_f NativeEnumerated_encode_xer; +oer_type_decoder_f NativeEnumerated_decode_oer; +oer_type_encoder_f NativeEnumerated_encode_oer; +per_type_decoder_f NativeEnumerated_decode_uper; +per_type_encoder_f NativeEnumerated_encode_uper; +per_type_decoder_f NativeEnumerated_decode_aper; +per_type_encoder_f NativeEnumerated_encode_aper; + +#define NativeEnumerated_free NativeInteger_free +#define NativeEnumerated_print NativeInteger_print +#define NativeEnumerated_compare NativeInteger_compare +#define NativeEnumerated_random_fill NativeInteger_random_fill +#define NativeEnumerated_constraint asn_generic_no_constraint +#define NativeEnumerated_decode_ber NativeInteger_decode_ber +#define NativeEnumerated_encode_der NativeInteger_encode_der +#define NativeEnumerated_decode_xer NativeInteger_decode_xer + +#ifdef __cplusplus +} +#endif + +#endif /* _NativeEnumerated_H_ */ diff --git a/src/du_app/F1AP/asn/NativeEnumerated_oer.c b/src/du_app/F1AP/asn/NativeEnumerated_oer.c new file mode 100755 index 000000000..ee3c1895e --- /dev/null +++ b/src/du_app/F1AP/asn/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/src/du_app/F1AP/asn/NativeInteger.c b/src/du_app/F1AP/asn/NativeInteger.c new file mode 100755 index 000000000..316e8720a --- /dev/null +++ b/src/du_app/F1AP/asn/NativeInteger.c @@ -0,0 +1,550 @@ +/*- + * Copyright (c) 2004, 2005, 2006 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Read the NativeInteger.h for the explanation wrt. differences between + * INTEGER and NativeInteger. + * Basically, both are decoders and encoders of ASN.1 INTEGER type, but this + * implementation deals with the standard (machine-specific) representation + * of them instead of using the platform-independent buffer. + */ +#include +#include + +/* + * NativeInteger basic type description. + */ +static const ber_tlv_tag_t asn_DEF_NativeInteger_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_operation_t asn_OP_NativeInteger = { + NativeInteger_free, + NativeInteger_print, + NativeInteger_compare, + NativeInteger_decode_ber, + NativeInteger_encode_der, + NativeInteger_decode_xer, + NativeInteger_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + NativeInteger_decode_oer, /* OER decoder */ + NativeInteger_encode_oer, /* Canonical OER encoder */ +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + NativeInteger_decode_uper, /* Unaligned PER decoder */ + NativeInteger_encode_uper, /* Unaligned PER encoder */ + NativeInteger_decode_aper, /* Aligned PER decoder */ + NativeInteger_encode_aper, /* Aligned PER encoder */ +#endif /* ASN_DISABLE_PER_SUPPORT */ + NativeInteger_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_NativeInteger = { + "INTEGER", /* The ASN.1 type is still INTEGER */ + "INTEGER", + &asn_OP_NativeInteger, + asn_DEF_NativeInteger_tags, + sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]), + asn_DEF_NativeInteger_tags, /* Same as above */ + sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]), + { 0, 0, asn_generic_no_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +/* + * Decode INTEGER type. + */ +asn_dec_rval_t +NativeInteger_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **nint_ptr, + const void *buf_ptr, size_t size, int tag_mode) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + long *native = (long *)*nint_ptr; + asn_dec_rval_t rval; + ber_tlv_len_t length; + + /* + * If the structure is not there, allocate it. + */ + if(native == NULL) { + native = (long *)(*nint_ptr = CALLOC(1, sizeof(*native))); + if(native == NULL) { + rval.code = RC_FAIL; + rval.consumed = 0; + return rval; + } + } + + ASN_DEBUG("Decoding %s as INTEGER (tm=%d)", + td->name, tag_mode); + + /* + * Check tags. + */ + rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, + tag_mode, 0, &length, 0); + if(rval.code != RC_OK) + return rval; + + ASN_DEBUG("%s length is %d bytes", td->name, (int)length); + + /* + * Make sure we have this length. + */ + buf_ptr = ((const char *)buf_ptr) + rval.consumed; + size -= rval.consumed; + if(length > (ber_tlv_len_t)size) { + rval.code = RC_WMORE; + rval.consumed = 0; + return rval; + } + + /* + * ASN.1 encoded INTEGER: buf_ptr, length + * Fill the native, at the same time checking for overflow. + * If overflow occured, return with RC_FAIL. + */ + { + INTEGER_t tmp; + union { + const void *constbuf; + void *nonconstbuf; + } unconst_buf; + long l; + + unconst_buf.constbuf = buf_ptr; + tmp.buf = (uint8_t *)unconst_buf.nonconstbuf; + tmp.size = length; + + if((specs&&specs->field_unsigned) + ? asn_INTEGER2ulong(&tmp, (unsigned long *)&l) /* sic */ + : asn_INTEGER2long(&tmp, &l)) { + rval.code = RC_FAIL; + rval.consumed = 0; + return rval; + } + + *native = l; + } + + rval.code = RC_OK; + rval.consumed += length; + + ASN_DEBUG("Took %ld/%ld bytes to encode %s (%ld)", + (long)rval.consumed, (long)length, td->name, (long)*native); + + return rval; +} + +/* + * Encode the NativeInteger using the standard INTEGER type DER encoder. + */ +asn_enc_rval_t +NativeInteger_encode_der(const asn_TYPE_descriptor_t *sd, const void *ptr, + int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + unsigned long native = *(const unsigned long *)ptr; /* Disable sign ext. */ + asn_enc_rval_t erval = {0,0,0}; + INTEGER_t tmp; + +#ifdef WORDS_BIGENDIAN /* Opportunistic optimization */ + + tmp.buf = (uint8_t *)&native; + tmp.size = sizeof(native); + +#else /* Works even if WORDS_BIGENDIAN is not set where should've been */ + uint8_t buf[sizeof(native)]; + uint8_t *p; + + /* Prepare a fake INTEGER */ + for(p = buf + sizeof(buf) - 1; p >= buf; p--, native >>= 8) + *p = (uint8_t)native; + + tmp.buf = buf; + tmp.size = sizeof(buf); +#endif /* WORDS_BIGENDIAN */ + + /* Encode fake INTEGER */ + erval = INTEGER_encode_der(sd, &tmp, tag_mode, tag, cb, app_key); + if(erval.structure_ptr == &tmp) { + erval.structure_ptr = ptr; + } + return erval; +} + +/* + * Decode the chunk of XML text encoding INTEGER. + */ +asn_dec_rval_t +NativeInteger_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, + size_t size) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval; + INTEGER_t st; + void *st_ptr = (void *)&st; + long *native = (long *)*sptr; + + if(!native) { + native = (long *)(*sptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + memset(&st, 0, sizeof(st)); + rval = INTEGER_decode_xer(opt_codec_ctx, td, &st_ptr, + opt_mname, buf_ptr, size); + if(rval.code == RC_OK) { + long l; + if((specs&&specs->field_unsigned) + ? asn_INTEGER2ulong(&st, (unsigned long *)&l) /* sic */ + : asn_INTEGER2long(&st, &l)) { + rval.code = RC_FAIL; + rval.consumed = 0; + } else { + *native = l; + } + } else { + /* + * Cannot restart from the middle; + * there is no place to save state in the native type. + * Request a continuation from the very beginning. + */ + rval.consumed = 0; + } + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &st); + return rval; +} + + +asn_enc_rval_t +NativeInteger_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + char scratch[32]; /* Enough for 64-bit int */ + asn_enc_rval_t er = {0,0,0}; + const long *native = (const long *)sptr; + + (void)ilevel; + (void)flags; + + if(!native) ASN__ENCODE_FAILED; + + er.encoded = snprintf(scratch, sizeof(scratch), + (specs && specs->field_unsigned) + ? "%lu" : "%ld", *native); + if(er.encoded <= 0 || (size_t)er.encoded >= sizeof(scratch) + || cb(scratch, er.encoded, app_key) < 0) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} + +#ifndef ASN_DISABLE_PER_SUPPORT + +asn_dec_rval_t +NativeInteger_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval; + long *native = (long *)*sptr; + INTEGER_t tmpint; + void *tmpintptr = &tmpint; + + (void)opt_codec_ctx; + ASN_DEBUG("Decoding NativeInteger %s (UPER)", td->name); + + if(!native) { + native = (long *)(*sptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + memset(&tmpint, 0, sizeof tmpint); + rval = INTEGER_decode_uper(opt_codec_ctx, td, constraints, + &tmpintptr, pd); + if(rval.code == RC_OK) { + if((specs&&specs->field_unsigned) + ? asn_INTEGER2ulong(&tmpint, (unsigned long *)native) + : asn_INTEGER2long(&tmpint, native)) + rval.code = RC_FAIL; + else + ASN_DEBUG("NativeInteger %s got value %ld", + td->name, *native); + } + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + + return rval; +} + +asn_enc_rval_t +NativeInteger_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + long native; + INTEGER_t tmpint; + + if(!sptr) ASN__ENCODE_FAILED; + + native = *(const long *)sptr; + + ASN_DEBUG("Encoding NativeInteger %s %ld (UPER)", td->name, native); + + memset(&tmpint, 0, sizeof(tmpint)); + if((specs&&specs->field_unsigned) + ? asn_ulong2INTEGER(&tmpint, native) + : asn_long2INTEGER(&tmpint, native)) + ASN__ENCODE_FAILED; + er = INTEGER_encode_uper(td, constraints, &tmpint, po); + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + return er; +} + +asn_dec_rval_t +NativeInteger_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_dec_rval_t rval; + long *native = (long *)*sptr; + INTEGER_t tmpint; + void *tmpintptr = &tmpint; + + (void)opt_codec_ctx; + ASN_DEBUG("Decoding NativeInteger %s (APER)", td->name); + + if(!native) { + native = (long *)(*sptr = CALLOC(1, sizeof(*native))); + if(!native) ASN__DECODE_FAILED; + } + + memset(&tmpint, 0, sizeof tmpint); + rval = INTEGER_decode_aper(opt_codec_ctx, td, constraints, + &tmpintptr, pd); + if(rval.code == RC_OK) { + if((specs&&specs->field_unsigned) + ? asn_INTEGER2ulong(&tmpint, (unsigned long *)native) + : asn_INTEGER2long(&tmpint, native)) + rval.code = RC_FAIL; + else + ASN_DEBUG("NativeInteger %s got value %ld", + td->name, *native); + } + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + + return rval; +} + +asn_enc_rval_t +NativeInteger_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + + const asn_INTEGER_specifics_t *specs = (const asn_INTEGER_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + long native; + INTEGER_t tmpint; + + if(!sptr) ASN__ENCODE_FAILED; + + native = *(const long *)sptr; + + ASN_DEBUG("Encoding NativeInteger %s %ld (APER)", td->name, native); + + memset(&tmpint, 0, sizeof(tmpint)); + if((specs&&specs->field_unsigned) + ? asn_ulong2INTEGER(&tmpint, (unsigned long)native) + : asn_long2INTEGER(&tmpint, native)) + ASN__ENCODE_FAILED; + er = INTEGER_encode_aper(td, constraints, &tmpint, po); + ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_INTEGER, &tmpint); + return er; +} + +#endif /* ASN_DISABLE_PER_SUPPORT */ + +/* + * INTEGER specific human-readable output. + */ +int +NativeInteger_print(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + const long *native = (const long *)sptr; + char scratch[32]; /* Enough for 64-bit int */ + int ret; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(native) { + long value = *native; + ret = snprintf(scratch, sizeof(scratch), + (specs && specs->field_unsigned) ? "%lu" : "%ld", value); + assert(ret > 0 && (size_t)ret < sizeof(scratch)); + if(cb(scratch, ret, app_key) < 0) return -1; + if(specs && (value >= 0 || !specs->field_unsigned)) { + const asn_INTEGER_enum_map_t *el = + INTEGER_map_value2enum(specs, value); + if(el) { + if(cb(" (", 2, app_key) < 0) return -1; + if(cb(el->enum_name, el->enum_len, app_key) < 0) return -1; + if(cb(")", 1, app_key) < 0) return -1; + } + } + return 0; + } else { + return (cb("", 8, app_key) < 0) ? -1 : 0; + } +} + +void +NativeInteger_free(const asn_TYPE_descriptor_t *td, void *ptr, + enum asn_struct_free_method method) { + if(!td || !ptr) + return; + + ASN_DEBUG("Freeing %s as INTEGER (%d, %p, Native)", + td->name, method, ptr); + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(ptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(ptr, 0, sizeof(long)); + break; + } +} + +int +NativeInteger_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) { + (void)td; + + if(aptr && bptr) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + if(specs && specs->field_unsigned) { + const unsigned long *a = aptr; + const unsigned long *b = bptr; + if(*a < *b) { + return -1; + } else if(*a > *b) { + return 1; + } else { + return 0; + } + } else { + const long *a = aptr; + const long *b = bptr; + if(*a < *b) { + return -1; + } else if(*a > *b) { + return 1; + } else { + return 0; + } + } + } else if(!aptr) { + return -1; + } else { + return 1; + } +} + +asn_random_fill_result_t +NativeInteger_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + const asn_INTEGER_specifics_t *specs = + (const asn_INTEGER_specifics_t *)td->specifics; + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + long *st = *sptr; + const asn_INTEGER_enum_map_t *emap; + size_t emap_len; + intmax_t value; + int find_inside_map; + + if(max_length == 0) return result_skipped; + + if(st == NULL) { + st = (long *)CALLOC(1, sizeof(*st)); + if(st == NULL) { + return result_failed; + } + } + + if(specs) { + emap = specs->value2enum; + emap_len = specs->map_count; + if(specs->strict_enumeration) { + find_inside_map = emap_len > 0; + } else { + find_inside_map = emap_len ? asn_random_between(0, 1) : 0; + } + } else { + emap = 0; + emap_len = 0; + find_inside_map = 0; + } + + if(find_inside_map) { + assert(emap_len > 0); + value = emap[asn_random_between(0, emap_len - 1)].nat_value; + } else { + const asn_per_constraints_t *ct; + + static const long variants[] = { + -65536, -65535, -65534, -32769, -32768, -32767, -16385, -16384, + -16383, -257, -256, -255, -254, -129, -128, -127, + -126, -1, 0, 1, 126, 127, 128, 129, + 254, 255, 256, 257, 16383, 16384, 16385, 32767, + 32768, 32769, 65534, 65535, 65536, 65537}; + if(specs && specs->field_unsigned) { + assert(variants[18] == 0); + value = variants[asn_random_between( + 18, sizeof(variants) / sizeof(variants[0]) - 1)]; + } else { + value = variants[asn_random_between( + 0, sizeof(variants) / sizeof(variants[0]) - 1)]; + } + + if(!constraints) constraints = &td->encoding_constraints; + ct = constraints ? constraints->per_constraints : 0; + if(ct && (ct->value.flags & APC_CONSTRAINED)) { + if(value < ct->value.lower_bound || value > ct->value.upper_bound) { + value = asn_random_between(ct->value.lower_bound, + ct->value.upper_bound); + } + } + } + + *sptr = st; + *st = value; + return result_ok; +} diff --git a/src/du_app/F1AP/asn/NativeInteger.h b/src/du_app/F1AP/asn/NativeInteger.h new file mode 100755 index 000000000..c74406a8a --- /dev/null +++ b/src/du_app/F1AP/asn/NativeInteger.h @@ -0,0 +1,46 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * This type differs from the standard INTEGER in that it is modelled using + * the fixed machine type (long, int, short), so it can hold only values of + * limited length. There is no type (i.e., NativeInteger_t, any integer type + * will do). + * This type may be used when integer range is limited by subtype constraints. + */ +#ifndef _NativeInteger_H_ +#define _NativeInteger_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern asn_TYPE_descriptor_t asn_DEF_NativeInteger; +extern asn_TYPE_operation_t asn_OP_NativeInteger; + +asn_struct_free_f NativeInteger_free; +asn_struct_print_f NativeInteger_print; +asn_struct_compare_f NativeInteger_compare; +ber_type_decoder_f NativeInteger_decode_ber; +der_type_encoder_f NativeInteger_encode_der; +xer_type_decoder_f NativeInteger_decode_xer; +xer_type_encoder_f NativeInteger_encode_xer; +oer_type_decoder_f NativeInteger_decode_oer; +oer_type_encoder_f NativeInteger_encode_oer; +per_type_decoder_f NativeInteger_decode_uper; +per_type_encoder_f NativeInteger_encode_uper; +per_type_decoder_f NativeInteger_decode_aper; +per_type_encoder_f NativeInteger_encode_aper; +asn_random_fill_f NativeInteger_random_fill; + +#define NativeInteger_constraint asn_generic_no_constraint + +#ifdef __cplusplus +} +#endif + +#endif /* _NativeInteger_H_ */ diff --git a/src/du_app/F1AP/asn/NativeInteger_oer.c b/src/du_app/F1AP/asn/NativeInteger_oer.c new file mode 100755 index 000000000..411413a24 --- /dev/null +++ b/src/du_app/F1AP/asn/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/src/du_app/F1AP/asn/NeedforGap.c b/src/du_app/F1AP/asn/NeedforGap.c new file mode 100755 index 000000000..4c3494707 --- /dev/null +++ b/src/du_app/F1AP/asn/NeedforGap.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "NeedforGap.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_NeedforGap_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_NeedforGap_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_NeedforGap_value2enum_1[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_NeedforGap_enum2value_1[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_NeedforGap_specs_1 = { + asn_MAP_NeedforGap_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_NeedforGap_enum2value_1, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_NeedforGap_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NeedforGap = { + "NeedforGap", + "NeedforGap", + &asn_OP_NativeEnumerated, + asn_DEF_NeedforGap_tags_1, + sizeof(asn_DEF_NeedforGap_tags_1) + /sizeof(asn_DEF_NeedforGap_tags_1[0]), /* 1 */ + asn_DEF_NeedforGap_tags_1, /* Same as above */ + sizeof(asn_DEF_NeedforGap_tags_1) + /sizeof(asn_DEF_NeedforGap_tags_1[0]), /* 1 */ + { &asn_OER_type_NeedforGap_constr_1, &asn_PER_type_NeedforGap_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_NeedforGap_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/NeedforGap.h b/src/du_app/F1AP/asn/NeedforGap.h new file mode 100755 index 000000000..e0de87be7 --- /dev/null +++ b/src/du_app/F1AP/asn/NeedforGap.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NeedforGap_H_ +#define _NeedforGap_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NeedforGap { + NeedforGap_true = 0 + /* + * Enumeration is extensible + */ +} e_NeedforGap; + +/* NeedforGap */ +typedef long NeedforGap_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NeedforGap; +asn_struct_free_f NeedforGap_free; +asn_struct_print_f NeedforGap_print; +asn_constr_check_f NeedforGap_constraint; +ber_type_decoder_f NeedforGap_decode_ber; +der_type_encoder_f NeedforGap_encode_der; +xer_type_decoder_f NeedforGap_decode_xer; +xer_type_encoder_f NeedforGap_encode_xer; +oer_type_decoder_f NeedforGap_decode_oer; +oer_type_encoder_f NeedforGap_encode_oer; +per_type_decoder_f NeedforGap_decode_uper; +per_type_encoder_f NeedforGap_encode_uper; +per_type_decoder_f NeedforGap_decode_aper; +per_type_encoder_f NeedforGap_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NeedforGap_H_ */ +#include diff --git a/src/du_app/F1AP/asn/NonDynamic5QIDescriptor.c b/src/du_app/F1AP/asn/NonDynamic5QIDescriptor.c new file mode 100755 index 000000000..dbae6e544 --- /dev/null +++ b/src/du_app/F1AP/asn/NonDynamic5QIDescriptor.c @@ -0,0 +1,159 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "NonDynamic5QIDescriptor.h" + +#include "ProtocolExtensionContainer.h" +static int +memb_fiveQI_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_qoSPriorityLevel_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 <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_fiveQI_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_fiveQI_constr_2 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 asn_oer_constraints_t asn_OER_memb_qoSPriorityLevel_constr_3 CC_NOTUSED = { + { 1, 1 } /* (1..127) */, + -1}; +static asn_per_constraints_t asn_PER_memb_qoSPriorityLevel_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_NonDynamic5QIDescriptor_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NonDynamic5QIDescriptor, fiveQI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_fiveQI_constr_2, &asn_PER_memb_fiveQI_constr_2, memb_fiveQI_constraint_1 }, + 0, 0, /* No default value */ + "fiveQI" + }, + { ATF_POINTER, 4, offsetof(struct NonDynamic5QIDescriptor, qoSPriorityLevel), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_qoSPriorityLevel_constr_3, &asn_PER_memb_qoSPriorityLevel_constr_3, memb_qoSPriorityLevel_constraint_1 }, + 0, 0, /* No default value */ + "qoSPriorityLevel" + }, + { ATF_POINTER, 3, offsetof(struct NonDynamic5QIDescriptor, averagingWindow), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AveragingWindow, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "averagingWindow" + }, + { ATF_POINTER, 2, offsetof(struct NonDynamic5QIDescriptor, maxDataBurstVolume), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MaxDataBurstVolume, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxDataBurstVolume" + }, + { ATF_POINTER, 1, offsetof(struct NonDynamic5QIDescriptor, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P65, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_NonDynamic5QIDescriptor_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_NonDynamic5QIDescriptor_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NonDynamic5QIDescriptor_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveQI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* qoSPriorityLevel */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* averagingWindow */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* maxDataBurstVolume */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NonDynamic5QIDescriptor_specs_1 = { + sizeof(struct NonDynamic5QIDescriptor), + offsetof(struct NonDynamic5QIDescriptor, _asn_ctx), + asn_MAP_NonDynamic5QIDescriptor_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_NonDynamic5QIDescriptor_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NonDynamic5QIDescriptor = { + "NonDynamic5QIDescriptor", + "NonDynamic5QIDescriptor", + &asn_OP_SEQUENCE, + asn_DEF_NonDynamic5QIDescriptor_tags_1, + sizeof(asn_DEF_NonDynamic5QIDescriptor_tags_1) + /sizeof(asn_DEF_NonDynamic5QIDescriptor_tags_1[0]), /* 1 */ + asn_DEF_NonDynamic5QIDescriptor_tags_1, /* Same as above */ + sizeof(asn_DEF_NonDynamic5QIDescriptor_tags_1) + /sizeof(asn_DEF_NonDynamic5QIDescriptor_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NonDynamic5QIDescriptor_1, + 5, /* Elements count */ + &asn_SPC_NonDynamic5QIDescriptor_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/NonDynamic5QIDescriptor.h b/src/du_app/F1AP/asn/NonDynamic5QIDescriptor.h new file mode 100755 index 000000000..c8f9de8b8 --- /dev/null +++ b/src/du_app/F1AP/asn/NonDynamic5QIDescriptor.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NonDynamic5QIDescriptor_H_ +#define _NonDynamic5QIDescriptor_H_ + + +#include + +/* Including external dependencies */ +#include +#include "AveragingWindow.h" +#include "MaxDataBurstVolume.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* NonDynamic5QIDescriptor */ +typedef struct NonDynamic5QIDescriptor { + long fiveQI; + long *qoSPriorityLevel; /* OPTIONAL */ + AveragingWindow_t *averagingWindow; /* OPTIONAL */ + MaxDataBurstVolume_t *maxDataBurstVolume; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NonDynamic5QIDescriptor_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NonDynamic5QIDescriptor; +extern asn_SEQUENCE_specifics_t asn_SPC_NonDynamic5QIDescriptor_specs_1; +extern asn_TYPE_member_t asn_MBR_NonDynamic5QIDescriptor_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NonDynamic5QIDescriptor_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Notification-Cause.c b/src/du_app/F1AP/asn/Notification-Cause.c new file mode 100755 index 000000000..57e5bcf87 --- /dev/null +++ b/src/du_app/F1AP/asn/Notification-Cause.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Notification-Cause.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Notification_Cause_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_Notification_Cause_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_Notification_Cause_value2enum_1[] = { + { 0, 9, "fulfilled" }, + { 1, 13, "not-fulfilled" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_Notification_Cause_enum2value_1[] = { + 0, /* fulfilled(0) */ + 1 /* not-fulfilled(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_Notification_Cause_specs_1 = { + asn_MAP_Notification_Cause_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Notification_Cause_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_Notification_Cause_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Notification_Cause = { + "Notification-Cause", + "Notification-Cause", + &asn_OP_NativeEnumerated, + asn_DEF_Notification_Cause_tags_1, + sizeof(asn_DEF_Notification_Cause_tags_1) + /sizeof(asn_DEF_Notification_Cause_tags_1[0]), /* 1 */ + asn_DEF_Notification_Cause_tags_1, /* Same as above */ + sizeof(asn_DEF_Notification_Cause_tags_1) + /sizeof(asn_DEF_Notification_Cause_tags_1[0]), /* 1 */ + { &asn_OER_type_Notification_Cause_constr_1, &asn_PER_type_Notification_Cause_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Notification_Cause_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Notification-Cause.h b/src/du_app/F1AP/asn/Notification-Cause.h new file mode 100755 index 000000000..13bb73bb0 --- /dev/null +++ b/src/du_app/F1AP/asn/Notification-Cause.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Notification_Cause_H_ +#define _Notification_Cause_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Notification_Cause { + Notification_Cause_fulfilled = 0, + Notification_Cause_not_fulfilled = 1 + /* + * Enumeration is extensible + */ +} e_Notification_Cause; + +/* Notification-Cause */ +typedef long Notification_Cause_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Notification_Cause_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Notification_Cause; +extern const asn_INTEGER_specifics_t asn_SPC_Notification_Cause_specs_1; +asn_struct_free_f Notification_Cause_free; +asn_struct_print_f Notification_Cause_print; +asn_constr_check_f Notification_Cause_constraint; +ber_type_decoder_f Notification_Cause_decode_ber; +der_type_encoder_f Notification_Cause_encode_der; +xer_type_decoder_f Notification_Cause_decode_xer; +xer_type_encoder_f Notification_Cause_encode_xer; +oer_type_decoder_f Notification_Cause_decode_oer; +oer_type_encoder_f Notification_Cause_encode_oer; +per_type_decoder_f Notification_Cause_decode_uper; +per_type_encoder_f Notification_Cause_encode_uper; +per_type_decoder_f Notification_Cause_decode_aper; +per_type_encoder_f Notification_Cause_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Notification_Cause_H_ */ +#include diff --git a/src/du_app/F1AP/asn/NotificationControl.c b/src/du_app/F1AP/asn/NotificationControl.c new file mode 100755 index 000000000..490b818ce --- /dev/null +++ b/src/du_app/F1AP/asn/NotificationControl.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "NotificationControl.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_NotificationControl_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_NotificationControl_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_NotificationControl_value2enum_1[] = { + { 0, 6, "active" }, + { 1, 10, "not-active" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_NotificationControl_enum2value_1[] = { + 0, /* active(0) */ + 1 /* not-active(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_NotificationControl_specs_1 = { + asn_MAP_NotificationControl_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_NotificationControl_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_NotificationControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NotificationControl = { + "NotificationControl", + "NotificationControl", + &asn_OP_NativeEnumerated, + asn_DEF_NotificationControl_tags_1, + sizeof(asn_DEF_NotificationControl_tags_1) + /sizeof(asn_DEF_NotificationControl_tags_1[0]), /* 1 */ + asn_DEF_NotificationControl_tags_1, /* Same as above */ + sizeof(asn_DEF_NotificationControl_tags_1) + /sizeof(asn_DEF_NotificationControl_tags_1[0]), /* 1 */ + { &asn_OER_type_NotificationControl_constr_1, &asn_PER_type_NotificationControl_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_NotificationControl_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/NotificationControl.h b/src/du_app/F1AP/asn/NotificationControl.h new file mode 100755 index 000000000..09e19bda6 --- /dev/null +++ b/src/du_app/F1AP/asn/NotificationControl.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NotificationControl_H_ +#define _NotificationControl_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NotificationControl { + NotificationControl_active = 0, + NotificationControl_not_active = 1 + /* + * Enumeration is extensible + */ +} e_NotificationControl; + +/* NotificationControl */ +typedef long NotificationControl_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NotificationControl_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NotificationControl; +extern const asn_INTEGER_specifics_t asn_SPC_NotificationControl_specs_1; +asn_struct_free_f NotificationControl_free; +asn_struct_print_f NotificationControl_print; +asn_constr_check_f NotificationControl_constraint; +ber_type_decoder_f NotificationControl_decode_ber; +der_type_encoder_f NotificationControl_encode_der; +xer_type_decoder_f NotificationControl_decode_xer; +xer_type_encoder_f NotificationControl_encode_xer; +oer_type_decoder_f NotificationControl_decode_oer; +oer_type_encoder_f NotificationControl_encode_oer; +per_type_decoder_f NotificationControl_decode_uper; +per_type_encoder_f NotificationControl_encode_uper; +per_type_decoder_f NotificationControl_decode_aper; +per_type_encoder_f NotificationControl_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NotificationControl_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Notify.c b/src/du_app/F1AP/asn/Notify.c new file mode 100755 index 000000000..f6a6a3f4b --- /dev/null +++ b/src/du_app/F1AP/asn/Notify.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Notify.h" + +asn_TYPE_member_t asn_MBR_Notify_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Notify, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P36, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_Notify_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Notify_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Notify_specs_1 = { + sizeof(struct Notify), + offsetof(struct Notify, _asn_ctx), + asn_MAP_Notify_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_Notify = { + "Notify", + "Notify", + &asn_OP_SEQUENCE, + asn_DEF_Notify_tags_1, + sizeof(asn_DEF_Notify_tags_1) + /sizeof(asn_DEF_Notify_tags_1[0]), /* 1 */ + asn_DEF_Notify_tags_1, /* Same as above */ + sizeof(asn_DEF_Notify_tags_1) + /sizeof(asn_DEF_Notify_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Notify_1, + 1, /* Elements count */ + &asn_SPC_Notify_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Notify.h b/src/du_app/F1AP/asn/Notify.h new file mode 100755 index 000000000..1b8f1df34 --- /dev/null +++ b/src/du_app/F1AP/asn/Notify.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Notify_H_ +#define _Notify_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Notify */ +typedef struct Notify { + ProtocolIE_Container_4587P36_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Notify_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Notify; +extern asn_SEQUENCE_specifics_t asn_SPC_Notify_specs_1; +extern asn_TYPE_member_t asn_MBR_Notify_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Notify_H_ */ +#include diff --git a/src/du_app/F1AP/asn/NumberOfBroadcasts.c b/src/du_app/F1AP/asn/NumberOfBroadcasts.c new file mode 100755 index 000000000..2274732b8 --- /dev/null +++ b/src/du_app/F1AP/asn/NumberOfBroadcasts.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "NumberOfBroadcasts.h" + +int +NumberOfBroadcasts_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_NumberOfBroadcasts_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_NumberOfBroadcasts_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_NumberOfBroadcasts_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NumberOfBroadcasts = { + "NumberOfBroadcasts", + "NumberOfBroadcasts", + &asn_OP_NativeInteger, + asn_DEF_NumberOfBroadcasts_tags_1, + sizeof(asn_DEF_NumberOfBroadcasts_tags_1) + /sizeof(asn_DEF_NumberOfBroadcasts_tags_1[0]), /* 1 */ + asn_DEF_NumberOfBroadcasts_tags_1, /* Same as above */ + sizeof(asn_DEF_NumberOfBroadcasts_tags_1) + /sizeof(asn_DEF_NumberOfBroadcasts_tags_1[0]), /* 1 */ + { &asn_OER_type_NumberOfBroadcasts_constr_1, &asn_PER_type_NumberOfBroadcasts_constr_1, NumberOfBroadcasts_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/NumberOfBroadcasts.h b/src/du_app/F1AP/asn/NumberOfBroadcasts.h new file mode 100755 index 000000000..cdbd455aa --- /dev/null +++ b/src/du_app/F1AP/asn/NumberOfBroadcasts.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NumberOfBroadcasts_H_ +#define _NumberOfBroadcasts_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* NumberOfBroadcasts */ +typedef long NumberOfBroadcasts_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NumberOfBroadcasts_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NumberOfBroadcasts; +asn_struct_free_f NumberOfBroadcasts_free; +asn_struct_print_f NumberOfBroadcasts_print; +asn_constr_check_f NumberOfBroadcasts_constraint; +ber_type_decoder_f NumberOfBroadcasts_decode_ber; +der_type_encoder_f NumberOfBroadcasts_encode_der; +xer_type_decoder_f NumberOfBroadcasts_decode_xer; +xer_type_encoder_f NumberOfBroadcasts_encode_xer; +oer_type_decoder_f NumberOfBroadcasts_decode_oer; +oer_type_encoder_f NumberOfBroadcasts_encode_oer; +per_type_decoder_f NumberOfBroadcasts_decode_uper; +per_type_encoder_f NumberOfBroadcasts_encode_uper; +per_type_decoder_f NumberOfBroadcasts_decode_aper; +per_type_encoder_f NumberOfBroadcasts_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NumberOfBroadcasts_H_ */ +#include diff --git a/src/du_app/F1AP/asn/NumberofBroadcastRequest.c b/src/du_app/F1AP/asn/NumberofBroadcastRequest.c new file mode 100755 index 000000000..5e9b51d74 --- /dev/null +++ b/src/du_app/F1AP/asn/NumberofBroadcastRequest.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "NumberofBroadcastRequest.h" + +int +NumberofBroadcastRequest_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_NumberofBroadcastRequest_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_type_NumberofBroadcastRequest_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_NumberofBroadcastRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NumberofBroadcastRequest = { + "NumberofBroadcastRequest", + "NumberofBroadcastRequest", + &asn_OP_NativeInteger, + asn_DEF_NumberofBroadcastRequest_tags_1, + sizeof(asn_DEF_NumberofBroadcastRequest_tags_1) + /sizeof(asn_DEF_NumberofBroadcastRequest_tags_1[0]), /* 1 */ + asn_DEF_NumberofBroadcastRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_NumberofBroadcastRequest_tags_1) + /sizeof(asn_DEF_NumberofBroadcastRequest_tags_1[0]), /* 1 */ + { &asn_OER_type_NumberofBroadcastRequest_constr_1, &asn_PER_type_NumberofBroadcastRequest_constr_1, NumberofBroadcastRequest_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/NumberofBroadcastRequest.h b/src/du_app/F1AP/asn/NumberofBroadcastRequest.h new file mode 100755 index 000000000..e55fd6969 --- /dev/null +++ b/src/du_app/F1AP/asn/NumberofBroadcastRequest.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NumberofBroadcastRequest_H_ +#define _NumberofBroadcastRequest_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* NumberofBroadcastRequest */ +typedef long NumberofBroadcastRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NumberofBroadcastRequest; +asn_struct_free_f NumberofBroadcastRequest_free; +asn_struct_print_f NumberofBroadcastRequest_print; +asn_constr_check_f NumberofBroadcastRequest_constraint; +ber_type_decoder_f NumberofBroadcastRequest_decode_ber; +der_type_encoder_f NumberofBroadcastRequest_encode_der; +xer_type_decoder_f NumberofBroadcastRequest_decode_xer; +xer_type_encoder_f NumberofBroadcastRequest_encode_xer; +oer_type_decoder_f NumberofBroadcastRequest_decode_oer; +oer_type_encoder_f NumberofBroadcastRequest_encode_oer; +per_type_decoder_f NumberofBroadcastRequest_decode_uper; +per_type_encoder_f NumberofBroadcastRequest_encode_uper; +per_type_decoder_f NumberofBroadcastRequest_decode_aper; +per_type_encoder_f NumberofBroadcastRequest_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NumberofBroadcastRequest_H_ */ +#include diff --git a/src/du_app/F1AP/asn/OBJECT_IDENTIFIER.c b/src/du_app/F1AP/asn/OBJECT_IDENTIFIER.c new file mode 100755 index 000000000..8dccf01e3 --- /dev/null +++ b/src/du_app/F1AP/asn/OBJECT_IDENTIFIER.c @@ -0,0 +1,656 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include +#include /* for CHAR_BIT */ +#include + +/* + * OBJECT IDENTIFIER basic type description. + */ +static const ber_tlv_tag_t asn_DEF_OBJECT_IDENTIFIER_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (6 << 2)) +}; +asn_TYPE_operation_t asn_OP_OBJECT_IDENTIFIER = { + ASN__PRIMITIVE_TYPE_free, + OBJECT_IDENTIFIER_print, + OCTET_STRING_compare, /* Implemented in terms of a string comparison */ + ber_decode_primitive, + der_encode_primitive, + OBJECT_IDENTIFIER_decode_xer, + OBJECT_IDENTIFIER_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + OBJECT_IDENTIFIER_decode_oer, + OBJECT_IDENTIFIER_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + OBJECT_IDENTIFIER_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_OBJECT_IDENTIFIER = { + "OBJECT IDENTIFIER", + "OBJECT_IDENTIFIER", + &asn_OP_OBJECT_IDENTIFIER, + asn_DEF_OBJECT_IDENTIFIER_tags, + sizeof(asn_DEF_OBJECT_IDENTIFIER_tags) + / sizeof(asn_DEF_OBJECT_IDENTIFIER_tags[0]), + asn_DEF_OBJECT_IDENTIFIER_tags, /* Same as above */ + sizeof(asn_DEF_OBJECT_IDENTIFIER_tags) + / sizeof(asn_DEF_OBJECT_IDENTIFIER_tags[0]), + { 0, 0, OBJECT_IDENTIFIER_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +int +OBJECT_IDENTIFIER_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, + void *app_key) { + const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr; + + if(st && st->buf) { + if(st->size < 1) { + ASN__CTFAIL(app_key, td, sptr, + "%s: at least one numerical value " + "expected (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + return 0; +} + +static ssize_t +OBJECT_IDENTIFIER_get_first_arcs(const uint8_t *arcbuf, size_t arcbuf_len, + asn_oid_arc_t *arc0, asn_oid_arc_t *arc1) { + asn_oid_arc_t value; + + ssize_t rd = OBJECT_IDENTIFIER_get_single_arc(arcbuf, arcbuf_len, &value); + if(rd <= 0) return rd; + + if(value >= 80) { + *arc0 = 2; + *arc1 = value - 80; + } else if(value >= 40) { + *arc0 = 1; + *arc1 = value - 40; + } else { + *arc0 = 0; + *arc1 = value; + } + + return rd; +} + +ssize_t +OBJECT_IDENTIFIER_get_single_arc(const uint8_t *arcbuf, size_t arcbuf_len, + asn_oid_arc_t *ret_value) { + const uint8_t *b = arcbuf; + const uint8_t *arcend = arcbuf + arcbuf_len; /* End of arc */ + + if(arcbuf == arcend) { + return 0; + } else { + asn_oid_arc_t accum; + asn_oid_arc_t upper_limit = (ASN_OID_ARC_MAX >> 7); + /* When the value reaches "upper_limit", it can take */ + /* at most one more digit. If it exceeds "upper_limit" */ + /* but there are more digits - it's an Overflow condition */ + /* Gather all bits into the accumulator */ + for(accum = 0; b < arcend; b++) { + accum = (accum << 7) | (*b & ~0x80); + if((*b & 0x80) == 0) { // no more digits + if(accum <= ASN_OID_ARC_MAX) { + *ret_value = accum; + return 1 + (b - arcbuf); + } else { + errno = ERANGE; /* Overflow */ + return -1; + } + } else { // to make sure we aren't wrapping around + if(accum > upper_limit) { + errno = ERANGE; /* Overflow */ + return -1; + } + } + } + errno = EINVAL; + return -1; + } + +} + +static ssize_t +OBJECT_IDENTIFIER__dump_body(const OBJECT_IDENTIFIER_t *st, + asn_app_consume_bytes_f *cb, void *app_key) { + char scratch[32]; + asn_oid_arc_t arc0, arc1; + size_t produced = 0; + size_t off = 0; + ssize_t rd; + int ret; + + rd = OBJECT_IDENTIFIER_get_first_arcs(st->buf, st->size, &arc0, &arc1); + if(rd <= 0) { + return -1; + } + + ret = snprintf(scratch, sizeof(scratch), "%"PRIu32".%"PRIu32, arc0, arc1); + if(ret >= (ssize_t)sizeof(scratch)) { + return -1; + } + produced += ret; + if(cb(scratch, ret, app_key) < 0) + return -1; + + for(off = rd; ; ) { + asn_oid_arc_t arc; + rd = OBJECT_IDENTIFIER_get_single_arc(st->buf + off, st->size - off, + &arc); + if(rd < 0) { + return -1; + } else if(rd == 0) { + /* No more arcs. */ + break; + } else { + off += rd; + assert(off <= st->size); + ret = snprintf(scratch, sizeof(scratch), ".%" PRIu32, arc); + if(ret >= (ssize_t)sizeof(scratch)) { + return -1; + } + produced += ret; + if(cb(scratch, ret, app_key) < 0) return -1; + } + } + + if(off != st->size) { + ASN_DEBUG("Could not scan to the end of Object Identifier"); + return -1; + } + + return produced; +} + +static enum xer_pbd_rval +OBJECT_IDENTIFIER__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, + const void *chunk_buf, size_t chunk_size) { + OBJECT_IDENTIFIER_t *st = (OBJECT_IDENTIFIER_t *)sptr; + const char *chunk_end = (const char *)chunk_buf + chunk_size; + const char *endptr; + asn_oid_arc_t s_arcs[10]; + asn_oid_arc_t *arcs = s_arcs; + ssize_t num_arcs; + ssize_t ret; + + (void)td; + + num_arcs = OBJECT_IDENTIFIER_parse_arcs( + (const char *)chunk_buf, chunk_size, arcs, + sizeof(s_arcs) / sizeof(s_arcs[0]), &endptr); + if(num_arcs < 0) { + /* Expecting more than zero arcs */ + return XPBD_BROKEN_ENCODING; + } else if(num_arcs == 0) { + return XPBD_NOT_BODY_IGNORE; + } + assert(endptr == chunk_end); + + if((size_t)num_arcs > sizeof(s_arcs)/sizeof(s_arcs[0])) { + arcs = (asn_oid_arc_t *)MALLOC(num_arcs * sizeof(asn_oid_arc_t)); + if(!arcs) return XPBD_SYSTEM_FAILURE; + ret = OBJECT_IDENTIFIER_parse_arcs((const char *)chunk_buf, chunk_size, + arcs, num_arcs, &endptr); + if(ret != num_arcs) + return XPBD_SYSTEM_FAILURE; /* assert?.. */ + } + + /* + * Convert arcs into BER representation. + */ + ret = OBJECT_IDENTIFIER_set_arcs(st, arcs, num_arcs); + if(arcs != s_arcs) FREEMEM(arcs); + + return ret ? XPBD_SYSTEM_FAILURE : XPBD_BODY_CONSUMED; +} + +asn_dec_rval_t +OBJECT_IDENTIFIER_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, + size_t size) { + return xer_decode_primitive(opt_codec_ctx, td, + sptr, sizeof(OBJECT_IDENTIFIER_t), opt_mname, + buf_ptr, size, OBJECT_IDENTIFIER__xer_body_decode); +} + +asn_enc_rval_t +OBJECT_IDENTIFIER_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr; + asn_enc_rval_t er = {0,0,0}; + + (void)ilevel; + (void)flags; + + if(!st || !st->buf) { + ASN__ENCODE_FAILED; + } + + er.encoded = OBJECT_IDENTIFIER__dump_body(st, cb, app_key); + if(er.encoded < 0) ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} + +int +OBJECT_IDENTIFIER_print(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, asn_app_consume_bytes_f *cb, + void *app_key) { + const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(!st || !st->buf) + return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* Dump preamble */ + if(cb("{ ", 2, app_key) < 0) + return -1; + + if(OBJECT_IDENTIFIER__dump_body(st, cb, app_key) < 0) { + return -1; + } + + return (cb(" }", 2, app_key) < 0) ? -1 : 0; +} + +ssize_t +OBJECT_IDENTIFIER_get_arcs(const OBJECT_IDENTIFIER_t *st, asn_oid_arc_t *arcs, + size_t arc_slots) { + asn_oid_arc_t arc0, arc1; + size_t num_arcs = 0; + size_t off; + ssize_t rd; + + if(!st || !st->buf) { + errno = EINVAL; + return -1; + } + + rd = OBJECT_IDENTIFIER_get_first_arcs(st->buf, st->size, &arc0, &arc1); + if(rd <= 0) { + return -1; + } + num_arcs = 2; + switch(arc_slots) { + default: + case 2: + arcs[1] = arc1; + /* Fall through */ + case 1: + arcs[0] = arc0; + /* Fall through */ + case 0: + break; + } + + for(off = rd; ; ) { + asn_oid_arc_t arc; + rd = OBJECT_IDENTIFIER_get_single_arc(st->buf + off, st->size - off, + &arc); + if(rd < 0) { + return -1; + } else if(rd == 0) { + /* No more arcs. */ + break; + } else { + off += rd; + if(num_arcs < arc_slots) { + arcs[num_arcs] = arc; + } + num_arcs++; + } + } + + if(off != st->size) { + return -1; + } + + return num_arcs; +} + + +/* + * Save the single value as an object identifier arc. + */ +ssize_t +OBJECT_IDENTIFIER_set_single_arc(uint8_t *arcbuf, size_t arcbuf_len, + asn_oid_arc_t value) { + /* + * The following conditions must hold: + * assert(arcbuf); + */ + uint8_t scratch[((sizeof(value) * CHAR_BIT + 6) / 7)]; + uint8_t *scratch_end = &scratch[sizeof(scratch)-1]; + uint8_t *b; + size_t result_len; + uint8_t mask; + + for(b = scratch_end, mask = 0; ; mask = 0x80, b--) { + *b = mask | (value & 0x7f); + value >>= 7; + if(!value) { + break; + } + } + + result_len = (scratch_end - b) + 1; + + if(result_len > arcbuf_len) { + return -1; + } + + memcpy(arcbuf, b, result_len); + + return result_len; +} + +int +OBJECT_IDENTIFIER_set_arcs(OBJECT_IDENTIFIER_t *st, const asn_oid_arc_t *arcs, + size_t arc_slots) { + uint8_t *buf; + uint8_t *bp; + ssize_t wrote; + asn_oid_arc_t arc0; + asn_oid_arc_t arc1; + size_t size; + size_t i; + + if(!st || !arcs || arc_slots < 2) { + errno = EINVAL; + return -1; + } + + arc0 = arcs[0]; + arc1 = arcs[1]; + + if(arc0 <= 1) { + if(arc1 >= 40) { + /* 8.19.4: At most 39 subsequent values (including 0) */ + errno = ERANGE; + return -1; + } + } else if(arc0 == 2) { + if(arc1 > ASN_OID_ARC_MAX - 80) { + errno = ERANGE; + return -1; + } + } else if(arc0 > 2) { + /* 8.19.4: Only three values are allocated from the root node */ + errno = ERANGE; + return -1; + } + + /* + * After above tests it is known that the value of arc0 is completely + * trustworthy (0..2). However, the arc1's value is still meaningless. + */ + + /* + * Roughly estimate the maximum size necessary to encode these arcs. + * This estimation implicitly takes in account the following facts, + * that cancel each other: + * * the first two arcs are encoded in a single value. + * * the first value may require more space (+1 byte) + * * the value of the first arc which is in range (0..2) + */ + size = ((sizeof(asn_oid_arc_t) * CHAR_BIT + 6) / 7) * arc_slots; + bp = buf = (uint8_t *)MALLOC(size + 1); + if(!buf) { + /* ENOMEM */ + return -1; + } + + wrote = OBJECT_IDENTIFIER_set_single_arc(bp, size, arc0 * 40 + arc1); + if(wrote <= 0) { + FREEMEM(buf); + return -1; + } + assert((size_t)wrote <= size); + bp += wrote; + size -= wrote; + + for(i = 2; i < arc_slots; i++) { + wrote = OBJECT_IDENTIFIER_set_single_arc(bp, size, arcs[i]); + if(wrote <= 0) { + FREEMEM(buf); + return -1; + } + assert((size_t)wrote <= size); + bp += wrote; + size -= wrote; + } + + /* + * Replace buffer. + */ + st->size = bp - buf; + bp = st->buf; + st->buf = buf; + st->buf[st->size] = '\0'; + if(bp) FREEMEM(bp); + + return 0; +} + +ssize_t +OBJECT_IDENTIFIER_parse_arcs(const char *oid_text, ssize_t oid_txt_length, + asn_oid_arc_t *arcs, size_t arcs_count, + const char **opt_oid_text_end) { + size_t num_arcs = 0; + const char *oid_end; + enum { + ST_LEADSPACE, + ST_TAILSPACE, + ST_AFTERVALUE, /* Next character ought to be '.' or a space */ + ST_WAITDIGITS /* Next character is expected to be a digit */ + } state = ST_LEADSPACE; + + if(!oid_text || oid_txt_length < -1 || (arcs_count && !arcs)) { + if(opt_oid_text_end) *opt_oid_text_end = oid_text; + errno = EINVAL; + return -1; + } + + if(oid_txt_length == -1) + oid_txt_length = strlen(oid_text); + +#define _OID_CAPTURE_ARC(oid_text, oid_end) \ + do { \ + const char *endp = oid_end; \ + unsigned long value; \ + switch(asn_strtoul_lim(oid_text, &endp, &value)) { \ + case ASN_STRTOX_EXTRA_DATA: \ + case ASN_STRTOX_OK: \ + if(value <= ASN_OID_ARC_MAX) { \ + if(num_arcs < arcs_count) arcs[num_arcs] = value; \ + num_arcs++; \ + oid_text = endp - 1; \ + break; \ + } \ + /* Fall through */ \ + case ASN_STRTOX_ERROR_RANGE: \ + if(opt_oid_text_end) *opt_oid_text_end = oid_text; \ + errno = ERANGE; \ + return -1; \ + case ASN_STRTOX_ERROR_INVAL: \ + case ASN_STRTOX_EXPECT_MORE: \ + if(opt_oid_text_end) *opt_oid_text_end = oid_text; \ + errno = EINVAL; \ + return -1; \ + } \ + } while(0) + + for(oid_end = oid_text + oid_txt_length; oid_text broken OID */ + return -1; + case ST_LEADSPACE: + case ST_WAITDIGITS: + _OID_CAPTURE_ARC(oid_text, oid_end); + state = ST_AFTERVALUE; + continue; + } + break; + default: + /* Unexpected symbols */ + state = ST_WAITDIGITS; + break; + } /* switch() */ + break; + } /* for() */ + + + if(opt_oid_text_end) *opt_oid_text_end = oid_text; + + /* Finalize last arc */ + switch(state) { + case ST_LEADSPACE: + return 0; /* No OID found in input data */ + case ST_WAITDIGITS: + errno = EINVAL; /* Broken OID */ + return -1; + case ST_AFTERVALUE: + case ST_TAILSPACE: + return num_arcs; + } + + errno = EINVAL; /* Broken OID */ + return -1; +} + +/* + * Generate values from the list of interesting values, or just a random + * value up to the upper limit. + */ +static asn_oid_arc_t +OBJECT_IDENTIFIER__biased_random_arc(asn_oid_arc_t upper_bound) { + const asn_oid_arc_t values[] = {0, 1, 127, 128, 129, 254, 255, 256}; + size_t idx; + + switch(asn_random_between(0, 2)) { + case 0: + idx = asn_random_between(0, sizeof(values) / sizeof(values[0]) - 1); + if(values[idx] < upper_bound) { + return values[idx]; + } + /* Fall through */ + case 1: + return asn_random_between(0, upper_bound); + case 2: + default: + return upper_bound; + } +} + +asn_random_fill_result_t +OBJECT_IDENTIFIER_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + OBJECT_IDENTIFIER_t *st; + asn_oid_arc_t arcs[5]; + size_t arcs_len = asn_random_between(2, 5); + size_t i; + + (void)constraints; + + if(max_length < arcs_len) return result_skipped; + + if(*sptr) { + st = *sptr; + } else { + st = CALLOC(1, sizeof(*st)); + } + + arcs[0] = asn_random_between(0, 2); + arcs[1] = OBJECT_IDENTIFIER__biased_random_arc( + arcs[0] <= 1 ? 39 : (ASN_OID_ARC_MAX - 80)); + for(i = 2; i < arcs_len; i++) { + arcs[i] = OBJECT_IDENTIFIER__biased_random_arc(ASN_OID_ARC_MAX); + } + + if(OBJECT_IDENTIFIER_set_arcs(st, arcs, arcs_len)) { + if(st != *sptr) { + ASN_STRUCT_FREE(*td, st); + } + return result_failed; + } + + *sptr = st; + + result_ok.length = st->size; + return result_ok; +} diff --git a/src/du_app/F1AP/asn/OBJECT_IDENTIFIER.h b/src/du_app/F1AP/asn/OBJECT_IDENTIFIER.h new file mode 100755 index 000000000..087c6fda1 --- /dev/null +++ b/src/du_app/F1AP/asn/OBJECT_IDENTIFIER.h @@ -0,0 +1,156 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _OBJECT_IDENTIFIER_H_ +#define _OBJECT_IDENTIFIER_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef uint32_t asn_oid_arc_t; +#define ASN_OID_ARC_MAX (~((asn_oid_arc_t)0)) + +typedef ASN__PRIMITIVE_TYPE_t OBJECT_IDENTIFIER_t; + +extern asn_TYPE_descriptor_t asn_DEF_OBJECT_IDENTIFIER; +extern asn_TYPE_operation_t asn_OP_OBJECT_IDENTIFIER; + +asn_struct_print_f OBJECT_IDENTIFIER_print; +asn_constr_check_f OBJECT_IDENTIFIER_constraint; +der_type_encoder_f OBJECT_IDENTIFIER_encode_der; +xer_type_decoder_f OBJECT_IDENTIFIER_decode_xer; +xer_type_encoder_f OBJECT_IDENTIFIER_encode_xer; +asn_random_fill_f OBJECT_IDENTIFIER_random_fill; + +#define OBJECT_IDENTIFIER_free ASN__PRIMITIVE_TYPE_free +#define OBJECT_IDENTIFIER_compare OCTET_STRING_compare +#define OBJECT_IDENTIFIER_decode_ber ber_decode_primitive +#define OBJECT_IDENTIFIER_encode_der der_encode_primitive +#define OBJECT_IDENTIFIER_decode_oer oer_decode_primitive +#define OBJECT_IDENTIFIER_encode_oer oer_encode_primitive +#define OBJECT_IDENTIFIER_decode_uper OCTET_STRING_decode_uper +#define OBJECT_IDENTIFIER_encode_uper OCTET_STRING_encode_uper +#define OBJECT_IDENTIFIER_decode_aper OCTET_STRING_decode_aper +#define OBJECT_IDENTIFIER_encode_aper OCTET_STRING_encode_aper + +/********************************** + * Some handy conversion routines * + **********************************/ + +/* + * This function fills an (arcs) array with OBJECT IDENTIFIER arcs + * up to specified (arc_slots) elements. + * + * EXAMPLE: + * void print_arcs(OBJECT_IDENTIFIER_t *oid) { + * asn_oid_arc_t fixed_arcs[10]; // Try with fixed space first + * asn_oid_arc_t *arcs = fixed_arcs; + * size_t arc_slots = sizeof(fixed_arcs)/sizeof(fixed_arcs[0]); // 10 + * ssize_t count; // Real number of arcs. + * int i; + * + * count = OBJECT_IDENTIFIER_get_arcs(oid, arcs, arc_slots); + * // If necessary, reallocate arcs array and try again. + * if(count > arc_slots) { + * arc_slots = count; + * arcs = malloc(sizeof(asn_oid_arc_t) * arc_slots); + * if(!arcs) return; + * count = OBJECT_IDENTIFIER_get_arcs(oid, arcs, arc_slots); + * assert(count == arc_slots); + * } + * + * // Print the contents of the arcs array. + * for(i = 0; i < count; i++) + * printf("%"PRIu32"\n", arcs[i]); + * + * // Avoid memory leak. + * if(arcs != fixed_arcs) free(arcs); + * } + * + * RETURN VALUES: + * -1/EINVAL: Invalid arguments (oid is missing) + * -1/ERANGE: One or more arcs have value out of array cell type range. + * >=0: Number of arcs contained in the OBJECT IDENTIFIER + * + * WARNING: The function always returns the actual number of arcs, + * even if there is no sufficient (arc_slots) provided. + */ +ssize_t OBJECT_IDENTIFIER_get_arcs(const OBJECT_IDENTIFIER_t *oid, + asn_oid_arc_t *arcs, size_t arc_slots); + +/* + * This functions initializes the OBJECT IDENTIFIER object with + * the given set of arcs. + * The minimum of two arcs must be present; some restrictions apply. + * RETURN VALUES: + * -1/EINVAL: Invalid arguments + * -1/ERANGE: The first two arcs do not conform to ASN.1 restrictions. + * -1/ENOMEM: Memory allocation failed + * 0: The object was initialized with new arcs. + */ +int OBJECT_IDENTIFIER_set_arcs(OBJECT_IDENTIFIER_t *oid, + const asn_oid_arc_t *arcs, size_t arcs_count); + + +/* + * Parse the OBJECT IDENTIFIER textual representation ("1.3.6.1.4.1.9363"). + * No arc can exceed the (0..ASN_OID_ARC_MAX, which is the same as UINT32_MAX). + * This function is not specific to OBJECT IDENTIFIER, it may be used to parse + * the RELATIVE-OID data, or any other data consisting of dot-separated + * series of numeric values. + * + * If (oid_txt_length == -1), the strlen() will be invoked to determine the + * size of the (oid_text) string. + * + * After return, the optional (opt_oid_text_end) is set to the character after + * the last parsed one. (opt_oid_text_end) is never less than (oid_text). + * + * RETURN VALUES: + * -1: Parse error. + * >= 0: Number of arcs contained in the OBJECT IDENTIFIER. + * + * WARNING: The function always returns the real number of arcs, + * even if there is no sufficient (arc_slots) provided. + * This is useful for (arc_slots) value estimation. + */ +ssize_t OBJECT_IDENTIFIER_parse_arcs(const char *oid_text, + ssize_t oid_txt_length, + asn_oid_arc_t *arcs, size_t arcs_count, + const char **opt_oid_text_end); + +/* + * Internal functions. + * Used by RELATIVE-OID implementation in particular. + */ + +/* + * Retrieve a single arc of size from the (arcbuf) buffer. + * RETURN VALUES: + * -1: Failed to retrieve the value from the (arcbuf). + * >0: Number of bytes consumed from the (arcbuf), <= (arcbuf_len). + */ +ssize_t OBJECT_IDENTIFIER_get_single_arc(const uint8_t *arcbuf, + size_t arcbuf_len, + asn_oid_arc_t *ret_value); + +/* + * Write the unterminated arc value into the (arcbuf) which has the size at + * least (arcbuf_len). + * RETURN VALUES: + * -1: (arcbuf_len) size is not sufficient to write the value. + * : Number of bytes appended to the arcbuf (<= arcbuf_len). + */ +ssize_t OBJECT_IDENTIFIER_set_single_arc(uint8_t *arcbuf, size_t arcbuf_len, + asn_oid_arc_t arc_value); + +#ifdef __cplusplus +} +#endif + +#endif /* _OBJECT_IDENTIFIER_H_ */ diff --git a/src/du_app/F1AP/asn/OCTET_STRING.c b/src/du_app/F1AP/asn/OCTET_STRING.c new file mode 100755 index 000000000..432ce5ae2 --- /dev/null +++ b/src/du_app/F1AP/asn/OCTET_STRING.c @@ -0,0 +1,2409 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include /* for .bits_unused member */ +#include + +/* + * OCTET STRING basic type description. + */ +static const ber_tlv_tag_t asn_DEF_OCTET_STRING_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs = { + sizeof(OCTET_STRING_t), + offsetof(OCTET_STRING_t, _asn_ctx), + ASN_OSUBV_STR +}; + +asn_TYPE_operation_t asn_OP_OCTET_STRING = { + OCTET_STRING_free, + OCTET_STRING_print, /* OCTET STRING generally means a non-ascii sequence */ + OCTET_STRING_compare, + OCTET_STRING_decode_ber, + OCTET_STRING_encode_der, + OCTET_STRING_decode_xer_hex, + OCTET_STRING_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + OCTET_STRING_decode_uper, /* Unaligned PER decoder */ + OCTET_STRING_encode_uper, /* Unaligned PER encoder */ + OCTET_STRING_decode_aper, /* Aligned PER decoder */ + OCTET_STRING_encode_aper, /* Aligned PER encoder */ +#endif /* ASN_DISABLE_PER_SUPPORT */ + OCTET_STRING_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_OCTET_STRING = { + "OCTET STRING", /* Canonical name */ + "OCTET_STRING", /* XML tag name */ + &asn_OP_OCTET_STRING, + asn_DEF_OCTET_STRING_tags, + sizeof(asn_DEF_OCTET_STRING_tags) + / sizeof(asn_DEF_OCTET_STRING_tags[0]), + asn_DEF_OCTET_STRING_tags, /* Same as above */ + sizeof(asn_DEF_OCTET_STRING_tags) + / sizeof(asn_DEF_OCTET_STRING_tags[0]), + { 0, 0, asn_generic_no_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs +}; + +#undef _CH_PHASE +#undef NEXT_PHASE +#undef PREV_PHASE +#define _CH_PHASE(ctx, inc) do { \ + if(ctx->phase == 0) \ + ctx->context = 0; \ + ctx->phase += inc; \ + } while(0) +#define NEXT_PHASE(ctx) _CH_PHASE(ctx, +1) +#define PREV_PHASE(ctx) _CH_PHASE(ctx, -1) + +#undef ADVANCE +#define ADVANCE(num_bytes) do { \ + size_t num = (num_bytes); \ + buf_ptr = ((const char *)buf_ptr) + num; \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +#undef RETURN +#define RETURN(_code) do { \ + asn_dec_rval_t tmprval; \ + tmprval.code = _code; \ + tmprval.consumed = consumed_myself; \ + return tmprval; \ + } while(0) + +#undef APPEND +#define APPEND(bufptr, bufsize) do { \ + size_t _bs = (bufsize); /* Append size */ \ + size_t _ns = ctx->context; /* Allocated now */ \ + size_t _es = st->size + _bs; /* Expected size */ \ + /* int is really a typeof(st->size): */ \ + if((int)_es < 0) RETURN(RC_FAIL); \ + if(_ns <= _es) { \ + void *ptr; \ + /* Be nice and round to the memory allocator */ \ + do { _ns = _ns ? _ns << 1 : 16; } \ + while(_ns <= _es); \ + /* int is really a typeof(st->size): */ \ + if((int)_ns < 0) RETURN(RC_FAIL); \ + ptr = REALLOC(st->buf, _ns); \ + if(ptr) { \ + st->buf = (uint8_t *)ptr; \ + ctx->context = _ns; \ + } else { \ + RETURN(RC_FAIL); \ + } \ + ASN_DEBUG("Reallocating into %ld", (long)_ns); \ + } \ + memcpy(st->buf + st->size, bufptr, _bs); \ + /* Convenient nul-termination */ \ + st->buf[_es] = '\0'; \ + st->size = _es; \ + } while(0) + +/* + * The main reason why ASN.1 is still alive is that too much time and effort + * is necessary for learning it more or less adequately, thus creating a gut + * necessity to demonstrate that aquired skill everywhere afterwards. + * No, I am not going to explain what the following stuff is. + */ +struct _stack_el { + ber_tlv_len_t left; /* What's left to read (or -1) */ + ber_tlv_len_t got; /* What was actually processed */ + unsigned cont_level; /* Depth of subcontainment */ + int want_nulls; /* Want null "end of content" octets? */ + int bits_chopped; /* Flag in BIT STRING mode */ + ber_tlv_tag_t tag; /* For debugging purposes */ + struct _stack_el *prev; + struct _stack_el *next; +}; +struct _stack { + struct _stack_el *tail; + struct _stack_el *cur_ptr; +}; + +static struct _stack_el * +OS__add_stack_el(struct _stack *st) { + struct _stack_el *nel; + + /* + * Reuse the old stack frame or allocate a new one. + */ + if(st->cur_ptr && st->cur_ptr->next) { + nel = st->cur_ptr->next; + nel->bits_chopped = 0; + nel->got = 0; + /* Retain the nel->cont_level, it's correct. */ + } else { + nel = (struct _stack_el *)CALLOC(1, sizeof(struct _stack_el)); + if(nel == NULL) + return NULL; + + if(st->tail) { + /* Increase a subcontainment depth */ + nel->cont_level = st->tail->cont_level + 1; + st->tail->next = nel; + } + nel->prev = st->tail; + st->tail = nel; + } + + st->cur_ptr = nel; + + return nel; +} + +static struct _stack * +_new_stack(void) { + return (struct _stack *)CALLOC(1, sizeof(struct _stack)); +} + +/* + * Decode OCTET STRING type. + */ +asn_dec_rval_t +OCTET_STRING_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const void *buf_ptr, size_t size, int tag_mode) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + BIT_STRING_t *st = (BIT_STRING_t *)*sptr; + asn_dec_rval_t rval; + asn_struct_ctx_t *ctx; + ssize_t consumed_myself = 0; + struct _stack *stck; /* Expectations stack structure */ + struct _stack_el *sel = 0; /* Stack element */ + int tlv_constr; + enum asn_OS_Subvariant type_variant = specs->subvariant; + + ASN_DEBUG("Decoding %s as %s (frame %ld)", + td->name, + (type_variant == ASN_OSUBV_STR) ? + "OCTET STRING" : "OS-SpecialCase", + (long)size); + + /* + * Create the string if does not exist. + */ + if(st == NULL) { + st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(st == NULL) RETURN(RC_FAIL); + } + + /* Restore parsing context */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + switch(ctx->phase) { + case 0: + /* + * Check tags. + */ + rval = ber_check_tags(opt_codec_ctx, td, ctx, + buf_ptr, size, tag_mode, -1, + &ctx->left, &tlv_constr); + if(rval.code != RC_OK) + return rval; + + if(tlv_constr) { + /* + * Complex operation, requires stack of expectations. + */ + ctx->ptr = _new_stack(); + if(!ctx->ptr) { + RETURN(RC_FAIL); + } + } else { + /* + * Jump into stackless primitive decoding. + */ + _CH_PHASE(ctx, 3); + if(type_variant == ASN_OSUBV_ANY && tag_mode != 1) + APPEND(buf_ptr, rval.consumed); + ADVANCE(rval.consumed); + goto phase3; + } + + NEXT_PHASE(ctx); + /* Fall through */ + case 1: + phase1: + /* + * Fill the stack with expectations. + */ + stck = (struct _stack *)ctx->ptr; + sel = stck->cur_ptr; + do { + ber_tlv_tag_t tlv_tag; + ber_tlv_len_t tlv_len; + ber_tlv_tag_t expected_tag; + ssize_t tl, ll, tlvl; + /* This one works even if (sel->left == -1) */ + size_t Left = ((!sel||(size_t)sel->left >= size) + ?size:(size_t)sel->left); + + + ASN_DEBUG("%p, s->l=%ld, s->wn=%ld, s->g=%ld\n", (void *)sel, + (long)(sel?sel->left:0), + (long)(sel?sel->want_nulls:0), + (long)(sel?sel->got:0) + ); + if(sel && sel->left <= 0 && sel->want_nulls == 0) { + if(sel->prev) { + struct _stack_el *prev = sel->prev; + if(prev->left != -1) { + if(prev->left < sel->got) + RETURN(RC_FAIL); + prev->left -= sel->got; + } + prev->got += sel->got; + sel = stck->cur_ptr = prev; + if(!sel) break; + tlv_constr = 1; + continue; + } else { + sel = stck->cur_ptr = 0; + break; /* Nothing to wait */ + } + } + + tl = ber_fetch_tag(buf_ptr, Left, &tlv_tag); + ASN_DEBUG("fetch tag(size=%ld,L=%ld), %sstack, left=%ld, wn=%ld, tl=%ld", + (long)size, (long)Left, sel?"":"!", + (long)(sel?sel->left:0), + (long)(sel?sel->want_nulls:0), + (long)tl); + switch(tl) { + case -1: RETURN(RC_FAIL); + case 0: RETURN(RC_WMORE); + } + + tlv_constr = BER_TLV_CONSTRUCTED(buf_ptr); + + ll = ber_fetch_length(tlv_constr, + (const char *)buf_ptr + tl,Left - tl,&tlv_len); + ASN_DEBUG("Got tag=%s, tc=%d, left=%ld, tl=%ld, len=%ld, ll=%ld", + ber_tlv_tag_string(tlv_tag), tlv_constr, + (long)Left, (long)tl, (long)tlv_len, (long)ll); + switch(ll) { + case -1: RETURN(RC_FAIL); + case 0: RETURN(RC_WMORE); + } + + if(sel && sel->want_nulls + && ((const uint8_t *)buf_ptr)[0] == 0 + && ((const uint8_t *)buf_ptr)[1] == 0) + { + + ASN_DEBUG("Eat EOC; wn=%d--", sel->want_nulls); + + if(type_variant == ASN_OSUBV_ANY + && (tag_mode != 1 || sel->cont_level)) + APPEND("\0\0", 2); + + ADVANCE(2); + sel->got += 2; + if(sel->left != -1) { + sel->left -= 2; /* assert(sel->left >= 2) */ + } + + sel->want_nulls--; + if(sel->want_nulls == 0) { + /* Move to the next expectation */ + sel->left = 0; + tlv_constr = 1; + } + + continue; + } + + /* + * Set up expected tags, + * depending on ASN.1 type being decoded. + */ + switch(type_variant) { + case ASN_OSUBV_BIT: + /* X.690: 8.6.4.1, NOTE 2 */ + /* Fall through */ + case ASN_OSUBV_STR: + default: + if(sel) { + unsigned level = sel->cont_level; + if(level < td->all_tags_count) { + expected_tag = td->all_tags[level]; + break; + } else if(td->all_tags_count) { + expected_tag = td->all_tags + [td->all_tags_count - 1]; + break; + } + /* else, Fall through */ + } + /* Fall through */ + case ASN_OSUBV_ANY: + expected_tag = tlv_tag; + break; + } + + + if(tlv_tag != expected_tag) { + char buf[2][32]; + ber_tlv_tag_snprint(tlv_tag, + buf[0], sizeof(buf[0])); + ber_tlv_tag_snprint(td->tags[td->tags_count-1], + buf[1], sizeof(buf[1])); + ASN_DEBUG("Tag does not match expectation: %s != %s", + buf[0], buf[1]); + RETURN(RC_FAIL); + } + + tlvl = tl + ll; /* Combined length of T and L encoding */ + if((tlv_len + tlvl) < 0) { + /* tlv_len value is too big */ + ASN_DEBUG("TLV encoding + length (%ld) is too big", + (long)tlv_len); + RETURN(RC_FAIL); + } + + /* + * Append a new expectation. + */ + sel = OS__add_stack_el(stck); + if(!sel) RETURN(RC_FAIL); + + sel->tag = tlv_tag; + + sel->want_nulls = (tlv_len==-1); + if(sel->prev && sel->prev->left != -1) { + /* Check that the parent frame is big enough */ + if(sel->prev->left < tlvl + (tlv_len==-1?0:tlv_len)) + RETURN(RC_FAIL); + if(tlv_len == -1) + sel->left = sel->prev->left - tlvl; + else + sel->left = tlv_len; + } else { + sel->left = tlv_len; + } + if(type_variant == ASN_OSUBV_ANY + && (tag_mode != 1 || sel->cont_level)) + APPEND(buf_ptr, tlvl); + sel->got += tlvl; + ADVANCE(tlvl); + + ASN_DEBUG("+EXPECT2 got=%ld left=%ld, wn=%d, clvl=%u", + (long)sel->got, (long)sel->left, + sel->want_nulls, sel->cont_level); + + } while(tlv_constr); + if(sel == NULL) { + /* Finished operation, "phase out" */ + ASN_DEBUG("Phase out"); + _CH_PHASE(ctx, +3); + break; + } + + NEXT_PHASE(ctx); + /* Fall through */ + case 2: + stck = (struct _stack *)ctx->ptr; + sel = stck->cur_ptr; + ASN_DEBUG("Phase 2: Need %ld bytes, size=%ld, alrg=%ld, wn=%d", + (long)sel->left, (long)size, (long)sel->got, + sel->want_nulls); + { + ber_tlv_len_t len; + + assert(sel->left >= 0); + + len = ((ber_tlv_len_t)size < sel->left) + ? (ber_tlv_len_t)size : sel->left; + if(len > 0) { + if(type_variant == ASN_OSUBV_BIT + && sel->bits_chopped == 0) { + /* Put the unused-bits-octet away */ + st->bits_unused = *(const uint8_t *)buf_ptr; + APPEND(((const char *)buf_ptr+1), (len - 1)); + sel->bits_chopped = 1; + } else { + APPEND(buf_ptr, len); + } + ADVANCE(len); + sel->left -= len; + sel->got += len; + } + + if(sel->left) { + ASN_DEBUG("OS left %ld, size = %ld, wn=%d\n", + (long)sel->left, (long)size, sel->want_nulls); + RETURN(RC_WMORE); + } + + PREV_PHASE(ctx); + goto phase1; + } + break; + case 3: + phase3: + /* + * Primitive form, no stack required. + */ + assert(ctx->left >= 0); + + if(size < (size_t)ctx->left) { + if(!size) RETURN(RC_WMORE); + if(type_variant == ASN_OSUBV_BIT && !ctx->context) { + st->bits_unused = *(const uint8_t *)buf_ptr; + ctx->left--; + ADVANCE(1); + } + APPEND(buf_ptr, size); + assert(ctx->context > 0); + ctx->left -= size; + ADVANCE(size); + RETURN(RC_WMORE); + } else { + if(type_variant == ASN_OSUBV_BIT + && !ctx->context && ctx->left) { + st->bits_unused = *(const uint8_t *)buf_ptr; + ctx->left--; + ADVANCE(1); + } + APPEND(buf_ptr, ctx->left); + ADVANCE(ctx->left); + ctx->left = 0; + + NEXT_PHASE(ctx); + } + break; + } + + if(sel) { + ASN_DEBUG("3sel p=%p, wn=%d, l=%ld, g=%ld, size=%ld", + (void *)sel->prev, sel->want_nulls, + (long)sel->left, (long)sel->got, (long)size); + if(sel->prev || sel->want_nulls > 1 || sel->left > 0) { + RETURN(RC_WMORE); + } + } + + /* + * BIT STRING-specific processing. + */ + if(type_variant == ASN_OSUBV_BIT) { + if(st->size) { + if(st->bits_unused < 0 || st->bits_unused > 7) { + RETURN(RC_FAIL); + } + /* Finalize BIT STRING: zero out unused bits. */ + st->buf[st->size-1] &= 0xff << st->bits_unused; + } else { + if(st->bits_unused) { + RETURN(RC_FAIL); + } + } + } + + ASN_DEBUG("Took %ld bytes to encode %s: [%s]:%ld", + (long)consumed_myself, td->name, + (type_variant == ASN_OSUBV_STR) ? (char *)st->buf : "", + (long)st->size); + + + RETURN(RC_OK); +} + +/* + * Encode OCTET STRING type using DER. + */ +asn_enc_rval_t +OCTET_STRING_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t er = { 0, 0, 0 }; + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + enum asn_OS_Subvariant type_variant = specs->subvariant; + int fix_last_byte = 0; + + ASN_DEBUG("%s %s as OCTET STRING", + cb?"Estimating":"Encoding", td->name); + + /* + * Write tags. + */ + if(type_variant != ASN_OSUBV_ANY || tag_mode == 1) { + er.encoded = der_write_tags(td, + (type_variant == ASN_OSUBV_BIT) + st->size, + tag_mode, type_variant == ASN_OSUBV_ANY, tag, + cb, app_key); + if(er.encoded == -1) { + er.failed_type = td; + er.structure_ptr = sptr; + return er; + } + } else { + /* Disallow: [] IMPLICIT ANY */ + assert(type_variant != ASN_OSUBV_ANY || tag_mode != -1); + er.encoded = 0; + } + + if(!cb) { + er.encoded += (type_variant == ASN_OSUBV_BIT) + st->size; + ASN__ENCODED_OK(er); + } + + /* + * Prepare to deal with the last octet of BIT STRING. + */ + if(type_variant == ASN_OSUBV_BIT) { + uint8_t b = st->bits_unused & 0x07; + if(b && st->size) fix_last_byte = 1; + ASN__CALLBACK(&b, 1); + } + + /* Invoke callback for the main part of the buffer */ + ASN__CALLBACK(st->buf, st->size - fix_last_byte); + + /* The last octet should be stripped off the unused bits */ + if(fix_last_byte) { + uint8_t b = st->buf[st->size-1] & (0xff << st->bits_unused); + ASN__CALLBACK(&b, 1); + } + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} + +asn_enc_rval_t +OCTET_STRING_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const char * const h2c = "0123456789ABCDEF"; + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + char scratch[16 * 3 + 4]; + char *p = scratch; + uint8_t *buf; + uint8_t *end; + size_t i; + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + er.encoded = 0; + + /* + * Dump the contents of the buffer in hexadecimal. + */ + buf = st->buf; + end = buf + st->size; + if(flags & XER_F_CANONICAL) { + char *scend = scratch + (sizeof(scratch) - 2); + for(; buf < end; buf++) { + if(p >= scend) { + ASN__CALLBACK(scratch, p - scratch); + p = scratch; + } + *p++ = h2c[(*buf >> 4) & 0x0F]; + *p++ = h2c[*buf & 0x0F]; + } + + ASN__CALLBACK(scratch, p-scratch); /* Dump the rest */ + } else { + for(i = 0; buf < end; buf++, i++) { + if(!(i % 16) && (i || st->size > 16)) { + ASN__CALLBACK(scratch, p-scratch); + p = scratch; + ASN__TEXT_INDENT(1, ilevel); + } + *p++ = h2c[(*buf >> 4) & 0x0F]; + *p++ = h2c[*buf & 0x0F]; + *p++ = 0x20; + } + if(p - scratch) { + p--; /* Remove the tail space */ + ASN__CALLBACK(scratch, p-scratch); /* Dump the rest */ + if(st->size > 16) + ASN__TEXT_INDENT(1, ilevel-1); + } + } + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} + +static const struct OCTET_STRING__xer_escape_table_s { + const char *string; + int size; +} OCTET_STRING__xer_escape_table[] = { +#define OSXET(s) { s, sizeof(s) - 1 } + OSXET("\074\156\165\154\057\076"), /* */ + OSXET("\074\163\157\150\057\076"), /* */ + OSXET("\074\163\164\170\057\076"), /* */ + OSXET("\074\145\164\170\057\076"), /* */ + OSXET("\074\145\157\164\057\076"), /* */ + OSXET("\074\145\156\161\057\076"), /* */ + OSXET("\074\141\143\153\057\076"), /* */ + OSXET("\074\142\145\154\057\076"), /* */ + OSXET("\074\142\163\057\076"), /* */ + OSXET("\011"), /* \t */ + OSXET("\012"), /* \n */ + OSXET("\074\166\164\057\076"), /* */ + OSXET("\074\146\146\057\076"), /* */ + OSXET("\015"), /* \r */ + OSXET("\074\163\157\057\076"), /* */ + OSXET("\074\163\151\057\076"), /* */ + OSXET("\074\144\154\145\057\076"), /* */ + OSXET("\074\144\143\061\057\076"), /* */ + OSXET("\074\144\143\062\057\076"), /* */ + OSXET("\074\144\143\063\057\076"), /* */ + OSXET("\074\144\143\064\057\076"), /* */ + OSXET("\074\156\141\153\057\076"), /* */ + OSXET("\074\163\171\156\057\076"), /* */ + OSXET("\074\145\164\142\057\076"), /* */ + OSXET("\074\143\141\156\057\076"), /* */ + OSXET("\074\145\155\057\076"), /* */ + OSXET("\074\163\165\142\057\076"), /* */ + OSXET("\074\145\163\143\057\076"), /* */ + OSXET("\074\151\163\064\057\076"), /* */ + OSXET("\074\151\163\063\057\076"), /* */ + OSXET("\074\151\163\062\057\076"), /* */ + OSXET("\074\151\163\061\057\076"), /* */ + { 0, 0 }, /* " " */ + { 0, 0 }, /* ! */ + { 0, 0 }, /* \" */ + { 0, 0 }, /* # */ + { 0, 0 }, /* $ */ + { 0, 0 }, /* % */ + OSXET("\046\141\155\160\073"), /* & */ + { 0, 0 }, /* ' */ + {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* ()*+,-./ */ + {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* 01234567 */ + {0,0},{0,0},{0,0},{0,0}, /* 89:; */ + OSXET("\046\154\164\073"), /* < */ + { 0, 0 }, /* = */ + OSXET("\046\147\164\073"), /* > */ +}; + +static int +OS__check_escaped_control_char(const void *buf, int size) { + size_t i; + /* + * Inefficient algorithm which translates the escape sequences + * defined above into characters. Returns -1 if not found. + * TODO: replace by a faster algorithm (bsearch(), hash or + * nested table lookups). + */ + for(i = 0; i < 32 /* Don't spend time on the bottom half */; i++) { + const struct OCTET_STRING__xer_escape_table_s *el; + el = &OCTET_STRING__xer_escape_table[i]; + if(el->size == size && memcmp(buf, el->string, size) == 0) + return i; + } + return -1; +} + +static int +OCTET_STRING__handle_control_chars(void *struct_ptr, const void *chunk_buf, size_t chunk_size) { + /* + * This might be one of the escape sequences + * for control characters. Check it out. + * #11.15.5 + */ + int control_char = OS__check_escaped_control_char(chunk_buf,chunk_size); + if(control_char >= 0) { + OCTET_STRING_t *st = (OCTET_STRING_t *)struct_ptr; + void *p = REALLOC(st->buf, st->size + 2); + if(p) { + st->buf = (uint8_t *)p; + st->buf[st->size++] = control_char; + st->buf[st->size] = '\0'; /* nul-termination */ + return 0; + } + } + + return -1; /* No, it's not */ +} + +asn_enc_rval_t +OCTET_STRING_encode_xer_utf8(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + uint8_t *buf, *end; + uint8_t *ss; /* Sequence start */ + ssize_t encoded_len = 0; + + (void)ilevel; /* Unused argument */ + (void)flags; /* Unused argument */ + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + buf = st->buf; + end = buf + st->size; + for(ss = buf; buf < end; buf++) { + unsigned int ch = *buf; + int s_len; /* Special encoding sequence length */ + + /* + * Escape certain characters: X.680/11.15 + */ + if(ch < sizeof(OCTET_STRING__xer_escape_table) + /sizeof(OCTET_STRING__xer_escape_table[0]) + && (s_len = OCTET_STRING__xer_escape_table[ch].size)) { + if(((buf - ss) && cb(ss, buf - ss, app_key) < 0) + || cb(OCTET_STRING__xer_escape_table[ch].string, s_len, + app_key) < 0) + ASN__ENCODE_FAILED; + encoded_len += (buf - ss) + s_len; + ss = buf + 1; + } + } + + encoded_len += (buf - ss); + if((buf - ss) && cb(ss, buf - ss, app_key) < 0) + ASN__ENCODE_FAILED; + + er.encoded = encoded_len; + ASN__ENCODED_OK(er); +} + +/* + * Convert from hexadecimal format (cstring): "AB CD EF" + */ +static ssize_t OCTET_STRING__convert_hexadecimal(void *sptr, const void *chunk_buf, size_t chunk_size, int have_more) { + OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; + const char *chunk_stop = (const char *)chunk_buf; + const char *p = chunk_stop; + const char *pend = p + chunk_size; + unsigned int clv = 0; + int half = 0; /* Half bit */ + uint8_t *buf; + + /* Reallocate buffer according to high cap estimation */ + size_t new_size = st->size + (chunk_size + 1) / 2; + void *nptr = REALLOC(st->buf, new_size + 1); + if(!nptr) return -1; + st->buf = (uint8_t *)nptr; + buf = st->buf + st->size; + + /* + * If something like " a b c " appears here, the " a b":3 will be + * converted, and the rest skipped. That is, unless buf_size is greater + * than chunk_size, then it'll be equivalent to "ABC0". + */ + for(; p < pend; p++) { + int ch = *(const unsigned char *)p; + switch(ch) { + case 0x09: case 0x0a: case 0x0c: case 0x0d: + case 0x20: + /* Ignore whitespace */ + continue; + case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: /*01234*/ + case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: /*56789*/ + clv = (clv << 4) + (ch - 0x30); + break; + case 0x41: case 0x42: case 0x43: /* ABC */ + case 0x44: case 0x45: case 0x46: /* DEF */ + clv = (clv << 4) + (ch - 0x41 + 10); + break; + case 0x61: case 0x62: case 0x63: /* abc */ + case 0x64: case 0x65: case 0x66: /* def */ + clv = (clv << 4) + (ch - 0x61 + 10); + break; + default: + *buf = 0; /* JIC */ + return -1; + } + if(half++) { + half = 0; + *buf++ = clv; + chunk_stop = p + 1; + } + } + + /* + * Check partial decoding. + */ + if(half) { + if(have_more) { + /* + * Partial specification is fine, + * because no more more PXER_TEXT data is available. + */ + *buf++ = clv << 4; + chunk_stop = p; + } + } else { + chunk_stop = p; + } + + st->size = buf - st->buf; /* Adjust the buffer size */ + assert(st->size <= new_size); + st->buf[st->size] = 0; /* Courtesy termination */ + + return (chunk_stop - (const char *)chunk_buf); /* Converted size */ +} + +/* + * Convert from binary format: "00101011101" + */ +static ssize_t OCTET_STRING__convert_binary(void *sptr, const void *chunk_buf, size_t chunk_size, int have_more) { + BIT_STRING_t *st = (BIT_STRING_t *)sptr; + const char *p = (const char *)chunk_buf; + const char *pend = p + chunk_size; + int bits_unused = st->bits_unused & 0x7; + uint8_t *buf; + + /* Reallocate buffer according to high cap estimation */ + size_t new_size = st->size + (chunk_size + 7) / 8; + void *nptr = REALLOC(st->buf, new_size + 1); + if(!nptr) return -1; + st->buf = (uint8_t *)nptr; + buf = st->buf + st->size; + + (void)have_more; + + if(bits_unused == 0) + bits_unused = 8; + else if(st->size) + buf--; + + /* + * Convert series of 0 and 1 into the octet string. + */ + for(; p < pend; p++) { + int ch = *(const unsigned char *)p; + switch(ch) { + case 0x09: case 0x0a: case 0x0c: case 0x0d: + case 0x20: + /* Ignore whitespace */ + break; + case 0x30: + case 0x31: + if(bits_unused-- <= 0) { + *++buf = 0; /* Clean the cell */ + bits_unused = 7; + } + *buf |= (ch&1) << bits_unused; + break; + default: + st->bits_unused = bits_unused; + return -1; + } + } + + if(bits_unused == 8) { + st->size = buf - st->buf; + st->bits_unused = 0; + } else { + st->size = buf - st->buf + 1; + st->bits_unused = bits_unused; + } + + assert(st->size <= new_size); + st->buf[st->size] = 0; /* Courtesy termination */ + + return chunk_size; /* Converted in full */ +} + +/* + * Something like strtod(), but with stricter rules. + */ +static int +OS__strtoent(int base, const char *buf, const char *end, int32_t *ret_value) { + const int32_t last_unicode_codepoint = 0x10ffff; + int32_t val = 0; + const char *p; + + for(p = buf; p < end; p++) { + int ch = *p; + + switch(ch) { + case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: /*01234*/ + case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: /*56789*/ + val = val * base + (ch - 0x30); + break; + case 0x41: case 0x42: case 0x43: /* ABC */ + case 0x44: case 0x45: case 0x46: /* DEF */ + val = val * base + (ch - 0x41 + 10); + break; + case 0x61: case 0x62: case 0x63: /* abc */ + case 0x64: case 0x65: case 0x66: /* def */ + val = val * base + (ch - 0x61 + 10); + break; + case 0x3b: /* ';' */ + *ret_value = val; + return (p - buf) + 1; + default: + return -1; /* Character set error */ + } + + /* Value exceeds the Unicode range. */ + if(val > last_unicode_codepoint) { + return -1; + } + } + + *ret_value = -1; + return (p - buf); +} + +/* + * Convert from the plain UTF-8 format, expanding entity references: "2 < 3" + */ +static ssize_t +OCTET_STRING__convert_entrefs(void *sptr, const void *chunk_buf, + size_t chunk_size, int have_more) { + OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; + const char *p = (const char *)chunk_buf; + const char *pend = p + chunk_size; + uint8_t *buf; + + /* Reallocate buffer */ + size_t new_size = st->size + chunk_size; + void *nptr = REALLOC(st->buf, new_size + 1); + if(!nptr) return -1; + st->buf = (uint8_t *)nptr; + buf = st->buf + st->size; + + /* + * Convert series of 0 and 1 into the octet string. + */ + for(; p < pend; p++) { + int ch = *(const unsigned char *)p; + int len; /* Length of the rest of the chunk */ + + if(ch != 0x26 /* '&' */) { + *buf++ = ch; + continue; /* That was easy... */ + } + + /* + * Process entity reference. + */ + len = chunk_size - (p - (const char *)chunk_buf); + if(len == 1 /* "&" */) goto want_more; + if(p[1] == 0x23 /* '#' */) { + const char *pval; /* Pointer to start of digits */ + int32_t val = 0; /* Entity reference value */ + int base; + + if(len == 2 /* "&#" */) goto want_more; + if(p[2] == 0x78 /* 'x' */) + pval = p + 3, base = 16; + else + pval = p + 2, base = 10; + len = OS__strtoent(base, pval, p + len, &val); + if(len == -1) { + /* Invalid charset. Just copy verbatim. */ + *buf++ = ch; + continue; + } + if(!len || pval[len-1] != 0x3b) goto want_more; + assert(val > 0); + p += (pval - p) + len - 1; /* Advance past entref */ + + if(val < 0x80) { + *buf++ = (char)val; + } else if(val < 0x800) { + *buf++ = 0xc0 | ((val >> 6)); + *buf++ = 0x80 | ((val & 0x3f)); + } else if(val < 0x10000) { + *buf++ = 0xe0 | ((val >> 12)); + *buf++ = 0x80 | ((val >> 6) & 0x3f); + *buf++ = 0x80 | ((val & 0x3f)); + } else if(val < 0x200000) { + *buf++ = 0xf0 | ((val >> 18)); + *buf++ = 0x80 | ((val >> 12) & 0x3f); + *buf++ = 0x80 | ((val >> 6) & 0x3f); + *buf++ = 0x80 | ((val & 0x3f)); + } else if(val < 0x4000000) { + *buf++ = 0xf8 | ((val >> 24)); + *buf++ = 0x80 | ((val >> 18) & 0x3f); + *buf++ = 0x80 | ((val >> 12) & 0x3f); + *buf++ = 0x80 | ((val >> 6) & 0x3f); + *buf++ = 0x80 | ((val & 0x3f)); + } else { + *buf++ = 0xfc | ((val >> 30) & 0x1); + *buf++ = 0x80 | ((val >> 24) & 0x3f); + *buf++ = 0x80 | ((val >> 18) & 0x3f); + *buf++ = 0x80 | ((val >> 12) & 0x3f); + *buf++ = 0x80 | ((val >> 6) & 0x3f); + *buf++ = 0x80 | ((val & 0x3f)); + } + } else { + /* + * Ugly, limited parsing of & > < + */ + char *sc = (char *)memchr(p, 0x3b, len > 5 ? 5 : len); + if(!sc) goto want_more; + if((sc - p) == 4 + && p[1] == 0x61 /* 'a' */ + && p[2] == 0x6d /* 'm' */ + && p[3] == 0x70 /* 'p' */) { + *buf++ = 0x26; + p = sc; + continue; + } + if((sc - p) == 3) { + if(p[1] == 0x6c) { + *buf = 0x3c; /* '<' */ + } else if(p[1] == 0x67) { + *buf = 0x3e; /* '>' */ + } else { + /* Unsupported entity reference */ + *buf++ = ch; + continue; + } + if(p[2] != 0x74) { + /* Unsupported entity reference */ + *buf++ = ch; + continue; + } + buf++; + p = sc; + continue; + } + /* Unsupported entity reference */ + *buf++ = ch; + } + + continue; + want_more: + if(have_more) { + /* + * We know that no more data (of the same type) + * is coming. Copy the rest verbatim. + */ + *buf++ = ch; + continue; + } + chunk_size = (p - (const char *)chunk_buf); + /* Processing stalled: need more data */ + break; + } + + st->size = buf - st->buf; + assert(st->size <= new_size); + st->buf[st->size] = 0; /* Courtesy termination */ + + return chunk_size; /* Converted in full */ +} + +/* + * Decode OCTET STRING from the XML element's body. + */ +static asn_dec_rval_t +OCTET_STRING__decode_xer( + const asn_codec_ctx_t *opt_codec_ctx, const asn_TYPE_descriptor_t *td, + void **sptr, const char *opt_mname, const void *buf_ptr, size_t size, + int (*opt_unexpected_tag_decoder)(void *struct_ptr, const void *chunk_buf, + size_t chunk_size), + ssize_t (*body_receiver)(void *struct_ptr, const void *chunk_buf, + size_t chunk_size, int have_more)) { + OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; + asn_struct_ctx_t *ctx; /* Per-structure parser context */ + asn_dec_rval_t rval; /* Return value from the decoder */ + int st_allocated; + + /* + * Create the string if does not exist. + */ + if(!st) { + st = (OCTET_STRING_t *)CALLOC(1, specs->struct_size); + *sptr = (void *)st; + if(!st) goto sta_failed; + st_allocated = 1; + } else { + st_allocated = 0; + } + if(!st->buf) { + /* This is separate from above section */ + st->buf = (uint8_t *)CALLOC(1, 1); + if(!st->buf) { + if(st_allocated) { + *sptr = 0; + goto stb_failed; + } else { + goto sta_failed; + } + } + } + + /* Restore parsing context */ + ctx = (asn_struct_ctx_t *)(((char *)*sptr) + specs->ctx_offset); + + return xer_decode_general(opt_codec_ctx, ctx, *sptr, xml_tag, + buf_ptr, size, opt_unexpected_tag_decoder, body_receiver); + +stb_failed: + FREEMEM(st); +sta_failed: + rval.code = RC_FAIL; + rval.consumed = 0; + return rval; +} + +/* + * Decode OCTET STRING from the hexadecimal data. + */ +asn_dec_rval_t +OCTET_STRING_decode_xer_hex(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, + size_t size) { + return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, + buf_ptr, size, 0, OCTET_STRING__convert_hexadecimal); +} + +/* + * Decode OCTET STRING from the binary (0/1) data. + */ +asn_dec_rval_t +OCTET_STRING_decode_xer_binary(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, + size_t size) { + return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, + buf_ptr, size, 0, OCTET_STRING__convert_binary); +} + +/* + * Decode OCTET STRING from the string (ASCII/UTF-8) data. + */ +asn_dec_rval_t +OCTET_STRING_decode_xer_utf8(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const char *opt_mname, const void *buf_ptr, + size_t size) { + return OCTET_STRING__decode_xer(opt_codec_ctx, td, sptr, opt_mname, + buf_ptr, size, + OCTET_STRING__handle_control_chars, + OCTET_STRING__convert_entrefs); +} + +#ifndef ASN_DISABLE_PER_SUPPORT + +static int +OCTET_STRING_per_get_characters(asn_per_data_t *po, uint8_t *buf, + size_t units, unsigned int bpc, unsigned int unit_bits, + long lb, long ub, const asn_per_constraints_t *pc) { + uint8_t *end = buf + units * bpc; + + ASN_DEBUG("Expanding %d characters into (%ld..%ld):%d", + (int)units, lb, ub, unit_bits); + + /* X.691: 27.5.4 */ + if((unsigned long)ub <= ((unsigned long)2 << (unit_bits - 1))) { + /* Decode without translation */ + lb = 0; + } else if(pc && pc->code2value) { + if(unit_bits > 16) + return 1; /* FATAL: can't have constrained + * UniversalString with more than + * 16 million code points */ + for(; buf < end; buf += bpc) { + int value; + int code = per_get_few_bits(po, unit_bits); + if(code < 0) return -1; /* WMORE */ + value = pc->code2value(code); + if(value < 0) { + ASN_DEBUG("Code %d (0x%02x) is" + " not in map (%ld..%ld)", + code, code, lb, ub); + return 1; /* FATAL */ + } + switch(bpc) { + case 1: *buf = value; break; + case 2: buf[0] = value >> 8; buf[1] = value; break; + case 4: buf[0] = value >> 24; buf[1] = value >> 16; + buf[2] = value >> 8; buf[3] = value; break; + } + } + return 0; + } + + /* Shortcut the no-op copying to the aligned structure */ + if(lb == 0 && (unit_bits == 8 * bpc)) { + return per_get_many_bits(po, buf, 0, unit_bits * units); + } + + for(; buf < end; buf += bpc) { + int32_t code = per_get_few_bits(po, unit_bits); + int32_t ch = code + lb; + if(code < 0) return -1; /* WMORE */ + if(ch > ub) { + ASN_DEBUG("Code %d is out of range (%ld..%ld)", + ch, lb, ub); + return 1; /* FATAL */ + } + switch(bpc) { + case 1: *buf = ch; break; + case 2: buf[0] = ch >> 8; buf[1] = ch; break; + case 4: buf[0] = ch >> 24; buf[1] = ch >> 16; + buf[2] = ch >> 8; buf[3] = ch; break; + } + } + + return 0; +} + +static int +OCTET_STRING_per_put_characters(asn_per_outp_t *po, const uint8_t *buf, + size_t units, unsigned int bpc, unsigned int unit_bits, + long lb, long ub, const asn_per_constraints_t *pc) { + const uint8_t *end = buf + units * bpc; + + ASN_DEBUG("Squeezing %d characters into (%ld..%ld):%d (%d bpc)", + (int)units, lb, ub, unit_bits, bpc); + + /* X.691: 27.5.4 */ + if((unsigned long)ub <= ((unsigned long)2 << (unit_bits - 1))) { + /* Encode as is */ + lb = 0; + } else if(pc && pc->value2code) { + for(; buf < end; buf += bpc) { + int code; + uint32_t value; + switch(bpc) { + case 1: value = *(const uint8_t *)buf; break; + case 2: value = (buf[0] << 8) | buf[1]; break; + case 4: value = (buf[0] << 24) | (buf[1] << 16) + | (buf[2] << 8) | buf[3]; break; + default: return -1; + } + code = pc->value2code(value); + if(code < 0) { + ASN_DEBUG("Character %d (0x%02x) is" + " not in map (%ld..%ld)", + *buf, *buf, lb, ub); + return -1; + } + if(per_put_few_bits(po, code, unit_bits)) + return -1; + } + } + + /* Shortcut the no-op copying to the aligned structure */ + if(lb == 0 && (unit_bits == 8 * bpc)) { + return per_put_many_bits(po, buf, unit_bits * units); + } + + for(ub -= lb; buf < end; buf += bpc) { + int ch; + uint32_t value; + switch(bpc) { + case 1: + value = *(const uint8_t *)buf; + break; + case 2: + value = (buf[0] << 8) | buf[1]; + break; + case 4: + value = (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3]; + break; + default: + return -1; + } + ch = value - lb; + if(ch < 0 || ch > ub) { + ASN_DEBUG("Character %d (0x%02x) is out of range (%ld..%ld)", *buf, + value, lb, ub + lb); + return -1; + } + if(per_put_few_bits(po, ch, unit_bits)) return -1; + } + + return 0; +} + +static asn_per_constraints_t asn_DEF_OCTET_STRING_constraints = { + { APC_CONSTRAINED, 8, 8, 0, 255 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, + 0, 0 +}; + +asn_dec_rval_t +OCTET_STRING_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const asn_per_constraints_t *pc = + constraints ? constraints : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *cval; + const asn_per_constraint_t *csiz; + asn_dec_rval_t rval = { RC_OK, 0 }; + OCTET_STRING_t *st = (OCTET_STRING_t *)*sptr; + ssize_t consumed_myself = 0; + int repeat; + enum { + OS__BPC_CHAR = 1, + OS__BPC_U16 = 2, + OS__BPC_U32 = 4 + } bpc; /* Bytes per character */ + unsigned int unit_bits; + unsigned int canonical_unit_bits; + + (void)opt_codec_ctx; + + if(pc) { + cval = &pc->value; + csiz = &pc->size; + } else { + cval = &asn_DEF_OCTET_STRING_constraints.value; + csiz = &asn_DEF_OCTET_STRING_constraints.size; + } + + switch(specs->subvariant) { + default: + case ASN_OSUBV_ANY: + case ASN_OSUBV_BIT: + ASN_DEBUG("Unrecognized subvariant %d", specs->subvariant); + RETURN(RC_FAIL); + break; + case ASN_OSUBV_STR: + canonical_unit_bits = unit_bits = 8; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_CHAR; + break; + case ASN_OSUBV_U16: + canonical_unit_bits = unit_bits = 16; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U16; + break; + case ASN_OSUBV_U32: + canonical_unit_bits = unit_bits = 32; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U32; + break; + } + + /* + * Allocate the string. + */ + if(!st) { + st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) RETURN(RC_FAIL); + } + + ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", + csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", + csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); + + if(csiz->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) RETURN(RC_WMORE); + if(inext) { + csiz = &asn_DEF_OCTET_STRING_constraints.size; + unit_bits = canonical_unit_bits; + } + } + + if(csiz->effective_bits >= 0) { + FREEMEM(st->buf); + if(bpc) { + st->size = csiz->upper_bound * bpc; + } else { + st->size = (csiz->upper_bound + 7) >> 3; + } + st->buf = (uint8_t *)MALLOC(st->size + 1); + if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } + } + + /* X.691, #16.5: zero-length encoding */ + /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ + /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ + if(csiz->effective_bits == 0) { + int ret; + if(bpc) { + ASN_DEBUG("Encoding OCTET STRING size %ld", + csiz->upper_bound); + ret = OCTET_STRING_per_get_characters(pd, st->buf, + csiz->upper_bound, bpc, unit_bits, + cval->lower_bound, cval->upper_bound, pc); + if(ret > 0) RETURN(RC_FAIL); + } else { + ASN_DEBUG("Encoding BIT STRING size %ld", + csiz->upper_bound); + ret = per_get_many_bits(pd, st->buf, 0, + unit_bits * csiz->upper_bound); + } + if(ret < 0) RETURN(RC_WMORE); + consumed_myself += unit_bits * csiz->upper_bound; + st->buf[st->size] = 0; + RETURN(RC_OK); + } + + st->size = 0; + do { + ssize_t raw_len; + ssize_t len_bytes; + void *p; + int ret; + + /* Get the PER length */ + raw_len = uper_get_length(pd, csiz->effective_bits, csiz->lower_bound, + &repeat); + if(raw_len < 0) RETURN(RC_WMORE); + if(raw_len == 0 && st->buf) break; + + ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", + (long)csiz->effective_bits, (long)raw_len, + repeat ? "repeat" : "once", td->name); + len_bytes = raw_len * bpc; + p = REALLOC(st->buf, st->size + len_bytes + 1); + if(!p) RETURN(RC_FAIL); + st->buf = (uint8_t *)p; + + ret = OCTET_STRING_per_get_characters(pd, &st->buf[st->size], raw_len, + bpc, unit_bits, cval->lower_bound, + cval->upper_bound, pc); + if(ret > 0) RETURN(RC_FAIL); + if(ret < 0) RETURN(RC_WMORE); + st->size += len_bytes; + } while(repeat); + st->buf[st->size] = 0; /* nul-terminate */ + + return rval; +} + +asn_enc_rval_t +OCTET_STRING_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const asn_per_constraints_t *pc = constraints ? constraints + : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *cval; + const asn_per_constraint_t *csiz; + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + int inext = 0; /* Lies not within extension root */ + unsigned int unit_bits; + unsigned int canonical_unit_bits; + size_t size_in_units; + const uint8_t *buf; + int ret; + enum { + OS__BPC_CHAR = 1, + OS__BPC_U16 = 2, + OS__BPC_U32 = 4 + } bpc; /* Bytes per character */ + int ct_extensible; + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + if(pc) { + cval = &pc->value; + csiz = &pc->size; + } else { + cval = &asn_DEF_OCTET_STRING_constraints.value; + csiz = &asn_DEF_OCTET_STRING_constraints.size; + } + ct_extensible = csiz->flags & APC_EXTENSIBLE; + + switch(specs->subvariant) { + default: + case ASN_OSUBV_ANY: + case ASN_OSUBV_BIT: + ASN__ENCODE_FAILED; + case ASN_OSUBV_STR: + canonical_unit_bits = unit_bits = 8; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_CHAR; + size_in_units = st->size; + break; + case ASN_OSUBV_U16: + canonical_unit_bits = unit_bits = 16; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U16; + size_in_units = st->size >> 1; + if(st->size & 1) { + ASN_DEBUG("%s string size is not modulo 2", td->name); + ASN__ENCODE_FAILED; + } + break; + case ASN_OSUBV_U32: + canonical_unit_bits = unit_bits = 32; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U32; + size_in_units = st->size >> 2; + if(st->size & 3) { + ASN_DEBUG("%s string size is not modulo 4", td->name); + ASN__ENCODE_FAILED; + } + break; + } + + ASN_DEBUG("Encoding %s into %" ASN_PRI_SIZE " units of %d bits" + " (%ld..%ld, effective %d)%s", + td->name, size_in_units, unit_bits, + csiz->lower_bound, csiz->upper_bound, + csiz->effective_bits, ct_extensible ? " EXT" : ""); + + /* Figure out whether size lies within PER visible constraint */ + + if(csiz->effective_bits >= 0) { + if((ssize_t)size_in_units < csiz->lower_bound + || (ssize_t)size_in_units > csiz->upper_bound) { + if(ct_extensible) { + csiz = &asn_DEF_OCTET_STRING_constraints.size; + unit_bits = canonical_unit_bits; + inext = 1; + } else { + ASN__ENCODE_FAILED; + } + } + } else { + inext = 0; + } + + if(ct_extensible) { + /* Declare whether length is [not] within extension root */ + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + } + + if(csiz->effective_bits >= 0 && !inext) { + ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes (%ld), length in %d bits", st->size, + size_in_units - csiz->lower_bound, csiz->effective_bits); + ret = per_put_few_bits(po, size_in_units - csiz->lower_bound, + csiz->effective_bits); + if(ret) ASN__ENCODE_FAILED; + ret = OCTET_STRING_per_put_characters(po, st->buf, size_in_units, bpc, + unit_bits, cval->lower_bound, + cval->upper_bound, pc); + if(ret) ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + ASN_DEBUG("Encoding %" ASN_PRI_SIZE " bytes", st->size); + + buf = st->buf; + ASN_DEBUG("Encoding %" ASN_PRI_SIZE " in units", size_in_units); + do { + int need_eom = 0; + ssize_t may_save = uper_put_length(po, size_in_units, &need_eom); + if(may_save < 0) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %" ASN_PRI_SSIZE " of %" ASN_PRI_SIZE "%s", may_save, size_in_units, + need_eom ? ",+EOM" : ""); + + ret = OCTET_STRING_per_put_characters(po, buf, may_save, bpc, unit_bits, + cval->lower_bound, + cval->upper_bound, pc); + if(ret) ASN__ENCODE_FAILED; + + buf += may_save * bpc; + size_in_units -= may_save; + assert(!(may_save & 0x07) || !size_in_units); + if(need_eom && uper_put_length(po, 0, 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + } while(size_in_units); + + ASN__ENCODED_OK(er); +} + +asn_dec_rval_t +OCTET_STRING_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd) { + + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const asn_per_constraints_t *pc = constraints ? constraints + : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *cval; + const asn_per_constraint_t *csiz; + asn_dec_rval_t rval = { RC_OK, 0 }; + BIT_STRING_t *st = (BIT_STRING_t *)*sptr; + ssize_t consumed_myself = 0; + int repeat; + enum { + OS__BPC_BIT = 0, + OS__BPC_CHAR = 1, + OS__BPC_U16 = 2, + OS__BPC_U32 = 4 + } bpc; /* Bytes per character */ + unsigned int unit_bits; + unsigned int canonical_unit_bits; + + (void)opt_codec_ctx; + + if(pc) { + cval = &pc->value; + csiz = &pc->size; + } else { + cval = &asn_DEF_OCTET_STRING_constraints.value; + csiz = &asn_DEF_OCTET_STRING_constraints.size; + } + + switch(specs->subvariant) { + default: +/* case ASN_OSUBV_ANY: + ASN_DEBUG("Unrecognized subvariant %d", specs->subvariant); + RETURN(RC_FAIL); +*/ + case ASN_OSUBV_BIT: + canonical_unit_bits = unit_bits = 1; + bpc = OS__BPC_BIT; + break; + case ASN_OSUBV_ANY: + case ASN_OSUBV_STR: + canonical_unit_bits = unit_bits = 8; +/* if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; +*/ + bpc = OS__BPC_CHAR; + break; + case ASN_OSUBV_U16: + canonical_unit_bits = unit_bits = 16; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U16; + break; + case ASN_OSUBV_U32: + canonical_unit_bits = unit_bits = 32; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U32; + break; + } + + /* + * Allocate the string. + */ + if(!st) { + st = (BIT_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) RETURN(RC_FAIL); + } + + ASN_DEBUG("PER Decoding %s size %ld .. %ld bits %d", + csiz->flags & APC_EXTENSIBLE ? "extensible" : "non-extensible", + csiz->lower_bound, csiz->upper_bound, csiz->effective_bits); + + if(csiz->flags & APC_EXTENSIBLE) { + int inext = per_get_few_bits(pd, 1); + if(inext < 0) RETURN(RC_WMORE); + if(inext) { + csiz = &asn_DEF_OCTET_STRING_constraints.size; + cval = &asn_DEF_OCTET_STRING_constraints.value; + unit_bits = canonical_unit_bits; + } + } + + if(csiz->effective_bits >= 0) { + FREEMEM(st->buf); + if(bpc) { + st->size = csiz->upper_bound * bpc; + } else { + st->size = (csiz->upper_bound + 7) >> 3; + } + st->buf = (uint8_t *)MALLOC(st->size + 1); + if(!st->buf) { st->size = 0; RETURN(RC_FAIL); } + } + + /* X.691, #16.5: zero-length encoding */ + /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ + /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ + if(csiz->effective_bits == 0) { + int ret; + if (st->size > 2) { /* X.691 #16 NOTE 1 */ + if (aper_get_align(pd) < 0) + RETURN(RC_FAIL); + } + if(bpc) { + ASN_DEBUG("Decoding OCTET STRING size %ld", + csiz->upper_bound); + ret = OCTET_STRING_per_get_characters(pd, st->buf, + csiz->upper_bound, bpc, unit_bits, + cval->lower_bound, cval->upper_bound, pc); + if(ret > 0) RETURN(RC_FAIL); + } else { + ASN_DEBUG("Decoding BIT STRING size %ld", + csiz->upper_bound); + ret = per_get_many_bits(pd, st->buf, 0, + unit_bits * csiz->upper_bound); + } + if(ret < 0) RETURN(RC_WMORE); + consumed_myself += unit_bits * csiz->upper_bound; + st->buf[st->size] = 0; + if(bpc == 0) { + int ubs = (csiz->upper_bound & 0x7); + st->bits_unused = ubs ? 8 - ubs : 0; + } + RETURN(RC_OK); + } + + st->size = 0; + do { + ssize_t raw_len; + ssize_t len_bytes; + ssize_t len_bits; + void *p; + int ret; + + /* Get the PER length */ + if (csiz->upper_bound - csiz->lower_bound == 0) + /* Indefinite length case */ + raw_len = aper_get_length(pd, -1, csiz->effective_bits, &repeat); + else + raw_len = aper_get_length(pd, csiz->upper_bound - csiz->lower_bound + 1, csiz->effective_bits, &repeat); + repeat = 0; + if(raw_len < 0) RETURN(RC_WMORE); + raw_len += csiz->lower_bound; + + ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)", + (long)csiz->effective_bits, (long)raw_len, + repeat ? "repeat" : "once", td->name); + + if (raw_len > 2) { /* X.691 #16 NOTE 1 */ + if (aper_get_align(pd) < 0) + RETURN(RC_FAIL); + } + + if(bpc) { + len_bytes = raw_len * bpc; + len_bits = len_bytes * unit_bits; + } else { + len_bits = raw_len; + len_bytes = (len_bits + 7) >> 3; + if(len_bits & 0x7) + st->bits_unused = 8 - (len_bits & 0x7); + /* len_bits be multiple of 16K if repeat is set */ + } + p = REALLOC(st->buf, st->size + len_bytes + 1); + if(!p) RETURN(RC_FAIL); + st->buf = (uint8_t *)p; + + if(bpc) { + ret = OCTET_STRING_per_get_characters(pd, + &st->buf[st->size], raw_len, bpc, unit_bits, + cval->lower_bound, cval->upper_bound, pc); + if(ret > 0) RETURN(RC_FAIL); + } else { + ret = per_get_many_bits(pd, &st->buf[st->size], + 0, len_bits); + } + if(ret < 0) RETURN(RC_WMORE); + st->size += len_bytes; + } while(repeat); + st->buf[st->size] = 0; /* nul-terminate */ + + return rval; +} + +asn_enc_rval_t +OCTET_STRING_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + const asn_per_constraints_t *pc = constraints ? constraints + : td->encoding_constraints.per_constraints; + const asn_per_constraint_t *cval; + const asn_per_constraint_t *csiz; + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + asn_enc_rval_t er = { 0, 0, 0 }; + int inext = 0; /* Lies not within extension root */ + unsigned int unit_bits; + unsigned int canonical_unit_bits; + unsigned int sizeinunits; + const uint8_t *buf; + int ret; + enum { + OS__BPC_BIT = 0, + OS__BPC_CHAR = 1, + OS__BPC_U16 = 2, + OS__BPC_U32 = 4 + } bpc; /* Bytes per character */ + int ct_extensible; + + if(!st || (!st->buf && st->size)) + ASN__ENCODE_FAILED; + + if(pc) { + cval = &pc->value; + csiz = &pc->size; + } else { + cval = &asn_DEF_OCTET_STRING_constraints.value; + csiz = &asn_DEF_OCTET_STRING_constraints.size; + } + ct_extensible = csiz->flags & APC_EXTENSIBLE; + + switch(specs->subvariant) { + default: + /* case ASN_OSUBV_ANY: + ASN__ENCODE_FAILED; + */ + case ASN_OSUBV_BIT: + canonical_unit_bits = unit_bits = 1; + bpc = OS__BPC_BIT; + sizeinunits = st->size * 8 - (st->bits_unused & 0x07); + ASN_DEBUG("BIT STRING of %d bytes", + sizeinunits); + break; + case ASN_OSUBV_ANY: + case ASN_OSUBV_STR: + canonical_unit_bits = unit_bits = 8; +/* if(cval->flags & APC_CONSTRAINED) + unit_bits = 8; +*/ + bpc = OS__BPC_CHAR; + sizeinunits = st->size; + break; + case ASN_OSUBV_U16: + canonical_unit_bits = unit_bits = 16; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U16; + sizeinunits = st->size / 2; + break; + case ASN_OSUBV_U32: + canonical_unit_bits = unit_bits = 32; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_U32; + sizeinunits = st->size / 4; + break; + } + + ASN_DEBUG("Encoding %s into %d units of %d bits" + " (%ld..%ld, effective %d)%s", + td->name, sizeinunits, unit_bits, + csiz->lower_bound, csiz->upper_bound, + csiz->effective_bits, ct_extensible ? " EXT" : ""); + + /* Figure out wheter size lies within PER visible constraint */ + + if(csiz->effective_bits >= 0) { + if((int)sizeinunits < csiz->lower_bound + || (int)sizeinunits > csiz->upper_bound) { + if(ct_extensible) { + cval = &asn_DEF_OCTET_STRING_constraints.value; + csiz = &asn_DEF_OCTET_STRING_constraints.size; + unit_bits = canonical_unit_bits; + inext = 1; + } else + ASN__ENCODE_FAILED; + } + } else { + inext = 0; + } + + + if(ct_extensible) { + /* Declare whether length is [not] within extension root */ + if(per_put_few_bits(po, inext, 1)) + ASN__ENCODE_FAILED; + } + + /* X.691, #16.5: zero-length encoding */ + /* X.691, #16.6: short fixed length encoding (up to 2 octets) */ + /* X.691, #16.7: long fixed length encoding (up to 64K octets) */ + if(csiz->effective_bits >= 0) { + ASN_DEBUG("Encoding %lu bytes (%ld), length in %d bits", + st->size, sizeinunits - csiz->lower_bound, + csiz->effective_bits); + if (csiz->effective_bits > 0) { + ret = aper_put_length(po, csiz->upper_bound - csiz->lower_bound + 1, sizeinunits - csiz->lower_bound); + if(ret) ASN__ENCODE_FAILED; + } + if (st->size > 2) { /* X.691 #16 NOTE 1 */ + if (aper_put_align(po) < 0) + ASN__ENCODE_FAILED; + } + if(bpc) { + ret = OCTET_STRING_per_put_characters(po, st->buf, + sizeinunits, bpc, unit_bits, + cval->lower_bound, cval->upper_bound, pc); + } else { + ret = per_put_many_bits(po, st->buf, + sizeinunits * unit_bits); + } + if(ret) ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + ASN_DEBUG("Encoding %lu bytes", st->size); + + if(sizeinunits == 0) { + if(aper_put_length(po, -1, 0)) + ASN__ENCODE_FAILED; + ASN__ENCODED_OK(er); + } + + buf = st->buf; + while(sizeinunits) { + ssize_t maySave = aper_put_length(po, -1, sizeinunits); + + if(maySave < 0) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %ld of %ld", + (long)maySave, (long)sizeinunits); + + if(bpc) { + ret = OCTET_STRING_per_put_characters(po, buf, + maySave, bpc, unit_bits, + cval->lower_bound, cval->upper_bound, pc); + } else { + ret = per_put_many_bits(po, buf, maySave * unit_bits); + } + if(ret) ASN__ENCODE_FAILED; + + if(bpc) + buf += maySave * bpc; + else + buf += maySave >> 3; + sizeinunits -= maySave; + assert(!(maySave & 0x07) || !sizeinunits); + } + + ASN__ENCODED_OK(er); +} + +#endif /* ASN_DISABLE_PER_SUPPORT */ + +int +OCTET_STRING_print(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + const char * const h2c = "0123456789ABCDEF"; + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + char scratch[16 * 3 + 4]; + char *p = scratch; + uint8_t *buf; + uint8_t *end; + size_t i; + + (void)td; /* Unused argument */ + + if(!st || (!st->buf && st->size)) + return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* + * Dump the contents of the buffer in hexadecimal. + */ + buf = st->buf; + end = buf + st->size; + for(i = 0; buf < end; buf++, i++) { + if(!(i % 16) && (i || st->size > 16)) { + if(cb(scratch, p - scratch, app_key) < 0) + return -1; + _i_INDENT(1); + p = scratch; + } + *p++ = h2c[(*buf >> 4) & 0x0F]; + *p++ = h2c[*buf & 0x0F]; + *p++ = 0x20; + } + + if(p > scratch) { + p--; /* Remove the tail space */ + if(cb(scratch, p - scratch, app_key) < 0) + return -1; + } + + return 0; +} + +int +OCTET_STRING_print_utf8(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, asn_app_consume_bytes_f *cb, + void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(st && (st->buf || !st->size)) { + return (cb(st->buf, st->size, app_key) < 0) ? -1 : 0; + } else { + return (cb("", 8, app_key) < 0) ? -1 : 0; + } +} + +void +OCTET_STRING_free(const asn_TYPE_descriptor_t *td, void *sptr, + enum asn_struct_free_method method) { + OCTET_STRING_t *st = (OCTET_STRING_t *)sptr; + const asn_OCTET_STRING_specifics_t *specs; + asn_struct_ctx_t *ctx; + struct _stack *stck; + + if(!td || !st) + return; + + specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + ASN_DEBUG("Freeing %s as OCTET STRING", td->name); + + if(st->buf) { + FREEMEM(st->buf); + st->buf = 0; + } + + /* + * Remove decode-time stack. + */ + stck = (struct _stack *)ctx->ptr; + if(stck) { + while(stck->tail) { + struct _stack_el *sel = stck->tail; + stck->tail = sel->prev; + FREEMEM(sel); + } + FREEMEM(stck); + } + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(sptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(sptr, 0, + td->specifics + ? ((const asn_OCTET_STRING_specifics_t *)(td->specifics)) + ->struct_size + : sizeof(OCTET_STRING_t)); + break; + } +} + +/* + * Conversion routines. + */ +int +OCTET_STRING_fromBuf(OCTET_STRING_t *st, const char *str, int len) { + void *buf; + + if(st == 0 || (str == 0 && len)) { + errno = EINVAL; + return -1; + } + + /* + * Clear the OCTET STRING. + */ + if(str == NULL) { + FREEMEM(st->buf); + st->buf = 0; + st->size = 0; + return 0; + } + + /* Determine the original string size, if not explicitly given */ + if(len < 0) + len = strlen(str); + + /* Allocate and fill the memory */ + buf = MALLOC(len + 1); + if(buf == NULL) + return -1; + + memcpy(buf, str, len); + ((uint8_t *)buf)[len] = '\0'; /* Couldn't use memcpy(len+1)! */ + FREEMEM(st->buf); + st->buf = (uint8_t *)buf; + st->size = len; + + return 0; +} + +OCTET_STRING_t * +OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td, const char *str, + int len) { + const asn_OCTET_STRING_specifics_t *specs = + td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + OCTET_STRING_t *st; + + st = (OCTET_STRING_t *)CALLOC(1, specs->struct_size); + if(st && str && OCTET_STRING_fromBuf(st, str, len)) { + FREEMEM(st); + st = NULL; + } + + return st; +} + +/* + * Lexicographically compare the common prefix of both strings, + * and if it is the same return -1 for the smallest string. + */ +int +OCTET_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics; + const OCTET_STRING_t *a = aptr; + const OCTET_STRING_t *b = bptr; + + assert(!specs || specs->subvariant != ASN_OSUBV_BIT); + + if(a && b) { + size_t common_prefix_size = a->size <= b->size ? a->size : b->size; + int ret = memcmp(a->buf, b->buf, common_prefix_size); + if(ret == 0) { + /* Figure out which string with equal prefixes is longer. */ + if(a->size < b->size) { + return -1; + } else if(a->size > b->size) { + return 1; + } else { + return 0; + } + } else { + return ret < 0 ? -1 : 1; + } + } else if(!a && !b) { + return 0; + } else if(!a) { + return -1; + } else { + return 1; + } + +} + +/* + * Biased function for randomizing character values around their limits. + */ +static uint32_t +OCTET_STRING__random_char(unsigned long lb, unsigned long ub) { + assert(lb <= ub); + switch(asn_random_between(0, 16)) { + case 0: + if(lb < ub) return lb + 1; + /* Fall through */ + case 1: + return lb; + case 2: + if(lb < ub) return ub - 1; + /* Fall through */ + case 3: + return ub; + default: + return asn_random_between(lb, ub); + } +} + + +size_t +OCTET_STRING_random_length_constrained( + const asn_TYPE_descriptor_t *td, + const asn_encoding_constraints_t *constraints, size_t max_length) { + const unsigned lengths[] = {0, 1, 2, 3, 4, 8, + 126, 127, 128, 16383, 16384, 16385, + 65534, 65535, 65536, 65537}; + size_t rnd_len; + + /* Figure out how far we should go */ + rnd_len = lengths[asn_random_between( + 0, sizeof(lengths) / sizeof(lengths[0]) - 1)]; + + if(!constraints || !constraints->per_constraints) + constraints = &td->encoding_constraints; + if(constraints->per_constraints) { + const asn_per_constraint_t *pc = &constraints->per_constraints->size; + if(pc->flags & APC_CONSTRAINED) { + long suggested_upper_bound = pc->upper_bound < (ssize_t)max_length + ? pc->upper_bound + : (ssize_t)max_length; + if(max_length <= (size_t)pc->lower_bound) { + return pc->lower_bound; + } + if(pc->flags & APC_EXTENSIBLE) { + switch(asn_random_between(0, 5)) { + case 0: + if(pc->lower_bound > 0) { + rnd_len = pc->lower_bound - 1; + break; + } + /* Fall through */ + case 1: + rnd_len = pc->upper_bound + 1; + break; + case 2: + /* Keep rnd_len from the table */ + if(rnd_len <= max_length) { + break; + } + /* Fall through */ + default: + rnd_len = asn_random_between(pc->lower_bound, + suggested_upper_bound); + } + } else { + rnd_len = + asn_random_between(pc->lower_bound, suggested_upper_bound); + } + } else { + rnd_len = asn_random_between(0, max_length); + } + } else if(rnd_len > max_length) { + rnd_len = asn_random_between(0, max_length); + } + + return rnd_len; +} + +asn_random_fill_result_t +OCTET_STRING_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + const asn_OCTET_STRING_specifics_t *specs = td->specifics + ? (const asn_OCTET_STRING_specifics_t *)td->specifics + : &asn_SPC_OCTET_STRING_specs; + asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + unsigned int unit_bytes = 1; + unsigned long clb = 0; /* Lower bound on char */ + unsigned long cub = 255; /* Higher bound on char value */ + uint8_t *buf; + uint8_t *bend; + uint8_t *b; + size_t rnd_len; + OCTET_STRING_t *st; + + if(max_length == 0 && !*sptr) return result_skipped; + + switch(specs->subvariant) { + default: + case ASN_OSUBV_ANY: + return result_failed; + case ASN_OSUBV_BIT: + /* Handled by BIT_STRING itself. */ + return result_failed; + case ASN_OSUBV_STR: + unit_bytes = 1; + clb = 0; + cub = 255; + break; + case ASN_OSUBV_U16: + unit_bytes = 2; + clb = 0; + cub = 65535; + break; + case ASN_OSUBV_U32: + unit_bytes = 4; + clb = 0; + cub = 0x10FFFF; + break; + } + + if(!constraints || !constraints->per_constraints) + constraints = &td->encoding_constraints; + if(constraints->per_constraints) { + const asn_per_constraint_t *pc = &constraints->per_constraints->value; + if(pc->flags & APC_SEMI_CONSTRAINED) { + clb = pc->lower_bound; + } else if(pc->flags & APC_CONSTRAINED) { + clb = pc->lower_bound; + cub = pc->upper_bound; + } + } + + rnd_len = + OCTET_STRING_random_length_constrained(td, constraints, max_length); + + buf = CALLOC(unit_bytes, rnd_len + 1); + if(!buf) return result_failed; + + bend = &buf[unit_bytes * rnd_len]; + + switch(unit_bytes) { + case 1: + for(b = buf; b < bend; b += unit_bytes) { + *(uint8_t *)b = OCTET_STRING__random_char(clb, cub); + } + *(uint8_t *)b = 0; + break; + case 2: + for(b = buf; b < bend; b += unit_bytes) { + uint32_t code = OCTET_STRING__random_char(clb, cub); + b[0] = code >> 8; + b[1] = code; + } + *(uint16_t *)b = 0; + break; + case 4: + for(b = buf; b < bend; b += unit_bytes) { + uint32_t code = OCTET_STRING__random_char(clb, cub); + b[0] = code >> 24; + b[1] = code >> 16; + b[2] = code >> 8; + b[3] = code; + } + *(uint32_t *)b = 0; + break; + } + + if(*sptr) { + st = *sptr; + FREEMEM(st->buf); + } else { + st = (OCTET_STRING_t *)(*sptr = CALLOC(1, specs->struct_size)); + if(!st) { + FREEMEM(buf); + return result_failed; + } + } + + st->buf = buf; + st->size = unit_bytes * rnd_len; + + result_ok.length = st->size; + return result_ok; +} diff --git a/src/du_app/F1AP/asn/OCTET_STRING.h b/src/du_app/F1AP/asn/OCTET_STRING.h new file mode 100755 index 000000000..c2f8baed1 --- /dev/null +++ b/src/du_app/F1AP/asn/OCTET_STRING.h @@ -0,0 +1,102 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _OCTET_STRING_H_ +#define _OCTET_STRING_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct OCTET_STRING { + uint8_t *buf; /* Buffer with consecutive OCTET_STRING bits */ + size_t size; /* Size of the buffer */ + + asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */ +} OCTET_STRING_t; + +extern asn_TYPE_descriptor_t asn_DEF_OCTET_STRING; +extern asn_TYPE_operation_t asn_OP_OCTET_STRING; + +asn_struct_free_f OCTET_STRING_free; +asn_struct_print_f OCTET_STRING_print; +asn_struct_print_f OCTET_STRING_print_utf8; +asn_struct_compare_f OCTET_STRING_compare; +ber_type_decoder_f OCTET_STRING_decode_ber; +der_type_encoder_f OCTET_STRING_encode_der; +xer_type_decoder_f OCTET_STRING_decode_xer_hex; /* Hexadecimal */ +xer_type_decoder_f OCTET_STRING_decode_xer_binary; /* 01010111010 */ +xer_type_decoder_f OCTET_STRING_decode_xer_utf8; /* ASCII/UTF-8 */ +xer_type_encoder_f OCTET_STRING_encode_xer; +xer_type_encoder_f OCTET_STRING_encode_xer_utf8; +oer_type_decoder_f OCTET_STRING_decode_oer; +oer_type_encoder_f OCTET_STRING_encode_oer; +per_type_decoder_f OCTET_STRING_decode_uper; +per_type_encoder_f OCTET_STRING_encode_uper; +per_type_decoder_f OCTET_STRING_decode_aper; +per_type_encoder_f OCTET_STRING_encode_aper; +asn_random_fill_f OCTET_STRING_random_fill; + +#define OCTET_STRING_constraint asn_generic_no_constraint +#define OCTET_STRING_decode_xer OCTET_STRING_decode_xer_hex + +/****************************** + * Handy conversion routines. * + ******************************/ + +/* + * This function clears the previous value of the OCTET STRING (if any) + * and then allocates a new memory with the specified content (str/size). + * If size = -1, the size of the original string will be determined + * using strlen(str). + * If str equals to NULL, the function will silently clear the + * current contents of the OCTET STRING. + * Returns 0 if it was possible to perform operation, -1 otherwise. + */ +int OCTET_STRING_fromBuf(OCTET_STRING_t *s, const char *str, int size); + +/* Handy conversion from the C string into the OCTET STRING. */ +#define OCTET_STRING_fromString(s, str) OCTET_STRING_fromBuf(s, str, -1) + +/* + * Allocate and fill the new OCTET STRING and return a pointer to the newly + * allocated object. NULL is permitted in str: the function will just allocate + * empty OCTET STRING. + */ +OCTET_STRING_t *OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td, + const char *str, int size); + +/**************************** + * Internally useful stuff. * + ****************************/ + +typedef struct asn_OCTET_STRING_specifics_s { + /* + * Target structure description. + */ + unsigned struct_size; /* Size of the structure */ + unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ + + enum asn_OS_Subvariant { + ASN_OSUBV_ANY, /* The open type (ANY) */ + ASN_OSUBV_BIT, /* BIT STRING */ + ASN_OSUBV_STR, /* String types, not {BMP,Universal}String */ + ASN_OSUBV_U16, /* 16-bit character (BMPString) */ + ASN_OSUBV_U32 /* 32-bit character (UniversalString) */ + } subvariant; +} asn_OCTET_STRING_specifics_t; + +extern asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs; + +size_t OCTET_STRING_random_length_constrained( + const asn_TYPE_descriptor_t *, const asn_encoding_constraints_t *, + size_t max_length); + +#ifdef __cplusplus +} +#endif + +#endif /* _OCTET_STRING_H_ */ diff --git a/src/du_app/F1AP/asn/OCTET_STRING_oer.c b/src/du_app/F1AP/asn/OCTET_STRING_oer.c new file mode 100755 index 000000000..c16faeafb --- /dev/null +++ b/src/du_app/F1AP/asn/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/src/du_app/F1AP/asn/OPEN_TYPE.c b/src/du_app/F1AP/asn/OPEN_TYPE.c new file mode 100755 index 000000000..a54e99c3c --- /dev/null +++ b/src/du_app/F1AP/asn/OPEN_TYPE.c @@ -0,0 +1,509 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include +#include + +asn_TYPE_operation_t asn_OP_OPEN_TYPE = { + OPEN_TYPE_free, + OPEN_TYPE_print, + OPEN_TYPE_compare, + OPEN_TYPE_decode_ber, + OPEN_TYPE_encode_der, + OPEN_TYPE_decode_xer, + OPEN_TYPE_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, 0, /* No OER support, use "-gen-OER" to enable */ +#else + OPEN_TYPE_decode_oer, + OPEN_TYPE_encode_oer, +#endif +#ifdef ASN_DISABLE_PER_SUPPORT + 0, 0, 0, 0, +#else + OPEN_TYPE_decode_uper, + OPEN_TYPE_encode_uper, + OPEN_TYPE_decode_aper, + OPEN_TYPE_encode_aper, +#endif + 0, /* Random fill is not supported for open type */ + 0 /* Use generic outmost tag fetcher */ +}; + +#undef ADVANCE +#define ADVANCE(num_bytes) \ + do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num; \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +asn_dec_rval_t +OPEN_TYPE_ber_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void *sptr, + const asn_TYPE_member_t *elm, const void *ptr, size_t size) { + size_t consumed_myself = 0; + asn_type_selector_result_t selected; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + void *inner_value; + asn_dec_rval_t rv; + + if(!(elm->flags & ATF_OPEN_TYPE)) { + ASN__DECODE_FAILED; + } + + if(!elm->type_selector) { + ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", + td->name, elm->name, elm->type->name); + ASN__DECODE_FAILED; + } + + selected = elm->type_selector(td, sptr); + if(!selected.presence_index) { + ASN__DECODE_FAILED; + } + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); + } else { + memb_ptr = (char *)sptr + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + if(*memb_ptr2 != NULL) { + /* Make sure we reset the structure first before encoding */ + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) != 0) { + ASN__DECODE_FAILED; + } + } + + inner_value = + (char *)*memb_ptr2 + + elm->type->elements[selected.presence_index - 1].memb_offset; + + ASN_DEBUG("presence %d\n", selected.presence_index); + + rv = selected.type_descriptor->op->ber_decoder( + opt_codec_ctx, selected.type_descriptor, &inner_value, ptr, size, + elm->tag_mode); + ADVANCE(rv.consumed); + rv.consumed = 0; + switch(rv.code) { + case RC_OK: + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, + selected.presence_index) + == 0) { + rv.code = RC_OK; + rv.consumed = consumed_myself; + return rv; + } else { + /* Oh, now a full-blown failure failure */ + } + /* Fall through */ + case RC_FAIL: + rv.consumed = consumed_myself; + /* Fall through */ + case RC_WMORE: + break; + } + + if(*memb_ptr2) { + if(elm->flags & ATF_POINTER) { + ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); + *memb_ptr2 = NULL; + } else { + ASN_STRUCT_RESET(*selected.type_descriptor, + inner_value); + } + } + return rv; +} + +asn_dec_rval_t +OPEN_TYPE_xer_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void *sptr, + const asn_TYPE_member_t *elm, const void *ptr, size_t size) { + size_t consumed_myself = 0; + asn_type_selector_result_t selected; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + void *inner_value; + asn_dec_rval_t rv; + + int xer_context = 0; + ssize_t ch_size; + pxer_chunk_type_e ch_type; + + if(!(elm->flags & ATF_OPEN_TYPE)) { + ASN__DECODE_FAILED; + } + + if(!elm->type_selector) { + ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", + td->name, elm->name, elm->type->name); + ASN__DECODE_FAILED; + } + + selected = elm->type_selector(td, sptr); + if(!selected.presence_index) { + ASN__DECODE_FAILED; + } + + /* Fetch the pointer to this member */ + assert(elm->flags == ATF_OPEN_TYPE); + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); + } else { + memb_ptr = (char *)sptr + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + if(*memb_ptr2 != NULL) { + /* Make sure we reset the structure first before encoding */ + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) + != 0) { + ASN__DECODE_FAILED; + } + } + + /* + * Confirm wrapper. + */ + for(;;) { + ch_size = xer_next_token(&xer_context, ptr, size, &ch_type); + if(ch_size < 0) { + ASN__DECODE_FAILED; + } else { + switch(ch_type) { + case PXER_WMORE: + ASN__DECODE_STARVED; + case PXER_COMMENT: + case PXER_TEXT: + ADVANCE(ch_size); + continue; + case PXER_TAG: + break; + } + break; + } + } + + /* + * Wrapper value confirmed. + */ + switch(xer_check_tag(ptr, ch_size, elm->name)) { + case XCT_OPENING: + ADVANCE(ch_size); + break; + case XCT_BROKEN: + default: + ASN__DECODE_FAILED; + } + + inner_value = + (char *)*memb_ptr2 + + elm->type->elements[selected.presence_index - 1].memb_offset; + + rv = selected.type_descriptor->op->xer_decoder( + opt_codec_ctx, selected.type_descriptor, &inner_value, NULL, ptr, size); + ADVANCE(rv.consumed); + rv.consumed = 0; + switch(rv.code) { + case RC_OK: + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, + selected.presence_index) + == 0) { + break; + } else { + rv.code = RC_FAIL; + } + /* Fall through */ + case RC_FAIL: + /* Point to a best position where failure occurred */ + rv.consumed = consumed_myself; + /* Fall through */ + case RC_WMORE: + /* Wrt. rv.consumed==0: + * In case a genuine RC_WMORE, the whole Open Type decoding + * will have to be restarted. + */ + if(*memb_ptr2) { + if(elm->flags & ATF_POINTER) { + ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); + *memb_ptr2 = NULL; + } else { + ASN_STRUCT_RESET(*selected.type_descriptor, + inner_value); + } + } + return rv; + } + + /* + * Finalize wrapper. + */ + for(;;) { + ch_size = xer_next_token(&xer_context, ptr, size, &ch_type); + if(ch_size < 0) { + ASN__DECODE_FAILED; + } else { + switch(ch_type) { + case PXER_WMORE: + ASN__DECODE_STARVED; + case PXER_COMMENT: + case PXER_TEXT: + ADVANCE(ch_size); + continue; + case PXER_TAG: + break; + } + break; + } + } + + /* + * Wrapper value confirmed. + */ + switch(xer_check_tag(ptr, ch_size, elm->name)) { + case XCT_CLOSING: + ADVANCE(ch_size); + break; + case XCT_BROKEN: + default: + ASN__DECODE_FAILED; + } + + rv.consumed += consumed_myself; + + return rv; +} + + +#ifndef ASN_DISABLE_PER_SUPPORT + +asn_dec_rval_t +OPEN_TYPE_uper_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void *sptr, + const asn_TYPE_member_t *elm, asn_per_data_t *pd) { + asn_type_selector_result_t selected; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + void *inner_value; + asn_dec_rval_t rv; + + if(!(elm->flags & ATF_OPEN_TYPE)) { + ASN__DECODE_FAILED; + } + + if(!elm->type_selector) { + ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", + td->name, elm->name, elm->type->name); + ASN__DECODE_FAILED; + } + + selected = elm->type_selector(td, sptr); + if(!selected.presence_index) { + ASN__DECODE_FAILED; + } + + /* Fetch the pointer to this member */ + assert(elm->flags == ATF_OPEN_TYPE); + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); + } else { + memb_ptr = (char *)sptr + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + if(*memb_ptr2 != NULL) { + /* Make sure we reset the structure first before encoding */ + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) + != 0) { + ASN__DECODE_FAILED; + } + } + + inner_value = + (char *)*memb_ptr2 + + elm->type->elements[selected.presence_index - 1].memb_offset; + + rv = uper_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, + &inner_value, pd); + switch(rv.code) { + case RC_OK: + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, + selected.presence_index) + == 0) { + break; + } else { + rv.code = RC_FAIL; + } + /* Fall through */ + case RC_WMORE: + case RC_FAIL: + if(*memb_ptr2) { + if(elm->flags & ATF_POINTER) { + ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); + *memb_ptr2 = NULL; + } else { + ASN_STRUCT_RESET(*selected.type_descriptor, + inner_value); + } + } + } + return rv; +} + +asn_enc_rval_t +OPEN_TYPE_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const void *memb_ptr; /* Pointer to the member */ + asn_TYPE_member_t *elm; /* CHOICE's element */ + asn_enc_rval_t er = {0,0,0}; + unsigned present; + + (void)constraints; + + present = CHOICE_variant_get_presence(td, sptr); + if(present == 0 || present > td->elements_count) { + ASN__ENCODE_FAILED; + } else { + present--; + } + + ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present); + + elm = &td->elements[present]; + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) ASN__ENCODE_FAILED; + } else { + memb_ptr = (const char *)sptr + elm->memb_offset; + } + + if(uper_open_type_put(elm->type, NULL, memb_ptr, po) < 0) { + ASN__ENCODE_FAILED; + } + + er.encoded = 0; + ASN__ENCODED_OK(er); +} + +asn_dec_rval_t +OPEN_TYPE_aper_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void *sptr, + const asn_TYPE_member_t *elm, asn_per_data_t *pd) { + asn_type_selector_result_t selected; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + void *inner_value; + asn_dec_rval_t rv; + + if(!(elm->flags & ATF_OPEN_TYPE)) { + ASN__DECODE_FAILED; + } + + if(!elm->type_selector) { + ASN_DEBUG("Type selector is not defined for Open Type %s->%s->%s", + td->name, elm->name, elm->type->name); + ASN__DECODE_FAILED; + } + + selected = elm->type_selector(td, sptr); + if(!selected.presence_index) { + ASN__DECODE_FAILED; + } + + /* Fetch the pointer to this member */ + assert(elm->flags == ATF_OPEN_TYPE); + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)sptr + elm->memb_offset); + } else { + memb_ptr = (char *)sptr + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + if(*memb_ptr2 != NULL) { + /* Make sure we reset the structure first before encoding */ + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, 0) + != 0) { + ASN__DECODE_FAILED; + } + } + + inner_value = + (char *)*memb_ptr2 + + elm->type->elements[selected.presence_index - 1].memb_offset; + + rv = aper_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL, + &inner_value, pd); + switch(rv.code) { + case RC_OK: + if(CHOICE_variant_set_presence(elm->type, *memb_ptr2, + selected.presence_index) + == 0) { + break; + } else { + rv.code = RC_FAIL; + } + /* Fall through */ + case RC_WMORE: + case RC_FAIL: + if(*memb_ptr2) { + if(elm->flags & ATF_POINTER) { + ASN_STRUCT_FREE(*selected.type_descriptor, inner_value); + *memb_ptr2 = NULL; + } else { + ASN_STRUCT_RESET(*selected.type_descriptor, + inner_value); + } + } + } + return rv; +} + +asn_enc_rval_t +OPEN_TYPE_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const void *memb_ptr; /* Pointer to the member */ + asn_TYPE_member_t *elm; /* CHOICE's element */ + asn_enc_rval_t er = {0,0,0}; + unsigned present; + + (void)constraints; + + present = CHOICE_variant_get_presence(td, sptr); + if(present == 0 || present > td->elements_count) { + ASN__ENCODE_FAILED; + } else { + present--; + } + + ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present); + + elm = &td->elements[present]; + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) ASN__ENCODE_FAILED; + } else { + memb_ptr = (const char *)sptr + elm->memb_offset; + } + + if(aper_open_type_put(elm->type, NULL, memb_ptr, po) < 0) { + ASN__ENCODE_FAILED; + } + + er.encoded = 0; + ASN__ENCODED_OK(er); +} + +#endif /* ASN_DISABLE_PER_SUPPORT */ diff --git a/src/du_app/F1AP/asn/OPEN_TYPE.h b/src/du_app/F1AP/asn/OPEN_TYPE.h new file mode 100755 index 000000000..b0d023c1f --- /dev/null +++ b/src/du_app/F1AP/asn/OPEN_TYPE.h @@ -0,0 +1,77 @@ +/*- + * Copyright (c) 2017-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_OPEN_TYPE_H +#define ASN_OPEN_TYPE_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define OPEN_TYPE_free CHOICE_free +#define OPEN_TYPE_print CHOICE_print +#define OPEN_TYPE_compare CHOICE_compare +#define OPEN_TYPE_constraint CHOICE_constraint +#define OPEN_TYPE_decode_ber NULL +#define OPEN_TYPE_encode_der CHOICE_encode_der +#define OPEN_TYPE_decode_xer NULL +#define OPEN_TYPE_encode_xer CHOICE_encode_xer +#define OPEN_TYPE_decode_oer NULL +#define OPEN_TYPE_encode_oer CHOICE_encode_oer +#define OPEN_TYPE_decode_uper NULL +#define OPEN_TYPE_decode_aper NULL + +extern asn_TYPE_operation_t asn_OP_OPEN_TYPE; + +/* + * Decode an Open Type which is potentially constraiend + * by the other members of the parent structure. + */ +asn_dec_rval_t OPEN_TYPE_ber_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *parent_type, + void *parent_structure, + const asn_TYPE_member_t *element, + const void *ptr, size_t size); + +asn_dec_rval_t OPEN_TYPE_xer_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *parent_type, + void *parent_structure, + const asn_TYPE_member_t *element, + const void *ptr, size_t size); + +asn_dec_rval_t OPEN_TYPE_oer_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *parent_type, + void *parent_structure, + asn_TYPE_member_t *element, const void *ptr, + size_t size); + +asn_dec_rval_t OPEN_TYPE_uper_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *parent_type, + void *parent_structure, + const asn_TYPE_member_t *element, + asn_per_data_t *pd); + +asn_dec_rval_t OPEN_TYPE_aper_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *parent_type, + void *parent_structure, + const asn_TYPE_member_t *element, + asn_per_data_t *pd); + +asn_enc_rval_t OPEN_TYPE_encode_uper( + const asn_TYPE_descriptor_t *type_descriptor, + const asn_per_constraints_t *constraints, const void *struct_ptr, + asn_per_outp_t *per_output); + +asn_enc_rval_t OPEN_TYPE_encode_aper( + const asn_TYPE_descriptor_t *type_descriptor, + const asn_per_constraints_t *constraints, const void *struct_ptr, + asn_per_outp_t *per_output); + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_OPEN_TYPE_H */ diff --git a/src/du_app/F1AP/asn/OPEN_TYPE_oer.c b/src/du_app/F1AP/asn/OPEN_TYPE_oer.c new file mode 100755 index 000000000..dd2f5c644 --- /dev/null +++ b/src/du_app/F1AP/asn/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/src/du_app/F1AP/asn/OffsetToPointA.c b/src/du_app/F1AP/asn/OffsetToPointA.c new file mode 100755 index 000000000..a13abd30a --- /dev/null +++ b/src/du_app/F1AP/asn/OffsetToPointA.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "OffsetToPointA.h" + +int +OffsetToPointA_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 <= 2199)) { + /* 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_OffsetToPointA_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_OffsetToPointA_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 12, 12, 0, 2199 } /* (0..2199,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_OffsetToPointA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OffsetToPointA = { + "OffsetToPointA", + "OffsetToPointA", + &asn_OP_NativeInteger, + asn_DEF_OffsetToPointA_tags_1, + sizeof(asn_DEF_OffsetToPointA_tags_1) + /sizeof(asn_DEF_OffsetToPointA_tags_1[0]), /* 1 */ + asn_DEF_OffsetToPointA_tags_1, /* Same as above */ + sizeof(asn_DEF_OffsetToPointA_tags_1) + /sizeof(asn_DEF_OffsetToPointA_tags_1[0]), /* 1 */ + { &asn_OER_type_OffsetToPointA_constr_1, &asn_PER_type_OffsetToPointA_constr_1, OffsetToPointA_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/OffsetToPointA.h b/src/du_app/F1AP/asn/OffsetToPointA.h new file mode 100755 index 000000000..ea35422e5 --- /dev/null +++ b/src/du_app/F1AP/asn/OffsetToPointA.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _OffsetToPointA_H_ +#define _OffsetToPointA_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* OffsetToPointA */ +typedef long OffsetToPointA_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_OffsetToPointA_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_OffsetToPointA; +asn_struct_free_f OffsetToPointA_free; +asn_struct_print_f OffsetToPointA_print; +asn_constr_check_f OffsetToPointA_constraint; +ber_type_decoder_f OffsetToPointA_decode_ber; +der_type_encoder_f OffsetToPointA_encode_der; +xer_type_decoder_f OffsetToPointA_decode_xer; +xer_type_encoder_f OffsetToPointA_encode_xer; +oer_type_decoder_f OffsetToPointA_decode_oer; +oer_type_encoder_f OffsetToPointA_encode_oer; +per_type_decoder_f OffsetToPointA_decode_uper; +per_type_encoder_f OffsetToPointA_encode_uper; +per_type_decoder_f OffsetToPointA_decode_aper; +per_type_encoder_f OffsetToPointA_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _OffsetToPointA_H_ */ +#include diff --git a/src/du_app/F1AP/asn/PDCP-SN.c b/src/du_app/F1AP/asn/PDCP-SN.c new file mode 100755 index 000000000..5b8e0284a --- /dev/null +++ b/src/du_app/F1AP/asn/PDCP-SN.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PDCP-SN.h" + +int +PDCP_SN_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 4095)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PDCP_SN_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..4095) */, + -1}; +asn_per_constraints_t asn_PER_type_PDCP_SN_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PDCP_SN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PDCP_SN = { + "PDCP-SN", + "PDCP-SN", + &asn_OP_NativeInteger, + asn_DEF_PDCP_SN_tags_1, + sizeof(asn_DEF_PDCP_SN_tags_1) + /sizeof(asn_DEF_PDCP_SN_tags_1[0]), /* 1 */ + asn_DEF_PDCP_SN_tags_1, /* Same as above */ + sizeof(asn_DEF_PDCP_SN_tags_1) + /sizeof(asn_DEF_PDCP_SN_tags_1[0]), /* 1 */ + { &asn_OER_type_PDCP_SN_constr_1, &asn_PER_type_PDCP_SN_constr_1, PDCP_SN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/PDCP-SN.h b/src/du_app/F1AP/asn/PDCP-SN.h new file mode 100755 index 000000000..779199bf8 --- /dev/null +++ b/src/du_app/F1AP/asn/PDCP-SN.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PDCP_SN_H_ +#define _PDCP_SN_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PDCP-SN */ +typedef long PDCP_SN_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PDCP_SN_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PDCP_SN; +asn_struct_free_f PDCP_SN_free; +asn_struct_print_f PDCP_SN_print; +asn_constr_check_f PDCP_SN_constraint; +ber_type_decoder_f PDCP_SN_decode_ber; +der_type_encoder_f PDCP_SN_encode_der; +xer_type_decoder_f PDCP_SN_decode_xer; +xer_type_encoder_f PDCP_SN_encode_xer; +oer_type_decoder_f PDCP_SN_decode_oer; +oer_type_encoder_f PDCP_SN_encode_oer; +per_type_decoder_f PDCP_SN_decode_uper; +per_type_encoder_f PDCP_SN_encode_uper; +per_type_decoder_f PDCP_SN_decode_aper; +per_type_encoder_f PDCP_SN_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PDCP_SN_H_ */ +#include diff --git a/src/du_app/F1AP/asn/PDCPSNLength.c b/src/du_app/F1AP/asn/PDCPSNLength.c new file mode 100755 index 000000000..e6c37f506 --- /dev/null +++ b/src/du_app/F1AP/asn/PDCPSNLength.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PDCPSNLength.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PDCPSNLength_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_PDCPSNLength_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PDCPSNLength_value2enum_1[] = { + { 0, 11, "twelve-bits" }, + { 1, 13, "eighteen-bits" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PDCPSNLength_enum2value_1[] = { + 1, /* eighteen-bits(1) */ + 0 /* twelve-bits(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_PDCPSNLength_specs_1 = { + asn_MAP_PDCPSNLength_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PDCPSNLength_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PDCPSNLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PDCPSNLength = { + "PDCPSNLength", + "PDCPSNLength", + &asn_OP_NativeEnumerated, + asn_DEF_PDCPSNLength_tags_1, + sizeof(asn_DEF_PDCPSNLength_tags_1) + /sizeof(asn_DEF_PDCPSNLength_tags_1[0]), /* 1 */ + asn_DEF_PDCPSNLength_tags_1, /* Same as above */ + sizeof(asn_DEF_PDCPSNLength_tags_1) + /sizeof(asn_DEF_PDCPSNLength_tags_1[0]), /* 1 */ + { &asn_OER_type_PDCPSNLength_constr_1, &asn_PER_type_PDCPSNLength_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PDCPSNLength_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/PDCPSNLength.h b/src/du_app/F1AP/asn/PDCPSNLength.h new file mode 100755 index 000000000..5e63625bb --- /dev/null +++ b/src/du_app/F1AP/asn/PDCPSNLength.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PDCPSNLength_H_ +#define _PDCPSNLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PDCPSNLength { + PDCPSNLength_twelve_bits = 0, + PDCPSNLength_eighteen_bits = 1 + /* + * Enumeration is extensible + */ +} e_PDCPSNLength; + +/* PDCPSNLength */ +typedef long PDCPSNLength_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PDCPSNLength; +asn_struct_free_f PDCPSNLength_free; +asn_struct_print_f PDCPSNLength_print; +asn_constr_check_f PDCPSNLength_constraint; +ber_type_decoder_f PDCPSNLength_decode_ber; +der_type_encoder_f PDCPSNLength_encode_der; +xer_type_decoder_f PDCPSNLength_decode_xer; +xer_type_encoder_f PDCPSNLength_encode_xer; +oer_type_decoder_f PDCPSNLength_decode_oer; +oer_type_encoder_f PDCPSNLength_encode_oer; +per_type_decoder_f PDCPSNLength_decode_uper; +per_type_encoder_f PDCPSNLength_encode_uper; +per_type_decoder_f PDCPSNLength_decode_aper; +per_type_encoder_f PDCPSNLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PDCPSNLength_H_ */ +#include diff --git a/src/du_app/F1AP/asn/PDUSessionID.c b/src/du_app/F1AP/asn/PDUSessionID.c new file mode 100755 index 000000000..45b653d86 --- /dev/null +++ b/src/du_app/F1AP/asn/PDUSessionID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PDUSessionID.h" + +int +PDUSessionID_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_PDUSessionID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_PDUSessionID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PDUSessionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PDUSessionID = { + "PDUSessionID", + "PDUSessionID", + &asn_OP_NativeInteger, + asn_DEF_PDUSessionID_tags_1, + sizeof(asn_DEF_PDUSessionID_tags_1) + /sizeof(asn_DEF_PDUSessionID_tags_1[0]), /* 1 */ + asn_DEF_PDUSessionID_tags_1, /* Same as above */ + sizeof(asn_DEF_PDUSessionID_tags_1) + /sizeof(asn_DEF_PDUSessionID_tags_1[0]), /* 1 */ + { &asn_OER_type_PDUSessionID_constr_1, &asn_PER_type_PDUSessionID_constr_1, PDUSessionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/PDUSessionID.h b/src/du_app/F1AP/asn/PDUSessionID.h new file mode 100755 index 000000000..00fdc9d1b --- /dev/null +++ b/src/du_app/F1AP/asn/PDUSessionID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PDUSessionID_H_ +#define _PDUSessionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PDUSessionID */ +typedef long PDUSessionID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PDUSessionID; +asn_struct_free_f PDUSessionID_free; +asn_struct_print_f PDUSessionID_print; +asn_constr_check_f PDUSessionID_constraint; +ber_type_decoder_f PDUSessionID_decode_ber; +der_type_encoder_f PDUSessionID_encode_der; +xer_type_decoder_f PDUSessionID_decode_xer; +xer_type_encoder_f PDUSessionID_encode_xer; +oer_type_decoder_f PDUSessionID_decode_oer; +oer_type_encoder_f PDUSessionID_encode_oer; +per_type_decoder_f PDUSessionID_decode_uper; +per_type_encoder_f PDUSessionID_encode_uper; +per_type_decoder_f PDUSessionID_decode_aper; +per_type_encoder_f PDUSessionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PDUSessionID_H_ */ +#include diff --git a/src/du_app/F1AP/asn/PER-Exponent.c b/src/du_app/F1AP/asn/PER-Exponent.c new file mode 100755 index 000000000..845a5f1fd --- /dev/null +++ b/src/du_app/F1AP/asn/PER-Exponent.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PER-Exponent.h" + +int +PER_Exponent_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 <= 9)) { + /* 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_PER_Exponent_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PER_Exponent_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 9 } /* (0..9,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PER_Exponent_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PER_Exponent = { + "PER-Exponent", + "PER-Exponent", + &asn_OP_NativeInteger, + asn_DEF_PER_Exponent_tags_1, + sizeof(asn_DEF_PER_Exponent_tags_1) + /sizeof(asn_DEF_PER_Exponent_tags_1[0]), /* 1 */ + asn_DEF_PER_Exponent_tags_1, /* Same as above */ + sizeof(asn_DEF_PER_Exponent_tags_1) + /sizeof(asn_DEF_PER_Exponent_tags_1[0]), /* 1 */ + { &asn_OER_type_PER_Exponent_constr_1, &asn_PER_type_PER_Exponent_constr_1, PER_Exponent_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/PER-Exponent.h b/src/du_app/F1AP/asn/PER-Exponent.h new file mode 100755 index 000000000..2fcdf7b49 --- /dev/null +++ b/src/du_app/F1AP/asn/PER-Exponent.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PER_Exponent_H_ +#define _PER_Exponent_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PER-Exponent */ +typedef long PER_Exponent_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PER_Exponent_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PER_Exponent; +asn_struct_free_f PER_Exponent_free; +asn_struct_print_f PER_Exponent_print; +asn_constr_check_f PER_Exponent_constraint; +ber_type_decoder_f PER_Exponent_decode_ber; +der_type_encoder_f PER_Exponent_encode_der; +xer_type_decoder_f PER_Exponent_decode_xer; +xer_type_encoder_f PER_Exponent_encode_xer; +oer_type_decoder_f PER_Exponent_decode_oer; +oer_type_encoder_f PER_Exponent_encode_oer; +per_type_decoder_f PER_Exponent_decode_uper; +per_type_encoder_f PER_Exponent_encode_uper; +per_type_decoder_f PER_Exponent_decode_aper; +per_type_encoder_f PER_Exponent_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PER_Exponent_H_ */ +#include diff --git a/src/du_app/F1AP/asn/PER-Scalar.c b/src/du_app/F1AP/asn/PER-Scalar.c new file mode 100755 index 000000000..dd4e0c3b1 --- /dev/null +++ b/src/du_app/F1AP/asn/PER-Scalar.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PER-Scalar.h" + +int +PER_Scalar_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 <= 9)) { + /* 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_PER_Scalar_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PER_Scalar_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 9 } /* (0..9,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PER_Scalar_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PER_Scalar = { + "PER-Scalar", + "PER-Scalar", + &asn_OP_NativeInteger, + asn_DEF_PER_Scalar_tags_1, + sizeof(asn_DEF_PER_Scalar_tags_1) + /sizeof(asn_DEF_PER_Scalar_tags_1[0]), /* 1 */ + asn_DEF_PER_Scalar_tags_1, /* Same as above */ + sizeof(asn_DEF_PER_Scalar_tags_1) + /sizeof(asn_DEF_PER_Scalar_tags_1[0]), /* 1 */ + { &asn_OER_type_PER_Scalar_constr_1, &asn_PER_type_PER_Scalar_constr_1, PER_Scalar_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/PER-Scalar.h b/src/du_app/F1AP/asn/PER-Scalar.h new file mode 100755 index 000000000..c640be338 --- /dev/null +++ b/src/du_app/F1AP/asn/PER-Scalar.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PER_Scalar_H_ +#define _PER_Scalar_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PER-Scalar */ +typedef long PER_Scalar_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PER_Scalar_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PER_Scalar; +asn_struct_free_f PER_Scalar_free; +asn_struct_print_f PER_Scalar_print; +asn_constr_check_f PER_Scalar_constraint; +ber_type_decoder_f PER_Scalar_decode_ber; +der_type_encoder_f PER_Scalar_encode_der; +xer_type_decoder_f PER_Scalar_decode_xer; +xer_type_encoder_f PER_Scalar_encode_xer; +oer_type_decoder_f PER_Scalar_decode_oer; +oer_type_encoder_f PER_Scalar_encode_oer; +per_type_decoder_f PER_Scalar_decode_uper; +per_type_encoder_f PER_Scalar_encode_uper; +per_type_decoder_f PER_Scalar_decode_aper; +per_type_encoder_f PER_Scalar_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PER_Scalar_H_ */ +#include diff --git a/src/du_app/F1AP/asn/PLMN-Identity.c b/src/du_app/F1AP/asn/PLMN-Identity.c new file mode 100755 index 000000000..b47e361db --- /dev/null +++ b/src/du_app/F1AP/asn/PLMN-Identity.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PLMN-Identity.h" + +int +PLMN_Identity_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size == 3)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PLMN_Identity_constr_1 CC_NOTUSED = { + { 0, 0 }, + 3 /* (SIZE(3..3)) */}; +asn_per_constraints_t asn_PER_type_PLMN_Identity_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PLMN_Identity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PLMN_Identity = { + "PLMN-Identity", + "PLMN-Identity", + &asn_OP_OCTET_STRING, + asn_DEF_PLMN_Identity_tags_1, + sizeof(asn_DEF_PLMN_Identity_tags_1) + /sizeof(asn_DEF_PLMN_Identity_tags_1[0]), /* 1 */ + asn_DEF_PLMN_Identity_tags_1, /* Same as above */ + sizeof(asn_DEF_PLMN_Identity_tags_1) + /sizeof(asn_DEF_PLMN_Identity_tags_1[0]), /* 1 */ + { &asn_OER_type_PLMN_Identity_constr_1, &asn_PER_type_PLMN_Identity_constr_1, PLMN_Identity_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/PLMN-Identity.h b/src/du_app/F1AP/asn/PLMN-Identity.h new file mode 100755 index 000000000..0f1aef7f5 --- /dev/null +++ b/src/du_app/F1AP/asn/PLMN-Identity.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PLMN_Identity_H_ +#define _PLMN_Identity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PLMN-Identity */ +typedef OCTET_STRING_t PLMN_Identity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PLMN_Identity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PLMN_Identity; +asn_struct_free_f PLMN_Identity_free; +asn_struct_print_f PLMN_Identity_print; +asn_constr_check_f PLMN_Identity_constraint; +ber_type_decoder_f PLMN_Identity_decode_ber; +der_type_encoder_f PLMN_Identity_encode_der; +xer_type_decoder_f PLMN_Identity_decode_xer; +xer_type_encoder_f PLMN_Identity_encode_xer; +oer_type_decoder_f PLMN_Identity_decode_oer; +oer_type_encoder_f PLMN_Identity_encode_oer; +per_type_decoder_f PLMN_Identity_decode_uper; +per_type_encoder_f PLMN_Identity_encode_uper; +per_type_decoder_f PLMN_Identity_decode_aper; +per_type_encoder_f PLMN_Identity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PLMN_Identity_H_ */ +#include diff --git a/src/du_app/F1AP/asn/PWS-Failed-NR-CGI-Item.c b/src/du_app/F1AP/asn/PWS-Failed-NR-CGI-Item.c new file mode 100755 index 000000000..b92abf63f --- /dev/null +++ b/src/du_app/F1AP/asn/PWS-Failed-NR-CGI-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PWS-Failed-NR-CGI-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_PWS_Failed_NR_CGI_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PWS_Failed_NR_CGI_Item, nRCGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRCGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nRCGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct PWS_Failed_NR_CGI_Item, numberOfBroadcasts), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NumberOfBroadcasts, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "numberOfBroadcasts" + }, + { ATF_POINTER, 1, offsetof(struct PWS_Failed_NR_CGI_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P72, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_PWS_Failed_NR_CGI_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_PWS_Failed_NR_CGI_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PWS_Failed_NR_CGI_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* numberOfBroadcasts */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_PWS_Failed_NR_CGI_Item_specs_1 = { + sizeof(struct PWS_Failed_NR_CGI_Item), + offsetof(struct PWS_Failed_NR_CGI_Item, _asn_ctx), + asn_MAP_PWS_Failed_NR_CGI_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_PWS_Failed_NR_CGI_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PWS_Failed_NR_CGI_Item = { + "PWS-Failed-NR-CGI-Item", + "PWS-Failed-NR-CGI-Item", + &asn_OP_SEQUENCE, + asn_DEF_PWS_Failed_NR_CGI_Item_tags_1, + sizeof(asn_DEF_PWS_Failed_NR_CGI_Item_tags_1) + /sizeof(asn_DEF_PWS_Failed_NR_CGI_Item_tags_1[0]), /* 1 */ + asn_DEF_PWS_Failed_NR_CGI_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_PWS_Failed_NR_CGI_Item_tags_1) + /sizeof(asn_DEF_PWS_Failed_NR_CGI_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PWS_Failed_NR_CGI_Item_1, + 3, /* Elements count */ + &asn_SPC_PWS_Failed_NR_CGI_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/PWS-Failed-NR-CGI-Item.h b/src/du_app/F1AP/asn/PWS-Failed-NR-CGI-Item.h new file mode 100755 index 000000000..122b489df --- /dev/null +++ b/src/du_app/F1AP/asn/PWS-Failed-NR-CGI-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PWS_Failed_NR_CGI_Item_H_ +#define _PWS_Failed_NR_CGI_Item_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include "NumberOfBroadcasts.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* PWS-Failed-NR-CGI-Item */ +typedef struct PWS_Failed_NR_CGI_Item { + NRCGI_t nRCGI; + NumberOfBroadcasts_t numberOfBroadcasts; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PWS_Failed_NR_CGI_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PWS_Failed_NR_CGI_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _PWS_Failed_NR_CGI_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/PWS-Failed-NR-CGI-List.c b/src/du_app/F1AP/asn/PWS-Failed-NR-CGI-List.c new file mode 100755 index 000000000..6a2bc11bd --- /dev/null +++ b/src/du_app/F1AP/asn/PWS-Failed-NR-CGI-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PWS-Failed-NR-CGI-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_PWS_Failed_NR_CGI_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..512)) */}; +static asn_per_constraints_t asn_PER_type_PWS_Failed_NR_CGI_List_constr_1 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_PWS_Failed_NR_CGI_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P58, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PWS_Failed_NR_CGI_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_PWS_Failed_NR_CGI_List_specs_1 = { + sizeof(struct PWS_Failed_NR_CGI_List), + offsetof(struct PWS_Failed_NR_CGI_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PWS_Failed_NR_CGI_List = { + "PWS-Failed-NR-CGI-List", + "PWS-Failed-NR-CGI-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_PWS_Failed_NR_CGI_List_tags_1, + sizeof(asn_DEF_PWS_Failed_NR_CGI_List_tags_1) + /sizeof(asn_DEF_PWS_Failed_NR_CGI_List_tags_1[0]), /* 1 */ + asn_DEF_PWS_Failed_NR_CGI_List_tags_1, /* Same as above */ + sizeof(asn_DEF_PWS_Failed_NR_CGI_List_tags_1) + /sizeof(asn_DEF_PWS_Failed_NR_CGI_List_tags_1[0]), /* 1 */ + { &asn_OER_type_PWS_Failed_NR_CGI_List_constr_1, &asn_PER_type_PWS_Failed_NR_CGI_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PWS_Failed_NR_CGI_List_1, + 1, /* Single element */ + &asn_SPC_PWS_Failed_NR_CGI_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/PWS-Failed-NR-CGI-List.h b/src/du_app/F1AP/asn/PWS-Failed-NR-CGI-List.h new file mode 100755 index 000000000..cad96df55 --- /dev/null +++ b/src/du_app/F1AP/asn/PWS-Failed-NR-CGI-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PWS_Failed_NR_CGI_List_H_ +#define _PWS_Failed_NR_CGI_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* PWS-Failed-NR-CGI-List */ +typedef struct PWS_Failed_NR_CGI_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PWS_Failed_NR_CGI_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PWS_Failed_NR_CGI_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _PWS_Failed_NR_CGI_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/PWSCancelRequest.c b/src/du_app/F1AP/asn/PWSCancelRequest.c new file mode 100755 index 000000000..9adcc068a --- /dev/null +++ b/src/du_app/F1AP/asn/PWSCancelRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PWSCancelRequest.h" + +asn_TYPE_member_t asn_MBR_PWSCancelRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PWSCancelRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P28, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_PWSCancelRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PWSCancelRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PWSCancelRequest_specs_1 = { + sizeof(struct PWSCancelRequest), + offsetof(struct PWSCancelRequest, _asn_ctx), + asn_MAP_PWSCancelRequest_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_PWSCancelRequest = { + "PWSCancelRequest", + "PWSCancelRequest", + &asn_OP_SEQUENCE, + asn_DEF_PWSCancelRequest_tags_1, + sizeof(asn_DEF_PWSCancelRequest_tags_1) + /sizeof(asn_DEF_PWSCancelRequest_tags_1[0]), /* 1 */ + asn_DEF_PWSCancelRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_PWSCancelRequest_tags_1) + /sizeof(asn_DEF_PWSCancelRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PWSCancelRequest_1, + 1, /* Elements count */ + &asn_SPC_PWSCancelRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/PWSCancelRequest.h b/src/du_app/F1AP/asn/PWSCancelRequest.h new file mode 100755 index 000000000..b5b011deb --- /dev/null +++ b/src/du_app/F1AP/asn/PWSCancelRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PWSCancelRequest_H_ +#define _PWSCancelRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PWSCancelRequest */ +typedef struct PWSCancelRequest { + ProtocolIE_Container_4587P28_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PWSCancelRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PWSCancelRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_PWSCancelRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_PWSCancelRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PWSCancelRequest_H_ */ +#include diff --git a/src/du_app/F1AP/asn/PWSCancelResponse.c b/src/du_app/F1AP/asn/PWSCancelResponse.c new file mode 100755 index 000000000..25394fcd5 --- /dev/null +++ b/src/du_app/F1AP/asn/PWSCancelResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PWSCancelResponse.h" + +asn_TYPE_member_t asn_MBR_PWSCancelResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PWSCancelResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P29, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_PWSCancelResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PWSCancelResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PWSCancelResponse_specs_1 = { + sizeof(struct PWSCancelResponse), + offsetof(struct PWSCancelResponse, _asn_ctx), + asn_MAP_PWSCancelResponse_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_PWSCancelResponse = { + "PWSCancelResponse", + "PWSCancelResponse", + &asn_OP_SEQUENCE, + asn_DEF_PWSCancelResponse_tags_1, + sizeof(asn_DEF_PWSCancelResponse_tags_1) + /sizeof(asn_DEF_PWSCancelResponse_tags_1[0]), /* 1 */ + asn_DEF_PWSCancelResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_PWSCancelResponse_tags_1) + /sizeof(asn_DEF_PWSCancelResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PWSCancelResponse_1, + 1, /* Elements count */ + &asn_SPC_PWSCancelResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/PWSCancelResponse.h b/src/du_app/F1AP/asn/PWSCancelResponse.h new file mode 100755 index 000000000..0d117a144 --- /dev/null +++ b/src/du_app/F1AP/asn/PWSCancelResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PWSCancelResponse_H_ +#define _PWSCancelResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PWSCancelResponse */ +typedef struct PWSCancelResponse { + ProtocolIE_Container_4587P29_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PWSCancelResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PWSCancelResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_PWSCancelResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_PWSCancelResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PWSCancelResponse_H_ */ +#include diff --git a/src/du_app/F1AP/asn/PWSFailureIndication.c b/src/du_app/F1AP/asn/PWSFailureIndication.c new file mode 100755 index 000000000..ae68b5426 --- /dev/null +++ b/src/du_app/F1AP/asn/PWSFailureIndication.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PWSFailureIndication.h" + +asn_TYPE_member_t asn_MBR_PWSFailureIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PWSFailureIndication, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P38, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_PWSFailureIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PWSFailureIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PWSFailureIndication_specs_1 = { + sizeof(struct PWSFailureIndication), + offsetof(struct PWSFailureIndication, _asn_ctx), + asn_MAP_PWSFailureIndication_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_PWSFailureIndication = { + "PWSFailureIndication", + "PWSFailureIndication", + &asn_OP_SEQUENCE, + asn_DEF_PWSFailureIndication_tags_1, + sizeof(asn_DEF_PWSFailureIndication_tags_1) + /sizeof(asn_DEF_PWSFailureIndication_tags_1[0]), /* 1 */ + asn_DEF_PWSFailureIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_PWSFailureIndication_tags_1) + /sizeof(asn_DEF_PWSFailureIndication_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PWSFailureIndication_1, + 1, /* Elements count */ + &asn_SPC_PWSFailureIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/PWSFailureIndication.h b/src/du_app/F1AP/asn/PWSFailureIndication.h new file mode 100755 index 000000000..e1ecb3be7 --- /dev/null +++ b/src/du_app/F1AP/asn/PWSFailureIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PWSFailureIndication_H_ +#define _PWSFailureIndication_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PWSFailureIndication */ +typedef struct PWSFailureIndication { + ProtocolIE_Container_4587P38_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PWSFailureIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PWSFailureIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_PWSFailureIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_PWSFailureIndication_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PWSFailureIndication_H_ */ +#include diff --git a/src/du_app/F1AP/asn/PWSRestartIndication.c b/src/du_app/F1AP/asn/PWSRestartIndication.c new file mode 100755 index 000000000..cdabdc3c9 --- /dev/null +++ b/src/du_app/F1AP/asn/PWSRestartIndication.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PWSRestartIndication.h" + +asn_TYPE_member_t asn_MBR_PWSRestartIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PWSRestartIndication, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P37, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_PWSRestartIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PWSRestartIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PWSRestartIndication_specs_1 = { + sizeof(struct PWSRestartIndication), + offsetof(struct PWSRestartIndication, _asn_ctx), + asn_MAP_PWSRestartIndication_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_PWSRestartIndication = { + "PWSRestartIndication", + "PWSRestartIndication", + &asn_OP_SEQUENCE, + asn_DEF_PWSRestartIndication_tags_1, + sizeof(asn_DEF_PWSRestartIndication_tags_1) + /sizeof(asn_DEF_PWSRestartIndication_tags_1[0]), /* 1 */ + asn_DEF_PWSRestartIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_PWSRestartIndication_tags_1) + /sizeof(asn_DEF_PWSRestartIndication_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PWSRestartIndication_1, + 1, /* Elements count */ + &asn_SPC_PWSRestartIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/PWSRestartIndication.h b/src/du_app/F1AP/asn/PWSRestartIndication.h new file mode 100755 index 000000000..f49aa8fd5 --- /dev/null +++ b/src/du_app/F1AP/asn/PWSRestartIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PWSRestartIndication_H_ +#define _PWSRestartIndication_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PWSRestartIndication */ +typedef struct PWSRestartIndication { + ProtocolIE_Container_4587P37_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PWSRestartIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PWSRestartIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_PWSRestartIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_PWSRestartIndication_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PWSRestartIndication_H_ */ +#include diff --git a/src/du_app/F1AP/asn/PWSSystemInformation.c b/src/du_app/F1AP/asn/PWSSystemInformation.c new file mode 100755 index 000000000..ef150e24e --- /dev/null +++ b/src/du_app/F1AP/asn/PWSSystemInformation.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PWSSystemInformation.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_PWSSystemInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PWSSystemInformation, sIBtype), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SIBType_PWS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sIBtype" + }, + { ATF_NOFLAGS, 0, offsetof(struct PWSSystemInformation, sIBmessage), + (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 */ + "sIBmessage" + }, + { ATF_POINTER, 1, offsetof(struct PWSSystemInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P73, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_PWSSystemInformation_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_PWSSystemInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PWSSystemInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sIBtype */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sIBmessage */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_PWSSystemInformation_specs_1 = { + sizeof(struct PWSSystemInformation), + offsetof(struct PWSSystemInformation, _asn_ctx), + asn_MAP_PWSSystemInformation_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_PWSSystemInformation_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PWSSystemInformation = { + "PWSSystemInformation", + "PWSSystemInformation", + &asn_OP_SEQUENCE, + asn_DEF_PWSSystemInformation_tags_1, + sizeof(asn_DEF_PWSSystemInformation_tags_1) + /sizeof(asn_DEF_PWSSystemInformation_tags_1[0]), /* 1 */ + asn_DEF_PWSSystemInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_PWSSystemInformation_tags_1) + /sizeof(asn_DEF_PWSSystemInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PWSSystemInformation_1, + 3, /* Elements count */ + &asn_SPC_PWSSystemInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/PWSSystemInformation.h b/src/du_app/F1AP/asn/PWSSystemInformation.h new file mode 100755 index 000000000..6dfaf4475 --- /dev/null +++ b/src/du_app/F1AP/asn/PWSSystemInformation.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PWSSystemInformation_H_ +#define _PWSSystemInformation_H_ + + +#include + +/* Including external dependencies */ +#include "SIBType-PWS.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* PWSSystemInformation */ +typedef struct PWSSystemInformation { + SIBType_PWS_t sIBtype; + OCTET_STRING_t sIBmessage; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PWSSystemInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PWSSystemInformation; + +#ifdef __cplusplus +} +#endif + +#endif /* _PWSSystemInformation_H_ */ +#include diff --git a/src/du_app/F1AP/asn/PacketDelayBudget.c b/src/du_app/F1AP/asn/PacketDelayBudget.c new file mode 100755 index 000000000..63b7fc00f --- /dev/null +++ b/src/du_app/F1AP/asn/PacketDelayBudget.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PacketDelayBudget.h" + +int +PacketDelayBudget_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 <= 1023)) { + /* 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_PacketDelayBudget_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PacketDelayBudget_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 10, 10, 0, 1023 } /* (0..1023,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PacketDelayBudget_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PacketDelayBudget = { + "PacketDelayBudget", + "PacketDelayBudget", + &asn_OP_NativeInteger, + asn_DEF_PacketDelayBudget_tags_1, + sizeof(asn_DEF_PacketDelayBudget_tags_1) + /sizeof(asn_DEF_PacketDelayBudget_tags_1[0]), /* 1 */ + asn_DEF_PacketDelayBudget_tags_1, /* Same as above */ + sizeof(asn_DEF_PacketDelayBudget_tags_1) + /sizeof(asn_DEF_PacketDelayBudget_tags_1[0]), /* 1 */ + { &asn_OER_type_PacketDelayBudget_constr_1, &asn_PER_type_PacketDelayBudget_constr_1, PacketDelayBudget_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/PacketDelayBudget.h b/src/du_app/F1AP/asn/PacketDelayBudget.h new file mode 100755 index 000000000..e7531ba80 --- /dev/null +++ b/src/du_app/F1AP/asn/PacketDelayBudget.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PacketDelayBudget_H_ +#define _PacketDelayBudget_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PacketDelayBudget */ +typedef long PacketDelayBudget_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PacketDelayBudget_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PacketDelayBudget; +asn_struct_free_f PacketDelayBudget_free; +asn_struct_print_f PacketDelayBudget_print; +asn_constr_check_f PacketDelayBudget_constraint; +ber_type_decoder_f PacketDelayBudget_decode_ber; +der_type_encoder_f PacketDelayBudget_encode_der; +xer_type_decoder_f PacketDelayBudget_decode_xer; +xer_type_encoder_f PacketDelayBudget_encode_xer; +oer_type_decoder_f PacketDelayBudget_decode_oer; +oer_type_encoder_f PacketDelayBudget_encode_oer; +per_type_decoder_f PacketDelayBudget_decode_uper; +per_type_encoder_f PacketDelayBudget_encode_uper; +per_type_decoder_f PacketDelayBudget_decode_aper; +per_type_encoder_f PacketDelayBudget_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PacketDelayBudget_H_ */ +#include diff --git a/src/du_app/F1AP/asn/PacketErrorRate.c b/src/du_app/F1AP/asn/PacketErrorRate.c new file mode 100755 index 000000000..42ed5ce2e --- /dev/null +++ b/src/du_app/F1AP/asn/PacketErrorRate.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PacketErrorRate.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_PacketErrorRate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PacketErrorRate, pER_Scalar), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PER_Scalar, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pER-Scalar" + }, + { ATF_NOFLAGS, 0, offsetof(struct PacketErrorRate, pER_Exponent), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PER_Exponent, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pER-Exponent" + }, + { ATF_POINTER, 1, offsetof(struct PacketErrorRate, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P68, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_PacketErrorRate_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_PacketErrorRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PacketErrorRate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pER-Scalar */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pER-Exponent */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PacketErrorRate_specs_1 = { + sizeof(struct PacketErrorRate), + offsetof(struct PacketErrorRate, _asn_ctx), + asn_MAP_PacketErrorRate_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_PacketErrorRate_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PacketErrorRate = { + "PacketErrorRate", + "PacketErrorRate", + &asn_OP_SEQUENCE, + asn_DEF_PacketErrorRate_tags_1, + sizeof(asn_DEF_PacketErrorRate_tags_1) + /sizeof(asn_DEF_PacketErrorRate_tags_1[0]), /* 1 */ + asn_DEF_PacketErrorRate_tags_1, /* Same as above */ + sizeof(asn_DEF_PacketErrorRate_tags_1) + /sizeof(asn_DEF_PacketErrorRate_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PacketErrorRate_1, + 3, /* Elements count */ + &asn_SPC_PacketErrorRate_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/PacketErrorRate.h b/src/du_app/F1AP/asn/PacketErrorRate.h new file mode 100755 index 000000000..a16a9d31f --- /dev/null +++ b/src/du_app/F1AP/asn/PacketErrorRate.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PacketErrorRate_H_ +#define _PacketErrorRate_H_ + + +#include + +/* Including external dependencies */ +#include "PER-Scalar.h" +#include "PER-Exponent.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* PacketErrorRate */ +typedef struct PacketErrorRate { + PER_Scalar_t pER_Scalar; + PER_Exponent_t pER_Exponent; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PacketErrorRate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PacketErrorRate; +extern asn_SEQUENCE_specifics_t asn_SPC_PacketErrorRate_specs_1; +extern asn_TYPE_member_t asn_MBR_PacketErrorRate_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PacketErrorRate_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Paging.c b/src/du_app/F1AP/asn/Paging.c new file mode 100755 index 000000000..b38a8a199 --- /dev/null +++ b/src/du_app/F1AP/asn/Paging.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Paging.h" + +asn_TYPE_member_t asn_MBR_Paging_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Paging, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P35, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_Paging_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Paging_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Paging_specs_1 = { + sizeof(struct Paging), + offsetof(struct Paging, _asn_ctx), + asn_MAP_Paging_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_Paging = { + "Paging", + "Paging", + &asn_OP_SEQUENCE, + asn_DEF_Paging_tags_1, + sizeof(asn_DEF_Paging_tags_1) + /sizeof(asn_DEF_Paging_tags_1[0]), /* 1 */ + asn_DEF_Paging_tags_1, /* Same as above */ + sizeof(asn_DEF_Paging_tags_1) + /sizeof(asn_DEF_Paging_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Paging_1, + 1, /* Elements count */ + &asn_SPC_Paging_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Paging.h b/src/du_app/F1AP/asn/Paging.h new file mode 100755 index 000000000..2e7090b80 --- /dev/null +++ b/src/du_app/F1AP/asn/Paging.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Paging_H_ +#define _Paging_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Paging */ +typedef struct Paging { + ProtocolIE_Container_4587P35_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Paging_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Paging; +extern asn_SEQUENCE_specifics_t asn_SPC_Paging_specs_1; +extern asn_TYPE_member_t asn_MBR_Paging_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Paging_H_ */ +#include diff --git a/src/du_app/F1AP/asn/PagingCell-Item.c b/src/du_app/F1AP/asn/PagingCell-Item.c new file mode 100755 index 000000000..5fb443864 --- /dev/null +++ b/src/du_app/F1AP/asn/PagingCell-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PagingCell-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_PagingCell_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PagingCell_Item, 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, 1, offsetof(struct PagingCell_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P69, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_PagingCell_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_PagingCell_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PagingCell_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_PagingCell_Item_specs_1 = { + sizeof(struct PagingCell_Item), + offsetof(struct PagingCell_Item, _asn_ctx), + asn_MAP_PagingCell_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_PagingCell_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PagingCell_Item = { + "PagingCell-Item", + "PagingCell-Item", + &asn_OP_SEQUENCE, + asn_DEF_PagingCell_Item_tags_1, + sizeof(asn_DEF_PagingCell_Item_tags_1) + /sizeof(asn_DEF_PagingCell_Item_tags_1[0]), /* 1 */ + asn_DEF_PagingCell_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_PagingCell_Item_tags_1) + /sizeof(asn_DEF_PagingCell_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PagingCell_Item_1, + 2, /* Elements count */ + &asn_SPC_PagingCell_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/PagingCell-Item.h b/src/du_app/F1AP/asn/PagingCell-Item.h new file mode 100755 index 000000000..77948fecd --- /dev/null +++ b/src/du_app/F1AP/asn/PagingCell-Item.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PagingCell_Item_H_ +#define _PagingCell_Item_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* PagingCell-Item */ +typedef struct PagingCell_Item { + NRCGI_t nRCGI; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PagingCell_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PagingCell_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _PagingCell_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/PagingCell-list.c b/src/du_app/F1AP/asn/PagingCell-list.c new file mode 100755 index 000000000..76128bf39 --- /dev/null +++ b/src/du_app/F1AP/asn/PagingCell-list.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PagingCell-list.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_PagingCell_list_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..512)) */}; +static asn_per_constraints_t asn_PER_type_PagingCell_list_constr_1 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_PagingCell_list_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P55, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PagingCell_list_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_PagingCell_list_specs_1 = { + sizeof(struct PagingCell_list), + offsetof(struct PagingCell_list, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PagingCell_list = { + "PagingCell-list", + "PagingCell-list", + &asn_OP_SEQUENCE_OF, + asn_DEF_PagingCell_list_tags_1, + sizeof(asn_DEF_PagingCell_list_tags_1) + /sizeof(asn_DEF_PagingCell_list_tags_1[0]), /* 1 */ + asn_DEF_PagingCell_list_tags_1, /* Same as above */ + sizeof(asn_DEF_PagingCell_list_tags_1) + /sizeof(asn_DEF_PagingCell_list_tags_1[0]), /* 1 */ + { &asn_OER_type_PagingCell_list_constr_1, &asn_PER_type_PagingCell_list_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PagingCell_list_1, + 1, /* Single element */ + &asn_SPC_PagingCell_list_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/PagingCell-list.h b/src/du_app/F1AP/asn/PagingCell-list.h new file mode 100755 index 000000000..f159300d1 --- /dev/null +++ b/src/du_app/F1AP/asn/PagingCell-list.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PagingCell_list_H_ +#define _PagingCell_list_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* PagingCell-list */ +typedef struct PagingCell_list { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PagingCell_list_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PagingCell_list; + +#ifdef __cplusplus +} +#endif + +#endif /* _PagingCell_list_H_ */ +#include diff --git a/src/du_app/F1AP/asn/PagingDRX.c b/src/du_app/F1AP/asn/PagingDRX.c new file mode 100755 index 000000000..7057e8af0 --- /dev/null +++ b/src/du_app/F1AP/asn/PagingDRX.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PagingDRX.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PagingDRX_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_PagingDRX_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_PagingDRX_value2enum_1[] = { + { 0, 3, "v32" }, + { 1, 3, "v64" }, + { 2, 4, "v128" }, + { 3, 4, "v256" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PagingDRX_enum2value_1[] = { + 2, /* v128(2) */ + 3, /* v256(3) */ + 0, /* v32(0) */ + 1 /* v64(1) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_PagingDRX_specs_1 = { + asn_MAP_PagingDRX_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PagingDRX_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_PagingDRX_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PagingDRX = { + "PagingDRX", + "PagingDRX", + &asn_OP_NativeEnumerated, + asn_DEF_PagingDRX_tags_1, + sizeof(asn_DEF_PagingDRX_tags_1) + /sizeof(asn_DEF_PagingDRX_tags_1[0]), /* 1 */ + asn_DEF_PagingDRX_tags_1, /* Same as above */ + sizeof(asn_DEF_PagingDRX_tags_1) + /sizeof(asn_DEF_PagingDRX_tags_1[0]), /* 1 */ + { &asn_OER_type_PagingDRX_constr_1, &asn_PER_type_PagingDRX_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PagingDRX_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/PagingDRX.h b/src/du_app/F1AP/asn/PagingDRX.h new file mode 100755 index 000000000..5de7f3e91 --- /dev/null +++ b/src/du_app/F1AP/asn/PagingDRX.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PagingDRX_H_ +#define _PagingDRX_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PagingDRX { + PagingDRX_v32 = 0, + PagingDRX_v64 = 1, + PagingDRX_v128 = 2, + PagingDRX_v256 = 3 + /* + * Enumeration is extensible + */ +} e_PagingDRX; + +/* PagingDRX */ +typedef long PagingDRX_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PagingDRX; +asn_struct_free_f PagingDRX_free; +asn_struct_print_f PagingDRX_print; +asn_constr_check_f PagingDRX_constraint; +ber_type_decoder_f PagingDRX_decode_ber; +der_type_encoder_f PagingDRX_encode_der; +xer_type_decoder_f PagingDRX_decode_xer; +xer_type_encoder_f PagingDRX_encode_xer; +oer_type_decoder_f PagingDRX_decode_oer; +oer_type_encoder_f PagingDRX_encode_oer; +per_type_decoder_f PagingDRX_decode_uper; +per_type_encoder_f PagingDRX_encode_uper; +per_type_decoder_f PagingDRX_decode_aper; +per_type_encoder_f PagingDRX_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PagingDRX_H_ */ +#include diff --git a/src/du_app/F1AP/asn/PagingIdentity.c b/src/du_app/F1AP/asn/PagingIdentity.c new file mode 100755 index 000000000..baa0a9eea --- /dev/null +++ b/src/du_app/F1AP/asn/PagingIdentity.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PagingIdentity.h" + +#include "RANUEPagingIdentity.h" +#include "CNUEPagingIdentity.h" +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_PagingIdentity_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_PagingIdentity_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_PagingIdentity_1[] = { + { ATF_POINTER, 0, offsetof(struct PagingIdentity, choice.rANUEPagingIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RANUEPagingIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rANUEPagingIdentity" + }, + { ATF_POINTER, 0, offsetof(struct PagingIdentity, choice.cNUEPagingIdentity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_CNUEPagingIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cNUEPagingIdentity" + }, + { ATF_POINTER, 0, offsetof(struct PagingIdentity, choice.choice_extension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_SingleContainer_4590P64, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-extension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_PagingIdentity_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rANUEPagingIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cNUEPagingIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-extension */ +}; +static asn_CHOICE_specifics_t asn_SPC_PagingIdentity_specs_1 = { + sizeof(struct PagingIdentity), + offsetof(struct PagingIdentity, _asn_ctx), + offsetof(struct PagingIdentity, present), + sizeof(((struct PagingIdentity *)0)->present), + asn_MAP_PagingIdentity_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_PagingIdentity = { + "PagingIdentity", + "PagingIdentity", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_PagingIdentity_constr_1, &asn_PER_type_PagingIdentity_constr_1, CHOICE_constraint }, + asn_MBR_PagingIdentity_1, + 3, /* Elements count */ + &asn_SPC_PagingIdentity_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/PagingIdentity.h b/src/du_app/F1AP/asn/PagingIdentity.h new file mode 100755 index 000000000..33bf9216b --- /dev/null +++ b/src/du_app/F1AP/asn/PagingIdentity.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PagingIdentity_H_ +#define _PagingIdentity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PagingIdentity_PR { + PagingIdentity_PR_NOTHING, /* No components present */ + PagingIdentity_PR_rANUEPagingIdentity, + PagingIdentity_PR_cNUEPagingIdentity, + PagingIdentity_PR_choice_extension +} PagingIdentity_PR; + +/* Forward declarations */ +struct RANUEPagingIdentity; +struct CNUEPagingIdentity; +struct ProtocolIE_SingleContainer; + +/* PagingIdentity */ +typedef struct PagingIdentity { + PagingIdentity_PR present; + union PagingIdentity_u { + struct RANUEPagingIdentity *rANUEPagingIdentity; + struct CNUEPagingIdentity *cNUEPagingIdentity; + struct ProtocolIE_SingleContainer *choice_extension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PagingIdentity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PagingIdentity; + +#ifdef __cplusplus +} +#endif + +#endif /* _PagingIdentity_H_ */ +#include diff --git a/src/du_app/F1AP/asn/PagingOrigin.c b/src/du_app/F1AP/asn/PagingOrigin.c new file mode 100755 index 000000000..e22ed9ff0 --- /dev/null +++ b/src/du_app/F1AP/asn/PagingOrigin.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PagingOrigin.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PagingOrigin_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_PagingOrigin_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PagingOrigin_value2enum_1[] = { + { 0, 8, "non-3gpp" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PagingOrigin_enum2value_1[] = { + 0 /* non-3gpp(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_PagingOrigin_specs_1 = { + asn_MAP_PagingOrigin_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PagingOrigin_enum2value_1, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PagingOrigin_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PagingOrigin = { + "PagingOrigin", + "PagingOrigin", + &asn_OP_NativeEnumerated, + asn_DEF_PagingOrigin_tags_1, + sizeof(asn_DEF_PagingOrigin_tags_1) + /sizeof(asn_DEF_PagingOrigin_tags_1[0]), /* 1 */ + asn_DEF_PagingOrigin_tags_1, /* Same as above */ + sizeof(asn_DEF_PagingOrigin_tags_1) + /sizeof(asn_DEF_PagingOrigin_tags_1[0]), /* 1 */ + { &asn_OER_type_PagingOrigin_constr_1, &asn_PER_type_PagingOrigin_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PagingOrigin_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/PagingOrigin.h b/src/du_app/F1AP/asn/PagingOrigin.h new file mode 100755 index 000000000..b57b21be5 --- /dev/null +++ b/src/du_app/F1AP/asn/PagingOrigin.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PagingOrigin_H_ +#define _PagingOrigin_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PagingOrigin { + PagingOrigin_non_3gpp = 0 + /* + * Enumeration is extensible + */ +} e_PagingOrigin; + +/* PagingOrigin */ +typedef long PagingOrigin_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PagingOrigin; +asn_struct_free_f PagingOrigin_free; +asn_struct_print_f PagingOrigin_print; +asn_constr_check_f PagingOrigin_constraint; +ber_type_decoder_f PagingOrigin_decode_ber; +der_type_encoder_f PagingOrigin_encode_der; +xer_type_decoder_f PagingOrigin_decode_xer; +xer_type_encoder_f PagingOrigin_encode_xer; +oer_type_decoder_f PagingOrigin_decode_oer; +oer_type_encoder_f PagingOrigin_encode_oer; +per_type_decoder_f PagingOrigin_decode_uper; +per_type_encoder_f PagingOrigin_encode_uper; +per_type_decoder_f PagingOrigin_decode_aper; +per_type_encoder_f PagingOrigin_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PagingOrigin_H_ */ +#include diff --git a/src/du_app/F1AP/asn/PagingPriority.c b/src/du_app/F1AP/asn/PagingPriority.c new file mode 100755 index 000000000..8879d2692 --- /dev/null +++ b/src/du_app/F1AP/asn/PagingPriority.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PagingPriority.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PagingPriority_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_PagingPriority_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_PagingPriority_value2enum_1[] = { + { 0, 10, "priolevel1" }, + { 1, 10, "priolevel2" }, + { 2, 10, "priolevel3" }, + { 3, 10, "priolevel4" }, + { 4, 10, "priolevel5" }, + { 5, 10, "priolevel6" }, + { 6, 10, "priolevel7" }, + { 7, 10, "priolevel8" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_PagingPriority_enum2value_1[] = { + 0, /* priolevel1(0) */ + 1, /* priolevel2(1) */ + 2, /* priolevel3(2) */ + 3, /* priolevel4(3) */ + 4, /* priolevel5(4) */ + 5, /* priolevel6(5) */ + 6, /* priolevel7(6) */ + 7 /* priolevel8(7) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_PagingPriority_specs_1 = { + asn_MAP_PagingPriority_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_PagingPriority_enum2value_1, /* N => "tag"; sorted by N */ + 8, /* Number of elements in the maps */ + 9, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_PagingPriority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PagingPriority = { + "PagingPriority", + "PagingPriority", + &asn_OP_NativeEnumerated, + asn_DEF_PagingPriority_tags_1, + sizeof(asn_DEF_PagingPriority_tags_1) + /sizeof(asn_DEF_PagingPriority_tags_1[0]), /* 1 */ + asn_DEF_PagingPriority_tags_1, /* Same as above */ + sizeof(asn_DEF_PagingPriority_tags_1) + /sizeof(asn_DEF_PagingPriority_tags_1[0]), /* 1 */ + { &asn_OER_type_PagingPriority_constr_1, &asn_PER_type_PagingPriority_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PagingPriority_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/PagingPriority.h b/src/du_app/F1AP/asn/PagingPriority.h new file mode 100755 index 000000000..34bdb0278 --- /dev/null +++ b/src/du_app/F1AP/asn/PagingPriority.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PagingPriority_H_ +#define _PagingPriority_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PagingPriority { + PagingPriority_priolevel1 = 0, + PagingPriority_priolevel2 = 1, + PagingPriority_priolevel3 = 2, + PagingPriority_priolevel4 = 3, + PagingPriority_priolevel5 = 4, + PagingPriority_priolevel6 = 5, + PagingPriority_priolevel7 = 6, + PagingPriority_priolevel8 = 7 + /* + * Enumeration is extensible + */ +} e_PagingPriority; + +/* PagingPriority */ +typedef long PagingPriority_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PagingPriority; +asn_struct_free_f PagingPriority_free; +asn_struct_print_f PagingPriority_print; +asn_constr_check_f PagingPriority_constraint; +ber_type_decoder_f PagingPriority_decode_ber; +der_type_encoder_f PagingPriority_encode_der; +xer_type_decoder_f PagingPriority_decode_xer; +xer_type_encoder_f PagingPriority_encode_xer; +oer_type_decoder_f PagingPriority_decode_oer; +oer_type_encoder_f PagingPriority_encode_oer; +per_type_decoder_f PagingPriority_decode_uper; +per_type_encoder_f PagingPriority_encode_uper; +per_type_decoder_f PagingPriority_decode_aper; +per_type_encoder_f PagingPriority_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PagingPriority_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Ph-InfoSCG.c b/src/du_app/F1AP/asn/Ph-InfoSCG.c new file mode 100755 index 000000000..55c4c6a6d --- /dev/null +++ b/src/du_app/F1AP/asn/Ph-InfoSCG.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Ph-InfoSCG.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_Ph_InfoSCG_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Ph_InfoSCG = { + "Ph-InfoSCG", + "Ph-InfoSCG", + &asn_OP_OCTET_STRING, + asn_DEF_Ph_InfoSCG_tags_1, + sizeof(asn_DEF_Ph_InfoSCG_tags_1) + /sizeof(asn_DEF_Ph_InfoSCG_tags_1[0]), /* 1 */ + asn_DEF_Ph_InfoSCG_tags_1, /* Same as above */ + sizeof(asn_DEF_Ph_InfoSCG_tags_1) + /sizeof(asn_DEF_Ph_InfoSCG_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Ph-InfoSCG.h b/src/du_app/F1AP/asn/Ph-InfoSCG.h new file mode 100755 index 000000000..6708376ac --- /dev/null +++ b/src/du_app/F1AP/asn/Ph-InfoSCG.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Ph_InfoSCG_H_ +#define _Ph_InfoSCG_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Ph-InfoSCG */ +typedef OCTET_STRING_t Ph_InfoSCG_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Ph_InfoSCG; +asn_struct_free_f Ph_InfoSCG_free; +asn_struct_print_f Ph_InfoSCG_print; +asn_constr_check_f Ph_InfoSCG_constraint; +ber_type_decoder_f Ph_InfoSCG_decode_ber; +der_type_encoder_f Ph_InfoSCG_encode_der; +xer_type_decoder_f Ph_InfoSCG_decode_xer; +xer_type_encoder_f Ph_InfoSCG_encode_xer; +oer_type_decoder_f Ph_InfoSCG_decode_oer; +oer_type_encoder_f Ph_InfoSCG_encode_oer; +per_type_decoder_f Ph_InfoSCG_decode_uper; +per_type_encoder_f Ph_InfoSCG_encode_uper; +per_type_decoder_f Ph_InfoSCG_decode_aper; +per_type_encoder_f Ph_InfoSCG_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Ph_InfoSCG_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Potential-SpCell-Item.c b/src/du_app/F1AP/asn/Potential-SpCell-Item.c new file mode 100755 index 000000000..2e5fff502 --- /dev/null +++ b/src/du_app/F1AP/asn/Potential-SpCell-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Potential-SpCell-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_Potential_SpCell_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Potential_SpCell_Item, potential_SpCell_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRCGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "potential-SpCell-ID" + }, + { ATF_POINTER, 1, offsetof(struct Potential_SpCell_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P71, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_Potential_SpCell_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_Potential_SpCell_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Potential_SpCell_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* potential-SpCell-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Potential_SpCell_Item_specs_1 = { + sizeof(struct Potential_SpCell_Item), + offsetof(struct Potential_SpCell_Item, _asn_ctx), + asn_MAP_Potential_SpCell_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_Potential_SpCell_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Potential_SpCell_Item = { + "Potential-SpCell-Item", + "Potential-SpCell-Item", + &asn_OP_SEQUENCE, + asn_DEF_Potential_SpCell_Item_tags_1, + sizeof(asn_DEF_Potential_SpCell_Item_tags_1) + /sizeof(asn_DEF_Potential_SpCell_Item_tags_1[0]), /* 1 */ + asn_DEF_Potential_SpCell_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_Potential_SpCell_Item_tags_1) + /sizeof(asn_DEF_Potential_SpCell_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Potential_SpCell_Item_1, + 2, /* Elements count */ + &asn_SPC_Potential_SpCell_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Potential-SpCell-Item.h b/src/du_app/F1AP/asn/Potential-SpCell-Item.h new file mode 100755 index 000000000..9b2a94b3b --- /dev/null +++ b/src/du_app/F1AP/asn/Potential-SpCell-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Potential_SpCell_Item_H_ +#define _Potential_SpCell_Item_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* Potential-SpCell-Item */ +typedef struct Potential_SpCell_Item { + NRCGI_t potential_SpCell_ID; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Potential_SpCell_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Potential_SpCell_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _Potential_SpCell_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Potential-SpCell-List.c b/src/du_app/F1AP/asn/Potential-SpCell-List.c new file mode 100755 index 000000000..226166c4c --- /dev/null +++ b/src/du_app/F1AP/asn/Potential-SpCell-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Potential-SpCell-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_Potential_SpCell_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..64)) */}; +static asn_per_constraints_t asn_PER_type_Potential_SpCell_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 7, 7, 0, 64 } /* (SIZE(0..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_Potential_SpCell_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P29, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Potential_SpCell_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Potential_SpCell_List_specs_1 = { + sizeof(struct Potential_SpCell_List), + offsetof(struct Potential_SpCell_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Potential_SpCell_List = { + "Potential-SpCell-List", + "Potential-SpCell-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_Potential_SpCell_List_tags_1, + sizeof(asn_DEF_Potential_SpCell_List_tags_1) + /sizeof(asn_DEF_Potential_SpCell_List_tags_1[0]), /* 1 */ + asn_DEF_Potential_SpCell_List_tags_1, /* Same as above */ + sizeof(asn_DEF_Potential_SpCell_List_tags_1) + /sizeof(asn_DEF_Potential_SpCell_List_tags_1[0]), /* 1 */ + { &asn_OER_type_Potential_SpCell_List_constr_1, &asn_PER_type_Potential_SpCell_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Potential_SpCell_List_1, + 1, /* Single element */ + &asn_SPC_Potential_SpCell_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Potential-SpCell-List.h b/src/du_app/F1AP/asn/Potential-SpCell-List.h new file mode 100755 index 000000000..0b40db2f4 --- /dev/null +++ b/src/du_app/F1AP/asn/Potential-SpCell-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Potential_SpCell_List_H_ +#define _Potential_SpCell_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* Potential-SpCell-List */ +typedef struct Potential_SpCell_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Potential_SpCell_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Potential_SpCell_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _Potential_SpCell_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Pre-emptionCapability.c b/src/du_app/F1AP/asn/Pre-emptionCapability.c new file mode 100755 index 000000000..442a6e4e7 --- /dev/null +++ b/src/du_app/F1AP/asn/Pre-emptionCapability.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Pre-emptionCapability.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Pre_emptionCapability_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_Pre_emptionCapability_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_Pre_emptionCapability_value2enum_1[] = { + { 0, 29, "shall-not-trigger-pre-emption" }, + { 1, 23, "may-trigger-pre-emption" } +}; +static const unsigned int asn_MAP_Pre_emptionCapability_enum2value_1[] = { + 1, /* may-trigger-pre-emption(1) */ + 0 /* shall-not-trigger-pre-emption(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Pre_emptionCapability_specs_1 = { + asn_MAP_Pre_emptionCapability_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Pre_emptionCapability_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_Pre_emptionCapability_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Pre_emptionCapability = { + "Pre-emptionCapability", + "Pre-emptionCapability", + &asn_OP_NativeEnumerated, + asn_DEF_Pre_emptionCapability_tags_1, + sizeof(asn_DEF_Pre_emptionCapability_tags_1) + /sizeof(asn_DEF_Pre_emptionCapability_tags_1[0]), /* 1 */ + asn_DEF_Pre_emptionCapability_tags_1, /* Same as above */ + sizeof(asn_DEF_Pre_emptionCapability_tags_1) + /sizeof(asn_DEF_Pre_emptionCapability_tags_1[0]), /* 1 */ + { &asn_OER_type_Pre_emptionCapability_constr_1, &asn_PER_type_Pre_emptionCapability_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Pre_emptionCapability_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Pre-emptionCapability.h b/src/du_app/F1AP/asn/Pre-emptionCapability.h new file mode 100755 index 000000000..deeaf195f --- /dev/null +++ b/src/du_app/F1AP/asn/Pre-emptionCapability.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Pre_emptionCapability_H_ +#define _Pre_emptionCapability_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Pre_emptionCapability { + Pre_emptionCapability_shall_not_trigger_pre_emption = 0, + Pre_emptionCapability_may_trigger_pre_emption = 1 +} e_Pre_emptionCapability; + +/* Pre-emptionCapability */ +typedef long Pre_emptionCapability_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Pre_emptionCapability_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Pre_emptionCapability; +extern const asn_INTEGER_specifics_t asn_SPC_Pre_emptionCapability_specs_1; +asn_struct_free_f Pre_emptionCapability_free; +asn_struct_print_f Pre_emptionCapability_print; +asn_constr_check_f Pre_emptionCapability_constraint; +ber_type_decoder_f Pre_emptionCapability_decode_ber; +der_type_encoder_f Pre_emptionCapability_encode_der; +xer_type_decoder_f Pre_emptionCapability_decode_xer; +xer_type_encoder_f Pre_emptionCapability_encode_xer; +oer_type_decoder_f Pre_emptionCapability_decode_oer; +oer_type_encoder_f Pre_emptionCapability_encode_oer; +per_type_decoder_f Pre_emptionCapability_decode_uper; +per_type_encoder_f Pre_emptionCapability_encode_uper; +per_type_decoder_f Pre_emptionCapability_decode_aper; +per_type_encoder_f Pre_emptionCapability_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Pre_emptionCapability_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Pre-emptionVulnerability.c b/src/du_app/F1AP/asn/Pre-emptionVulnerability.c new file mode 100755 index 000000000..3145fe7b2 --- /dev/null +++ b/src/du_app/F1AP/asn/Pre-emptionVulnerability.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Pre-emptionVulnerability.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Pre_emptionVulnerability_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_Pre_emptionVulnerability_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_Pre_emptionVulnerability_value2enum_1[] = { + { 0, 16, "not-pre-emptable" }, + { 1, 12, "pre-emptable" } +}; +static const unsigned int asn_MAP_Pre_emptionVulnerability_enum2value_1[] = { + 0, /* not-pre-emptable(0) */ + 1 /* pre-emptable(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Pre_emptionVulnerability_specs_1 = { + asn_MAP_Pre_emptionVulnerability_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Pre_emptionVulnerability_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_Pre_emptionVulnerability_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Pre_emptionVulnerability = { + "Pre-emptionVulnerability", + "Pre-emptionVulnerability", + &asn_OP_NativeEnumerated, + asn_DEF_Pre_emptionVulnerability_tags_1, + sizeof(asn_DEF_Pre_emptionVulnerability_tags_1) + /sizeof(asn_DEF_Pre_emptionVulnerability_tags_1[0]), /* 1 */ + asn_DEF_Pre_emptionVulnerability_tags_1, /* Same as above */ + sizeof(asn_DEF_Pre_emptionVulnerability_tags_1) + /sizeof(asn_DEF_Pre_emptionVulnerability_tags_1[0]), /* 1 */ + { &asn_OER_type_Pre_emptionVulnerability_constr_1, &asn_PER_type_Pre_emptionVulnerability_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Pre_emptionVulnerability_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Pre-emptionVulnerability.h b/src/du_app/F1AP/asn/Pre-emptionVulnerability.h new file mode 100755 index 000000000..c1136ce3e --- /dev/null +++ b/src/du_app/F1AP/asn/Pre-emptionVulnerability.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Pre_emptionVulnerability_H_ +#define _Pre_emptionVulnerability_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Pre_emptionVulnerability { + Pre_emptionVulnerability_not_pre_emptable = 0, + Pre_emptionVulnerability_pre_emptable = 1 +} e_Pre_emptionVulnerability; + +/* Pre-emptionVulnerability */ +typedef long Pre_emptionVulnerability_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Pre_emptionVulnerability_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Pre_emptionVulnerability; +extern const asn_INTEGER_specifics_t asn_SPC_Pre_emptionVulnerability_specs_1; +asn_struct_free_f Pre_emptionVulnerability_free; +asn_struct_print_f Pre_emptionVulnerability_print; +asn_constr_check_f Pre_emptionVulnerability_constraint; +ber_type_decoder_f Pre_emptionVulnerability_decode_ber; +der_type_encoder_f Pre_emptionVulnerability_encode_der; +xer_type_decoder_f Pre_emptionVulnerability_decode_xer; +xer_type_encoder_f Pre_emptionVulnerability_encode_xer; +oer_type_decoder_f Pre_emptionVulnerability_decode_oer; +oer_type_encoder_f Pre_emptionVulnerability_encode_oer; +per_type_decoder_f Pre_emptionVulnerability_decode_uper; +per_type_encoder_f Pre_emptionVulnerability_encode_uper; +per_type_decoder_f Pre_emptionVulnerability_decode_aper; +per_type_encoder_f Pre_emptionVulnerability_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Pre_emptionVulnerability_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Presence.c b/src/du_app/F1AP/asn/Presence.c new file mode 100755 index 000000000..f13c784ff --- /dev/null +++ b/src/du_app/F1AP/asn/Presence.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-CommonDataTypes" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Presence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Presence_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_Presence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_Presence_value2enum_1[] = { + { 0, 8, "optional" }, + { 1, 11, "conditional" }, + { 2, 9, "mandatory" } +}; +static const unsigned int asn_MAP_Presence_enum2value_1[] = { + 1, /* conditional(1) */ + 2, /* mandatory(2) */ + 0 /* optional(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Presence_specs_1 = { + asn_MAP_Presence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Presence_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_Presence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Presence = { + "Presence", + "Presence", + &asn_OP_NativeEnumerated, + asn_DEF_Presence_tags_1, + sizeof(asn_DEF_Presence_tags_1) + /sizeof(asn_DEF_Presence_tags_1[0]), /* 1 */ + asn_DEF_Presence_tags_1, /* Same as above */ + sizeof(asn_DEF_Presence_tags_1) + /sizeof(asn_DEF_Presence_tags_1[0]), /* 1 */ + { &asn_OER_type_Presence_constr_1, &asn_PER_type_Presence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Presence_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Presence.h b/src/du_app/F1AP/asn/Presence.h new file mode 100755 index 000000000..91725b458 --- /dev/null +++ b/src/du_app/F1AP/asn/Presence.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-CommonDataTypes" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Presence_H_ +#define _Presence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Presence { + Presence_optional = 0, + Presence_conditional = 1, + Presence_mandatory = 2 +} e_Presence; + +/* Presence */ +typedef long Presence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Presence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Presence; +extern const asn_INTEGER_specifics_t asn_SPC_Presence_specs_1; +asn_struct_free_f Presence_free; +asn_struct_print_f Presence_print; +asn_constr_check_f Presence_constraint; +ber_type_decoder_f Presence_decode_ber; +der_type_encoder_f Presence_encode_der; +xer_type_decoder_f Presence_decode_xer; +xer_type_encoder_f Presence_encode_xer; +oer_type_decoder_f Presence_decode_oer; +oer_type_encoder_f Presence_encode_oer; +per_type_decoder_f Presence_decode_uper; +per_type_encoder_f Presence_encode_uper; +per_type_decoder_f Presence_decode_aper; +per_type_encoder_f Presence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Presence_H_ */ +#include diff --git a/src/du_app/F1AP/asn/PrintableString.c b/src/du_app/F1AP/asn/PrintableString.c new file mode 100755 index 000000000..8fc39399e --- /dev/null +++ b/src/du_app/F1AP/asn/PrintableString.c @@ -0,0 +1,130 @@ +/*- + * Copyright (c) 2003, 2004, 2006 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * ASN.1:1984 (X.409) + */ +static const int _PrintableString_alphabet[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ +10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ + 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ +38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ + 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ +64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ +}; +static const int _PrintableString_code2value[74] = { +32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, +55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, +75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, +97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, +113,114,115,116,117,118,119,120,121,122}; + +/* + * PrintableString basic type description. + */ +static const ber_tlv_tag_t asn_DEF_PrintableString_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)), /* [UNIVERSAL 19] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ +}; +static int asn_DEF_PrintableString_v2c(unsigned int value) { + return _PrintableString_alphabet[value > 255 ? 0 : value] - 1; +} +static int asn_DEF_PrintableString_c2v(unsigned int code) { + if(code < 74) + return _PrintableString_code2value[code]; + return -1; +} +static asn_per_constraints_t asn_DEF_PrintableString_per_constraints = { + { APC_CONSTRAINED, 4, 4, 0x20, 0x39 }, /* Value */ + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, /* Size */ + asn_DEF_PrintableString_v2c, + asn_DEF_PrintableString_c2v +}; +asn_TYPE_operation_t asn_OP_PrintableString = { + OCTET_STRING_free, + OCTET_STRING_print_utf8, /* ASCII subset */ + OCTET_STRING_compare, + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, + OCTET_STRING_decode_xer_utf8, + OCTET_STRING_encode_xer_utf8, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + OCTET_STRING_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_PrintableString = { + "PrintableString", + "PrintableString", + &asn_OP_PrintableString, + asn_DEF_PrintableString_tags, + sizeof(asn_DEF_PrintableString_tags) + / sizeof(asn_DEF_PrintableString_tags[0]) - 1, + asn_DEF_PrintableString_tags, + sizeof(asn_DEF_PrintableString_tags) + / sizeof(asn_DEF_PrintableString_tags[0]), + { 0, &asn_DEF_PrintableString_per_constraints, PrintableString_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +int +PrintableString_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, + void *app_key) { + const PrintableString_t *st = (const PrintableString_t *)sptr; + + if(st && st->buf) { + uint8_t *buf = st->buf; + uint8_t *end = buf + st->size; + + /* + * Check the alphabet of the PrintableString. + * ASN.1:1984 (X.409) + */ + for(; buf < end; buf++) { + if(!_PrintableString_alphabet[*buf]) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value byte %ld (%d) " + "not in PrintableString alphabet " + "(%s:%d)", + td->name, + (long)((buf - st->buf) + 1), + *buf, + __FILE__, __LINE__); + return -1; + } + } + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + return 0; +} diff --git a/src/du_app/F1AP/asn/PrintableString.h b/src/du_app/F1AP/asn/PrintableString.h new file mode 100755 index 000000000..8c2b61ab2 --- /dev/null +++ b/src/du_app/F1AP/asn/PrintableString.h @@ -0,0 +1,37 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PrintableString_H_ +#define _PrintableString_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OCTET_STRING_t PrintableString_t; /* Implemented via OCTET STRING */ + +extern asn_TYPE_descriptor_t asn_DEF_PrintableString; +extern asn_TYPE_operation_t asn_OP_PrintableString; + +asn_constr_check_f PrintableString_constraint; + +#define PrintableString_free OCTET_STRING_free +#define PrintableString_print OCTET_STRING_print_utf8 +#define PrintableString_compare OCTET_STRING_compare +#define PrintableString_decode_ber OCTET_STRING_decode_ber +#define PrintableString_encode_der OCTET_STRING_encode_der +#define PrintableString_decode_xer OCTET_STRING_decode_xer_utf8 +#define PrintableString_encode_xer OCTET_STRING_encode_xer_utf8 +#define PrintableString_decode_uper OCTET_STRING_decode_uper +#define PrintableString_encode_uper OCTET_STRING_encode_uper +#define PrintableString_decode_aper OCTET_STRING_decode_aper +#define PrintableString_encode_aper OCTET_STRING_encode_aper + +#ifdef __cplusplus +} +#endif + +#endif /* _PrintableString_H_ */ diff --git a/src/du_app/F1AP/asn/PriorityLevel.c b/src/du_app/F1AP/asn/PriorityLevel.c new file mode 100755 index 000000000..346e06540 --- /dev/null +++ b/src/du_app/F1AP/asn/PriorityLevel.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PriorityLevel.h" + +int +PriorityLevel_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 <= 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_PriorityLevel_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_PriorityLevel_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_PriorityLevel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PriorityLevel = { + "PriorityLevel", + "PriorityLevel", + &asn_OP_NativeInteger, + asn_DEF_PriorityLevel_tags_1, + sizeof(asn_DEF_PriorityLevel_tags_1) + /sizeof(asn_DEF_PriorityLevel_tags_1[0]), /* 1 */ + asn_DEF_PriorityLevel_tags_1, /* Same as above */ + sizeof(asn_DEF_PriorityLevel_tags_1) + /sizeof(asn_DEF_PriorityLevel_tags_1[0]), /* 1 */ + { &asn_OER_type_PriorityLevel_constr_1, &asn_PER_type_PriorityLevel_constr_1, PriorityLevel_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/PriorityLevel.h b/src/du_app/F1AP/asn/PriorityLevel.h new file mode 100755 index 000000000..f68af9dec --- /dev/null +++ b/src/du_app/F1AP/asn/PriorityLevel.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PriorityLevel_H_ +#define _PriorityLevel_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PriorityLevel { + PriorityLevel_spare = 0, + PriorityLevel_highest = 1, + PriorityLevel_lowest = 14, + PriorityLevel_no_priority = 15 +} e_PriorityLevel; + +/* PriorityLevel */ +typedef long PriorityLevel_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PriorityLevel_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PriorityLevel; +asn_struct_free_f PriorityLevel_free; +asn_struct_print_f PriorityLevel_print; +asn_constr_check_f PriorityLevel_constraint; +ber_type_decoder_f PriorityLevel_decode_ber; +der_type_encoder_f PriorityLevel_encode_der; +xer_type_decoder_f PriorityLevel_decode_xer; +xer_type_encoder_f PriorityLevel_encode_xer; +oer_type_decoder_f PriorityLevel_decode_oer; +oer_type_encoder_f PriorityLevel_encode_oer; +per_type_decoder_f PriorityLevel_decode_uper; +per_type_encoder_f PriorityLevel_encode_uper; +per_type_decoder_f PriorityLevel_decode_aper; +per_type_encoder_f PriorityLevel_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PriorityLevel_H_ */ +#include diff --git a/src/du_app/F1AP/asn/PrivateIE-Container.c b/src/du_app/F1AP/asn/PrivateIE-Container.c new file mode 100755 index 000000000..46d81e325 --- /dev/null +++ b/src/du_app/F1AP/asn/PrivateIE-Container.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-Containers" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PrivateIE-Container.h" + +#include "PrivateIE-Field.h" +static asn_oer_constraints_t asn_OER_type_PrivateIE_Container_4640P0_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_PrivateIE_Container_4640P0_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_PrivateIE_Container_4640P0_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PrivateMessage_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PrivateIE_Container_4640P0_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PrivateIE_Container_4640P0_specs_1 = { + sizeof(struct PrivateIE_Container_4640P0), + offsetof(struct PrivateIE_Container_4640P0, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PrivateIE_Container_4640P0 = { + "PrivateIE-Container", + "PrivateIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_PrivateIE_Container_4640P0_tags_1, + sizeof(asn_DEF_PrivateIE_Container_4640P0_tags_1) + /sizeof(asn_DEF_PrivateIE_Container_4640P0_tags_1[0]), /* 1 */ + asn_DEF_PrivateIE_Container_4640P0_tags_1, /* Same as above */ + sizeof(asn_DEF_PrivateIE_Container_4640P0_tags_1) + /sizeof(asn_DEF_PrivateIE_Container_4640P0_tags_1[0]), /* 1 */ + { &asn_OER_type_PrivateIE_Container_4640P0_constr_1, &asn_PER_type_PrivateIE_Container_4640P0_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PrivateIE_Container_4640P0_1, + 1, /* Single element */ + &asn_SPC_PrivateIE_Container_4640P0_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/PrivateIE-Container.h b/src/du_app/F1AP/asn/PrivateIE-Container.h new file mode 100755 index 000000000..8eb758e90 --- /dev/null +++ b/src/du_app/F1AP/asn/PrivateIE-Container.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-Containers" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PrivateIE_Container_H_ +#define _PrivateIE_Container_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PrivateMessage_IEs; + +/* PrivateIE-Container */ +typedef struct PrivateIE_Container_4640P0 { + A_SEQUENCE_OF(struct PrivateMessage_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PrivateIE_Container_4640P0_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PrivateIE_Container_4640P0; +extern asn_SET_OF_specifics_t asn_SPC_PrivateIE_Container_4640P0_specs_1; +extern asn_TYPE_member_t asn_MBR_PrivateIE_Container_4640P0_1[1]; +extern asn_per_constraints_t asn_PER_type_PrivateIE_Container_4640P0_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrivateIE_Container_H_ */ +#include diff --git a/src/du_app/F1AP/asn/PrivateIE-Field.c b/src/du_app/F1AP/asn/PrivateIE-Field.c new file mode 100755 index 000000000..e6a7d8f63 --- /dev/null +++ b/src/du_app/F1AP/asn/PrivateIE-Field.c @@ -0,0 +1,175 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-Containers" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PrivateIE-Field.h" + +static int +memb_id_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_criticality_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_oer_constraints_t asn_OER_memb_id_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_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_CHOICE_specifics_t asn_SPC_value_specs_4 = { + sizeof(struct PrivateMessage_IEs__value), + offsetof(struct PrivateMessage_IEs__value, _asn_ctx), + offsetof(struct PrivateMessage_IEs__value, present), + sizeof(((struct PrivateMessage_IEs__value *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_4 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_value_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PrivateMessage_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PrivateMessage_IEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_PrivateIE_ID, + 0, + { &asn_OER_memb_id_constr_2, &asn_PER_memb_id_constr_2, memb_id_constraint_1 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct PrivateMessage_IEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &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 PrivateMessage_IEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_4, + 0, + { &asn_OER_memb_value_constr_4, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_PrivateMessage_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PrivateMessage_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PrivateMessage_IEs_specs_1 = { + sizeof(struct PrivateMessage_IEs), + offsetof(struct PrivateMessage_IEs, _asn_ctx), + asn_MAP_PrivateMessage_IEs_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PrivateMessage_IEs = { + "PrivateMessage-IEs", + "PrivateMessage-IEs", + &asn_OP_SEQUENCE, + asn_DEF_PrivateMessage_IEs_tags_1, + sizeof(asn_DEF_PrivateMessage_IEs_tags_1) + /sizeof(asn_DEF_PrivateMessage_IEs_tags_1[0]), /* 1 */ + asn_DEF_PrivateMessage_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_PrivateMessage_IEs_tags_1) + /sizeof(asn_DEF_PrivateMessage_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PrivateMessage_IEs_1, + 3, /* Elements count */ + &asn_SPC_PrivateMessage_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/PrivateIE-Field.h b/src/du_app/F1AP/asn/PrivateIE-Field.h new file mode 100755 index 000000000..c0cdd7290 --- /dev/null +++ b/src/du_app/F1AP/asn/PrivateIE-Field.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-Containers" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PrivateIE_Field_H_ +#define _PrivateIE_Field_H_ + + +#include + +/* Including external dependencies */ +#include "PrivateIE-ID.h" +#include "Criticality.h" +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PrivateMessage_IEs__value_PR { + PrivateMessage_IEs__value_PR_NOTHING /* No components present */ + +} PrivateMessage_IEs__value_PR; + +/* PrivateIE-Field */ +typedef struct PrivateMessage_IEs { + PrivateIE_ID_t id; + Criticality_t criticality; + struct PrivateMessage_IEs__value { + PrivateMessage_IEs__value_PR present; + union PrivateMessage_IEs__value_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PrivateMessage_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PrivateMessage_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_PrivateMessage_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_PrivateMessage_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrivateIE_Field_H_ */ +#include diff --git a/src/du_app/F1AP/asn/PrivateIE-ID.c b/src/du_app/F1AP/asn/PrivateIE-ID.c new file mode 100755 index 000000000..e385edbee --- /dev/null +++ b/src/du_app/F1AP/asn/PrivateIE-ID.c @@ -0,0 +1,98 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-CommonDataTypes" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PrivateIE-ID.h" + +static int +memb_local_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_local_constr_2 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_local_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_type_PrivateIE_ID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_PrivateIE_ID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_PrivateIE_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PrivateIE_ID, choice.local), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_local_constr_2, &asn_PER_memb_local_constr_2, memb_local_constraint_1 }, + 0, 0, /* No default value */ + "local" + }, + { ATF_NOFLAGS, 0, offsetof(struct PrivateIE_ID, choice.global), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OBJECT_IDENTIFIER, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "global" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_PrivateIE_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* local */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* global */ +}; +asn_CHOICE_specifics_t asn_SPC_PrivateIE_ID_specs_1 = { + sizeof(struct PrivateIE_ID), + offsetof(struct PrivateIE_ID, _asn_ctx), + offsetof(struct PrivateIE_ID, present), + sizeof(((struct PrivateIE_ID *)0)->present), + asn_MAP_PrivateIE_ID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_PrivateIE_ID = { + "PrivateIE-ID", + "PrivateIE-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_PrivateIE_ID_constr_1, &asn_PER_type_PrivateIE_ID_constr_1, CHOICE_constraint }, + asn_MBR_PrivateIE_ID_1, + 2, /* Elements count */ + &asn_SPC_PrivateIE_ID_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/PrivateIE-ID.h b/src/du_app/F1AP/asn/PrivateIE-ID.h new file mode 100755 index 000000000..12b3e61c9 --- /dev/null +++ b/src/du_app/F1AP/asn/PrivateIE-ID.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-CommonDataTypes" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PrivateIE_ID_H_ +#define _PrivateIE_ID_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PrivateIE_ID_PR { + PrivateIE_ID_PR_NOTHING, /* No components present */ + PrivateIE_ID_PR_local, + PrivateIE_ID_PR_global +} PrivateIE_ID_PR; + +/* PrivateIE-ID */ +typedef struct PrivateIE_ID { + PrivateIE_ID_PR present; + union PrivateIE_ID_u { + long local; + OBJECT_IDENTIFIER_t global; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PrivateIE_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PrivateIE_ID; +extern asn_CHOICE_specifics_t asn_SPC_PrivateIE_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_PrivateIE_ID_1[2]; +extern asn_per_constraints_t asn_PER_type_PrivateIE_ID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrivateIE_ID_H_ */ +#include diff --git a/src/du_app/F1AP/asn/PrivateMessage.c b/src/du_app/F1AP/asn/PrivateMessage.c new file mode 100755 index 000000000..10e4c5222 --- /dev/null +++ b/src/du_app/F1AP/asn/PrivateMessage.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PrivateMessage.h" + +asn_TYPE_member_t asn_MBR_PrivateMessage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PrivateMessage, privateIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PrivateIE_Container_4640P0, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "privateIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_PrivateMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PrivateMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* privateIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PrivateMessage_specs_1 = { + sizeof(struct PrivateMessage), + offsetof(struct PrivateMessage, _asn_ctx), + asn_MAP_PrivateMessage_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_PrivateMessage = { + "PrivateMessage", + "PrivateMessage", + &asn_OP_SEQUENCE, + asn_DEF_PrivateMessage_tags_1, + sizeof(asn_DEF_PrivateMessage_tags_1) + /sizeof(asn_DEF_PrivateMessage_tags_1[0]), /* 1 */ + asn_DEF_PrivateMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_PrivateMessage_tags_1) + /sizeof(asn_DEF_PrivateMessage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PrivateMessage_1, + 1, /* Elements count */ + &asn_SPC_PrivateMessage_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/PrivateMessage.h b/src/du_app/F1AP/asn/PrivateMessage.h new file mode 100755 index 000000000..14e6b8bd0 --- /dev/null +++ b/src/du_app/F1AP/asn/PrivateMessage.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PrivateMessage_H_ +#define _PrivateMessage_H_ + + +#include + +/* Including external dependencies */ +#include "PrivateIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PrivateMessage */ +typedef struct PrivateMessage { + PrivateIE_Container_4640P0_t privateIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PrivateMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PrivateMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_PrivateMessage_specs_1; +extern asn_TYPE_member_t asn_MBR_PrivateMessage_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrivateMessage_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ProcedureCode.c b/src/du_app/F1AP/asn/ProcedureCode.c new file mode 100755 index 000000000..3d6dbc0e5 --- /dev/null +++ b/src/du_app/F1AP/asn/ProcedureCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-CommonDataTypes" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ProcedureCode.h" + +int +ProcedureCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProcedureCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_ProcedureCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ProcedureCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProcedureCode = { + "ProcedureCode", + "ProcedureCode", + &asn_OP_NativeInteger, + asn_DEF_ProcedureCode_tags_1, + sizeof(asn_DEF_ProcedureCode_tags_1) + /sizeof(asn_DEF_ProcedureCode_tags_1[0]), /* 1 */ + asn_DEF_ProcedureCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ProcedureCode_tags_1) + /sizeof(asn_DEF_ProcedureCode_tags_1[0]), /* 1 */ + { &asn_OER_type_ProcedureCode_constr_1, &asn_PER_type_ProcedureCode_constr_1, ProcedureCode_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/ProcedureCode.h b/src/du_app/F1AP/asn/ProcedureCode.h new file mode 100755 index 000000000..2c11a2724 --- /dev/null +++ b/src/du_app/F1AP/asn/ProcedureCode.h @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-CommonDataTypes" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ProcedureCode_H_ +#define _ProcedureCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProcedureCode */ +typedef long ProcedureCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProcedureCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProcedureCode; +asn_struct_free_f ProcedureCode_free; +asn_struct_print_f ProcedureCode_print; +asn_constr_check_f ProcedureCode_constraint; +ber_type_decoder_f ProcedureCode_decode_ber; +der_type_encoder_f ProcedureCode_encode_der; +xer_type_decoder_f ProcedureCode_decode_xer; +xer_type_encoder_f ProcedureCode_encode_xer; +oer_type_decoder_f ProcedureCode_decode_oer; +oer_type_encoder_f ProcedureCode_encode_oer; +per_type_decoder_f ProcedureCode_decode_uper; +per_type_encoder_f ProcedureCode_encode_uper; +per_type_decoder_f ProcedureCode_decode_aper; +per_type_encoder_f ProcedureCode_encode_aper; +#define ProcedureCode_id_Reset ((ProcedureCode_t)0) +#define ProcedureCode_id_F1Setup ((ProcedureCode_t)1) +#define ProcedureCode_id_ErrorIndication ((ProcedureCode_t)2) +#define ProcedureCode_id_gNBDUConfigurationUpdate ((ProcedureCode_t)3) +#define ProcedureCode_id_gNBCUConfigurationUpdate ((ProcedureCode_t)4) +#define ProcedureCode_id_UEContextSetup ((ProcedureCode_t)5) +#define ProcedureCode_id_UEContextRelease ((ProcedureCode_t)6) +#define ProcedureCode_id_UEContextModification ((ProcedureCode_t)7) +#define ProcedureCode_id_UEContextModificationRequired ((ProcedureCode_t)8) +#define ProcedureCode_id_UEMobilityCommand ((ProcedureCode_t)9) +#define ProcedureCode_id_UEContextReleaseRequest ((ProcedureCode_t)10) +#define ProcedureCode_id_InitialULRRCMessageTransfer ((ProcedureCode_t)11) +#define ProcedureCode_id_DLRRCMessageTransfer ((ProcedureCode_t)12) +#define ProcedureCode_id_ULRRCMessageTransfer ((ProcedureCode_t)13) +#define ProcedureCode_id_privateMessage ((ProcedureCode_t)14) +#define ProcedureCode_id_UEInactivityNotification ((ProcedureCode_t)15) +#define ProcedureCode_id_GNBDUResourceCoordination ((ProcedureCode_t)16) +#define ProcedureCode_id_SystemInformationDeliveryCommand ((ProcedureCode_t)17) +#define ProcedureCode_id_Paging ((ProcedureCode_t)18) +#define ProcedureCode_id_Notify ((ProcedureCode_t)19) +#define ProcedureCode_id_WriteReplaceWarning ((ProcedureCode_t)20) +#define ProcedureCode_id_PWSCancel ((ProcedureCode_t)21) +#define ProcedureCode_id_PWSRestartIndication ((ProcedureCode_t)22) +#define ProcedureCode_id_PWSFailureIndication ((ProcedureCode_t)23) +#define ProcedureCode_id_GNBDUStatusIndication ((ProcedureCode_t)24) +#define ProcedureCode_id_RRCDeliveryReport ((ProcedureCode_t)25) + +#ifdef __cplusplus +} +#endif + +#endif /* _ProcedureCode_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Protected-EUTRA-Resources-Item.c b/src/du_app/F1AP/asn/Protected-EUTRA-Resources-Item.c new file mode 100755 index 000000000..760161a28 --- /dev/null +++ b/src/du_app/F1AP/asn/Protected-EUTRA-Resources-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Protected-EUTRA-Resources-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_Protected_EUTRA_Resources_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Protected_EUTRA_Resources_Item, spectrumSharingGroupID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpectrumSharingGroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spectrumSharingGroupID" + }, + { ATF_NOFLAGS, 0, offsetof(struct Protected_EUTRA_Resources_Item, eUTRACells_List), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRACells_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRACells-List" + }, + { ATF_POINTER, 1, offsetof(struct Protected_EUTRA_Resources_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P70, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_Protected_EUTRA_Resources_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_Protected_EUTRA_Resources_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Protected_EUTRA_Resources_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* spectrumSharingGroupID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eUTRACells-List */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Protected_EUTRA_Resources_Item_specs_1 = { + sizeof(struct Protected_EUTRA_Resources_Item), + offsetof(struct Protected_EUTRA_Resources_Item, _asn_ctx), + asn_MAP_Protected_EUTRA_Resources_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Protected_EUTRA_Resources_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Protected_EUTRA_Resources_Item = { + "Protected-EUTRA-Resources-Item", + "Protected-EUTRA-Resources-Item", + &asn_OP_SEQUENCE, + asn_DEF_Protected_EUTRA_Resources_Item_tags_1, + sizeof(asn_DEF_Protected_EUTRA_Resources_Item_tags_1) + /sizeof(asn_DEF_Protected_EUTRA_Resources_Item_tags_1[0]), /* 1 */ + asn_DEF_Protected_EUTRA_Resources_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_Protected_EUTRA_Resources_Item_tags_1) + /sizeof(asn_DEF_Protected_EUTRA_Resources_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Protected_EUTRA_Resources_Item_1, + 3, /* Elements count */ + &asn_SPC_Protected_EUTRA_Resources_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Protected-EUTRA-Resources-Item.h b/src/du_app/F1AP/asn/Protected-EUTRA-Resources-Item.h new file mode 100755 index 000000000..d74f234fa --- /dev/null +++ b/src/du_app/F1AP/asn/Protected-EUTRA-Resources-Item.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Protected_EUTRA_Resources_Item_H_ +#define _Protected_EUTRA_Resources_Item_H_ + + +#include + +/* Including external dependencies */ +#include "SpectrumSharingGroupID.h" +#include "EUTRACells-List.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* Protected-EUTRA-Resources-Item */ +typedef struct Protected_EUTRA_Resources_Item { + SpectrumSharingGroupID_t spectrumSharingGroupID; + EUTRACells_List_t eUTRACells_List; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Protected_EUTRA_Resources_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Protected_EUTRA_Resources_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _Protected_EUTRA_Resources_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Protected-EUTRA-Resources-List.c b/src/du_app/F1AP/asn/Protected-EUTRA-Resources-List.c new file mode 100755 index 000000000..fd92a92d5 --- /dev/null +++ b/src/du_app/F1AP/asn/Protected-EUTRA-Resources-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Protected-EUTRA-Resources-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_Protected_EUTRA_Resources_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..256)) */}; +static asn_per_constraints_t asn_PER_type_Protected_EUTRA_Resources_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_Protected_EUTRA_Resources_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Protected_EUTRA_Resources_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Protected_EUTRA_Resources_List_specs_1 = { + sizeof(struct Protected_EUTRA_Resources_List), + offsetof(struct Protected_EUTRA_Resources_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Protected_EUTRA_Resources_List = { + "Protected-EUTRA-Resources-List", + "Protected-EUTRA-Resources-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_Protected_EUTRA_Resources_List_tags_1, + sizeof(asn_DEF_Protected_EUTRA_Resources_List_tags_1) + /sizeof(asn_DEF_Protected_EUTRA_Resources_List_tags_1[0]), /* 1 */ + asn_DEF_Protected_EUTRA_Resources_List_tags_1, /* Same as above */ + sizeof(asn_DEF_Protected_EUTRA_Resources_List_tags_1) + /sizeof(asn_DEF_Protected_EUTRA_Resources_List_tags_1[0]), /* 1 */ + { &asn_OER_type_Protected_EUTRA_Resources_List_constr_1, &asn_PER_type_Protected_EUTRA_Resources_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Protected_EUTRA_Resources_List_1, + 1, /* Single element */ + &asn_SPC_Protected_EUTRA_Resources_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Protected-EUTRA-Resources-List.h b/src/du_app/F1AP/asn/Protected-EUTRA-Resources-List.h new file mode 100755 index 000000000..573adb78f --- /dev/null +++ b/src/du_app/F1AP/asn/Protected-EUTRA-Resources-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Protected_EUTRA_Resources_List_H_ +#define _Protected_EUTRA_Resources_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* Protected-EUTRA-Resources-List */ +typedef struct Protected_EUTRA_Resources_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Protected_EUTRA_Resources_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Protected_EUTRA_Resources_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _Protected_EUTRA_Resources_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ProtectedEUTRAResourceIndication.c b/src/du_app/F1AP/asn/ProtectedEUTRAResourceIndication.c new file mode 100755 index 000000000..6c0f96cbd --- /dev/null +++ b/src/du_app/F1AP/asn/ProtectedEUTRAResourceIndication.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ProtectedEUTRAResourceIndication.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ProtectedEUTRAResourceIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtectedEUTRAResourceIndication = { + "ProtectedEUTRAResourceIndication", + "ProtectedEUTRAResourceIndication", + &asn_OP_OCTET_STRING, + asn_DEF_ProtectedEUTRAResourceIndication_tags_1, + sizeof(asn_DEF_ProtectedEUTRAResourceIndication_tags_1) + /sizeof(asn_DEF_ProtectedEUTRAResourceIndication_tags_1[0]), /* 1 */ + asn_DEF_ProtectedEUTRAResourceIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtectedEUTRAResourceIndication_tags_1) + /sizeof(asn_DEF_ProtectedEUTRAResourceIndication_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/ProtectedEUTRAResourceIndication.h b/src/du_app/F1AP/asn/ProtectedEUTRAResourceIndication.h new file mode 100755 index 000000000..1051e3c93 --- /dev/null +++ b/src/du_app/F1AP/asn/ProtectedEUTRAResourceIndication.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ProtectedEUTRAResourceIndication_H_ +#define _ProtectedEUTRAResourceIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProtectedEUTRAResourceIndication */ +typedef OCTET_STRING_t ProtectedEUTRAResourceIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtectedEUTRAResourceIndication; +asn_struct_free_f ProtectedEUTRAResourceIndication_free; +asn_struct_print_f ProtectedEUTRAResourceIndication_print; +asn_constr_check_f ProtectedEUTRAResourceIndication_constraint; +ber_type_decoder_f ProtectedEUTRAResourceIndication_decode_ber; +der_type_encoder_f ProtectedEUTRAResourceIndication_encode_der; +xer_type_decoder_f ProtectedEUTRAResourceIndication_decode_xer; +xer_type_encoder_f ProtectedEUTRAResourceIndication_encode_xer; +oer_type_decoder_f ProtectedEUTRAResourceIndication_decode_oer; +oer_type_encoder_f ProtectedEUTRAResourceIndication_encode_oer; +per_type_decoder_f ProtectedEUTRAResourceIndication_decode_uper; +per_type_encoder_f ProtectedEUTRAResourceIndication_encode_uper; +per_type_decoder_f ProtectedEUTRAResourceIndication_decode_aper; +per_type_encoder_f ProtectedEUTRAResourceIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtectedEUTRAResourceIndication_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ProtocolExtensionContainer.c b/src/du_app/F1AP/asn/ProtocolExtensionContainer.c new file mode 100755 index 000000000..7faa200de --- /dev/null +++ b/src/du_app/F1AP/asn/ProtocolExtensionContainer.c @@ -0,0 +1,4869 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-Containers" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ProtocolExtensionContainer.h" + +#include "ProtocolExtensionField.h" +static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_4624P0_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P0_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 */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolExtensionContainer_4624P1_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P1_constr_3 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_type_ProtocolExtensionContainer_4624P2_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P2_constr_5 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_type_ProtocolExtensionContainer_4624P3_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P3_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_type_ProtocolExtensionContainer_4624P4_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P4_constr_9 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_type_ProtocolExtensionContainer_4624P5_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P5_constr_11 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_type_ProtocolExtensionContainer_4624P6_constr_13 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P6_constr_13 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_type_ProtocolExtensionContainer_4624P7_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P7_constr_15 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_type_ProtocolExtensionContainer_4624P8_constr_17 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P8_constr_17 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_type_ProtocolExtensionContainer_4624P9_constr_19 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P9_constr_19 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_type_ProtocolExtensionContainer_4624P10_constr_21 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P10_constr_21 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_type_ProtocolExtensionContainer_4624P11_constr_23 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P11_constr_23 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_type_ProtocolExtensionContainer_4624P12_constr_25 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P12_constr_25 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_type_ProtocolExtensionContainer_4624P13_constr_27 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P13_constr_27 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_type_ProtocolExtensionContainer_4624P14_constr_29 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P14_constr_29 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_type_ProtocolExtensionContainer_4624P15_constr_31 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P15_constr_31 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_type_ProtocolExtensionContainer_4624P16_constr_33 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P16_constr_33 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_type_ProtocolExtensionContainer_4624P17_constr_35 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P17_constr_35 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_type_ProtocolExtensionContainer_4624P18_constr_37 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P18_constr_37 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_type_ProtocolExtensionContainer_4624P19_constr_39 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P19_constr_39 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_type_ProtocolExtensionContainer_4624P20_constr_41 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P20_constr_41 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_type_ProtocolExtensionContainer_4624P21_constr_43 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P21_constr_43 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_type_ProtocolExtensionContainer_4624P22_constr_45 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P22_constr_45 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_type_ProtocolExtensionContainer_4624P23_constr_47 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P23_constr_47 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_type_ProtocolExtensionContainer_4624P24_constr_49 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P24_constr_49 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_type_ProtocolExtensionContainer_4624P25_constr_51 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P25_constr_51 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_type_ProtocolExtensionContainer_4624P26_constr_53 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P26_constr_53 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_type_ProtocolExtensionContainer_4624P27_constr_55 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P27_constr_55 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_type_ProtocolExtensionContainer_4624P28_constr_57 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P28_constr_57 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_type_ProtocolExtensionContainer_4624P29_constr_59 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P29_constr_59 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_type_ProtocolExtensionContainer_4624P30_constr_61 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P30_constr_61 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_type_ProtocolExtensionContainer_4624P31_constr_63 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P31_constr_63 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_type_ProtocolExtensionContainer_4624P32_constr_65 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P32_constr_65 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_type_ProtocolExtensionContainer_4624P33_constr_67 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P33_constr_67 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_type_ProtocolExtensionContainer_4624P34_constr_69 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P34_constr_69 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_type_ProtocolExtensionContainer_4624P35_constr_71 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P35_constr_71 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_type_ProtocolExtensionContainer_4624P36_constr_73 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P36_constr_73 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_type_ProtocolExtensionContainer_4624P37_constr_75 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P37_constr_75 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_type_ProtocolExtensionContainer_4624P38_constr_77 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P38_constr_77 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_type_ProtocolExtensionContainer_4624P39_constr_79 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P39_constr_79 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_type_ProtocolExtensionContainer_4624P40_constr_81 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P40_constr_81 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_type_ProtocolExtensionContainer_4624P41_constr_83 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P41_constr_83 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_type_ProtocolExtensionContainer_4624P42_constr_85 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P42_constr_85 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_type_ProtocolExtensionContainer_4624P43_constr_87 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P43_constr_87 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_type_ProtocolExtensionContainer_4624P44_constr_89 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P44_constr_89 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_type_ProtocolExtensionContainer_4624P45_constr_91 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P45_constr_91 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_type_ProtocolExtensionContainer_4624P46_constr_93 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P46_constr_93 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_type_ProtocolExtensionContainer_4624P47_constr_95 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P47_constr_95 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_type_ProtocolExtensionContainer_4624P48_constr_97 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P48_constr_97 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_type_ProtocolExtensionContainer_4624P49_constr_99 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P49_constr_99 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_type_ProtocolExtensionContainer_4624P50_constr_101 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P50_constr_101 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_type_ProtocolExtensionContainer_4624P51_constr_103 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P51_constr_103 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_type_ProtocolExtensionContainer_4624P52_constr_105 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P52_constr_105 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_type_ProtocolExtensionContainer_4624P53_constr_107 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P53_constr_107 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_type_ProtocolExtensionContainer_4624P54_constr_109 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P54_constr_109 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_type_ProtocolExtensionContainer_4624P55_constr_111 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P55_constr_111 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_type_ProtocolExtensionContainer_4624P56_constr_113 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P56_constr_113 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_type_ProtocolExtensionContainer_4624P57_constr_115 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P57_constr_115 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_type_ProtocolExtensionContainer_4624P58_constr_117 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P58_constr_117 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_type_ProtocolExtensionContainer_4624P59_constr_119 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P59_constr_119 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_type_ProtocolExtensionContainer_4624P60_constr_121 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P60_constr_121 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_type_ProtocolExtensionContainer_4624P61_constr_123 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P61_constr_123 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_type_ProtocolExtensionContainer_4624P62_constr_125 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P62_constr_125 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_type_ProtocolExtensionContainer_4624P63_constr_127 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P63_constr_127 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_type_ProtocolExtensionContainer_4624P64_constr_129 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P64_constr_129 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_type_ProtocolExtensionContainer_4624P65_constr_131 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P65_constr_131 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_type_ProtocolExtensionContainer_4624P66_constr_133 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P66_constr_133 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_type_ProtocolExtensionContainer_4624P67_constr_135 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P67_constr_135 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_type_ProtocolExtensionContainer_4624P68_constr_137 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P68_constr_137 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_type_ProtocolExtensionContainer_4624P69_constr_139 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P69_constr_139 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_type_ProtocolExtensionContainer_4624P70_constr_141 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P70_constr_141 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_type_ProtocolExtensionContainer_4624P71_constr_143 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P71_constr_143 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_type_ProtocolExtensionContainer_4624P72_constr_145 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P72_constr_145 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_type_ProtocolExtensionContainer_4624P73_constr_147 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P73_constr_147 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_type_ProtocolExtensionContainer_4624P74_constr_149 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P74_constr_149 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_type_ProtocolExtensionContainer_4624P75_constr_151 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P75_constr_151 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_type_ProtocolExtensionContainer_4624P76_constr_153 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P76_constr_153 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_type_ProtocolExtensionContainer_4624P77_constr_155 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P77_constr_155 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_type_ProtocolExtensionContainer_4624P78_constr_157 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P78_constr_157 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_type_ProtocolExtensionContainer_4624P79_constr_159 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P79_constr_159 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_type_ProtocolExtensionContainer_4624P80_constr_161 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P80_constr_161 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_type_ProtocolExtensionContainer_4624P81_constr_163 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P81_constr_163 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_type_ProtocolExtensionContainer_4624P82_constr_165 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P82_constr_165 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_type_ProtocolExtensionContainer_4624P83_constr_167 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P83_constr_167 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_type_ProtocolExtensionContainer_4624P84_constr_169 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P84_constr_169 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_type_ProtocolExtensionContainer_4624P85_constr_171 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P85_constr_171 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_type_ProtocolExtensionContainer_4624P86_constr_173 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P86_constr_173 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_type_ProtocolExtensionContainer_4624P87_constr_175 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P87_constr_175 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_type_ProtocolExtensionContainer_4624P88_constr_177 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P88_constr_177 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_type_ProtocolExtensionContainer_4624P89_constr_179 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P89_constr_179 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_type_ProtocolExtensionContainer_4624P90_constr_181 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P90_constr_181 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_type_ProtocolExtensionContainer_4624P91_constr_183 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P91_constr_183 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_type_ProtocolExtensionContainer_4624P92_constr_185 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P92_constr_185 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_type_ProtocolExtensionContainer_4624P93_constr_187 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P93_constr_187 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_type_ProtocolExtensionContainer_4624P94_constr_189 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P94_constr_189 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_type_ProtocolExtensionContainer_4624P95_constr_191 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P95_constr_191 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_type_ProtocolExtensionContainer_4624P96_constr_193 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P96_constr_193 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_type_ProtocolExtensionContainer_4624P97_constr_195 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P97_constr_195 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_type_ProtocolExtensionContainer_4624P98_constr_197 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P98_constr_197 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_type_ProtocolExtensionContainer_4624P99_constr_199 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P99_constr_199 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_type_ProtocolExtensionContainer_4624P100_constr_201 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P100_constr_201 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_type_ProtocolExtensionContainer_4624P101_constr_203 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P101_constr_203 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_type_ProtocolExtensionContainer_4624P102_constr_205 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P102_constr_205 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_type_ProtocolExtensionContainer_4624P103_constr_207 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P103_constr_207 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_type_ProtocolExtensionContainer_4624P104_constr_209 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P104_constr_209 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_type_ProtocolExtensionContainer_4624P105_constr_211 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P105_constr_211 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_type_ProtocolExtensionContainer_4624P106_constr_213 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P106_constr_213 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_type_ProtocolExtensionContainer_4624P107_constr_215 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P107_constr_215 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_type_ProtocolExtensionContainer_4624P108_constr_217 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P108_constr_217 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_type_ProtocolExtensionContainer_4624P109_constr_219 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P109_constr_219 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_type_ProtocolExtensionContainer_4624P110_constr_221 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P110_constr_221 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_type_ProtocolExtensionContainer_4624P111_constr_223 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P111_constr_223 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_type_ProtocolExtensionContainer_4624P112_constr_225 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P112_constr_225 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_ProtocolExtensionContainer_4624P0_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_AllocationAndRetentionPriority_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P0_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P0_specs_1 = { + sizeof(struct ProtocolExtensionContainer_4624P0), + offsetof(struct ProtocolExtensionContainer_4624P0, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P0 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P0_tags_1, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P0_tags_1) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P0_tags_1[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P0_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P0_tags_1) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P0_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P0_constr_1, &asn_PER_type_ProtocolExtensionContainer_4624P0_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P0_1, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P0_specs_1 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P1_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Associated_SCell_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P1_tags_3[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P1_specs_3 = { + sizeof(struct ProtocolExtensionContainer_4624P1), + offsetof(struct ProtocolExtensionContainer_4624P1, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P1 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P1_tags_3, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P1_tags_3) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P1_tags_3[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P1_tags_3, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P1_tags_3) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P1_tags_3[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P1_constr_3, &asn_PER_type_ProtocolExtensionContainer_4624P1_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P1_3, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P1_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P2_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_AvailablePLMNList_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P2_tags_5[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P2_specs_5 = { + sizeof(struct ProtocolExtensionContainer_4624P2), + offsetof(struct ProtocolExtensionContainer_4624P2, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P2 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P2_tags_5, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P2_tags_5) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P2_tags_5[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P2_tags_5, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P2_tags_5) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P2_tags_5[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P2_constr_5, &asn_PER_type_ProtocolExtensionContainer_4624P2_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P2_5, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P2_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P3_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ServedPLMNs_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P3_tags_7[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P3_specs_7 = { + sizeof(struct ProtocolExtensionContainer_4624P3), + offsetof(struct ProtocolExtensionContainer_4624P3, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P3 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P3_tags_7, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P3_tags_7) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P3_tags_7[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P3_tags_7, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P3_tags_7) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P3_tags_7[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P3_constr_7, &asn_PER_type_ProtocolExtensionContainer_4624P3_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P3_7, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P3_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P4_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Candidate_SpCell_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P4_tags_9[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P4_specs_9 = { + sizeof(struct ProtocolExtensionContainer_4624P4), + offsetof(struct ProtocolExtensionContainer_4624P4, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P4 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P4_tags_9, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P4_tags_9) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P4_tags_9[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P4_tags_9, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P4_tags_9) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P4_tags_9[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P4_constr_9, &asn_PER_type_ProtocolExtensionContainer_4624P4_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P4_9, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P4_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P5_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_Failed_to_be_Activated_List_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P5_tags_11[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P5_specs_11 = { + sizeof(struct ProtocolExtensionContainer_4624P5), + offsetof(struct ProtocolExtensionContainer_4624P5, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P5 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P5_tags_11, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P5_tags_11) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P5_tags_11[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P5_tags_11, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P5_tags_11) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P5_tags_11[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P5_constr_11, &asn_PER_type_ProtocolExtensionContainer_4624P5_constr_11, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P5_11, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P5_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P6_13[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_Status_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P6_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P6_specs_13 = { + sizeof(struct ProtocolExtensionContainer_4624P6), + offsetof(struct ProtocolExtensionContainer_4624P6, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P6 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P6_tags_13, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P6_tags_13) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P6_tags_13[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P6_tags_13, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P6_tags_13) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P6_tags_13[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P6_constr_13, &asn_PER_type_ProtocolExtensionContainer_4624P6_constr_13, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P6_13, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P6_specs_13 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P7_15[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_To_Be_Broadcast_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P7_tags_15[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P7_specs_15 = { + sizeof(struct ProtocolExtensionContainer_4624P7), + offsetof(struct ProtocolExtensionContainer_4624P7, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P7 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P7_tags_15, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P7_tags_15) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P7_tags_15[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P7_tags_15, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P7_tags_15) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P7_tags_15[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P7_constr_15, &asn_PER_type_ProtocolExtensionContainer_4624P7_constr_15, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P7_15, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P7_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P8_17[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_Broadcast_Completed_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P8_tags_17[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P8_specs_17 = { + sizeof(struct ProtocolExtensionContainer_4624P8), + offsetof(struct ProtocolExtensionContainer_4624P8, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P8 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P8_tags_17, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P8_tags_17) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P8_tags_17[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P8_tags_17, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P8_tags_17) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P8_tags_17[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P8_constr_17, &asn_PER_type_ProtocolExtensionContainer_4624P8_constr_17, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P8_17, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P8_specs_17 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P9_19[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Broadcast_To_Be_Cancelled_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P9_tags_19[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P9_specs_19 = { + sizeof(struct ProtocolExtensionContainer_4624P9), + offsetof(struct ProtocolExtensionContainer_4624P9, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P9 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P9_tags_19, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P9_tags_19) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P9_tags_19[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P9_tags_19, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P9_tags_19) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P9_tags_19[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P9_constr_19, &asn_PER_type_ProtocolExtensionContainer_4624P9_constr_19, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P9_19, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P9_specs_19 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P10_21[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_Broadcast_Cancelled_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P10_tags_21[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P10_specs_21 = { + sizeof(struct ProtocolExtensionContainer_4624P10), + offsetof(struct ProtocolExtensionContainer_4624P10, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P10 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P10_tags_21, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P10_tags_21) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P10_tags_21[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P10_tags_21, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P10_tags_21) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P10_tags_21[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P10_constr_21, &asn_PER_type_ProtocolExtensionContainer_4624P10_constr_21, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P10_21, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P10_specs_21 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P11_23[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_to_be_Activated_List_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P11_tags_23[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P11_specs_23 = { + sizeof(struct ProtocolExtensionContainer_4624P11), + offsetof(struct ProtocolExtensionContainer_4624P11, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P11 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P11_tags_23, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P11_tags_23) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P11_tags_23[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P11_tags_23, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P11_tags_23) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P11_tags_23[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P11_constr_23, &asn_PER_type_ProtocolExtensionContainer_4624P11_constr_23, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P11_23, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P11_specs_23 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P12_25[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_to_be_Deactivated_List_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P12_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P12_specs_25 = { + sizeof(struct ProtocolExtensionContainer_4624P12), + offsetof(struct ProtocolExtensionContainer_4624P12, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P12 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P12_tags_25, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P12_tags_25) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P12_tags_25[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P12_tags_25, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P12_tags_25) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P12_tags_25[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P12_constr_25, &asn_PER_type_ProtocolExtensionContainer_4624P12_constr_25, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P12_25, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P12_specs_25 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P13_27[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_to_be_Barred_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P13_tags_27[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P13_specs_27 = { + sizeof(struct ProtocolExtensionContainer_4624P13), + offsetof(struct ProtocolExtensionContainer_4624P13, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P13 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P13_tags_27, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P13_tags_27) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P13_tags_27[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P13_tags_27, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P13_tags_27) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P13_tags_27[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P13_constr_27, &asn_PER_type_ProtocolExtensionContainer_4624P13_constr_27, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P13_27, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P13_specs_27 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P14_29[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P14_tags_29[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P14_specs_29 = { + sizeof(struct ProtocolExtensionContainer_4624P14), + offsetof(struct ProtocolExtensionContainer_4624P14, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P14 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P14_tags_29, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P14_tags_29) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P14_tags_29[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P14_tags_29, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P14_tags_29) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P14_tags_29[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P14_constr_29, &asn_PER_type_ProtocolExtensionContainer_4624P14_constr_29, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P14_29, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P14_specs_29 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P15_31[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics_IE_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P15_tags_31[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P15_specs_31 = { + sizeof(struct ProtocolExtensionContainer_4624P15), + offsetof(struct ProtocolExtensionContainer_4624P15, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P15 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P15_tags_31, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P15_tags_31) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P15_tags_31[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P15_tags_31, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P15_tags_31) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P15_tags_31[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P15_constr_31, &asn_PER_type_ProtocolExtensionContainer_4624P15_constr_31, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P15_31, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P15_specs_31 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P16_33[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CUtoDURRCInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P16_tags_33[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P16_specs_33 = { + sizeof(struct ProtocolExtensionContainer_4624P16), + offsetof(struct ProtocolExtensionContainer_4624P16, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P16 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P16_tags_33, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P16_tags_33) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P16_tags_33[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P16_tags_33, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P16_tags_33) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P16_tags_33[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P16_constr_33, &asn_PER_type_ProtocolExtensionContainer_4624P16_constr_33, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P16_33, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P16_specs_33 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P17_35[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DedicatedSIDeliveryNeededUE_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P17_tags_35[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P17_specs_35 = { + sizeof(struct ProtocolExtensionContainer_4624P17), + offsetof(struct ProtocolExtensionContainer_4624P17, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P17 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P17_tags_35, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P17_tags_35) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P17_tags_35[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P17_tags_35, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P17_tags_35) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P17_tags_35[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P17_constr_35, &asn_PER_type_ProtocolExtensionContainer_4624P17_constr_35, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P17_35, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P17_specs_35 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P18_37[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DLUPTNLInformation_ToBeSetup_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P18_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P18_specs_37 = { + sizeof(struct ProtocolExtensionContainer_4624P18), + offsetof(struct ProtocolExtensionContainer_4624P18, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P18 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P18_tags_37, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P18_tags_37) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P18_tags_37[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P18_tags_37, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P18_tags_37) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P18_tags_37[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P18_constr_37, &asn_PER_type_ProtocolExtensionContainer_4624P18_constr_37, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P18_37, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P18_specs_37 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P19_39[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRB_Activity_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P19_tags_39[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P19_specs_39 = { + sizeof(struct ProtocolExtensionContainer_4624P19), + offsetof(struct ProtocolExtensionContainer_4624P19, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P19 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P19_tags_39, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P19_tags_39) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P19_tags_39[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P19_tags_39, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P19_tags_39) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P19_tags_39[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P19_constr_39, &asn_PER_type_ProtocolExtensionContainer_4624P19_constr_39, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P19_39, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P19_specs_39 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P20_41[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_FailedToBeModified_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P20_tags_41[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P20_specs_41 = { + sizeof(struct ProtocolExtensionContainer_4624P20), + offsetof(struct ProtocolExtensionContainer_4624P20, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P20 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P20_tags_41, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P20_tags_41) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P20_tags_41[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P20_tags_41, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P20_tags_41) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P20_tags_41[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P20_constr_41, &asn_PER_type_ProtocolExtensionContainer_4624P20_constr_41, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P20_41, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P20_specs_41 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P21_43[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_FailedToBeSetup_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P21_tags_43[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P21_specs_43 = { + sizeof(struct ProtocolExtensionContainer_4624P21), + offsetof(struct ProtocolExtensionContainer_4624P21, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P21 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P21_tags_43, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P21_tags_43) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P21_tags_43[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P21_tags_43, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P21_tags_43) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P21_tags_43[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P21_constr_43, &asn_PER_type_ProtocolExtensionContainer_4624P21_constr_43, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P21_43, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P21_specs_43 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P22_45[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_FailedToBeSetupMod_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P22_tags_45[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P22_specs_45 = { + sizeof(struct ProtocolExtensionContainer_4624P22), + offsetof(struct ProtocolExtensionContainer_4624P22, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P22 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P22_tags_45, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P22_tags_45) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P22_tags_45[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P22_tags_45, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P22_tags_45) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P22_tags_45[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P22_constr_45, &asn_PER_type_ProtocolExtensionContainer_4624P22_constr_45, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P22_45, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P22_specs_45 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P23_47[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRB_Information_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P23_tags_47[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P23_specs_47 = { + sizeof(struct ProtocolExtensionContainer_4624P23), + offsetof(struct ProtocolExtensionContainer_4624P23, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P23 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P23_tags_47, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P23_tags_47) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P23_tags_47[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P23_tags_47, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P23_tags_47) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P23_tags_47[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P23_constr_47, &asn_PER_type_ProtocolExtensionContainer_4624P23_constr_47, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P23_47, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P23_specs_47 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P24_49[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_Modified_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P24_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P24_specs_49 = { + sizeof(struct ProtocolExtensionContainer_4624P24), + offsetof(struct ProtocolExtensionContainer_4624P24, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P24 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P24_tags_49, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P24_tags_49) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P24_tags_49[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P24_tags_49, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P24_tags_49) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P24_tags_49[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P24_constr_49, &asn_PER_type_ProtocolExtensionContainer_4624P24_constr_49, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P24_49, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P24_specs_49 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P25_51[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_ModifiedConf_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P25_tags_51[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P25_specs_51 = { + sizeof(struct ProtocolExtensionContainer_4624P25), + offsetof(struct ProtocolExtensionContainer_4624P25, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P25 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P25_tags_51, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P25_tags_51) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P25_tags_51[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P25_tags_51, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P25_tags_51) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P25_tags_51[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P25_constr_51, &asn_PER_type_ProtocolExtensionContainer_4624P25_constr_51, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P25_51, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P25_specs_51 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P26_53[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRB_Notify_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P26_tags_53[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P26_specs_53 = { + sizeof(struct ProtocolExtensionContainer_4624P26), + offsetof(struct ProtocolExtensionContainer_4624P26, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P26 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P26_tags_53, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P26_tags_53) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P26_tags_53[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P26_tags_53, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P26_tags_53) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P26_tags_53[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P26_constr_53, &asn_PER_type_ProtocolExtensionContainer_4624P26_constr_53, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P26_53, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P26_specs_53 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P27_55[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_Required_ToBeModified_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P27_tags_55[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P27_specs_55 = { + sizeof(struct ProtocolExtensionContainer_4624P27), + offsetof(struct ProtocolExtensionContainer_4624P27, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P27 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P27_tags_55, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P27_tags_55) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P27_tags_55[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P27_tags_55, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P27_tags_55) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P27_tags_55[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P27_constr_55, &asn_PER_type_ProtocolExtensionContainer_4624P27_constr_55, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P27_55, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P27_specs_55 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P28_57[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_Required_ToBeReleased_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P28_tags_57[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P28_specs_57 = { + sizeof(struct ProtocolExtensionContainer_4624P28), + offsetof(struct ProtocolExtensionContainer_4624P28, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P28 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P28_tags_57, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P28_tags_57) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P28_tags_57[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P28_tags_57, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P28_tags_57) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P28_tags_57[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P28_constr_57, &asn_PER_type_ProtocolExtensionContainer_4624P28_constr_57, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P28_57, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P28_specs_57 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P29_59[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_Setup_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P29_tags_59[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P29_specs_59 = { + sizeof(struct ProtocolExtensionContainer_4624P29), + offsetof(struct ProtocolExtensionContainer_4624P29, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P29 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P29_tags_59, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P29_tags_59) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P29_tags_59[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P29_tags_59, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P29_tags_59) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P29_tags_59[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P29_constr_59, &asn_PER_type_ProtocolExtensionContainer_4624P29_constr_59, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P29_59, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P29_specs_59 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P30_61[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_SetupMod_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P30_tags_61[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P30_specs_61 = { + sizeof(struct ProtocolExtensionContainer_4624P30), + offsetof(struct ProtocolExtensionContainer_4624P30, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P30 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P30_tags_61, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P30_tags_61) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P30_tags_61[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P30_tags_61, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P30_tags_61) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P30_tags_61[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P30_constr_61, &asn_PER_type_ProtocolExtensionContainer_4624P30_constr_61, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P30_61, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P30_specs_61 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P31_63[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_ToBeModified_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P31_tags_63[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P31_specs_63 = { + sizeof(struct ProtocolExtensionContainer_4624P31), + offsetof(struct ProtocolExtensionContainer_4624P31, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P31 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P31_tags_63, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P31_tags_63) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P31_tags_63[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P31_tags_63, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P31_tags_63) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P31_tags_63[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P31_constr_63, &asn_PER_type_ProtocolExtensionContainer_4624P31_constr_63, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P31_63, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P31_specs_63 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P32_65[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_ToBeReleased_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P32_tags_65[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P32_specs_65 = { + sizeof(struct ProtocolExtensionContainer_4624P32), + offsetof(struct ProtocolExtensionContainer_4624P32, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P32 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P32_tags_65, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P32_tags_65) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P32_tags_65[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P32_tags_65, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P32_tags_65) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P32_tags_65[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P32_constr_65, &asn_PER_type_ProtocolExtensionContainer_4624P32_constr_65, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P32_65, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P32_specs_65 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P33_67[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_ToBeSetup_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P33_tags_67[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P33_specs_67 = { + sizeof(struct ProtocolExtensionContainer_4624P33), + offsetof(struct ProtocolExtensionContainer_4624P33, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P33 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P33_tags_67, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P33_tags_67) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P33_tags_67[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P33_tags_67, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P33_tags_67) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P33_tags_67[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P33_constr_67, &asn_PER_type_ProtocolExtensionContainer_4624P33_constr_67, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P33_67, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P33_specs_67 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P34_69[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_ToBeSetupMod_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P34_tags_69[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P34_specs_69 = { + sizeof(struct ProtocolExtensionContainer_4624P34), + offsetof(struct ProtocolExtensionContainer_4624P34, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P34 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P34_tags_69, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P34_tags_69) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P34_tags_69[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P34_tags_69, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P34_tags_69) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P34_tags_69[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P34_constr_69, &asn_PER_type_ProtocolExtensionContainer_4624P34_constr_69, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P34_69, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P34_specs_69 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P35_71[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRXCycle_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P35_tags_71[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P35_specs_71 = { + sizeof(struct ProtocolExtensionContainer_4624P35), + offsetof(struct ProtocolExtensionContainer_4624P35, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P35 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P35_tags_71, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P35_tags_71) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P35_tags_71[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P35_tags_71, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P35_tags_71) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P35_tags_71[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P35_constr_71, &asn_PER_type_ProtocolExtensionContainer_4624P35_constr_71, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P35_71, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P35_specs_71 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P36_73[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DUtoCURRCInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P36_tags_73[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P36_specs_73 = { + sizeof(struct ProtocolExtensionContainer_4624P36), + offsetof(struct ProtocolExtensionContainer_4624P36, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P36 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P36_tags_73, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P36_tags_73) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P36_tags_73[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P36_tags_73, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P36_tags_73) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P36_tags_73[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P36_constr_73, &asn_PER_type_ProtocolExtensionContainer_4624P36_constr_73, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P36_73, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P36_specs_73 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P37_75[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Dynamic5QIDescriptor_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P37_tags_75[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P37_specs_75 = { + sizeof(struct ProtocolExtensionContainer_4624P37), + offsetof(struct ProtocolExtensionContainer_4624P37, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P37 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P37_tags_75, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P37_tags_75) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P37_tags_75[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P37_tags_75, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P37_tags_75) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P37_tags_75[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P37_constr_75, &asn_PER_type_ProtocolExtensionContainer_4624P37_constr_75, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P37_75, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P37_specs_75 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P38_77[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Endpoint_IP_address_and_port_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P38_tags_77[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P38_specs_77 = { + sizeof(struct ProtocolExtensionContainer_4624P38), + offsetof(struct ProtocolExtensionContainer_4624P38, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P38 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P38_tags_77, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P38_tags_77) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P38_tags_77[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P38_tags_77, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P38_tags_77) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P38_tags_77[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P38_constr_77, &asn_PER_type_ProtocolExtensionContainer_4624P38_constr_77, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P38_77, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P38_specs_77 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P39_79[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ExtendedAvailablePLMN_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P39_tags_79[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P39_specs_79 = { + sizeof(struct ProtocolExtensionContainer_4624P39), + offsetof(struct ProtocolExtensionContainer_4624P39, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P39 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P39_tags_79, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P39_tags_79) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P39_tags_79[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P39_tags_79, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P39_tags_79) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P39_tags_79[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P39_constr_79, &asn_PER_type_ProtocolExtensionContainer_4624P39_constr_79, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P39_79, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P39_specs_79 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P40_81[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ExtendedServedPLMNs_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P40_tags_81[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P40_specs_81 = { + sizeof(struct ProtocolExtensionContainer_4624P40), + offsetof(struct ProtocolExtensionContainer_4624P40, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P40 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P40_tags_81, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P40_tags_81) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P40_tags_81[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P40_tags_81, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P40_tags_81) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P40_tags_81[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P40_constr_81, &asn_PER_type_ProtocolExtensionContainer_4624P40_constr_81, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P40_81, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P40_specs_81 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P41_83[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EUTRACells_List_itemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P41_tags_83[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P41_specs_83 = { + sizeof(struct ProtocolExtensionContainer_4624P41), + offsetof(struct ProtocolExtensionContainer_4624P41, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P41 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P41_tags_83, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P41_tags_83) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P41_tags_83[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P41_tags_83, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P41_tags_83) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P41_tags_83[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P41_constr_83, &asn_PER_type_ProtocolExtensionContainer_4624P41_constr_83, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P41_83, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P41_specs_83 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P42_85[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EUTRA_Coex_FDD_Info_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P42_tags_85[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P42_specs_85 = { + sizeof(struct ProtocolExtensionContainer_4624P42), + offsetof(struct ProtocolExtensionContainer_4624P42, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P42 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P42_tags_85, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P42_tags_85) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P42_tags_85[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P42_tags_85, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P42_tags_85) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P42_tags_85[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P42_constr_85, &asn_PER_type_ProtocolExtensionContainer_4624P42_constr_85, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P42_85, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P42_specs_85 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P43_87[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EUTRA_Coex_TDD_Info_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P43_tags_87[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P43_specs_87 = { + sizeof(struct ProtocolExtensionContainer_4624P43), + offsetof(struct ProtocolExtensionContainer_4624P43, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P43 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P43_tags_87, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P43_tags_87) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P43_tags_87[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P43_tags_87, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P43_tags_87) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P43_tags_87[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P43_constr_87, &asn_PER_type_ProtocolExtensionContainer_4624P43_constr_87, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P43_87, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P43_specs_87 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P44_89[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EUTRA_PRACH_Configuration_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P44_tags_89[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P44_specs_89 = { + sizeof(struct ProtocolExtensionContainer_4624P44), + offsetof(struct ProtocolExtensionContainer_4624P44, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P44 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P44_tags_89, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P44_tags_89) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P44_tags_89[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P44_tags_89, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P44_tags_89) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P44_tags_89[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P44_constr_89, &asn_PER_type_ProtocolExtensionContainer_4624P44_constr_89, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P44_89, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P44_specs_89 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P45_91[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EUTRA_SpecialSubframe_Info_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P45_tags_91[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P45_specs_91 = { + sizeof(struct ProtocolExtensionContainer_4624P45), + offsetof(struct ProtocolExtensionContainer_4624P45, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P45 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P45_tags_91, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P45_tags_91) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P45_tags_91[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P45_tags_91, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P45_tags_91) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P45_tags_91[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P45_constr_91, &asn_PER_type_ProtocolExtensionContainer_4624P45_constr_91, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P45_91, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P45_specs_91 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P46_93[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EUTRANQoS_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P46_tags_93[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P46_specs_93 = { + sizeof(struct ProtocolExtensionContainer_4624P46), + offsetof(struct ProtocolExtensionContainer_4624P46, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P46 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P46_tags_93, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P46_tags_93) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P46_tags_93[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P46_tags_93, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P46_tags_93) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P46_tags_93[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P46_constr_93, &asn_PER_type_ProtocolExtensionContainer_4624P46_constr_93, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P46_93, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P46_specs_93 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P47_95[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EUTRA_FDD_Info_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P47_tags_95[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P47_specs_95 = { + sizeof(struct ProtocolExtensionContainer_4624P47), + offsetof(struct ProtocolExtensionContainer_4624P47, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P47 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P47_tags_95, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P47_tags_95) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P47_tags_95[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P47_tags_95, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P47_tags_95) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P47_tags_95[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P47_constr_95, &asn_PER_type_ProtocolExtensionContainer_4624P47_constr_95, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P47_95, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P47_specs_95 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P48_97[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EUTRA_TDD_Info_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P48_tags_97[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P48_specs_97 = { + sizeof(struct ProtocolExtensionContainer_4624P48), + offsetof(struct ProtocolExtensionContainer_4624P48, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P48 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P48_tags_97, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P48_tags_97) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P48_tags_97[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P48_tags_97, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P48_tags_97) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P48_tags_97[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P48_constr_97, &asn_PER_type_ProtocolExtensionContainer_4624P48_constr_97, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P48_97, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P48_specs_97 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P49_99[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_FDD_Info_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P49_tags_99[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P49_specs_99 = { + sizeof(struct ProtocolExtensionContainer_4624P49), + offsetof(struct ProtocolExtensionContainer_4624P49, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P49 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P49_tags_99, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P49_tags_99) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P49_tags_99[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P49_tags_99, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P49_tags_99) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P49_tags_99[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P49_constr_99, &asn_PER_type_ProtocolExtensionContainer_4624P49_constr_99, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P49_99, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P49_specs_99 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P50_101[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Flows_Mapped_To_DRB_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P50_tags_101[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P50_specs_101 = { + sizeof(struct ProtocolExtensionContainer_4624P50), + offsetof(struct ProtocolExtensionContainer_4624P50, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P50 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P50_tags_101, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P50_tags_101) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P50_tags_101[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P50_tags_101, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P50_tags_101) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P50_tags_101[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P50_constr_101, &asn_PER_type_ProtocolExtensionContainer_4624P50_constr_101, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P50_101, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P50_specs_101 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P51_103[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_FreqBandNrItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P51_tags_103[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P51_specs_103 = { + sizeof(struct ProtocolExtensionContainer_4624P51), + offsetof(struct ProtocolExtensionContainer_4624P51, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P51 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P51_tags_103, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P51_tags_103) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P51_tags_103[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P51_tags_103, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P51_tags_103) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P51_tags_103[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P51_constr_103, &asn_PER_type_ProtocolExtensionContainer_4624P51_constr_103, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P51_103, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P51_specs_103 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P52_105[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GBR_QosInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P52_tags_105[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P52_specs_105 = { + sizeof(struct ProtocolExtensionContainer_4624P52), + offsetof(struct ProtocolExtensionContainer_4624P52, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P52 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P52_tags_105, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P52_tags_105) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P52_tags_105[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P52_tags_105, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P52_tags_105) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P52_tags_105[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P52_constr_105, &asn_PER_type_ProtocolExtensionContainer_4624P52_constr_105, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P52_105, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P52_specs_105 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P53_107[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GBR_QosFlowInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P53_tags_107[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P53_specs_107 = { + sizeof(struct ProtocolExtensionContainer_4624P53), + offsetof(struct ProtocolExtensionContainer_4624P53, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P53 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P53_tags_107, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P53_tags_107) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P53_tags_107[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P53_tags_107, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P53_tags_107) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P53_tags_107[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P53_constr_107, &asn_PER_type_ProtocolExtensionContainer_4624P53_constr_107, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P53_107, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P53_specs_107 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P54_109[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNB_CUSystemInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P54_tags_109[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P54_specs_109 = { + sizeof(struct ProtocolExtensionContainer_4624P54), + offsetof(struct ProtocolExtensionContainer_4624P54, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P54 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P54_tags_109, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P54_tags_109) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P54_tags_109[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P54_tags_109, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P54_tags_109) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P54_tags_109[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P54_constr_109, &asn_PER_type_ProtocolExtensionContainer_4624P54_constr_109, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P54_109, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P54_specs_109 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P55_111[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNB_CU_TNL_Association_Setup_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P55_tags_111[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P55_specs_111 = { + sizeof(struct ProtocolExtensionContainer_4624P55), + offsetof(struct ProtocolExtensionContainer_4624P55, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P55 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P55_tags_111, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P55_tags_111) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P55_tags_111[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P55_tags_111, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P55_tags_111) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P55_tags_111[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P55_constr_111, &asn_PER_type_ProtocolExtensionContainer_4624P55_constr_111, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P55_111, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P55_specs_111 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P56_113[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P56_tags_113[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P56_specs_113 = { + sizeof(struct ProtocolExtensionContainer_4624P56), + offsetof(struct ProtocolExtensionContainer_4624P56, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P56 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P56_tags_113, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P56_tags_113) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P56_tags_113[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P56_tags_113, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P56_tags_113) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P56_tags_113[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P56_constr_113, &asn_PER_type_ProtocolExtensionContainer_4624P56_constr_113, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P56_113, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P56_specs_113 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P57_115[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNB_CU_TNL_Association_To_Add_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P57_tags_115[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P57_specs_115 = { + sizeof(struct ProtocolExtensionContainer_4624P57), + offsetof(struct ProtocolExtensionContainer_4624P57, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P57 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P57_tags_115, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P57_tags_115) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P57_tags_115[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P57_tags_115, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P57_tags_115) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P57_tags_115[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P57_constr_115, &asn_PER_type_ProtocolExtensionContainer_4624P57_constr_115, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P57_115, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P57_specs_115 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P58_117[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNB_CU_TNL_Association_To_Remove_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P58_tags_117[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P58_specs_117 = { + sizeof(struct ProtocolExtensionContainer_4624P58), + offsetof(struct ProtocolExtensionContainer_4624P58, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P58 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P58_tags_117, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P58_tags_117) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P58_tags_117[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P58_tags_117, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P58_tags_117) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P58_tags_117[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P58_constr_117, &asn_PER_type_ProtocolExtensionContainer_4624P58_constr_117, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P58_117, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P58_specs_117 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P59_119[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNB_CU_TNL_Association_To_Update_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P59_tags_119[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P59_specs_119 = { + sizeof(struct ProtocolExtensionContainer_4624P59), + offsetof(struct ProtocolExtensionContainer_4624P59, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P59 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P59_tags_119, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P59_tags_119) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P59_tags_119[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P59_tags_119, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P59_tags_119) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P59_tags_119[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P59_constr_119, &asn_PER_type_ProtocolExtensionContainer_4624P59_constr_119, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P59_119, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P59_specs_119 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P60_121[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNB_DU_Served_Cells_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P60_tags_121[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P60_specs_121 = { + sizeof(struct ProtocolExtensionContainer_4624P60), + offsetof(struct ProtocolExtensionContainer_4624P60, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P60 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P60_tags_121, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P60_tags_121) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P60_tags_121[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P60_tags_121, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P60_tags_121) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P60_tags_121[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P60_constr_121, &asn_PER_type_ProtocolExtensionContainer_4624P60_constr_121, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P60_121, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P60_specs_121 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P61_123[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNB_DU_System_Information_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P61_tags_123[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P61_specs_123 = { + sizeof(struct ProtocolExtensionContainer_4624P61), + offsetof(struct ProtocolExtensionContainer_4624P61, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P61 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P61_tags_123, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P61_tags_123) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P61_tags_123[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P61_tags_123, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P61_tags_123) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P61_tags_123[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P61_constr_123, &asn_PER_type_ProtocolExtensionContainer_4624P61_constr_123, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P61_123, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P61_specs_123 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P62_125[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GTPTunnel_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P62_tags_125[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P62_specs_125 = { + sizeof(struct ProtocolExtensionContainer_4624P62), + offsetof(struct ProtocolExtensionContainer_4624P62, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P62 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P62_tags_125, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P62_tags_125) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P62_tags_125[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P62_tags_125, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P62_tags_125) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P62_tags_125[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P62_constr_125, &asn_PER_type_ProtocolExtensionContainer_4624P62_constr_125, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P62_125, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P62_specs_125 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P63_127[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NGRANAllocationAndRetentionPriority_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P63_tags_127[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P63_specs_127 = { + sizeof(struct ProtocolExtensionContainer_4624P63), + offsetof(struct ProtocolExtensionContainer_4624P63, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P63 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P63_tags_127, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P63_tags_127) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P63_tags_127[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P63_tags_127, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P63_tags_127) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P63_tags_127[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P63_constr_127, &asn_PER_type_ProtocolExtensionContainer_4624P63_constr_127, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P63_127, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P63_specs_127 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P64_129[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NR_CGI_List_For_Restart_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P64_tags_129[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P64_specs_129 = { + sizeof(struct ProtocolExtensionContainer_4624P64), + offsetof(struct ProtocolExtensionContainer_4624P64, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P64 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P64_tags_129, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P64_tags_129) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P64_tags_129[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P64_tags_129, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P64_tags_129) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P64_tags_129[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P64_constr_129, &asn_PER_type_ProtocolExtensionContainer_4624P64_constr_129, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P64_129, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P64_specs_129 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P65_131[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NonDynamic5QIDescriptor_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P65_tags_131[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P65_specs_131 = { + sizeof(struct ProtocolExtensionContainer_4624P65), + offsetof(struct ProtocolExtensionContainer_4624P65, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P65 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P65_tags_131, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P65_tags_131) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P65_tags_131[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P65_tags_131, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P65_tags_131) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P65_tags_131[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P65_constr_131, &asn_PER_type_ProtocolExtensionContainer_4624P65_constr_131, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P65_131, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P65_specs_131 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P66_133[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NRFreqInfoExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P66_tags_133[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P66_specs_133 = { + sizeof(struct ProtocolExtensionContainer_4624P66), + offsetof(struct ProtocolExtensionContainer_4624P66, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P66 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P66_tags_133, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P66_tags_133) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P66_tags_133[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P66_tags_133, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P66_tags_133) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P66_tags_133[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P66_constr_133, &asn_PER_type_ProtocolExtensionContainer_4624P66_constr_133, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P66_133, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P66_specs_133 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P67_135[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NRCGI_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P67_tags_135[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P67_specs_135 = { + sizeof(struct ProtocolExtensionContainer_4624P67), + offsetof(struct ProtocolExtensionContainer_4624P67, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P67 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P67_tags_135, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P67_tags_135) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P67_tags_135[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P67_tags_135, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P67_tags_135) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P67_tags_135[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P67_constr_135, &asn_PER_type_ProtocolExtensionContainer_4624P67_constr_135, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P67_135, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P67_specs_135 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P68_137[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PacketErrorRate_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P68_tags_137[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P68_specs_137 = { + sizeof(struct ProtocolExtensionContainer_4624P68), + offsetof(struct ProtocolExtensionContainer_4624P68, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P68 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P68_tags_137, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P68_tags_137) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P68_tags_137[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P68_tags_137, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P68_tags_137) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P68_tags_137[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P68_constr_137, &asn_PER_type_ProtocolExtensionContainer_4624P68_constr_137, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P68_137, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P68_specs_137 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P69_139[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PagingCell_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P69_tags_139[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P69_specs_139 = { + sizeof(struct ProtocolExtensionContainer_4624P69), + offsetof(struct ProtocolExtensionContainer_4624P69, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P69 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P69_tags_139, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P69_tags_139) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P69_tags_139[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P69_tags_139, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P69_tags_139) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P69_tags_139[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P69_constr_139, &asn_PER_type_ProtocolExtensionContainer_4624P69_constr_139, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P69_139, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P69_specs_139 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P70_141[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Protected_EUTRA_Resources_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P70_tags_141[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P70_specs_141 = { + sizeof(struct ProtocolExtensionContainer_4624P70), + offsetof(struct ProtocolExtensionContainer_4624P70, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P70 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P70_tags_141, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P70_tags_141) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P70_tags_141[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P70_tags_141, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P70_tags_141) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P70_tags_141[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P70_constr_141, &asn_PER_type_ProtocolExtensionContainer_4624P70_constr_141, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P70_141, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P70_specs_141 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P71_143[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Potential_SpCell_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P71_tags_143[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P71_specs_143 = { + sizeof(struct ProtocolExtensionContainer_4624P71), + offsetof(struct ProtocolExtensionContainer_4624P71, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P71 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P71_tags_143, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P71_tags_143) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P71_tags_143[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P71_tags_143, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P71_tags_143) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P71_tags_143[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P71_constr_143, &asn_PER_type_ProtocolExtensionContainer_4624P71_constr_143, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P71_143, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P71_specs_143 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P72_145[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PWS_Failed_NR_CGI_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P72_tags_145[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P72_specs_145 = { + sizeof(struct ProtocolExtensionContainer_4624P72), + offsetof(struct ProtocolExtensionContainer_4624P72, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P72 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P72_tags_145, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P72_tags_145) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P72_tags_145[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P72_tags_145, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P72_tags_145) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P72_tags_145[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P72_constr_145, &asn_PER_type_ProtocolExtensionContainer_4624P72_constr_145, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P72_145, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P72_specs_145 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P73_147[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PWSSystemInformationExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P73_tags_147[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P73_specs_147 = { + sizeof(struct ProtocolExtensionContainer_4624P73), + offsetof(struct ProtocolExtensionContainer_4624P73, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P73 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P73_tags_147, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P73_tags_147) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P73_tags_147[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P73_tags_147, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P73_tags_147) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P73_tags_147[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P73_constr_147, &asn_PER_type_ProtocolExtensionContainer_4624P73_constr_147, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P73_147, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P73_specs_147 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P74_149[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_QoSFlowLevelQoSParameters_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P74_tags_149[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P74_specs_149 = { + sizeof(struct ProtocolExtensionContainer_4624P74), + offsetof(struct ProtocolExtensionContainer_4624P74, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P74 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P74_tags_149, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P74_tags_149) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P74_tags_149[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P74_tags_149, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P74_tags_149) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P74_tags_149[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P74_constr_149, &asn_PER_type_ProtocolExtensionContainer_4624P74_constr_149, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P74_149, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P74_specs_149 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P75_151[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RANUEPagingIdentity_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P75_tags_151[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P75_specs_151 = { + sizeof(struct ProtocolExtensionContainer_4624P75), + offsetof(struct ProtocolExtensionContainer_4624P75, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P75 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P75_tags_151, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P75_tags_151) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P75_tags_151[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P75_tags_151, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P75_tags_151) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P75_tags_151[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P75_constr_151, &asn_PER_type_ProtocolExtensionContainer_4624P75_constr_151, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P75_151, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P75_specs_151 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P76_153[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ResourceCoordinationEUTRACellInfo_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P76_tags_153[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P76_specs_153 = { + sizeof(struct ProtocolExtensionContainer_4624P76), + offsetof(struct ProtocolExtensionContainer_4624P76, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P76 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P76_tags_153, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P76_tags_153) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P76_tags_153[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P76_tags_153, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P76_tags_153) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P76_tags_153[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P76_constr_153, &asn_PER_type_ProtocolExtensionContainer_4624P76_constr_153, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P76_153, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P76_specs_153 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P77_155[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ResourceCoordinationTransferInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P77_tags_155[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P77_specs_155 = { + sizeof(struct ProtocolExtensionContainer_4624P77), + offsetof(struct ProtocolExtensionContainer_4624P77, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P77 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P77_tags_155, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P77_tags_155) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P77_tags_155[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P77_tags_155, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P77_tags_155) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P77_tags_155[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P77_constr_155, &asn_PER_type_ProtocolExtensionContainer_4624P77_constr_155, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P77_155, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P77_specs_155 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P78_157[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RLCFailureIndication_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P78_tags_157[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P78_specs_157 = { + sizeof(struct ProtocolExtensionContainer_4624P78), + offsetof(struct ProtocolExtensionContainer_4624P78, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P78 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P78_tags_157, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P78_tags_157) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P78_tags_157[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P78_tags_157, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P78_tags_157) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P78_tags_157[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P78_constr_157, &asn_PER_type_ProtocolExtensionContainer_4624P78_constr_157, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P78_157, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P78_specs_157 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P79_159[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RLC_Status_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P79_tags_159[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P79_specs_159 = { + sizeof(struct ProtocolExtensionContainer_4624P79), + offsetof(struct ProtocolExtensionContainer_4624P79, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P79 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P79_tags_159, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P79_tags_159) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P79_tags_159[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P79_tags_159, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P79_tags_159) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P79_tags_159[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P79_constr_159, &asn_PER_type_ProtocolExtensionContainer_4624P79_constr_159, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P79_159, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P79_specs_159 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P80_161[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RRCDeliveryStatus_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P80_tags_161[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P80_specs_161 = { + sizeof(struct ProtocolExtensionContainer_4624P80), + offsetof(struct ProtocolExtensionContainer_4624P80, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P80 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P80_tags_161, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P80_tags_161) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P80_tags_161[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P80_tags_161, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P80_tags_161) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P80_tags_161[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P80_constr_161, &asn_PER_type_ProtocolExtensionContainer_4624P80_constr_161, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P80_161, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P80_specs_161 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P81_163[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RRC_Version_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P81_tags_163[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P81_specs_163 = { + sizeof(struct ProtocolExtensionContainer_4624P81), + offsetof(struct ProtocolExtensionContainer_4624P81, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P81 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P81_tags_163, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P81_tags_163) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P81_tags_163[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P81_tags_163, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P81_tags_163) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P81_tags_163[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P81_constr_163, &asn_PER_type_ProtocolExtensionContainer_4624P81_constr_163, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P81_163, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P81_specs_163 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P82_165[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SCell_FailedtoSetup_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P82_tags_165[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P82_specs_165 = { + sizeof(struct ProtocolExtensionContainer_4624P82), + offsetof(struct ProtocolExtensionContainer_4624P82, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P82 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P82_tags_165, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P82_tags_165) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P82_tags_165[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P82_tags_165, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P82_tags_165) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P82_tags_165[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P82_constr_165, &asn_PER_type_ProtocolExtensionContainer_4624P82_constr_165, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P82_165, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P82_specs_165 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P83_167[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SCell_FailedtoSetupMod_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P83_tags_167[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P83_specs_167 = { + sizeof(struct ProtocolExtensionContainer_4624P83), + offsetof(struct ProtocolExtensionContainer_4624P83, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P83 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P83_tags_167, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P83_tags_167) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P83_tags_167[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P83_tags_167, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P83_tags_167) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P83_tags_167[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P83_constr_167, &asn_PER_type_ProtocolExtensionContainer_4624P83_constr_167, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P83_167, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P83_specs_167 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P84_169[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SCell_ToBeRemoved_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P84_tags_169[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P84_specs_169 = { + sizeof(struct ProtocolExtensionContainer_4624P84), + offsetof(struct ProtocolExtensionContainer_4624P84, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P84 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P84_tags_169, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P84_tags_169) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P84_tags_169[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P84_tags_169, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P84_tags_169) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P84_tags_169[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P84_constr_169, &asn_PER_type_ProtocolExtensionContainer_4624P84_constr_169, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P84_169, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P84_specs_169 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P85_171[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SCell_ToBeSetup_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P85_tags_171[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P85_specs_171 = { + sizeof(struct ProtocolExtensionContainer_4624P85), + offsetof(struct ProtocolExtensionContainer_4624P85, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P85 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P85_tags_171, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P85_tags_171) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P85_tags_171[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P85_tags_171, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P85_tags_171) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P85_tags_171[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P85_constr_171, &asn_PER_type_ProtocolExtensionContainer_4624P85_constr_171, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P85_171, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P85_specs_171 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P86_173[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SCell_ToBeSetupMod_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P86_tags_173[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P86_specs_173 = { + sizeof(struct ProtocolExtensionContainer_4624P86), + offsetof(struct ProtocolExtensionContainer_4624P86, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P86 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P86_tags_173, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P86_tags_173) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P86_tags_173[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P86_tags_173, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P86_tags_173) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P86_tags_173[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P86_constr_173, &asn_PER_type_ProtocolExtensionContainer_4624P86_constr_173, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P86_173, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P86_specs_173 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P87_175[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Served_Cell_Information_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P87_tags_175[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P87_specs_175 = { + sizeof(struct ProtocolExtensionContainer_4624P87), + offsetof(struct ProtocolExtensionContainer_4624P87, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P87 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P87_tags_175, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P87_tags_175) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P87_tags_175[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P87_tags_175, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P87_tags_175) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P87_tags_175[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P87_constr_175, &asn_PER_type_ProtocolExtensionContainer_4624P87_constr_175, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P87_175, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P87_specs_175 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P88_177[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Served_Cells_To_Add_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P88_tags_177[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P88_specs_177 = { + sizeof(struct ProtocolExtensionContainer_4624P88), + offsetof(struct ProtocolExtensionContainer_4624P88, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P88 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P88_tags_177, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P88_tags_177) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P88_tags_177[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P88_tags_177, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P88_tags_177) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P88_tags_177[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P88_constr_177, &asn_PER_type_ProtocolExtensionContainer_4624P88_constr_177, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P88_177, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P88_specs_177 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P89_179[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Served_Cells_To_Delete_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P89_tags_179[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P89_specs_179 = { + sizeof(struct ProtocolExtensionContainer_4624P89), + offsetof(struct ProtocolExtensionContainer_4624P89, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P89 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P89_tags_179, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P89_tags_179) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P89_tags_179[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P89_tags_179, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P89_tags_179) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P89_tags_179[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P89_constr_179, &asn_PER_type_ProtocolExtensionContainer_4624P89_constr_179, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P89_179, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P89_specs_179 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P90_181[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Served_Cells_To_Modify_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P90_tags_181[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P90_specs_181 = { + sizeof(struct ProtocolExtensionContainer_4624P90), + offsetof(struct ProtocolExtensionContainer_4624P90, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P90 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P90_tags_181, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P90_tags_181) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P90_tags_181[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P90_tags_181, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P90_tags_181) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P90_tags_181[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P90_constr_181, &asn_PER_type_ProtocolExtensionContainer_4624P90_constr_181, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P90_181, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P90_specs_181 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P91_183[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Served_EUTRA_Cell_Information_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P91_tags_183[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P91_specs_183 = { + sizeof(struct ProtocolExtensionContainer_4624P91), + offsetof(struct ProtocolExtensionContainer_4624P91, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P91 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P91_tags_183, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P91_tags_183) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P91_tags_183[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P91_tags_183, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P91_tags_183) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P91_tags_183[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P91_constr_183, &asn_PER_type_ProtocolExtensionContainer_4624P91_constr_183, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P91_183, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P91_specs_183 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P92_185[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Service_Status_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P92_tags_185[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P92_specs_185 = { + sizeof(struct ProtocolExtensionContainer_4624P92), + offsetof(struct ProtocolExtensionContainer_4624P92, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P92 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P92_tags_185, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P92_tags_185) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P92_tags_185[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P92_tags_185, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P92_tags_185) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P92_tags_185[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P92_constr_185, &asn_PER_type_ProtocolExtensionContainer_4624P92_constr_185, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P92_185, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P92_specs_185 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P93_187[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SItype_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P93_tags_187[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P93_specs_187 = { + sizeof(struct ProtocolExtensionContainer_4624P93), + offsetof(struct ProtocolExtensionContainer_4624P93, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P93 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P93_tags_187, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P93_tags_187) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P93_tags_187[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P93_tags_187, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P93_tags_187) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P93_tags_187[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P93_constr_187, &asn_PER_type_ProtocolExtensionContainer_4624P93_constr_187, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P93_187, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P93_specs_187 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P94_189[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SibtypetobeupdatedListItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P94_tags_189[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P94_specs_189 = { + sizeof(struct ProtocolExtensionContainer_4624P94), + offsetof(struct ProtocolExtensionContainer_4624P94, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P94 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P94_tags_189, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P94_tags_189) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P94_tags_189[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P94_tags_189, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P94_tags_189) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P94_tags_189[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P94_constr_189, &asn_PER_type_ProtocolExtensionContainer_4624P94_constr_189, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P94_189, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P94_specs_189 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P95_191[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SliceSupportItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P95_tags_191[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P95_specs_191 = { + sizeof(struct ProtocolExtensionContainer_4624P95), + offsetof(struct ProtocolExtensionContainer_4624P95, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P95 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P95_tags_191, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P95_tags_191) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P95_tags_191[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P95_tags_191, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P95_tags_191) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P95_tags_191[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P95_constr_191, &asn_PER_type_ProtocolExtensionContainer_4624P95_constr_191, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P95_191, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P95_specs_191 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P96_193[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SNSSAI_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P96_tags_193[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P96_specs_193 = { + sizeof(struct ProtocolExtensionContainer_4624P96), + offsetof(struct ProtocolExtensionContainer_4624P96, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P96 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P96_tags_193, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P96_tags_193) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P96_tags_193[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P96_tags_193, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P96_tags_193) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P96_tags_193[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P96_constr_193, &asn_PER_type_ProtocolExtensionContainer_4624P96_constr_193, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P96_193, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P96_specs_193 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P97_195[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_FailedToBeSetup_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P97_tags_195[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P97_specs_195 = { + sizeof(struct ProtocolExtensionContainer_4624P97), + offsetof(struct ProtocolExtensionContainer_4624P97, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P97 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P97_tags_195, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P97_tags_195) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P97_tags_195[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P97_tags_195, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P97_tags_195) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P97_tags_195[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P97_constr_195, &asn_PER_type_ProtocolExtensionContainer_4624P97_constr_195, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P97_195, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P97_specs_195 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P98_197[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_FailedToBeSetupMod_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P98_tags_197[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P98_specs_197 = { + sizeof(struct ProtocolExtensionContainer_4624P98), + offsetof(struct ProtocolExtensionContainer_4624P98, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P98 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P98_tags_197, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P98_tags_197) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P98_tags_197[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P98_tags_197, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P98_tags_197) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P98_tags_197[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P98_constr_197, &asn_PER_type_ProtocolExtensionContainer_4624P98_constr_197, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P98_197, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P98_specs_197 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P99_199[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_Modified_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P99_tags_199[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P99_specs_199 = { + sizeof(struct ProtocolExtensionContainer_4624P99), + offsetof(struct ProtocolExtensionContainer_4624P99, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P99 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P99_tags_199, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P99_tags_199) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P99_tags_199[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P99_tags_199, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P99_tags_199) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P99_tags_199[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P99_constr_199, &asn_PER_type_ProtocolExtensionContainer_4624P99_constr_199, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P99_199, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P99_specs_199 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P100_201[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_Required_ToBeReleased_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P100_tags_201[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P100_specs_201 = { + sizeof(struct ProtocolExtensionContainer_4624P100), + offsetof(struct ProtocolExtensionContainer_4624P100, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P100 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P100_tags_201, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P100_tags_201) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P100_tags_201[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P100_tags_201, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P100_tags_201) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P100_tags_201[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P100_constr_201, &asn_PER_type_ProtocolExtensionContainer_4624P100_constr_201, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P100_201, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P100_specs_201 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P101_203[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_Setup_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P101_tags_203[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P101_specs_203 = { + sizeof(struct ProtocolExtensionContainer_4624P101), + offsetof(struct ProtocolExtensionContainer_4624P101, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P101 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P101_tags_203, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P101_tags_203) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P101_tags_203[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P101_tags_203, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P101_tags_203) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P101_tags_203[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P101_constr_203, &asn_PER_type_ProtocolExtensionContainer_4624P101_constr_203, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P101_203, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P101_specs_203 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P102_205[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_SetupMod_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P102_tags_205[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P102_specs_205 = { + sizeof(struct ProtocolExtensionContainer_4624P102), + offsetof(struct ProtocolExtensionContainer_4624P102, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P102 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P102_tags_205, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P102_tags_205) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P102_tags_205[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P102_tags_205, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P102_tags_205) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P102_tags_205[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P102_constr_205, &asn_PER_type_ProtocolExtensionContainer_4624P102_constr_205, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P102_205, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P102_specs_205 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P103_207[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_ToBeReleased_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P103_tags_207[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P103_specs_207 = { + sizeof(struct ProtocolExtensionContainer_4624P103), + offsetof(struct ProtocolExtensionContainer_4624P103, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P103 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P103_tags_207, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P103_tags_207) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P103_tags_207[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P103_tags_207, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P103_tags_207) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P103_tags_207[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P103_constr_207, &asn_PER_type_ProtocolExtensionContainer_4624P103_constr_207, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P103_207, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P103_specs_207 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P104_209[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_ToBeSetup_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P104_tags_209[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P104_specs_209 = { + sizeof(struct ProtocolExtensionContainer_4624P104), + offsetof(struct ProtocolExtensionContainer_4624P104, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P104 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P104_tags_209, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P104_tags_209) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P104_tags_209[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P104_tags_209, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P104_tags_209) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P104_tags_209[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P104_constr_209, &asn_PER_type_ProtocolExtensionContainer_4624P104_constr_209, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P104_209, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P104_specs_209 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P105_211[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_ToBeSetupMod_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P105_tags_211[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P105_specs_211 = { + sizeof(struct ProtocolExtensionContainer_4624P105), + offsetof(struct ProtocolExtensionContainer_4624P105, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P105 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P105_tags_211, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P105_tags_211) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P105_tags_211[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P105_tags_211, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P105_tags_211) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P105_tags_211[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P105_constr_211, &asn_PER_type_ProtocolExtensionContainer_4624P105_constr_211, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P105_211, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P105_specs_211 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P106_213[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SUL_InformationExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P106_tags_213[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P106_specs_213 = { + sizeof(struct ProtocolExtensionContainer_4624P106), + offsetof(struct ProtocolExtensionContainer_4624P106, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P106 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P106_tags_213, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P106_tags_213) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P106_tags_213[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P106_tags_213, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P106_tags_213) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P106_tags_213[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P106_constr_213, &asn_PER_type_ProtocolExtensionContainer_4624P106_constr_213, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P106_213, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P106_specs_213 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P107_215[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SupportedSULFreqBandItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P107_tags_215[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P107_specs_215 = { + sizeof(struct ProtocolExtensionContainer_4624P107), + offsetof(struct ProtocolExtensionContainer_4624P107, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P107 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P107_tags_215, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P107_tags_215) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P107_tags_215[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P107_tags_215, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P107_tags_215) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P107_tags_215[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P107_constr_215, &asn_PER_type_ProtocolExtensionContainer_4624P107_constr_215, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P107_215, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P107_specs_215 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P108_217[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TDD_Info_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P108_tags_217[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P108_specs_217 = { + sizeof(struct ProtocolExtensionContainer_4624P108), + offsetof(struct ProtocolExtensionContainer_4624P108, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P108 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P108_tags_217, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P108_tags_217) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P108_tags_217[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P108_tags_217, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P108_tags_217) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P108_tags_217[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P108_constr_217, &asn_PER_type_ProtocolExtensionContainer_4624P108_constr_217, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P108_217, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P108_specs_217 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P109_219[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Transmission_Bandwidth_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P109_tags_219[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P109_specs_219 = { + sizeof(struct ProtocolExtensionContainer_4624P109), + offsetof(struct ProtocolExtensionContainer_4624P109, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P109 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P109_tags_219, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P109_tags_219) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P109_tags_219[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P109_tags_219, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P109_tags_219) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P109_tags_219[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P109_constr_219, &asn_PER_type_ProtocolExtensionContainer_4624P109_constr_219, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P109_219, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P109_specs_219 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P110_221[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UE_associatedLogicalF1_ConnectionItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P110_tags_221[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P110_specs_221 = { + sizeof(struct ProtocolExtensionContainer_4624P110), + offsetof(struct ProtocolExtensionContainer_4624P110, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P110 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P110_tags_221, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P110_tags_221) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P110_tags_221[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P110_tags_221, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P110_tags_221) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P110_tags_221[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P110_constr_221, &asn_PER_type_ProtocolExtensionContainer_4624P110_constr_221, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P110_221, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P110_specs_221 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P111_223[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ULConfigurationExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P111_tags_223[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P111_specs_223 = { + sizeof(struct ProtocolExtensionContainer_4624P111), + offsetof(struct ProtocolExtensionContainer_4624P111, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P111 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P111_tags_223, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P111_tags_223) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P111_tags_223[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P111_tags_223, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P111_tags_223) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P111_tags_223[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P111_constr_223, &asn_PER_type_ProtocolExtensionContainer_4624P111_constr_223, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P111_223, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P111_specs_223 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P112_225[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ULUPTNLInformation_ToBeSetup_ItemExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolExtensionContainer_4624P112_tags_225[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P112_specs_225 = { + sizeof(struct ProtocolExtensionContainer_4624P112), + offsetof(struct ProtocolExtensionContainer_4624P112, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P112 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_4624P112_tags_225, + sizeof(asn_DEF_ProtocolExtensionContainer_4624P112_tags_225) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P112_tags_225[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_4624P112_tags_225, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_4624P112_tags_225) + /sizeof(asn_DEF_ProtocolExtensionContainer_4624P112_tags_225[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionContainer_4624P112_constr_225, &asn_PER_type_ProtocolExtensionContainer_4624P112_constr_225, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_4624P112_225, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_4624P112_specs_225 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/ProtocolExtensionContainer.h b/src/du_app/F1AP/asn/ProtocolExtensionContainer.h new file mode 100755 index 000000000..7cf61053d --- /dev/null +++ b/src/du_app/F1AP/asn/ProtocolExtensionContainer.h @@ -0,0 +1,1276 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-Containers" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ProtocolExtensionContainer_H_ +#define _ProtocolExtensionContainer_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct AllocationAndRetentionPriority_ExtIEs; +struct Associated_SCell_ItemExtIEs; +struct AvailablePLMNList_Item_ExtIEs; +struct ServedPLMNs_ItemExtIEs; +struct Candidate_SpCell_ItemExtIEs; +struct Cells_Failed_to_be_Activated_List_ItemExtIEs; +struct Cells_Status_ItemExtIEs; +struct Cells_To_Be_Broadcast_ItemExtIEs; +struct Cells_Broadcast_Completed_ItemExtIEs; +struct Broadcast_To_Be_Cancelled_ItemExtIEs; +struct Cells_Broadcast_Cancelled_ItemExtIEs; +struct Cells_to_be_Activated_List_ItemExtIEs; +struct Cells_to_be_Deactivated_List_ItemExtIEs; +struct Cells_to_be_Barred_Item_ExtIEs; +struct CriticalityDiagnostics_ExtIEs; +struct CriticalityDiagnostics_IE_Item_ExtIEs; +struct CUtoDURRCInformation_ExtIEs; +struct DedicatedSIDeliveryNeededUE_Item_ExtIEs; +struct DLUPTNLInformation_ToBeSetup_ItemExtIEs; +struct DRB_Activity_ItemExtIEs; +struct DRBs_FailedToBeModified_ItemExtIEs; +struct DRBs_FailedToBeSetup_ItemExtIEs; +struct DRBs_FailedToBeSetupMod_ItemExtIEs; +struct DRB_Information_ItemExtIEs; +struct DRBs_Modified_ItemExtIEs; +struct DRBs_ModifiedConf_ItemExtIEs; +struct DRB_Notify_ItemExtIEs; +struct DRBs_Required_ToBeModified_ItemExtIEs; +struct DRBs_Required_ToBeReleased_ItemExtIEs; +struct DRBs_Setup_ItemExtIEs; +struct DRBs_SetupMod_ItemExtIEs; +struct DRBs_ToBeModified_ItemExtIEs; +struct DRBs_ToBeReleased_ItemExtIEs; +struct DRBs_ToBeSetup_ItemExtIEs; +struct DRBs_ToBeSetupMod_ItemExtIEs; +struct DRXCycle_ExtIEs; +struct DUtoCURRCInformation_ExtIEs; +struct Dynamic5QIDescriptor_ExtIEs; +struct Endpoint_IP_address_and_port_ExtIEs; +struct ExtendedAvailablePLMN_Item_ExtIEs; +struct ExtendedServedPLMNs_ItemExtIEs; +struct EUTRACells_List_itemExtIEs; +struct EUTRA_Coex_FDD_Info_ExtIEs; +struct EUTRA_Coex_TDD_Info_ExtIEs; +struct EUTRA_PRACH_Configuration_ExtIEs; +struct EUTRA_SpecialSubframe_Info_ExtIEs; +struct EUTRANQoS_ExtIEs; +struct EUTRA_FDD_Info_ExtIEs; +struct EUTRA_TDD_Info_ExtIEs; +struct FDD_Info_ExtIEs; +struct Flows_Mapped_To_DRB_ItemExtIEs; +struct FreqBandNrItem_ExtIEs; +struct GBR_QosInformation_ExtIEs; +struct GBR_QosFlowInformation_ExtIEs; +struct GNB_CUSystemInformation_ExtIEs; +struct GNB_CU_TNL_Association_Setup_Item_ExtIEs; +struct GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs; +struct GNB_CU_TNL_Association_To_Add_Item_ExtIEs; +struct GNB_CU_TNL_Association_To_Remove_Item_ExtIEs; +struct GNB_CU_TNL_Association_To_Update_Item_ExtIEs; +struct GNB_DU_Served_Cells_ItemExtIEs; +struct GNB_DU_System_Information_ExtIEs; +struct GTPTunnel_ExtIEs; +struct NGRANAllocationAndRetentionPriority_ExtIEs; +struct NR_CGI_List_For_Restart_ItemExtIEs; +struct NonDynamic5QIDescriptor_ExtIEs; +struct NRFreqInfoExtIEs; +struct NRCGI_ExtIEs; +struct PacketErrorRate_ExtIEs; +struct PagingCell_ItemExtIEs; +struct Protected_EUTRA_Resources_ItemExtIEs; +struct Potential_SpCell_ItemExtIEs; +struct PWS_Failed_NR_CGI_ItemExtIEs; +struct PWSSystemInformationExtIEs; +struct QoSFlowLevelQoSParameters_ExtIEs; +struct RANUEPagingIdentity_ExtIEs; +struct ResourceCoordinationEUTRACellInfo_ExtIEs; +struct ResourceCoordinationTransferInformation_ExtIEs; +struct RLCFailureIndication_ExtIEs; +struct RLC_Status_ExtIEs; +struct RRCDeliveryStatus_ExtIEs; +struct RRC_Version_ExtIEs; +struct SCell_FailedtoSetup_ItemExtIEs; +struct SCell_FailedtoSetupMod_ItemExtIEs; +struct SCell_ToBeRemoved_ItemExtIEs; +struct SCell_ToBeSetup_ItemExtIEs; +struct SCell_ToBeSetupMod_ItemExtIEs; +struct Served_Cell_Information_ExtIEs; +struct Served_Cells_To_Add_ItemExtIEs; +struct Served_Cells_To_Delete_ItemExtIEs; +struct Served_Cells_To_Modify_ItemExtIEs; +struct Served_EUTRA_Cell_Information_ExtIEs; +struct Service_Status_ExtIEs; +struct SItype_ItemExtIEs; +struct SibtypetobeupdatedListItem_ExtIEs; +struct SliceSupportItem_ExtIEs; +struct SNSSAI_ExtIEs; +struct SRBs_FailedToBeSetup_ItemExtIEs; +struct SRBs_FailedToBeSetupMod_ItemExtIEs; +struct SRBs_Modified_ItemExtIEs; +struct SRBs_Required_ToBeReleased_ItemExtIEs; +struct SRBs_Setup_ItemExtIEs; +struct SRBs_SetupMod_ItemExtIEs; +struct SRBs_ToBeReleased_ItemExtIEs; +struct SRBs_ToBeSetup_ItemExtIEs; +struct SRBs_ToBeSetupMod_ItemExtIEs; +struct SUL_InformationExtIEs; +struct SupportedSULFreqBandItem_ExtIEs; +struct TDD_Info_ExtIEs; +struct Transmission_Bandwidth_ExtIEs; +struct UE_associatedLogicalF1_ConnectionItemExtIEs; +struct ULConfigurationExtIEs; +struct ULUPTNLInformation_ToBeSetup_ItemExtIEs; + +/* ProtocolExtensionContainer */ +typedef struct ProtocolExtensionContainer_4624P0 { + A_SEQUENCE_OF(struct AllocationAndRetentionPriority_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P0_t; +typedef struct ProtocolExtensionContainer_4624P1 { + A_SEQUENCE_OF(struct Associated_SCell_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P1_t; +typedef struct ProtocolExtensionContainer_4624P2 { + A_SEQUENCE_OF(struct AvailablePLMNList_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P2_t; +typedef struct ProtocolExtensionContainer_4624P3 { + A_SEQUENCE_OF(struct ServedPLMNs_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P3_t; +typedef struct ProtocolExtensionContainer_4624P4 { + A_SEQUENCE_OF(struct Candidate_SpCell_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P4_t; +typedef struct ProtocolExtensionContainer_4624P5 { + A_SEQUENCE_OF(struct Cells_Failed_to_be_Activated_List_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P5_t; +typedef struct ProtocolExtensionContainer_4624P6 { + A_SEQUENCE_OF(struct Cells_Status_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P6_t; +typedef struct ProtocolExtensionContainer_4624P7 { + A_SEQUENCE_OF(struct Cells_To_Be_Broadcast_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P7_t; +typedef struct ProtocolExtensionContainer_4624P8 { + A_SEQUENCE_OF(struct Cells_Broadcast_Completed_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P8_t; +typedef struct ProtocolExtensionContainer_4624P9 { + A_SEQUENCE_OF(struct Broadcast_To_Be_Cancelled_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P9_t; +typedef struct ProtocolExtensionContainer_4624P10 { + A_SEQUENCE_OF(struct Cells_Broadcast_Cancelled_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P10_t; +typedef struct ProtocolExtensionContainer_4624P11 { + A_SEQUENCE_OF(struct Cells_to_be_Activated_List_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P11_t; +typedef struct ProtocolExtensionContainer_4624P12 { + A_SEQUENCE_OF(struct Cells_to_be_Deactivated_List_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P12_t; +typedef struct ProtocolExtensionContainer_4624P13 { + A_SEQUENCE_OF(struct Cells_to_be_Barred_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P13_t; +typedef struct ProtocolExtensionContainer_4624P14 { + A_SEQUENCE_OF(struct CriticalityDiagnostics_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P14_t; +typedef struct ProtocolExtensionContainer_4624P15 { + A_SEQUENCE_OF(struct CriticalityDiagnostics_IE_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P15_t; +typedef struct ProtocolExtensionContainer_4624P16 { + A_SEQUENCE_OF(struct CUtoDURRCInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P16_t; +typedef struct ProtocolExtensionContainer_4624P17 { + A_SEQUENCE_OF(struct DedicatedSIDeliveryNeededUE_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P17_t; +typedef struct ProtocolExtensionContainer_4624P18 { + A_SEQUENCE_OF(struct DLUPTNLInformation_ToBeSetup_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P18_t; +typedef struct ProtocolExtensionContainer_4624P19 { + A_SEQUENCE_OF(struct DRB_Activity_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P19_t; +typedef struct ProtocolExtensionContainer_4624P20 { + A_SEQUENCE_OF(struct DRBs_FailedToBeModified_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P20_t; +typedef struct ProtocolExtensionContainer_4624P21 { + A_SEQUENCE_OF(struct DRBs_FailedToBeSetup_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P21_t; +typedef struct ProtocolExtensionContainer_4624P22 { + A_SEQUENCE_OF(struct DRBs_FailedToBeSetupMod_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P22_t; +typedef struct ProtocolExtensionContainer_4624P23 { + A_SEQUENCE_OF(struct DRB_Information_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P23_t; +typedef struct ProtocolExtensionContainer_4624P24 { + A_SEQUENCE_OF(struct DRBs_Modified_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P24_t; +typedef struct ProtocolExtensionContainer_4624P25 { + A_SEQUENCE_OF(struct DRBs_ModifiedConf_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P25_t; +typedef struct ProtocolExtensionContainer_4624P26 { + A_SEQUENCE_OF(struct DRB_Notify_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P26_t; +typedef struct ProtocolExtensionContainer_4624P27 { + A_SEQUENCE_OF(struct DRBs_Required_ToBeModified_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P27_t; +typedef struct ProtocolExtensionContainer_4624P28 { + A_SEQUENCE_OF(struct DRBs_Required_ToBeReleased_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P28_t; +typedef struct ProtocolExtensionContainer_4624P29 { + A_SEQUENCE_OF(struct DRBs_Setup_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P29_t; +typedef struct ProtocolExtensionContainer_4624P30 { + A_SEQUENCE_OF(struct DRBs_SetupMod_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P30_t; +typedef struct ProtocolExtensionContainer_4624P31 { + A_SEQUENCE_OF(struct DRBs_ToBeModified_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P31_t; +typedef struct ProtocolExtensionContainer_4624P32 { + A_SEQUENCE_OF(struct DRBs_ToBeReleased_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P32_t; +typedef struct ProtocolExtensionContainer_4624P33 { + A_SEQUENCE_OF(struct DRBs_ToBeSetup_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P33_t; +typedef struct ProtocolExtensionContainer_4624P34 { + A_SEQUENCE_OF(struct DRBs_ToBeSetupMod_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P34_t; +typedef struct ProtocolExtensionContainer_4624P35 { + A_SEQUENCE_OF(struct DRXCycle_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P35_t; +typedef struct ProtocolExtensionContainer_4624P36 { + A_SEQUENCE_OF(struct DUtoCURRCInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P36_t; +typedef struct ProtocolExtensionContainer_4624P37 { + A_SEQUENCE_OF(struct Dynamic5QIDescriptor_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P37_t; +typedef struct ProtocolExtensionContainer_4624P38 { + A_SEQUENCE_OF(struct Endpoint_IP_address_and_port_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P38_t; +typedef struct ProtocolExtensionContainer_4624P39 { + A_SEQUENCE_OF(struct ExtendedAvailablePLMN_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P39_t; +typedef struct ProtocolExtensionContainer_4624P40 { + A_SEQUENCE_OF(struct ExtendedServedPLMNs_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P40_t; +typedef struct ProtocolExtensionContainer_4624P41 { + A_SEQUENCE_OF(struct EUTRACells_List_itemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P41_t; +typedef struct ProtocolExtensionContainer_4624P42 { + A_SEQUENCE_OF(struct EUTRA_Coex_FDD_Info_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P42_t; +typedef struct ProtocolExtensionContainer_4624P43 { + A_SEQUENCE_OF(struct EUTRA_Coex_TDD_Info_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P43_t; +typedef struct ProtocolExtensionContainer_4624P44 { + A_SEQUENCE_OF(struct EUTRA_PRACH_Configuration_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P44_t; +typedef struct ProtocolExtensionContainer_4624P45 { + A_SEQUENCE_OF(struct EUTRA_SpecialSubframe_Info_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P45_t; +typedef struct ProtocolExtensionContainer_4624P46 { + A_SEQUENCE_OF(struct EUTRANQoS_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P46_t; +typedef struct ProtocolExtensionContainer_4624P47 { + A_SEQUENCE_OF(struct EUTRA_FDD_Info_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P47_t; +typedef struct ProtocolExtensionContainer_4624P48 { + A_SEQUENCE_OF(struct EUTRA_TDD_Info_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P48_t; +typedef struct ProtocolExtensionContainer_4624P49 { + A_SEQUENCE_OF(struct FDD_Info_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P49_t; +typedef struct ProtocolExtensionContainer_4624P50 { + A_SEQUENCE_OF(struct Flows_Mapped_To_DRB_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P50_t; +typedef struct ProtocolExtensionContainer_4624P51 { + A_SEQUENCE_OF(struct FreqBandNrItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P51_t; +typedef struct ProtocolExtensionContainer_4624P52 { + A_SEQUENCE_OF(struct GBR_QosInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P52_t; +typedef struct ProtocolExtensionContainer_4624P53 { + A_SEQUENCE_OF(struct GBR_QosFlowInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P53_t; +typedef struct ProtocolExtensionContainer_4624P54 { + A_SEQUENCE_OF(struct GNB_CUSystemInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P54_t; +typedef struct ProtocolExtensionContainer_4624P55 { + A_SEQUENCE_OF(struct GNB_CU_TNL_Association_Setup_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P55_t; +typedef struct ProtocolExtensionContainer_4624P56 { + A_SEQUENCE_OF(struct GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P56_t; +typedef struct ProtocolExtensionContainer_4624P57 { + A_SEQUENCE_OF(struct GNB_CU_TNL_Association_To_Add_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P57_t; +typedef struct ProtocolExtensionContainer_4624P58 { + A_SEQUENCE_OF(struct GNB_CU_TNL_Association_To_Remove_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P58_t; +typedef struct ProtocolExtensionContainer_4624P59 { + A_SEQUENCE_OF(struct GNB_CU_TNL_Association_To_Update_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P59_t; +typedef struct ProtocolExtensionContainer_4624P60 { + A_SEQUENCE_OF(struct GNB_DU_Served_Cells_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P60_t; +typedef struct ProtocolExtensionContainer_4624P61 { + A_SEQUENCE_OF(struct GNB_DU_System_Information_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P61_t; +typedef struct ProtocolExtensionContainer_4624P62 { + A_SEQUENCE_OF(struct GTPTunnel_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P62_t; +typedef struct ProtocolExtensionContainer_4624P63 { + A_SEQUENCE_OF(struct NGRANAllocationAndRetentionPriority_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P63_t; +typedef struct ProtocolExtensionContainer_4624P64 { + A_SEQUENCE_OF(struct NR_CGI_List_For_Restart_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P64_t; +typedef struct ProtocolExtensionContainer_4624P65 { + A_SEQUENCE_OF(struct NonDynamic5QIDescriptor_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P65_t; +typedef struct ProtocolExtensionContainer_4624P66 { + A_SEQUENCE_OF(struct NRFreqInfoExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P66_t; +typedef struct ProtocolExtensionContainer_4624P67 { + A_SEQUENCE_OF(struct NRCGI_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P67_t; +typedef struct ProtocolExtensionContainer_4624P68 { + A_SEQUENCE_OF(struct PacketErrorRate_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P68_t; +typedef struct ProtocolExtensionContainer_4624P69 { + A_SEQUENCE_OF(struct PagingCell_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P69_t; +typedef struct ProtocolExtensionContainer_4624P70 { + A_SEQUENCE_OF(struct Protected_EUTRA_Resources_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P70_t; +typedef struct ProtocolExtensionContainer_4624P71 { + A_SEQUENCE_OF(struct Potential_SpCell_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P71_t; +typedef struct ProtocolExtensionContainer_4624P72 { + A_SEQUENCE_OF(struct PWS_Failed_NR_CGI_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P72_t; +typedef struct ProtocolExtensionContainer_4624P73 { + A_SEQUENCE_OF(struct PWSSystemInformationExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P73_t; +typedef struct ProtocolExtensionContainer_4624P74 { + A_SEQUENCE_OF(struct QoSFlowLevelQoSParameters_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P74_t; +typedef struct ProtocolExtensionContainer_4624P75 { + A_SEQUENCE_OF(struct RANUEPagingIdentity_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P75_t; +typedef struct ProtocolExtensionContainer_4624P76 { + A_SEQUENCE_OF(struct ResourceCoordinationEUTRACellInfo_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P76_t; +typedef struct ProtocolExtensionContainer_4624P77 { + A_SEQUENCE_OF(struct ResourceCoordinationTransferInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P77_t; +typedef struct ProtocolExtensionContainer_4624P78 { + A_SEQUENCE_OF(struct RLCFailureIndication_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P78_t; +typedef struct ProtocolExtensionContainer_4624P79 { + A_SEQUENCE_OF(struct RLC_Status_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P79_t; +typedef struct ProtocolExtensionContainer_4624P80 { + A_SEQUENCE_OF(struct RRCDeliveryStatus_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P80_t; +typedef struct ProtocolExtensionContainer_4624P81 { + A_SEQUENCE_OF(struct RRC_Version_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P81_t; +typedef struct ProtocolExtensionContainer_4624P82 { + A_SEQUENCE_OF(struct SCell_FailedtoSetup_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P82_t; +typedef struct ProtocolExtensionContainer_4624P83 { + A_SEQUENCE_OF(struct SCell_FailedtoSetupMod_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P83_t; +typedef struct ProtocolExtensionContainer_4624P84 { + A_SEQUENCE_OF(struct SCell_ToBeRemoved_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P84_t; +typedef struct ProtocolExtensionContainer_4624P85 { + A_SEQUENCE_OF(struct SCell_ToBeSetup_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P85_t; +typedef struct ProtocolExtensionContainer_4624P86 { + A_SEQUENCE_OF(struct SCell_ToBeSetupMod_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P86_t; +typedef struct ProtocolExtensionContainer_4624P87 { + A_SEQUENCE_OF(struct Served_Cell_Information_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P87_t; +typedef struct ProtocolExtensionContainer_4624P88 { + A_SEQUENCE_OF(struct Served_Cells_To_Add_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P88_t; +typedef struct ProtocolExtensionContainer_4624P89 { + A_SEQUENCE_OF(struct Served_Cells_To_Delete_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P89_t; +typedef struct ProtocolExtensionContainer_4624P90 { + A_SEQUENCE_OF(struct Served_Cells_To_Modify_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P90_t; +typedef struct ProtocolExtensionContainer_4624P91 { + A_SEQUENCE_OF(struct Served_EUTRA_Cell_Information_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P91_t; +typedef struct ProtocolExtensionContainer_4624P92 { + A_SEQUENCE_OF(struct Service_Status_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P92_t; +typedef struct ProtocolExtensionContainer_4624P93 { + A_SEQUENCE_OF(struct SItype_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P93_t; +typedef struct ProtocolExtensionContainer_4624P94 { + A_SEQUENCE_OF(struct SibtypetobeupdatedListItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P94_t; +typedef struct ProtocolExtensionContainer_4624P95 { + A_SEQUENCE_OF(struct SliceSupportItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P95_t; +typedef struct ProtocolExtensionContainer_4624P96 { + A_SEQUENCE_OF(struct SNSSAI_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P96_t; +typedef struct ProtocolExtensionContainer_4624P97 { + A_SEQUENCE_OF(struct SRBs_FailedToBeSetup_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P97_t; +typedef struct ProtocolExtensionContainer_4624P98 { + A_SEQUENCE_OF(struct SRBs_FailedToBeSetupMod_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P98_t; +typedef struct ProtocolExtensionContainer_4624P99 { + A_SEQUENCE_OF(struct SRBs_Modified_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P99_t; +typedef struct ProtocolExtensionContainer_4624P100 { + A_SEQUENCE_OF(struct SRBs_Required_ToBeReleased_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P100_t; +typedef struct ProtocolExtensionContainer_4624P101 { + A_SEQUENCE_OF(struct SRBs_Setup_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P101_t; +typedef struct ProtocolExtensionContainer_4624P102 { + A_SEQUENCE_OF(struct SRBs_SetupMod_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P102_t; +typedef struct ProtocolExtensionContainer_4624P103 { + A_SEQUENCE_OF(struct SRBs_ToBeReleased_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P103_t; +typedef struct ProtocolExtensionContainer_4624P104 { + A_SEQUENCE_OF(struct SRBs_ToBeSetup_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P104_t; +typedef struct ProtocolExtensionContainer_4624P105 { + A_SEQUENCE_OF(struct SRBs_ToBeSetupMod_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P105_t; +typedef struct ProtocolExtensionContainer_4624P106 { + A_SEQUENCE_OF(struct SUL_InformationExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P106_t; +typedef struct ProtocolExtensionContainer_4624P107 { + A_SEQUENCE_OF(struct SupportedSULFreqBandItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P107_t; +typedef struct ProtocolExtensionContainer_4624P108 { + A_SEQUENCE_OF(struct TDD_Info_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P108_t; +typedef struct ProtocolExtensionContainer_4624P109 { + A_SEQUENCE_OF(struct Transmission_Bandwidth_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P109_t; +typedef struct ProtocolExtensionContainer_4624P110 { + A_SEQUENCE_OF(struct UE_associatedLogicalF1_ConnectionItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P110_t; +typedef struct ProtocolExtensionContainer_4624P111 { + A_SEQUENCE_OF(struct ULConfigurationExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P111_t; +typedef struct ProtocolExtensionContainer_4624P112 { + A_SEQUENCE_OF(struct ULUPTNLInformation_ToBeSetup_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_4624P112_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P0; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P0_specs_1; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P0_1[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P0_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P1; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P1_specs_3; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P1_3[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P1_constr_3; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P2; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P2_specs_5; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P2_5[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P2_constr_5; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P3; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P3_specs_7; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P3_7[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P3_constr_7; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P4; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P4_specs_9; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P4_9[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P4_constr_9; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P5; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P5_specs_11; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P5_11[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P5_constr_11; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P6; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P6_specs_13; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P6_13[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P6_constr_13; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P7; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P7_specs_15; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P7_15[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P7_constr_15; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P8; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P8_specs_17; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P8_17[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P8_constr_17; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P9; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P9_specs_19; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P9_19[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P9_constr_19; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P10; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P10_specs_21; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P10_21[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P10_constr_21; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P11; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P11_specs_23; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P11_23[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P11_constr_23; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P12; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P12_specs_25; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P12_25[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P12_constr_25; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P13; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P13_specs_27; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P13_27[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P13_constr_27; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P14; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P14_specs_29; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P14_29[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P14_constr_29; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P15; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P15_specs_31; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P15_31[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P15_constr_31; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P16; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P16_specs_33; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P16_33[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P16_constr_33; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P17; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P17_specs_35; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P17_35[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P17_constr_35; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P18; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P18_specs_37; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P18_37[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P18_constr_37; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P19; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P19_specs_39; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P19_39[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P19_constr_39; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P20; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P20_specs_41; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P20_41[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P20_constr_41; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P21; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P21_specs_43; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P21_43[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P21_constr_43; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P22; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P22_specs_45; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P22_45[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P22_constr_45; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P23; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P23_specs_47; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P23_47[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P23_constr_47; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P24; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P24_specs_49; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P24_49[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P24_constr_49; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P25; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P25_specs_51; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P25_51[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P25_constr_51; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P26; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P26_specs_53; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P26_53[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P26_constr_53; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P27; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P27_specs_55; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P27_55[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P27_constr_55; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P28; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P28_specs_57; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P28_57[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P28_constr_57; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P29; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P29_specs_59; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P29_59[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P29_constr_59; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P30; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P30_specs_61; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P30_61[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P30_constr_61; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P31; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P31_specs_63; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P31_63[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P31_constr_63; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P32; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P32_specs_65; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P32_65[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P32_constr_65; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P33; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P33_specs_67; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P33_67[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P33_constr_67; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P34; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P34_specs_69; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P34_69[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P34_constr_69; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P35; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P35_specs_71; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P35_71[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P35_constr_71; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P36; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P36_specs_73; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P36_73[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P36_constr_73; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P37; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P37_specs_75; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P37_75[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P37_constr_75; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P38; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P38_specs_77; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P38_77[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P38_constr_77; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P39; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P39_specs_79; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P39_79[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P39_constr_79; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P40; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P40_specs_81; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P40_81[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P40_constr_81; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P41; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P41_specs_83; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P41_83[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P41_constr_83; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P42; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P42_specs_85; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P42_85[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P42_constr_85; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P43; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P43_specs_87; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P43_87[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P43_constr_87; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P44; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P44_specs_89; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P44_89[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P44_constr_89; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P45; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P45_specs_91; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P45_91[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P45_constr_91; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P46; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P46_specs_93; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P46_93[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P46_constr_93; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P47; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P47_specs_95; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P47_95[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P47_constr_95; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P48; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P48_specs_97; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P48_97[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P48_constr_97; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P49; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P49_specs_99; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P49_99[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P49_constr_99; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P50; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P50_specs_101; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P50_101[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P50_constr_101; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P51; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P51_specs_103; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P51_103[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P51_constr_103; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P52; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P52_specs_105; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P52_105[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P52_constr_105; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P53; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P53_specs_107; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P53_107[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P53_constr_107; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P54; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P54_specs_109; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P54_109[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P54_constr_109; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P55; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P55_specs_111; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P55_111[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P55_constr_111; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P56; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P56_specs_113; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P56_113[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P56_constr_113; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P57; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P57_specs_115; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P57_115[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P57_constr_115; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P58; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P58_specs_117; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P58_117[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P58_constr_117; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P59; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P59_specs_119; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P59_119[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P59_constr_119; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P60; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P60_specs_121; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P60_121[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P60_constr_121; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P61; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P61_specs_123; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P61_123[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P61_constr_123; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P62; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P62_specs_125; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P62_125[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P62_constr_125; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P63; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P63_specs_127; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P63_127[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P63_constr_127; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P64; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P64_specs_129; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P64_129[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P64_constr_129; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P65; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P65_specs_131; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P65_131[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P65_constr_131; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P66; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P66_specs_133; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P66_133[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P66_constr_133; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P67; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P67_specs_135; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P67_135[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P67_constr_135; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P68; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P68_specs_137; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P68_137[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P68_constr_137; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P69; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P69_specs_139; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P69_139[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P69_constr_139; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P70; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P70_specs_141; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P70_141[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P70_constr_141; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P71; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P71_specs_143; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P71_143[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P71_constr_143; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P72; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P72_specs_145; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P72_145[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P72_constr_145; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P73; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P73_specs_147; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P73_147[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P73_constr_147; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P74; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P74_specs_149; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P74_149[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P74_constr_149; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P75; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P75_specs_151; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P75_151[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P75_constr_151; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P76; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P76_specs_153; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P76_153[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P76_constr_153; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P77; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P77_specs_155; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P77_155[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P77_constr_155; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P78; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P78_specs_157; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P78_157[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P78_constr_157; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P79; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P79_specs_159; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P79_159[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P79_constr_159; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P80; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P80_specs_161; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P80_161[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P80_constr_161; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P81; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P81_specs_163; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P81_163[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P81_constr_163; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P82; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P82_specs_165; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P82_165[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P82_constr_165; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P83; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P83_specs_167; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P83_167[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P83_constr_167; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P84; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P84_specs_169; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P84_169[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P84_constr_169; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P85; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P85_specs_171; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P85_171[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P85_constr_171; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P86; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P86_specs_173; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P86_173[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P86_constr_173; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P87; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P87_specs_175; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P87_175[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P87_constr_175; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P88; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P88_specs_177; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P88_177[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P88_constr_177; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P89; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P89_specs_179; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P89_179[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P89_constr_179; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P90; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P90_specs_181; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P90_181[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P90_constr_181; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P91; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P91_specs_183; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P91_183[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P91_constr_183; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P92; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P92_specs_185; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P92_185[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P92_constr_185; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P93; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P93_specs_187; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P93_187[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P93_constr_187; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P94; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P94_specs_189; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P94_189[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P94_constr_189; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P95; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P95_specs_191; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P95_191[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P95_constr_191; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P96; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P96_specs_193; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P96_193[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P96_constr_193; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P97; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P97_specs_195; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P97_195[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P97_constr_195; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P98; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P98_specs_197; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P98_197[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P98_constr_197; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P99; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P99_specs_199; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P99_199[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P99_constr_199; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P100; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P100_specs_201; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P100_201[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P100_constr_201; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P101; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P101_specs_203; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P101_203[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P101_constr_203; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P102; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P102_specs_205; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P102_205[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P102_constr_205; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P103; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P103_specs_207; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P103_207[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P103_constr_207; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P104; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P104_specs_209; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P104_209[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P104_constr_209; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P105; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P105_specs_211; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P105_211[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P105_constr_211; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P106; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P106_specs_213; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P106_213[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P106_constr_213; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P107; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P107_specs_215; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P107_215[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P107_constr_215; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P108; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P108_specs_217; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P108_217[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P108_constr_217; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P109; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P109_specs_219; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P109_219[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P109_constr_219; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P110; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P110_specs_221; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P110_221[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P110_constr_221; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P111; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P111_specs_223; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P111_223[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P111_constr_223; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_4624P112; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_4624P112_specs_225; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_4624P112_225[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_4624P112_constr_225; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtocolExtensionContainer_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ProtocolExtensionField.c b/src/du_app/F1AP/asn/ProtocolExtensionField.c new file mode 100755 index 000000000..cf62721e7 --- /dev/null +++ b/src/du_app/F1AP/asn/ProtocolExtensionField.c @@ -0,0 +1,21082 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-Containers" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ProtocolExtensionField.h" + +static const long asn_VAL_1_id_TAISliceSupportList = 131; +static const long asn_VAL_1_ignore = 1; +static const long asn_VAL_1_optional = 0; +static const asn_ioc_cell_t asn_IOS_ServedPLMNs_ItemExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_1_id_TAISliceSupportList }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_ignore }, + { "&Extension", aioc__type, &asn_DEF_SliceSupportList }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_1_optional } +}; +static const asn_ioc_set_t asn_IOS_ServedPLMNs_ItemExtIEs_1[] = { + { 1, 4, asn_IOS_ServedPLMNs_ItemExtIEs_1_rows } +}; +static const long asn_VAL_2_id_gNB_CUSystemInformation = 118; +static const long asn_VAL_2_reject = 0; +static const long asn_VAL_2_optional = 0; +static const long asn_VAL_3_id_AvailablePLMNList = 179; +static const long asn_VAL_3_ignore = 1; +static const long asn_VAL_3_optional = 0; +static const long asn_VAL_4_id_ExtendedAvailablePLMN_List = 197; +static const long asn_VAL_4_ignore = 1; +static const long asn_VAL_4_optional = 0; +static const asn_ioc_cell_t asn_IOS_Cells_to_be_Activated_List_ItemExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_2_id_gNB_CUSystemInformation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, + { "&Extension", aioc__type, &asn_DEF_GNB_CUSystemInformation }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_2_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_3_id_AvailablePLMNList }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_ignore }, + { "&Extension", aioc__type, &asn_DEF_AvailablePLMNList }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_3_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_4_id_ExtendedAvailablePLMN_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_ignore }, + { "&Extension", aioc__type, &asn_DEF_ExtendedAvailablePLMN_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_4_optional } +}; +static const asn_ioc_set_t asn_IOS_Cells_to_be_Activated_List_ItemExtIEs_1[] = { + { 3, 4, asn_IOS_Cells_to_be_Activated_List_ItemExtIEs_1_rows } +}; +static const long asn_VAL_5_id_HandoverPreparationInformation = 119; +static const long asn_VAL_5_ignore = 1; +static const long asn_VAL_5_optional = 0; +static const long asn_VAL_6_id_CellGroupConfig = 173; +static const long asn_VAL_6_ignore = 1; +static const long asn_VAL_6_optional = 0; +static const long asn_VAL_7_id_MeasurementTimingConfiguration = 163; +static const long asn_VAL_7_ignore = 1; +static const long asn_VAL_7_optional = 0; +static const long asn_VAL_8_id_UEAssistanceInformation = 214; +static const long asn_VAL_8_ignore = 1; +static const long asn_VAL_8_optional = 0; +static const asn_ioc_cell_t asn_IOS_CUtoDURRCInformation_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_5_id_HandoverPreparationInformation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_ignore }, + { "&Extension", aioc__type, &asn_DEF_HandoverPreparationInformation }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_5_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_6_id_CellGroupConfig }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_ignore }, + { "&Extension", aioc__type, &asn_DEF_CellGroupConfig }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_6_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_7_id_MeasurementTimingConfiguration }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_ignore }, + { "&Extension", aioc__type, &asn_DEF_MeasurementTimingConfiguration }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_7_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_8_id_UEAssistanceInformation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_ignore }, + { "&Extension", aioc__type, &asn_DEF_UEAssistanceInformation }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_8_optional } +}; +static const asn_ioc_set_t asn_IOS_CUtoDURRCInformation_ExtIEs_1[] = { + { 4, 4, asn_IOS_CUtoDURRCInformation_ExtIEs_1_rows } +}; +static const long asn_VAL_9_id_RLC_Status = 160; +static const long asn_VAL_9_ignore = 1; +static const long asn_VAL_9_optional = 0; +static const asn_ioc_cell_t asn_IOS_DRBs_Modified_ItemExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_9_id_RLC_Status }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore }, + { "&Extension", aioc__type, &asn_DEF_RLC_Status }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_9_optional } +}; +static const asn_ioc_set_t asn_IOS_DRBs_Modified_ItemExtIEs_1[] = { + { 1, 4, asn_IOS_DRBs_Modified_ItemExtIEs_1_rows } +}; +static const long asn_VAL_10_id_RLC_Status = 160; +static const long asn_VAL_10_ignore = 1; +static const long asn_VAL_10_optional = 0; +static const asn_ioc_cell_t asn_IOS_DRBs_Required_ToBeModified_ItemExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_10_id_RLC_Status }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_ignore }, + { "&Extension", aioc__type, &asn_DEF_RLC_Status }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_10_optional } +}; +static const asn_ioc_set_t asn_IOS_DRBs_Required_ToBeModified_ItemExtIEs_1[] = { + { 1, 4, asn_IOS_DRBs_Required_ToBeModified_ItemExtIEs_1_rows } +}; +static const long asn_VAL_11_id_DLPDCPSNLength = 161; +static const long asn_VAL_11_ignore = 1; +static const long asn_VAL_11_optional = 0; +static const long asn_VAL_12_id_ULPDCPSNLength = 192; +static const long asn_VAL_12_ignore = 1; +static const long asn_VAL_12_optional = 0; +static const long asn_VAL_13_id_BearerTypeChange = 186; +static const long asn_VAL_13_ignore = 1; +static const long asn_VAL_13_optional = 0; +static const long asn_VAL_14_id_RLCMode = 187; +static const long asn_VAL_14_ignore = 1; +static const long asn_VAL_14_optional = 0; +static const long asn_VAL_15_id_Duplication_Activation = 188; +static const long asn_VAL_15_reject = 0; +static const long asn_VAL_15_optional = 0; +static const long asn_VAL_16_id_DC_Based_Duplication_Configured = 176; +static const long asn_VAL_16_reject = 0; +static const long asn_VAL_16_optional = 0; +static const long asn_VAL_17_id_DC_Based_Duplication_Activation = 177; +static const long asn_VAL_17_reject = 0; +static const long asn_VAL_17_optional = 0; +static const asn_ioc_cell_t asn_IOS_DRBs_ToBeModified_ItemExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_11_id_DLPDCPSNLength }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore }, + { "&Extension", aioc__type, &asn_DEF_PDCPSNLength }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_11_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_12_id_ULPDCPSNLength }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_ignore }, + { "&Extension", aioc__type, &asn_DEF_PDCPSNLength }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_12_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_13_id_BearerTypeChange }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_ignore }, + { "&Extension", aioc__type, &asn_DEF_BearerTypeChange }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_13_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_14_id_RLCMode }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_ignore }, + { "&Extension", aioc__type, &asn_DEF_RLCMode }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_14_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_15_id_Duplication_Activation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_reject }, + { "&Extension", aioc__type, &asn_DEF_DuplicationActivation }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_15_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_16_id_DC_Based_Duplication_Configured }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_reject }, + { "&Extension", aioc__type, &asn_DEF_DCBasedDuplicationConfigured }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_16_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_17_id_DC_Based_Duplication_Activation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_17_reject }, + { "&Extension", aioc__type, &asn_DEF_DuplicationActivation }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_17_optional } +}; +static const asn_ioc_set_t asn_IOS_DRBs_ToBeModified_ItemExtIEs_1[] = { + { 7, 4, asn_IOS_DRBs_ToBeModified_ItemExtIEs_1_rows } +}; +static const long asn_VAL_18_id_DC_Based_Duplication_Configured = 176; +static const long asn_VAL_18_reject = 0; +static const long asn_VAL_18_optional = 0; +static const long asn_VAL_19_id_DC_Based_Duplication_Activation = 177; +static const long asn_VAL_19_reject = 0; +static const long asn_VAL_19_optional = 0; +static const long asn_VAL_20_id_DLPDCPSNLength = 161; +static const long asn_VAL_20_ignore = 1; +static const long asn_VAL_20_mandatory = 2; +static const long asn_VAL_21_id_ULPDCPSNLength = 192; +static const long asn_VAL_21_ignore = 1; +static const long asn_VAL_21_optional = 0; +static const asn_ioc_cell_t asn_IOS_DRBs_ToBeSetup_ItemExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_18_id_DC_Based_Duplication_Configured }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_18_reject }, + { "&Extension", aioc__type, &asn_DEF_DCBasedDuplicationConfigured }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_18_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_19_id_DC_Based_Duplication_Activation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_19_reject }, + { "&Extension", aioc__type, &asn_DEF_DuplicationActivation }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_19_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_20_id_DLPDCPSNLength }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_20_ignore }, + { "&Extension", aioc__type, &asn_DEF_PDCPSNLength }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_20_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_21_id_ULPDCPSNLength }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_21_ignore }, + { "&Extension", aioc__type, &asn_DEF_PDCPSNLength }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_21_optional } +}; +static const asn_ioc_set_t asn_IOS_DRBs_ToBeSetup_ItemExtIEs_1[] = { + { 4, 4, asn_IOS_DRBs_ToBeSetup_ItemExtIEs_1_rows } +}; +static const long asn_VAL_22_id_DC_Based_Duplication_Configured = 176; +static const long asn_VAL_22_reject = 0; +static const long asn_VAL_22_optional = 0; +static const long asn_VAL_23_id_DC_Based_Duplication_Activation = 177; +static const long asn_VAL_23_reject = 0; +static const long asn_VAL_23_optional = 0; +static const long asn_VAL_24_id_DLPDCPSNLength = 161; +static const long asn_VAL_24_ignore = 1; +static const long asn_VAL_24_optional = 0; +static const long asn_VAL_25_id_ULPDCPSNLength = 192; +static const long asn_VAL_25_ignore = 1; +static const long asn_VAL_25_optional = 0; +static const asn_ioc_cell_t asn_IOS_DRBs_ToBeSetupMod_ItemExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_22_id_DC_Based_Duplication_Configured }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_22_reject }, + { "&Extension", aioc__type, &asn_DEF_DCBasedDuplicationConfigured }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_22_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_23_id_DC_Based_Duplication_Activation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_reject }, + { "&Extension", aioc__type, &asn_DEF_DuplicationActivation }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_23_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_24_id_DLPDCPSNLength }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_ignore }, + { "&Extension", aioc__type, &asn_DEF_PDCPSNLength }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_24_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_25_id_ULPDCPSNLength }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_25_ignore }, + { "&Extension", aioc__type, &asn_DEF_PDCPSNLength }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_25_optional } +}; +static const asn_ioc_set_t asn_IOS_DRBs_ToBeSetupMod_ItemExtIEs_1[] = { + { 4, 4, asn_IOS_DRBs_ToBeSetupMod_ItemExtIEs_1_rows } +}; +static const long asn_VAL_26_id_DRX_LongCycleStartOffset = 191; +static const long asn_VAL_26_ignore = 1; +static const long asn_VAL_26_optional = 0; +static const long asn_VAL_27_id_SelectedBandCombinationIndex = 193; +static const long asn_VAL_27_ignore = 1; +static const long asn_VAL_27_optional = 0; +static const long asn_VAL_28_id_SelectedFeatureSetEntryIndex = 194; +static const long asn_VAL_28_ignore = 1; +static const long asn_VAL_28_optional = 0; +static const long asn_VAL_29_id_Ph_InfoSCG = 208; +static const long asn_VAL_29_ignore = 1; +static const long asn_VAL_29_optional = 0; +static const long asn_VAL_30_id_RequestedBandCombinationIndex = 209; +static const long asn_VAL_30_ignore = 1; +static const long asn_VAL_30_optional = 0; +static const long asn_VAL_31_id_RequestedFeatureSetEntryIndex = 210; +static const long asn_VAL_31_ignore = 1; +static const long asn_VAL_31_optional = 0; +static const long asn_VAL_32_id_RequestedP_MaxFR2 = 211; +static const long asn_VAL_32_ignore = 1; +static const long asn_VAL_32_optional = 0; +static const long asn_VAL_33_id_DRX_Config = 212; +static const long asn_VAL_33_ignore = 1; +static const long asn_VAL_33_optional = 0; +static const asn_ioc_cell_t asn_IOS_DUtoCURRCInformation_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_26_id_DRX_LongCycleStartOffset }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_26_ignore }, + { "&Extension", aioc__type, &asn_DEF_DRX_LongCycleStartOffset }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_26_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_27_id_SelectedBandCombinationIndex }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_27_ignore }, + { "&Extension", aioc__type, &asn_DEF_SelectedBandCombinationIndex }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_27_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_28_id_SelectedFeatureSetEntryIndex }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_28_ignore }, + { "&Extension", aioc__type, &asn_DEF_SelectedFeatureSetEntryIndex }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_28_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_29_id_Ph_InfoSCG }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_29_ignore }, + { "&Extension", aioc__type, &asn_DEF_Ph_InfoSCG }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_29_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_30_id_RequestedBandCombinationIndex }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_30_ignore }, + { "&Extension", aioc__type, &asn_DEF_RequestedBandCombinationIndex }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_30_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_31_id_RequestedFeatureSetEntryIndex }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_31_ignore }, + { "&Extension", aioc__type, &asn_DEF_RequestedFeatureSetEntryIndex }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_31_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_32_id_RequestedP_MaxFR2 }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_32_ignore }, + { "&Extension", aioc__type, &asn_DEF_RequestedP_MaxFR2 }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_32_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_33_id_DRX_Config }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_33_ignore }, + { "&Extension", aioc__type, &asn_DEF_DRX_Config }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_33_optional } +}; +static const asn_ioc_set_t asn_IOS_DUtoCURRCInformation_ExtIEs_1[] = { + { 8, 4, asn_IOS_DUtoCURRCInformation_ExtIEs_1_rows } +}; +static const long asn_VAL_34_id_QoSFlowMappingIndication = 183; +static const long asn_VAL_34_ignore = 1; +static const long asn_VAL_34_optional = 0; +static const asn_ioc_cell_t asn_IOS_Flows_Mapped_To_DRB_ItemExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_34_id_QoSFlowMappingIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_34_ignore }, + { "&Extension", aioc__type, &asn_DEF_QoSFlowMappingIndication }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_34_optional } +}; +static const asn_ioc_set_t asn_IOS_Flows_Mapped_To_DRB_ItemExtIEs_1[] = { + { 1, 4, asn_IOS_Flows_Mapped_To_DRB_ItemExtIEs_1_rows } +}; +static const long asn_VAL_35_id_PDUSessionID = 180; +static const long asn_VAL_35_ignore = 1; +static const long asn_VAL_35_optional = 0; +static const long asn_VAL_36_id_ULPDUSessionAggregateMaximumBitRate = 181; +static const long asn_VAL_36_ignore = 1; +static const long asn_VAL_36_optional = 0; +static const asn_ioc_cell_t asn_IOS_QoSFlowLevelQoSParameters_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_35_id_PDUSessionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_35_ignore }, + { "&Extension", aioc__type, &asn_DEF_PDUSessionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_35_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_36_id_ULPDUSessionAggregateMaximumBitRate }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_36_ignore }, + { "&Extension", aioc__type, &asn_DEF_BitRate }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_36_optional } +}; +static const asn_ioc_set_t asn_IOS_QoSFlowLevelQoSParameters_ExtIEs_1[] = { + { 2, 4, asn_IOS_QoSFlowLevelQoSParameters_ExtIEs_1_rows } +}; +static const long asn_VAL_37_id_latest_RRC_Version_Enhanced = 199; +static const long asn_VAL_37_ignore = 1; +static const long asn_VAL_37_optional = 0; +static const asn_ioc_cell_t asn_IOS_RRC_Version_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_37_id_latest_RRC_Version_Enhanced }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_37_ignore }, + { "&Extension", aioc__type, &asn_DEF_Latest_RRC_Version_Enhanced }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_37_optional } +}; +static const asn_ioc_set_t asn_IOS_RRC_Version_ExtIEs_1[] = { + { 1, 4, asn_IOS_RRC_Version_ExtIEs_1_rows } +}; +static const long asn_VAL_38_id_ServingCellMO = 182; +static const long asn_VAL_38_ignore = 1; +static const long asn_VAL_38_optional = 0; +static const asn_ioc_cell_t asn_IOS_SCell_ToBeSetup_ItemExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_38_id_ServingCellMO }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_38_ignore }, + { "&Extension", aioc__type, &asn_DEF_ServingCellMO }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_38_optional } +}; +static const asn_ioc_set_t asn_IOS_SCell_ToBeSetup_ItemExtIEs_1[] = { + { 1, 4, asn_IOS_SCell_ToBeSetup_ItemExtIEs_1_rows } +}; +static const long asn_VAL_39_id_ServingCellMO = 182; +static const long asn_VAL_39_ignore = 1; +static const long asn_VAL_39_optional = 0; +static const asn_ioc_cell_t asn_IOS_SCell_ToBeSetupMod_ItemExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_39_id_ServingCellMO }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_39_ignore }, + { "&Extension", aioc__type, &asn_DEF_ServingCellMO }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_39_optional } +}; +static const asn_ioc_set_t asn_IOS_SCell_ToBeSetupMod_ItemExtIEs_1[] = { + { 1, 4, asn_IOS_SCell_ToBeSetupMod_ItemExtIEs_1_rows } +}; +static const long asn_VAL_40_id_RANAC = 139; +static const long asn_VAL_40_ignore = 1; +static const long asn_VAL_40_optional = 0; +static const long asn_VAL_41_id_ExtendedServedPLMNs_List = 196; +static const long asn_VAL_41_ignore = 1; +static const long asn_VAL_41_optional = 0; +static const long asn_VAL_42_id_Cell_Direction = 201; +static const long asn_VAL_42_ignore = 1; +static const long asn_VAL_42_optional = 0; +static const asn_ioc_cell_t asn_IOS_Served_Cell_Information_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_40_id_RANAC }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_40_ignore }, + { "&Extension", aioc__type, &asn_DEF_RANAC }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_40_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_41_id_ExtendedServedPLMNs_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_41_ignore }, + { "&Extension", aioc__type, &asn_DEF_ExtendedServedPLMNs_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_41_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolExtensionID, &asn_VAL_42_id_Cell_Direction }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_42_ignore }, + { "&Extension", aioc__type, &asn_DEF_Cell_Direction }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_42_optional } +}; +static const asn_ioc_set_t asn_IOS_Served_Cell_Information_ExtIEs_1[] = { + { 3, 4, asn_IOS_Served_Cell_Information_ExtIEs_1_rows } +}; +static int +memb_id_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_5(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_5(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_5(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_9(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_9(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_9(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_ServedPLMNs_ItemExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ServedPLMNs_ItemExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ServedPLMNs_ItemExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_ServedPLMNs_ItemExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ServedPLMNs_ItemExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Extension */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ServedPLMNs_ItemExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_extensionValue_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Cells_to_be_Activated_List_ItemExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Cells_to_be_Activated_List_ItemExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Cells_to_be_Activated_List_ItemExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_Cells_to_be_Activated_List_ItemExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Cells_to_be_Activated_List_ItemExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Extension */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Cells_to_be_Activated_List_ItemExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_extensionValue_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_CUtoDURRCInformation_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_CUtoDURRCInformation_ExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CUtoDURRCInformation_ExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_CUtoDURRCInformation_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_CUtoDURRCInformation_ExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Extension */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct CUtoDURRCInformation_ExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_extensionValue_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_DRBs_Modified_ItemExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_Modified_ItemExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_Modified_ItemExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_DRBs_Modified_ItemExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_Modified_ItemExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Extension */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_Modified_ItemExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_extensionValue_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_105(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_105(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_105(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_109(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_DRBs_Required_ToBeModified_ItemExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_Required_ToBeModified_ItemExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_Required_ToBeModified_ItemExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_109(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_DRBs_Required_ToBeModified_ItemExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_Required_ToBeModified_ItemExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Extension */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_Required_ToBeModified_ItemExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_extensionValue_constraint_109(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_113(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_113(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_113(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_117(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_117(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_117(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_121(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_121(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_121(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_125(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_DRBs_ToBeModified_ItemExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_ToBeModified_ItemExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_ToBeModified_ItemExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_125(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_DRBs_ToBeModified_ItemExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_ToBeModified_ItemExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Extension */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_ToBeModified_ItemExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_extensionValue_constraint_125(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_129(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_129(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_129(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_133(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_DRBs_ToBeSetup_ItemExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_ToBeSetup_ItemExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_ToBeSetup_ItemExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_133(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_DRBs_ToBeSetup_ItemExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_ToBeSetup_ItemExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Extension */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_ToBeSetup_ItemExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_extensionValue_constraint_133(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_137(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_DRBs_ToBeSetupMod_ItemExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_ToBeSetupMod_ItemExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_ToBeSetupMod_ItemExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_137(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_DRBs_ToBeSetupMod_ItemExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_ToBeSetupMod_ItemExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Extension */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_ToBeSetupMod_ItemExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_extensionValue_constraint_137(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_141(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_141(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_141(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_145(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_DUtoCURRCInformation_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DUtoCURRCInformation_ExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DUtoCURRCInformation_ExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_145(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_DUtoCURRCInformation_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DUtoCURRCInformation_ExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Extension */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DUtoCURRCInformation_ExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_extensionValue_constraint_145(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_149(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_149(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_149(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_153(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_153(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_153(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_157(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_157(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_157(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_161(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_161(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_161(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_165(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_165(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_165(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_169(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_169(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_169(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_173(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_173(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_173(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_177(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_177(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_177(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_181(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_181(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_181(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_185(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_185(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_185(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_189(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_189(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_189(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_193(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_193(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_193(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_197(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_197(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_197(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_201(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Flows_Mapped_To_DRB_ItemExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Flows_Mapped_To_DRB_ItemExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Flows_Mapped_To_DRB_ItemExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_201(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_Flows_Mapped_To_DRB_ItemExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Flows_Mapped_To_DRB_ItemExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Extension */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Flows_Mapped_To_DRB_ItemExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_extensionValue_constraint_201(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_205(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_205(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_205(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_209(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_209(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_209(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_213(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_213(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_213(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_217(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_217(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_217(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_221(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_221(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_221(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_225(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_225(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_225(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_229(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_229(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_229(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_233(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_233(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_233(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_237(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_237(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_237(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_241(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_241(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_241(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_245(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_245(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_245(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_249(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_249(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_249(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_253(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_253(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_253(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_257(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_257(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_257(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_261(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_261(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_261(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_265(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_265(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_265(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_269(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_269(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_269(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_273(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_273(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_273(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_277(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_277(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_277(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_281(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_281(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_281(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_285(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_285(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_285(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_289(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_289(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_289(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_293(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_293(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_293(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_297(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_QoSFlowLevelQoSParameters_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_QoSFlowLevelQoSParameters_ExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct QoSFlowLevelQoSParameters_ExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_297(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_QoSFlowLevelQoSParameters_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_QoSFlowLevelQoSParameters_ExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Extension */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct QoSFlowLevelQoSParameters_ExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_extensionValue_constraint_297(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_301(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_301(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_301(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_305(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_305(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_305(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_309(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_309(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_309(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_313(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_313(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_313(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_317(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_317(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_317(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_321(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_321(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_321(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_325(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_RRC_Version_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RRC_Version_ExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RRC_Version_ExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_325(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_RRC_Version_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RRC_Version_ExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Extension */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RRC_Version_ExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_extensionValue_constraint_325(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_329(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_329(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_329(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_333(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_333(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_333(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_337(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_337(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_337(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_341(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_SCell_ToBeSetup_ItemExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SCell_ToBeSetup_ItemExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SCell_ToBeSetup_ItemExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_341(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_SCell_ToBeSetup_ItemExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SCell_ToBeSetup_ItemExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Extension */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SCell_ToBeSetup_ItemExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_extensionValue_constraint_341(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_345(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_SCell_ToBeSetupMod_ItemExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SCell_ToBeSetupMod_ItemExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SCell_ToBeSetupMod_ItemExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_345(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_SCell_ToBeSetupMod_ItemExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SCell_ToBeSetupMod_ItemExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Extension */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SCell_ToBeSetupMod_ItemExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_extensionValue_constraint_345(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_349(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Served_Cell_Information_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Served_Cell_Information_ExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Served_Cell_Information_ExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_349(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_Served_Cell_Information_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Served_Cell_Information_ExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Extension */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Served_Cell_Information_ExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_extensionValue_constraint_349(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_353(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_353(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_353(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_357(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_357(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_357(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_361(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_361(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_361(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_365(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_365(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_365(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_369(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_369(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_369(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_373(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_373(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_373(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_377(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_377(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_377(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_381(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_381(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_381(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_385(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_385(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_385(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_389(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_389(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_389(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_393(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_393(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_393(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_397(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_397(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_397(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_401(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_401(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_401(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_405(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_405(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_405(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_409(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_409(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_409(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_413(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_413(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_413(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_417(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_417(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_417(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_421(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_421(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_421(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_425(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_425(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_425(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_429(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_429(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_429(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_433(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_433(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_433(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_437(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_437(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_437(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_441(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_441(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_441(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_445(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_445(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_445(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_449(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_449(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_extensionValue_constraint_449(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_oer_constraints_t asn_OER_memb_id_constr_2 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_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_extensionValue_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_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_extensionValue_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_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_extensionValue_constr_16 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_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_extensionValue_constr_20 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_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_extensionValue_constr_24 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_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_extensionValue_constr_28 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_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_extensionValue_constr_32 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_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_extensionValue_constr_36 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_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_extensionValue_constr_40 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_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_extensionValue_constr_44 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_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_extensionValue_constr_48 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_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_extensionValue_constr_52 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_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_extensionValue_constr_56 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_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_extensionValue_constr_60 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_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_extensionValue_constr_64 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_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_extensionValue_constr_68 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_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_extensionValue_constr_72 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_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_extensionValue_constr_76 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_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_extensionValue_constr_80 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_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_extensionValue_constr_84 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_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_extensionValue_constr_88 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_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_extensionValue_constr_92 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_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_extensionValue_constr_96 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_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_extensionValue_constr_100 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_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_extensionValue_constr_104 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_104 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_106 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_106 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_107 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_107 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_108 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_108 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_110 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_110 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_111 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_111 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_112 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_112 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_114 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_114 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_115 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_115 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_116 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_116 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_118 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_118 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_119 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_119 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_120 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_120 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_122 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_122 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_123 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_123 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_124 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_124 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_126 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_126 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_127 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_127 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_128 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_128 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_130 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_130 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_131 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_131 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_132 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_132 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_134 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_134 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_135 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_135 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_136 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_136 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_138 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_138 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_139 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_139 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_140 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_140 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_142 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_142 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_143 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_143 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_144 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_144 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_146 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_146 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_147 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_147 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_148 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_148 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_150 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_150 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_151 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_151 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_152 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_152 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_154 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_154 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_155 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_155 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_156 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_156 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_158 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_158 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_159 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_159 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_160 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_160 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_162 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_162 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_163 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_163 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_164 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_164 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_166 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_166 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_167 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_167 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_168 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_168 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_170 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_170 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_171 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_171 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_172 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_172 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_174 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_174 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_175 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_175 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_176 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_176 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_178 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_178 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_179 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_179 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_180 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_180 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_182 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_182 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_183 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_183 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_184 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_184 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_186 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_186 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_187 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_187 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_188 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_188 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_190 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_190 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_191 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_191 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_192 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_192 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_194 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_194 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_195 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_195 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_196 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_196 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_198 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_198 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_199 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_199 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_200 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_200 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_202 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_202 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_203 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_203 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_204 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_204 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_206 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_206 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_207 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_207 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_208 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_208 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_210 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_210 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_211 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_211 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_212 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_212 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_214 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_214 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_215 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_215 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_216 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_216 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_218 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_218 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_219 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_219 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_220 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_220 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_222 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_222 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_223 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_223 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_224 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_224 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_226 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_226 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_227 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_227 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_228 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_228 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_230 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_230 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_231 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_231 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_232 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_232 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_234 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_234 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_235 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_235 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_236 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_236 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_238 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_238 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_239 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_239 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_240 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_240 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_242 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_242 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_243 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_243 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_244 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_244 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_246 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_246 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_247 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_247 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_248 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_248 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_250 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_250 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_251 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_251 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_252 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_252 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_254 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_254 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_255 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_255 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_256 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_256 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_258 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_258 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_259 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_259 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_260 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_260 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_262 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_262 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_263 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_263 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_264 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_264 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_266 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_266 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_267 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_267 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_268 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_268 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_270 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_270 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_271 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_271 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_272 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_272 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_274 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_274 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_275 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_275 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_276 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_276 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_278 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_278 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_279 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_279 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_280 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_280 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_282 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_282 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_283 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_283 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_extensionValue_constr_284 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_284 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_286 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_286 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_287 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_287 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_extensionValue_constr_288 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_288 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_290 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_290 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_291 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_291 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_extensionValue_constr_292 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_292 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_294 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_294 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_295 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_295 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_extensionValue_constr_296 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_296 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_298 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_298 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_299 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_299 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_extensionValue_constr_300 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_300 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_302 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_302 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_303 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_303 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_extensionValue_constr_304 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_304 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_306 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_306 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_307 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_307 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_extensionValue_constr_308 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_308 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_310 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_310 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_311 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_311 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_extensionValue_constr_312 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_312 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_314 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_314 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_315 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_315 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_extensionValue_constr_316 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_316 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_318 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_318 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_319 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_319 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_extensionValue_constr_320 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_320 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_322 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_322 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_323 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_323 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_extensionValue_constr_324 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_324 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_326 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_326 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_327 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_327 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_extensionValue_constr_328 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_328 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_330 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_330 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_331 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_331 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_extensionValue_constr_332 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_332 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_334 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_334 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_335 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_335 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_extensionValue_constr_336 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_336 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_338 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_338 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_339 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_339 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_extensionValue_constr_340 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_340 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_342 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_342 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_343 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_343 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_extensionValue_constr_344 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_344 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_346 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_346 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_347 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_347 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_extensionValue_constr_348 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_348 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_350 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_350 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_351 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_351 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_extensionValue_constr_352 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_352 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_354 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_354 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_355 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_355 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_extensionValue_constr_356 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_356 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_358 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_358 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_359 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_359 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_extensionValue_constr_360 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_360 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_362 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_362 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_363 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_363 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_extensionValue_constr_364 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_364 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_366 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_366 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_367 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_367 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_extensionValue_constr_368 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_368 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_370 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_370 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_371 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_371 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_extensionValue_constr_372 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_372 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_374 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_374 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_375 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_375 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_extensionValue_constr_376 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_376 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_378 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_378 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_379 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_379 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_extensionValue_constr_380 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_380 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_382 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_382 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_383 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_383 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_extensionValue_constr_384 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_384 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_386 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_386 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_387 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_387 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_extensionValue_constr_388 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_388 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_390 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_390 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_391 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_391 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_extensionValue_constr_392 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_392 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_394 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_394 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_395 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_395 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_extensionValue_constr_396 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_396 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_398 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_398 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_399 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_399 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_extensionValue_constr_400 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_400 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_402 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_402 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_403 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_403 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_extensionValue_constr_404 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_404 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_406 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_406 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_407 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_407 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_extensionValue_constr_408 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_408 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_410 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_410 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_411 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_411 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_extensionValue_constr_412 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_412 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_414 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_414 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_415 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_415 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_extensionValue_constr_416 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_416 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_418 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_418 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_419 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_419 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_extensionValue_constr_420 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_420 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_422 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_422 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_423 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_423 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_extensionValue_constr_424 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_424 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_426 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_426 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_427 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_427 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_extensionValue_constr_428 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_428 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_430 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_430 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_431 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_431 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_extensionValue_constr_432 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_432 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_434 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_434 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_435 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_435 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_extensionValue_constr_436 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_436 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_438 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_438 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_439 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_439 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_extensionValue_constr_440 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_440 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_442 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_442 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_443 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_443 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_extensionValue_constr_444 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_444 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_446 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_446 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_447 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_447 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_extensionValue_constr_448 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_448 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_450 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_450 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_451 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_451 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_extensionValue_constr_452 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_extensionValue_constr_452 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_4 = { + sizeof(struct AllocationAndRetentionPriority_ExtIEs__extensionValue), + offsetof(struct AllocationAndRetentionPriority_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct AllocationAndRetentionPriority_ExtIEs__extensionValue, present), + sizeof(((struct AllocationAndRetentionPriority_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_4 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_AllocationAndRetentionPriority_ExtIEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AllocationAndRetentionPriority_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_2, &asn_PER_memb_id_constr_2, memb_id_constraint_1 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct AllocationAndRetentionPriority_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &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 AllocationAndRetentionPriority_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_4, + 0, + { &asn_OER_memb_extensionValue_constr_4, &asn_PER_memb_extensionValue_constr_4, memb_extensionValue_constraint_1 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_AllocationAndRetentionPriority_ExtIEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AllocationAndRetentionPriority_ExtIEs_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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AllocationAndRetentionPriority_ExtIEs_specs_1 = { + sizeof(struct AllocationAndRetentionPriority_ExtIEs), + offsetof(struct AllocationAndRetentionPriority_ExtIEs, _asn_ctx), + asn_MAP_AllocationAndRetentionPriority_ExtIEs_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AllocationAndRetentionPriority_ExtIEs = { + "AllocationAndRetentionPriority-ExtIEs", + "AllocationAndRetentionPriority-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_AllocationAndRetentionPriority_ExtIEs_tags_1, + sizeof(asn_DEF_AllocationAndRetentionPriority_ExtIEs_tags_1) + /sizeof(asn_DEF_AllocationAndRetentionPriority_ExtIEs_tags_1[0]), /* 1 */ + asn_DEF_AllocationAndRetentionPriority_ExtIEs_tags_1, /* Same as above */ + sizeof(asn_DEF_AllocationAndRetentionPriority_ExtIEs_tags_1) + /sizeof(asn_DEF_AllocationAndRetentionPriority_ExtIEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AllocationAndRetentionPriority_ExtIEs_1, + 3, /* Elements count */ + &asn_SPC_AllocationAndRetentionPriority_ExtIEs_specs_1 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_8 = { + sizeof(struct Associated_SCell_ItemExtIEs__extensionValue), + offsetof(struct Associated_SCell_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct Associated_SCell_ItemExtIEs__extensionValue, present), + sizeof(((struct Associated_SCell_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_8 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Associated_SCell_ItemExtIEs_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct Associated_SCell_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_6, &asn_PER_memb_id_constr_6, memb_id_constraint_5 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Associated_SCell_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &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 Associated_SCell_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_8, + 0, + { &asn_OER_memb_extensionValue_constr_8, &asn_PER_memb_extensionValue_constr_8, memb_extensionValue_constraint_5 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Associated_SCell_ItemExtIEs_tags_5[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Associated_SCell_ItemExtIEs_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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Associated_SCell_ItemExtIEs_specs_5 = { + sizeof(struct Associated_SCell_ItemExtIEs), + offsetof(struct Associated_SCell_ItemExtIEs, _asn_ctx), + asn_MAP_Associated_SCell_ItemExtIEs_tag2el_5, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Associated_SCell_ItemExtIEs = { + "Associated-SCell-ItemExtIEs", + "Associated-SCell-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_Associated_SCell_ItemExtIEs_tags_5, + sizeof(asn_DEF_Associated_SCell_ItemExtIEs_tags_5) + /sizeof(asn_DEF_Associated_SCell_ItemExtIEs_tags_5[0]), /* 1 */ + asn_DEF_Associated_SCell_ItemExtIEs_tags_5, /* Same as above */ + sizeof(asn_DEF_Associated_SCell_ItemExtIEs_tags_5) + /sizeof(asn_DEF_Associated_SCell_ItemExtIEs_tags_5[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Associated_SCell_ItemExtIEs_5, + 3, /* Elements count */ + &asn_SPC_Associated_SCell_ItemExtIEs_specs_5 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_12 = { + sizeof(struct AvailablePLMNList_Item_ExtIEs__extensionValue), + offsetof(struct AvailablePLMNList_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct AvailablePLMNList_Item_ExtIEs__extensionValue, present), + sizeof(((struct AvailablePLMNList_Item_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_12 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_AvailablePLMNList_Item_ExtIEs_9[] = { + { ATF_NOFLAGS, 0, offsetof(struct AvailablePLMNList_Item_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_10, &asn_PER_memb_id_constr_10, memb_id_constraint_9 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct AvailablePLMNList_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &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 AvailablePLMNList_Item_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_12, + 0, + { &asn_OER_memb_extensionValue_constr_12, &asn_PER_memb_extensionValue_constr_12, memb_extensionValue_constraint_9 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_AvailablePLMNList_Item_ExtIEs_tags_9[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AvailablePLMNList_Item_ExtIEs_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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AvailablePLMNList_Item_ExtIEs_specs_9 = { + sizeof(struct AvailablePLMNList_Item_ExtIEs), + offsetof(struct AvailablePLMNList_Item_ExtIEs, _asn_ctx), + asn_MAP_AvailablePLMNList_Item_ExtIEs_tag2el_9, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AvailablePLMNList_Item_ExtIEs = { + "AvailablePLMNList-Item-ExtIEs", + "AvailablePLMNList-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_AvailablePLMNList_Item_ExtIEs_tags_9, + sizeof(asn_DEF_AvailablePLMNList_Item_ExtIEs_tags_9) + /sizeof(asn_DEF_AvailablePLMNList_Item_ExtIEs_tags_9[0]), /* 1 */ + asn_DEF_AvailablePLMNList_Item_ExtIEs_tags_9, /* Same as above */ + sizeof(asn_DEF_AvailablePLMNList_Item_ExtIEs_tags_9) + /sizeof(asn_DEF_AvailablePLMNList_Item_ExtIEs_tags_9[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AvailablePLMNList_Item_ExtIEs_9, + 3, /* Elements count */ + &asn_SPC_AvailablePLMNList_Item_ExtIEs_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_extensionValue_16[] = { + { ATF_NOFLAGS, 0, offsetof(struct ServedPLMNs_ItemExtIEs__extensionValue, choice.SliceSupportList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SliceSupportList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SliceSupportList" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_16[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SliceSupportList */ +}; +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_16 = { + sizeof(struct ServedPLMNs_ItemExtIEs__extensionValue), + offsetof(struct ServedPLMNs_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct ServedPLMNs_ItemExtIEs__extensionValue, present), + sizeof(((struct ServedPLMNs_ItemExtIEs__extensionValue *)0)->present), + asn_MAP_extensionValue_tag2el_16, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_16 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_extensionValue_16, + 1, /* Elements count */ + &asn_SPC_extensionValue_specs_16 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ServedPLMNs_ItemExtIEs_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct ServedPLMNs_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_14, &asn_PER_memb_id_constr_14, memb_id_constraint_13 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ServedPLMNs_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_ServedPLMNs_ItemExtIEs_criticality_type, + { &asn_OER_memb_criticality_constr_15, &asn_PER_memb_criticality_constr_15, memb_criticality_constraint_13 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ServedPLMNs_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_16, + select_ServedPLMNs_ItemExtIEs_extensionValue_type, + { &asn_OER_memb_extensionValue_constr_16, &asn_PER_memb_extensionValue_constr_16, memb_extensionValue_constraint_13 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ServedPLMNs_ItemExtIEs_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ServedPLMNs_ItemExtIEs_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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ServedPLMNs_ItemExtIEs_specs_13 = { + sizeof(struct ServedPLMNs_ItemExtIEs), + offsetof(struct ServedPLMNs_ItemExtIEs, _asn_ctx), + asn_MAP_ServedPLMNs_ItemExtIEs_tag2el_13, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ServedPLMNs_ItemExtIEs = { + "ServedPLMNs-ItemExtIEs", + "ServedPLMNs-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ServedPLMNs_ItemExtIEs_tags_13, + sizeof(asn_DEF_ServedPLMNs_ItemExtIEs_tags_13) + /sizeof(asn_DEF_ServedPLMNs_ItemExtIEs_tags_13[0]), /* 1 */ + asn_DEF_ServedPLMNs_ItemExtIEs_tags_13, /* Same as above */ + sizeof(asn_DEF_ServedPLMNs_ItemExtIEs_tags_13) + /sizeof(asn_DEF_ServedPLMNs_ItemExtIEs_tags_13[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ServedPLMNs_ItemExtIEs_13, + 3, /* Elements count */ + &asn_SPC_ServedPLMNs_ItemExtIEs_specs_13 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_20 = { + sizeof(struct Candidate_SpCell_ItemExtIEs__extensionValue), + offsetof(struct Candidate_SpCell_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct Candidate_SpCell_ItemExtIEs__extensionValue, present), + sizeof(((struct Candidate_SpCell_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_20 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_20 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Candidate_SpCell_ItemExtIEs_17[] = { + { ATF_NOFLAGS, 0, offsetof(struct Candidate_SpCell_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_18, &asn_PER_memb_id_constr_18, memb_id_constraint_17 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Candidate_SpCell_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &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 Candidate_SpCell_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_20, + 0, + { &asn_OER_memb_extensionValue_constr_20, &asn_PER_memb_extensionValue_constr_20, memb_extensionValue_constraint_17 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Candidate_SpCell_ItemExtIEs_tags_17[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Candidate_SpCell_ItemExtIEs_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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Candidate_SpCell_ItemExtIEs_specs_17 = { + sizeof(struct Candidate_SpCell_ItemExtIEs), + offsetof(struct Candidate_SpCell_ItemExtIEs, _asn_ctx), + asn_MAP_Candidate_SpCell_ItemExtIEs_tag2el_17, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Candidate_SpCell_ItemExtIEs = { + "Candidate-SpCell-ItemExtIEs", + "Candidate-SpCell-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_Candidate_SpCell_ItemExtIEs_tags_17, + sizeof(asn_DEF_Candidate_SpCell_ItemExtIEs_tags_17) + /sizeof(asn_DEF_Candidate_SpCell_ItemExtIEs_tags_17[0]), /* 1 */ + asn_DEF_Candidate_SpCell_ItemExtIEs_tags_17, /* Same as above */ + sizeof(asn_DEF_Candidate_SpCell_ItemExtIEs_tags_17) + /sizeof(asn_DEF_Candidate_SpCell_ItemExtIEs_tags_17[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Candidate_SpCell_ItemExtIEs_17, + 3, /* Elements count */ + &asn_SPC_Candidate_SpCell_ItemExtIEs_specs_17 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_24 = { + sizeof(struct Cells_Failed_to_be_Activated_List_ItemExtIEs__extensionValue), + offsetof(struct Cells_Failed_to_be_Activated_List_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct Cells_Failed_to_be_Activated_List_ItemExtIEs__extensionValue, present), + sizeof(((struct Cells_Failed_to_be_Activated_List_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_24 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_24 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Cells_Failed_to_be_Activated_List_ItemExtIEs_21[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_Failed_to_be_Activated_List_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_22, &asn_PER_memb_id_constr_22, memb_id_constraint_21 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cells_Failed_to_be_Activated_List_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &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 Cells_Failed_to_be_Activated_List_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_24, + 0, + { &asn_OER_memb_extensionValue_constr_24, &asn_PER_memb_extensionValue_constr_24, memb_extensionValue_constraint_21 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Cells_Failed_to_be_Activated_List_ItemExtIEs_tags_21[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Cells_Failed_to_be_Activated_List_ItemExtIEs_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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Cells_Failed_to_be_Activated_List_ItemExtIEs_specs_21 = { + sizeof(struct Cells_Failed_to_be_Activated_List_ItemExtIEs), + offsetof(struct Cells_Failed_to_be_Activated_List_ItemExtIEs, _asn_ctx), + asn_MAP_Cells_Failed_to_be_Activated_List_ItemExtIEs_tag2el_21, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_Failed_to_be_Activated_List_ItemExtIEs = { + "Cells-Failed-to-be-Activated-List-ItemExtIEs", + "Cells-Failed-to-be-Activated-List-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_Cells_Failed_to_be_Activated_List_ItemExtIEs_tags_21, + sizeof(asn_DEF_Cells_Failed_to_be_Activated_List_ItemExtIEs_tags_21) + /sizeof(asn_DEF_Cells_Failed_to_be_Activated_List_ItemExtIEs_tags_21[0]), /* 1 */ + asn_DEF_Cells_Failed_to_be_Activated_List_ItemExtIEs_tags_21, /* Same as above */ + sizeof(asn_DEF_Cells_Failed_to_be_Activated_List_ItemExtIEs_tags_21) + /sizeof(asn_DEF_Cells_Failed_to_be_Activated_List_ItemExtIEs_tags_21[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_Failed_to_be_Activated_List_ItemExtIEs_21, + 3, /* Elements count */ + &asn_SPC_Cells_Failed_to_be_Activated_List_ItemExtIEs_specs_21 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_28 = { + sizeof(struct Cells_Status_ItemExtIEs__extensionValue), + offsetof(struct Cells_Status_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct Cells_Status_ItemExtIEs__extensionValue, present), + sizeof(((struct Cells_Status_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_28 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_28 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Cells_Status_ItemExtIEs_25[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_Status_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_26, &asn_PER_memb_id_constr_26, memb_id_constraint_25 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cells_Status_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &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 Cells_Status_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_28, + 0, + { &asn_OER_memb_extensionValue_constr_28, &asn_PER_memb_extensionValue_constr_28, memb_extensionValue_constraint_25 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Cells_Status_ItemExtIEs_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Cells_Status_ItemExtIEs_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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Cells_Status_ItemExtIEs_specs_25 = { + sizeof(struct Cells_Status_ItemExtIEs), + offsetof(struct Cells_Status_ItemExtIEs, _asn_ctx), + asn_MAP_Cells_Status_ItemExtIEs_tag2el_25, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_Status_ItemExtIEs = { + "Cells-Status-ItemExtIEs", + "Cells-Status-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_Cells_Status_ItemExtIEs_tags_25, + sizeof(asn_DEF_Cells_Status_ItemExtIEs_tags_25) + /sizeof(asn_DEF_Cells_Status_ItemExtIEs_tags_25[0]), /* 1 */ + asn_DEF_Cells_Status_ItemExtIEs_tags_25, /* Same as above */ + sizeof(asn_DEF_Cells_Status_ItemExtIEs_tags_25) + /sizeof(asn_DEF_Cells_Status_ItemExtIEs_tags_25[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_Status_ItemExtIEs_25, + 3, /* Elements count */ + &asn_SPC_Cells_Status_ItemExtIEs_specs_25 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_32 = { + sizeof(struct Cells_To_Be_Broadcast_ItemExtIEs__extensionValue), + offsetof(struct Cells_To_Be_Broadcast_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct Cells_To_Be_Broadcast_ItemExtIEs__extensionValue, present), + sizeof(((struct Cells_To_Be_Broadcast_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_32 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_32 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Cells_To_Be_Broadcast_ItemExtIEs_29[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_To_Be_Broadcast_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_30, &asn_PER_memb_id_constr_30, memb_id_constraint_29 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cells_To_Be_Broadcast_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &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 Cells_To_Be_Broadcast_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_32, + 0, + { &asn_OER_memb_extensionValue_constr_32, &asn_PER_memb_extensionValue_constr_32, memb_extensionValue_constraint_29 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Cells_To_Be_Broadcast_ItemExtIEs_tags_29[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Cells_To_Be_Broadcast_ItemExtIEs_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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Cells_To_Be_Broadcast_ItemExtIEs_specs_29 = { + sizeof(struct Cells_To_Be_Broadcast_ItemExtIEs), + offsetof(struct Cells_To_Be_Broadcast_ItemExtIEs, _asn_ctx), + asn_MAP_Cells_To_Be_Broadcast_ItemExtIEs_tag2el_29, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_To_Be_Broadcast_ItemExtIEs = { + "Cells-To-Be-Broadcast-ItemExtIEs", + "Cells-To-Be-Broadcast-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_Cells_To_Be_Broadcast_ItemExtIEs_tags_29, + sizeof(asn_DEF_Cells_To_Be_Broadcast_ItemExtIEs_tags_29) + /sizeof(asn_DEF_Cells_To_Be_Broadcast_ItemExtIEs_tags_29[0]), /* 1 */ + asn_DEF_Cells_To_Be_Broadcast_ItemExtIEs_tags_29, /* Same as above */ + sizeof(asn_DEF_Cells_To_Be_Broadcast_ItemExtIEs_tags_29) + /sizeof(asn_DEF_Cells_To_Be_Broadcast_ItemExtIEs_tags_29[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_To_Be_Broadcast_ItemExtIEs_29, + 3, /* Elements count */ + &asn_SPC_Cells_To_Be_Broadcast_ItemExtIEs_specs_29 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_36 = { + sizeof(struct Cells_Broadcast_Completed_ItemExtIEs__extensionValue), + offsetof(struct Cells_Broadcast_Completed_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct Cells_Broadcast_Completed_ItemExtIEs__extensionValue, present), + sizeof(((struct Cells_Broadcast_Completed_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_36 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_36 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Cells_Broadcast_Completed_ItemExtIEs_33[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_Broadcast_Completed_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_34, &asn_PER_memb_id_constr_34, memb_id_constraint_33 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cells_Broadcast_Completed_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &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 Cells_Broadcast_Completed_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_36, + 0, + { &asn_OER_memb_extensionValue_constr_36, &asn_PER_memb_extensionValue_constr_36, memb_extensionValue_constraint_33 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Cells_Broadcast_Completed_ItemExtIEs_tags_33[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Cells_Broadcast_Completed_ItemExtIEs_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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Cells_Broadcast_Completed_ItemExtIEs_specs_33 = { + sizeof(struct Cells_Broadcast_Completed_ItemExtIEs), + offsetof(struct Cells_Broadcast_Completed_ItemExtIEs, _asn_ctx), + asn_MAP_Cells_Broadcast_Completed_ItemExtIEs_tag2el_33, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_Broadcast_Completed_ItemExtIEs = { + "Cells-Broadcast-Completed-ItemExtIEs", + "Cells-Broadcast-Completed-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_Cells_Broadcast_Completed_ItemExtIEs_tags_33, + sizeof(asn_DEF_Cells_Broadcast_Completed_ItemExtIEs_tags_33) + /sizeof(asn_DEF_Cells_Broadcast_Completed_ItemExtIEs_tags_33[0]), /* 1 */ + asn_DEF_Cells_Broadcast_Completed_ItemExtIEs_tags_33, /* Same as above */ + sizeof(asn_DEF_Cells_Broadcast_Completed_ItemExtIEs_tags_33) + /sizeof(asn_DEF_Cells_Broadcast_Completed_ItemExtIEs_tags_33[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_Broadcast_Completed_ItemExtIEs_33, + 3, /* Elements count */ + &asn_SPC_Cells_Broadcast_Completed_ItemExtIEs_specs_33 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_40 = { + sizeof(struct Broadcast_To_Be_Cancelled_ItemExtIEs__extensionValue), + offsetof(struct Broadcast_To_Be_Cancelled_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct Broadcast_To_Be_Cancelled_ItemExtIEs__extensionValue, present), + sizeof(((struct Broadcast_To_Be_Cancelled_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_40 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_40 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Broadcast_To_Be_Cancelled_ItemExtIEs_37[] = { + { ATF_NOFLAGS, 0, offsetof(struct Broadcast_To_Be_Cancelled_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_38, &asn_PER_memb_id_constr_38, memb_id_constraint_37 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Broadcast_To_Be_Cancelled_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &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 Broadcast_To_Be_Cancelled_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_40, + 0, + { &asn_OER_memb_extensionValue_constr_40, &asn_PER_memb_extensionValue_constr_40, memb_extensionValue_constraint_37 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Broadcast_To_Be_Cancelled_ItemExtIEs_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Broadcast_To_Be_Cancelled_ItemExtIEs_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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Broadcast_To_Be_Cancelled_ItemExtIEs_specs_37 = { + sizeof(struct Broadcast_To_Be_Cancelled_ItemExtIEs), + offsetof(struct Broadcast_To_Be_Cancelled_ItemExtIEs, _asn_ctx), + asn_MAP_Broadcast_To_Be_Cancelled_ItemExtIEs_tag2el_37, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Broadcast_To_Be_Cancelled_ItemExtIEs = { + "Broadcast-To-Be-Cancelled-ItemExtIEs", + "Broadcast-To-Be-Cancelled-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_Broadcast_To_Be_Cancelled_ItemExtIEs_tags_37, + sizeof(asn_DEF_Broadcast_To_Be_Cancelled_ItemExtIEs_tags_37) + /sizeof(asn_DEF_Broadcast_To_Be_Cancelled_ItemExtIEs_tags_37[0]), /* 1 */ + asn_DEF_Broadcast_To_Be_Cancelled_ItemExtIEs_tags_37, /* Same as above */ + sizeof(asn_DEF_Broadcast_To_Be_Cancelled_ItemExtIEs_tags_37) + /sizeof(asn_DEF_Broadcast_To_Be_Cancelled_ItemExtIEs_tags_37[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Broadcast_To_Be_Cancelled_ItemExtIEs_37, + 3, /* Elements count */ + &asn_SPC_Broadcast_To_Be_Cancelled_ItemExtIEs_specs_37 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_44 = { + sizeof(struct Cells_Broadcast_Cancelled_ItemExtIEs__extensionValue), + offsetof(struct Cells_Broadcast_Cancelled_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct Cells_Broadcast_Cancelled_ItemExtIEs__extensionValue, present), + sizeof(((struct Cells_Broadcast_Cancelled_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_44 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_44 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Cells_Broadcast_Cancelled_ItemExtIEs_41[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_Broadcast_Cancelled_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_42, &asn_PER_memb_id_constr_42, memb_id_constraint_41 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cells_Broadcast_Cancelled_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &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 Cells_Broadcast_Cancelled_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_44, + 0, + { &asn_OER_memb_extensionValue_constr_44, &asn_PER_memb_extensionValue_constr_44, memb_extensionValue_constraint_41 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Cells_Broadcast_Cancelled_ItemExtIEs_tags_41[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Cells_Broadcast_Cancelled_ItemExtIEs_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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Cells_Broadcast_Cancelled_ItemExtIEs_specs_41 = { + sizeof(struct Cells_Broadcast_Cancelled_ItemExtIEs), + offsetof(struct Cells_Broadcast_Cancelled_ItemExtIEs, _asn_ctx), + asn_MAP_Cells_Broadcast_Cancelled_ItemExtIEs_tag2el_41, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_Broadcast_Cancelled_ItemExtIEs = { + "Cells-Broadcast-Cancelled-ItemExtIEs", + "Cells-Broadcast-Cancelled-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_Cells_Broadcast_Cancelled_ItemExtIEs_tags_41, + sizeof(asn_DEF_Cells_Broadcast_Cancelled_ItemExtIEs_tags_41) + /sizeof(asn_DEF_Cells_Broadcast_Cancelled_ItemExtIEs_tags_41[0]), /* 1 */ + asn_DEF_Cells_Broadcast_Cancelled_ItemExtIEs_tags_41, /* Same as above */ + sizeof(asn_DEF_Cells_Broadcast_Cancelled_ItemExtIEs_tags_41) + /sizeof(asn_DEF_Cells_Broadcast_Cancelled_ItemExtIEs_tags_41[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_Broadcast_Cancelled_ItemExtIEs_41, + 3, /* Elements count */ + &asn_SPC_Cells_Broadcast_Cancelled_ItemExtIEs_specs_41 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_extensionValue_48[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_to_be_Activated_List_ItemExtIEs__extensionValue, choice.GNB_CUSystemInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNB_CUSystemInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CUSystemInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cells_to_be_Activated_List_ItemExtIEs__extensionValue, choice.AvailablePLMNList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_AvailablePLMNList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AvailablePLMNList" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cells_to_be_Activated_List_ItemExtIEs__extensionValue, choice.ExtendedAvailablePLMN_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ExtendedAvailablePLMN_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ExtendedAvailablePLMN-List" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_48[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* GNB-CUSystemInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 1 }, /* AvailablePLMNList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 0 } /* ExtendedAvailablePLMN-List */ +}; +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_48 = { + sizeof(struct Cells_to_be_Activated_List_ItemExtIEs__extensionValue), + offsetof(struct Cells_to_be_Activated_List_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct Cells_to_be_Activated_List_ItemExtIEs__extensionValue, present), + sizeof(((struct Cells_to_be_Activated_List_ItemExtIEs__extensionValue *)0)->present), + asn_MAP_extensionValue_tag2el_48, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_48 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_extensionValue_48, + 3, /* Elements count */ + &asn_SPC_extensionValue_specs_48 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Cells_to_be_Activated_List_ItemExtIEs_45[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_to_be_Activated_List_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_46, &asn_PER_memb_id_constr_46, memb_id_constraint_45 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cells_to_be_Activated_List_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_Cells_to_be_Activated_List_ItemExtIEs_criticality_type, + { &asn_OER_memb_criticality_constr_47, &asn_PER_memb_criticality_constr_47, memb_criticality_constraint_45 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Cells_to_be_Activated_List_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_48, + select_Cells_to_be_Activated_List_ItemExtIEs_extensionValue_type, + { &asn_OER_memb_extensionValue_constr_48, &asn_PER_memb_extensionValue_constr_48, memb_extensionValue_constraint_45 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Cells_to_be_Activated_List_ItemExtIEs_tags_45[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Cells_to_be_Activated_List_ItemExtIEs_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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Cells_to_be_Activated_List_ItemExtIEs_specs_45 = { + sizeof(struct Cells_to_be_Activated_List_ItemExtIEs), + offsetof(struct Cells_to_be_Activated_List_ItemExtIEs, _asn_ctx), + asn_MAP_Cells_to_be_Activated_List_ItemExtIEs_tag2el_45, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_to_be_Activated_List_ItemExtIEs = { + "Cells-to-be-Activated-List-ItemExtIEs", + "Cells-to-be-Activated-List-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_Cells_to_be_Activated_List_ItemExtIEs_tags_45, + sizeof(asn_DEF_Cells_to_be_Activated_List_ItemExtIEs_tags_45) + /sizeof(asn_DEF_Cells_to_be_Activated_List_ItemExtIEs_tags_45[0]), /* 1 */ + asn_DEF_Cells_to_be_Activated_List_ItemExtIEs_tags_45, /* Same as above */ + sizeof(asn_DEF_Cells_to_be_Activated_List_ItemExtIEs_tags_45) + /sizeof(asn_DEF_Cells_to_be_Activated_List_ItemExtIEs_tags_45[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_to_be_Activated_List_ItemExtIEs_45, + 3, /* Elements count */ + &asn_SPC_Cells_to_be_Activated_List_ItemExtIEs_specs_45 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_52 = { + sizeof(struct Cells_to_be_Deactivated_List_ItemExtIEs__extensionValue), + offsetof(struct Cells_to_be_Deactivated_List_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct Cells_to_be_Deactivated_List_ItemExtIEs__extensionValue, present), + sizeof(((struct Cells_to_be_Deactivated_List_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_52 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_52 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Cells_to_be_Deactivated_List_ItemExtIEs_49[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_to_be_Deactivated_List_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_50, &asn_PER_memb_id_constr_50, memb_id_constraint_49 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cells_to_be_Deactivated_List_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &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 Cells_to_be_Deactivated_List_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_52, + 0, + { &asn_OER_memb_extensionValue_constr_52, &asn_PER_memb_extensionValue_constr_52, memb_extensionValue_constraint_49 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Cells_to_be_Deactivated_List_ItemExtIEs_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Cells_to_be_Deactivated_List_ItemExtIEs_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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Cells_to_be_Deactivated_List_ItemExtIEs_specs_49 = { + sizeof(struct Cells_to_be_Deactivated_List_ItemExtIEs), + offsetof(struct Cells_to_be_Deactivated_List_ItemExtIEs, _asn_ctx), + asn_MAP_Cells_to_be_Deactivated_List_ItemExtIEs_tag2el_49, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_to_be_Deactivated_List_ItemExtIEs = { + "Cells-to-be-Deactivated-List-ItemExtIEs", + "Cells-to-be-Deactivated-List-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_Cells_to_be_Deactivated_List_ItemExtIEs_tags_49, + sizeof(asn_DEF_Cells_to_be_Deactivated_List_ItemExtIEs_tags_49) + /sizeof(asn_DEF_Cells_to_be_Deactivated_List_ItemExtIEs_tags_49[0]), /* 1 */ + asn_DEF_Cells_to_be_Deactivated_List_ItemExtIEs_tags_49, /* Same as above */ + sizeof(asn_DEF_Cells_to_be_Deactivated_List_ItemExtIEs_tags_49) + /sizeof(asn_DEF_Cells_to_be_Deactivated_List_ItemExtIEs_tags_49[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_to_be_Deactivated_List_ItemExtIEs_49, + 3, /* Elements count */ + &asn_SPC_Cells_to_be_Deactivated_List_ItemExtIEs_specs_49 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_56 = { + sizeof(struct Cells_to_be_Barred_Item_ExtIEs__extensionValue), + offsetof(struct Cells_to_be_Barred_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct Cells_to_be_Barred_Item_ExtIEs__extensionValue, present), + sizeof(((struct Cells_to_be_Barred_Item_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_56 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_56 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Cells_to_be_Barred_Item_ExtIEs_53[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_to_be_Barred_Item_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_54, &asn_PER_memb_id_constr_54, memb_id_constraint_53 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cells_to_be_Barred_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &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 Cells_to_be_Barred_Item_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_56, + 0, + { &asn_OER_memb_extensionValue_constr_56, &asn_PER_memb_extensionValue_constr_56, memb_extensionValue_constraint_53 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Cells_to_be_Barred_Item_ExtIEs_tags_53[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Cells_to_be_Barred_Item_ExtIEs_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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Cells_to_be_Barred_Item_ExtIEs_specs_53 = { + sizeof(struct Cells_to_be_Barred_Item_ExtIEs), + offsetof(struct Cells_to_be_Barred_Item_ExtIEs, _asn_ctx), + asn_MAP_Cells_to_be_Barred_Item_ExtIEs_tag2el_53, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_to_be_Barred_Item_ExtIEs = { + "Cells-to-be-Barred-Item-ExtIEs", + "Cells-to-be-Barred-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_Cells_to_be_Barred_Item_ExtIEs_tags_53, + sizeof(asn_DEF_Cells_to_be_Barred_Item_ExtIEs_tags_53) + /sizeof(asn_DEF_Cells_to_be_Barred_Item_ExtIEs_tags_53[0]), /* 1 */ + asn_DEF_Cells_to_be_Barred_Item_ExtIEs_tags_53, /* Same as above */ + sizeof(asn_DEF_Cells_to_be_Barred_Item_ExtIEs_tags_53) + /sizeof(asn_DEF_Cells_to_be_Barred_Item_ExtIEs_tags_53[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_to_be_Barred_Item_ExtIEs_53, + 3, /* Elements count */ + &asn_SPC_Cells_to_be_Barred_Item_ExtIEs_specs_53 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_60 = { + sizeof(struct CriticalityDiagnostics_ExtIEs__extensionValue), + offsetof(struct CriticalityDiagnostics_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct CriticalityDiagnostics_ExtIEs__extensionValue, present), + sizeof(((struct CriticalityDiagnostics_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_60 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_60 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_ExtIEs_57[] = { + { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_58, &asn_PER_memb_id_constr_58, memb_id_constraint_57 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &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 CriticalityDiagnostics_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_60, + 0, + { &asn_OER_memb_extensionValue_constr_60, &asn_PER_memb_extensionValue_constr_60, memb_extensionValue_constraint_57 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_ExtIEs_tags_57[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_ExtIEs_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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_ExtIEs_specs_57 = { + sizeof(struct CriticalityDiagnostics_ExtIEs), + offsetof(struct CriticalityDiagnostics_ExtIEs, _asn_ctx), + asn_MAP_CriticalityDiagnostics_ExtIEs_tag2el_57, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_ExtIEs = { + "CriticalityDiagnostics-ExtIEs", + "CriticalityDiagnostics-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_CriticalityDiagnostics_ExtIEs_tags_57, + sizeof(asn_DEF_CriticalityDiagnostics_ExtIEs_tags_57) + /sizeof(asn_DEF_CriticalityDiagnostics_ExtIEs_tags_57[0]), /* 1 */ + asn_DEF_CriticalityDiagnostics_ExtIEs_tags_57, /* Same as above */ + sizeof(asn_DEF_CriticalityDiagnostics_ExtIEs_tags_57) + /sizeof(asn_DEF_CriticalityDiagnostics_ExtIEs_tags_57[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CriticalityDiagnostics_ExtIEs_57, + 3, /* Elements count */ + &asn_SPC_CriticalityDiagnostics_ExtIEs_specs_57 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_64 = { + sizeof(struct CriticalityDiagnostics_IE_Item_ExtIEs__extensionValue), + offsetof(struct CriticalityDiagnostics_IE_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct CriticalityDiagnostics_IE_Item_ExtIEs__extensionValue, present), + sizeof(((struct CriticalityDiagnostics_IE_Item_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_64 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_64 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_Item_ExtIEs_61[] = { + { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_Item_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_62, &asn_PER_memb_id_constr_62, memb_id_constraint_61 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &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 CriticalityDiagnostics_IE_Item_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_64, + 0, + { &asn_OER_memb_extensionValue_constr_64, &asn_PER_memb_extensionValue_constr_64, memb_extensionValue_constraint_61 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_IE_Item_ExtIEs_tags_61[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_IE_Item_ExtIEs_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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_IE_Item_ExtIEs_specs_61 = { + sizeof(struct CriticalityDiagnostics_IE_Item_ExtIEs), + offsetof(struct CriticalityDiagnostics_IE_Item_ExtIEs, _asn_ctx), + asn_MAP_CriticalityDiagnostics_IE_Item_ExtIEs_tag2el_61, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_Item_ExtIEs = { + "CriticalityDiagnostics-IE-Item-ExtIEs", + "CriticalityDiagnostics-IE-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_CriticalityDiagnostics_IE_Item_ExtIEs_tags_61, + sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_ExtIEs_tags_61) + /sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_ExtIEs_tags_61[0]), /* 1 */ + asn_DEF_CriticalityDiagnostics_IE_Item_ExtIEs_tags_61, /* Same as above */ + sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_ExtIEs_tags_61) + /sizeof(asn_DEF_CriticalityDiagnostics_IE_Item_ExtIEs_tags_61[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CriticalityDiagnostics_IE_Item_ExtIEs_61, + 3, /* Elements count */ + &asn_SPC_CriticalityDiagnostics_IE_Item_ExtIEs_specs_61 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_extensionValue_68[] = { + { ATF_NOFLAGS, 0, offsetof(struct CUtoDURRCInformation_ExtIEs__extensionValue, choice.HandoverPreparationInformation), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_HandoverPreparationInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "HandoverPreparationInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct CUtoDURRCInformation_ExtIEs__extensionValue, choice.CellGroupConfig), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_CellGroupConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CellGroupConfig" + }, + { ATF_NOFLAGS, 0, offsetof(struct CUtoDURRCInformation_ExtIEs__extensionValue, choice.MeasurementTimingConfiguration), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_MeasurementTimingConfiguration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MeasurementTimingConfiguration" + }, + { ATF_NOFLAGS, 0, offsetof(struct CUtoDURRCInformation_ExtIEs__extensionValue, choice.UEAssistanceInformation), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_UEAssistanceInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEAssistanceInformation" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_68[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 0, 0, 3 }, /* HandoverPreparationInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 1, -1, 2 }, /* CellGroupConfig */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, -2, 1 }, /* MeasurementTimingConfiguration */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, -3, 0 } /* UEAssistanceInformation */ +}; +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_68 = { + sizeof(struct CUtoDURRCInformation_ExtIEs__extensionValue), + offsetof(struct CUtoDURRCInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct CUtoDURRCInformation_ExtIEs__extensionValue, present), + sizeof(((struct CUtoDURRCInformation_ExtIEs__extensionValue *)0)->present), + asn_MAP_extensionValue_tag2el_68, + 4, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_68 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_extensionValue_68, + 4, /* Elements count */ + &asn_SPC_extensionValue_specs_68 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CUtoDURRCInformation_ExtIEs_65[] = { + { ATF_NOFLAGS, 0, offsetof(struct CUtoDURRCInformation_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_66, &asn_PER_memb_id_constr_66, memb_id_constraint_65 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct CUtoDURRCInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_CUtoDURRCInformation_ExtIEs_criticality_type, + { &asn_OER_memb_criticality_constr_67, &asn_PER_memb_criticality_constr_67, memb_criticality_constraint_65 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CUtoDURRCInformation_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_68, + select_CUtoDURRCInformation_ExtIEs_extensionValue_type, + { &asn_OER_memb_extensionValue_constr_68, &asn_PER_memb_extensionValue_constr_68, memb_extensionValue_constraint_65 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_CUtoDURRCInformation_ExtIEs_tags_65[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CUtoDURRCInformation_ExtIEs_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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CUtoDURRCInformation_ExtIEs_specs_65 = { + sizeof(struct CUtoDURRCInformation_ExtIEs), + offsetof(struct CUtoDURRCInformation_ExtIEs, _asn_ctx), + asn_MAP_CUtoDURRCInformation_ExtIEs_tag2el_65, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CUtoDURRCInformation_ExtIEs = { + "CUtoDURRCInformation-ExtIEs", + "CUtoDURRCInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_CUtoDURRCInformation_ExtIEs_tags_65, + sizeof(asn_DEF_CUtoDURRCInformation_ExtIEs_tags_65) + /sizeof(asn_DEF_CUtoDURRCInformation_ExtIEs_tags_65[0]), /* 1 */ + asn_DEF_CUtoDURRCInformation_ExtIEs_tags_65, /* Same as above */ + sizeof(asn_DEF_CUtoDURRCInformation_ExtIEs_tags_65) + /sizeof(asn_DEF_CUtoDURRCInformation_ExtIEs_tags_65[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CUtoDURRCInformation_ExtIEs_65, + 3, /* Elements count */ + &asn_SPC_CUtoDURRCInformation_ExtIEs_specs_65 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_72 = { + sizeof(struct DedicatedSIDeliveryNeededUE_Item_ExtIEs__extensionValue), + offsetof(struct DedicatedSIDeliveryNeededUE_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct DedicatedSIDeliveryNeededUE_Item_ExtIEs__extensionValue, present), + sizeof(((struct DedicatedSIDeliveryNeededUE_Item_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_72 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_72 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DedicatedSIDeliveryNeededUE_Item_ExtIEs_69[] = { + { ATF_NOFLAGS, 0, offsetof(struct DedicatedSIDeliveryNeededUE_Item_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_70, &asn_PER_memb_id_constr_70, memb_id_constraint_69 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DedicatedSIDeliveryNeededUE_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &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 DedicatedSIDeliveryNeededUE_Item_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_72, + 0, + { &asn_OER_memb_extensionValue_constr_72, &asn_PER_memb_extensionValue_constr_72, memb_extensionValue_constraint_69 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_DedicatedSIDeliveryNeededUE_Item_ExtIEs_tags_69[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DedicatedSIDeliveryNeededUE_Item_ExtIEs_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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DedicatedSIDeliveryNeededUE_Item_ExtIEs_specs_69 = { + sizeof(struct DedicatedSIDeliveryNeededUE_Item_ExtIEs), + offsetof(struct DedicatedSIDeliveryNeededUE_Item_ExtIEs, _asn_ctx), + asn_MAP_DedicatedSIDeliveryNeededUE_Item_ExtIEs_tag2el_69, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DedicatedSIDeliveryNeededUE_Item_ExtIEs = { + "DedicatedSIDeliveryNeededUE-Item-ExtIEs", + "DedicatedSIDeliveryNeededUE-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_DedicatedSIDeliveryNeededUE_Item_ExtIEs_tags_69, + sizeof(asn_DEF_DedicatedSIDeliveryNeededUE_Item_ExtIEs_tags_69) + /sizeof(asn_DEF_DedicatedSIDeliveryNeededUE_Item_ExtIEs_tags_69[0]), /* 1 */ + asn_DEF_DedicatedSIDeliveryNeededUE_Item_ExtIEs_tags_69, /* Same as above */ + sizeof(asn_DEF_DedicatedSIDeliveryNeededUE_Item_ExtIEs_tags_69) + /sizeof(asn_DEF_DedicatedSIDeliveryNeededUE_Item_ExtIEs_tags_69[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DedicatedSIDeliveryNeededUE_Item_ExtIEs_69, + 3, /* Elements count */ + &asn_SPC_DedicatedSIDeliveryNeededUE_Item_ExtIEs_specs_69 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_76 = { + sizeof(struct DLUPTNLInformation_ToBeSetup_ItemExtIEs__extensionValue), + offsetof(struct DLUPTNLInformation_ToBeSetup_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct DLUPTNLInformation_ToBeSetup_ItemExtIEs__extensionValue, present), + sizeof(((struct DLUPTNLInformation_ToBeSetup_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_76 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_76 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DLUPTNLInformation_ToBeSetup_ItemExtIEs_73[] = { + { ATF_NOFLAGS, 0, offsetof(struct DLUPTNLInformation_ToBeSetup_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_74, &asn_PER_memb_id_constr_74, memb_id_constraint_73 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DLUPTNLInformation_ToBeSetup_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &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 DLUPTNLInformation_ToBeSetup_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_76, + 0, + { &asn_OER_memb_extensionValue_constr_76, &asn_PER_memb_extensionValue_constr_76, memb_extensionValue_constraint_73 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_DLUPTNLInformation_ToBeSetup_ItemExtIEs_tags_73[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DLUPTNLInformation_ToBeSetup_ItemExtIEs_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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DLUPTNLInformation_ToBeSetup_ItemExtIEs_specs_73 = { + sizeof(struct DLUPTNLInformation_ToBeSetup_ItemExtIEs), + offsetof(struct DLUPTNLInformation_ToBeSetup_ItemExtIEs, _asn_ctx), + asn_MAP_DLUPTNLInformation_ToBeSetup_ItemExtIEs_tag2el_73, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DLUPTNLInformation_ToBeSetup_ItemExtIEs = { + "DLUPTNLInformation-ToBeSetup-ItemExtIEs", + "DLUPTNLInformation-ToBeSetup-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_DLUPTNLInformation_ToBeSetup_ItemExtIEs_tags_73, + sizeof(asn_DEF_DLUPTNLInformation_ToBeSetup_ItemExtIEs_tags_73) + /sizeof(asn_DEF_DLUPTNLInformation_ToBeSetup_ItemExtIEs_tags_73[0]), /* 1 */ + asn_DEF_DLUPTNLInformation_ToBeSetup_ItemExtIEs_tags_73, /* Same as above */ + sizeof(asn_DEF_DLUPTNLInformation_ToBeSetup_ItemExtIEs_tags_73) + /sizeof(asn_DEF_DLUPTNLInformation_ToBeSetup_ItemExtIEs_tags_73[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DLUPTNLInformation_ToBeSetup_ItemExtIEs_73, + 3, /* Elements count */ + &asn_SPC_DLUPTNLInformation_ToBeSetup_ItemExtIEs_specs_73 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_80 = { + sizeof(struct DRB_Activity_ItemExtIEs__extensionValue), + offsetof(struct DRB_Activity_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct DRB_Activity_ItemExtIEs__extensionValue, present), + sizeof(((struct DRB_Activity_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_80 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_80 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRB_Activity_ItemExtIEs_77[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRB_Activity_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_78, &asn_PER_memb_id_constr_78, memb_id_constraint_77 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRB_Activity_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &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 DRB_Activity_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_80, + 0, + { &asn_OER_memb_extensionValue_constr_80, &asn_PER_memb_extensionValue_constr_80, memb_extensionValue_constraint_77 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRB_Activity_ItemExtIEs_tags_77[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRB_Activity_ItemExtIEs_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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRB_Activity_ItemExtIEs_specs_77 = { + sizeof(struct DRB_Activity_ItemExtIEs), + offsetof(struct DRB_Activity_ItemExtIEs, _asn_ctx), + asn_MAP_DRB_Activity_ItemExtIEs_tag2el_77, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRB_Activity_ItemExtIEs = { + "DRB-Activity-ItemExtIEs", + "DRB-Activity-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRB_Activity_ItemExtIEs_tags_77, + sizeof(asn_DEF_DRB_Activity_ItemExtIEs_tags_77) + /sizeof(asn_DEF_DRB_Activity_ItemExtIEs_tags_77[0]), /* 1 */ + asn_DEF_DRB_Activity_ItemExtIEs_tags_77, /* Same as above */ + sizeof(asn_DEF_DRB_Activity_ItemExtIEs_tags_77) + /sizeof(asn_DEF_DRB_Activity_ItemExtIEs_tags_77[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRB_Activity_ItemExtIEs_77, + 3, /* Elements count */ + &asn_SPC_DRB_Activity_ItemExtIEs_specs_77 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_84 = { + sizeof(struct DRBs_FailedToBeModified_ItemExtIEs__extensionValue), + offsetof(struct DRBs_FailedToBeModified_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct DRBs_FailedToBeModified_ItemExtIEs__extensionValue, present), + sizeof(((struct DRBs_FailedToBeModified_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_84 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_84 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRBs_FailedToBeModified_ItemExtIEs_81[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_FailedToBeModified_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_82, &asn_PER_memb_id_constr_82, memb_id_constraint_81 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_FailedToBeModified_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &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 DRBs_FailedToBeModified_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_84, + 0, + { &asn_OER_memb_extensionValue_constr_84, &asn_PER_memb_extensionValue_constr_84, memb_extensionValue_constraint_81 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_FailedToBeModified_ItemExtIEs_tags_81[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_FailedToBeModified_ItemExtIEs_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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRBs_FailedToBeModified_ItemExtIEs_specs_81 = { + sizeof(struct DRBs_FailedToBeModified_ItemExtIEs), + offsetof(struct DRBs_FailedToBeModified_ItemExtIEs, _asn_ctx), + asn_MAP_DRBs_FailedToBeModified_ItemExtIEs_tag2el_81, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_FailedToBeModified_ItemExtIEs = { + "DRBs-FailedToBeModified-ItemExtIEs", + "DRBs-FailedToBeModified-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_FailedToBeModified_ItemExtIEs_tags_81, + sizeof(asn_DEF_DRBs_FailedToBeModified_ItemExtIEs_tags_81) + /sizeof(asn_DEF_DRBs_FailedToBeModified_ItemExtIEs_tags_81[0]), /* 1 */ + asn_DEF_DRBs_FailedToBeModified_ItemExtIEs_tags_81, /* Same as above */ + sizeof(asn_DEF_DRBs_FailedToBeModified_ItemExtIEs_tags_81) + /sizeof(asn_DEF_DRBs_FailedToBeModified_ItemExtIEs_tags_81[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_FailedToBeModified_ItemExtIEs_81, + 3, /* Elements count */ + &asn_SPC_DRBs_FailedToBeModified_ItemExtIEs_specs_81 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_88 = { + sizeof(struct DRBs_FailedToBeSetup_ItemExtIEs__extensionValue), + offsetof(struct DRBs_FailedToBeSetup_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct DRBs_FailedToBeSetup_ItemExtIEs__extensionValue, present), + sizeof(((struct DRBs_FailedToBeSetup_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_88 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_88 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRBs_FailedToBeSetup_ItemExtIEs_85[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_FailedToBeSetup_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_86, &asn_PER_memb_id_constr_86, memb_id_constraint_85 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_FailedToBeSetup_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &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 DRBs_FailedToBeSetup_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_88, + 0, + { &asn_OER_memb_extensionValue_constr_88, &asn_PER_memb_extensionValue_constr_88, memb_extensionValue_constraint_85 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_FailedToBeSetup_ItemExtIEs_tags_85[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_FailedToBeSetup_ItemExtIEs_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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRBs_FailedToBeSetup_ItemExtIEs_specs_85 = { + sizeof(struct DRBs_FailedToBeSetup_ItemExtIEs), + offsetof(struct DRBs_FailedToBeSetup_ItemExtIEs, _asn_ctx), + asn_MAP_DRBs_FailedToBeSetup_ItemExtIEs_tag2el_85, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_FailedToBeSetup_ItemExtIEs = { + "DRBs-FailedToBeSetup-ItemExtIEs", + "DRBs-FailedToBeSetup-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_FailedToBeSetup_ItemExtIEs_tags_85, + sizeof(asn_DEF_DRBs_FailedToBeSetup_ItemExtIEs_tags_85) + /sizeof(asn_DEF_DRBs_FailedToBeSetup_ItemExtIEs_tags_85[0]), /* 1 */ + asn_DEF_DRBs_FailedToBeSetup_ItemExtIEs_tags_85, /* Same as above */ + sizeof(asn_DEF_DRBs_FailedToBeSetup_ItemExtIEs_tags_85) + /sizeof(asn_DEF_DRBs_FailedToBeSetup_ItemExtIEs_tags_85[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_FailedToBeSetup_ItemExtIEs_85, + 3, /* Elements count */ + &asn_SPC_DRBs_FailedToBeSetup_ItemExtIEs_specs_85 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_92 = { + sizeof(struct DRBs_FailedToBeSetupMod_ItemExtIEs__extensionValue), + offsetof(struct DRBs_FailedToBeSetupMod_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct DRBs_FailedToBeSetupMod_ItemExtIEs__extensionValue, present), + sizeof(((struct DRBs_FailedToBeSetupMod_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_92 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_92 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRBs_FailedToBeSetupMod_ItemExtIEs_89[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_FailedToBeSetupMod_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_90, &asn_PER_memb_id_constr_90, memb_id_constraint_89 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_FailedToBeSetupMod_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &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 DRBs_FailedToBeSetupMod_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_92, + 0, + { &asn_OER_memb_extensionValue_constr_92, &asn_PER_memb_extensionValue_constr_92, memb_extensionValue_constraint_89 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_FailedToBeSetupMod_ItemExtIEs_tags_89[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_FailedToBeSetupMod_ItemExtIEs_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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRBs_FailedToBeSetupMod_ItemExtIEs_specs_89 = { + sizeof(struct DRBs_FailedToBeSetupMod_ItemExtIEs), + offsetof(struct DRBs_FailedToBeSetupMod_ItemExtIEs, _asn_ctx), + asn_MAP_DRBs_FailedToBeSetupMod_ItemExtIEs_tag2el_89, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_FailedToBeSetupMod_ItemExtIEs = { + "DRBs-FailedToBeSetupMod-ItemExtIEs", + "DRBs-FailedToBeSetupMod-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_FailedToBeSetupMod_ItemExtIEs_tags_89, + sizeof(asn_DEF_DRBs_FailedToBeSetupMod_ItemExtIEs_tags_89) + /sizeof(asn_DEF_DRBs_FailedToBeSetupMod_ItemExtIEs_tags_89[0]), /* 1 */ + asn_DEF_DRBs_FailedToBeSetupMod_ItemExtIEs_tags_89, /* Same as above */ + sizeof(asn_DEF_DRBs_FailedToBeSetupMod_ItemExtIEs_tags_89) + /sizeof(asn_DEF_DRBs_FailedToBeSetupMod_ItemExtIEs_tags_89[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_FailedToBeSetupMod_ItemExtIEs_89, + 3, /* Elements count */ + &asn_SPC_DRBs_FailedToBeSetupMod_ItemExtIEs_specs_89 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_96 = { + sizeof(struct DRB_Information_ItemExtIEs__extensionValue), + offsetof(struct DRB_Information_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct DRB_Information_ItemExtIEs__extensionValue, present), + sizeof(((struct DRB_Information_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_96 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_96 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRB_Information_ItemExtIEs_93[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRB_Information_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_94, &asn_PER_memb_id_constr_94, memb_id_constraint_93 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRB_Information_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &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 DRB_Information_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_96, + 0, + { &asn_OER_memb_extensionValue_constr_96, &asn_PER_memb_extensionValue_constr_96, memb_extensionValue_constraint_93 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRB_Information_ItemExtIEs_tags_93[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRB_Information_ItemExtIEs_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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRB_Information_ItemExtIEs_specs_93 = { + sizeof(struct DRB_Information_ItemExtIEs), + offsetof(struct DRB_Information_ItemExtIEs, _asn_ctx), + asn_MAP_DRB_Information_ItemExtIEs_tag2el_93, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRB_Information_ItemExtIEs = { + "DRB-Information-ItemExtIEs", + "DRB-Information-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRB_Information_ItemExtIEs_tags_93, + sizeof(asn_DEF_DRB_Information_ItemExtIEs_tags_93) + /sizeof(asn_DEF_DRB_Information_ItemExtIEs_tags_93[0]), /* 1 */ + asn_DEF_DRB_Information_ItemExtIEs_tags_93, /* Same as above */ + sizeof(asn_DEF_DRB_Information_ItemExtIEs_tags_93) + /sizeof(asn_DEF_DRB_Information_ItemExtIEs_tags_93[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRB_Information_ItemExtIEs_93, + 3, /* Elements count */ + &asn_SPC_DRB_Information_ItemExtIEs_specs_93 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_extensionValue_100[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Modified_ItemExtIEs__extensionValue, choice.RLC_Status), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RLC_Status, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RLC-Status" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_100[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RLC-Status */ +}; +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_100 = { + sizeof(struct DRBs_Modified_ItemExtIEs__extensionValue), + offsetof(struct DRBs_Modified_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct DRBs_Modified_ItemExtIEs__extensionValue, present), + sizeof(((struct DRBs_Modified_ItemExtIEs__extensionValue *)0)->present), + asn_MAP_extensionValue_tag2el_100, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_100 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_extensionValue_100, + 1, /* Elements count */ + &asn_SPC_extensionValue_specs_100 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRBs_Modified_ItemExtIEs_97[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Modified_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_98, &asn_PER_memb_id_constr_98, memb_id_constraint_97 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Modified_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_DRBs_Modified_ItemExtIEs_criticality_type, + { &asn_OER_memb_criticality_constr_99, &asn_PER_memb_criticality_constr_99, memb_criticality_constraint_97 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DRBs_Modified_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_100, + select_DRBs_Modified_ItemExtIEs_extensionValue_type, + { &asn_OER_memb_extensionValue_constr_100, &asn_PER_memb_extensionValue_constr_100, memb_extensionValue_constraint_97 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_Modified_ItemExtIEs_tags_97[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_Modified_ItemExtIEs_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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRBs_Modified_ItemExtIEs_specs_97 = { + sizeof(struct DRBs_Modified_ItemExtIEs), + offsetof(struct DRBs_Modified_ItemExtIEs, _asn_ctx), + asn_MAP_DRBs_Modified_ItemExtIEs_tag2el_97, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_Modified_ItemExtIEs = { + "DRBs-Modified-ItemExtIEs", + "DRBs-Modified-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_Modified_ItemExtIEs_tags_97, + sizeof(asn_DEF_DRBs_Modified_ItemExtIEs_tags_97) + /sizeof(asn_DEF_DRBs_Modified_ItemExtIEs_tags_97[0]), /* 1 */ + asn_DEF_DRBs_Modified_ItemExtIEs_tags_97, /* Same as above */ + sizeof(asn_DEF_DRBs_Modified_ItemExtIEs_tags_97) + /sizeof(asn_DEF_DRBs_Modified_ItemExtIEs_tags_97[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_Modified_ItemExtIEs_97, + 3, /* Elements count */ + &asn_SPC_DRBs_Modified_ItemExtIEs_specs_97 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_104 = { + sizeof(struct DRBs_ModifiedConf_ItemExtIEs__extensionValue), + offsetof(struct DRBs_ModifiedConf_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct DRBs_ModifiedConf_ItemExtIEs__extensionValue, present), + sizeof(((struct DRBs_ModifiedConf_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_104 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_104 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRBs_ModifiedConf_ItemExtIEs_101[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ModifiedConf_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_102, &asn_PER_memb_id_constr_102, memb_id_constraint_101 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ModifiedConf_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &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 DRBs_ModifiedConf_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_104, + 0, + { &asn_OER_memb_extensionValue_constr_104, &asn_PER_memb_extensionValue_constr_104, memb_extensionValue_constraint_101 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_ModifiedConf_ItemExtIEs_tags_101[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_ModifiedConf_ItemExtIEs_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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRBs_ModifiedConf_ItemExtIEs_specs_101 = { + sizeof(struct DRBs_ModifiedConf_ItemExtIEs), + offsetof(struct DRBs_ModifiedConf_ItemExtIEs, _asn_ctx), + asn_MAP_DRBs_ModifiedConf_ItemExtIEs_tag2el_101, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_ModifiedConf_ItemExtIEs = { + "DRBs-ModifiedConf-ItemExtIEs", + "DRBs-ModifiedConf-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_ModifiedConf_ItemExtIEs_tags_101, + sizeof(asn_DEF_DRBs_ModifiedConf_ItemExtIEs_tags_101) + /sizeof(asn_DEF_DRBs_ModifiedConf_ItemExtIEs_tags_101[0]), /* 1 */ + asn_DEF_DRBs_ModifiedConf_ItemExtIEs_tags_101, /* Same as above */ + sizeof(asn_DEF_DRBs_ModifiedConf_ItemExtIEs_tags_101) + /sizeof(asn_DEF_DRBs_ModifiedConf_ItemExtIEs_tags_101[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_ModifiedConf_ItemExtIEs_101, + 3, /* Elements count */ + &asn_SPC_DRBs_ModifiedConf_ItemExtIEs_specs_101 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_108 = { + sizeof(struct DRB_Notify_ItemExtIEs__extensionValue), + offsetof(struct DRB_Notify_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct DRB_Notify_ItemExtIEs__extensionValue, present), + sizeof(((struct DRB_Notify_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_108 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_108 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRB_Notify_ItemExtIEs_105[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRB_Notify_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_106, &asn_PER_memb_id_constr_106, memb_id_constraint_105 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRB_Notify_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_107, &asn_PER_memb_criticality_constr_107, memb_criticality_constraint_105 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DRB_Notify_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_108, + 0, + { &asn_OER_memb_extensionValue_constr_108, &asn_PER_memb_extensionValue_constr_108, memb_extensionValue_constraint_105 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRB_Notify_ItemExtIEs_tags_105[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRB_Notify_ItemExtIEs_tag2el_105[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRB_Notify_ItemExtIEs_specs_105 = { + sizeof(struct DRB_Notify_ItemExtIEs), + offsetof(struct DRB_Notify_ItemExtIEs, _asn_ctx), + asn_MAP_DRB_Notify_ItemExtIEs_tag2el_105, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRB_Notify_ItemExtIEs = { + "DRB-Notify-ItemExtIEs", + "DRB-Notify-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRB_Notify_ItemExtIEs_tags_105, + sizeof(asn_DEF_DRB_Notify_ItemExtIEs_tags_105) + /sizeof(asn_DEF_DRB_Notify_ItemExtIEs_tags_105[0]), /* 1 */ + asn_DEF_DRB_Notify_ItemExtIEs_tags_105, /* Same as above */ + sizeof(asn_DEF_DRB_Notify_ItemExtIEs_tags_105) + /sizeof(asn_DEF_DRB_Notify_ItemExtIEs_tags_105[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRB_Notify_ItemExtIEs_105, + 3, /* Elements count */ + &asn_SPC_DRB_Notify_ItemExtIEs_specs_105 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_extensionValue_112[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Required_ToBeModified_ItemExtIEs__extensionValue, choice.RLC_Status), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RLC_Status, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RLC-Status" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_112[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RLC-Status */ +}; +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_112 = { + sizeof(struct DRBs_Required_ToBeModified_ItemExtIEs__extensionValue), + offsetof(struct DRBs_Required_ToBeModified_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct DRBs_Required_ToBeModified_ItemExtIEs__extensionValue, present), + sizeof(((struct DRBs_Required_ToBeModified_ItemExtIEs__extensionValue *)0)->present), + asn_MAP_extensionValue_tag2el_112, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_112 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_extensionValue_112, + 1, /* Elements count */ + &asn_SPC_extensionValue_specs_112 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRBs_Required_ToBeModified_ItemExtIEs_109[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Required_ToBeModified_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_110, &asn_PER_memb_id_constr_110, memb_id_constraint_109 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Required_ToBeModified_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_DRBs_Required_ToBeModified_ItemExtIEs_criticality_type, + { &asn_OER_memb_criticality_constr_111, &asn_PER_memb_criticality_constr_111, memb_criticality_constraint_109 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DRBs_Required_ToBeModified_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_112, + select_DRBs_Required_ToBeModified_ItemExtIEs_extensionValue_type, + { &asn_OER_memb_extensionValue_constr_112, &asn_PER_memb_extensionValue_constr_112, memb_extensionValue_constraint_109 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_Required_ToBeModified_ItemExtIEs_tags_109[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_Required_ToBeModified_ItemExtIEs_tag2el_109[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRBs_Required_ToBeModified_ItemExtIEs_specs_109 = { + sizeof(struct DRBs_Required_ToBeModified_ItemExtIEs), + offsetof(struct DRBs_Required_ToBeModified_ItemExtIEs, _asn_ctx), + asn_MAP_DRBs_Required_ToBeModified_ItemExtIEs_tag2el_109, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_Required_ToBeModified_ItemExtIEs = { + "DRBs-Required-ToBeModified-ItemExtIEs", + "DRBs-Required-ToBeModified-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_Required_ToBeModified_ItemExtIEs_tags_109, + sizeof(asn_DEF_DRBs_Required_ToBeModified_ItemExtIEs_tags_109) + /sizeof(asn_DEF_DRBs_Required_ToBeModified_ItemExtIEs_tags_109[0]), /* 1 */ + asn_DEF_DRBs_Required_ToBeModified_ItemExtIEs_tags_109, /* Same as above */ + sizeof(asn_DEF_DRBs_Required_ToBeModified_ItemExtIEs_tags_109) + /sizeof(asn_DEF_DRBs_Required_ToBeModified_ItemExtIEs_tags_109[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_Required_ToBeModified_ItemExtIEs_109, + 3, /* Elements count */ + &asn_SPC_DRBs_Required_ToBeModified_ItemExtIEs_specs_109 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_116 = { + sizeof(struct DRBs_Required_ToBeReleased_ItemExtIEs__extensionValue), + offsetof(struct DRBs_Required_ToBeReleased_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct DRBs_Required_ToBeReleased_ItemExtIEs__extensionValue, present), + sizeof(((struct DRBs_Required_ToBeReleased_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_116 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_116 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRBs_Required_ToBeReleased_ItemExtIEs_113[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Required_ToBeReleased_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_114, &asn_PER_memb_id_constr_114, memb_id_constraint_113 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Required_ToBeReleased_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_115, &asn_PER_memb_criticality_constr_115, memb_criticality_constraint_113 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DRBs_Required_ToBeReleased_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_116, + 0, + { &asn_OER_memb_extensionValue_constr_116, &asn_PER_memb_extensionValue_constr_116, memb_extensionValue_constraint_113 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_Required_ToBeReleased_ItemExtIEs_tags_113[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_Required_ToBeReleased_ItemExtIEs_tag2el_113[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRBs_Required_ToBeReleased_ItemExtIEs_specs_113 = { + sizeof(struct DRBs_Required_ToBeReleased_ItemExtIEs), + offsetof(struct DRBs_Required_ToBeReleased_ItemExtIEs, _asn_ctx), + asn_MAP_DRBs_Required_ToBeReleased_ItemExtIEs_tag2el_113, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_Required_ToBeReleased_ItemExtIEs = { + "DRBs-Required-ToBeReleased-ItemExtIEs", + "DRBs-Required-ToBeReleased-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_Required_ToBeReleased_ItemExtIEs_tags_113, + sizeof(asn_DEF_DRBs_Required_ToBeReleased_ItemExtIEs_tags_113) + /sizeof(asn_DEF_DRBs_Required_ToBeReleased_ItemExtIEs_tags_113[0]), /* 1 */ + asn_DEF_DRBs_Required_ToBeReleased_ItemExtIEs_tags_113, /* Same as above */ + sizeof(asn_DEF_DRBs_Required_ToBeReleased_ItemExtIEs_tags_113) + /sizeof(asn_DEF_DRBs_Required_ToBeReleased_ItemExtIEs_tags_113[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_Required_ToBeReleased_ItemExtIEs_113, + 3, /* Elements count */ + &asn_SPC_DRBs_Required_ToBeReleased_ItemExtIEs_specs_113 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_120 = { + sizeof(struct DRBs_Setup_ItemExtIEs__extensionValue), + offsetof(struct DRBs_Setup_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct DRBs_Setup_ItemExtIEs__extensionValue, present), + sizeof(((struct DRBs_Setup_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_120 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_120 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRBs_Setup_ItemExtIEs_117[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Setup_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_118, &asn_PER_memb_id_constr_118, memb_id_constraint_117 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Setup_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_119, &asn_PER_memb_criticality_constr_119, memb_criticality_constraint_117 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DRBs_Setup_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_120, + 0, + { &asn_OER_memb_extensionValue_constr_120, &asn_PER_memb_extensionValue_constr_120, memb_extensionValue_constraint_117 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_Setup_ItemExtIEs_tags_117[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_Setup_ItemExtIEs_tag2el_117[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRBs_Setup_ItemExtIEs_specs_117 = { + sizeof(struct DRBs_Setup_ItemExtIEs), + offsetof(struct DRBs_Setup_ItemExtIEs, _asn_ctx), + asn_MAP_DRBs_Setup_ItemExtIEs_tag2el_117, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_Setup_ItemExtIEs = { + "DRBs-Setup-ItemExtIEs", + "DRBs-Setup-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_Setup_ItemExtIEs_tags_117, + sizeof(asn_DEF_DRBs_Setup_ItemExtIEs_tags_117) + /sizeof(asn_DEF_DRBs_Setup_ItemExtIEs_tags_117[0]), /* 1 */ + asn_DEF_DRBs_Setup_ItemExtIEs_tags_117, /* Same as above */ + sizeof(asn_DEF_DRBs_Setup_ItemExtIEs_tags_117) + /sizeof(asn_DEF_DRBs_Setup_ItemExtIEs_tags_117[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_Setup_ItemExtIEs_117, + 3, /* Elements count */ + &asn_SPC_DRBs_Setup_ItemExtIEs_specs_117 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_124 = { + sizeof(struct DRBs_SetupMod_ItemExtIEs__extensionValue), + offsetof(struct DRBs_SetupMod_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct DRBs_SetupMod_ItemExtIEs__extensionValue, present), + sizeof(((struct DRBs_SetupMod_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_124 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_124 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRBs_SetupMod_ItemExtIEs_121[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_SetupMod_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_122, &asn_PER_memb_id_constr_122, memb_id_constraint_121 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_SetupMod_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_123, &asn_PER_memb_criticality_constr_123, memb_criticality_constraint_121 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DRBs_SetupMod_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_124, + 0, + { &asn_OER_memb_extensionValue_constr_124, &asn_PER_memb_extensionValue_constr_124, memb_extensionValue_constraint_121 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_SetupMod_ItemExtIEs_tags_121[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_SetupMod_ItemExtIEs_tag2el_121[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRBs_SetupMod_ItemExtIEs_specs_121 = { + sizeof(struct DRBs_SetupMod_ItemExtIEs), + offsetof(struct DRBs_SetupMod_ItemExtIEs, _asn_ctx), + asn_MAP_DRBs_SetupMod_ItemExtIEs_tag2el_121, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_SetupMod_ItemExtIEs = { + "DRBs-SetupMod-ItemExtIEs", + "DRBs-SetupMod-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_SetupMod_ItemExtIEs_tags_121, + sizeof(asn_DEF_DRBs_SetupMod_ItemExtIEs_tags_121) + /sizeof(asn_DEF_DRBs_SetupMod_ItemExtIEs_tags_121[0]), /* 1 */ + asn_DEF_DRBs_SetupMod_ItemExtIEs_tags_121, /* Same as above */ + sizeof(asn_DEF_DRBs_SetupMod_ItemExtIEs_tags_121) + /sizeof(asn_DEF_DRBs_SetupMod_ItemExtIEs_tags_121[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_SetupMod_ItemExtIEs_121, + 3, /* Elements count */ + &asn_SPC_DRBs_SetupMod_ItemExtIEs_specs_121 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_extensionValue_128[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeModified_ItemExtIEs__extensionValue, choice.PDCPSNLength), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_PDCPSNLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDCPSNLength" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeModified_ItemExtIEs__extensionValue, choice.BearerTypeChange), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_BearerTypeChange, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "BearerTypeChange" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeModified_ItemExtIEs__extensionValue, choice.RLCMode), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_RLCMode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RLCMode" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeModified_ItemExtIEs__extensionValue, choice.DuplicationActivation), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_DuplicationActivation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DuplicationActivation" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeModified_ItemExtIEs__extensionValue, choice.DCBasedDuplicationConfigured), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_DCBasedDuplicationConfigured, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DCBasedDuplicationConfigured" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_128[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 4 }, /* PDCPSNLength */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, -1, 3 }, /* BearerTypeChange */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, -2, 2 }, /* RLCMode */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, -3, 1 }, /* DuplicationActivation */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 4, -4, 0 } /* DCBasedDuplicationConfigured */ +}; +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_128 = { + sizeof(struct DRBs_ToBeModified_ItemExtIEs__extensionValue), + offsetof(struct DRBs_ToBeModified_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct DRBs_ToBeModified_ItemExtIEs__extensionValue, present), + sizeof(((struct DRBs_ToBeModified_ItemExtIEs__extensionValue *)0)->present), + asn_MAP_extensionValue_tag2el_128, + 5, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_128 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_extensionValue_128, + 5, /* Elements count */ + &asn_SPC_extensionValue_specs_128 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRBs_ToBeModified_ItemExtIEs_125[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeModified_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_126, &asn_PER_memb_id_constr_126, memb_id_constraint_125 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeModified_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_DRBs_ToBeModified_ItemExtIEs_criticality_type, + { &asn_OER_memb_criticality_constr_127, &asn_PER_memb_criticality_constr_127, memb_criticality_constraint_125 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeModified_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_128, + select_DRBs_ToBeModified_ItemExtIEs_extensionValue_type, + { &asn_OER_memb_extensionValue_constr_128, &asn_PER_memb_extensionValue_constr_128, memb_extensionValue_constraint_125 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_ToBeModified_ItemExtIEs_tags_125[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_ToBeModified_ItemExtIEs_tag2el_125[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRBs_ToBeModified_ItemExtIEs_specs_125 = { + sizeof(struct DRBs_ToBeModified_ItemExtIEs), + offsetof(struct DRBs_ToBeModified_ItemExtIEs, _asn_ctx), + asn_MAP_DRBs_ToBeModified_ItemExtIEs_tag2el_125, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeModified_ItemExtIEs = { + "DRBs-ToBeModified-ItemExtIEs", + "DRBs-ToBeModified-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_ToBeModified_ItemExtIEs_tags_125, + sizeof(asn_DEF_DRBs_ToBeModified_ItemExtIEs_tags_125) + /sizeof(asn_DEF_DRBs_ToBeModified_ItemExtIEs_tags_125[0]), /* 1 */ + asn_DEF_DRBs_ToBeModified_ItemExtIEs_tags_125, /* Same as above */ + sizeof(asn_DEF_DRBs_ToBeModified_ItemExtIEs_tags_125) + /sizeof(asn_DEF_DRBs_ToBeModified_ItemExtIEs_tags_125[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_ToBeModified_ItemExtIEs_125, + 3, /* Elements count */ + &asn_SPC_DRBs_ToBeModified_ItemExtIEs_specs_125 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_132 = { + sizeof(struct DRBs_ToBeReleased_ItemExtIEs__extensionValue), + offsetof(struct DRBs_ToBeReleased_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct DRBs_ToBeReleased_ItemExtIEs__extensionValue, present), + sizeof(((struct DRBs_ToBeReleased_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_132 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_132 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRBs_ToBeReleased_ItemExtIEs_129[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeReleased_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_130, &asn_PER_memb_id_constr_130, memb_id_constraint_129 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeReleased_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_131, &asn_PER_memb_criticality_constr_131, memb_criticality_constraint_129 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeReleased_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_132, + 0, + { &asn_OER_memb_extensionValue_constr_132, &asn_PER_memb_extensionValue_constr_132, memb_extensionValue_constraint_129 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_ToBeReleased_ItemExtIEs_tags_129[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_ToBeReleased_ItemExtIEs_tag2el_129[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRBs_ToBeReleased_ItemExtIEs_specs_129 = { + sizeof(struct DRBs_ToBeReleased_ItemExtIEs), + offsetof(struct DRBs_ToBeReleased_ItemExtIEs, _asn_ctx), + asn_MAP_DRBs_ToBeReleased_ItemExtIEs_tag2el_129, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeReleased_ItemExtIEs = { + "DRBs-ToBeReleased-ItemExtIEs", + "DRBs-ToBeReleased-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_ToBeReleased_ItemExtIEs_tags_129, + sizeof(asn_DEF_DRBs_ToBeReleased_ItemExtIEs_tags_129) + /sizeof(asn_DEF_DRBs_ToBeReleased_ItemExtIEs_tags_129[0]), /* 1 */ + asn_DEF_DRBs_ToBeReleased_ItemExtIEs_tags_129, /* Same as above */ + sizeof(asn_DEF_DRBs_ToBeReleased_ItemExtIEs_tags_129) + /sizeof(asn_DEF_DRBs_ToBeReleased_ItemExtIEs_tags_129[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_ToBeReleased_ItemExtIEs_129, + 3, /* Elements count */ + &asn_SPC_DRBs_ToBeReleased_ItemExtIEs_specs_129 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_extensionValue_136[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetup_ItemExtIEs__extensionValue, choice.DCBasedDuplicationConfigured), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_DCBasedDuplicationConfigured, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DCBasedDuplicationConfigured" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetup_ItemExtIEs__extensionValue, choice.DuplicationActivation), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_DuplicationActivation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DuplicationActivation" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetup_ItemExtIEs__extensionValue, choice.PDCPSNLength), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_PDCPSNLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDCPSNLength" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_136[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 2 }, /* DCBasedDuplicationConfigured */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, -1, 1 }, /* DuplicationActivation */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, -2, 0 } /* PDCPSNLength */ +}; +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_136 = { + sizeof(struct DRBs_ToBeSetup_ItemExtIEs__extensionValue), + offsetof(struct DRBs_ToBeSetup_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct DRBs_ToBeSetup_ItemExtIEs__extensionValue, present), + sizeof(((struct DRBs_ToBeSetup_ItemExtIEs__extensionValue *)0)->present), + asn_MAP_extensionValue_tag2el_136, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_136 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_extensionValue_136, + 3, /* Elements count */ + &asn_SPC_extensionValue_specs_136 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRBs_ToBeSetup_ItemExtIEs_133[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetup_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_134, &asn_PER_memb_id_constr_134, memb_id_constraint_133 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetup_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_DRBs_ToBeSetup_ItemExtIEs_criticality_type, + { &asn_OER_memb_criticality_constr_135, &asn_PER_memb_criticality_constr_135, memb_criticality_constraint_133 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetup_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_136, + select_DRBs_ToBeSetup_ItemExtIEs_extensionValue_type, + { &asn_OER_memb_extensionValue_constr_136, &asn_PER_memb_extensionValue_constr_136, memb_extensionValue_constraint_133 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_ToBeSetup_ItemExtIEs_tags_133[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_ToBeSetup_ItemExtIEs_tag2el_133[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRBs_ToBeSetup_ItemExtIEs_specs_133 = { + sizeof(struct DRBs_ToBeSetup_ItemExtIEs), + offsetof(struct DRBs_ToBeSetup_ItemExtIEs, _asn_ctx), + asn_MAP_DRBs_ToBeSetup_ItemExtIEs_tag2el_133, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeSetup_ItemExtIEs = { + "DRBs-ToBeSetup-ItemExtIEs", + "DRBs-ToBeSetup-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_ToBeSetup_ItemExtIEs_tags_133, + sizeof(asn_DEF_DRBs_ToBeSetup_ItemExtIEs_tags_133) + /sizeof(asn_DEF_DRBs_ToBeSetup_ItemExtIEs_tags_133[0]), /* 1 */ + asn_DEF_DRBs_ToBeSetup_ItemExtIEs_tags_133, /* Same as above */ + sizeof(asn_DEF_DRBs_ToBeSetup_ItemExtIEs_tags_133) + /sizeof(asn_DEF_DRBs_ToBeSetup_ItemExtIEs_tags_133[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_ToBeSetup_ItemExtIEs_133, + 3, /* Elements count */ + &asn_SPC_DRBs_ToBeSetup_ItemExtIEs_specs_133 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_extensionValue_140[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetupMod_ItemExtIEs__extensionValue, choice.DCBasedDuplicationConfigured), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_DCBasedDuplicationConfigured, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DCBasedDuplicationConfigured" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetupMod_ItemExtIEs__extensionValue, choice.DuplicationActivation), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_DuplicationActivation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DuplicationActivation" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetupMod_ItemExtIEs__extensionValue, choice.PDCPSNLength), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_PDCPSNLength, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDCPSNLength" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_140[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 2 }, /* DCBasedDuplicationConfigured */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, -1, 1 }, /* DuplicationActivation */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, -2, 0 } /* PDCPSNLength */ +}; +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_140 = { + sizeof(struct DRBs_ToBeSetupMod_ItemExtIEs__extensionValue), + offsetof(struct DRBs_ToBeSetupMod_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct DRBs_ToBeSetupMod_ItemExtIEs__extensionValue, present), + sizeof(((struct DRBs_ToBeSetupMod_ItemExtIEs__extensionValue *)0)->present), + asn_MAP_extensionValue_tag2el_140, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_140 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_extensionValue_140, + 3, /* Elements count */ + &asn_SPC_extensionValue_specs_140 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRBs_ToBeSetupMod_ItemExtIEs_137[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetupMod_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_138, &asn_PER_memb_id_constr_138, memb_id_constraint_137 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetupMod_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_DRBs_ToBeSetupMod_ItemExtIEs_criticality_type, + { &asn_OER_memb_criticality_constr_139, &asn_PER_memb_criticality_constr_139, memb_criticality_constraint_137 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetupMod_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_140, + select_DRBs_ToBeSetupMod_ItemExtIEs_extensionValue_type, + { &asn_OER_memb_extensionValue_constr_140, &asn_PER_memb_extensionValue_constr_140, memb_extensionValue_constraint_137 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_ToBeSetupMod_ItemExtIEs_tags_137[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_ToBeSetupMod_ItemExtIEs_tag2el_137[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRBs_ToBeSetupMod_ItemExtIEs_specs_137 = { + sizeof(struct DRBs_ToBeSetupMod_ItemExtIEs), + offsetof(struct DRBs_ToBeSetupMod_ItemExtIEs, _asn_ctx), + asn_MAP_DRBs_ToBeSetupMod_ItemExtIEs_tag2el_137, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeSetupMod_ItemExtIEs = { + "DRBs-ToBeSetupMod-ItemExtIEs", + "DRBs-ToBeSetupMod-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_ToBeSetupMod_ItemExtIEs_tags_137, + sizeof(asn_DEF_DRBs_ToBeSetupMod_ItemExtIEs_tags_137) + /sizeof(asn_DEF_DRBs_ToBeSetupMod_ItemExtIEs_tags_137[0]), /* 1 */ + asn_DEF_DRBs_ToBeSetupMod_ItemExtIEs_tags_137, /* Same as above */ + sizeof(asn_DEF_DRBs_ToBeSetupMod_ItemExtIEs_tags_137) + /sizeof(asn_DEF_DRBs_ToBeSetupMod_ItemExtIEs_tags_137[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_ToBeSetupMod_ItemExtIEs_137, + 3, /* Elements count */ + &asn_SPC_DRBs_ToBeSetupMod_ItemExtIEs_specs_137 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_144 = { + sizeof(struct DRXCycle_ExtIEs__extensionValue), + offsetof(struct DRXCycle_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct DRXCycle_ExtIEs__extensionValue, present), + sizeof(((struct DRXCycle_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_144 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_144 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRXCycle_ExtIEs_141[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRXCycle_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_142, &asn_PER_memb_id_constr_142, memb_id_constraint_141 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRXCycle_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_143, &asn_PER_memb_criticality_constr_143, memb_criticality_constraint_141 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DRXCycle_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_144, + 0, + { &asn_OER_memb_extensionValue_constr_144, &asn_PER_memb_extensionValue_constr_144, memb_extensionValue_constraint_141 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRXCycle_ExtIEs_tags_141[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRXCycle_ExtIEs_tag2el_141[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRXCycle_ExtIEs_specs_141 = { + sizeof(struct DRXCycle_ExtIEs), + offsetof(struct DRXCycle_ExtIEs, _asn_ctx), + asn_MAP_DRXCycle_ExtIEs_tag2el_141, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRXCycle_ExtIEs = { + "DRXCycle-ExtIEs", + "DRXCycle-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRXCycle_ExtIEs_tags_141, + sizeof(asn_DEF_DRXCycle_ExtIEs_tags_141) + /sizeof(asn_DEF_DRXCycle_ExtIEs_tags_141[0]), /* 1 */ + asn_DEF_DRXCycle_ExtIEs_tags_141, /* Same as above */ + sizeof(asn_DEF_DRXCycle_ExtIEs_tags_141) + /sizeof(asn_DEF_DRXCycle_ExtIEs_tags_141[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRXCycle_ExtIEs_141, + 3, /* Elements count */ + &asn_SPC_DRXCycle_ExtIEs_specs_141 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_extensionValue_148[] = { + { ATF_NOFLAGS, 0, offsetof(struct DUtoCURRCInformation_ExtIEs__extensionValue, choice.DRX_LongCycleStartOffset), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_DRX_LongCycleStartOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRX-LongCycleStartOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct DUtoCURRCInformation_ExtIEs__extensionValue, choice.SelectedBandCombinationIndex), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_SelectedBandCombinationIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SelectedBandCombinationIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct DUtoCURRCInformation_ExtIEs__extensionValue, choice.SelectedFeatureSetEntryIndex), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_SelectedFeatureSetEntryIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SelectedFeatureSetEntryIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct DUtoCURRCInformation_ExtIEs__extensionValue, choice.Ph_InfoSCG), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_Ph_InfoSCG, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Ph-InfoSCG" + }, + { ATF_NOFLAGS, 0, offsetof(struct DUtoCURRCInformation_ExtIEs__extensionValue, choice.RequestedBandCombinationIndex), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RequestedBandCombinationIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RequestedBandCombinationIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct DUtoCURRCInformation_ExtIEs__extensionValue, choice.RequestedFeatureSetEntryIndex), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RequestedFeatureSetEntryIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RequestedFeatureSetEntryIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct DUtoCURRCInformation_ExtIEs__extensionValue, choice.RequestedP_MaxFR2), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RequestedP_MaxFR2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RequestedP-MaxFR2" + }, + { ATF_NOFLAGS, 0, offsetof(struct DUtoCURRCInformation_ExtIEs__extensionValue, choice.DRX_Config), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_DRX_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRX-Config" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_148[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* DRX-LongCycleStartOffset */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 1, 0, 6 }, /* SelectedBandCombinationIndex */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, -1, 5 }, /* SelectedFeatureSetEntryIndex */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, -2, 4 }, /* Ph-InfoSCG */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -3, 3 }, /* RequestedBandCombinationIndex */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 5, -4, 2 }, /* RequestedFeatureSetEntryIndex */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 6, -5, 1 }, /* RequestedP-MaxFR2 */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 7, -6, 0 } /* DRX-Config */ +}; +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_148 = { + sizeof(struct DUtoCURRCInformation_ExtIEs__extensionValue), + offsetof(struct DUtoCURRCInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct DUtoCURRCInformation_ExtIEs__extensionValue, present), + sizeof(((struct DUtoCURRCInformation_ExtIEs__extensionValue *)0)->present), + asn_MAP_extensionValue_tag2el_148, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_148 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_extensionValue_148, + 8, /* Elements count */ + &asn_SPC_extensionValue_specs_148 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DUtoCURRCInformation_ExtIEs_145[] = { + { ATF_NOFLAGS, 0, offsetof(struct DUtoCURRCInformation_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_146, &asn_PER_memb_id_constr_146, memb_id_constraint_145 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DUtoCURRCInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_DUtoCURRCInformation_ExtIEs_criticality_type, + { &asn_OER_memb_criticality_constr_147, &asn_PER_memb_criticality_constr_147, memb_criticality_constraint_145 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DUtoCURRCInformation_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_148, + select_DUtoCURRCInformation_ExtIEs_extensionValue_type, + { &asn_OER_memb_extensionValue_constr_148, &asn_PER_memb_extensionValue_constr_148, memb_extensionValue_constraint_145 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_DUtoCURRCInformation_ExtIEs_tags_145[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DUtoCURRCInformation_ExtIEs_tag2el_145[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DUtoCURRCInformation_ExtIEs_specs_145 = { + sizeof(struct DUtoCURRCInformation_ExtIEs), + offsetof(struct DUtoCURRCInformation_ExtIEs, _asn_ctx), + asn_MAP_DUtoCURRCInformation_ExtIEs_tag2el_145, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DUtoCURRCInformation_ExtIEs = { + "DUtoCURRCInformation-ExtIEs", + "DUtoCURRCInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_DUtoCURRCInformation_ExtIEs_tags_145, + sizeof(asn_DEF_DUtoCURRCInformation_ExtIEs_tags_145) + /sizeof(asn_DEF_DUtoCURRCInformation_ExtIEs_tags_145[0]), /* 1 */ + asn_DEF_DUtoCURRCInformation_ExtIEs_tags_145, /* Same as above */ + sizeof(asn_DEF_DUtoCURRCInformation_ExtIEs_tags_145) + /sizeof(asn_DEF_DUtoCURRCInformation_ExtIEs_tags_145[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DUtoCURRCInformation_ExtIEs_145, + 3, /* Elements count */ + &asn_SPC_DUtoCURRCInformation_ExtIEs_specs_145 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_152 = { + sizeof(struct Dynamic5QIDescriptor_ExtIEs__extensionValue), + offsetof(struct Dynamic5QIDescriptor_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct Dynamic5QIDescriptor_ExtIEs__extensionValue, present), + sizeof(((struct Dynamic5QIDescriptor_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_152 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_152 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Dynamic5QIDescriptor_ExtIEs_149[] = { + { ATF_NOFLAGS, 0, offsetof(struct Dynamic5QIDescriptor_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_150, &asn_PER_memb_id_constr_150, memb_id_constraint_149 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Dynamic5QIDescriptor_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_151, &asn_PER_memb_criticality_constr_151, memb_criticality_constraint_149 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Dynamic5QIDescriptor_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_152, + 0, + { &asn_OER_memb_extensionValue_constr_152, &asn_PER_memb_extensionValue_constr_152, memb_extensionValue_constraint_149 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Dynamic5QIDescriptor_ExtIEs_tags_149[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Dynamic5QIDescriptor_ExtIEs_tag2el_149[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Dynamic5QIDescriptor_ExtIEs_specs_149 = { + sizeof(struct Dynamic5QIDescriptor_ExtIEs), + offsetof(struct Dynamic5QIDescriptor_ExtIEs, _asn_ctx), + asn_MAP_Dynamic5QIDescriptor_ExtIEs_tag2el_149, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Dynamic5QIDescriptor_ExtIEs = { + "Dynamic5QIDescriptor-ExtIEs", + "Dynamic5QIDescriptor-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_Dynamic5QIDescriptor_ExtIEs_tags_149, + sizeof(asn_DEF_Dynamic5QIDescriptor_ExtIEs_tags_149) + /sizeof(asn_DEF_Dynamic5QIDescriptor_ExtIEs_tags_149[0]), /* 1 */ + asn_DEF_Dynamic5QIDescriptor_ExtIEs_tags_149, /* Same as above */ + sizeof(asn_DEF_Dynamic5QIDescriptor_ExtIEs_tags_149) + /sizeof(asn_DEF_Dynamic5QIDescriptor_ExtIEs_tags_149[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Dynamic5QIDescriptor_ExtIEs_149, + 3, /* Elements count */ + &asn_SPC_Dynamic5QIDescriptor_ExtIEs_specs_149 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_156 = { + sizeof(struct Endpoint_IP_address_and_port_ExtIEs__extensionValue), + offsetof(struct Endpoint_IP_address_and_port_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct Endpoint_IP_address_and_port_ExtIEs__extensionValue, present), + sizeof(((struct Endpoint_IP_address_and_port_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_156 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_156 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Endpoint_IP_address_and_port_ExtIEs_153[] = { + { ATF_NOFLAGS, 0, offsetof(struct Endpoint_IP_address_and_port_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_154, &asn_PER_memb_id_constr_154, memb_id_constraint_153 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Endpoint_IP_address_and_port_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_155, &asn_PER_memb_criticality_constr_155, memb_criticality_constraint_153 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Endpoint_IP_address_and_port_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_156, + 0, + { &asn_OER_memb_extensionValue_constr_156, &asn_PER_memb_extensionValue_constr_156, memb_extensionValue_constraint_153 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Endpoint_IP_address_and_port_ExtIEs_tags_153[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Endpoint_IP_address_and_port_ExtIEs_tag2el_153[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Endpoint_IP_address_and_port_ExtIEs_specs_153 = { + sizeof(struct Endpoint_IP_address_and_port_ExtIEs), + offsetof(struct Endpoint_IP_address_and_port_ExtIEs, _asn_ctx), + asn_MAP_Endpoint_IP_address_and_port_ExtIEs_tag2el_153, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Endpoint_IP_address_and_port_ExtIEs = { + "Endpoint-IP-address-and-port-ExtIEs", + "Endpoint-IP-address-and-port-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_Endpoint_IP_address_and_port_ExtIEs_tags_153, + sizeof(asn_DEF_Endpoint_IP_address_and_port_ExtIEs_tags_153) + /sizeof(asn_DEF_Endpoint_IP_address_and_port_ExtIEs_tags_153[0]), /* 1 */ + asn_DEF_Endpoint_IP_address_and_port_ExtIEs_tags_153, /* Same as above */ + sizeof(asn_DEF_Endpoint_IP_address_and_port_ExtIEs_tags_153) + /sizeof(asn_DEF_Endpoint_IP_address_and_port_ExtIEs_tags_153[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Endpoint_IP_address_and_port_ExtIEs_153, + 3, /* Elements count */ + &asn_SPC_Endpoint_IP_address_and_port_ExtIEs_specs_153 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_160 = { + sizeof(struct ExtendedAvailablePLMN_Item_ExtIEs__extensionValue), + offsetof(struct ExtendedAvailablePLMN_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ExtendedAvailablePLMN_Item_ExtIEs__extensionValue, present), + sizeof(((struct ExtendedAvailablePLMN_Item_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_160 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_160 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ExtendedAvailablePLMN_Item_ExtIEs_157[] = { + { ATF_NOFLAGS, 0, offsetof(struct ExtendedAvailablePLMN_Item_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_158, &asn_PER_memb_id_constr_158, memb_id_constraint_157 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ExtendedAvailablePLMN_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_159, &asn_PER_memb_criticality_constr_159, memb_criticality_constraint_157 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ExtendedAvailablePLMN_Item_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_160, + 0, + { &asn_OER_memb_extensionValue_constr_160, &asn_PER_memb_extensionValue_constr_160, memb_extensionValue_constraint_157 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ExtendedAvailablePLMN_Item_ExtIEs_tags_157[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ExtendedAvailablePLMN_Item_ExtIEs_tag2el_157[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ExtendedAvailablePLMN_Item_ExtIEs_specs_157 = { + sizeof(struct ExtendedAvailablePLMN_Item_ExtIEs), + offsetof(struct ExtendedAvailablePLMN_Item_ExtIEs, _asn_ctx), + asn_MAP_ExtendedAvailablePLMN_Item_ExtIEs_tag2el_157, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ExtendedAvailablePLMN_Item_ExtIEs = { + "ExtendedAvailablePLMN-Item-ExtIEs", + "ExtendedAvailablePLMN-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ExtendedAvailablePLMN_Item_ExtIEs_tags_157, + sizeof(asn_DEF_ExtendedAvailablePLMN_Item_ExtIEs_tags_157) + /sizeof(asn_DEF_ExtendedAvailablePLMN_Item_ExtIEs_tags_157[0]), /* 1 */ + asn_DEF_ExtendedAvailablePLMN_Item_ExtIEs_tags_157, /* Same as above */ + sizeof(asn_DEF_ExtendedAvailablePLMN_Item_ExtIEs_tags_157) + /sizeof(asn_DEF_ExtendedAvailablePLMN_Item_ExtIEs_tags_157[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ExtendedAvailablePLMN_Item_ExtIEs_157, + 3, /* Elements count */ + &asn_SPC_ExtendedAvailablePLMN_Item_ExtIEs_specs_157 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_164 = { + sizeof(struct ExtendedServedPLMNs_ItemExtIEs__extensionValue), + offsetof(struct ExtendedServedPLMNs_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct ExtendedServedPLMNs_ItemExtIEs__extensionValue, present), + sizeof(((struct ExtendedServedPLMNs_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_164 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_164 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ExtendedServedPLMNs_ItemExtIEs_161[] = { + { ATF_NOFLAGS, 0, offsetof(struct ExtendedServedPLMNs_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_162, &asn_PER_memb_id_constr_162, memb_id_constraint_161 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ExtendedServedPLMNs_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_163, &asn_PER_memb_criticality_constr_163, memb_criticality_constraint_161 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ExtendedServedPLMNs_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_164, + 0, + { &asn_OER_memb_extensionValue_constr_164, &asn_PER_memb_extensionValue_constr_164, memb_extensionValue_constraint_161 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ExtendedServedPLMNs_ItemExtIEs_tags_161[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ExtendedServedPLMNs_ItemExtIEs_tag2el_161[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ExtendedServedPLMNs_ItemExtIEs_specs_161 = { + sizeof(struct ExtendedServedPLMNs_ItemExtIEs), + offsetof(struct ExtendedServedPLMNs_ItemExtIEs, _asn_ctx), + asn_MAP_ExtendedServedPLMNs_ItemExtIEs_tag2el_161, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ExtendedServedPLMNs_ItemExtIEs = { + "ExtendedServedPLMNs-ItemExtIEs", + "ExtendedServedPLMNs-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ExtendedServedPLMNs_ItemExtIEs_tags_161, + sizeof(asn_DEF_ExtendedServedPLMNs_ItemExtIEs_tags_161) + /sizeof(asn_DEF_ExtendedServedPLMNs_ItemExtIEs_tags_161[0]), /* 1 */ + asn_DEF_ExtendedServedPLMNs_ItemExtIEs_tags_161, /* Same as above */ + sizeof(asn_DEF_ExtendedServedPLMNs_ItemExtIEs_tags_161) + /sizeof(asn_DEF_ExtendedServedPLMNs_ItemExtIEs_tags_161[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ExtendedServedPLMNs_ItemExtIEs_161, + 3, /* Elements count */ + &asn_SPC_ExtendedServedPLMNs_ItemExtIEs_specs_161 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_168 = { + sizeof(struct EUTRACells_List_itemExtIEs__extensionValue), + offsetof(struct EUTRACells_List_itemExtIEs__extensionValue, _asn_ctx), + offsetof(struct EUTRACells_List_itemExtIEs__extensionValue, present), + sizeof(((struct EUTRACells_List_itemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_168 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_168 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_EUTRACells_List_itemExtIEs_165[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRACells_List_itemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_166, &asn_PER_memb_id_constr_166, memb_id_constraint_165 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRACells_List_itemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_167, &asn_PER_memb_criticality_constr_167, memb_criticality_constraint_165 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct EUTRACells_List_itemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_168, + 0, + { &asn_OER_memb_extensionValue_constr_168, &asn_PER_memb_extensionValue_constr_168, memb_extensionValue_constraint_165 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_EUTRACells_List_itemExtIEs_tags_165[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EUTRACells_List_itemExtIEs_tag2el_165[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EUTRACells_List_itemExtIEs_specs_165 = { + sizeof(struct EUTRACells_List_itemExtIEs), + offsetof(struct EUTRACells_List_itemExtIEs, _asn_ctx), + asn_MAP_EUTRACells_List_itemExtIEs_tag2el_165, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRACells_List_itemExtIEs = { + "EUTRACells-List-itemExtIEs", + "EUTRACells-List-itemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_EUTRACells_List_itemExtIEs_tags_165, + sizeof(asn_DEF_EUTRACells_List_itemExtIEs_tags_165) + /sizeof(asn_DEF_EUTRACells_List_itemExtIEs_tags_165[0]), /* 1 */ + asn_DEF_EUTRACells_List_itemExtIEs_tags_165, /* Same as above */ + sizeof(asn_DEF_EUTRACells_List_itemExtIEs_tags_165) + /sizeof(asn_DEF_EUTRACells_List_itemExtIEs_tags_165[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRACells_List_itemExtIEs_165, + 3, /* Elements count */ + &asn_SPC_EUTRACells_List_itemExtIEs_specs_165 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_172 = { + sizeof(struct EUTRA_Coex_FDD_Info_ExtIEs__extensionValue), + offsetof(struct EUTRA_Coex_FDD_Info_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct EUTRA_Coex_FDD_Info_ExtIEs__extensionValue, present), + sizeof(((struct EUTRA_Coex_FDD_Info_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_172 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_172 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_EUTRA_Coex_FDD_Info_ExtIEs_169[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_Coex_FDD_Info_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_170, &asn_PER_memb_id_constr_170, memb_id_constraint_169 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_Coex_FDD_Info_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_171, &asn_PER_memb_criticality_constr_171, memb_criticality_constraint_169 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct EUTRA_Coex_FDD_Info_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_172, + 0, + { &asn_OER_memb_extensionValue_constr_172, &asn_PER_memb_extensionValue_constr_172, memb_extensionValue_constraint_169 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_EUTRA_Coex_FDD_Info_ExtIEs_tags_169[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EUTRA_Coex_FDD_Info_ExtIEs_tag2el_169[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EUTRA_Coex_FDD_Info_ExtIEs_specs_169 = { + sizeof(struct EUTRA_Coex_FDD_Info_ExtIEs), + offsetof(struct EUTRA_Coex_FDD_Info_ExtIEs, _asn_ctx), + asn_MAP_EUTRA_Coex_FDD_Info_ExtIEs_tag2el_169, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_Coex_FDD_Info_ExtIEs = { + "EUTRA-Coex-FDD-Info-ExtIEs", + "EUTRA-Coex-FDD-Info-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_EUTRA_Coex_FDD_Info_ExtIEs_tags_169, + sizeof(asn_DEF_EUTRA_Coex_FDD_Info_ExtIEs_tags_169) + /sizeof(asn_DEF_EUTRA_Coex_FDD_Info_ExtIEs_tags_169[0]), /* 1 */ + asn_DEF_EUTRA_Coex_FDD_Info_ExtIEs_tags_169, /* Same as above */ + sizeof(asn_DEF_EUTRA_Coex_FDD_Info_ExtIEs_tags_169) + /sizeof(asn_DEF_EUTRA_Coex_FDD_Info_ExtIEs_tags_169[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRA_Coex_FDD_Info_ExtIEs_169, + 3, /* Elements count */ + &asn_SPC_EUTRA_Coex_FDD_Info_ExtIEs_specs_169 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_176 = { + sizeof(struct EUTRA_Coex_TDD_Info_ExtIEs__extensionValue), + offsetof(struct EUTRA_Coex_TDD_Info_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct EUTRA_Coex_TDD_Info_ExtIEs__extensionValue, present), + sizeof(((struct EUTRA_Coex_TDD_Info_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_176 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_176 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_EUTRA_Coex_TDD_Info_ExtIEs_173[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_Coex_TDD_Info_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_174, &asn_PER_memb_id_constr_174, memb_id_constraint_173 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_Coex_TDD_Info_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_175, &asn_PER_memb_criticality_constr_175, memb_criticality_constraint_173 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct EUTRA_Coex_TDD_Info_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_176, + 0, + { &asn_OER_memb_extensionValue_constr_176, &asn_PER_memb_extensionValue_constr_176, memb_extensionValue_constraint_173 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_EUTRA_Coex_TDD_Info_ExtIEs_tags_173[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EUTRA_Coex_TDD_Info_ExtIEs_tag2el_173[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EUTRA_Coex_TDD_Info_ExtIEs_specs_173 = { + sizeof(struct EUTRA_Coex_TDD_Info_ExtIEs), + offsetof(struct EUTRA_Coex_TDD_Info_ExtIEs, _asn_ctx), + asn_MAP_EUTRA_Coex_TDD_Info_ExtIEs_tag2el_173, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_Coex_TDD_Info_ExtIEs = { + "EUTRA-Coex-TDD-Info-ExtIEs", + "EUTRA-Coex-TDD-Info-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_EUTRA_Coex_TDD_Info_ExtIEs_tags_173, + sizeof(asn_DEF_EUTRA_Coex_TDD_Info_ExtIEs_tags_173) + /sizeof(asn_DEF_EUTRA_Coex_TDD_Info_ExtIEs_tags_173[0]), /* 1 */ + asn_DEF_EUTRA_Coex_TDD_Info_ExtIEs_tags_173, /* Same as above */ + sizeof(asn_DEF_EUTRA_Coex_TDD_Info_ExtIEs_tags_173) + /sizeof(asn_DEF_EUTRA_Coex_TDD_Info_ExtIEs_tags_173[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRA_Coex_TDD_Info_ExtIEs_173, + 3, /* Elements count */ + &asn_SPC_EUTRA_Coex_TDD_Info_ExtIEs_specs_173 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_180 = { + sizeof(struct EUTRA_PRACH_Configuration_ExtIEs__extensionValue), + offsetof(struct EUTRA_PRACH_Configuration_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct EUTRA_PRACH_Configuration_ExtIEs__extensionValue, present), + sizeof(((struct EUTRA_PRACH_Configuration_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_180 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_180 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_EUTRA_PRACH_Configuration_ExtIEs_177[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_PRACH_Configuration_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_178, &asn_PER_memb_id_constr_178, memb_id_constraint_177 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_PRACH_Configuration_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_179, &asn_PER_memb_criticality_constr_179, memb_criticality_constraint_177 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct EUTRA_PRACH_Configuration_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_180, + 0, + { &asn_OER_memb_extensionValue_constr_180, &asn_PER_memb_extensionValue_constr_180, memb_extensionValue_constraint_177 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_EUTRA_PRACH_Configuration_ExtIEs_tags_177[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EUTRA_PRACH_Configuration_ExtIEs_tag2el_177[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EUTRA_PRACH_Configuration_ExtIEs_specs_177 = { + sizeof(struct EUTRA_PRACH_Configuration_ExtIEs), + offsetof(struct EUTRA_PRACH_Configuration_ExtIEs, _asn_ctx), + asn_MAP_EUTRA_PRACH_Configuration_ExtIEs_tag2el_177, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_PRACH_Configuration_ExtIEs = { + "EUTRA-PRACH-Configuration-ExtIEs", + "EUTRA-PRACH-Configuration-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_EUTRA_PRACH_Configuration_ExtIEs_tags_177, + sizeof(asn_DEF_EUTRA_PRACH_Configuration_ExtIEs_tags_177) + /sizeof(asn_DEF_EUTRA_PRACH_Configuration_ExtIEs_tags_177[0]), /* 1 */ + asn_DEF_EUTRA_PRACH_Configuration_ExtIEs_tags_177, /* Same as above */ + sizeof(asn_DEF_EUTRA_PRACH_Configuration_ExtIEs_tags_177) + /sizeof(asn_DEF_EUTRA_PRACH_Configuration_ExtIEs_tags_177[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRA_PRACH_Configuration_ExtIEs_177, + 3, /* Elements count */ + &asn_SPC_EUTRA_PRACH_Configuration_ExtIEs_specs_177 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_184 = { + sizeof(struct EUTRA_SpecialSubframe_Info_ExtIEs__extensionValue), + offsetof(struct EUTRA_SpecialSubframe_Info_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct EUTRA_SpecialSubframe_Info_ExtIEs__extensionValue, present), + sizeof(((struct EUTRA_SpecialSubframe_Info_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_184 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_184 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_EUTRA_SpecialSubframe_Info_ExtIEs_181[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_SpecialSubframe_Info_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_182, &asn_PER_memb_id_constr_182, memb_id_constraint_181 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_SpecialSubframe_Info_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_183, &asn_PER_memb_criticality_constr_183, memb_criticality_constraint_181 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct EUTRA_SpecialSubframe_Info_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_184, + 0, + { &asn_OER_memb_extensionValue_constr_184, &asn_PER_memb_extensionValue_constr_184, memb_extensionValue_constraint_181 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_EUTRA_SpecialSubframe_Info_ExtIEs_tags_181[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EUTRA_SpecialSubframe_Info_ExtIEs_tag2el_181[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EUTRA_SpecialSubframe_Info_ExtIEs_specs_181 = { + sizeof(struct EUTRA_SpecialSubframe_Info_ExtIEs), + offsetof(struct EUTRA_SpecialSubframe_Info_ExtIEs, _asn_ctx), + asn_MAP_EUTRA_SpecialSubframe_Info_ExtIEs_tag2el_181, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_SpecialSubframe_Info_ExtIEs = { + "EUTRA-SpecialSubframe-Info-ExtIEs", + "EUTRA-SpecialSubframe-Info-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_EUTRA_SpecialSubframe_Info_ExtIEs_tags_181, + sizeof(asn_DEF_EUTRA_SpecialSubframe_Info_ExtIEs_tags_181) + /sizeof(asn_DEF_EUTRA_SpecialSubframe_Info_ExtIEs_tags_181[0]), /* 1 */ + asn_DEF_EUTRA_SpecialSubframe_Info_ExtIEs_tags_181, /* Same as above */ + sizeof(asn_DEF_EUTRA_SpecialSubframe_Info_ExtIEs_tags_181) + /sizeof(asn_DEF_EUTRA_SpecialSubframe_Info_ExtIEs_tags_181[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRA_SpecialSubframe_Info_ExtIEs_181, + 3, /* Elements count */ + &asn_SPC_EUTRA_SpecialSubframe_Info_ExtIEs_specs_181 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_188 = { + sizeof(struct EUTRANQoS_ExtIEs__extensionValue), + offsetof(struct EUTRANQoS_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct EUTRANQoS_ExtIEs__extensionValue, present), + sizeof(((struct EUTRANQoS_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_188 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_188 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_EUTRANQoS_ExtIEs_185[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRANQoS_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_186, &asn_PER_memb_id_constr_186, memb_id_constraint_185 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRANQoS_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_187, &asn_PER_memb_criticality_constr_187, memb_criticality_constraint_185 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct EUTRANQoS_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_188, + 0, + { &asn_OER_memb_extensionValue_constr_188, &asn_PER_memb_extensionValue_constr_188, memb_extensionValue_constraint_185 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_EUTRANQoS_ExtIEs_tags_185[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EUTRANQoS_ExtIEs_tag2el_185[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EUTRANQoS_ExtIEs_specs_185 = { + sizeof(struct EUTRANQoS_ExtIEs), + offsetof(struct EUTRANQoS_ExtIEs, _asn_ctx), + asn_MAP_EUTRANQoS_ExtIEs_tag2el_185, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRANQoS_ExtIEs = { + "EUTRANQoS-ExtIEs", + "EUTRANQoS-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_EUTRANQoS_ExtIEs_tags_185, + sizeof(asn_DEF_EUTRANQoS_ExtIEs_tags_185) + /sizeof(asn_DEF_EUTRANQoS_ExtIEs_tags_185[0]), /* 1 */ + asn_DEF_EUTRANQoS_ExtIEs_tags_185, /* Same as above */ + sizeof(asn_DEF_EUTRANQoS_ExtIEs_tags_185) + /sizeof(asn_DEF_EUTRANQoS_ExtIEs_tags_185[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRANQoS_ExtIEs_185, + 3, /* Elements count */ + &asn_SPC_EUTRANQoS_ExtIEs_specs_185 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_192 = { + sizeof(struct EUTRA_FDD_Info_ExtIEs__extensionValue), + offsetof(struct EUTRA_FDD_Info_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct EUTRA_FDD_Info_ExtIEs__extensionValue, present), + sizeof(((struct EUTRA_FDD_Info_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_192 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_192 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_EUTRA_FDD_Info_ExtIEs_189[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_FDD_Info_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_190, &asn_PER_memb_id_constr_190, memb_id_constraint_189 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_FDD_Info_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_191, &asn_PER_memb_criticality_constr_191, memb_criticality_constraint_189 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct EUTRA_FDD_Info_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_192, + 0, + { &asn_OER_memb_extensionValue_constr_192, &asn_PER_memb_extensionValue_constr_192, memb_extensionValue_constraint_189 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_EUTRA_FDD_Info_ExtIEs_tags_189[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EUTRA_FDD_Info_ExtIEs_tag2el_189[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EUTRA_FDD_Info_ExtIEs_specs_189 = { + sizeof(struct EUTRA_FDD_Info_ExtIEs), + offsetof(struct EUTRA_FDD_Info_ExtIEs, _asn_ctx), + asn_MAP_EUTRA_FDD_Info_ExtIEs_tag2el_189, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_FDD_Info_ExtIEs = { + "EUTRA-FDD-Info-ExtIEs", + "EUTRA-FDD-Info-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_EUTRA_FDD_Info_ExtIEs_tags_189, + sizeof(asn_DEF_EUTRA_FDD_Info_ExtIEs_tags_189) + /sizeof(asn_DEF_EUTRA_FDD_Info_ExtIEs_tags_189[0]), /* 1 */ + asn_DEF_EUTRA_FDD_Info_ExtIEs_tags_189, /* Same as above */ + sizeof(asn_DEF_EUTRA_FDD_Info_ExtIEs_tags_189) + /sizeof(asn_DEF_EUTRA_FDD_Info_ExtIEs_tags_189[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRA_FDD_Info_ExtIEs_189, + 3, /* Elements count */ + &asn_SPC_EUTRA_FDD_Info_ExtIEs_specs_189 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_196 = { + sizeof(struct EUTRA_TDD_Info_ExtIEs__extensionValue), + offsetof(struct EUTRA_TDD_Info_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct EUTRA_TDD_Info_ExtIEs__extensionValue, present), + sizeof(((struct EUTRA_TDD_Info_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_196 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_196 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_EUTRA_TDD_Info_ExtIEs_193[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_TDD_Info_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_194, &asn_PER_memb_id_constr_194, memb_id_constraint_193 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_TDD_Info_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_195, &asn_PER_memb_criticality_constr_195, memb_criticality_constraint_193 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct EUTRA_TDD_Info_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_196, + 0, + { &asn_OER_memb_extensionValue_constr_196, &asn_PER_memb_extensionValue_constr_196, memb_extensionValue_constraint_193 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_EUTRA_TDD_Info_ExtIEs_tags_193[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EUTRA_TDD_Info_ExtIEs_tag2el_193[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EUTRA_TDD_Info_ExtIEs_specs_193 = { + sizeof(struct EUTRA_TDD_Info_ExtIEs), + offsetof(struct EUTRA_TDD_Info_ExtIEs, _asn_ctx), + asn_MAP_EUTRA_TDD_Info_ExtIEs_tag2el_193, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_TDD_Info_ExtIEs = { + "EUTRA-TDD-Info-ExtIEs", + "EUTRA-TDD-Info-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_EUTRA_TDD_Info_ExtIEs_tags_193, + sizeof(asn_DEF_EUTRA_TDD_Info_ExtIEs_tags_193) + /sizeof(asn_DEF_EUTRA_TDD_Info_ExtIEs_tags_193[0]), /* 1 */ + asn_DEF_EUTRA_TDD_Info_ExtIEs_tags_193, /* Same as above */ + sizeof(asn_DEF_EUTRA_TDD_Info_ExtIEs_tags_193) + /sizeof(asn_DEF_EUTRA_TDD_Info_ExtIEs_tags_193[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRA_TDD_Info_ExtIEs_193, + 3, /* Elements count */ + &asn_SPC_EUTRA_TDD_Info_ExtIEs_specs_193 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_200 = { + sizeof(struct FDD_Info_ExtIEs__extensionValue), + offsetof(struct FDD_Info_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct FDD_Info_ExtIEs__extensionValue, present), + sizeof(((struct FDD_Info_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_200 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_200 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_FDD_Info_ExtIEs_197[] = { + { ATF_NOFLAGS, 0, offsetof(struct FDD_Info_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_198, &asn_PER_memb_id_constr_198, memb_id_constraint_197 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct FDD_Info_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_199, &asn_PER_memb_criticality_constr_199, memb_criticality_constraint_197 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct FDD_Info_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_200, + 0, + { &asn_OER_memb_extensionValue_constr_200, &asn_PER_memb_extensionValue_constr_200, memb_extensionValue_constraint_197 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_FDD_Info_ExtIEs_tags_197[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_FDD_Info_ExtIEs_tag2el_197[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_FDD_Info_ExtIEs_specs_197 = { + sizeof(struct FDD_Info_ExtIEs), + offsetof(struct FDD_Info_ExtIEs, _asn_ctx), + asn_MAP_FDD_Info_ExtIEs_tag2el_197, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FDD_Info_ExtIEs = { + "FDD-Info-ExtIEs", + "FDD-Info-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_FDD_Info_ExtIEs_tags_197, + sizeof(asn_DEF_FDD_Info_ExtIEs_tags_197) + /sizeof(asn_DEF_FDD_Info_ExtIEs_tags_197[0]), /* 1 */ + asn_DEF_FDD_Info_ExtIEs_tags_197, /* Same as above */ + sizeof(asn_DEF_FDD_Info_ExtIEs_tags_197) + /sizeof(asn_DEF_FDD_Info_ExtIEs_tags_197[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FDD_Info_ExtIEs_197, + 3, /* Elements count */ + &asn_SPC_FDD_Info_ExtIEs_specs_197 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_extensionValue_204[] = { + { ATF_NOFLAGS, 0, offsetof(struct Flows_Mapped_To_DRB_ItemExtIEs__extensionValue, choice.QoSFlowMappingIndication), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_QoSFlowMappingIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "QoSFlowMappingIndication" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_204[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* QoSFlowMappingIndication */ +}; +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_204 = { + sizeof(struct Flows_Mapped_To_DRB_ItemExtIEs__extensionValue), + offsetof(struct Flows_Mapped_To_DRB_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct Flows_Mapped_To_DRB_ItemExtIEs__extensionValue, present), + sizeof(((struct Flows_Mapped_To_DRB_ItemExtIEs__extensionValue *)0)->present), + asn_MAP_extensionValue_tag2el_204, + 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_extensionValue_204 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_extensionValue_204, + 1, /* Elements count */ + &asn_SPC_extensionValue_specs_204 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Flows_Mapped_To_DRB_ItemExtIEs_201[] = { + { ATF_NOFLAGS, 0, offsetof(struct Flows_Mapped_To_DRB_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_202, &asn_PER_memb_id_constr_202, memb_id_constraint_201 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Flows_Mapped_To_DRB_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_Flows_Mapped_To_DRB_ItemExtIEs_criticality_type, + { &asn_OER_memb_criticality_constr_203, &asn_PER_memb_criticality_constr_203, memb_criticality_constraint_201 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Flows_Mapped_To_DRB_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_204, + select_Flows_Mapped_To_DRB_ItemExtIEs_extensionValue_type, + { &asn_OER_memb_extensionValue_constr_204, &asn_PER_memb_extensionValue_constr_204, memb_extensionValue_constraint_201 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Flows_Mapped_To_DRB_ItemExtIEs_tags_201[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Flows_Mapped_To_DRB_ItemExtIEs_tag2el_201[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Flows_Mapped_To_DRB_ItemExtIEs_specs_201 = { + sizeof(struct Flows_Mapped_To_DRB_ItemExtIEs), + offsetof(struct Flows_Mapped_To_DRB_ItemExtIEs, _asn_ctx), + asn_MAP_Flows_Mapped_To_DRB_ItemExtIEs_tag2el_201, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Flows_Mapped_To_DRB_ItemExtIEs = { + "Flows-Mapped-To-DRB-ItemExtIEs", + "Flows-Mapped-To-DRB-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_Flows_Mapped_To_DRB_ItemExtIEs_tags_201, + sizeof(asn_DEF_Flows_Mapped_To_DRB_ItemExtIEs_tags_201) + /sizeof(asn_DEF_Flows_Mapped_To_DRB_ItemExtIEs_tags_201[0]), /* 1 */ + asn_DEF_Flows_Mapped_To_DRB_ItemExtIEs_tags_201, /* Same as above */ + sizeof(asn_DEF_Flows_Mapped_To_DRB_ItemExtIEs_tags_201) + /sizeof(asn_DEF_Flows_Mapped_To_DRB_ItemExtIEs_tags_201[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Flows_Mapped_To_DRB_ItemExtIEs_201, + 3, /* Elements count */ + &asn_SPC_Flows_Mapped_To_DRB_ItemExtIEs_specs_201 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_208 = { + sizeof(struct FreqBandNrItem_ExtIEs__extensionValue), + offsetof(struct FreqBandNrItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct FreqBandNrItem_ExtIEs__extensionValue, present), + sizeof(((struct FreqBandNrItem_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_208 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_208 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_FreqBandNrItem_ExtIEs_205[] = { + { ATF_NOFLAGS, 0, offsetof(struct FreqBandNrItem_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_206, &asn_PER_memb_id_constr_206, memb_id_constraint_205 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreqBandNrItem_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_207, &asn_PER_memb_criticality_constr_207, memb_criticality_constraint_205 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct FreqBandNrItem_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_208, + 0, + { &asn_OER_memb_extensionValue_constr_208, &asn_PER_memb_extensionValue_constr_208, memb_extensionValue_constraint_205 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_FreqBandNrItem_ExtIEs_tags_205[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_FreqBandNrItem_ExtIEs_tag2el_205[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_FreqBandNrItem_ExtIEs_specs_205 = { + sizeof(struct FreqBandNrItem_ExtIEs), + offsetof(struct FreqBandNrItem_ExtIEs, _asn_ctx), + asn_MAP_FreqBandNrItem_ExtIEs_tag2el_205, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FreqBandNrItem_ExtIEs = { + "FreqBandNrItem-ExtIEs", + "FreqBandNrItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_FreqBandNrItem_ExtIEs_tags_205, + sizeof(asn_DEF_FreqBandNrItem_ExtIEs_tags_205) + /sizeof(asn_DEF_FreqBandNrItem_ExtIEs_tags_205[0]), /* 1 */ + asn_DEF_FreqBandNrItem_ExtIEs_tags_205, /* Same as above */ + sizeof(asn_DEF_FreqBandNrItem_ExtIEs_tags_205) + /sizeof(asn_DEF_FreqBandNrItem_ExtIEs_tags_205[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FreqBandNrItem_ExtIEs_205, + 3, /* Elements count */ + &asn_SPC_FreqBandNrItem_ExtIEs_specs_205 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_212 = { + sizeof(struct GBR_QosInformation_ExtIEs__extensionValue), + offsetof(struct GBR_QosInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct GBR_QosInformation_ExtIEs__extensionValue, present), + sizeof(((struct GBR_QosInformation_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_212 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_212 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GBR_QosInformation_ExtIEs_209[] = { + { ATF_NOFLAGS, 0, offsetof(struct GBR_QosInformation_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_210, &asn_PER_memb_id_constr_210, memb_id_constraint_209 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GBR_QosInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_211, &asn_PER_memb_criticality_constr_211, memb_criticality_constraint_209 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GBR_QosInformation_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_212, + 0, + { &asn_OER_memb_extensionValue_constr_212, &asn_PER_memb_extensionValue_constr_212, memb_extensionValue_constraint_209 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_GBR_QosInformation_ExtIEs_tags_209[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GBR_QosInformation_ExtIEs_tag2el_209[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GBR_QosInformation_ExtIEs_specs_209 = { + sizeof(struct GBR_QosInformation_ExtIEs), + offsetof(struct GBR_QosInformation_ExtIEs, _asn_ctx), + asn_MAP_GBR_QosInformation_ExtIEs_tag2el_209, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GBR_QosInformation_ExtIEs = { + "GBR-QosInformation-ExtIEs", + "GBR-QosInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_GBR_QosInformation_ExtIEs_tags_209, + sizeof(asn_DEF_GBR_QosInformation_ExtIEs_tags_209) + /sizeof(asn_DEF_GBR_QosInformation_ExtIEs_tags_209[0]), /* 1 */ + asn_DEF_GBR_QosInformation_ExtIEs_tags_209, /* Same as above */ + sizeof(asn_DEF_GBR_QosInformation_ExtIEs_tags_209) + /sizeof(asn_DEF_GBR_QosInformation_ExtIEs_tags_209[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GBR_QosInformation_ExtIEs_209, + 3, /* Elements count */ + &asn_SPC_GBR_QosInformation_ExtIEs_specs_209 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_216 = { + sizeof(struct GBR_QosFlowInformation_ExtIEs__extensionValue), + offsetof(struct GBR_QosFlowInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct GBR_QosFlowInformation_ExtIEs__extensionValue, present), + sizeof(((struct GBR_QosFlowInformation_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_216 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_216 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GBR_QosFlowInformation_ExtIEs_213[] = { + { ATF_NOFLAGS, 0, offsetof(struct GBR_QosFlowInformation_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_214, &asn_PER_memb_id_constr_214, memb_id_constraint_213 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GBR_QosFlowInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_215, &asn_PER_memb_criticality_constr_215, memb_criticality_constraint_213 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GBR_QosFlowInformation_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_216, + 0, + { &asn_OER_memb_extensionValue_constr_216, &asn_PER_memb_extensionValue_constr_216, memb_extensionValue_constraint_213 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_GBR_QosFlowInformation_ExtIEs_tags_213[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GBR_QosFlowInformation_ExtIEs_tag2el_213[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GBR_QosFlowInformation_ExtIEs_specs_213 = { + sizeof(struct GBR_QosFlowInformation_ExtIEs), + offsetof(struct GBR_QosFlowInformation_ExtIEs, _asn_ctx), + asn_MAP_GBR_QosFlowInformation_ExtIEs_tag2el_213, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GBR_QosFlowInformation_ExtIEs = { + "GBR-QosFlowInformation-ExtIEs", + "GBR-QosFlowInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_GBR_QosFlowInformation_ExtIEs_tags_213, + sizeof(asn_DEF_GBR_QosFlowInformation_ExtIEs_tags_213) + /sizeof(asn_DEF_GBR_QosFlowInformation_ExtIEs_tags_213[0]), /* 1 */ + asn_DEF_GBR_QosFlowInformation_ExtIEs_tags_213, /* Same as above */ + sizeof(asn_DEF_GBR_QosFlowInformation_ExtIEs_tags_213) + /sizeof(asn_DEF_GBR_QosFlowInformation_ExtIEs_tags_213[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GBR_QosFlowInformation_ExtIEs_213, + 3, /* Elements count */ + &asn_SPC_GBR_QosFlowInformation_ExtIEs_specs_213 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_220 = { + sizeof(struct GNB_CUSystemInformation_ExtIEs__extensionValue), + offsetof(struct GNB_CUSystemInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct GNB_CUSystemInformation_ExtIEs__extensionValue, present), + sizeof(((struct GNB_CUSystemInformation_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_220 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_220 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GNB_CUSystemInformation_ExtIEs_217[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_CUSystemInformation_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_218, &asn_PER_memb_id_constr_218, memb_id_constraint_217 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNB_CUSystemInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_219, &asn_PER_memb_criticality_constr_219, memb_criticality_constraint_217 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GNB_CUSystemInformation_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_220, + 0, + { &asn_OER_memb_extensionValue_constr_220, &asn_PER_memb_extensionValue_constr_220, memb_extensionValue_constraint_217 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNB_CUSystemInformation_ExtIEs_tags_217[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNB_CUSystemInformation_ExtIEs_tag2el_217[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNB_CUSystemInformation_ExtIEs_specs_217 = { + sizeof(struct GNB_CUSystemInformation_ExtIEs), + offsetof(struct GNB_CUSystemInformation_ExtIEs, _asn_ctx), + asn_MAP_GNB_CUSystemInformation_ExtIEs_tag2el_217, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_CUSystemInformation_ExtIEs = { + "GNB-CUSystemInformation-ExtIEs", + "GNB-CUSystemInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_GNB_CUSystemInformation_ExtIEs_tags_217, + sizeof(asn_DEF_GNB_CUSystemInformation_ExtIEs_tags_217) + /sizeof(asn_DEF_GNB_CUSystemInformation_ExtIEs_tags_217[0]), /* 1 */ + asn_DEF_GNB_CUSystemInformation_ExtIEs_tags_217, /* Same as above */ + sizeof(asn_DEF_GNB_CUSystemInformation_ExtIEs_tags_217) + /sizeof(asn_DEF_GNB_CUSystemInformation_ExtIEs_tags_217[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_CUSystemInformation_ExtIEs_217, + 3, /* Elements count */ + &asn_SPC_GNB_CUSystemInformation_ExtIEs_specs_217 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_224 = { + sizeof(struct GNB_CU_TNL_Association_Setup_Item_ExtIEs__extensionValue), + offsetof(struct GNB_CU_TNL_Association_Setup_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct GNB_CU_TNL_Association_Setup_Item_ExtIEs__extensionValue, present), + sizeof(((struct GNB_CU_TNL_Association_Setup_Item_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_224 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_224 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_Setup_Item_ExtIEs_221[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_Setup_Item_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_222, &asn_PER_memb_id_constr_222, memb_id_constraint_221 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_Setup_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_223, &asn_PER_memb_criticality_constr_223, memb_criticality_constraint_221 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_Setup_Item_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_224, + 0, + { &asn_OER_memb_extensionValue_constr_224, &asn_PER_memb_extensionValue_constr_224, memb_extensionValue_constraint_221 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNB_CU_TNL_Association_Setup_Item_ExtIEs_tags_221[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNB_CU_TNL_Association_Setup_Item_ExtIEs_tag2el_221[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNB_CU_TNL_Association_Setup_Item_ExtIEs_specs_221 = { + sizeof(struct GNB_CU_TNL_Association_Setup_Item_ExtIEs), + offsetof(struct GNB_CU_TNL_Association_Setup_Item_ExtIEs, _asn_ctx), + asn_MAP_GNB_CU_TNL_Association_Setup_Item_ExtIEs_tag2el_221, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_Setup_Item_ExtIEs = { + "GNB-CU-TNL-Association-Setup-Item-ExtIEs", + "GNB-CU-TNL-Association-Setup-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_GNB_CU_TNL_Association_Setup_Item_ExtIEs_tags_221, + sizeof(asn_DEF_GNB_CU_TNL_Association_Setup_Item_ExtIEs_tags_221) + /sizeof(asn_DEF_GNB_CU_TNL_Association_Setup_Item_ExtIEs_tags_221[0]), /* 1 */ + asn_DEF_GNB_CU_TNL_Association_Setup_Item_ExtIEs_tags_221, /* Same as above */ + sizeof(asn_DEF_GNB_CU_TNL_Association_Setup_Item_ExtIEs_tags_221) + /sizeof(asn_DEF_GNB_CU_TNL_Association_Setup_Item_ExtIEs_tags_221[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_CU_TNL_Association_Setup_Item_ExtIEs_221, + 3, /* Elements count */ + &asn_SPC_GNB_CU_TNL_Association_Setup_Item_ExtIEs_specs_221 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_228 = { + sizeof(struct GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs__extensionValue), + offsetof(struct GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs__extensionValue, present), + sizeof(((struct GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_228 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_228 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs_225[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_226, &asn_PER_memb_id_constr_226, memb_id_constraint_225 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_227, &asn_PER_memb_criticality_constr_227, memb_criticality_constraint_225 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_228, + 0, + { &asn_OER_memb_extensionValue_constr_228, &asn_PER_memb_extensionValue_constr_228, memb_extensionValue_constraint_225 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs_tags_225[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs_tag2el_225[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs_specs_225 = { + sizeof(struct GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs), + offsetof(struct GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs, _asn_ctx), + asn_MAP_GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs_tag2el_225, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs = { + "GNB-CU-TNL-Association-Failed-To-Setup-Item-ExtIEs", + "GNB-CU-TNL-Association-Failed-To-Setup-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs_tags_225, + sizeof(asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs_tags_225) + /sizeof(asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs_tags_225[0]), /* 1 */ + asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs_tags_225, /* Same as above */ + sizeof(asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs_tags_225) + /sizeof(asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs_tags_225[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs_225, + 3, /* Elements count */ + &asn_SPC_GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs_specs_225 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_232 = { + sizeof(struct GNB_CU_TNL_Association_To_Add_Item_ExtIEs__extensionValue), + offsetof(struct GNB_CU_TNL_Association_To_Add_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct GNB_CU_TNL_Association_To_Add_Item_ExtIEs__extensionValue, present), + sizeof(((struct GNB_CU_TNL_Association_To_Add_Item_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_232 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_232 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_To_Add_Item_ExtIEs_229[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_To_Add_Item_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_230, &asn_PER_memb_id_constr_230, memb_id_constraint_229 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_To_Add_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_231, &asn_PER_memb_criticality_constr_231, memb_criticality_constraint_229 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_To_Add_Item_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_232, + 0, + { &asn_OER_memb_extensionValue_constr_232, &asn_PER_memb_extensionValue_constr_232, memb_extensionValue_constraint_229 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNB_CU_TNL_Association_To_Add_Item_ExtIEs_tags_229[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNB_CU_TNL_Association_To_Add_Item_ExtIEs_tag2el_229[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNB_CU_TNL_Association_To_Add_Item_ExtIEs_specs_229 = { + sizeof(struct GNB_CU_TNL_Association_To_Add_Item_ExtIEs), + offsetof(struct GNB_CU_TNL_Association_To_Add_Item_ExtIEs, _asn_ctx), + asn_MAP_GNB_CU_TNL_Association_To_Add_Item_ExtIEs_tag2el_229, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_To_Add_Item_ExtIEs = { + "GNB-CU-TNL-Association-To-Add-Item-ExtIEs", + "GNB-CU-TNL-Association-To-Add-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_GNB_CU_TNL_Association_To_Add_Item_ExtIEs_tags_229, + sizeof(asn_DEF_GNB_CU_TNL_Association_To_Add_Item_ExtIEs_tags_229) + /sizeof(asn_DEF_GNB_CU_TNL_Association_To_Add_Item_ExtIEs_tags_229[0]), /* 1 */ + asn_DEF_GNB_CU_TNL_Association_To_Add_Item_ExtIEs_tags_229, /* Same as above */ + sizeof(asn_DEF_GNB_CU_TNL_Association_To_Add_Item_ExtIEs_tags_229) + /sizeof(asn_DEF_GNB_CU_TNL_Association_To_Add_Item_ExtIEs_tags_229[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_CU_TNL_Association_To_Add_Item_ExtIEs_229, + 3, /* Elements count */ + &asn_SPC_GNB_CU_TNL_Association_To_Add_Item_ExtIEs_specs_229 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_236 = { + sizeof(struct GNB_CU_TNL_Association_To_Remove_Item_ExtIEs__extensionValue), + offsetof(struct GNB_CU_TNL_Association_To_Remove_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct GNB_CU_TNL_Association_To_Remove_Item_ExtIEs__extensionValue, present), + sizeof(((struct GNB_CU_TNL_Association_To_Remove_Item_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_236 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_236 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_To_Remove_Item_ExtIEs_233[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_To_Remove_Item_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_234, &asn_PER_memb_id_constr_234, memb_id_constraint_233 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_To_Remove_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_235, &asn_PER_memb_criticality_constr_235, memb_criticality_constraint_233 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_To_Remove_Item_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_236, + 0, + { &asn_OER_memb_extensionValue_constr_236, &asn_PER_memb_extensionValue_constr_236, memb_extensionValue_constraint_233 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNB_CU_TNL_Association_To_Remove_Item_ExtIEs_tags_233[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNB_CU_TNL_Association_To_Remove_Item_ExtIEs_tag2el_233[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNB_CU_TNL_Association_To_Remove_Item_ExtIEs_specs_233 = { + sizeof(struct GNB_CU_TNL_Association_To_Remove_Item_ExtIEs), + offsetof(struct GNB_CU_TNL_Association_To_Remove_Item_ExtIEs, _asn_ctx), + asn_MAP_GNB_CU_TNL_Association_To_Remove_Item_ExtIEs_tag2el_233, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_To_Remove_Item_ExtIEs = { + "GNB-CU-TNL-Association-To-Remove-Item-ExtIEs", + "GNB-CU-TNL-Association-To-Remove-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_GNB_CU_TNL_Association_To_Remove_Item_ExtIEs_tags_233, + sizeof(asn_DEF_GNB_CU_TNL_Association_To_Remove_Item_ExtIEs_tags_233) + /sizeof(asn_DEF_GNB_CU_TNL_Association_To_Remove_Item_ExtIEs_tags_233[0]), /* 1 */ + asn_DEF_GNB_CU_TNL_Association_To_Remove_Item_ExtIEs_tags_233, /* Same as above */ + sizeof(asn_DEF_GNB_CU_TNL_Association_To_Remove_Item_ExtIEs_tags_233) + /sizeof(asn_DEF_GNB_CU_TNL_Association_To_Remove_Item_ExtIEs_tags_233[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_CU_TNL_Association_To_Remove_Item_ExtIEs_233, + 3, /* Elements count */ + &asn_SPC_GNB_CU_TNL_Association_To_Remove_Item_ExtIEs_specs_233 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_240 = { + sizeof(struct GNB_CU_TNL_Association_To_Update_Item_ExtIEs__extensionValue), + offsetof(struct GNB_CU_TNL_Association_To_Update_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct GNB_CU_TNL_Association_To_Update_Item_ExtIEs__extensionValue, present), + sizeof(((struct GNB_CU_TNL_Association_To_Update_Item_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_240 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_240 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_To_Update_Item_ExtIEs_237[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_To_Update_Item_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_238, &asn_PER_memb_id_constr_238, memb_id_constraint_237 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_To_Update_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_239, &asn_PER_memb_criticality_constr_239, memb_criticality_constraint_237 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_To_Update_Item_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_240, + 0, + { &asn_OER_memb_extensionValue_constr_240, &asn_PER_memb_extensionValue_constr_240, memb_extensionValue_constraint_237 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNB_CU_TNL_Association_To_Update_Item_ExtIEs_tags_237[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNB_CU_TNL_Association_To_Update_Item_ExtIEs_tag2el_237[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNB_CU_TNL_Association_To_Update_Item_ExtIEs_specs_237 = { + sizeof(struct GNB_CU_TNL_Association_To_Update_Item_ExtIEs), + offsetof(struct GNB_CU_TNL_Association_To_Update_Item_ExtIEs, _asn_ctx), + asn_MAP_GNB_CU_TNL_Association_To_Update_Item_ExtIEs_tag2el_237, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_To_Update_Item_ExtIEs = { + "GNB-CU-TNL-Association-To-Update-Item-ExtIEs", + "GNB-CU-TNL-Association-To-Update-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_GNB_CU_TNL_Association_To_Update_Item_ExtIEs_tags_237, + sizeof(asn_DEF_GNB_CU_TNL_Association_To_Update_Item_ExtIEs_tags_237) + /sizeof(asn_DEF_GNB_CU_TNL_Association_To_Update_Item_ExtIEs_tags_237[0]), /* 1 */ + asn_DEF_GNB_CU_TNL_Association_To_Update_Item_ExtIEs_tags_237, /* Same as above */ + sizeof(asn_DEF_GNB_CU_TNL_Association_To_Update_Item_ExtIEs_tags_237) + /sizeof(asn_DEF_GNB_CU_TNL_Association_To_Update_Item_ExtIEs_tags_237[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_CU_TNL_Association_To_Update_Item_ExtIEs_237, + 3, /* Elements count */ + &asn_SPC_GNB_CU_TNL_Association_To_Update_Item_ExtIEs_specs_237 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_244 = { + sizeof(struct GNB_DU_Served_Cells_ItemExtIEs__extensionValue), + offsetof(struct GNB_DU_Served_Cells_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct GNB_DU_Served_Cells_ItemExtIEs__extensionValue, present), + sizeof(((struct GNB_DU_Served_Cells_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_244 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_244 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GNB_DU_Served_Cells_ItemExtIEs_241[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_DU_Served_Cells_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_242, &asn_PER_memb_id_constr_242, memb_id_constraint_241 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNB_DU_Served_Cells_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_243, &asn_PER_memb_criticality_constr_243, memb_criticality_constraint_241 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GNB_DU_Served_Cells_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_244, + 0, + { &asn_OER_memb_extensionValue_constr_244, &asn_PER_memb_extensionValue_constr_244, memb_extensionValue_constraint_241 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNB_DU_Served_Cells_ItemExtIEs_tags_241[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNB_DU_Served_Cells_ItemExtIEs_tag2el_241[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNB_DU_Served_Cells_ItemExtIEs_specs_241 = { + sizeof(struct GNB_DU_Served_Cells_ItemExtIEs), + offsetof(struct GNB_DU_Served_Cells_ItemExtIEs, _asn_ctx), + asn_MAP_GNB_DU_Served_Cells_ItemExtIEs_tag2el_241, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_DU_Served_Cells_ItemExtIEs = { + "GNB-DU-Served-Cells-ItemExtIEs", + "GNB-DU-Served-Cells-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_GNB_DU_Served_Cells_ItemExtIEs_tags_241, + sizeof(asn_DEF_GNB_DU_Served_Cells_ItemExtIEs_tags_241) + /sizeof(asn_DEF_GNB_DU_Served_Cells_ItemExtIEs_tags_241[0]), /* 1 */ + asn_DEF_GNB_DU_Served_Cells_ItemExtIEs_tags_241, /* Same as above */ + sizeof(asn_DEF_GNB_DU_Served_Cells_ItemExtIEs_tags_241) + /sizeof(asn_DEF_GNB_DU_Served_Cells_ItemExtIEs_tags_241[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_DU_Served_Cells_ItemExtIEs_241, + 3, /* Elements count */ + &asn_SPC_GNB_DU_Served_Cells_ItemExtIEs_specs_241 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_248 = { + sizeof(struct GNB_DU_System_Information_ExtIEs__extensionValue), + offsetof(struct GNB_DU_System_Information_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct GNB_DU_System_Information_ExtIEs__extensionValue, present), + sizeof(((struct GNB_DU_System_Information_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_248 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_248 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GNB_DU_System_Information_ExtIEs_245[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_DU_System_Information_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_246, &asn_PER_memb_id_constr_246, memb_id_constraint_245 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNB_DU_System_Information_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_247, &asn_PER_memb_criticality_constr_247, memb_criticality_constraint_245 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GNB_DU_System_Information_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_248, + 0, + { &asn_OER_memb_extensionValue_constr_248, &asn_PER_memb_extensionValue_constr_248, memb_extensionValue_constraint_245 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNB_DU_System_Information_ExtIEs_tags_245[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNB_DU_System_Information_ExtIEs_tag2el_245[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNB_DU_System_Information_ExtIEs_specs_245 = { + sizeof(struct GNB_DU_System_Information_ExtIEs), + offsetof(struct GNB_DU_System_Information_ExtIEs, _asn_ctx), + asn_MAP_GNB_DU_System_Information_ExtIEs_tag2el_245, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_DU_System_Information_ExtIEs = { + "GNB-DU-System-Information-ExtIEs", + "GNB-DU-System-Information-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_GNB_DU_System_Information_ExtIEs_tags_245, + sizeof(asn_DEF_GNB_DU_System_Information_ExtIEs_tags_245) + /sizeof(asn_DEF_GNB_DU_System_Information_ExtIEs_tags_245[0]), /* 1 */ + asn_DEF_GNB_DU_System_Information_ExtIEs_tags_245, /* Same as above */ + sizeof(asn_DEF_GNB_DU_System_Information_ExtIEs_tags_245) + /sizeof(asn_DEF_GNB_DU_System_Information_ExtIEs_tags_245[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_DU_System_Information_ExtIEs_245, + 3, /* Elements count */ + &asn_SPC_GNB_DU_System_Information_ExtIEs_specs_245 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_252 = { + sizeof(struct GTPTunnel_ExtIEs__extensionValue), + offsetof(struct GTPTunnel_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct GTPTunnel_ExtIEs__extensionValue, present), + sizeof(((struct GTPTunnel_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_252 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_252 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GTPTunnel_ExtIEs_249[] = { + { ATF_NOFLAGS, 0, offsetof(struct GTPTunnel_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_250, &asn_PER_memb_id_constr_250, memb_id_constraint_249 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GTPTunnel_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_251, &asn_PER_memb_criticality_constr_251, memb_criticality_constraint_249 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GTPTunnel_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_252, + 0, + { &asn_OER_memb_extensionValue_constr_252, &asn_PER_memb_extensionValue_constr_252, memb_extensionValue_constraint_249 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_GTPTunnel_ExtIEs_tags_249[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GTPTunnel_ExtIEs_tag2el_249[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GTPTunnel_ExtIEs_specs_249 = { + sizeof(struct GTPTunnel_ExtIEs), + offsetof(struct GTPTunnel_ExtIEs, _asn_ctx), + asn_MAP_GTPTunnel_ExtIEs_tag2el_249, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GTPTunnel_ExtIEs = { + "GTPTunnel-ExtIEs", + "GTPTunnel-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_GTPTunnel_ExtIEs_tags_249, + sizeof(asn_DEF_GTPTunnel_ExtIEs_tags_249) + /sizeof(asn_DEF_GTPTunnel_ExtIEs_tags_249[0]), /* 1 */ + asn_DEF_GTPTunnel_ExtIEs_tags_249, /* Same as above */ + sizeof(asn_DEF_GTPTunnel_ExtIEs_tags_249) + /sizeof(asn_DEF_GTPTunnel_ExtIEs_tags_249[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GTPTunnel_ExtIEs_249, + 3, /* Elements count */ + &asn_SPC_GTPTunnel_ExtIEs_specs_249 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_256 = { + sizeof(struct NGRANAllocationAndRetentionPriority_ExtIEs__extensionValue), + offsetof(struct NGRANAllocationAndRetentionPriority_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct NGRANAllocationAndRetentionPriority_ExtIEs__extensionValue, present), + sizeof(((struct NGRANAllocationAndRetentionPriority_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_256 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_256 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_NGRANAllocationAndRetentionPriority_ExtIEs_253[] = { + { ATF_NOFLAGS, 0, offsetof(struct NGRANAllocationAndRetentionPriority_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_254, &asn_PER_memb_id_constr_254, memb_id_constraint_253 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct NGRANAllocationAndRetentionPriority_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_255, &asn_PER_memb_criticality_constr_255, memb_criticality_constraint_253 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct NGRANAllocationAndRetentionPriority_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_256, + 0, + { &asn_OER_memb_extensionValue_constr_256, &asn_PER_memb_extensionValue_constr_256, memb_extensionValue_constraint_253 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_NGRANAllocationAndRetentionPriority_ExtIEs_tags_253[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NGRANAllocationAndRetentionPriority_ExtIEs_tag2el_253[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NGRANAllocationAndRetentionPriority_ExtIEs_specs_253 = { + sizeof(struct NGRANAllocationAndRetentionPriority_ExtIEs), + offsetof(struct NGRANAllocationAndRetentionPriority_ExtIEs, _asn_ctx), + asn_MAP_NGRANAllocationAndRetentionPriority_ExtIEs_tag2el_253, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NGRANAllocationAndRetentionPriority_ExtIEs = { + "NGRANAllocationAndRetentionPriority-ExtIEs", + "NGRANAllocationAndRetentionPriority-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_NGRANAllocationAndRetentionPriority_ExtIEs_tags_253, + sizeof(asn_DEF_NGRANAllocationAndRetentionPriority_ExtIEs_tags_253) + /sizeof(asn_DEF_NGRANAllocationAndRetentionPriority_ExtIEs_tags_253[0]), /* 1 */ + asn_DEF_NGRANAllocationAndRetentionPriority_ExtIEs_tags_253, /* Same as above */ + sizeof(asn_DEF_NGRANAllocationAndRetentionPriority_ExtIEs_tags_253) + /sizeof(asn_DEF_NGRANAllocationAndRetentionPriority_ExtIEs_tags_253[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NGRANAllocationAndRetentionPriority_ExtIEs_253, + 3, /* Elements count */ + &asn_SPC_NGRANAllocationAndRetentionPriority_ExtIEs_specs_253 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_260 = { + sizeof(struct NR_CGI_List_For_Restart_ItemExtIEs__extensionValue), + offsetof(struct NR_CGI_List_For_Restart_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct NR_CGI_List_For_Restart_ItemExtIEs__extensionValue, present), + sizeof(((struct NR_CGI_List_For_Restart_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_260 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_260 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_NR_CGI_List_For_Restart_ItemExtIEs_257[] = { + { ATF_NOFLAGS, 0, offsetof(struct NR_CGI_List_For_Restart_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_258, &asn_PER_memb_id_constr_258, memb_id_constraint_257 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct NR_CGI_List_For_Restart_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_259, &asn_PER_memb_criticality_constr_259, memb_criticality_constraint_257 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct NR_CGI_List_For_Restart_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_260, + 0, + { &asn_OER_memb_extensionValue_constr_260, &asn_PER_memb_extensionValue_constr_260, memb_extensionValue_constraint_257 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_NR_CGI_List_For_Restart_ItemExtIEs_tags_257[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NR_CGI_List_For_Restart_ItemExtIEs_tag2el_257[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NR_CGI_List_For_Restart_ItemExtIEs_specs_257 = { + sizeof(struct NR_CGI_List_For_Restart_ItemExtIEs), + offsetof(struct NR_CGI_List_For_Restart_ItemExtIEs, _asn_ctx), + asn_MAP_NR_CGI_List_For_Restart_ItemExtIEs_tag2el_257, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NR_CGI_List_For_Restart_ItemExtIEs = { + "NR-CGI-List-For-Restart-ItemExtIEs", + "NR-CGI-List-For-Restart-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_NR_CGI_List_For_Restart_ItemExtIEs_tags_257, + sizeof(asn_DEF_NR_CGI_List_For_Restart_ItemExtIEs_tags_257) + /sizeof(asn_DEF_NR_CGI_List_For_Restart_ItemExtIEs_tags_257[0]), /* 1 */ + asn_DEF_NR_CGI_List_For_Restart_ItemExtIEs_tags_257, /* Same as above */ + sizeof(asn_DEF_NR_CGI_List_For_Restart_ItemExtIEs_tags_257) + /sizeof(asn_DEF_NR_CGI_List_For_Restart_ItemExtIEs_tags_257[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NR_CGI_List_For_Restart_ItemExtIEs_257, + 3, /* Elements count */ + &asn_SPC_NR_CGI_List_For_Restart_ItemExtIEs_specs_257 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_264 = { + sizeof(struct NonDynamic5QIDescriptor_ExtIEs__extensionValue), + offsetof(struct NonDynamic5QIDescriptor_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct NonDynamic5QIDescriptor_ExtIEs__extensionValue, present), + sizeof(((struct NonDynamic5QIDescriptor_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_264 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_264 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_NonDynamic5QIDescriptor_ExtIEs_261[] = { + { ATF_NOFLAGS, 0, offsetof(struct NonDynamic5QIDescriptor_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_262, &asn_PER_memb_id_constr_262, memb_id_constraint_261 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct NonDynamic5QIDescriptor_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_263, &asn_PER_memb_criticality_constr_263, memb_criticality_constraint_261 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct NonDynamic5QIDescriptor_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_264, + 0, + { &asn_OER_memb_extensionValue_constr_264, &asn_PER_memb_extensionValue_constr_264, memb_extensionValue_constraint_261 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_NonDynamic5QIDescriptor_ExtIEs_tags_261[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NonDynamic5QIDescriptor_ExtIEs_tag2el_261[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NonDynamic5QIDescriptor_ExtIEs_specs_261 = { + sizeof(struct NonDynamic5QIDescriptor_ExtIEs), + offsetof(struct NonDynamic5QIDescriptor_ExtIEs, _asn_ctx), + asn_MAP_NonDynamic5QIDescriptor_ExtIEs_tag2el_261, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NonDynamic5QIDescriptor_ExtIEs = { + "NonDynamic5QIDescriptor-ExtIEs", + "NonDynamic5QIDescriptor-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_NonDynamic5QIDescriptor_ExtIEs_tags_261, + sizeof(asn_DEF_NonDynamic5QIDescriptor_ExtIEs_tags_261) + /sizeof(asn_DEF_NonDynamic5QIDescriptor_ExtIEs_tags_261[0]), /* 1 */ + asn_DEF_NonDynamic5QIDescriptor_ExtIEs_tags_261, /* Same as above */ + sizeof(asn_DEF_NonDynamic5QIDescriptor_ExtIEs_tags_261) + /sizeof(asn_DEF_NonDynamic5QIDescriptor_ExtIEs_tags_261[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NonDynamic5QIDescriptor_ExtIEs_261, + 3, /* Elements count */ + &asn_SPC_NonDynamic5QIDescriptor_ExtIEs_specs_261 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_268 = { + sizeof(struct NRFreqInfoExtIEs__extensionValue), + offsetof(struct NRFreqInfoExtIEs__extensionValue, _asn_ctx), + offsetof(struct NRFreqInfoExtIEs__extensionValue, present), + sizeof(((struct NRFreqInfoExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_268 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_268 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_NRFreqInfoExtIEs_265[] = { + { ATF_NOFLAGS, 0, offsetof(struct NRFreqInfoExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_266, &asn_PER_memb_id_constr_266, memb_id_constraint_265 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct NRFreqInfoExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_267, &asn_PER_memb_criticality_constr_267, memb_criticality_constraint_265 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct NRFreqInfoExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_268, + 0, + { &asn_OER_memb_extensionValue_constr_268, &asn_PER_memb_extensionValue_constr_268, memb_extensionValue_constraint_265 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_NRFreqInfoExtIEs_tags_265[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NRFreqInfoExtIEs_tag2el_265[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NRFreqInfoExtIEs_specs_265 = { + sizeof(struct NRFreqInfoExtIEs), + offsetof(struct NRFreqInfoExtIEs, _asn_ctx), + asn_MAP_NRFreqInfoExtIEs_tag2el_265, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NRFreqInfoExtIEs = { + "NRFreqInfoExtIEs", + "NRFreqInfoExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_NRFreqInfoExtIEs_tags_265, + sizeof(asn_DEF_NRFreqInfoExtIEs_tags_265) + /sizeof(asn_DEF_NRFreqInfoExtIEs_tags_265[0]), /* 1 */ + asn_DEF_NRFreqInfoExtIEs_tags_265, /* Same as above */ + sizeof(asn_DEF_NRFreqInfoExtIEs_tags_265) + /sizeof(asn_DEF_NRFreqInfoExtIEs_tags_265[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NRFreqInfoExtIEs_265, + 3, /* Elements count */ + &asn_SPC_NRFreqInfoExtIEs_specs_265 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_272 = { + sizeof(struct NRCGI_ExtIEs__extensionValue), + offsetof(struct NRCGI_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct NRCGI_ExtIEs__extensionValue, present), + sizeof(((struct NRCGI_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_272 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_272 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_NRCGI_ExtIEs_269[] = { + { ATF_NOFLAGS, 0, offsetof(struct NRCGI_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_270, &asn_PER_memb_id_constr_270, memb_id_constraint_269 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct NRCGI_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_271, &asn_PER_memb_criticality_constr_271, memb_criticality_constraint_269 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct NRCGI_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_272, + 0, + { &asn_OER_memb_extensionValue_constr_272, &asn_PER_memb_extensionValue_constr_272, memb_extensionValue_constraint_269 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_NRCGI_ExtIEs_tags_269[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NRCGI_ExtIEs_tag2el_269[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NRCGI_ExtIEs_specs_269 = { + sizeof(struct NRCGI_ExtIEs), + offsetof(struct NRCGI_ExtIEs, _asn_ctx), + asn_MAP_NRCGI_ExtIEs_tag2el_269, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NRCGI_ExtIEs = { + "NRCGI-ExtIEs", + "NRCGI-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_NRCGI_ExtIEs_tags_269, + sizeof(asn_DEF_NRCGI_ExtIEs_tags_269) + /sizeof(asn_DEF_NRCGI_ExtIEs_tags_269[0]), /* 1 */ + asn_DEF_NRCGI_ExtIEs_tags_269, /* Same as above */ + sizeof(asn_DEF_NRCGI_ExtIEs_tags_269) + /sizeof(asn_DEF_NRCGI_ExtIEs_tags_269[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NRCGI_ExtIEs_269, + 3, /* Elements count */ + &asn_SPC_NRCGI_ExtIEs_specs_269 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_276 = { + sizeof(struct PacketErrorRate_ExtIEs__extensionValue), + offsetof(struct PacketErrorRate_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct PacketErrorRate_ExtIEs__extensionValue, present), + sizeof(((struct PacketErrorRate_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_276 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_276 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PacketErrorRate_ExtIEs_273[] = { + { ATF_NOFLAGS, 0, offsetof(struct PacketErrorRate_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_274, &asn_PER_memb_id_constr_274, memb_id_constraint_273 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct PacketErrorRate_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_275, &asn_PER_memb_criticality_constr_275, memb_criticality_constraint_273 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct PacketErrorRate_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_276, + 0, + { &asn_OER_memb_extensionValue_constr_276, &asn_PER_memb_extensionValue_constr_276, memb_extensionValue_constraint_273 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_PacketErrorRate_ExtIEs_tags_273[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PacketErrorRate_ExtIEs_tag2el_273[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PacketErrorRate_ExtIEs_specs_273 = { + sizeof(struct PacketErrorRate_ExtIEs), + offsetof(struct PacketErrorRate_ExtIEs, _asn_ctx), + asn_MAP_PacketErrorRate_ExtIEs_tag2el_273, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PacketErrorRate_ExtIEs = { + "PacketErrorRate-ExtIEs", + "PacketErrorRate-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_PacketErrorRate_ExtIEs_tags_273, + sizeof(asn_DEF_PacketErrorRate_ExtIEs_tags_273) + /sizeof(asn_DEF_PacketErrorRate_ExtIEs_tags_273[0]), /* 1 */ + asn_DEF_PacketErrorRate_ExtIEs_tags_273, /* Same as above */ + sizeof(asn_DEF_PacketErrorRate_ExtIEs_tags_273) + /sizeof(asn_DEF_PacketErrorRate_ExtIEs_tags_273[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PacketErrorRate_ExtIEs_273, + 3, /* Elements count */ + &asn_SPC_PacketErrorRate_ExtIEs_specs_273 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_280 = { + sizeof(struct PagingCell_ItemExtIEs__extensionValue), + offsetof(struct PagingCell_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct PagingCell_ItemExtIEs__extensionValue, present), + sizeof(((struct PagingCell_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_280 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_280 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PagingCell_ItemExtIEs_277[] = { + { ATF_NOFLAGS, 0, offsetof(struct PagingCell_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_278, &asn_PER_memb_id_constr_278, memb_id_constraint_277 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct PagingCell_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_279, &asn_PER_memb_criticality_constr_279, memb_criticality_constraint_277 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct PagingCell_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_280, + 0, + { &asn_OER_memb_extensionValue_constr_280, &asn_PER_memb_extensionValue_constr_280, memb_extensionValue_constraint_277 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_PagingCell_ItemExtIEs_tags_277[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PagingCell_ItemExtIEs_tag2el_277[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PagingCell_ItemExtIEs_specs_277 = { + sizeof(struct PagingCell_ItemExtIEs), + offsetof(struct PagingCell_ItemExtIEs, _asn_ctx), + asn_MAP_PagingCell_ItemExtIEs_tag2el_277, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PagingCell_ItemExtIEs = { + "PagingCell-ItemExtIEs", + "PagingCell-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_PagingCell_ItemExtIEs_tags_277, + sizeof(asn_DEF_PagingCell_ItemExtIEs_tags_277) + /sizeof(asn_DEF_PagingCell_ItemExtIEs_tags_277[0]), /* 1 */ + asn_DEF_PagingCell_ItemExtIEs_tags_277, /* Same as above */ + sizeof(asn_DEF_PagingCell_ItemExtIEs_tags_277) + /sizeof(asn_DEF_PagingCell_ItemExtIEs_tags_277[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PagingCell_ItemExtIEs_277, + 3, /* Elements count */ + &asn_SPC_PagingCell_ItemExtIEs_specs_277 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_284 = { + sizeof(struct Protected_EUTRA_Resources_ItemExtIEs__extensionValue), + offsetof(struct Protected_EUTRA_Resources_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct Protected_EUTRA_Resources_ItemExtIEs__extensionValue, present), + sizeof(((struct Protected_EUTRA_Resources_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_284 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_284 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Protected_EUTRA_Resources_ItemExtIEs_281[] = { + { ATF_NOFLAGS, 0, offsetof(struct Protected_EUTRA_Resources_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_282, &asn_PER_memb_id_constr_282, memb_id_constraint_281 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Protected_EUTRA_Resources_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_283, &asn_PER_memb_criticality_constr_283, memb_criticality_constraint_281 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Protected_EUTRA_Resources_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_284, + 0, + { &asn_OER_memb_extensionValue_constr_284, &asn_PER_memb_extensionValue_constr_284, memb_extensionValue_constraint_281 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Protected_EUTRA_Resources_ItemExtIEs_tags_281[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Protected_EUTRA_Resources_ItemExtIEs_tag2el_281[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Protected_EUTRA_Resources_ItemExtIEs_specs_281 = { + sizeof(struct Protected_EUTRA_Resources_ItemExtIEs), + offsetof(struct Protected_EUTRA_Resources_ItemExtIEs, _asn_ctx), + asn_MAP_Protected_EUTRA_Resources_ItemExtIEs_tag2el_281, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Protected_EUTRA_Resources_ItemExtIEs = { + "Protected-EUTRA-Resources-ItemExtIEs", + "Protected-EUTRA-Resources-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_Protected_EUTRA_Resources_ItemExtIEs_tags_281, + sizeof(asn_DEF_Protected_EUTRA_Resources_ItemExtIEs_tags_281) + /sizeof(asn_DEF_Protected_EUTRA_Resources_ItemExtIEs_tags_281[0]), /* 1 */ + asn_DEF_Protected_EUTRA_Resources_ItemExtIEs_tags_281, /* Same as above */ + sizeof(asn_DEF_Protected_EUTRA_Resources_ItemExtIEs_tags_281) + /sizeof(asn_DEF_Protected_EUTRA_Resources_ItemExtIEs_tags_281[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Protected_EUTRA_Resources_ItemExtIEs_281, + 3, /* Elements count */ + &asn_SPC_Protected_EUTRA_Resources_ItemExtIEs_specs_281 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_288 = { + sizeof(struct Potential_SpCell_ItemExtIEs__extensionValue), + offsetof(struct Potential_SpCell_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct Potential_SpCell_ItemExtIEs__extensionValue, present), + sizeof(((struct Potential_SpCell_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_288 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_288 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Potential_SpCell_ItemExtIEs_285[] = { + { ATF_NOFLAGS, 0, offsetof(struct Potential_SpCell_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_286, &asn_PER_memb_id_constr_286, memb_id_constraint_285 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Potential_SpCell_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_287, &asn_PER_memb_criticality_constr_287, memb_criticality_constraint_285 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Potential_SpCell_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_288, + 0, + { &asn_OER_memb_extensionValue_constr_288, &asn_PER_memb_extensionValue_constr_288, memb_extensionValue_constraint_285 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Potential_SpCell_ItemExtIEs_tags_285[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Potential_SpCell_ItemExtIEs_tag2el_285[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Potential_SpCell_ItemExtIEs_specs_285 = { + sizeof(struct Potential_SpCell_ItemExtIEs), + offsetof(struct Potential_SpCell_ItemExtIEs, _asn_ctx), + asn_MAP_Potential_SpCell_ItemExtIEs_tag2el_285, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Potential_SpCell_ItemExtIEs = { + "Potential-SpCell-ItemExtIEs", + "Potential-SpCell-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_Potential_SpCell_ItemExtIEs_tags_285, + sizeof(asn_DEF_Potential_SpCell_ItemExtIEs_tags_285) + /sizeof(asn_DEF_Potential_SpCell_ItemExtIEs_tags_285[0]), /* 1 */ + asn_DEF_Potential_SpCell_ItemExtIEs_tags_285, /* Same as above */ + sizeof(asn_DEF_Potential_SpCell_ItemExtIEs_tags_285) + /sizeof(asn_DEF_Potential_SpCell_ItemExtIEs_tags_285[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Potential_SpCell_ItemExtIEs_285, + 3, /* Elements count */ + &asn_SPC_Potential_SpCell_ItemExtIEs_specs_285 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_292 = { + sizeof(struct PWS_Failed_NR_CGI_ItemExtIEs__extensionValue), + offsetof(struct PWS_Failed_NR_CGI_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct PWS_Failed_NR_CGI_ItemExtIEs__extensionValue, present), + sizeof(((struct PWS_Failed_NR_CGI_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_292 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_292 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PWS_Failed_NR_CGI_ItemExtIEs_289[] = { + { ATF_NOFLAGS, 0, offsetof(struct PWS_Failed_NR_CGI_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_290, &asn_PER_memb_id_constr_290, memb_id_constraint_289 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct PWS_Failed_NR_CGI_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_291, &asn_PER_memb_criticality_constr_291, memb_criticality_constraint_289 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct PWS_Failed_NR_CGI_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_292, + 0, + { &asn_OER_memb_extensionValue_constr_292, &asn_PER_memb_extensionValue_constr_292, memb_extensionValue_constraint_289 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_PWS_Failed_NR_CGI_ItemExtIEs_tags_289[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PWS_Failed_NR_CGI_ItemExtIEs_tag2el_289[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PWS_Failed_NR_CGI_ItemExtIEs_specs_289 = { + sizeof(struct PWS_Failed_NR_CGI_ItemExtIEs), + offsetof(struct PWS_Failed_NR_CGI_ItemExtIEs, _asn_ctx), + asn_MAP_PWS_Failed_NR_CGI_ItemExtIEs_tag2el_289, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PWS_Failed_NR_CGI_ItemExtIEs = { + "PWS-Failed-NR-CGI-ItemExtIEs", + "PWS-Failed-NR-CGI-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_PWS_Failed_NR_CGI_ItemExtIEs_tags_289, + sizeof(asn_DEF_PWS_Failed_NR_CGI_ItemExtIEs_tags_289) + /sizeof(asn_DEF_PWS_Failed_NR_CGI_ItemExtIEs_tags_289[0]), /* 1 */ + asn_DEF_PWS_Failed_NR_CGI_ItemExtIEs_tags_289, /* Same as above */ + sizeof(asn_DEF_PWS_Failed_NR_CGI_ItemExtIEs_tags_289) + /sizeof(asn_DEF_PWS_Failed_NR_CGI_ItemExtIEs_tags_289[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PWS_Failed_NR_CGI_ItemExtIEs_289, + 3, /* Elements count */ + &asn_SPC_PWS_Failed_NR_CGI_ItemExtIEs_specs_289 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_296 = { + sizeof(struct PWSSystemInformationExtIEs__extensionValue), + offsetof(struct PWSSystemInformationExtIEs__extensionValue, _asn_ctx), + offsetof(struct PWSSystemInformationExtIEs__extensionValue, present), + sizeof(((struct PWSSystemInformationExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_296 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_296 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PWSSystemInformationExtIEs_293[] = { + { ATF_NOFLAGS, 0, offsetof(struct PWSSystemInformationExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_294, &asn_PER_memb_id_constr_294, memb_id_constraint_293 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct PWSSystemInformationExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_295, &asn_PER_memb_criticality_constr_295, memb_criticality_constraint_293 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct PWSSystemInformationExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_296, + 0, + { &asn_OER_memb_extensionValue_constr_296, &asn_PER_memb_extensionValue_constr_296, memb_extensionValue_constraint_293 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_PWSSystemInformationExtIEs_tags_293[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PWSSystemInformationExtIEs_tag2el_293[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PWSSystemInformationExtIEs_specs_293 = { + sizeof(struct PWSSystemInformationExtIEs), + offsetof(struct PWSSystemInformationExtIEs, _asn_ctx), + asn_MAP_PWSSystemInformationExtIEs_tag2el_293, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PWSSystemInformationExtIEs = { + "PWSSystemInformationExtIEs", + "PWSSystemInformationExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_PWSSystemInformationExtIEs_tags_293, + sizeof(asn_DEF_PWSSystemInformationExtIEs_tags_293) + /sizeof(asn_DEF_PWSSystemInformationExtIEs_tags_293[0]), /* 1 */ + asn_DEF_PWSSystemInformationExtIEs_tags_293, /* Same as above */ + sizeof(asn_DEF_PWSSystemInformationExtIEs_tags_293) + /sizeof(asn_DEF_PWSSystemInformationExtIEs_tags_293[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PWSSystemInformationExtIEs_293, + 3, /* Elements count */ + &asn_SPC_PWSSystemInformationExtIEs_specs_293 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_extensionValue_300[] = { + { ATF_NOFLAGS, 0, offsetof(struct QoSFlowLevelQoSParameters_ExtIEs__extensionValue, choice.PDUSessionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct QoSFlowLevelQoSParameters_ExtIEs__extensionValue, choice.BitRate), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "BitRate" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_300[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* PDUSessionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 } /* BitRate */ +}; +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_300 = { + sizeof(struct QoSFlowLevelQoSParameters_ExtIEs__extensionValue), + offsetof(struct QoSFlowLevelQoSParameters_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct QoSFlowLevelQoSParameters_ExtIEs__extensionValue, present), + sizeof(((struct QoSFlowLevelQoSParameters_ExtIEs__extensionValue *)0)->present), + asn_MAP_extensionValue_tag2el_300, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_300 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_extensionValue_300, + 2, /* Elements count */ + &asn_SPC_extensionValue_specs_300 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_QoSFlowLevelQoSParameters_ExtIEs_297[] = { + { ATF_NOFLAGS, 0, offsetof(struct QoSFlowLevelQoSParameters_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_298, &asn_PER_memb_id_constr_298, memb_id_constraint_297 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct QoSFlowLevelQoSParameters_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_QoSFlowLevelQoSParameters_ExtIEs_criticality_type, + { &asn_OER_memb_criticality_constr_299, &asn_PER_memb_criticality_constr_299, memb_criticality_constraint_297 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct QoSFlowLevelQoSParameters_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_300, + select_QoSFlowLevelQoSParameters_ExtIEs_extensionValue_type, + { &asn_OER_memb_extensionValue_constr_300, &asn_PER_memb_extensionValue_constr_300, memb_extensionValue_constraint_297 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_QoSFlowLevelQoSParameters_ExtIEs_tags_297[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_QoSFlowLevelQoSParameters_ExtIEs_tag2el_297[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_QoSFlowLevelQoSParameters_ExtIEs_specs_297 = { + sizeof(struct QoSFlowLevelQoSParameters_ExtIEs), + offsetof(struct QoSFlowLevelQoSParameters_ExtIEs, _asn_ctx), + asn_MAP_QoSFlowLevelQoSParameters_ExtIEs_tag2el_297, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_QoSFlowLevelQoSParameters_ExtIEs = { + "QoSFlowLevelQoSParameters-ExtIEs", + "QoSFlowLevelQoSParameters-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_QoSFlowLevelQoSParameters_ExtIEs_tags_297, + sizeof(asn_DEF_QoSFlowLevelQoSParameters_ExtIEs_tags_297) + /sizeof(asn_DEF_QoSFlowLevelQoSParameters_ExtIEs_tags_297[0]), /* 1 */ + asn_DEF_QoSFlowLevelQoSParameters_ExtIEs_tags_297, /* Same as above */ + sizeof(asn_DEF_QoSFlowLevelQoSParameters_ExtIEs_tags_297) + /sizeof(asn_DEF_QoSFlowLevelQoSParameters_ExtIEs_tags_297[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_QoSFlowLevelQoSParameters_ExtIEs_297, + 3, /* Elements count */ + &asn_SPC_QoSFlowLevelQoSParameters_ExtIEs_specs_297 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_304 = { + sizeof(struct RANUEPagingIdentity_ExtIEs__extensionValue), + offsetof(struct RANUEPagingIdentity_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct RANUEPagingIdentity_ExtIEs__extensionValue, present), + sizeof(((struct RANUEPagingIdentity_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_304 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_304 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RANUEPagingIdentity_ExtIEs_301[] = { + { ATF_NOFLAGS, 0, offsetof(struct RANUEPagingIdentity_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_302, &asn_PER_memb_id_constr_302, memb_id_constraint_301 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RANUEPagingIdentity_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_303, &asn_PER_memb_criticality_constr_303, memb_criticality_constraint_301 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANUEPagingIdentity_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_304, + 0, + { &asn_OER_memb_extensionValue_constr_304, &asn_PER_memb_extensionValue_constr_304, memb_extensionValue_constraint_301 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_RANUEPagingIdentity_ExtIEs_tags_301[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RANUEPagingIdentity_ExtIEs_tag2el_301[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RANUEPagingIdentity_ExtIEs_specs_301 = { + sizeof(struct RANUEPagingIdentity_ExtIEs), + offsetof(struct RANUEPagingIdentity_ExtIEs, _asn_ctx), + asn_MAP_RANUEPagingIdentity_ExtIEs_tag2el_301, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RANUEPagingIdentity_ExtIEs = { + "RANUEPagingIdentity-ExtIEs", + "RANUEPagingIdentity-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_RANUEPagingIdentity_ExtIEs_tags_301, + sizeof(asn_DEF_RANUEPagingIdentity_ExtIEs_tags_301) + /sizeof(asn_DEF_RANUEPagingIdentity_ExtIEs_tags_301[0]), /* 1 */ + asn_DEF_RANUEPagingIdentity_ExtIEs_tags_301, /* Same as above */ + sizeof(asn_DEF_RANUEPagingIdentity_ExtIEs_tags_301) + /sizeof(asn_DEF_RANUEPagingIdentity_ExtIEs_tags_301[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RANUEPagingIdentity_ExtIEs_301, + 3, /* Elements count */ + &asn_SPC_RANUEPagingIdentity_ExtIEs_specs_301 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_308 = { + sizeof(struct ResourceCoordinationEUTRACellInfo_ExtIEs__extensionValue), + offsetof(struct ResourceCoordinationEUTRACellInfo_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ResourceCoordinationEUTRACellInfo_ExtIEs__extensionValue, present), + sizeof(((struct ResourceCoordinationEUTRACellInfo_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_308 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_308 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ResourceCoordinationEUTRACellInfo_ExtIEs_305[] = { + { ATF_NOFLAGS, 0, offsetof(struct ResourceCoordinationEUTRACellInfo_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_306, &asn_PER_memb_id_constr_306, memb_id_constraint_305 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ResourceCoordinationEUTRACellInfo_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_307, &asn_PER_memb_criticality_constr_307, memb_criticality_constraint_305 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResourceCoordinationEUTRACellInfo_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_308, + 0, + { &asn_OER_memb_extensionValue_constr_308, &asn_PER_memb_extensionValue_constr_308, memb_extensionValue_constraint_305 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ResourceCoordinationEUTRACellInfo_ExtIEs_tags_305[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ResourceCoordinationEUTRACellInfo_ExtIEs_tag2el_305[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ResourceCoordinationEUTRACellInfo_ExtIEs_specs_305 = { + sizeof(struct ResourceCoordinationEUTRACellInfo_ExtIEs), + offsetof(struct ResourceCoordinationEUTRACellInfo_ExtIEs, _asn_ctx), + asn_MAP_ResourceCoordinationEUTRACellInfo_ExtIEs_tag2el_305, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ResourceCoordinationEUTRACellInfo_ExtIEs = { + "ResourceCoordinationEUTRACellInfo-ExtIEs", + "ResourceCoordinationEUTRACellInfo-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ResourceCoordinationEUTRACellInfo_ExtIEs_tags_305, + sizeof(asn_DEF_ResourceCoordinationEUTRACellInfo_ExtIEs_tags_305) + /sizeof(asn_DEF_ResourceCoordinationEUTRACellInfo_ExtIEs_tags_305[0]), /* 1 */ + asn_DEF_ResourceCoordinationEUTRACellInfo_ExtIEs_tags_305, /* Same as above */ + sizeof(asn_DEF_ResourceCoordinationEUTRACellInfo_ExtIEs_tags_305) + /sizeof(asn_DEF_ResourceCoordinationEUTRACellInfo_ExtIEs_tags_305[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ResourceCoordinationEUTRACellInfo_ExtIEs_305, + 3, /* Elements count */ + &asn_SPC_ResourceCoordinationEUTRACellInfo_ExtIEs_specs_305 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_312 = { + sizeof(struct ResourceCoordinationTransferInformation_ExtIEs__extensionValue), + offsetof(struct ResourceCoordinationTransferInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ResourceCoordinationTransferInformation_ExtIEs__extensionValue, present), + sizeof(((struct ResourceCoordinationTransferInformation_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_312 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_312 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ResourceCoordinationTransferInformation_ExtIEs_309[] = { + { ATF_NOFLAGS, 0, offsetof(struct ResourceCoordinationTransferInformation_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_310, &asn_PER_memb_id_constr_310, memb_id_constraint_309 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ResourceCoordinationTransferInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_311, &asn_PER_memb_criticality_constr_311, memb_criticality_constraint_309 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResourceCoordinationTransferInformation_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_312, + 0, + { &asn_OER_memb_extensionValue_constr_312, &asn_PER_memb_extensionValue_constr_312, memb_extensionValue_constraint_309 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ResourceCoordinationTransferInformation_ExtIEs_tags_309[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ResourceCoordinationTransferInformation_ExtIEs_tag2el_309[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ResourceCoordinationTransferInformation_ExtIEs_specs_309 = { + sizeof(struct ResourceCoordinationTransferInformation_ExtIEs), + offsetof(struct ResourceCoordinationTransferInformation_ExtIEs, _asn_ctx), + asn_MAP_ResourceCoordinationTransferInformation_ExtIEs_tag2el_309, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ResourceCoordinationTransferInformation_ExtIEs = { + "ResourceCoordinationTransferInformation-ExtIEs", + "ResourceCoordinationTransferInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ResourceCoordinationTransferInformation_ExtIEs_tags_309, + sizeof(asn_DEF_ResourceCoordinationTransferInformation_ExtIEs_tags_309) + /sizeof(asn_DEF_ResourceCoordinationTransferInformation_ExtIEs_tags_309[0]), /* 1 */ + asn_DEF_ResourceCoordinationTransferInformation_ExtIEs_tags_309, /* Same as above */ + sizeof(asn_DEF_ResourceCoordinationTransferInformation_ExtIEs_tags_309) + /sizeof(asn_DEF_ResourceCoordinationTransferInformation_ExtIEs_tags_309[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ResourceCoordinationTransferInformation_ExtIEs_309, + 3, /* Elements count */ + &asn_SPC_ResourceCoordinationTransferInformation_ExtIEs_specs_309 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_316 = { + sizeof(struct RLCFailureIndication_ExtIEs__extensionValue), + offsetof(struct RLCFailureIndication_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct RLCFailureIndication_ExtIEs__extensionValue, present), + sizeof(((struct RLCFailureIndication_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_316 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_316 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RLCFailureIndication_ExtIEs_313[] = { + { ATF_NOFLAGS, 0, offsetof(struct RLCFailureIndication_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_314, &asn_PER_memb_id_constr_314, memb_id_constraint_313 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RLCFailureIndication_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_315, &asn_PER_memb_criticality_constr_315, memb_criticality_constraint_313 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RLCFailureIndication_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_316, + 0, + { &asn_OER_memb_extensionValue_constr_316, &asn_PER_memb_extensionValue_constr_316, memb_extensionValue_constraint_313 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_RLCFailureIndication_ExtIEs_tags_313[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RLCFailureIndication_ExtIEs_tag2el_313[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RLCFailureIndication_ExtIEs_specs_313 = { + sizeof(struct RLCFailureIndication_ExtIEs), + offsetof(struct RLCFailureIndication_ExtIEs, _asn_ctx), + asn_MAP_RLCFailureIndication_ExtIEs_tag2el_313, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RLCFailureIndication_ExtIEs = { + "RLCFailureIndication-ExtIEs", + "RLCFailureIndication-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_RLCFailureIndication_ExtIEs_tags_313, + sizeof(asn_DEF_RLCFailureIndication_ExtIEs_tags_313) + /sizeof(asn_DEF_RLCFailureIndication_ExtIEs_tags_313[0]), /* 1 */ + asn_DEF_RLCFailureIndication_ExtIEs_tags_313, /* Same as above */ + sizeof(asn_DEF_RLCFailureIndication_ExtIEs_tags_313) + /sizeof(asn_DEF_RLCFailureIndication_ExtIEs_tags_313[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RLCFailureIndication_ExtIEs_313, + 3, /* Elements count */ + &asn_SPC_RLCFailureIndication_ExtIEs_specs_313 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_320 = { + sizeof(struct RLC_Status_ExtIEs__extensionValue), + offsetof(struct RLC_Status_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct RLC_Status_ExtIEs__extensionValue, present), + sizeof(((struct RLC_Status_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_320 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_320 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RLC_Status_ExtIEs_317[] = { + { ATF_NOFLAGS, 0, offsetof(struct RLC_Status_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_318, &asn_PER_memb_id_constr_318, memb_id_constraint_317 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RLC_Status_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_319, &asn_PER_memb_criticality_constr_319, memb_criticality_constraint_317 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RLC_Status_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_320, + 0, + { &asn_OER_memb_extensionValue_constr_320, &asn_PER_memb_extensionValue_constr_320, memb_extensionValue_constraint_317 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_RLC_Status_ExtIEs_tags_317[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RLC_Status_ExtIEs_tag2el_317[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RLC_Status_ExtIEs_specs_317 = { + sizeof(struct RLC_Status_ExtIEs), + offsetof(struct RLC_Status_ExtIEs, _asn_ctx), + asn_MAP_RLC_Status_ExtIEs_tag2el_317, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RLC_Status_ExtIEs = { + "RLC-Status-ExtIEs", + "RLC-Status-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_RLC_Status_ExtIEs_tags_317, + sizeof(asn_DEF_RLC_Status_ExtIEs_tags_317) + /sizeof(asn_DEF_RLC_Status_ExtIEs_tags_317[0]), /* 1 */ + asn_DEF_RLC_Status_ExtIEs_tags_317, /* Same as above */ + sizeof(asn_DEF_RLC_Status_ExtIEs_tags_317) + /sizeof(asn_DEF_RLC_Status_ExtIEs_tags_317[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RLC_Status_ExtIEs_317, + 3, /* Elements count */ + &asn_SPC_RLC_Status_ExtIEs_specs_317 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_324 = { + sizeof(struct RRCDeliveryStatus_ExtIEs__extensionValue), + offsetof(struct RRCDeliveryStatus_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct RRCDeliveryStatus_ExtIEs__extensionValue, present), + sizeof(((struct RRCDeliveryStatus_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_324 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_324 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RRCDeliveryStatus_ExtIEs_321[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCDeliveryStatus_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_322, &asn_PER_memb_id_constr_322, memb_id_constraint_321 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCDeliveryStatus_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_323, &asn_PER_memb_criticality_constr_323, memb_criticality_constraint_321 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RRCDeliveryStatus_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_324, + 0, + { &asn_OER_memb_extensionValue_constr_324, &asn_PER_memb_extensionValue_constr_324, memb_extensionValue_constraint_321 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_RRCDeliveryStatus_ExtIEs_tags_321[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RRCDeliveryStatus_ExtIEs_tag2el_321[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RRCDeliveryStatus_ExtIEs_specs_321 = { + sizeof(struct RRCDeliveryStatus_ExtIEs), + offsetof(struct RRCDeliveryStatus_ExtIEs, _asn_ctx), + asn_MAP_RRCDeliveryStatus_ExtIEs_tag2el_321, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RRCDeliveryStatus_ExtIEs = { + "RRCDeliveryStatus-ExtIEs", + "RRCDeliveryStatus-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_RRCDeliveryStatus_ExtIEs_tags_321, + sizeof(asn_DEF_RRCDeliveryStatus_ExtIEs_tags_321) + /sizeof(asn_DEF_RRCDeliveryStatus_ExtIEs_tags_321[0]), /* 1 */ + asn_DEF_RRCDeliveryStatus_ExtIEs_tags_321, /* Same as above */ + sizeof(asn_DEF_RRCDeliveryStatus_ExtIEs_tags_321) + /sizeof(asn_DEF_RRCDeliveryStatus_ExtIEs_tags_321[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCDeliveryStatus_ExtIEs_321, + 3, /* Elements count */ + &asn_SPC_RRCDeliveryStatus_ExtIEs_specs_321 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_extensionValue_328[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRC_Version_ExtIEs__extensionValue, choice.Latest_RRC_Version_Enhanced), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_Latest_RRC_Version_Enhanced, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Latest-RRC-Version-Enhanced" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_328[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 0, 0, 0 } /* Latest-RRC-Version-Enhanced */ +}; +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_328 = { + sizeof(struct RRC_Version_ExtIEs__extensionValue), + offsetof(struct RRC_Version_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct RRC_Version_ExtIEs__extensionValue, present), + sizeof(((struct RRC_Version_ExtIEs__extensionValue *)0)->present), + asn_MAP_extensionValue_tag2el_328, + 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_extensionValue_328 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_extensionValue_328, + 1, /* Elements count */ + &asn_SPC_extensionValue_specs_328 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RRC_Version_ExtIEs_325[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRC_Version_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_326, &asn_PER_memb_id_constr_326, memb_id_constraint_325 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRC_Version_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_RRC_Version_ExtIEs_criticality_type, + { &asn_OER_memb_criticality_constr_327, &asn_PER_memb_criticality_constr_327, memb_criticality_constraint_325 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RRC_Version_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_328, + select_RRC_Version_ExtIEs_extensionValue_type, + { &asn_OER_memb_extensionValue_constr_328, &asn_PER_memb_extensionValue_constr_328, memb_extensionValue_constraint_325 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_RRC_Version_ExtIEs_tags_325[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RRC_Version_ExtIEs_tag2el_325[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RRC_Version_ExtIEs_specs_325 = { + sizeof(struct RRC_Version_ExtIEs), + offsetof(struct RRC_Version_ExtIEs, _asn_ctx), + asn_MAP_RRC_Version_ExtIEs_tag2el_325, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RRC_Version_ExtIEs = { + "RRC-Version-ExtIEs", + "RRC-Version-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_RRC_Version_ExtIEs_tags_325, + sizeof(asn_DEF_RRC_Version_ExtIEs_tags_325) + /sizeof(asn_DEF_RRC_Version_ExtIEs_tags_325[0]), /* 1 */ + asn_DEF_RRC_Version_ExtIEs_tags_325, /* Same as above */ + sizeof(asn_DEF_RRC_Version_ExtIEs_tags_325) + /sizeof(asn_DEF_RRC_Version_ExtIEs_tags_325[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRC_Version_ExtIEs_325, + 3, /* Elements count */ + &asn_SPC_RRC_Version_ExtIEs_specs_325 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_332 = { + sizeof(struct SCell_FailedtoSetup_ItemExtIEs__extensionValue), + offsetof(struct SCell_FailedtoSetup_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct SCell_FailedtoSetup_ItemExtIEs__extensionValue, present), + sizeof(((struct SCell_FailedtoSetup_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_332 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_332 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SCell_FailedtoSetup_ItemExtIEs_329[] = { + { ATF_NOFLAGS, 0, offsetof(struct SCell_FailedtoSetup_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_330, &asn_PER_memb_id_constr_330, memb_id_constraint_329 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SCell_FailedtoSetup_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_331, &asn_PER_memb_criticality_constr_331, memb_criticality_constraint_329 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SCell_FailedtoSetup_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_332, + 0, + { &asn_OER_memb_extensionValue_constr_332, &asn_PER_memb_extensionValue_constr_332, memb_extensionValue_constraint_329 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_SCell_FailedtoSetup_ItemExtIEs_tags_329[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SCell_FailedtoSetup_ItemExtIEs_tag2el_329[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SCell_FailedtoSetup_ItemExtIEs_specs_329 = { + sizeof(struct SCell_FailedtoSetup_ItemExtIEs), + offsetof(struct SCell_FailedtoSetup_ItemExtIEs, _asn_ctx), + asn_MAP_SCell_FailedtoSetup_ItemExtIEs_tag2el_329, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SCell_FailedtoSetup_ItemExtIEs = { + "SCell-FailedtoSetup-ItemExtIEs", + "SCell-FailedtoSetup-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_SCell_FailedtoSetup_ItemExtIEs_tags_329, + sizeof(asn_DEF_SCell_FailedtoSetup_ItemExtIEs_tags_329) + /sizeof(asn_DEF_SCell_FailedtoSetup_ItemExtIEs_tags_329[0]), /* 1 */ + asn_DEF_SCell_FailedtoSetup_ItemExtIEs_tags_329, /* Same as above */ + sizeof(asn_DEF_SCell_FailedtoSetup_ItemExtIEs_tags_329) + /sizeof(asn_DEF_SCell_FailedtoSetup_ItemExtIEs_tags_329[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SCell_FailedtoSetup_ItemExtIEs_329, + 3, /* Elements count */ + &asn_SPC_SCell_FailedtoSetup_ItemExtIEs_specs_329 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_336 = { + sizeof(struct SCell_FailedtoSetupMod_ItemExtIEs__extensionValue), + offsetof(struct SCell_FailedtoSetupMod_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct SCell_FailedtoSetupMod_ItemExtIEs__extensionValue, present), + sizeof(((struct SCell_FailedtoSetupMod_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_336 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_336 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SCell_FailedtoSetupMod_ItemExtIEs_333[] = { + { ATF_NOFLAGS, 0, offsetof(struct SCell_FailedtoSetupMod_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_334, &asn_PER_memb_id_constr_334, memb_id_constraint_333 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SCell_FailedtoSetupMod_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_335, &asn_PER_memb_criticality_constr_335, memb_criticality_constraint_333 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SCell_FailedtoSetupMod_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_336, + 0, + { &asn_OER_memb_extensionValue_constr_336, &asn_PER_memb_extensionValue_constr_336, memb_extensionValue_constraint_333 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_SCell_FailedtoSetupMod_ItemExtIEs_tags_333[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SCell_FailedtoSetupMod_ItemExtIEs_tag2el_333[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SCell_FailedtoSetupMod_ItemExtIEs_specs_333 = { + sizeof(struct SCell_FailedtoSetupMod_ItemExtIEs), + offsetof(struct SCell_FailedtoSetupMod_ItemExtIEs, _asn_ctx), + asn_MAP_SCell_FailedtoSetupMod_ItemExtIEs_tag2el_333, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SCell_FailedtoSetupMod_ItemExtIEs = { + "SCell-FailedtoSetupMod-ItemExtIEs", + "SCell-FailedtoSetupMod-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_SCell_FailedtoSetupMod_ItemExtIEs_tags_333, + sizeof(asn_DEF_SCell_FailedtoSetupMod_ItemExtIEs_tags_333) + /sizeof(asn_DEF_SCell_FailedtoSetupMod_ItemExtIEs_tags_333[0]), /* 1 */ + asn_DEF_SCell_FailedtoSetupMod_ItemExtIEs_tags_333, /* Same as above */ + sizeof(asn_DEF_SCell_FailedtoSetupMod_ItemExtIEs_tags_333) + /sizeof(asn_DEF_SCell_FailedtoSetupMod_ItemExtIEs_tags_333[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SCell_FailedtoSetupMod_ItemExtIEs_333, + 3, /* Elements count */ + &asn_SPC_SCell_FailedtoSetupMod_ItemExtIEs_specs_333 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_340 = { + sizeof(struct SCell_ToBeRemoved_ItemExtIEs__extensionValue), + offsetof(struct SCell_ToBeRemoved_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct SCell_ToBeRemoved_ItemExtIEs__extensionValue, present), + sizeof(((struct SCell_ToBeRemoved_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_340 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_340 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SCell_ToBeRemoved_ItemExtIEs_337[] = { + { ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeRemoved_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_338, &asn_PER_memb_id_constr_338, memb_id_constraint_337 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeRemoved_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_339, &asn_PER_memb_criticality_constr_339, memb_criticality_constraint_337 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeRemoved_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_340, + 0, + { &asn_OER_memb_extensionValue_constr_340, &asn_PER_memb_extensionValue_constr_340, memb_extensionValue_constraint_337 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_SCell_ToBeRemoved_ItemExtIEs_tags_337[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SCell_ToBeRemoved_ItemExtIEs_tag2el_337[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SCell_ToBeRemoved_ItemExtIEs_specs_337 = { + sizeof(struct SCell_ToBeRemoved_ItemExtIEs), + offsetof(struct SCell_ToBeRemoved_ItemExtIEs, _asn_ctx), + asn_MAP_SCell_ToBeRemoved_ItemExtIEs_tag2el_337, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SCell_ToBeRemoved_ItemExtIEs = { + "SCell-ToBeRemoved-ItemExtIEs", + "SCell-ToBeRemoved-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_SCell_ToBeRemoved_ItemExtIEs_tags_337, + sizeof(asn_DEF_SCell_ToBeRemoved_ItemExtIEs_tags_337) + /sizeof(asn_DEF_SCell_ToBeRemoved_ItemExtIEs_tags_337[0]), /* 1 */ + asn_DEF_SCell_ToBeRemoved_ItemExtIEs_tags_337, /* Same as above */ + sizeof(asn_DEF_SCell_ToBeRemoved_ItemExtIEs_tags_337) + /sizeof(asn_DEF_SCell_ToBeRemoved_ItemExtIEs_tags_337[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SCell_ToBeRemoved_ItemExtIEs_337, + 3, /* Elements count */ + &asn_SPC_SCell_ToBeRemoved_ItemExtIEs_specs_337 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_extensionValue_344[] = { + { ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeSetup_ItemExtIEs__extensionValue, choice.ServingCellMO), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ServingCellMO, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ServingCellMO" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_344[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* ServingCellMO */ +}; +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_344 = { + sizeof(struct SCell_ToBeSetup_ItemExtIEs__extensionValue), + offsetof(struct SCell_ToBeSetup_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct SCell_ToBeSetup_ItemExtIEs__extensionValue, present), + sizeof(((struct SCell_ToBeSetup_ItemExtIEs__extensionValue *)0)->present), + asn_MAP_extensionValue_tag2el_344, + 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_extensionValue_344 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_extensionValue_344, + 1, /* Elements count */ + &asn_SPC_extensionValue_specs_344 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SCell_ToBeSetup_ItemExtIEs_341[] = { + { ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeSetup_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_342, &asn_PER_memb_id_constr_342, memb_id_constraint_341 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeSetup_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_SCell_ToBeSetup_ItemExtIEs_criticality_type, + { &asn_OER_memb_criticality_constr_343, &asn_PER_memb_criticality_constr_343, memb_criticality_constraint_341 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeSetup_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_344, + select_SCell_ToBeSetup_ItemExtIEs_extensionValue_type, + { &asn_OER_memb_extensionValue_constr_344, &asn_PER_memb_extensionValue_constr_344, memb_extensionValue_constraint_341 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_SCell_ToBeSetup_ItemExtIEs_tags_341[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SCell_ToBeSetup_ItemExtIEs_tag2el_341[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SCell_ToBeSetup_ItemExtIEs_specs_341 = { + sizeof(struct SCell_ToBeSetup_ItemExtIEs), + offsetof(struct SCell_ToBeSetup_ItemExtIEs, _asn_ctx), + asn_MAP_SCell_ToBeSetup_ItemExtIEs_tag2el_341, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SCell_ToBeSetup_ItemExtIEs = { + "SCell-ToBeSetup-ItemExtIEs", + "SCell-ToBeSetup-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_SCell_ToBeSetup_ItemExtIEs_tags_341, + sizeof(asn_DEF_SCell_ToBeSetup_ItemExtIEs_tags_341) + /sizeof(asn_DEF_SCell_ToBeSetup_ItemExtIEs_tags_341[0]), /* 1 */ + asn_DEF_SCell_ToBeSetup_ItemExtIEs_tags_341, /* Same as above */ + sizeof(asn_DEF_SCell_ToBeSetup_ItemExtIEs_tags_341) + /sizeof(asn_DEF_SCell_ToBeSetup_ItemExtIEs_tags_341[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SCell_ToBeSetup_ItemExtIEs_341, + 3, /* Elements count */ + &asn_SPC_SCell_ToBeSetup_ItemExtIEs_specs_341 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_extensionValue_348[] = { + { ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeSetupMod_ItemExtIEs__extensionValue, choice.ServingCellMO), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ServingCellMO, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ServingCellMO" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_348[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* ServingCellMO */ +}; +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_348 = { + sizeof(struct SCell_ToBeSetupMod_ItemExtIEs__extensionValue), + offsetof(struct SCell_ToBeSetupMod_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct SCell_ToBeSetupMod_ItemExtIEs__extensionValue, present), + sizeof(((struct SCell_ToBeSetupMod_ItemExtIEs__extensionValue *)0)->present), + asn_MAP_extensionValue_tag2el_348, + 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_extensionValue_348 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_extensionValue_348, + 1, /* Elements count */ + &asn_SPC_extensionValue_specs_348 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SCell_ToBeSetupMod_ItemExtIEs_345[] = { + { ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeSetupMod_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_346, &asn_PER_memb_id_constr_346, memb_id_constraint_345 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeSetupMod_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_SCell_ToBeSetupMod_ItemExtIEs_criticality_type, + { &asn_OER_memb_criticality_constr_347, &asn_PER_memb_criticality_constr_347, memb_criticality_constraint_345 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeSetupMod_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_348, + select_SCell_ToBeSetupMod_ItemExtIEs_extensionValue_type, + { &asn_OER_memb_extensionValue_constr_348, &asn_PER_memb_extensionValue_constr_348, memb_extensionValue_constraint_345 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_SCell_ToBeSetupMod_ItemExtIEs_tags_345[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SCell_ToBeSetupMod_ItemExtIEs_tag2el_345[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SCell_ToBeSetupMod_ItemExtIEs_specs_345 = { + sizeof(struct SCell_ToBeSetupMod_ItemExtIEs), + offsetof(struct SCell_ToBeSetupMod_ItemExtIEs, _asn_ctx), + asn_MAP_SCell_ToBeSetupMod_ItemExtIEs_tag2el_345, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SCell_ToBeSetupMod_ItemExtIEs = { + "SCell-ToBeSetupMod-ItemExtIEs", + "SCell-ToBeSetupMod-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_SCell_ToBeSetupMod_ItemExtIEs_tags_345, + sizeof(asn_DEF_SCell_ToBeSetupMod_ItemExtIEs_tags_345) + /sizeof(asn_DEF_SCell_ToBeSetupMod_ItemExtIEs_tags_345[0]), /* 1 */ + asn_DEF_SCell_ToBeSetupMod_ItemExtIEs_tags_345, /* Same as above */ + sizeof(asn_DEF_SCell_ToBeSetupMod_ItemExtIEs_tags_345) + /sizeof(asn_DEF_SCell_ToBeSetupMod_ItemExtIEs_tags_345[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SCell_ToBeSetupMod_ItemExtIEs_345, + 3, /* Elements count */ + &asn_SPC_SCell_ToBeSetupMod_ItemExtIEs_specs_345 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_extensionValue_352[] = { + { ATF_NOFLAGS, 0, offsetof(struct Served_Cell_Information_ExtIEs__extensionValue, choice.RANAC), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RANAC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RANAC" + }, + { ATF_NOFLAGS, 0, offsetof(struct Served_Cell_Information_ExtIEs__extensionValue, choice.ExtendedServedPLMNs_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ExtendedServedPLMNs_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ExtendedServedPLMNs-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct Served_Cell_Information_ExtIEs__extensionValue, choice.Cell_Direction), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Cell_Direction, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cell-Direction" + }, +}; +static const unsigned asn_MAP_extensionValue_to_canonical_352[] = { 0, 2, 1 }; +static const unsigned asn_MAP_extensionValue_from_canonical_352[] = { 0, 2, 1 }; +static const asn_TYPE_tag2member_t asn_MAP_extensionValue_tag2el_352[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* RANAC */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* Cell-Direction */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* ExtendedServedPLMNs-List */ +}; +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_352 = { + sizeof(struct Served_Cell_Information_ExtIEs__extensionValue), + offsetof(struct Served_Cell_Information_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct Served_Cell_Information_ExtIEs__extensionValue, present), + sizeof(((struct Served_Cell_Information_ExtIEs__extensionValue *)0)->present), + asn_MAP_extensionValue_tag2el_352, + 3, /* Count of tags in the map */ + asn_MAP_extensionValue_to_canonical_352, + asn_MAP_extensionValue_from_canonical_352, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_352 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_extensionValue_352, + 3, /* Elements count */ + &asn_SPC_extensionValue_specs_352 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Served_Cell_Information_ExtIEs_349[] = { + { ATF_NOFLAGS, 0, offsetof(struct Served_Cell_Information_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_350, &asn_PER_memb_id_constr_350, memb_id_constraint_349 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Served_Cell_Information_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_Served_Cell_Information_ExtIEs_criticality_type, + { &asn_OER_memb_criticality_constr_351, &asn_PER_memb_criticality_constr_351, memb_criticality_constraint_349 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Served_Cell_Information_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_352, + select_Served_Cell_Information_ExtIEs_extensionValue_type, + { &asn_OER_memb_extensionValue_constr_352, &asn_PER_memb_extensionValue_constr_352, memb_extensionValue_constraint_349 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Served_Cell_Information_ExtIEs_tags_349[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Served_Cell_Information_ExtIEs_tag2el_349[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Served_Cell_Information_ExtIEs_specs_349 = { + sizeof(struct Served_Cell_Information_ExtIEs), + offsetof(struct Served_Cell_Information_ExtIEs, _asn_ctx), + asn_MAP_Served_Cell_Information_ExtIEs_tag2el_349, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Served_Cell_Information_ExtIEs = { + "Served-Cell-Information-ExtIEs", + "Served-Cell-Information-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_Served_Cell_Information_ExtIEs_tags_349, + sizeof(asn_DEF_Served_Cell_Information_ExtIEs_tags_349) + /sizeof(asn_DEF_Served_Cell_Information_ExtIEs_tags_349[0]), /* 1 */ + asn_DEF_Served_Cell_Information_ExtIEs_tags_349, /* Same as above */ + sizeof(asn_DEF_Served_Cell_Information_ExtIEs_tags_349) + /sizeof(asn_DEF_Served_Cell_Information_ExtIEs_tags_349[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Served_Cell_Information_ExtIEs_349, + 3, /* Elements count */ + &asn_SPC_Served_Cell_Information_ExtIEs_specs_349 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_356 = { + sizeof(struct Served_Cells_To_Add_ItemExtIEs__extensionValue), + offsetof(struct Served_Cells_To_Add_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct Served_Cells_To_Add_ItemExtIEs__extensionValue, present), + sizeof(((struct Served_Cells_To_Add_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_356 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_356 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Served_Cells_To_Add_ItemExtIEs_353[] = { + { ATF_NOFLAGS, 0, offsetof(struct Served_Cells_To_Add_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_354, &asn_PER_memb_id_constr_354, memb_id_constraint_353 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Served_Cells_To_Add_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_355, &asn_PER_memb_criticality_constr_355, memb_criticality_constraint_353 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Served_Cells_To_Add_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_356, + 0, + { &asn_OER_memb_extensionValue_constr_356, &asn_PER_memb_extensionValue_constr_356, memb_extensionValue_constraint_353 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Served_Cells_To_Add_ItemExtIEs_tags_353[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Served_Cells_To_Add_ItemExtIEs_tag2el_353[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Served_Cells_To_Add_ItemExtIEs_specs_353 = { + sizeof(struct Served_Cells_To_Add_ItemExtIEs), + offsetof(struct Served_Cells_To_Add_ItemExtIEs, _asn_ctx), + asn_MAP_Served_Cells_To_Add_ItemExtIEs_tag2el_353, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Served_Cells_To_Add_ItemExtIEs = { + "Served-Cells-To-Add-ItemExtIEs", + "Served-Cells-To-Add-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_Served_Cells_To_Add_ItemExtIEs_tags_353, + sizeof(asn_DEF_Served_Cells_To_Add_ItemExtIEs_tags_353) + /sizeof(asn_DEF_Served_Cells_To_Add_ItemExtIEs_tags_353[0]), /* 1 */ + asn_DEF_Served_Cells_To_Add_ItemExtIEs_tags_353, /* Same as above */ + sizeof(asn_DEF_Served_Cells_To_Add_ItemExtIEs_tags_353) + /sizeof(asn_DEF_Served_Cells_To_Add_ItemExtIEs_tags_353[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Served_Cells_To_Add_ItemExtIEs_353, + 3, /* Elements count */ + &asn_SPC_Served_Cells_To_Add_ItemExtIEs_specs_353 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_360 = { + sizeof(struct Served_Cells_To_Delete_ItemExtIEs__extensionValue), + offsetof(struct Served_Cells_To_Delete_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct Served_Cells_To_Delete_ItemExtIEs__extensionValue, present), + sizeof(((struct Served_Cells_To_Delete_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_360 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_360 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Served_Cells_To_Delete_ItemExtIEs_357[] = { + { ATF_NOFLAGS, 0, offsetof(struct Served_Cells_To_Delete_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_358, &asn_PER_memb_id_constr_358, memb_id_constraint_357 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Served_Cells_To_Delete_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_359, &asn_PER_memb_criticality_constr_359, memb_criticality_constraint_357 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Served_Cells_To_Delete_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_360, + 0, + { &asn_OER_memb_extensionValue_constr_360, &asn_PER_memb_extensionValue_constr_360, memb_extensionValue_constraint_357 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Served_Cells_To_Delete_ItemExtIEs_tags_357[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Served_Cells_To_Delete_ItemExtIEs_tag2el_357[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Served_Cells_To_Delete_ItemExtIEs_specs_357 = { + sizeof(struct Served_Cells_To_Delete_ItemExtIEs), + offsetof(struct Served_Cells_To_Delete_ItemExtIEs, _asn_ctx), + asn_MAP_Served_Cells_To_Delete_ItemExtIEs_tag2el_357, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Served_Cells_To_Delete_ItemExtIEs = { + "Served-Cells-To-Delete-ItemExtIEs", + "Served-Cells-To-Delete-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_Served_Cells_To_Delete_ItemExtIEs_tags_357, + sizeof(asn_DEF_Served_Cells_To_Delete_ItemExtIEs_tags_357) + /sizeof(asn_DEF_Served_Cells_To_Delete_ItemExtIEs_tags_357[0]), /* 1 */ + asn_DEF_Served_Cells_To_Delete_ItemExtIEs_tags_357, /* Same as above */ + sizeof(asn_DEF_Served_Cells_To_Delete_ItemExtIEs_tags_357) + /sizeof(asn_DEF_Served_Cells_To_Delete_ItemExtIEs_tags_357[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Served_Cells_To_Delete_ItemExtIEs_357, + 3, /* Elements count */ + &asn_SPC_Served_Cells_To_Delete_ItemExtIEs_specs_357 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_364 = { + sizeof(struct Served_Cells_To_Modify_ItemExtIEs__extensionValue), + offsetof(struct Served_Cells_To_Modify_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct Served_Cells_To_Modify_ItemExtIEs__extensionValue, present), + sizeof(((struct Served_Cells_To_Modify_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_364 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_364 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Served_Cells_To_Modify_ItemExtIEs_361[] = { + { ATF_NOFLAGS, 0, offsetof(struct Served_Cells_To_Modify_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_362, &asn_PER_memb_id_constr_362, memb_id_constraint_361 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Served_Cells_To_Modify_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_363, &asn_PER_memb_criticality_constr_363, memb_criticality_constraint_361 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Served_Cells_To_Modify_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_364, + 0, + { &asn_OER_memb_extensionValue_constr_364, &asn_PER_memb_extensionValue_constr_364, memb_extensionValue_constraint_361 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Served_Cells_To_Modify_ItemExtIEs_tags_361[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Served_Cells_To_Modify_ItemExtIEs_tag2el_361[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Served_Cells_To_Modify_ItemExtIEs_specs_361 = { + sizeof(struct Served_Cells_To_Modify_ItemExtIEs), + offsetof(struct Served_Cells_To_Modify_ItemExtIEs, _asn_ctx), + asn_MAP_Served_Cells_To_Modify_ItemExtIEs_tag2el_361, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Served_Cells_To_Modify_ItemExtIEs = { + "Served-Cells-To-Modify-ItemExtIEs", + "Served-Cells-To-Modify-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_Served_Cells_To_Modify_ItemExtIEs_tags_361, + sizeof(asn_DEF_Served_Cells_To_Modify_ItemExtIEs_tags_361) + /sizeof(asn_DEF_Served_Cells_To_Modify_ItemExtIEs_tags_361[0]), /* 1 */ + asn_DEF_Served_Cells_To_Modify_ItemExtIEs_tags_361, /* Same as above */ + sizeof(asn_DEF_Served_Cells_To_Modify_ItemExtIEs_tags_361) + /sizeof(asn_DEF_Served_Cells_To_Modify_ItemExtIEs_tags_361[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Served_Cells_To_Modify_ItemExtIEs_361, + 3, /* Elements count */ + &asn_SPC_Served_Cells_To_Modify_ItemExtIEs_specs_361 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_368 = { + sizeof(struct Served_EUTRA_Cell_Information_ExtIEs__extensionValue), + offsetof(struct Served_EUTRA_Cell_Information_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct Served_EUTRA_Cell_Information_ExtIEs__extensionValue, present), + sizeof(((struct Served_EUTRA_Cell_Information_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_368 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_368 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Served_EUTRA_Cell_Information_ExtIEs_365[] = { + { ATF_NOFLAGS, 0, offsetof(struct Served_EUTRA_Cell_Information_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_366, &asn_PER_memb_id_constr_366, memb_id_constraint_365 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Served_EUTRA_Cell_Information_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_367, &asn_PER_memb_criticality_constr_367, memb_criticality_constraint_365 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Served_EUTRA_Cell_Information_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_368, + 0, + { &asn_OER_memb_extensionValue_constr_368, &asn_PER_memb_extensionValue_constr_368, memb_extensionValue_constraint_365 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Served_EUTRA_Cell_Information_ExtIEs_tags_365[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Served_EUTRA_Cell_Information_ExtIEs_tag2el_365[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Served_EUTRA_Cell_Information_ExtIEs_specs_365 = { + sizeof(struct Served_EUTRA_Cell_Information_ExtIEs), + offsetof(struct Served_EUTRA_Cell_Information_ExtIEs, _asn_ctx), + asn_MAP_Served_EUTRA_Cell_Information_ExtIEs_tag2el_365, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Served_EUTRA_Cell_Information_ExtIEs = { + "Served-EUTRA-Cell-Information-ExtIEs", + "Served-EUTRA-Cell-Information-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_Served_EUTRA_Cell_Information_ExtIEs_tags_365, + sizeof(asn_DEF_Served_EUTRA_Cell_Information_ExtIEs_tags_365) + /sizeof(asn_DEF_Served_EUTRA_Cell_Information_ExtIEs_tags_365[0]), /* 1 */ + asn_DEF_Served_EUTRA_Cell_Information_ExtIEs_tags_365, /* Same as above */ + sizeof(asn_DEF_Served_EUTRA_Cell_Information_ExtIEs_tags_365) + /sizeof(asn_DEF_Served_EUTRA_Cell_Information_ExtIEs_tags_365[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Served_EUTRA_Cell_Information_ExtIEs_365, + 3, /* Elements count */ + &asn_SPC_Served_EUTRA_Cell_Information_ExtIEs_specs_365 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_372 = { + sizeof(struct Service_Status_ExtIEs__extensionValue), + offsetof(struct Service_Status_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct Service_Status_ExtIEs__extensionValue, present), + sizeof(((struct Service_Status_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_372 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_372 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Service_Status_ExtIEs_369[] = { + { ATF_NOFLAGS, 0, offsetof(struct Service_Status_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_370, &asn_PER_memb_id_constr_370, memb_id_constraint_369 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Service_Status_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_371, &asn_PER_memb_criticality_constr_371, memb_criticality_constraint_369 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Service_Status_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_372, + 0, + { &asn_OER_memb_extensionValue_constr_372, &asn_PER_memb_extensionValue_constr_372, memb_extensionValue_constraint_369 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Service_Status_ExtIEs_tags_369[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Service_Status_ExtIEs_tag2el_369[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Service_Status_ExtIEs_specs_369 = { + sizeof(struct Service_Status_ExtIEs), + offsetof(struct Service_Status_ExtIEs, _asn_ctx), + asn_MAP_Service_Status_ExtIEs_tag2el_369, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Service_Status_ExtIEs = { + "Service-Status-ExtIEs", + "Service-Status-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_Service_Status_ExtIEs_tags_369, + sizeof(asn_DEF_Service_Status_ExtIEs_tags_369) + /sizeof(asn_DEF_Service_Status_ExtIEs_tags_369[0]), /* 1 */ + asn_DEF_Service_Status_ExtIEs_tags_369, /* Same as above */ + sizeof(asn_DEF_Service_Status_ExtIEs_tags_369) + /sizeof(asn_DEF_Service_Status_ExtIEs_tags_369[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Service_Status_ExtIEs_369, + 3, /* Elements count */ + &asn_SPC_Service_Status_ExtIEs_specs_369 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_376 = { + sizeof(struct SItype_ItemExtIEs__extensionValue), + offsetof(struct SItype_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct SItype_ItemExtIEs__extensionValue, present), + sizeof(((struct SItype_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_376 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_376 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SItype_ItemExtIEs_373[] = { + { ATF_NOFLAGS, 0, offsetof(struct SItype_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_374, &asn_PER_memb_id_constr_374, memb_id_constraint_373 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SItype_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_375, &asn_PER_memb_criticality_constr_375, memb_criticality_constraint_373 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SItype_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_376, + 0, + { &asn_OER_memb_extensionValue_constr_376, &asn_PER_memb_extensionValue_constr_376, memb_extensionValue_constraint_373 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_SItype_ItemExtIEs_tags_373[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SItype_ItemExtIEs_tag2el_373[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SItype_ItemExtIEs_specs_373 = { + sizeof(struct SItype_ItemExtIEs), + offsetof(struct SItype_ItemExtIEs, _asn_ctx), + asn_MAP_SItype_ItemExtIEs_tag2el_373, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SItype_ItemExtIEs = { + "SItype-ItemExtIEs", + "SItype-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_SItype_ItemExtIEs_tags_373, + sizeof(asn_DEF_SItype_ItemExtIEs_tags_373) + /sizeof(asn_DEF_SItype_ItemExtIEs_tags_373[0]), /* 1 */ + asn_DEF_SItype_ItemExtIEs_tags_373, /* Same as above */ + sizeof(asn_DEF_SItype_ItemExtIEs_tags_373) + /sizeof(asn_DEF_SItype_ItemExtIEs_tags_373[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SItype_ItemExtIEs_373, + 3, /* Elements count */ + &asn_SPC_SItype_ItemExtIEs_specs_373 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_380 = { + sizeof(struct SibtypetobeupdatedListItem_ExtIEs__extensionValue), + offsetof(struct SibtypetobeupdatedListItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct SibtypetobeupdatedListItem_ExtIEs__extensionValue, present), + sizeof(((struct SibtypetobeupdatedListItem_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_380 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_380 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SibtypetobeupdatedListItem_ExtIEs_377[] = { + { ATF_NOFLAGS, 0, offsetof(struct SibtypetobeupdatedListItem_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_378, &asn_PER_memb_id_constr_378, memb_id_constraint_377 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SibtypetobeupdatedListItem_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_379, &asn_PER_memb_criticality_constr_379, memb_criticality_constraint_377 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SibtypetobeupdatedListItem_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_380, + 0, + { &asn_OER_memb_extensionValue_constr_380, &asn_PER_memb_extensionValue_constr_380, memb_extensionValue_constraint_377 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_SibtypetobeupdatedListItem_ExtIEs_tags_377[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SibtypetobeupdatedListItem_ExtIEs_tag2el_377[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SibtypetobeupdatedListItem_ExtIEs_specs_377 = { + sizeof(struct SibtypetobeupdatedListItem_ExtIEs), + offsetof(struct SibtypetobeupdatedListItem_ExtIEs, _asn_ctx), + asn_MAP_SibtypetobeupdatedListItem_ExtIEs_tag2el_377, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SibtypetobeupdatedListItem_ExtIEs = { + "SibtypetobeupdatedListItem-ExtIEs", + "SibtypetobeupdatedListItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_SibtypetobeupdatedListItem_ExtIEs_tags_377, + sizeof(asn_DEF_SibtypetobeupdatedListItem_ExtIEs_tags_377) + /sizeof(asn_DEF_SibtypetobeupdatedListItem_ExtIEs_tags_377[0]), /* 1 */ + asn_DEF_SibtypetobeupdatedListItem_ExtIEs_tags_377, /* Same as above */ + sizeof(asn_DEF_SibtypetobeupdatedListItem_ExtIEs_tags_377) + /sizeof(asn_DEF_SibtypetobeupdatedListItem_ExtIEs_tags_377[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SibtypetobeupdatedListItem_ExtIEs_377, + 3, /* Elements count */ + &asn_SPC_SibtypetobeupdatedListItem_ExtIEs_specs_377 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_384 = { + sizeof(struct SliceSupportItem_ExtIEs__extensionValue), + offsetof(struct SliceSupportItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct SliceSupportItem_ExtIEs__extensionValue, present), + sizeof(((struct SliceSupportItem_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_384 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_384 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SliceSupportItem_ExtIEs_381[] = { + { ATF_NOFLAGS, 0, offsetof(struct SliceSupportItem_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_382, &asn_PER_memb_id_constr_382, memb_id_constraint_381 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SliceSupportItem_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_383, &asn_PER_memb_criticality_constr_383, memb_criticality_constraint_381 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SliceSupportItem_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_384, + 0, + { &asn_OER_memb_extensionValue_constr_384, &asn_PER_memb_extensionValue_constr_384, memb_extensionValue_constraint_381 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_SliceSupportItem_ExtIEs_tags_381[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SliceSupportItem_ExtIEs_tag2el_381[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SliceSupportItem_ExtIEs_specs_381 = { + sizeof(struct SliceSupportItem_ExtIEs), + offsetof(struct SliceSupportItem_ExtIEs, _asn_ctx), + asn_MAP_SliceSupportItem_ExtIEs_tag2el_381, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SliceSupportItem_ExtIEs = { + "SliceSupportItem-ExtIEs", + "SliceSupportItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_SliceSupportItem_ExtIEs_tags_381, + sizeof(asn_DEF_SliceSupportItem_ExtIEs_tags_381) + /sizeof(asn_DEF_SliceSupportItem_ExtIEs_tags_381[0]), /* 1 */ + asn_DEF_SliceSupportItem_ExtIEs_tags_381, /* Same as above */ + sizeof(asn_DEF_SliceSupportItem_ExtIEs_tags_381) + /sizeof(asn_DEF_SliceSupportItem_ExtIEs_tags_381[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SliceSupportItem_ExtIEs_381, + 3, /* Elements count */ + &asn_SPC_SliceSupportItem_ExtIEs_specs_381 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_388 = { + sizeof(struct SNSSAI_ExtIEs__extensionValue), + offsetof(struct SNSSAI_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct SNSSAI_ExtIEs__extensionValue, present), + sizeof(((struct SNSSAI_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_388 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_388 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SNSSAI_ExtIEs_385[] = { + { ATF_NOFLAGS, 0, offsetof(struct SNSSAI_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_386, &asn_PER_memb_id_constr_386, memb_id_constraint_385 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SNSSAI_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_387, &asn_PER_memb_criticality_constr_387, memb_criticality_constraint_385 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SNSSAI_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_388, + 0, + { &asn_OER_memb_extensionValue_constr_388, &asn_PER_memb_extensionValue_constr_388, memb_extensionValue_constraint_385 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_SNSSAI_ExtIEs_tags_385[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SNSSAI_ExtIEs_tag2el_385[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SNSSAI_ExtIEs_specs_385 = { + sizeof(struct SNSSAI_ExtIEs), + offsetof(struct SNSSAI_ExtIEs, _asn_ctx), + asn_MAP_SNSSAI_ExtIEs_tag2el_385, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SNSSAI_ExtIEs = { + "SNSSAI-ExtIEs", + "SNSSAI-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_SNSSAI_ExtIEs_tags_385, + sizeof(asn_DEF_SNSSAI_ExtIEs_tags_385) + /sizeof(asn_DEF_SNSSAI_ExtIEs_tags_385[0]), /* 1 */ + asn_DEF_SNSSAI_ExtIEs_tags_385, /* Same as above */ + sizeof(asn_DEF_SNSSAI_ExtIEs_tags_385) + /sizeof(asn_DEF_SNSSAI_ExtIEs_tags_385[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SNSSAI_ExtIEs_385, + 3, /* Elements count */ + &asn_SPC_SNSSAI_ExtIEs_specs_385 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_392 = { + sizeof(struct SRBs_FailedToBeSetup_ItemExtIEs__extensionValue), + offsetof(struct SRBs_FailedToBeSetup_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct SRBs_FailedToBeSetup_ItemExtIEs__extensionValue, present), + sizeof(((struct SRBs_FailedToBeSetup_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_392 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_392 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRBs_FailedToBeSetup_ItemExtIEs_389[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_FailedToBeSetup_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_390, &asn_PER_memb_id_constr_390, memb_id_constraint_389 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRBs_FailedToBeSetup_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_391, &asn_PER_memb_criticality_constr_391, memb_criticality_constraint_389 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SRBs_FailedToBeSetup_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_392, + 0, + { &asn_OER_memb_extensionValue_constr_392, &asn_PER_memb_extensionValue_constr_392, memb_extensionValue_constraint_389 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_FailedToBeSetup_ItemExtIEs_tags_389[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_FailedToBeSetup_ItemExtIEs_tag2el_389[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SRBs_FailedToBeSetup_ItemExtIEs_specs_389 = { + sizeof(struct SRBs_FailedToBeSetup_ItemExtIEs), + offsetof(struct SRBs_FailedToBeSetup_ItemExtIEs, _asn_ctx), + asn_MAP_SRBs_FailedToBeSetup_ItemExtIEs_tag2el_389, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_FailedToBeSetup_ItemExtIEs = { + "SRBs-FailedToBeSetup-ItemExtIEs", + "SRBs-FailedToBeSetup-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_FailedToBeSetup_ItemExtIEs_tags_389, + sizeof(asn_DEF_SRBs_FailedToBeSetup_ItemExtIEs_tags_389) + /sizeof(asn_DEF_SRBs_FailedToBeSetup_ItemExtIEs_tags_389[0]), /* 1 */ + asn_DEF_SRBs_FailedToBeSetup_ItemExtIEs_tags_389, /* Same as above */ + sizeof(asn_DEF_SRBs_FailedToBeSetup_ItemExtIEs_tags_389) + /sizeof(asn_DEF_SRBs_FailedToBeSetup_ItemExtIEs_tags_389[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_FailedToBeSetup_ItemExtIEs_389, + 3, /* Elements count */ + &asn_SPC_SRBs_FailedToBeSetup_ItemExtIEs_specs_389 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_396 = { + sizeof(struct SRBs_FailedToBeSetupMod_ItemExtIEs__extensionValue), + offsetof(struct SRBs_FailedToBeSetupMod_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct SRBs_FailedToBeSetupMod_ItemExtIEs__extensionValue, present), + sizeof(((struct SRBs_FailedToBeSetupMod_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_396 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_396 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRBs_FailedToBeSetupMod_ItemExtIEs_393[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_FailedToBeSetupMod_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_394, &asn_PER_memb_id_constr_394, memb_id_constraint_393 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRBs_FailedToBeSetupMod_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_395, &asn_PER_memb_criticality_constr_395, memb_criticality_constraint_393 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SRBs_FailedToBeSetupMod_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_396, + 0, + { &asn_OER_memb_extensionValue_constr_396, &asn_PER_memb_extensionValue_constr_396, memb_extensionValue_constraint_393 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_FailedToBeSetupMod_ItemExtIEs_tags_393[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_FailedToBeSetupMod_ItemExtIEs_tag2el_393[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SRBs_FailedToBeSetupMod_ItemExtIEs_specs_393 = { + sizeof(struct SRBs_FailedToBeSetupMod_ItemExtIEs), + offsetof(struct SRBs_FailedToBeSetupMod_ItemExtIEs, _asn_ctx), + asn_MAP_SRBs_FailedToBeSetupMod_ItemExtIEs_tag2el_393, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_FailedToBeSetupMod_ItemExtIEs = { + "SRBs-FailedToBeSetupMod-ItemExtIEs", + "SRBs-FailedToBeSetupMod-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_FailedToBeSetupMod_ItemExtIEs_tags_393, + sizeof(asn_DEF_SRBs_FailedToBeSetupMod_ItemExtIEs_tags_393) + /sizeof(asn_DEF_SRBs_FailedToBeSetupMod_ItemExtIEs_tags_393[0]), /* 1 */ + asn_DEF_SRBs_FailedToBeSetupMod_ItemExtIEs_tags_393, /* Same as above */ + sizeof(asn_DEF_SRBs_FailedToBeSetupMod_ItemExtIEs_tags_393) + /sizeof(asn_DEF_SRBs_FailedToBeSetupMod_ItemExtIEs_tags_393[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_FailedToBeSetupMod_ItemExtIEs_393, + 3, /* Elements count */ + &asn_SPC_SRBs_FailedToBeSetupMod_ItemExtIEs_specs_393 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_400 = { + sizeof(struct SRBs_Modified_ItemExtIEs__extensionValue), + offsetof(struct SRBs_Modified_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct SRBs_Modified_ItemExtIEs__extensionValue, present), + sizeof(((struct SRBs_Modified_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_400 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_400 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRBs_Modified_ItemExtIEs_397[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_Modified_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_398, &asn_PER_memb_id_constr_398, memb_id_constraint_397 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRBs_Modified_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_399, &asn_PER_memb_criticality_constr_399, memb_criticality_constraint_397 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SRBs_Modified_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_400, + 0, + { &asn_OER_memb_extensionValue_constr_400, &asn_PER_memb_extensionValue_constr_400, memb_extensionValue_constraint_397 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_Modified_ItemExtIEs_tags_397[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_Modified_ItemExtIEs_tag2el_397[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SRBs_Modified_ItemExtIEs_specs_397 = { + sizeof(struct SRBs_Modified_ItemExtIEs), + offsetof(struct SRBs_Modified_ItemExtIEs, _asn_ctx), + asn_MAP_SRBs_Modified_ItemExtIEs_tag2el_397, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_Modified_ItemExtIEs = { + "SRBs-Modified-ItemExtIEs", + "SRBs-Modified-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_Modified_ItemExtIEs_tags_397, + sizeof(asn_DEF_SRBs_Modified_ItemExtIEs_tags_397) + /sizeof(asn_DEF_SRBs_Modified_ItemExtIEs_tags_397[0]), /* 1 */ + asn_DEF_SRBs_Modified_ItemExtIEs_tags_397, /* Same as above */ + sizeof(asn_DEF_SRBs_Modified_ItemExtIEs_tags_397) + /sizeof(asn_DEF_SRBs_Modified_ItemExtIEs_tags_397[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_Modified_ItemExtIEs_397, + 3, /* Elements count */ + &asn_SPC_SRBs_Modified_ItemExtIEs_specs_397 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_404 = { + sizeof(struct SRBs_Required_ToBeReleased_ItemExtIEs__extensionValue), + offsetof(struct SRBs_Required_ToBeReleased_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct SRBs_Required_ToBeReleased_ItemExtIEs__extensionValue, present), + sizeof(((struct SRBs_Required_ToBeReleased_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_404 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_404 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRBs_Required_ToBeReleased_ItemExtIEs_401[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_Required_ToBeReleased_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_402, &asn_PER_memb_id_constr_402, memb_id_constraint_401 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRBs_Required_ToBeReleased_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_403, &asn_PER_memb_criticality_constr_403, memb_criticality_constraint_401 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SRBs_Required_ToBeReleased_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_404, + 0, + { &asn_OER_memb_extensionValue_constr_404, &asn_PER_memb_extensionValue_constr_404, memb_extensionValue_constraint_401 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_Required_ToBeReleased_ItemExtIEs_tags_401[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_Required_ToBeReleased_ItemExtIEs_tag2el_401[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SRBs_Required_ToBeReleased_ItemExtIEs_specs_401 = { + sizeof(struct SRBs_Required_ToBeReleased_ItemExtIEs), + offsetof(struct SRBs_Required_ToBeReleased_ItemExtIEs, _asn_ctx), + asn_MAP_SRBs_Required_ToBeReleased_ItemExtIEs_tag2el_401, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_Required_ToBeReleased_ItemExtIEs = { + "SRBs-Required-ToBeReleased-ItemExtIEs", + "SRBs-Required-ToBeReleased-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_Required_ToBeReleased_ItemExtIEs_tags_401, + sizeof(asn_DEF_SRBs_Required_ToBeReleased_ItemExtIEs_tags_401) + /sizeof(asn_DEF_SRBs_Required_ToBeReleased_ItemExtIEs_tags_401[0]), /* 1 */ + asn_DEF_SRBs_Required_ToBeReleased_ItemExtIEs_tags_401, /* Same as above */ + sizeof(asn_DEF_SRBs_Required_ToBeReleased_ItemExtIEs_tags_401) + /sizeof(asn_DEF_SRBs_Required_ToBeReleased_ItemExtIEs_tags_401[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_Required_ToBeReleased_ItemExtIEs_401, + 3, /* Elements count */ + &asn_SPC_SRBs_Required_ToBeReleased_ItemExtIEs_specs_401 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_408 = { + sizeof(struct SRBs_Setup_ItemExtIEs__extensionValue), + offsetof(struct SRBs_Setup_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct SRBs_Setup_ItemExtIEs__extensionValue, present), + sizeof(((struct SRBs_Setup_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_408 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_408 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRBs_Setup_ItemExtIEs_405[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_Setup_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_406, &asn_PER_memb_id_constr_406, memb_id_constraint_405 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRBs_Setup_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_407, &asn_PER_memb_criticality_constr_407, memb_criticality_constraint_405 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SRBs_Setup_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_408, + 0, + { &asn_OER_memb_extensionValue_constr_408, &asn_PER_memb_extensionValue_constr_408, memb_extensionValue_constraint_405 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_Setup_ItemExtIEs_tags_405[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_Setup_ItemExtIEs_tag2el_405[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SRBs_Setup_ItemExtIEs_specs_405 = { + sizeof(struct SRBs_Setup_ItemExtIEs), + offsetof(struct SRBs_Setup_ItemExtIEs, _asn_ctx), + asn_MAP_SRBs_Setup_ItemExtIEs_tag2el_405, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_Setup_ItemExtIEs = { + "SRBs-Setup-ItemExtIEs", + "SRBs-Setup-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_Setup_ItemExtIEs_tags_405, + sizeof(asn_DEF_SRBs_Setup_ItemExtIEs_tags_405) + /sizeof(asn_DEF_SRBs_Setup_ItemExtIEs_tags_405[0]), /* 1 */ + asn_DEF_SRBs_Setup_ItemExtIEs_tags_405, /* Same as above */ + sizeof(asn_DEF_SRBs_Setup_ItemExtIEs_tags_405) + /sizeof(asn_DEF_SRBs_Setup_ItemExtIEs_tags_405[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_Setup_ItemExtIEs_405, + 3, /* Elements count */ + &asn_SPC_SRBs_Setup_ItemExtIEs_specs_405 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_412 = { + sizeof(struct SRBs_SetupMod_ItemExtIEs__extensionValue), + offsetof(struct SRBs_SetupMod_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct SRBs_SetupMod_ItemExtIEs__extensionValue, present), + sizeof(((struct SRBs_SetupMod_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_412 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_412 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRBs_SetupMod_ItemExtIEs_409[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_SetupMod_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_410, &asn_PER_memb_id_constr_410, memb_id_constraint_409 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRBs_SetupMod_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_411, &asn_PER_memb_criticality_constr_411, memb_criticality_constraint_409 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SRBs_SetupMod_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_412, + 0, + { &asn_OER_memb_extensionValue_constr_412, &asn_PER_memb_extensionValue_constr_412, memb_extensionValue_constraint_409 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_SetupMod_ItemExtIEs_tags_409[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_SetupMod_ItemExtIEs_tag2el_409[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SRBs_SetupMod_ItemExtIEs_specs_409 = { + sizeof(struct SRBs_SetupMod_ItemExtIEs), + offsetof(struct SRBs_SetupMod_ItemExtIEs, _asn_ctx), + asn_MAP_SRBs_SetupMod_ItemExtIEs_tag2el_409, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_SetupMod_ItemExtIEs = { + "SRBs-SetupMod-ItemExtIEs", + "SRBs-SetupMod-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_SetupMod_ItemExtIEs_tags_409, + sizeof(asn_DEF_SRBs_SetupMod_ItemExtIEs_tags_409) + /sizeof(asn_DEF_SRBs_SetupMod_ItemExtIEs_tags_409[0]), /* 1 */ + asn_DEF_SRBs_SetupMod_ItemExtIEs_tags_409, /* Same as above */ + sizeof(asn_DEF_SRBs_SetupMod_ItemExtIEs_tags_409) + /sizeof(asn_DEF_SRBs_SetupMod_ItemExtIEs_tags_409[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_SetupMod_ItemExtIEs_409, + 3, /* Elements count */ + &asn_SPC_SRBs_SetupMod_ItemExtIEs_specs_409 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_416 = { + sizeof(struct SRBs_ToBeReleased_ItemExtIEs__extensionValue), + offsetof(struct SRBs_ToBeReleased_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct SRBs_ToBeReleased_ItemExtIEs__extensionValue, present), + sizeof(((struct SRBs_ToBeReleased_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_416 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_416 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRBs_ToBeReleased_ItemExtIEs_413[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_ToBeReleased_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_414, &asn_PER_memb_id_constr_414, memb_id_constraint_413 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRBs_ToBeReleased_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_415, &asn_PER_memb_criticality_constr_415, memb_criticality_constraint_413 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SRBs_ToBeReleased_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_416, + 0, + { &asn_OER_memb_extensionValue_constr_416, &asn_PER_memb_extensionValue_constr_416, memb_extensionValue_constraint_413 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_ToBeReleased_ItemExtIEs_tags_413[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_ToBeReleased_ItemExtIEs_tag2el_413[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SRBs_ToBeReleased_ItemExtIEs_specs_413 = { + sizeof(struct SRBs_ToBeReleased_ItemExtIEs), + offsetof(struct SRBs_ToBeReleased_ItemExtIEs, _asn_ctx), + asn_MAP_SRBs_ToBeReleased_ItemExtIEs_tag2el_413, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_ToBeReleased_ItemExtIEs = { + "SRBs-ToBeReleased-ItemExtIEs", + "SRBs-ToBeReleased-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_ToBeReleased_ItemExtIEs_tags_413, + sizeof(asn_DEF_SRBs_ToBeReleased_ItemExtIEs_tags_413) + /sizeof(asn_DEF_SRBs_ToBeReleased_ItemExtIEs_tags_413[0]), /* 1 */ + asn_DEF_SRBs_ToBeReleased_ItemExtIEs_tags_413, /* Same as above */ + sizeof(asn_DEF_SRBs_ToBeReleased_ItemExtIEs_tags_413) + /sizeof(asn_DEF_SRBs_ToBeReleased_ItemExtIEs_tags_413[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_ToBeReleased_ItemExtIEs_413, + 3, /* Elements count */ + &asn_SPC_SRBs_ToBeReleased_ItemExtIEs_specs_413 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_420 = { + sizeof(struct SRBs_ToBeSetup_ItemExtIEs__extensionValue), + offsetof(struct SRBs_ToBeSetup_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct SRBs_ToBeSetup_ItemExtIEs__extensionValue, present), + sizeof(((struct SRBs_ToBeSetup_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_420 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_420 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRBs_ToBeSetup_ItemExtIEs_417[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_ToBeSetup_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_418, &asn_PER_memb_id_constr_418, memb_id_constraint_417 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRBs_ToBeSetup_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_419, &asn_PER_memb_criticality_constr_419, memb_criticality_constraint_417 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SRBs_ToBeSetup_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_420, + 0, + { &asn_OER_memb_extensionValue_constr_420, &asn_PER_memb_extensionValue_constr_420, memb_extensionValue_constraint_417 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_ToBeSetup_ItemExtIEs_tags_417[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_ToBeSetup_ItemExtIEs_tag2el_417[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SRBs_ToBeSetup_ItemExtIEs_specs_417 = { + sizeof(struct SRBs_ToBeSetup_ItemExtIEs), + offsetof(struct SRBs_ToBeSetup_ItemExtIEs, _asn_ctx), + asn_MAP_SRBs_ToBeSetup_ItemExtIEs_tag2el_417, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_ToBeSetup_ItemExtIEs = { + "SRBs-ToBeSetup-ItemExtIEs", + "SRBs-ToBeSetup-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_ToBeSetup_ItemExtIEs_tags_417, + sizeof(asn_DEF_SRBs_ToBeSetup_ItemExtIEs_tags_417) + /sizeof(asn_DEF_SRBs_ToBeSetup_ItemExtIEs_tags_417[0]), /* 1 */ + asn_DEF_SRBs_ToBeSetup_ItemExtIEs_tags_417, /* Same as above */ + sizeof(asn_DEF_SRBs_ToBeSetup_ItemExtIEs_tags_417) + /sizeof(asn_DEF_SRBs_ToBeSetup_ItemExtIEs_tags_417[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_ToBeSetup_ItemExtIEs_417, + 3, /* Elements count */ + &asn_SPC_SRBs_ToBeSetup_ItemExtIEs_specs_417 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_424 = { + sizeof(struct SRBs_ToBeSetupMod_ItemExtIEs__extensionValue), + offsetof(struct SRBs_ToBeSetupMod_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct SRBs_ToBeSetupMod_ItemExtIEs__extensionValue, present), + sizeof(((struct SRBs_ToBeSetupMod_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_424 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_424 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRBs_ToBeSetupMod_ItemExtIEs_421[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_ToBeSetupMod_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_422, &asn_PER_memb_id_constr_422, memb_id_constraint_421 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRBs_ToBeSetupMod_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_423, &asn_PER_memb_criticality_constr_423, memb_criticality_constraint_421 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SRBs_ToBeSetupMod_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_424, + 0, + { &asn_OER_memb_extensionValue_constr_424, &asn_PER_memb_extensionValue_constr_424, memb_extensionValue_constraint_421 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_ToBeSetupMod_ItemExtIEs_tags_421[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_ToBeSetupMod_ItemExtIEs_tag2el_421[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SRBs_ToBeSetupMod_ItemExtIEs_specs_421 = { + sizeof(struct SRBs_ToBeSetupMod_ItemExtIEs), + offsetof(struct SRBs_ToBeSetupMod_ItemExtIEs, _asn_ctx), + asn_MAP_SRBs_ToBeSetupMod_ItemExtIEs_tag2el_421, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_ToBeSetupMod_ItemExtIEs = { + "SRBs-ToBeSetupMod-ItemExtIEs", + "SRBs-ToBeSetupMod-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_ToBeSetupMod_ItemExtIEs_tags_421, + sizeof(asn_DEF_SRBs_ToBeSetupMod_ItemExtIEs_tags_421) + /sizeof(asn_DEF_SRBs_ToBeSetupMod_ItemExtIEs_tags_421[0]), /* 1 */ + asn_DEF_SRBs_ToBeSetupMod_ItemExtIEs_tags_421, /* Same as above */ + sizeof(asn_DEF_SRBs_ToBeSetupMod_ItemExtIEs_tags_421) + /sizeof(asn_DEF_SRBs_ToBeSetupMod_ItemExtIEs_tags_421[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_ToBeSetupMod_ItemExtIEs_421, + 3, /* Elements count */ + &asn_SPC_SRBs_ToBeSetupMod_ItemExtIEs_specs_421 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_428 = { + sizeof(struct SUL_InformationExtIEs__extensionValue), + offsetof(struct SUL_InformationExtIEs__extensionValue, _asn_ctx), + offsetof(struct SUL_InformationExtIEs__extensionValue, present), + sizeof(((struct SUL_InformationExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_428 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_428 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SUL_InformationExtIEs_425[] = { + { ATF_NOFLAGS, 0, offsetof(struct SUL_InformationExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_426, &asn_PER_memb_id_constr_426, memb_id_constraint_425 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SUL_InformationExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_427, &asn_PER_memb_criticality_constr_427, memb_criticality_constraint_425 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SUL_InformationExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_428, + 0, + { &asn_OER_memb_extensionValue_constr_428, &asn_PER_memb_extensionValue_constr_428, memb_extensionValue_constraint_425 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_SUL_InformationExtIEs_tags_425[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SUL_InformationExtIEs_tag2el_425[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SUL_InformationExtIEs_specs_425 = { + sizeof(struct SUL_InformationExtIEs), + offsetof(struct SUL_InformationExtIEs, _asn_ctx), + asn_MAP_SUL_InformationExtIEs_tag2el_425, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SUL_InformationExtIEs = { + "SUL-InformationExtIEs", + "SUL-InformationExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_SUL_InformationExtIEs_tags_425, + sizeof(asn_DEF_SUL_InformationExtIEs_tags_425) + /sizeof(asn_DEF_SUL_InformationExtIEs_tags_425[0]), /* 1 */ + asn_DEF_SUL_InformationExtIEs_tags_425, /* Same as above */ + sizeof(asn_DEF_SUL_InformationExtIEs_tags_425) + /sizeof(asn_DEF_SUL_InformationExtIEs_tags_425[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SUL_InformationExtIEs_425, + 3, /* Elements count */ + &asn_SPC_SUL_InformationExtIEs_specs_425 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_432 = { + sizeof(struct SupportedSULFreqBandItem_ExtIEs__extensionValue), + offsetof(struct SupportedSULFreqBandItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct SupportedSULFreqBandItem_ExtIEs__extensionValue, present), + sizeof(((struct SupportedSULFreqBandItem_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_432 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_432 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SupportedSULFreqBandItem_ExtIEs_429[] = { + { ATF_NOFLAGS, 0, offsetof(struct SupportedSULFreqBandItem_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_430, &asn_PER_memb_id_constr_430, memb_id_constraint_429 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SupportedSULFreqBandItem_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_431, &asn_PER_memb_criticality_constr_431, memb_criticality_constraint_429 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SupportedSULFreqBandItem_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_432, + 0, + { &asn_OER_memb_extensionValue_constr_432, &asn_PER_memb_extensionValue_constr_432, memb_extensionValue_constraint_429 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_SupportedSULFreqBandItem_ExtIEs_tags_429[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SupportedSULFreqBandItem_ExtIEs_tag2el_429[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SupportedSULFreqBandItem_ExtIEs_specs_429 = { + sizeof(struct SupportedSULFreqBandItem_ExtIEs), + offsetof(struct SupportedSULFreqBandItem_ExtIEs, _asn_ctx), + asn_MAP_SupportedSULFreqBandItem_ExtIEs_tag2el_429, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SupportedSULFreqBandItem_ExtIEs = { + "SupportedSULFreqBandItem-ExtIEs", + "SupportedSULFreqBandItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_SupportedSULFreqBandItem_ExtIEs_tags_429, + sizeof(asn_DEF_SupportedSULFreqBandItem_ExtIEs_tags_429) + /sizeof(asn_DEF_SupportedSULFreqBandItem_ExtIEs_tags_429[0]), /* 1 */ + asn_DEF_SupportedSULFreqBandItem_ExtIEs_tags_429, /* Same as above */ + sizeof(asn_DEF_SupportedSULFreqBandItem_ExtIEs_tags_429) + /sizeof(asn_DEF_SupportedSULFreqBandItem_ExtIEs_tags_429[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SupportedSULFreqBandItem_ExtIEs_429, + 3, /* Elements count */ + &asn_SPC_SupportedSULFreqBandItem_ExtIEs_specs_429 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_436 = { + sizeof(struct TDD_Info_ExtIEs__extensionValue), + offsetof(struct TDD_Info_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct TDD_Info_ExtIEs__extensionValue, present), + sizeof(((struct TDD_Info_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_436 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_436 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_TDD_Info_ExtIEs_433[] = { + { ATF_NOFLAGS, 0, offsetof(struct TDD_Info_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_434, &asn_PER_memb_id_constr_434, memb_id_constraint_433 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct TDD_Info_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_435, &asn_PER_memb_criticality_constr_435, memb_criticality_constraint_433 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct TDD_Info_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_436, + 0, + { &asn_OER_memb_extensionValue_constr_436, &asn_PER_memb_extensionValue_constr_436, memb_extensionValue_constraint_433 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_TDD_Info_ExtIEs_tags_433[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TDD_Info_ExtIEs_tag2el_433[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TDD_Info_ExtIEs_specs_433 = { + sizeof(struct TDD_Info_ExtIEs), + offsetof(struct TDD_Info_ExtIEs, _asn_ctx), + asn_MAP_TDD_Info_ExtIEs_tag2el_433, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TDD_Info_ExtIEs = { + "TDD-Info-ExtIEs", + "TDD-Info-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_TDD_Info_ExtIEs_tags_433, + sizeof(asn_DEF_TDD_Info_ExtIEs_tags_433) + /sizeof(asn_DEF_TDD_Info_ExtIEs_tags_433[0]), /* 1 */ + asn_DEF_TDD_Info_ExtIEs_tags_433, /* Same as above */ + sizeof(asn_DEF_TDD_Info_ExtIEs_tags_433) + /sizeof(asn_DEF_TDD_Info_ExtIEs_tags_433[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TDD_Info_ExtIEs_433, + 3, /* Elements count */ + &asn_SPC_TDD_Info_ExtIEs_specs_433 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_440 = { + sizeof(struct Transmission_Bandwidth_ExtIEs__extensionValue), + offsetof(struct Transmission_Bandwidth_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct Transmission_Bandwidth_ExtIEs__extensionValue, present), + sizeof(((struct Transmission_Bandwidth_ExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_440 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_440 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Transmission_Bandwidth_ExtIEs_437[] = { + { ATF_NOFLAGS, 0, offsetof(struct Transmission_Bandwidth_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_438, &asn_PER_memb_id_constr_438, memb_id_constraint_437 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Transmission_Bandwidth_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_439, &asn_PER_memb_criticality_constr_439, memb_criticality_constraint_437 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Transmission_Bandwidth_ExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_440, + 0, + { &asn_OER_memb_extensionValue_constr_440, &asn_PER_memb_extensionValue_constr_440, memb_extensionValue_constraint_437 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_Transmission_Bandwidth_ExtIEs_tags_437[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Transmission_Bandwidth_ExtIEs_tag2el_437[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Transmission_Bandwidth_ExtIEs_specs_437 = { + sizeof(struct Transmission_Bandwidth_ExtIEs), + offsetof(struct Transmission_Bandwidth_ExtIEs, _asn_ctx), + asn_MAP_Transmission_Bandwidth_ExtIEs_tag2el_437, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Transmission_Bandwidth_ExtIEs = { + "Transmission-Bandwidth-ExtIEs", + "Transmission-Bandwidth-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_Transmission_Bandwidth_ExtIEs_tags_437, + sizeof(asn_DEF_Transmission_Bandwidth_ExtIEs_tags_437) + /sizeof(asn_DEF_Transmission_Bandwidth_ExtIEs_tags_437[0]), /* 1 */ + asn_DEF_Transmission_Bandwidth_ExtIEs_tags_437, /* Same as above */ + sizeof(asn_DEF_Transmission_Bandwidth_ExtIEs_tags_437) + /sizeof(asn_DEF_Transmission_Bandwidth_ExtIEs_tags_437[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Transmission_Bandwidth_ExtIEs_437, + 3, /* Elements count */ + &asn_SPC_Transmission_Bandwidth_ExtIEs_specs_437 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_444 = { + sizeof(struct UE_associatedLogicalF1_ConnectionItemExtIEs__extensionValue), + offsetof(struct UE_associatedLogicalF1_ConnectionItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct UE_associatedLogicalF1_ConnectionItemExtIEs__extensionValue, present), + sizeof(((struct UE_associatedLogicalF1_ConnectionItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_444 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_444 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UE_associatedLogicalF1_ConnectionItemExtIEs_441[] = { + { ATF_NOFLAGS, 0, offsetof(struct UE_associatedLogicalF1_ConnectionItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_442, &asn_PER_memb_id_constr_442, memb_id_constraint_441 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct UE_associatedLogicalF1_ConnectionItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_443, &asn_PER_memb_criticality_constr_443, memb_criticality_constraint_441 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UE_associatedLogicalF1_ConnectionItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_444, + 0, + { &asn_OER_memb_extensionValue_constr_444, &asn_PER_memb_extensionValue_constr_444, memb_extensionValue_constraint_441 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_UE_associatedLogicalF1_ConnectionItemExtIEs_tags_441[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UE_associatedLogicalF1_ConnectionItemExtIEs_tag2el_441[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UE_associatedLogicalF1_ConnectionItemExtIEs_specs_441 = { + sizeof(struct UE_associatedLogicalF1_ConnectionItemExtIEs), + offsetof(struct UE_associatedLogicalF1_ConnectionItemExtIEs, _asn_ctx), + asn_MAP_UE_associatedLogicalF1_ConnectionItemExtIEs_tag2el_441, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UE_associatedLogicalF1_ConnectionItemExtIEs = { + "UE-associatedLogicalF1-ConnectionItemExtIEs", + "UE-associatedLogicalF1-ConnectionItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_UE_associatedLogicalF1_ConnectionItemExtIEs_tags_441, + sizeof(asn_DEF_UE_associatedLogicalF1_ConnectionItemExtIEs_tags_441) + /sizeof(asn_DEF_UE_associatedLogicalF1_ConnectionItemExtIEs_tags_441[0]), /* 1 */ + asn_DEF_UE_associatedLogicalF1_ConnectionItemExtIEs_tags_441, /* Same as above */ + sizeof(asn_DEF_UE_associatedLogicalF1_ConnectionItemExtIEs_tags_441) + /sizeof(asn_DEF_UE_associatedLogicalF1_ConnectionItemExtIEs_tags_441[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UE_associatedLogicalF1_ConnectionItemExtIEs_441, + 3, /* Elements count */ + &asn_SPC_UE_associatedLogicalF1_ConnectionItemExtIEs_specs_441 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_448 = { + sizeof(struct ULConfigurationExtIEs__extensionValue), + offsetof(struct ULConfigurationExtIEs__extensionValue, _asn_ctx), + offsetof(struct ULConfigurationExtIEs__extensionValue, present), + sizeof(((struct ULConfigurationExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_448 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_448 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ULConfigurationExtIEs_445[] = { + { ATF_NOFLAGS, 0, offsetof(struct ULConfigurationExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_446, &asn_PER_memb_id_constr_446, memb_id_constraint_445 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ULConfigurationExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_447, &asn_PER_memb_criticality_constr_447, memb_criticality_constraint_445 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ULConfigurationExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_448, + 0, + { &asn_OER_memb_extensionValue_constr_448, &asn_PER_memb_extensionValue_constr_448, memb_extensionValue_constraint_445 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ULConfigurationExtIEs_tags_445[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ULConfigurationExtIEs_tag2el_445[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ULConfigurationExtIEs_specs_445 = { + sizeof(struct ULConfigurationExtIEs), + offsetof(struct ULConfigurationExtIEs, _asn_ctx), + asn_MAP_ULConfigurationExtIEs_tag2el_445, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ULConfigurationExtIEs = { + "ULConfigurationExtIEs", + "ULConfigurationExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ULConfigurationExtIEs_tags_445, + sizeof(asn_DEF_ULConfigurationExtIEs_tags_445) + /sizeof(asn_DEF_ULConfigurationExtIEs_tags_445[0]), /* 1 */ + asn_DEF_ULConfigurationExtIEs_tags_445, /* Same as above */ + sizeof(asn_DEF_ULConfigurationExtIEs_tags_445) + /sizeof(asn_DEF_ULConfigurationExtIEs_tags_445[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ULConfigurationExtIEs_445, + 3, /* Elements count */ + &asn_SPC_ULConfigurationExtIEs_specs_445 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_extensionValue_specs_452 = { + sizeof(struct ULUPTNLInformation_ToBeSetup_ItemExtIEs__extensionValue), + offsetof(struct ULUPTNLInformation_ToBeSetup_ItemExtIEs__extensionValue, _asn_ctx), + offsetof(struct ULUPTNLInformation_ToBeSetup_ItemExtIEs__extensionValue, present), + sizeof(((struct ULUPTNLInformation_ToBeSetup_ItemExtIEs__extensionValue *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_extensionValue_452 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_extensionValue_specs_452 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ULUPTNLInformation_ToBeSetup_ItemExtIEs_449[] = { + { ATF_NOFLAGS, 0, offsetof(struct ULUPTNLInformation_ToBeSetup_ItemExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionID, + 0, + { &asn_OER_memb_id_constr_450, &asn_PER_memb_id_constr_450, memb_id_constraint_449 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ULUPTNLInformation_ToBeSetup_ItemExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_451, &asn_PER_memb_criticality_constr_451, memb_criticality_constraint_449 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ULUPTNLInformation_ToBeSetup_ItemExtIEs, extensionValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_extensionValue_452, + 0, + { &asn_OER_memb_extensionValue_constr_452, &asn_PER_memb_extensionValue_constr_452, memb_extensionValue_constraint_449 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ULUPTNLInformation_ToBeSetup_ItemExtIEs_tags_449[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ULUPTNLInformation_ToBeSetup_ItemExtIEs_tag2el_449[] = { + { (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 } /* extensionValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ULUPTNLInformation_ToBeSetup_ItemExtIEs_specs_449 = { + sizeof(struct ULUPTNLInformation_ToBeSetup_ItemExtIEs), + offsetof(struct ULUPTNLInformation_ToBeSetup_ItemExtIEs, _asn_ctx), + asn_MAP_ULUPTNLInformation_ToBeSetup_ItemExtIEs_tag2el_449, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ULUPTNLInformation_ToBeSetup_ItemExtIEs = { + "ULUPTNLInformation-ToBeSetup-ItemExtIEs", + "ULUPTNLInformation-ToBeSetup-ItemExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ULUPTNLInformation_ToBeSetup_ItemExtIEs_tags_449, + sizeof(asn_DEF_ULUPTNLInformation_ToBeSetup_ItemExtIEs_tags_449) + /sizeof(asn_DEF_ULUPTNLInformation_ToBeSetup_ItemExtIEs_tags_449[0]), /* 1 */ + asn_DEF_ULUPTNLInformation_ToBeSetup_ItemExtIEs_tags_449, /* Same as above */ + sizeof(asn_DEF_ULUPTNLInformation_ToBeSetup_ItemExtIEs_tags_449) + /sizeof(asn_DEF_ULUPTNLInformation_ToBeSetup_ItemExtIEs_tags_449[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ULUPTNLInformation_ToBeSetup_ItemExtIEs_449, + 3, /* Elements count */ + &asn_SPC_ULUPTNLInformation_ToBeSetup_ItemExtIEs_specs_449 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/ProtocolExtensionField.h b/src/du_app/F1AP/asn/ProtocolExtensionField.h new file mode 100755 index 000000000..a2dce364b --- /dev/null +++ b/src/du_app/F1AP/asn/ProtocolExtensionField.h @@ -0,0 +1,2616 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-Containers" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ProtocolExtensionField_H_ +#define _ProtocolExtensionField_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolExtensionID.h" +#include "Criticality.h" +#include +#include +#include +#include +#include +#include "SliceSupportList.h" +#include "Presence.h" +#include "GNB-CUSystemInformation.h" +#include "AvailablePLMNList.h" +#include "ExtendedAvailablePLMN-List.h" +#include "HandoverPreparationInformation.h" +#include "CellGroupConfig.h" +#include "MeasurementTimingConfiguration.h" +#include "UEAssistanceInformation.h" +#include "RLC-Status.h" +#include "PDCPSNLength.h" +#include "BearerTypeChange.h" +#include "RLCMode.h" +#include "DuplicationActivation.h" +#include "DCBasedDuplicationConfigured.h" +#include "DRX-LongCycleStartOffset.h" +#include "SelectedBandCombinationIndex.h" +#include "SelectedFeatureSetEntryIndex.h" +#include "Ph-InfoSCG.h" +#include "RequestedBandCombinationIndex.h" +#include "RequestedFeatureSetEntryIndex.h" +#include "RequestedP-MaxFR2.h" +#include "DRX-Config.h" +#include "QoSFlowMappingIndication.h" +#include "PDUSessionID.h" +#include "BitRate.h" +#include "Latest-RRC-Version-Enhanced.h" +#include "ServingCellMO.h" +#include "RANAC.h" +#include "ExtendedServedPLMNs-List.h" +#include "Cell-Direction.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AllocationAndRetentionPriority_ExtIEs__extensionValue_PR { + AllocationAndRetentionPriority_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} AllocationAndRetentionPriority_ExtIEs__extensionValue_PR; +typedef enum Associated_SCell_ItemExtIEs__extensionValue_PR { + Associated_SCell_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} Associated_SCell_ItemExtIEs__extensionValue_PR; +typedef enum AvailablePLMNList_Item_ExtIEs__extensionValue_PR { + AvailablePLMNList_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} AvailablePLMNList_Item_ExtIEs__extensionValue_PR; +typedef enum ServedPLMNs_ItemExtIEs__extensionValue_PR { + ServedPLMNs_ItemExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ServedPLMNs_ItemExtIEs__extensionValue_PR_SliceSupportList +} ServedPLMNs_ItemExtIEs__extensionValue_PR; +typedef enum Candidate_SpCell_ItemExtIEs__extensionValue_PR { + Candidate_SpCell_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} Candidate_SpCell_ItemExtIEs__extensionValue_PR; +typedef enum Cells_Failed_to_be_Activated_List_ItemExtIEs__extensionValue_PR { + Cells_Failed_to_be_Activated_List_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} Cells_Failed_to_be_Activated_List_ItemExtIEs__extensionValue_PR; +typedef enum Cells_Status_ItemExtIEs__extensionValue_PR { + Cells_Status_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} Cells_Status_ItemExtIEs__extensionValue_PR; +typedef enum Cells_To_Be_Broadcast_ItemExtIEs__extensionValue_PR { + Cells_To_Be_Broadcast_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} Cells_To_Be_Broadcast_ItemExtIEs__extensionValue_PR; +typedef enum Cells_Broadcast_Completed_ItemExtIEs__extensionValue_PR { + Cells_Broadcast_Completed_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} Cells_Broadcast_Completed_ItemExtIEs__extensionValue_PR; +typedef enum Broadcast_To_Be_Cancelled_ItemExtIEs__extensionValue_PR { + Broadcast_To_Be_Cancelled_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} Broadcast_To_Be_Cancelled_ItemExtIEs__extensionValue_PR; +typedef enum Cells_Broadcast_Cancelled_ItemExtIEs__extensionValue_PR { + Cells_Broadcast_Cancelled_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} Cells_Broadcast_Cancelled_ItemExtIEs__extensionValue_PR; +typedef enum Cells_to_be_Activated_List_ItemExtIEs__extensionValue_PR { + Cells_to_be_Activated_List_ItemExtIEs__extensionValue_PR_NOTHING, /* No components present */ + Cells_to_be_Activated_List_ItemExtIEs__extensionValue_PR_GNB_CUSystemInformation, + Cells_to_be_Activated_List_ItemExtIEs__extensionValue_PR_AvailablePLMNList, + Cells_to_be_Activated_List_ItemExtIEs__extensionValue_PR_ExtendedAvailablePLMN_List +} Cells_to_be_Activated_List_ItemExtIEs__extensionValue_PR; +typedef enum Cells_to_be_Deactivated_List_ItemExtIEs__extensionValue_PR { + Cells_to_be_Deactivated_List_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} Cells_to_be_Deactivated_List_ItemExtIEs__extensionValue_PR; +typedef enum Cells_to_be_Barred_Item_ExtIEs__extensionValue_PR { + Cells_to_be_Barred_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} Cells_to_be_Barred_Item_ExtIEs__extensionValue_PR; +typedef enum CriticalityDiagnostics_ExtIEs__extensionValue_PR { + CriticalityDiagnostics_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} CriticalityDiagnostics_ExtIEs__extensionValue_PR; +typedef enum CriticalityDiagnostics_IE_Item_ExtIEs__extensionValue_PR { + CriticalityDiagnostics_IE_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} CriticalityDiagnostics_IE_Item_ExtIEs__extensionValue_PR; +typedef enum CUtoDURRCInformation_ExtIEs__extensionValue_PR { + CUtoDURRCInformation_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + CUtoDURRCInformation_ExtIEs__extensionValue_PR_HandoverPreparationInformation, + CUtoDURRCInformation_ExtIEs__extensionValue_PR_CellGroupConfig, + CUtoDURRCInformation_ExtIEs__extensionValue_PR_MeasurementTimingConfiguration, + CUtoDURRCInformation_ExtIEs__extensionValue_PR_UEAssistanceInformation +} CUtoDURRCInformation_ExtIEs__extensionValue_PR; +typedef enum DedicatedSIDeliveryNeededUE_Item_ExtIEs__extensionValue_PR { + DedicatedSIDeliveryNeededUE_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} DedicatedSIDeliveryNeededUE_Item_ExtIEs__extensionValue_PR; +typedef enum DLUPTNLInformation_ToBeSetup_ItemExtIEs__extensionValue_PR { + DLUPTNLInformation_ToBeSetup_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} DLUPTNLInformation_ToBeSetup_ItemExtIEs__extensionValue_PR; +typedef enum DRB_Activity_ItemExtIEs__extensionValue_PR { + DRB_Activity_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} DRB_Activity_ItemExtIEs__extensionValue_PR; +typedef enum DRBs_FailedToBeModified_ItemExtIEs__extensionValue_PR { + DRBs_FailedToBeModified_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} DRBs_FailedToBeModified_ItemExtIEs__extensionValue_PR; +typedef enum DRBs_FailedToBeSetup_ItemExtIEs__extensionValue_PR { + DRBs_FailedToBeSetup_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} DRBs_FailedToBeSetup_ItemExtIEs__extensionValue_PR; +typedef enum DRBs_FailedToBeSetupMod_ItemExtIEs__extensionValue_PR { + DRBs_FailedToBeSetupMod_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} DRBs_FailedToBeSetupMod_ItemExtIEs__extensionValue_PR; +typedef enum DRB_Information_ItemExtIEs__extensionValue_PR { + DRB_Information_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} DRB_Information_ItemExtIEs__extensionValue_PR; +typedef enum DRBs_Modified_ItemExtIEs__extensionValue_PR { + DRBs_Modified_ItemExtIEs__extensionValue_PR_NOTHING, /* No components present */ + DRBs_Modified_ItemExtIEs__extensionValue_PR_RLC_Status +} DRBs_Modified_ItemExtIEs__extensionValue_PR; +typedef enum DRBs_ModifiedConf_ItemExtIEs__extensionValue_PR { + DRBs_ModifiedConf_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} DRBs_ModifiedConf_ItemExtIEs__extensionValue_PR; +typedef enum DRB_Notify_ItemExtIEs__extensionValue_PR { + DRB_Notify_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} DRB_Notify_ItemExtIEs__extensionValue_PR; +typedef enum DRBs_Required_ToBeModified_ItemExtIEs__extensionValue_PR { + DRBs_Required_ToBeModified_ItemExtIEs__extensionValue_PR_NOTHING, /* No components present */ + DRBs_Required_ToBeModified_ItemExtIEs__extensionValue_PR_RLC_Status +} DRBs_Required_ToBeModified_ItemExtIEs__extensionValue_PR; +typedef enum DRBs_Required_ToBeReleased_ItemExtIEs__extensionValue_PR { + DRBs_Required_ToBeReleased_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} DRBs_Required_ToBeReleased_ItemExtIEs__extensionValue_PR; +typedef enum DRBs_Setup_ItemExtIEs__extensionValue_PR { + DRBs_Setup_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} DRBs_Setup_ItemExtIEs__extensionValue_PR; +typedef enum DRBs_SetupMod_ItemExtIEs__extensionValue_PR { + DRBs_SetupMod_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} DRBs_SetupMod_ItemExtIEs__extensionValue_PR; +typedef enum DRBs_ToBeModified_ItemExtIEs__extensionValue_PR { + DRBs_ToBeModified_ItemExtIEs__extensionValue_PR_NOTHING, /* No components present */ + DRBs_ToBeModified_ItemExtIEs__extensionValue_PR_PDCPSNLength, + DRBs_ToBeModified_ItemExtIEs__extensionValue_PR_BearerTypeChange, + DRBs_ToBeModified_ItemExtIEs__extensionValue_PR_RLCMode, + DRBs_ToBeModified_ItemExtIEs__extensionValue_PR_DuplicationActivation, + DRBs_ToBeModified_ItemExtIEs__extensionValue_PR_DCBasedDuplicationConfigured +} DRBs_ToBeModified_ItemExtIEs__extensionValue_PR; +typedef enum DRBs_ToBeReleased_ItemExtIEs__extensionValue_PR { + DRBs_ToBeReleased_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} DRBs_ToBeReleased_ItemExtIEs__extensionValue_PR; +typedef enum DRBs_ToBeSetup_ItemExtIEs__extensionValue_PR { + DRBs_ToBeSetup_ItemExtIEs__extensionValue_PR_NOTHING, /* No components present */ + DRBs_ToBeSetup_ItemExtIEs__extensionValue_PR_DCBasedDuplicationConfigured, + DRBs_ToBeSetup_ItemExtIEs__extensionValue_PR_DuplicationActivation, + DRBs_ToBeSetup_ItemExtIEs__extensionValue_PR_PDCPSNLength +} DRBs_ToBeSetup_ItemExtIEs__extensionValue_PR; +typedef enum DRBs_ToBeSetupMod_ItemExtIEs__extensionValue_PR { + DRBs_ToBeSetupMod_ItemExtIEs__extensionValue_PR_NOTHING, /* No components present */ + DRBs_ToBeSetupMod_ItemExtIEs__extensionValue_PR_DCBasedDuplicationConfigured, + DRBs_ToBeSetupMod_ItemExtIEs__extensionValue_PR_DuplicationActivation, + DRBs_ToBeSetupMod_ItemExtIEs__extensionValue_PR_PDCPSNLength +} DRBs_ToBeSetupMod_ItemExtIEs__extensionValue_PR; +typedef enum DRXCycle_ExtIEs__extensionValue_PR { + DRXCycle_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} DRXCycle_ExtIEs__extensionValue_PR; +typedef enum DUtoCURRCInformation_ExtIEs__extensionValue_PR { + DUtoCURRCInformation_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + DUtoCURRCInformation_ExtIEs__extensionValue_PR_DRX_LongCycleStartOffset, + DUtoCURRCInformation_ExtIEs__extensionValue_PR_SelectedBandCombinationIndex, + DUtoCURRCInformation_ExtIEs__extensionValue_PR_SelectedFeatureSetEntryIndex, + DUtoCURRCInformation_ExtIEs__extensionValue_PR_Ph_InfoSCG, + DUtoCURRCInformation_ExtIEs__extensionValue_PR_RequestedBandCombinationIndex, + DUtoCURRCInformation_ExtIEs__extensionValue_PR_RequestedFeatureSetEntryIndex, + DUtoCURRCInformation_ExtIEs__extensionValue_PR_RequestedP_MaxFR2, + DUtoCURRCInformation_ExtIEs__extensionValue_PR_DRX_Config +} DUtoCURRCInformation_ExtIEs__extensionValue_PR; +typedef enum Dynamic5QIDescriptor_ExtIEs__extensionValue_PR { + Dynamic5QIDescriptor_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} Dynamic5QIDescriptor_ExtIEs__extensionValue_PR; +typedef enum Endpoint_IP_address_and_port_ExtIEs__extensionValue_PR { + Endpoint_IP_address_and_port_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} Endpoint_IP_address_and_port_ExtIEs__extensionValue_PR; +typedef enum ExtendedAvailablePLMN_Item_ExtIEs__extensionValue_PR { + ExtendedAvailablePLMN_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ExtendedAvailablePLMN_Item_ExtIEs__extensionValue_PR; +typedef enum ExtendedServedPLMNs_ItemExtIEs__extensionValue_PR { + ExtendedServedPLMNs_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ExtendedServedPLMNs_ItemExtIEs__extensionValue_PR; +typedef enum EUTRACells_List_itemExtIEs__extensionValue_PR { + EUTRACells_List_itemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} EUTRACells_List_itemExtIEs__extensionValue_PR; +typedef enum EUTRA_Coex_FDD_Info_ExtIEs__extensionValue_PR { + EUTRA_Coex_FDD_Info_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} EUTRA_Coex_FDD_Info_ExtIEs__extensionValue_PR; +typedef enum EUTRA_Coex_TDD_Info_ExtIEs__extensionValue_PR { + EUTRA_Coex_TDD_Info_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} EUTRA_Coex_TDD_Info_ExtIEs__extensionValue_PR; +typedef enum EUTRA_PRACH_Configuration_ExtIEs__extensionValue_PR { + EUTRA_PRACH_Configuration_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} EUTRA_PRACH_Configuration_ExtIEs__extensionValue_PR; +typedef enum EUTRA_SpecialSubframe_Info_ExtIEs__extensionValue_PR { + EUTRA_SpecialSubframe_Info_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} EUTRA_SpecialSubframe_Info_ExtIEs__extensionValue_PR; +typedef enum EUTRANQoS_ExtIEs__extensionValue_PR { + EUTRANQoS_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} EUTRANQoS_ExtIEs__extensionValue_PR; +typedef enum EUTRA_FDD_Info_ExtIEs__extensionValue_PR { + EUTRA_FDD_Info_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} EUTRA_FDD_Info_ExtIEs__extensionValue_PR; +typedef enum EUTRA_TDD_Info_ExtIEs__extensionValue_PR { + EUTRA_TDD_Info_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} EUTRA_TDD_Info_ExtIEs__extensionValue_PR; +typedef enum FDD_Info_ExtIEs__extensionValue_PR { + FDD_Info_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} FDD_Info_ExtIEs__extensionValue_PR; +typedef enum Flows_Mapped_To_DRB_ItemExtIEs__extensionValue_PR { + Flows_Mapped_To_DRB_ItemExtIEs__extensionValue_PR_NOTHING, /* No components present */ + Flows_Mapped_To_DRB_ItemExtIEs__extensionValue_PR_QoSFlowMappingIndication +} Flows_Mapped_To_DRB_ItemExtIEs__extensionValue_PR; +typedef enum FreqBandNrItem_ExtIEs__extensionValue_PR { + FreqBandNrItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} FreqBandNrItem_ExtIEs__extensionValue_PR; +typedef enum GBR_QosInformation_ExtIEs__extensionValue_PR { + GBR_QosInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} GBR_QosInformation_ExtIEs__extensionValue_PR; +typedef enum GBR_QosFlowInformation_ExtIEs__extensionValue_PR { + GBR_QosFlowInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} GBR_QosFlowInformation_ExtIEs__extensionValue_PR; +typedef enum GNB_CUSystemInformation_ExtIEs__extensionValue_PR { + GNB_CUSystemInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} GNB_CUSystemInformation_ExtIEs__extensionValue_PR; +typedef enum GNB_CU_TNL_Association_Setup_Item_ExtIEs__extensionValue_PR { + GNB_CU_TNL_Association_Setup_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} GNB_CU_TNL_Association_Setup_Item_ExtIEs__extensionValue_PR; +typedef enum GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs__extensionValue_PR { + GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs__extensionValue_PR; +typedef enum GNB_CU_TNL_Association_To_Add_Item_ExtIEs__extensionValue_PR { + GNB_CU_TNL_Association_To_Add_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} GNB_CU_TNL_Association_To_Add_Item_ExtIEs__extensionValue_PR; +typedef enum GNB_CU_TNL_Association_To_Remove_Item_ExtIEs__extensionValue_PR { + GNB_CU_TNL_Association_To_Remove_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} GNB_CU_TNL_Association_To_Remove_Item_ExtIEs__extensionValue_PR; +typedef enum GNB_CU_TNL_Association_To_Update_Item_ExtIEs__extensionValue_PR { + GNB_CU_TNL_Association_To_Update_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} GNB_CU_TNL_Association_To_Update_Item_ExtIEs__extensionValue_PR; +typedef enum GNB_DU_Served_Cells_ItemExtIEs__extensionValue_PR { + GNB_DU_Served_Cells_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} GNB_DU_Served_Cells_ItemExtIEs__extensionValue_PR; +typedef enum GNB_DU_System_Information_ExtIEs__extensionValue_PR { + GNB_DU_System_Information_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} GNB_DU_System_Information_ExtIEs__extensionValue_PR; +typedef enum GTPTunnel_ExtIEs__extensionValue_PR { + GTPTunnel_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} GTPTunnel_ExtIEs__extensionValue_PR; +typedef enum NGRANAllocationAndRetentionPriority_ExtIEs__extensionValue_PR { + NGRANAllocationAndRetentionPriority_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} NGRANAllocationAndRetentionPriority_ExtIEs__extensionValue_PR; +typedef enum NR_CGI_List_For_Restart_ItemExtIEs__extensionValue_PR { + NR_CGI_List_For_Restart_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} NR_CGI_List_For_Restart_ItemExtIEs__extensionValue_PR; +typedef enum NonDynamic5QIDescriptor_ExtIEs__extensionValue_PR { + NonDynamic5QIDescriptor_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} NonDynamic5QIDescriptor_ExtIEs__extensionValue_PR; +typedef enum NRFreqInfoExtIEs__extensionValue_PR { + NRFreqInfoExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} NRFreqInfoExtIEs__extensionValue_PR; +typedef enum NRCGI_ExtIEs__extensionValue_PR { + NRCGI_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} NRCGI_ExtIEs__extensionValue_PR; +typedef enum PacketErrorRate_ExtIEs__extensionValue_PR { + PacketErrorRate_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} PacketErrorRate_ExtIEs__extensionValue_PR; +typedef enum PagingCell_ItemExtIEs__extensionValue_PR { + PagingCell_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} PagingCell_ItemExtIEs__extensionValue_PR; +typedef enum Protected_EUTRA_Resources_ItemExtIEs__extensionValue_PR { + Protected_EUTRA_Resources_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} Protected_EUTRA_Resources_ItemExtIEs__extensionValue_PR; +typedef enum Potential_SpCell_ItemExtIEs__extensionValue_PR { + Potential_SpCell_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} Potential_SpCell_ItemExtIEs__extensionValue_PR; +typedef enum PWS_Failed_NR_CGI_ItemExtIEs__extensionValue_PR { + PWS_Failed_NR_CGI_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} PWS_Failed_NR_CGI_ItemExtIEs__extensionValue_PR; +typedef enum PWSSystemInformationExtIEs__extensionValue_PR { + PWSSystemInformationExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} PWSSystemInformationExtIEs__extensionValue_PR; +typedef enum QoSFlowLevelQoSParameters_ExtIEs__extensionValue_PR { + QoSFlowLevelQoSParameters_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + QoSFlowLevelQoSParameters_ExtIEs__extensionValue_PR_PDUSessionID, + QoSFlowLevelQoSParameters_ExtIEs__extensionValue_PR_BitRate +} QoSFlowLevelQoSParameters_ExtIEs__extensionValue_PR; +typedef enum RANUEPagingIdentity_ExtIEs__extensionValue_PR { + RANUEPagingIdentity_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} RANUEPagingIdentity_ExtIEs__extensionValue_PR; +typedef enum ResourceCoordinationEUTRACellInfo_ExtIEs__extensionValue_PR { + ResourceCoordinationEUTRACellInfo_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ResourceCoordinationEUTRACellInfo_ExtIEs__extensionValue_PR; +typedef enum ResourceCoordinationTransferInformation_ExtIEs__extensionValue_PR { + ResourceCoordinationTransferInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ResourceCoordinationTransferInformation_ExtIEs__extensionValue_PR; +typedef enum RLCFailureIndication_ExtIEs__extensionValue_PR { + RLCFailureIndication_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} RLCFailureIndication_ExtIEs__extensionValue_PR; +typedef enum RLC_Status_ExtIEs__extensionValue_PR { + RLC_Status_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} RLC_Status_ExtIEs__extensionValue_PR; +typedef enum RRCDeliveryStatus_ExtIEs__extensionValue_PR { + RRCDeliveryStatus_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} RRCDeliveryStatus_ExtIEs__extensionValue_PR; +typedef enum RRC_Version_ExtIEs__extensionValue_PR { + RRC_Version_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + RRC_Version_ExtIEs__extensionValue_PR_Latest_RRC_Version_Enhanced +} RRC_Version_ExtIEs__extensionValue_PR; +typedef enum SCell_FailedtoSetup_ItemExtIEs__extensionValue_PR { + SCell_FailedtoSetup_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} SCell_FailedtoSetup_ItemExtIEs__extensionValue_PR; +typedef enum SCell_FailedtoSetupMod_ItemExtIEs__extensionValue_PR { + SCell_FailedtoSetupMod_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} SCell_FailedtoSetupMod_ItemExtIEs__extensionValue_PR; +typedef enum SCell_ToBeRemoved_ItemExtIEs__extensionValue_PR { + SCell_ToBeRemoved_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} SCell_ToBeRemoved_ItemExtIEs__extensionValue_PR; +typedef enum SCell_ToBeSetup_ItemExtIEs__extensionValue_PR { + SCell_ToBeSetup_ItemExtIEs__extensionValue_PR_NOTHING, /* No components present */ + SCell_ToBeSetup_ItemExtIEs__extensionValue_PR_ServingCellMO +} SCell_ToBeSetup_ItemExtIEs__extensionValue_PR; +typedef enum SCell_ToBeSetupMod_ItemExtIEs__extensionValue_PR { + SCell_ToBeSetupMod_ItemExtIEs__extensionValue_PR_NOTHING, /* No components present */ + SCell_ToBeSetupMod_ItemExtIEs__extensionValue_PR_ServingCellMO +} SCell_ToBeSetupMod_ItemExtIEs__extensionValue_PR; +typedef enum Served_Cell_Information_ExtIEs__extensionValue_PR { + Served_Cell_Information_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + Served_Cell_Information_ExtIEs__extensionValue_PR_RANAC, + Served_Cell_Information_ExtIEs__extensionValue_PR_ExtendedServedPLMNs_List, + Served_Cell_Information_ExtIEs__extensionValue_PR_Cell_Direction +} Served_Cell_Information_ExtIEs__extensionValue_PR; +typedef enum Served_Cells_To_Add_ItemExtIEs__extensionValue_PR { + Served_Cells_To_Add_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} Served_Cells_To_Add_ItemExtIEs__extensionValue_PR; +typedef enum Served_Cells_To_Delete_ItemExtIEs__extensionValue_PR { + Served_Cells_To_Delete_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} Served_Cells_To_Delete_ItemExtIEs__extensionValue_PR; +typedef enum Served_Cells_To_Modify_ItemExtIEs__extensionValue_PR { + Served_Cells_To_Modify_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} Served_Cells_To_Modify_ItemExtIEs__extensionValue_PR; +typedef enum Served_EUTRA_Cell_Information_ExtIEs__extensionValue_PR { + Served_EUTRA_Cell_Information_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} Served_EUTRA_Cell_Information_ExtIEs__extensionValue_PR; +typedef enum Service_Status_ExtIEs__extensionValue_PR { + Service_Status_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} Service_Status_ExtIEs__extensionValue_PR; +typedef enum SItype_ItemExtIEs__extensionValue_PR { + SItype_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} SItype_ItemExtIEs__extensionValue_PR; +typedef enum SibtypetobeupdatedListItem_ExtIEs__extensionValue_PR { + SibtypetobeupdatedListItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} SibtypetobeupdatedListItem_ExtIEs__extensionValue_PR; +typedef enum SliceSupportItem_ExtIEs__extensionValue_PR { + SliceSupportItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} SliceSupportItem_ExtIEs__extensionValue_PR; +typedef enum SNSSAI_ExtIEs__extensionValue_PR { + SNSSAI_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} SNSSAI_ExtIEs__extensionValue_PR; +typedef enum SRBs_FailedToBeSetup_ItemExtIEs__extensionValue_PR { + SRBs_FailedToBeSetup_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} SRBs_FailedToBeSetup_ItemExtIEs__extensionValue_PR; +typedef enum SRBs_FailedToBeSetupMod_ItemExtIEs__extensionValue_PR { + SRBs_FailedToBeSetupMod_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} SRBs_FailedToBeSetupMod_ItemExtIEs__extensionValue_PR; +typedef enum SRBs_Modified_ItemExtIEs__extensionValue_PR { + SRBs_Modified_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} SRBs_Modified_ItemExtIEs__extensionValue_PR; +typedef enum SRBs_Required_ToBeReleased_ItemExtIEs__extensionValue_PR { + SRBs_Required_ToBeReleased_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} SRBs_Required_ToBeReleased_ItemExtIEs__extensionValue_PR; +typedef enum SRBs_Setup_ItemExtIEs__extensionValue_PR { + SRBs_Setup_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} SRBs_Setup_ItemExtIEs__extensionValue_PR; +typedef enum SRBs_SetupMod_ItemExtIEs__extensionValue_PR { + SRBs_SetupMod_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} SRBs_SetupMod_ItemExtIEs__extensionValue_PR; +typedef enum SRBs_ToBeReleased_ItemExtIEs__extensionValue_PR { + SRBs_ToBeReleased_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} SRBs_ToBeReleased_ItemExtIEs__extensionValue_PR; +typedef enum SRBs_ToBeSetup_ItemExtIEs__extensionValue_PR { + SRBs_ToBeSetup_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} SRBs_ToBeSetup_ItemExtIEs__extensionValue_PR; +typedef enum SRBs_ToBeSetupMod_ItemExtIEs__extensionValue_PR { + SRBs_ToBeSetupMod_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} SRBs_ToBeSetupMod_ItemExtIEs__extensionValue_PR; +typedef enum SUL_InformationExtIEs__extensionValue_PR { + SUL_InformationExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} SUL_InformationExtIEs__extensionValue_PR; +typedef enum SupportedSULFreqBandItem_ExtIEs__extensionValue_PR { + SupportedSULFreqBandItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} SupportedSULFreqBandItem_ExtIEs__extensionValue_PR; +typedef enum TDD_Info_ExtIEs__extensionValue_PR { + TDD_Info_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} TDD_Info_ExtIEs__extensionValue_PR; +typedef enum Transmission_Bandwidth_ExtIEs__extensionValue_PR { + Transmission_Bandwidth_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} Transmission_Bandwidth_ExtIEs__extensionValue_PR; +typedef enum UE_associatedLogicalF1_ConnectionItemExtIEs__extensionValue_PR { + UE_associatedLogicalF1_ConnectionItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} UE_associatedLogicalF1_ConnectionItemExtIEs__extensionValue_PR; +typedef enum ULConfigurationExtIEs__extensionValue_PR { + ULConfigurationExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ULConfigurationExtIEs__extensionValue_PR; +typedef enum ULUPTNLInformation_ToBeSetup_ItemExtIEs__extensionValue_PR { + ULUPTNLInformation_ToBeSetup_ItemExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ULUPTNLInformation_ToBeSetup_ItemExtIEs__extensionValue_PR; + +/* ProtocolExtensionField */ +typedef struct AllocationAndRetentionPriority_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct AllocationAndRetentionPriority_ExtIEs__extensionValue { + AllocationAndRetentionPriority_ExtIEs__extensionValue_PR present; + union AllocationAndRetentionPriority_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AllocationAndRetentionPriority_ExtIEs_t; +typedef struct Associated_SCell_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct Associated_SCell_ItemExtIEs__extensionValue { + Associated_SCell_ItemExtIEs__extensionValue_PR present; + union Associated_SCell_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Associated_SCell_ItemExtIEs_t; +typedef struct AvailablePLMNList_Item_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct AvailablePLMNList_Item_ExtIEs__extensionValue { + AvailablePLMNList_Item_ExtIEs__extensionValue_PR present; + union AvailablePLMNList_Item_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AvailablePLMNList_Item_ExtIEs_t; +typedef struct ServedPLMNs_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct ServedPLMNs_ItemExtIEs__extensionValue { + ServedPLMNs_ItemExtIEs__extensionValue_PR present; + union ServedPLMNs_ItemExtIEs__extensionValue_u { + SliceSupportList_t SliceSupportList; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ServedPLMNs_ItemExtIEs_t; +typedef struct Candidate_SpCell_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct Candidate_SpCell_ItemExtIEs__extensionValue { + Candidate_SpCell_ItemExtIEs__extensionValue_PR present; + union Candidate_SpCell_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Candidate_SpCell_ItemExtIEs_t; +typedef struct Cells_Failed_to_be_Activated_List_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct Cells_Failed_to_be_Activated_List_ItemExtIEs__extensionValue { + Cells_Failed_to_be_Activated_List_ItemExtIEs__extensionValue_PR present; + union Cells_Failed_to_be_Activated_List_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_Failed_to_be_Activated_List_ItemExtIEs_t; +typedef struct Cells_Status_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct Cells_Status_ItemExtIEs__extensionValue { + Cells_Status_ItemExtIEs__extensionValue_PR present; + union Cells_Status_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_Status_ItemExtIEs_t; +typedef struct Cells_To_Be_Broadcast_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct Cells_To_Be_Broadcast_ItemExtIEs__extensionValue { + Cells_To_Be_Broadcast_ItemExtIEs__extensionValue_PR present; + union Cells_To_Be_Broadcast_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_To_Be_Broadcast_ItemExtIEs_t; +typedef struct Cells_Broadcast_Completed_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct Cells_Broadcast_Completed_ItemExtIEs__extensionValue { + Cells_Broadcast_Completed_ItemExtIEs__extensionValue_PR present; + union Cells_Broadcast_Completed_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_Broadcast_Completed_ItemExtIEs_t; +typedef struct Broadcast_To_Be_Cancelled_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct Broadcast_To_Be_Cancelled_ItemExtIEs__extensionValue { + Broadcast_To_Be_Cancelled_ItemExtIEs__extensionValue_PR present; + union Broadcast_To_Be_Cancelled_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Broadcast_To_Be_Cancelled_ItemExtIEs_t; +typedef struct Cells_Broadcast_Cancelled_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct Cells_Broadcast_Cancelled_ItemExtIEs__extensionValue { + Cells_Broadcast_Cancelled_ItemExtIEs__extensionValue_PR present; + union Cells_Broadcast_Cancelled_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_Broadcast_Cancelled_ItemExtIEs_t; +typedef struct Cells_to_be_Activated_List_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct Cells_to_be_Activated_List_ItemExtIEs__extensionValue { + Cells_to_be_Activated_List_ItemExtIEs__extensionValue_PR present; + union Cells_to_be_Activated_List_ItemExtIEs__extensionValue_u { + GNB_CUSystemInformation_t GNB_CUSystemInformation; + AvailablePLMNList_t AvailablePLMNList; + ExtendedAvailablePLMN_List_t ExtendedAvailablePLMN_List; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_to_be_Activated_List_ItemExtIEs_t; +typedef struct Cells_to_be_Deactivated_List_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct Cells_to_be_Deactivated_List_ItemExtIEs__extensionValue { + Cells_to_be_Deactivated_List_ItemExtIEs__extensionValue_PR present; + union Cells_to_be_Deactivated_List_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_to_be_Deactivated_List_ItemExtIEs_t; +typedef struct Cells_to_be_Barred_Item_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct Cells_to_be_Barred_Item_ExtIEs__extensionValue { + Cells_to_be_Barred_Item_ExtIEs__extensionValue_PR present; + union Cells_to_be_Barred_Item_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_to_be_Barred_Item_ExtIEs_t; +typedef struct CriticalityDiagnostics_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct CriticalityDiagnostics_ExtIEs__extensionValue { + CriticalityDiagnostics_ExtIEs__extensionValue_PR present; + union CriticalityDiagnostics_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CriticalityDiagnostics_ExtIEs_t; +typedef struct CriticalityDiagnostics_IE_Item_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct CriticalityDiagnostics_IE_Item_ExtIEs__extensionValue { + CriticalityDiagnostics_IE_Item_ExtIEs__extensionValue_PR present; + union CriticalityDiagnostics_IE_Item_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CriticalityDiagnostics_IE_Item_ExtIEs_t; +typedef struct CUtoDURRCInformation_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct CUtoDURRCInformation_ExtIEs__extensionValue { + CUtoDURRCInformation_ExtIEs__extensionValue_PR present; + union CUtoDURRCInformation_ExtIEs__extensionValue_u { + HandoverPreparationInformation_t HandoverPreparationInformation; + CellGroupConfig_t CellGroupConfig; + MeasurementTimingConfiguration_t MeasurementTimingConfiguration; + UEAssistanceInformation_t UEAssistanceInformation; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CUtoDURRCInformation_ExtIEs_t; +typedef struct DedicatedSIDeliveryNeededUE_Item_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct DedicatedSIDeliveryNeededUE_Item_ExtIEs__extensionValue { + DedicatedSIDeliveryNeededUE_Item_ExtIEs__extensionValue_PR present; + union DedicatedSIDeliveryNeededUE_Item_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DedicatedSIDeliveryNeededUE_Item_ExtIEs_t; +typedef struct DLUPTNLInformation_ToBeSetup_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct DLUPTNLInformation_ToBeSetup_ItemExtIEs__extensionValue { + DLUPTNLInformation_ToBeSetup_ItemExtIEs__extensionValue_PR present; + union DLUPTNLInformation_ToBeSetup_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DLUPTNLInformation_ToBeSetup_ItemExtIEs_t; +typedef struct DRB_Activity_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct DRB_Activity_ItemExtIEs__extensionValue { + DRB_Activity_ItemExtIEs__extensionValue_PR present; + union DRB_Activity_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRB_Activity_ItemExtIEs_t; +typedef struct DRBs_FailedToBeModified_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct DRBs_FailedToBeModified_ItemExtIEs__extensionValue { + DRBs_FailedToBeModified_ItemExtIEs__extensionValue_PR present; + union DRBs_FailedToBeModified_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_FailedToBeModified_ItemExtIEs_t; +typedef struct DRBs_FailedToBeSetup_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct DRBs_FailedToBeSetup_ItemExtIEs__extensionValue { + DRBs_FailedToBeSetup_ItemExtIEs__extensionValue_PR present; + union DRBs_FailedToBeSetup_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_FailedToBeSetup_ItemExtIEs_t; +typedef struct DRBs_FailedToBeSetupMod_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct DRBs_FailedToBeSetupMod_ItemExtIEs__extensionValue { + DRBs_FailedToBeSetupMod_ItemExtIEs__extensionValue_PR present; + union DRBs_FailedToBeSetupMod_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_FailedToBeSetupMod_ItemExtIEs_t; +typedef struct DRB_Information_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct DRB_Information_ItemExtIEs__extensionValue { + DRB_Information_ItemExtIEs__extensionValue_PR present; + union DRB_Information_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRB_Information_ItemExtIEs_t; +typedef struct DRBs_Modified_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct DRBs_Modified_ItemExtIEs__extensionValue { + DRBs_Modified_ItemExtIEs__extensionValue_PR present; + union DRBs_Modified_ItemExtIEs__extensionValue_u { + RLC_Status_t RLC_Status; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_Modified_ItemExtIEs_t; +typedef struct DRBs_ModifiedConf_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct DRBs_ModifiedConf_ItemExtIEs__extensionValue { + DRBs_ModifiedConf_ItemExtIEs__extensionValue_PR present; + union DRBs_ModifiedConf_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_ModifiedConf_ItemExtIEs_t; +typedef struct DRB_Notify_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct DRB_Notify_ItemExtIEs__extensionValue { + DRB_Notify_ItemExtIEs__extensionValue_PR present; + union DRB_Notify_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRB_Notify_ItemExtIEs_t; +typedef struct DRBs_Required_ToBeModified_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct DRBs_Required_ToBeModified_ItemExtIEs__extensionValue { + DRBs_Required_ToBeModified_ItemExtIEs__extensionValue_PR present; + union DRBs_Required_ToBeModified_ItemExtIEs__extensionValue_u { + RLC_Status_t RLC_Status; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_Required_ToBeModified_ItemExtIEs_t; +typedef struct DRBs_Required_ToBeReleased_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct DRBs_Required_ToBeReleased_ItemExtIEs__extensionValue { + DRBs_Required_ToBeReleased_ItemExtIEs__extensionValue_PR present; + union DRBs_Required_ToBeReleased_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_Required_ToBeReleased_ItemExtIEs_t; +typedef struct DRBs_Setup_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct DRBs_Setup_ItemExtIEs__extensionValue { + DRBs_Setup_ItemExtIEs__extensionValue_PR present; + union DRBs_Setup_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_Setup_ItemExtIEs_t; +typedef struct DRBs_SetupMod_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct DRBs_SetupMod_ItemExtIEs__extensionValue { + DRBs_SetupMod_ItemExtIEs__extensionValue_PR present; + union DRBs_SetupMod_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_SetupMod_ItemExtIEs_t; +typedef struct DRBs_ToBeModified_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct DRBs_ToBeModified_ItemExtIEs__extensionValue { + DRBs_ToBeModified_ItemExtIEs__extensionValue_PR present; + union DRBs_ToBeModified_ItemExtIEs__extensionValue_u { + PDCPSNLength_t PDCPSNLength; + BearerTypeChange_t BearerTypeChange; + RLCMode_t RLCMode; + DuplicationActivation_t DuplicationActivation; + DCBasedDuplicationConfigured_t DCBasedDuplicationConfigured; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_ToBeModified_ItemExtIEs_t; +typedef struct DRBs_ToBeReleased_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct DRBs_ToBeReleased_ItemExtIEs__extensionValue { + DRBs_ToBeReleased_ItemExtIEs__extensionValue_PR present; + union DRBs_ToBeReleased_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_ToBeReleased_ItemExtIEs_t; +typedef struct DRBs_ToBeSetup_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct DRBs_ToBeSetup_ItemExtIEs__extensionValue { + DRBs_ToBeSetup_ItemExtIEs__extensionValue_PR present; + union DRBs_ToBeSetup_ItemExtIEs__extensionValue_u { + DCBasedDuplicationConfigured_t DCBasedDuplicationConfigured; + DuplicationActivation_t DuplicationActivation; + PDCPSNLength_t PDCPSNLength; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_ToBeSetup_ItemExtIEs_t; +typedef struct DRBs_ToBeSetupMod_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct DRBs_ToBeSetupMod_ItemExtIEs__extensionValue { + DRBs_ToBeSetupMod_ItemExtIEs__extensionValue_PR present; + union DRBs_ToBeSetupMod_ItemExtIEs__extensionValue_u { + DCBasedDuplicationConfigured_t DCBasedDuplicationConfigured; + DuplicationActivation_t DuplicationActivation; + PDCPSNLength_t PDCPSNLength; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_ToBeSetupMod_ItemExtIEs_t; +typedef struct DRXCycle_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct DRXCycle_ExtIEs__extensionValue { + DRXCycle_ExtIEs__extensionValue_PR present; + union DRXCycle_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRXCycle_ExtIEs_t; +typedef struct DUtoCURRCInformation_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct DUtoCURRCInformation_ExtIEs__extensionValue { + DUtoCURRCInformation_ExtIEs__extensionValue_PR present; + union DUtoCURRCInformation_ExtIEs__extensionValue_u { + DRX_LongCycleStartOffset_t DRX_LongCycleStartOffset; + SelectedBandCombinationIndex_t SelectedBandCombinationIndex; + SelectedFeatureSetEntryIndex_t SelectedFeatureSetEntryIndex; + Ph_InfoSCG_t Ph_InfoSCG; + RequestedBandCombinationIndex_t RequestedBandCombinationIndex; + RequestedFeatureSetEntryIndex_t RequestedFeatureSetEntryIndex; + RequestedP_MaxFR2_t RequestedP_MaxFR2; + DRX_Config_t DRX_Config; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DUtoCURRCInformation_ExtIEs_t; +typedef struct Dynamic5QIDescriptor_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct Dynamic5QIDescriptor_ExtIEs__extensionValue { + Dynamic5QIDescriptor_ExtIEs__extensionValue_PR present; + union Dynamic5QIDescriptor_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Dynamic5QIDescriptor_ExtIEs_t; +typedef struct Endpoint_IP_address_and_port_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct Endpoint_IP_address_and_port_ExtIEs__extensionValue { + Endpoint_IP_address_and_port_ExtIEs__extensionValue_PR present; + union Endpoint_IP_address_and_port_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Endpoint_IP_address_and_port_ExtIEs_t; +typedef struct ExtendedAvailablePLMN_Item_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct ExtendedAvailablePLMN_Item_ExtIEs__extensionValue { + ExtendedAvailablePLMN_Item_ExtIEs__extensionValue_PR present; + union ExtendedAvailablePLMN_Item_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ExtendedAvailablePLMN_Item_ExtIEs_t; +typedef struct ExtendedServedPLMNs_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct ExtendedServedPLMNs_ItemExtIEs__extensionValue { + ExtendedServedPLMNs_ItemExtIEs__extensionValue_PR present; + union ExtendedServedPLMNs_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ExtendedServedPLMNs_ItemExtIEs_t; +typedef struct EUTRACells_List_itemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct EUTRACells_List_itemExtIEs__extensionValue { + EUTRACells_List_itemExtIEs__extensionValue_PR present; + union EUTRACells_List_itemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRACells_List_itemExtIEs_t; +typedef struct EUTRA_Coex_FDD_Info_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct EUTRA_Coex_FDD_Info_ExtIEs__extensionValue { + EUTRA_Coex_FDD_Info_ExtIEs__extensionValue_PR present; + union EUTRA_Coex_FDD_Info_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_Coex_FDD_Info_ExtIEs_t; +typedef struct EUTRA_Coex_TDD_Info_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct EUTRA_Coex_TDD_Info_ExtIEs__extensionValue { + EUTRA_Coex_TDD_Info_ExtIEs__extensionValue_PR present; + union EUTRA_Coex_TDD_Info_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_Coex_TDD_Info_ExtIEs_t; +typedef struct EUTRA_PRACH_Configuration_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct EUTRA_PRACH_Configuration_ExtIEs__extensionValue { + EUTRA_PRACH_Configuration_ExtIEs__extensionValue_PR present; + union EUTRA_PRACH_Configuration_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_PRACH_Configuration_ExtIEs_t; +typedef struct EUTRA_SpecialSubframe_Info_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct EUTRA_SpecialSubframe_Info_ExtIEs__extensionValue { + EUTRA_SpecialSubframe_Info_ExtIEs__extensionValue_PR present; + union EUTRA_SpecialSubframe_Info_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_SpecialSubframe_Info_ExtIEs_t; +typedef struct EUTRANQoS_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct EUTRANQoS_ExtIEs__extensionValue { + EUTRANQoS_ExtIEs__extensionValue_PR present; + union EUTRANQoS_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRANQoS_ExtIEs_t; +typedef struct EUTRA_FDD_Info_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct EUTRA_FDD_Info_ExtIEs__extensionValue { + EUTRA_FDD_Info_ExtIEs__extensionValue_PR present; + union EUTRA_FDD_Info_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_FDD_Info_ExtIEs_t; +typedef struct EUTRA_TDD_Info_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct EUTRA_TDD_Info_ExtIEs__extensionValue { + EUTRA_TDD_Info_ExtIEs__extensionValue_PR present; + union EUTRA_TDD_Info_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_TDD_Info_ExtIEs_t; +typedef struct FDD_Info_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct FDD_Info_ExtIEs__extensionValue { + FDD_Info_ExtIEs__extensionValue_PR present; + union FDD_Info_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FDD_Info_ExtIEs_t; +typedef struct Flows_Mapped_To_DRB_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct Flows_Mapped_To_DRB_ItemExtIEs__extensionValue { + Flows_Mapped_To_DRB_ItemExtIEs__extensionValue_PR present; + union Flows_Mapped_To_DRB_ItemExtIEs__extensionValue_u { + QoSFlowMappingIndication_t QoSFlowMappingIndication; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Flows_Mapped_To_DRB_ItemExtIEs_t; +typedef struct FreqBandNrItem_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct FreqBandNrItem_ExtIEs__extensionValue { + FreqBandNrItem_ExtIEs__extensionValue_PR present; + union FreqBandNrItem_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FreqBandNrItem_ExtIEs_t; +typedef struct GBR_QosInformation_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct GBR_QosInformation_ExtIEs__extensionValue { + GBR_QosInformation_ExtIEs__extensionValue_PR present; + union GBR_QosInformation_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GBR_QosInformation_ExtIEs_t; +typedef struct GBR_QosFlowInformation_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct GBR_QosFlowInformation_ExtIEs__extensionValue { + GBR_QosFlowInformation_ExtIEs__extensionValue_PR present; + union GBR_QosFlowInformation_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GBR_QosFlowInformation_ExtIEs_t; +typedef struct GNB_CUSystemInformation_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct GNB_CUSystemInformation_ExtIEs__extensionValue { + GNB_CUSystemInformation_ExtIEs__extensionValue_PR present; + union GNB_CUSystemInformation_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_CUSystemInformation_ExtIEs_t; +typedef struct GNB_CU_TNL_Association_Setup_Item_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct GNB_CU_TNL_Association_Setup_Item_ExtIEs__extensionValue { + GNB_CU_TNL_Association_Setup_Item_ExtIEs__extensionValue_PR present; + union GNB_CU_TNL_Association_Setup_Item_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_CU_TNL_Association_Setup_Item_ExtIEs_t; +typedef struct GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs__extensionValue { + GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs__extensionValue_PR present; + union GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs_t; +typedef struct GNB_CU_TNL_Association_To_Add_Item_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct GNB_CU_TNL_Association_To_Add_Item_ExtIEs__extensionValue { + GNB_CU_TNL_Association_To_Add_Item_ExtIEs__extensionValue_PR present; + union GNB_CU_TNL_Association_To_Add_Item_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_CU_TNL_Association_To_Add_Item_ExtIEs_t; +typedef struct GNB_CU_TNL_Association_To_Remove_Item_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct GNB_CU_TNL_Association_To_Remove_Item_ExtIEs__extensionValue { + GNB_CU_TNL_Association_To_Remove_Item_ExtIEs__extensionValue_PR present; + union GNB_CU_TNL_Association_To_Remove_Item_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_CU_TNL_Association_To_Remove_Item_ExtIEs_t; +typedef struct GNB_CU_TNL_Association_To_Update_Item_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct GNB_CU_TNL_Association_To_Update_Item_ExtIEs__extensionValue { + GNB_CU_TNL_Association_To_Update_Item_ExtIEs__extensionValue_PR present; + union GNB_CU_TNL_Association_To_Update_Item_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_CU_TNL_Association_To_Update_Item_ExtIEs_t; +typedef struct GNB_DU_Served_Cells_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct GNB_DU_Served_Cells_ItemExtIEs__extensionValue { + GNB_DU_Served_Cells_ItemExtIEs__extensionValue_PR present; + union GNB_DU_Served_Cells_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_DU_Served_Cells_ItemExtIEs_t; +typedef struct GNB_DU_System_Information_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct GNB_DU_System_Information_ExtIEs__extensionValue { + GNB_DU_System_Information_ExtIEs__extensionValue_PR present; + union GNB_DU_System_Information_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_DU_System_Information_ExtIEs_t; +typedef struct GTPTunnel_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct GTPTunnel_ExtIEs__extensionValue { + GTPTunnel_ExtIEs__extensionValue_PR present; + union GTPTunnel_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GTPTunnel_ExtIEs_t; +typedef struct NGRANAllocationAndRetentionPriority_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct NGRANAllocationAndRetentionPriority_ExtIEs__extensionValue { + NGRANAllocationAndRetentionPriority_ExtIEs__extensionValue_PR present; + union NGRANAllocationAndRetentionPriority_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NGRANAllocationAndRetentionPriority_ExtIEs_t; +typedef struct NR_CGI_List_For_Restart_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct NR_CGI_List_For_Restart_ItemExtIEs__extensionValue { + NR_CGI_List_For_Restart_ItemExtIEs__extensionValue_PR present; + union NR_CGI_List_For_Restart_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NR_CGI_List_For_Restart_ItemExtIEs_t; +typedef struct NonDynamic5QIDescriptor_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct NonDynamic5QIDescriptor_ExtIEs__extensionValue { + NonDynamic5QIDescriptor_ExtIEs__extensionValue_PR present; + union NonDynamic5QIDescriptor_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NonDynamic5QIDescriptor_ExtIEs_t; +typedef struct NRFreqInfoExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct NRFreqInfoExtIEs__extensionValue { + NRFreqInfoExtIEs__extensionValue_PR present; + union NRFreqInfoExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NRFreqInfoExtIEs_t; +typedef struct NRCGI_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct NRCGI_ExtIEs__extensionValue { + NRCGI_ExtIEs__extensionValue_PR present; + union NRCGI_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NRCGI_ExtIEs_t; +typedef struct PacketErrorRate_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct PacketErrorRate_ExtIEs__extensionValue { + PacketErrorRate_ExtIEs__extensionValue_PR present; + union PacketErrorRate_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PacketErrorRate_ExtIEs_t; +typedef struct PagingCell_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct PagingCell_ItemExtIEs__extensionValue { + PagingCell_ItemExtIEs__extensionValue_PR present; + union PagingCell_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PagingCell_ItemExtIEs_t; +typedef struct Protected_EUTRA_Resources_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct Protected_EUTRA_Resources_ItemExtIEs__extensionValue { + Protected_EUTRA_Resources_ItemExtIEs__extensionValue_PR present; + union Protected_EUTRA_Resources_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Protected_EUTRA_Resources_ItemExtIEs_t; +typedef struct Potential_SpCell_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct Potential_SpCell_ItemExtIEs__extensionValue { + Potential_SpCell_ItemExtIEs__extensionValue_PR present; + union Potential_SpCell_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Potential_SpCell_ItemExtIEs_t; +typedef struct PWS_Failed_NR_CGI_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct PWS_Failed_NR_CGI_ItemExtIEs__extensionValue { + PWS_Failed_NR_CGI_ItemExtIEs__extensionValue_PR present; + union PWS_Failed_NR_CGI_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PWS_Failed_NR_CGI_ItemExtIEs_t; +typedef struct PWSSystemInformationExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct PWSSystemInformationExtIEs__extensionValue { + PWSSystemInformationExtIEs__extensionValue_PR present; + union PWSSystemInformationExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PWSSystemInformationExtIEs_t; +typedef struct QoSFlowLevelQoSParameters_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct QoSFlowLevelQoSParameters_ExtIEs__extensionValue { + QoSFlowLevelQoSParameters_ExtIEs__extensionValue_PR present; + union QoSFlowLevelQoSParameters_ExtIEs__extensionValue_u { + PDUSessionID_t PDUSessionID; + BitRate_t BitRate; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} QoSFlowLevelQoSParameters_ExtIEs_t; +typedef struct RANUEPagingIdentity_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct RANUEPagingIdentity_ExtIEs__extensionValue { + RANUEPagingIdentity_ExtIEs__extensionValue_PR present; + union RANUEPagingIdentity_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RANUEPagingIdentity_ExtIEs_t; +typedef struct ResourceCoordinationEUTRACellInfo_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct ResourceCoordinationEUTRACellInfo_ExtIEs__extensionValue { + ResourceCoordinationEUTRACellInfo_ExtIEs__extensionValue_PR present; + union ResourceCoordinationEUTRACellInfo_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ResourceCoordinationEUTRACellInfo_ExtIEs_t; +typedef struct ResourceCoordinationTransferInformation_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct ResourceCoordinationTransferInformation_ExtIEs__extensionValue { + ResourceCoordinationTransferInformation_ExtIEs__extensionValue_PR present; + union ResourceCoordinationTransferInformation_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ResourceCoordinationTransferInformation_ExtIEs_t; +typedef struct RLCFailureIndication_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct RLCFailureIndication_ExtIEs__extensionValue { + RLCFailureIndication_ExtIEs__extensionValue_PR present; + union RLCFailureIndication_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RLCFailureIndication_ExtIEs_t; +typedef struct RLC_Status_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct RLC_Status_ExtIEs__extensionValue { + RLC_Status_ExtIEs__extensionValue_PR present; + union RLC_Status_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RLC_Status_ExtIEs_t; +typedef struct RRCDeliveryStatus_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct RRCDeliveryStatus_ExtIEs__extensionValue { + RRCDeliveryStatus_ExtIEs__extensionValue_PR present; + union RRCDeliveryStatus_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RRCDeliveryStatus_ExtIEs_t; +typedef struct RRC_Version_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct RRC_Version_ExtIEs__extensionValue { + RRC_Version_ExtIEs__extensionValue_PR present; + union RRC_Version_ExtIEs__extensionValue_u { + Latest_RRC_Version_Enhanced_t Latest_RRC_Version_Enhanced; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RRC_Version_ExtIEs_t; +typedef struct SCell_FailedtoSetup_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct SCell_FailedtoSetup_ItemExtIEs__extensionValue { + SCell_FailedtoSetup_ItemExtIEs__extensionValue_PR present; + union SCell_FailedtoSetup_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SCell_FailedtoSetup_ItemExtIEs_t; +typedef struct SCell_FailedtoSetupMod_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct SCell_FailedtoSetupMod_ItemExtIEs__extensionValue { + SCell_FailedtoSetupMod_ItemExtIEs__extensionValue_PR present; + union SCell_FailedtoSetupMod_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SCell_FailedtoSetupMod_ItemExtIEs_t; +typedef struct SCell_ToBeRemoved_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct SCell_ToBeRemoved_ItemExtIEs__extensionValue { + SCell_ToBeRemoved_ItemExtIEs__extensionValue_PR present; + union SCell_ToBeRemoved_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SCell_ToBeRemoved_ItemExtIEs_t; +typedef struct SCell_ToBeSetup_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct SCell_ToBeSetup_ItemExtIEs__extensionValue { + SCell_ToBeSetup_ItemExtIEs__extensionValue_PR present; + union SCell_ToBeSetup_ItemExtIEs__extensionValue_u { + ServingCellMO_t ServingCellMO; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SCell_ToBeSetup_ItemExtIEs_t; +typedef struct SCell_ToBeSetupMod_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct SCell_ToBeSetupMod_ItemExtIEs__extensionValue { + SCell_ToBeSetupMod_ItemExtIEs__extensionValue_PR present; + union SCell_ToBeSetupMod_ItemExtIEs__extensionValue_u { + ServingCellMO_t ServingCellMO; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SCell_ToBeSetupMod_ItemExtIEs_t; +typedef struct Served_Cell_Information_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct Served_Cell_Information_ExtIEs__extensionValue { + Served_Cell_Information_ExtIEs__extensionValue_PR present; + union Served_Cell_Information_ExtIEs__extensionValue_u { + RANAC_t RANAC; + ExtendedServedPLMNs_List_t ExtendedServedPLMNs_List; + Cell_Direction_t Cell_Direction; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Served_Cell_Information_ExtIEs_t; +typedef struct Served_Cells_To_Add_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct Served_Cells_To_Add_ItemExtIEs__extensionValue { + Served_Cells_To_Add_ItemExtIEs__extensionValue_PR present; + union Served_Cells_To_Add_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Served_Cells_To_Add_ItemExtIEs_t; +typedef struct Served_Cells_To_Delete_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct Served_Cells_To_Delete_ItemExtIEs__extensionValue { + Served_Cells_To_Delete_ItemExtIEs__extensionValue_PR present; + union Served_Cells_To_Delete_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Served_Cells_To_Delete_ItemExtIEs_t; +typedef struct Served_Cells_To_Modify_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct Served_Cells_To_Modify_ItemExtIEs__extensionValue { + Served_Cells_To_Modify_ItemExtIEs__extensionValue_PR present; + union Served_Cells_To_Modify_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Served_Cells_To_Modify_ItemExtIEs_t; +typedef struct Served_EUTRA_Cell_Information_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct Served_EUTRA_Cell_Information_ExtIEs__extensionValue { + Served_EUTRA_Cell_Information_ExtIEs__extensionValue_PR present; + union Served_EUTRA_Cell_Information_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Served_EUTRA_Cell_Information_ExtIEs_t; +typedef struct Service_Status_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct Service_Status_ExtIEs__extensionValue { + Service_Status_ExtIEs__extensionValue_PR present; + union Service_Status_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Service_Status_ExtIEs_t; +typedef struct SItype_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct SItype_ItemExtIEs__extensionValue { + SItype_ItemExtIEs__extensionValue_PR present; + union SItype_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SItype_ItemExtIEs_t; +typedef struct SibtypetobeupdatedListItem_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct SibtypetobeupdatedListItem_ExtIEs__extensionValue { + SibtypetobeupdatedListItem_ExtIEs__extensionValue_PR present; + union SibtypetobeupdatedListItem_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SibtypetobeupdatedListItem_ExtIEs_t; +typedef struct SliceSupportItem_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct SliceSupportItem_ExtIEs__extensionValue { + SliceSupportItem_ExtIEs__extensionValue_PR present; + union SliceSupportItem_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SliceSupportItem_ExtIEs_t; +typedef struct SNSSAI_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct SNSSAI_ExtIEs__extensionValue { + SNSSAI_ExtIEs__extensionValue_PR present; + union SNSSAI_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SNSSAI_ExtIEs_t; +typedef struct SRBs_FailedToBeSetup_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct SRBs_FailedToBeSetup_ItemExtIEs__extensionValue { + SRBs_FailedToBeSetup_ItemExtIEs__extensionValue_PR present; + union SRBs_FailedToBeSetup_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_FailedToBeSetup_ItemExtIEs_t; +typedef struct SRBs_FailedToBeSetupMod_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct SRBs_FailedToBeSetupMod_ItemExtIEs__extensionValue { + SRBs_FailedToBeSetupMod_ItemExtIEs__extensionValue_PR present; + union SRBs_FailedToBeSetupMod_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_FailedToBeSetupMod_ItemExtIEs_t; +typedef struct SRBs_Modified_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct SRBs_Modified_ItemExtIEs__extensionValue { + SRBs_Modified_ItemExtIEs__extensionValue_PR present; + union SRBs_Modified_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_Modified_ItemExtIEs_t; +typedef struct SRBs_Required_ToBeReleased_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct SRBs_Required_ToBeReleased_ItemExtIEs__extensionValue { + SRBs_Required_ToBeReleased_ItemExtIEs__extensionValue_PR present; + union SRBs_Required_ToBeReleased_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_Required_ToBeReleased_ItemExtIEs_t; +typedef struct SRBs_Setup_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct SRBs_Setup_ItemExtIEs__extensionValue { + SRBs_Setup_ItemExtIEs__extensionValue_PR present; + union SRBs_Setup_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_Setup_ItemExtIEs_t; +typedef struct SRBs_SetupMod_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct SRBs_SetupMod_ItemExtIEs__extensionValue { + SRBs_SetupMod_ItemExtIEs__extensionValue_PR present; + union SRBs_SetupMod_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_SetupMod_ItemExtIEs_t; +typedef struct SRBs_ToBeReleased_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct SRBs_ToBeReleased_ItemExtIEs__extensionValue { + SRBs_ToBeReleased_ItemExtIEs__extensionValue_PR present; + union SRBs_ToBeReleased_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_ToBeReleased_ItemExtIEs_t; +typedef struct SRBs_ToBeSetup_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct SRBs_ToBeSetup_ItemExtIEs__extensionValue { + SRBs_ToBeSetup_ItemExtIEs__extensionValue_PR present; + union SRBs_ToBeSetup_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_ToBeSetup_ItemExtIEs_t; +typedef struct SRBs_ToBeSetupMod_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct SRBs_ToBeSetupMod_ItemExtIEs__extensionValue { + SRBs_ToBeSetupMod_ItemExtIEs__extensionValue_PR present; + union SRBs_ToBeSetupMod_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_ToBeSetupMod_ItemExtIEs_t; +typedef struct SUL_InformationExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct SUL_InformationExtIEs__extensionValue { + SUL_InformationExtIEs__extensionValue_PR present; + union SUL_InformationExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SUL_InformationExtIEs_t; +typedef struct SupportedSULFreqBandItem_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct SupportedSULFreqBandItem_ExtIEs__extensionValue { + SupportedSULFreqBandItem_ExtIEs__extensionValue_PR present; + union SupportedSULFreqBandItem_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SupportedSULFreqBandItem_ExtIEs_t; +typedef struct TDD_Info_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct TDD_Info_ExtIEs__extensionValue { + TDD_Info_ExtIEs__extensionValue_PR present; + union TDD_Info_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TDD_Info_ExtIEs_t; +typedef struct Transmission_Bandwidth_ExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct Transmission_Bandwidth_ExtIEs__extensionValue { + Transmission_Bandwidth_ExtIEs__extensionValue_PR present; + union Transmission_Bandwidth_ExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Transmission_Bandwidth_ExtIEs_t; +typedef struct UE_associatedLogicalF1_ConnectionItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct UE_associatedLogicalF1_ConnectionItemExtIEs__extensionValue { + UE_associatedLogicalF1_ConnectionItemExtIEs__extensionValue_PR present; + union UE_associatedLogicalF1_ConnectionItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UE_associatedLogicalF1_ConnectionItemExtIEs_t; +typedef struct ULConfigurationExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct ULConfigurationExtIEs__extensionValue { + ULConfigurationExtIEs__extensionValue_PR present; + union ULConfigurationExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ULConfigurationExtIEs_t; +typedef struct ULUPTNLInformation_ToBeSetup_ItemExtIEs { + ProtocolExtensionID_t id; + Criticality_t criticality; + struct ULUPTNLInformation_ToBeSetup_ItemExtIEs__extensionValue { + ULUPTNLInformation_ToBeSetup_ItemExtIEs__extensionValue_PR present; + union ULUPTNLInformation_ToBeSetup_ItemExtIEs__extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ULUPTNLInformation_ToBeSetup_ItemExtIEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AllocationAndRetentionPriority_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_AllocationAndRetentionPriority_ExtIEs_specs_1; +extern asn_TYPE_member_t asn_MBR_AllocationAndRetentionPriority_ExtIEs_1[3]; +extern asn_TYPE_descriptor_t asn_DEF_Associated_SCell_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Associated_SCell_ItemExtIEs_specs_5; +extern asn_TYPE_member_t asn_MBR_Associated_SCell_ItemExtIEs_5[3]; +extern asn_TYPE_descriptor_t asn_DEF_AvailablePLMNList_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_AvailablePLMNList_Item_ExtIEs_specs_9; +extern asn_TYPE_member_t asn_MBR_AvailablePLMNList_Item_ExtIEs_9[3]; +extern asn_TYPE_descriptor_t asn_DEF_ServedPLMNs_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ServedPLMNs_ItemExtIEs_specs_13; +extern asn_TYPE_member_t asn_MBR_ServedPLMNs_ItemExtIEs_13[3]; +extern asn_TYPE_descriptor_t asn_DEF_Candidate_SpCell_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Candidate_SpCell_ItemExtIEs_specs_17; +extern asn_TYPE_member_t asn_MBR_Candidate_SpCell_ItemExtIEs_17[3]; +extern asn_TYPE_descriptor_t asn_DEF_Cells_Failed_to_be_Activated_List_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Cells_Failed_to_be_Activated_List_ItemExtIEs_specs_21; +extern asn_TYPE_member_t asn_MBR_Cells_Failed_to_be_Activated_List_ItemExtIEs_21[3]; +extern asn_TYPE_descriptor_t asn_DEF_Cells_Status_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Cells_Status_ItemExtIEs_specs_25; +extern asn_TYPE_member_t asn_MBR_Cells_Status_ItemExtIEs_25[3]; +extern asn_TYPE_descriptor_t asn_DEF_Cells_To_Be_Broadcast_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Cells_To_Be_Broadcast_ItemExtIEs_specs_29; +extern asn_TYPE_member_t asn_MBR_Cells_To_Be_Broadcast_ItemExtIEs_29[3]; +extern asn_TYPE_descriptor_t asn_DEF_Cells_Broadcast_Completed_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Cells_Broadcast_Completed_ItemExtIEs_specs_33; +extern asn_TYPE_member_t asn_MBR_Cells_Broadcast_Completed_ItemExtIEs_33[3]; +extern asn_TYPE_descriptor_t asn_DEF_Broadcast_To_Be_Cancelled_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Broadcast_To_Be_Cancelled_ItemExtIEs_specs_37; +extern asn_TYPE_member_t asn_MBR_Broadcast_To_Be_Cancelled_ItemExtIEs_37[3]; +extern asn_TYPE_descriptor_t asn_DEF_Cells_Broadcast_Cancelled_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Cells_Broadcast_Cancelled_ItemExtIEs_specs_41; +extern asn_TYPE_member_t asn_MBR_Cells_Broadcast_Cancelled_ItemExtIEs_41[3]; +extern asn_TYPE_descriptor_t asn_DEF_Cells_to_be_Activated_List_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Cells_to_be_Activated_List_ItemExtIEs_specs_45; +extern asn_TYPE_member_t asn_MBR_Cells_to_be_Activated_List_ItemExtIEs_45[3]; +extern asn_TYPE_descriptor_t asn_DEF_Cells_to_be_Deactivated_List_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Cells_to_be_Deactivated_List_ItemExtIEs_specs_49; +extern asn_TYPE_member_t asn_MBR_Cells_to_be_Deactivated_List_ItemExtIEs_49[3]; +extern asn_TYPE_descriptor_t asn_DEF_Cells_to_be_Barred_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Cells_to_be_Barred_Item_ExtIEs_specs_53; +extern asn_TYPE_member_t asn_MBR_Cells_to_be_Barred_Item_ExtIEs_53[3]; +extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_ExtIEs_specs_57; +extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_ExtIEs_57[3]; +extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_IE_Item_ExtIEs_specs_61; +extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_Item_ExtIEs_61[3]; +extern asn_TYPE_descriptor_t asn_DEF_CUtoDURRCInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_CUtoDURRCInformation_ExtIEs_specs_65; +extern asn_TYPE_member_t asn_MBR_CUtoDURRCInformation_ExtIEs_65[3]; +extern asn_TYPE_descriptor_t asn_DEF_DedicatedSIDeliveryNeededUE_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DedicatedSIDeliveryNeededUE_Item_ExtIEs_specs_69; +extern asn_TYPE_member_t asn_MBR_DedicatedSIDeliveryNeededUE_Item_ExtIEs_69[3]; +extern asn_TYPE_descriptor_t asn_DEF_DLUPTNLInformation_ToBeSetup_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DLUPTNLInformation_ToBeSetup_ItemExtIEs_specs_73; +extern asn_TYPE_member_t asn_MBR_DLUPTNLInformation_ToBeSetup_ItemExtIEs_73[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRB_Activity_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRB_Activity_ItemExtIEs_specs_77; +extern asn_TYPE_member_t asn_MBR_DRB_Activity_ItemExtIEs_77[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRBs_FailedToBeModified_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRBs_FailedToBeModified_ItemExtIEs_specs_81; +extern asn_TYPE_member_t asn_MBR_DRBs_FailedToBeModified_ItemExtIEs_81[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRBs_FailedToBeSetup_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRBs_FailedToBeSetup_ItemExtIEs_specs_85; +extern asn_TYPE_member_t asn_MBR_DRBs_FailedToBeSetup_ItemExtIEs_85[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRBs_FailedToBeSetupMod_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRBs_FailedToBeSetupMod_ItemExtIEs_specs_89; +extern asn_TYPE_member_t asn_MBR_DRBs_FailedToBeSetupMod_ItemExtIEs_89[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRB_Information_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRB_Information_ItemExtIEs_specs_93; +extern asn_TYPE_member_t asn_MBR_DRB_Information_ItemExtIEs_93[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRBs_Modified_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRBs_Modified_ItemExtIEs_specs_97; +extern asn_TYPE_member_t asn_MBR_DRBs_Modified_ItemExtIEs_97[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRBs_ModifiedConf_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRBs_ModifiedConf_ItemExtIEs_specs_101; +extern asn_TYPE_member_t asn_MBR_DRBs_ModifiedConf_ItemExtIEs_101[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRB_Notify_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRB_Notify_ItemExtIEs_specs_105; +extern asn_TYPE_member_t asn_MBR_DRB_Notify_ItemExtIEs_105[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRBs_Required_ToBeModified_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRBs_Required_ToBeModified_ItemExtIEs_specs_109; +extern asn_TYPE_member_t asn_MBR_DRBs_Required_ToBeModified_ItemExtIEs_109[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRBs_Required_ToBeReleased_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRBs_Required_ToBeReleased_ItemExtIEs_specs_113; +extern asn_TYPE_member_t asn_MBR_DRBs_Required_ToBeReleased_ItemExtIEs_113[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRBs_Setup_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRBs_Setup_ItemExtIEs_specs_117; +extern asn_TYPE_member_t asn_MBR_DRBs_Setup_ItemExtIEs_117[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRBs_SetupMod_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRBs_SetupMod_ItemExtIEs_specs_121; +extern asn_TYPE_member_t asn_MBR_DRBs_SetupMod_ItemExtIEs_121[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeModified_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRBs_ToBeModified_ItemExtIEs_specs_125; +extern asn_TYPE_member_t asn_MBR_DRBs_ToBeModified_ItemExtIEs_125[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeReleased_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRBs_ToBeReleased_ItemExtIEs_specs_129; +extern asn_TYPE_member_t asn_MBR_DRBs_ToBeReleased_ItemExtIEs_129[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeSetup_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRBs_ToBeSetup_ItemExtIEs_specs_133; +extern asn_TYPE_member_t asn_MBR_DRBs_ToBeSetup_ItemExtIEs_133[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeSetupMod_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRBs_ToBeSetupMod_ItemExtIEs_specs_137; +extern asn_TYPE_member_t asn_MBR_DRBs_ToBeSetupMod_ItemExtIEs_137[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRXCycle_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRXCycle_ExtIEs_specs_141; +extern asn_TYPE_member_t asn_MBR_DRXCycle_ExtIEs_141[3]; +extern asn_TYPE_descriptor_t asn_DEF_DUtoCURRCInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DUtoCURRCInformation_ExtIEs_specs_145; +extern asn_TYPE_member_t asn_MBR_DUtoCURRCInformation_ExtIEs_145[3]; +extern asn_TYPE_descriptor_t asn_DEF_Dynamic5QIDescriptor_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Dynamic5QIDescriptor_ExtIEs_specs_149; +extern asn_TYPE_member_t asn_MBR_Dynamic5QIDescriptor_ExtIEs_149[3]; +extern asn_TYPE_descriptor_t asn_DEF_Endpoint_IP_address_and_port_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Endpoint_IP_address_and_port_ExtIEs_specs_153; +extern asn_TYPE_member_t asn_MBR_Endpoint_IP_address_and_port_ExtIEs_153[3]; +extern asn_TYPE_descriptor_t asn_DEF_ExtendedAvailablePLMN_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ExtendedAvailablePLMN_Item_ExtIEs_specs_157; +extern asn_TYPE_member_t asn_MBR_ExtendedAvailablePLMN_Item_ExtIEs_157[3]; +extern asn_TYPE_descriptor_t asn_DEF_ExtendedServedPLMNs_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ExtendedServedPLMNs_ItemExtIEs_specs_161; +extern asn_TYPE_member_t asn_MBR_ExtendedServedPLMNs_ItemExtIEs_161[3]; +extern asn_TYPE_descriptor_t asn_DEF_EUTRACells_List_itemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRACells_List_itemExtIEs_specs_165; +extern asn_TYPE_member_t asn_MBR_EUTRACells_List_itemExtIEs_165[3]; +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_Coex_FDD_Info_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRA_Coex_FDD_Info_ExtIEs_specs_169; +extern asn_TYPE_member_t asn_MBR_EUTRA_Coex_FDD_Info_ExtIEs_169[3]; +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_Coex_TDD_Info_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRA_Coex_TDD_Info_ExtIEs_specs_173; +extern asn_TYPE_member_t asn_MBR_EUTRA_Coex_TDD_Info_ExtIEs_173[3]; +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_PRACH_Configuration_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRA_PRACH_Configuration_ExtIEs_specs_177; +extern asn_TYPE_member_t asn_MBR_EUTRA_PRACH_Configuration_ExtIEs_177[3]; +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_SpecialSubframe_Info_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRA_SpecialSubframe_Info_ExtIEs_specs_181; +extern asn_TYPE_member_t asn_MBR_EUTRA_SpecialSubframe_Info_ExtIEs_181[3]; +extern asn_TYPE_descriptor_t asn_DEF_EUTRANQoS_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRANQoS_ExtIEs_specs_185; +extern asn_TYPE_member_t asn_MBR_EUTRANQoS_ExtIEs_185[3]; +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_FDD_Info_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRA_FDD_Info_ExtIEs_specs_189; +extern asn_TYPE_member_t asn_MBR_EUTRA_FDD_Info_ExtIEs_189[3]; +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_TDD_Info_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRA_TDD_Info_ExtIEs_specs_193; +extern asn_TYPE_member_t asn_MBR_EUTRA_TDD_Info_ExtIEs_193[3]; +extern asn_TYPE_descriptor_t asn_DEF_FDD_Info_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_FDD_Info_ExtIEs_specs_197; +extern asn_TYPE_member_t asn_MBR_FDD_Info_ExtIEs_197[3]; +extern asn_TYPE_descriptor_t asn_DEF_Flows_Mapped_To_DRB_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Flows_Mapped_To_DRB_ItemExtIEs_specs_201; +extern asn_TYPE_member_t asn_MBR_Flows_Mapped_To_DRB_ItemExtIEs_201[3]; +extern asn_TYPE_descriptor_t asn_DEF_FreqBandNrItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_FreqBandNrItem_ExtIEs_specs_205; +extern asn_TYPE_member_t asn_MBR_FreqBandNrItem_ExtIEs_205[3]; +extern asn_TYPE_descriptor_t asn_DEF_GBR_QosInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_GBR_QosInformation_ExtIEs_specs_209; +extern asn_TYPE_member_t asn_MBR_GBR_QosInformation_ExtIEs_209[3]; +extern asn_TYPE_descriptor_t asn_DEF_GBR_QosFlowInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_GBR_QosFlowInformation_ExtIEs_specs_213; +extern asn_TYPE_member_t asn_MBR_GBR_QosFlowInformation_ExtIEs_213[3]; +extern asn_TYPE_descriptor_t asn_DEF_GNB_CUSystemInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_GNB_CUSystemInformation_ExtIEs_specs_217; +extern asn_TYPE_member_t asn_MBR_GNB_CUSystemInformation_ExtIEs_217[3]; +extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_Setup_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_GNB_CU_TNL_Association_Setup_Item_ExtIEs_specs_221; +extern asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_Setup_Item_ExtIEs_221[3]; +extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs_specs_225; +extern asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_Failed_To_Setup_Item_ExtIEs_225[3]; +extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_To_Add_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_GNB_CU_TNL_Association_To_Add_Item_ExtIEs_specs_229; +extern asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_To_Add_Item_ExtIEs_229[3]; +extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_To_Remove_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_GNB_CU_TNL_Association_To_Remove_Item_ExtIEs_specs_233; +extern asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_To_Remove_Item_ExtIEs_233[3]; +extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_To_Update_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_GNB_CU_TNL_Association_To_Update_Item_ExtIEs_specs_237; +extern asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_To_Update_Item_ExtIEs_237[3]; +extern asn_TYPE_descriptor_t asn_DEF_GNB_DU_Served_Cells_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_GNB_DU_Served_Cells_ItemExtIEs_specs_241; +extern asn_TYPE_member_t asn_MBR_GNB_DU_Served_Cells_ItemExtIEs_241[3]; +extern asn_TYPE_descriptor_t asn_DEF_GNB_DU_System_Information_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_GNB_DU_System_Information_ExtIEs_specs_245; +extern asn_TYPE_member_t asn_MBR_GNB_DU_System_Information_ExtIEs_245[3]; +extern asn_TYPE_descriptor_t asn_DEF_GTPTunnel_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_GTPTunnel_ExtIEs_specs_249; +extern asn_TYPE_member_t asn_MBR_GTPTunnel_ExtIEs_249[3]; +extern asn_TYPE_descriptor_t asn_DEF_NGRANAllocationAndRetentionPriority_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_NGRANAllocationAndRetentionPriority_ExtIEs_specs_253; +extern asn_TYPE_member_t asn_MBR_NGRANAllocationAndRetentionPriority_ExtIEs_253[3]; +extern asn_TYPE_descriptor_t asn_DEF_NR_CGI_List_For_Restart_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_NR_CGI_List_For_Restart_ItemExtIEs_specs_257; +extern asn_TYPE_member_t asn_MBR_NR_CGI_List_For_Restart_ItemExtIEs_257[3]; +extern asn_TYPE_descriptor_t asn_DEF_NonDynamic5QIDescriptor_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_NonDynamic5QIDescriptor_ExtIEs_specs_261; +extern asn_TYPE_member_t asn_MBR_NonDynamic5QIDescriptor_ExtIEs_261[3]; +extern asn_TYPE_descriptor_t asn_DEF_NRFreqInfoExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_NRFreqInfoExtIEs_specs_265; +extern asn_TYPE_member_t asn_MBR_NRFreqInfoExtIEs_265[3]; +extern asn_TYPE_descriptor_t asn_DEF_NRCGI_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_NRCGI_ExtIEs_specs_269; +extern asn_TYPE_member_t asn_MBR_NRCGI_ExtIEs_269[3]; +extern asn_TYPE_descriptor_t asn_DEF_PacketErrorRate_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_PacketErrorRate_ExtIEs_specs_273; +extern asn_TYPE_member_t asn_MBR_PacketErrorRate_ExtIEs_273[3]; +extern asn_TYPE_descriptor_t asn_DEF_PagingCell_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_PagingCell_ItemExtIEs_specs_277; +extern asn_TYPE_member_t asn_MBR_PagingCell_ItemExtIEs_277[3]; +extern asn_TYPE_descriptor_t asn_DEF_Protected_EUTRA_Resources_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Protected_EUTRA_Resources_ItemExtIEs_specs_281; +extern asn_TYPE_member_t asn_MBR_Protected_EUTRA_Resources_ItemExtIEs_281[3]; +extern asn_TYPE_descriptor_t asn_DEF_Potential_SpCell_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Potential_SpCell_ItemExtIEs_specs_285; +extern asn_TYPE_member_t asn_MBR_Potential_SpCell_ItemExtIEs_285[3]; +extern asn_TYPE_descriptor_t asn_DEF_PWS_Failed_NR_CGI_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_PWS_Failed_NR_CGI_ItemExtIEs_specs_289; +extern asn_TYPE_member_t asn_MBR_PWS_Failed_NR_CGI_ItemExtIEs_289[3]; +extern asn_TYPE_descriptor_t asn_DEF_PWSSystemInformationExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_PWSSystemInformationExtIEs_specs_293; +extern asn_TYPE_member_t asn_MBR_PWSSystemInformationExtIEs_293[3]; +extern asn_TYPE_descriptor_t asn_DEF_QoSFlowLevelQoSParameters_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_QoSFlowLevelQoSParameters_ExtIEs_specs_297; +extern asn_TYPE_member_t asn_MBR_QoSFlowLevelQoSParameters_ExtIEs_297[3]; +extern asn_TYPE_descriptor_t asn_DEF_RANUEPagingIdentity_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RANUEPagingIdentity_ExtIEs_specs_301; +extern asn_TYPE_member_t asn_MBR_RANUEPagingIdentity_ExtIEs_301[3]; +extern asn_TYPE_descriptor_t asn_DEF_ResourceCoordinationEUTRACellInfo_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ResourceCoordinationEUTRACellInfo_ExtIEs_specs_305; +extern asn_TYPE_member_t asn_MBR_ResourceCoordinationEUTRACellInfo_ExtIEs_305[3]; +extern asn_TYPE_descriptor_t asn_DEF_ResourceCoordinationTransferInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ResourceCoordinationTransferInformation_ExtIEs_specs_309; +extern asn_TYPE_member_t asn_MBR_ResourceCoordinationTransferInformation_ExtIEs_309[3]; +extern asn_TYPE_descriptor_t asn_DEF_RLCFailureIndication_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RLCFailureIndication_ExtIEs_specs_313; +extern asn_TYPE_member_t asn_MBR_RLCFailureIndication_ExtIEs_313[3]; +extern asn_TYPE_descriptor_t asn_DEF_RLC_Status_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RLC_Status_ExtIEs_specs_317; +extern asn_TYPE_member_t asn_MBR_RLC_Status_ExtIEs_317[3]; +extern asn_TYPE_descriptor_t asn_DEF_RRCDeliveryStatus_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCDeliveryStatus_ExtIEs_specs_321; +extern asn_TYPE_member_t asn_MBR_RRCDeliveryStatus_ExtIEs_321[3]; +extern asn_TYPE_descriptor_t asn_DEF_RRC_Version_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RRC_Version_ExtIEs_specs_325; +extern asn_TYPE_member_t asn_MBR_RRC_Version_ExtIEs_325[3]; +extern asn_TYPE_descriptor_t asn_DEF_SCell_FailedtoSetup_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SCell_FailedtoSetup_ItemExtIEs_specs_329; +extern asn_TYPE_member_t asn_MBR_SCell_FailedtoSetup_ItemExtIEs_329[3]; +extern asn_TYPE_descriptor_t asn_DEF_SCell_FailedtoSetupMod_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SCell_FailedtoSetupMod_ItemExtIEs_specs_333; +extern asn_TYPE_member_t asn_MBR_SCell_FailedtoSetupMod_ItemExtIEs_333[3]; +extern asn_TYPE_descriptor_t asn_DEF_SCell_ToBeRemoved_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SCell_ToBeRemoved_ItemExtIEs_specs_337; +extern asn_TYPE_member_t asn_MBR_SCell_ToBeRemoved_ItemExtIEs_337[3]; +extern asn_TYPE_descriptor_t asn_DEF_SCell_ToBeSetup_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SCell_ToBeSetup_ItemExtIEs_specs_341; +extern asn_TYPE_member_t asn_MBR_SCell_ToBeSetup_ItemExtIEs_341[3]; +extern asn_TYPE_descriptor_t asn_DEF_SCell_ToBeSetupMod_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SCell_ToBeSetupMod_ItemExtIEs_specs_345; +extern asn_TYPE_member_t asn_MBR_SCell_ToBeSetupMod_ItemExtIEs_345[3]; +extern asn_TYPE_descriptor_t asn_DEF_Served_Cell_Information_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Served_Cell_Information_ExtIEs_specs_349; +extern asn_TYPE_member_t asn_MBR_Served_Cell_Information_ExtIEs_349[3]; +extern asn_TYPE_descriptor_t asn_DEF_Served_Cells_To_Add_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Served_Cells_To_Add_ItemExtIEs_specs_353; +extern asn_TYPE_member_t asn_MBR_Served_Cells_To_Add_ItemExtIEs_353[3]; +extern asn_TYPE_descriptor_t asn_DEF_Served_Cells_To_Delete_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Served_Cells_To_Delete_ItemExtIEs_specs_357; +extern asn_TYPE_member_t asn_MBR_Served_Cells_To_Delete_ItemExtIEs_357[3]; +extern asn_TYPE_descriptor_t asn_DEF_Served_Cells_To_Modify_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Served_Cells_To_Modify_ItemExtIEs_specs_361; +extern asn_TYPE_member_t asn_MBR_Served_Cells_To_Modify_ItemExtIEs_361[3]; +extern asn_TYPE_descriptor_t asn_DEF_Served_EUTRA_Cell_Information_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Served_EUTRA_Cell_Information_ExtIEs_specs_365; +extern asn_TYPE_member_t asn_MBR_Served_EUTRA_Cell_Information_ExtIEs_365[3]; +extern asn_TYPE_descriptor_t asn_DEF_Service_Status_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Service_Status_ExtIEs_specs_369; +extern asn_TYPE_member_t asn_MBR_Service_Status_ExtIEs_369[3]; +extern asn_TYPE_descriptor_t asn_DEF_SItype_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SItype_ItemExtIEs_specs_373; +extern asn_TYPE_member_t asn_MBR_SItype_ItemExtIEs_373[3]; +extern asn_TYPE_descriptor_t asn_DEF_SibtypetobeupdatedListItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SibtypetobeupdatedListItem_ExtIEs_specs_377; +extern asn_TYPE_member_t asn_MBR_SibtypetobeupdatedListItem_ExtIEs_377[3]; +extern asn_TYPE_descriptor_t asn_DEF_SliceSupportItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SliceSupportItem_ExtIEs_specs_381; +extern asn_TYPE_member_t asn_MBR_SliceSupportItem_ExtIEs_381[3]; +extern asn_TYPE_descriptor_t asn_DEF_SNSSAI_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SNSSAI_ExtIEs_specs_385; +extern asn_TYPE_member_t asn_MBR_SNSSAI_ExtIEs_385[3]; +extern asn_TYPE_descriptor_t asn_DEF_SRBs_FailedToBeSetup_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SRBs_FailedToBeSetup_ItemExtIEs_specs_389; +extern asn_TYPE_member_t asn_MBR_SRBs_FailedToBeSetup_ItemExtIEs_389[3]; +extern asn_TYPE_descriptor_t asn_DEF_SRBs_FailedToBeSetupMod_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SRBs_FailedToBeSetupMod_ItemExtIEs_specs_393; +extern asn_TYPE_member_t asn_MBR_SRBs_FailedToBeSetupMod_ItemExtIEs_393[3]; +extern asn_TYPE_descriptor_t asn_DEF_SRBs_Modified_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SRBs_Modified_ItemExtIEs_specs_397; +extern asn_TYPE_member_t asn_MBR_SRBs_Modified_ItemExtIEs_397[3]; +extern asn_TYPE_descriptor_t asn_DEF_SRBs_Required_ToBeReleased_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SRBs_Required_ToBeReleased_ItemExtIEs_specs_401; +extern asn_TYPE_member_t asn_MBR_SRBs_Required_ToBeReleased_ItemExtIEs_401[3]; +extern asn_TYPE_descriptor_t asn_DEF_SRBs_Setup_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SRBs_Setup_ItemExtIEs_specs_405; +extern asn_TYPE_member_t asn_MBR_SRBs_Setup_ItemExtIEs_405[3]; +extern asn_TYPE_descriptor_t asn_DEF_SRBs_SetupMod_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SRBs_SetupMod_ItemExtIEs_specs_409; +extern asn_TYPE_member_t asn_MBR_SRBs_SetupMod_ItemExtIEs_409[3]; +extern asn_TYPE_descriptor_t asn_DEF_SRBs_ToBeReleased_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SRBs_ToBeReleased_ItemExtIEs_specs_413; +extern asn_TYPE_member_t asn_MBR_SRBs_ToBeReleased_ItemExtIEs_413[3]; +extern asn_TYPE_descriptor_t asn_DEF_SRBs_ToBeSetup_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SRBs_ToBeSetup_ItemExtIEs_specs_417; +extern asn_TYPE_member_t asn_MBR_SRBs_ToBeSetup_ItemExtIEs_417[3]; +extern asn_TYPE_descriptor_t asn_DEF_SRBs_ToBeSetupMod_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SRBs_ToBeSetupMod_ItemExtIEs_specs_421; +extern asn_TYPE_member_t asn_MBR_SRBs_ToBeSetupMod_ItemExtIEs_421[3]; +extern asn_TYPE_descriptor_t asn_DEF_SUL_InformationExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SUL_InformationExtIEs_specs_425; +extern asn_TYPE_member_t asn_MBR_SUL_InformationExtIEs_425[3]; +extern asn_TYPE_descriptor_t asn_DEF_SupportedSULFreqBandItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SupportedSULFreqBandItem_ExtIEs_specs_429; +extern asn_TYPE_member_t asn_MBR_SupportedSULFreqBandItem_ExtIEs_429[3]; +extern asn_TYPE_descriptor_t asn_DEF_TDD_Info_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_TDD_Info_ExtIEs_specs_433; +extern asn_TYPE_member_t asn_MBR_TDD_Info_ExtIEs_433[3]; +extern asn_TYPE_descriptor_t asn_DEF_Transmission_Bandwidth_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Transmission_Bandwidth_ExtIEs_specs_437; +extern asn_TYPE_member_t asn_MBR_Transmission_Bandwidth_ExtIEs_437[3]; +extern asn_TYPE_descriptor_t asn_DEF_UE_associatedLogicalF1_ConnectionItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_UE_associatedLogicalF1_ConnectionItemExtIEs_specs_441; +extern asn_TYPE_member_t asn_MBR_UE_associatedLogicalF1_ConnectionItemExtIEs_441[3]; +extern asn_TYPE_descriptor_t asn_DEF_ULConfigurationExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ULConfigurationExtIEs_specs_445; +extern asn_TYPE_member_t asn_MBR_ULConfigurationExtIEs_445[3]; +extern asn_TYPE_descriptor_t asn_DEF_ULUPTNLInformation_ToBeSetup_ItemExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ULUPTNLInformation_ToBeSetup_ItemExtIEs_specs_449; +extern asn_TYPE_member_t asn_MBR_ULUPTNLInformation_ToBeSetup_ItemExtIEs_449[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtocolExtensionField_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ProtocolExtensionID.c b/src/du_app/F1AP/asn/ProtocolExtensionID.c new file mode 100755 index 000000000..e8f2ec401 --- /dev/null +++ b/src/du_app/F1AP/asn/ProtocolExtensionID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-CommonDataTypes" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ProtocolExtensionID.h" + +int +ProtocolExtensionID_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_ProtocolExtensionID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionID_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_ProtocolExtensionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionID = { + "ProtocolExtensionID", + "ProtocolExtensionID", + &asn_OP_NativeInteger, + asn_DEF_ProtocolExtensionID_tags_1, + sizeof(asn_DEF_ProtocolExtensionID_tags_1) + /sizeof(asn_DEF_ProtocolExtensionID_tags_1[0]), /* 1 */ + asn_DEF_ProtocolExtensionID_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionID_tags_1) + /sizeof(asn_DEF_ProtocolExtensionID_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtocolExtensionID_constr_1, &asn_PER_type_ProtocolExtensionID_constr_1, ProtocolExtensionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/ProtocolExtensionID.h b/src/du_app/F1AP/asn/ProtocolExtensionID.h new file mode 100755 index 000000000..355a8d9e9 --- /dev/null +++ b/src/du_app/F1AP/asn/ProtocolExtensionID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-CommonDataTypes" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ProtocolExtensionID_H_ +#define _ProtocolExtensionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProtocolExtensionID */ +typedef long ProtocolExtensionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionID; +asn_struct_free_f ProtocolExtensionID_free; +asn_struct_print_f ProtocolExtensionID_print; +asn_constr_check_f ProtocolExtensionID_constraint; +ber_type_decoder_f ProtocolExtensionID_decode_ber; +der_type_encoder_f ProtocolExtensionID_encode_der; +xer_type_decoder_f ProtocolExtensionID_decode_xer; +xer_type_encoder_f ProtocolExtensionID_encode_xer; +oer_type_decoder_f ProtocolExtensionID_decode_oer; +oer_type_encoder_f ProtocolExtensionID_encode_oer; +per_type_decoder_f ProtocolExtensionID_decode_uper; +per_type_encoder_f ProtocolExtensionID_encode_uper; +per_type_decoder_f ProtocolExtensionID_decode_aper; +per_type_encoder_f ProtocolExtensionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtocolExtensionID_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ProtocolIE-Container.c b/src/du_app/F1AP/asn/ProtocolIE-Container.c new file mode 100755 index 000000000..74a679b48 --- /dev/null +++ b/src/du_app/F1AP/asn/ProtocolIE-Container.c @@ -0,0 +1,1773 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-Containers" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ProtocolIE-Container.h" + +#include "ProtocolIE-Field.h" +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P0_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P0_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P1_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P1_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P2_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P2_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P3_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P3_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P4_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P4_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P5_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P5_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P6_constr_13 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P6_constr_13 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P7_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P7_constr_15 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P8_constr_17 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P8_constr_17 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P9_constr_19 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P9_constr_19 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P10_constr_21 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P10_constr_21 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P11_constr_23 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P11_constr_23 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P12_constr_25 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P12_constr_25 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P13_constr_27 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P13_constr_27 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P14_constr_29 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P14_constr_29 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P15_constr_31 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P15_constr_31 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P16_constr_33 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P16_constr_33 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P17_constr_35 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P17_constr_35 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P18_constr_37 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P18_constr_37 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P19_constr_39 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P19_constr_39 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P20_constr_41 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P20_constr_41 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P21_constr_43 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P21_constr_43 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P22_constr_45 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P22_constr_45 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P23_constr_47 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P23_constr_47 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P24_constr_49 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P24_constr_49 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P25_constr_51 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P25_constr_51 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P26_constr_53 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P26_constr_53 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P27_constr_55 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P27_constr_55 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P28_constr_57 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P28_constr_57 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P29_constr_59 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P29_constr_59 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P30_constr_61 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P30_constr_61 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P31_constr_63 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P31_constr_63 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P32_constr_65 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P32_constr_65 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P33_constr_67 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P33_constr_67 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P34_constr_69 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P34_constr_69 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P35_constr_71 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P35_constr_71 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P36_constr_73 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P36_constr_73 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P37_constr_75 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P37_constr_75 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P38_constr_77 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P38_constr_77 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P39_constr_79 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P39_constr_79 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_4587P40_constr_81 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P40_constr_81 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_4587P0_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ResetIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P0_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P0_specs_1 = { + sizeof(struct ProtocolIE_Container_4587P0), + offsetof(struct ProtocolIE_Container_4587P0, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P0 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P0_tags_1, + sizeof(asn_DEF_ProtocolIE_Container_4587P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_Container_4587P0_tags_1[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P0_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_Container_4587P0_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P0_constr_1, &asn_PER_type_ProtocolIE_Container_4587P0_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P0_1, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P0_specs_1 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P1_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ResetAcknowledgeIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P1_tags_3[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P1_specs_3 = { + sizeof(struct ProtocolIE_Container_4587P1), + offsetof(struct ProtocolIE_Container_4587P1, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P1 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P1_tags_3, + sizeof(asn_DEF_ProtocolIE_Container_4587P1_tags_3) + /sizeof(asn_DEF_ProtocolIE_Container_4587P1_tags_3[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P1_tags_3, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P1_tags_3) + /sizeof(asn_DEF_ProtocolIE_Container_4587P1_tags_3[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P1_constr_3, &asn_PER_type_ProtocolIE_Container_4587P1_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P1_3, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P1_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P2_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ErrorIndicationIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P2_tags_5[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P2_specs_5 = { + sizeof(struct ProtocolIE_Container_4587P2), + offsetof(struct ProtocolIE_Container_4587P2, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P2 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P2_tags_5, + sizeof(asn_DEF_ProtocolIE_Container_4587P2_tags_5) + /sizeof(asn_DEF_ProtocolIE_Container_4587P2_tags_5[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P2_tags_5, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P2_tags_5) + /sizeof(asn_DEF_ProtocolIE_Container_4587P2_tags_5[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P2_constr_5, &asn_PER_type_ProtocolIE_Container_4587P2_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P2_5, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P2_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P3_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_F1SetupRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P3_tags_7[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P3_specs_7 = { + sizeof(struct ProtocolIE_Container_4587P3), + offsetof(struct ProtocolIE_Container_4587P3, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P3 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P3_tags_7, + sizeof(asn_DEF_ProtocolIE_Container_4587P3_tags_7) + /sizeof(asn_DEF_ProtocolIE_Container_4587P3_tags_7[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P3_tags_7, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P3_tags_7) + /sizeof(asn_DEF_ProtocolIE_Container_4587P3_tags_7[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P3_constr_7, &asn_PER_type_ProtocolIE_Container_4587P3_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P3_7, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P3_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P4_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_F1SetupResponseIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P4_tags_9[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P4_specs_9 = { + sizeof(struct ProtocolIE_Container_4587P4), + offsetof(struct ProtocolIE_Container_4587P4, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P4 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P4_tags_9, + sizeof(asn_DEF_ProtocolIE_Container_4587P4_tags_9) + /sizeof(asn_DEF_ProtocolIE_Container_4587P4_tags_9[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P4_tags_9, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P4_tags_9) + /sizeof(asn_DEF_ProtocolIE_Container_4587P4_tags_9[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P4_constr_9, &asn_PER_type_ProtocolIE_Container_4587P4_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P4_9, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P4_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P5_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_F1SetupFailureIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P5_tags_11[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P5_specs_11 = { + sizeof(struct ProtocolIE_Container_4587P5), + offsetof(struct ProtocolIE_Container_4587P5, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P5 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P5_tags_11, + sizeof(asn_DEF_ProtocolIE_Container_4587P5_tags_11) + /sizeof(asn_DEF_ProtocolIE_Container_4587P5_tags_11[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P5_tags_11, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P5_tags_11) + /sizeof(asn_DEF_ProtocolIE_Container_4587P5_tags_11[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P5_constr_11, &asn_PER_type_ProtocolIE_Container_4587P5_constr_11, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P5_11, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P5_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P6_13[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNBDUConfigurationUpdateIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P6_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P6_specs_13 = { + sizeof(struct ProtocolIE_Container_4587P6), + offsetof(struct ProtocolIE_Container_4587P6, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P6 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P6_tags_13, + sizeof(asn_DEF_ProtocolIE_Container_4587P6_tags_13) + /sizeof(asn_DEF_ProtocolIE_Container_4587P6_tags_13[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P6_tags_13, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P6_tags_13) + /sizeof(asn_DEF_ProtocolIE_Container_4587P6_tags_13[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P6_constr_13, &asn_PER_type_ProtocolIE_Container_4587P6_constr_13, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P6_13, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P6_specs_13 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P7_15[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNBDUConfigurationUpdateAcknowledgeIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P7_tags_15[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P7_specs_15 = { + sizeof(struct ProtocolIE_Container_4587P7), + offsetof(struct ProtocolIE_Container_4587P7, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P7 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P7_tags_15, + sizeof(asn_DEF_ProtocolIE_Container_4587P7_tags_15) + /sizeof(asn_DEF_ProtocolIE_Container_4587P7_tags_15[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P7_tags_15, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P7_tags_15) + /sizeof(asn_DEF_ProtocolIE_Container_4587P7_tags_15[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P7_constr_15, &asn_PER_type_ProtocolIE_Container_4587P7_constr_15, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P7_15, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P7_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P8_17[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNBDUConfigurationUpdateFailureIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P8_tags_17[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P8_specs_17 = { + sizeof(struct ProtocolIE_Container_4587P8), + offsetof(struct ProtocolIE_Container_4587P8, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P8 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P8_tags_17, + sizeof(asn_DEF_ProtocolIE_Container_4587P8_tags_17) + /sizeof(asn_DEF_ProtocolIE_Container_4587P8_tags_17[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P8_tags_17, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P8_tags_17) + /sizeof(asn_DEF_ProtocolIE_Container_4587P8_tags_17[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P8_constr_17, &asn_PER_type_ProtocolIE_Container_4587P8_constr_17, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P8_17, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P8_specs_17 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P9_19[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNBCUConfigurationUpdateIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P9_tags_19[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P9_specs_19 = { + sizeof(struct ProtocolIE_Container_4587P9), + offsetof(struct ProtocolIE_Container_4587P9, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P9 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P9_tags_19, + sizeof(asn_DEF_ProtocolIE_Container_4587P9_tags_19) + /sizeof(asn_DEF_ProtocolIE_Container_4587P9_tags_19[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P9_tags_19, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P9_tags_19) + /sizeof(asn_DEF_ProtocolIE_Container_4587P9_tags_19[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P9_constr_19, &asn_PER_type_ProtocolIE_Container_4587P9_constr_19, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P9_19, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P9_specs_19 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P10_21[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNBCUConfigurationUpdateAcknowledgeIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P10_tags_21[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P10_specs_21 = { + sizeof(struct ProtocolIE_Container_4587P10), + offsetof(struct ProtocolIE_Container_4587P10, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P10 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P10_tags_21, + sizeof(asn_DEF_ProtocolIE_Container_4587P10_tags_21) + /sizeof(asn_DEF_ProtocolIE_Container_4587P10_tags_21[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P10_tags_21, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P10_tags_21) + /sizeof(asn_DEF_ProtocolIE_Container_4587P10_tags_21[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P10_constr_21, &asn_PER_type_ProtocolIE_Container_4587P10_constr_21, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P10_21, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P10_specs_21 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P11_23[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNBCUConfigurationUpdateFailureIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P11_tags_23[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P11_specs_23 = { + sizeof(struct ProtocolIE_Container_4587P11), + offsetof(struct ProtocolIE_Container_4587P11, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P11 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P11_tags_23, + sizeof(asn_DEF_ProtocolIE_Container_4587P11_tags_23) + /sizeof(asn_DEF_ProtocolIE_Container_4587P11_tags_23[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P11_tags_23, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P11_tags_23) + /sizeof(asn_DEF_ProtocolIE_Container_4587P11_tags_23[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P11_constr_23, &asn_PER_type_ProtocolIE_Container_4587P11_constr_23, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P11_23, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P11_specs_23 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P12_25[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNBDUResourceCoordinationRequest_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P12_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P12_specs_25 = { + sizeof(struct ProtocolIE_Container_4587P12), + offsetof(struct ProtocolIE_Container_4587P12, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P12 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P12_tags_25, + sizeof(asn_DEF_ProtocolIE_Container_4587P12_tags_25) + /sizeof(asn_DEF_ProtocolIE_Container_4587P12_tags_25[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P12_tags_25, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P12_tags_25) + /sizeof(asn_DEF_ProtocolIE_Container_4587P12_tags_25[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P12_constr_25, &asn_PER_type_ProtocolIE_Container_4587P12_constr_25, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P12_25, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P12_specs_25 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P13_27[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNBDUResourceCoordinationResponse_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P13_tags_27[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P13_specs_27 = { + sizeof(struct ProtocolIE_Container_4587P13), + offsetof(struct ProtocolIE_Container_4587P13, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P13 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P13_tags_27, + sizeof(asn_DEF_ProtocolIE_Container_4587P13_tags_27) + /sizeof(asn_DEF_ProtocolIE_Container_4587P13_tags_27[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P13_tags_27, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P13_tags_27) + /sizeof(asn_DEF_ProtocolIE_Container_4587P13_tags_27[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P13_constr_27, &asn_PER_type_ProtocolIE_Container_4587P13_constr_27, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P13_27, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P13_specs_27 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P14_29[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEContextSetupRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P14_tags_29[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P14_specs_29 = { + sizeof(struct ProtocolIE_Container_4587P14), + offsetof(struct ProtocolIE_Container_4587P14, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P14 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P14_tags_29, + sizeof(asn_DEF_ProtocolIE_Container_4587P14_tags_29) + /sizeof(asn_DEF_ProtocolIE_Container_4587P14_tags_29[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P14_tags_29, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P14_tags_29) + /sizeof(asn_DEF_ProtocolIE_Container_4587P14_tags_29[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P14_constr_29, &asn_PER_type_ProtocolIE_Container_4587P14_constr_29, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P14_29, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P14_specs_29 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P15_31[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEContextSetupResponseIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P15_tags_31[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P15_specs_31 = { + sizeof(struct ProtocolIE_Container_4587P15), + offsetof(struct ProtocolIE_Container_4587P15, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P15 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P15_tags_31, + sizeof(asn_DEF_ProtocolIE_Container_4587P15_tags_31) + /sizeof(asn_DEF_ProtocolIE_Container_4587P15_tags_31[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P15_tags_31, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P15_tags_31) + /sizeof(asn_DEF_ProtocolIE_Container_4587P15_tags_31[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P15_constr_31, &asn_PER_type_ProtocolIE_Container_4587P15_constr_31, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P15_31, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P15_specs_31 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P16_33[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEContextSetupFailureIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P16_tags_33[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P16_specs_33 = { + sizeof(struct ProtocolIE_Container_4587P16), + offsetof(struct ProtocolIE_Container_4587P16, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P16 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P16_tags_33, + sizeof(asn_DEF_ProtocolIE_Container_4587P16_tags_33) + /sizeof(asn_DEF_ProtocolIE_Container_4587P16_tags_33[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P16_tags_33, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P16_tags_33) + /sizeof(asn_DEF_ProtocolIE_Container_4587P16_tags_33[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P16_constr_33, &asn_PER_type_ProtocolIE_Container_4587P16_constr_33, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P16_33, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P16_specs_33 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P17_35[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEContextReleaseRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P17_tags_35[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P17_specs_35 = { + sizeof(struct ProtocolIE_Container_4587P17), + offsetof(struct ProtocolIE_Container_4587P17, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P17 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P17_tags_35, + sizeof(asn_DEF_ProtocolIE_Container_4587P17_tags_35) + /sizeof(asn_DEF_ProtocolIE_Container_4587P17_tags_35[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P17_tags_35, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P17_tags_35) + /sizeof(asn_DEF_ProtocolIE_Container_4587P17_tags_35[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P17_constr_35, &asn_PER_type_ProtocolIE_Container_4587P17_constr_35, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P17_35, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P17_specs_35 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P18_37[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEContextReleaseCommandIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P18_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P18_specs_37 = { + sizeof(struct ProtocolIE_Container_4587P18), + offsetof(struct ProtocolIE_Container_4587P18, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P18 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P18_tags_37, + sizeof(asn_DEF_ProtocolIE_Container_4587P18_tags_37) + /sizeof(asn_DEF_ProtocolIE_Container_4587P18_tags_37[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P18_tags_37, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P18_tags_37) + /sizeof(asn_DEF_ProtocolIE_Container_4587P18_tags_37[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P18_constr_37, &asn_PER_type_ProtocolIE_Container_4587P18_constr_37, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P18_37, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P18_specs_37 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P19_39[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEContextReleaseCompleteIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P19_tags_39[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P19_specs_39 = { + sizeof(struct ProtocolIE_Container_4587P19), + offsetof(struct ProtocolIE_Container_4587P19, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P19 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P19_tags_39, + sizeof(asn_DEF_ProtocolIE_Container_4587P19_tags_39) + /sizeof(asn_DEF_ProtocolIE_Container_4587P19_tags_39[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P19_tags_39, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P19_tags_39) + /sizeof(asn_DEF_ProtocolIE_Container_4587P19_tags_39[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P19_constr_39, &asn_PER_type_ProtocolIE_Container_4587P19_constr_39, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P19_39, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P19_specs_39 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P20_41[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEContextModificationRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P20_tags_41[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P20_specs_41 = { + sizeof(struct ProtocolIE_Container_4587P20), + offsetof(struct ProtocolIE_Container_4587P20, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P20 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P20_tags_41, + sizeof(asn_DEF_ProtocolIE_Container_4587P20_tags_41) + /sizeof(asn_DEF_ProtocolIE_Container_4587P20_tags_41[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P20_tags_41, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P20_tags_41) + /sizeof(asn_DEF_ProtocolIE_Container_4587P20_tags_41[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P20_constr_41, &asn_PER_type_ProtocolIE_Container_4587P20_constr_41, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P20_41, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P20_specs_41 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P21_43[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEContextModificationResponseIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P21_tags_43[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P21_specs_43 = { + sizeof(struct ProtocolIE_Container_4587P21), + offsetof(struct ProtocolIE_Container_4587P21, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P21 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P21_tags_43, + sizeof(asn_DEF_ProtocolIE_Container_4587P21_tags_43) + /sizeof(asn_DEF_ProtocolIE_Container_4587P21_tags_43[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P21_tags_43, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P21_tags_43) + /sizeof(asn_DEF_ProtocolIE_Container_4587P21_tags_43[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P21_constr_43, &asn_PER_type_ProtocolIE_Container_4587P21_constr_43, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P21_43, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P21_specs_43 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P22_45[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEContextModificationFailureIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P22_tags_45[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P22_specs_45 = { + sizeof(struct ProtocolIE_Container_4587P22), + offsetof(struct ProtocolIE_Container_4587P22, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P22 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P22_tags_45, + sizeof(asn_DEF_ProtocolIE_Container_4587P22_tags_45) + /sizeof(asn_DEF_ProtocolIE_Container_4587P22_tags_45[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P22_tags_45, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P22_tags_45) + /sizeof(asn_DEF_ProtocolIE_Container_4587P22_tags_45[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P22_constr_45, &asn_PER_type_ProtocolIE_Container_4587P22_constr_45, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P22_45, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P22_specs_45 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P23_47[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEContextModificationRequiredIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P23_tags_47[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P23_specs_47 = { + sizeof(struct ProtocolIE_Container_4587P23), + offsetof(struct ProtocolIE_Container_4587P23, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P23 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P23_tags_47, + sizeof(asn_DEF_ProtocolIE_Container_4587P23_tags_47) + /sizeof(asn_DEF_ProtocolIE_Container_4587P23_tags_47[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P23_tags_47, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P23_tags_47) + /sizeof(asn_DEF_ProtocolIE_Container_4587P23_tags_47[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P23_constr_47, &asn_PER_type_ProtocolIE_Container_4587P23_constr_47, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P23_47, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P23_specs_47 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P24_49[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEContextModificationConfirmIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P24_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P24_specs_49 = { + sizeof(struct ProtocolIE_Container_4587P24), + offsetof(struct ProtocolIE_Container_4587P24, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P24 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P24_tags_49, + sizeof(asn_DEF_ProtocolIE_Container_4587P24_tags_49) + /sizeof(asn_DEF_ProtocolIE_Container_4587P24_tags_49[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P24_tags_49, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P24_tags_49) + /sizeof(asn_DEF_ProtocolIE_Container_4587P24_tags_49[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P24_constr_49, &asn_PER_type_ProtocolIE_Container_4587P24_constr_49, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P24_49, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P24_specs_49 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P25_51[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEContextModificationRefuseIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P25_tags_51[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P25_specs_51 = { + sizeof(struct ProtocolIE_Container_4587P25), + offsetof(struct ProtocolIE_Container_4587P25, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P25 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P25_tags_51, + sizeof(asn_DEF_ProtocolIE_Container_4587P25_tags_51) + /sizeof(asn_DEF_ProtocolIE_Container_4587P25_tags_51[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P25_tags_51, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P25_tags_51) + /sizeof(asn_DEF_ProtocolIE_Container_4587P25_tags_51[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P25_constr_51, &asn_PER_type_ProtocolIE_Container_4587P25_constr_51, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P25_51, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P25_specs_51 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P26_53[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_WriteReplaceWarningRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P26_tags_53[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P26_specs_53 = { + sizeof(struct ProtocolIE_Container_4587P26), + offsetof(struct ProtocolIE_Container_4587P26, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P26 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P26_tags_53, + sizeof(asn_DEF_ProtocolIE_Container_4587P26_tags_53) + /sizeof(asn_DEF_ProtocolIE_Container_4587P26_tags_53[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P26_tags_53, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P26_tags_53) + /sizeof(asn_DEF_ProtocolIE_Container_4587P26_tags_53[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P26_constr_53, &asn_PER_type_ProtocolIE_Container_4587P26_constr_53, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P26_53, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P26_specs_53 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P27_55[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_WriteReplaceWarningResponseIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P27_tags_55[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P27_specs_55 = { + sizeof(struct ProtocolIE_Container_4587P27), + offsetof(struct ProtocolIE_Container_4587P27, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P27 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P27_tags_55, + sizeof(asn_DEF_ProtocolIE_Container_4587P27_tags_55) + /sizeof(asn_DEF_ProtocolIE_Container_4587P27_tags_55[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P27_tags_55, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P27_tags_55) + /sizeof(asn_DEF_ProtocolIE_Container_4587P27_tags_55[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P27_constr_55, &asn_PER_type_ProtocolIE_Container_4587P27_constr_55, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P27_55, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P27_specs_55 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P28_57[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PWSCancelRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P28_tags_57[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P28_specs_57 = { + sizeof(struct ProtocolIE_Container_4587P28), + offsetof(struct ProtocolIE_Container_4587P28, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P28 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P28_tags_57, + sizeof(asn_DEF_ProtocolIE_Container_4587P28_tags_57) + /sizeof(asn_DEF_ProtocolIE_Container_4587P28_tags_57[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P28_tags_57, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P28_tags_57) + /sizeof(asn_DEF_ProtocolIE_Container_4587P28_tags_57[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P28_constr_57, &asn_PER_type_ProtocolIE_Container_4587P28_constr_57, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P28_57, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P28_specs_57 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P29_59[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PWSCancelResponseIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P29_tags_59[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P29_specs_59 = { + sizeof(struct ProtocolIE_Container_4587P29), + offsetof(struct ProtocolIE_Container_4587P29, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P29 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P29_tags_59, + sizeof(asn_DEF_ProtocolIE_Container_4587P29_tags_59) + /sizeof(asn_DEF_ProtocolIE_Container_4587P29_tags_59[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P29_tags_59, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P29_tags_59) + /sizeof(asn_DEF_ProtocolIE_Container_4587P29_tags_59[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P29_constr_59, &asn_PER_type_ProtocolIE_Container_4587P29_constr_59, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P29_59, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P29_specs_59 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P30_61[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEInactivityNotificationIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P30_tags_61[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P30_specs_61 = { + sizeof(struct ProtocolIE_Container_4587P30), + offsetof(struct ProtocolIE_Container_4587P30, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P30 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P30_tags_61, + sizeof(asn_DEF_ProtocolIE_Container_4587P30_tags_61) + /sizeof(asn_DEF_ProtocolIE_Container_4587P30_tags_61[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P30_tags_61, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P30_tags_61) + /sizeof(asn_DEF_ProtocolIE_Container_4587P30_tags_61[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P30_constr_61, &asn_PER_type_ProtocolIE_Container_4587P30_constr_61, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P30_61, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P30_specs_61 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P31_63[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_InitialULRRCMessageTransferIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P31_tags_63[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P31_specs_63 = { + sizeof(struct ProtocolIE_Container_4587P31), + offsetof(struct ProtocolIE_Container_4587P31, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P31 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P31_tags_63, + sizeof(asn_DEF_ProtocolIE_Container_4587P31_tags_63) + /sizeof(asn_DEF_ProtocolIE_Container_4587P31_tags_63[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P31_tags_63, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P31_tags_63) + /sizeof(asn_DEF_ProtocolIE_Container_4587P31_tags_63[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P31_constr_63, &asn_PER_type_ProtocolIE_Container_4587P31_constr_63, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P31_63, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P31_specs_63 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P32_65[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DLRRCMessageTransferIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P32_tags_65[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P32_specs_65 = { + sizeof(struct ProtocolIE_Container_4587P32), + offsetof(struct ProtocolIE_Container_4587P32, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P32 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P32_tags_65, + sizeof(asn_DEF_ProtocolIE_Container_4587P32_tags_65) + /sizeof(asn_DEF_ProtocolIE_Container_4587P32_tags_65[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P32_tags_65, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P32_tags_65) + /sizeof(asn_DEF_ProtocolIE_Container_4587P32_tags_65[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P32_constr_65, &asn_PER_type_ProtocolIE_Container_4587P32_constr_65, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P32_65, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P32_specs_65 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P33_67[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ULRRCMessageTransferIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P33_tags_67[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P33_specs_67 = { + sizeof(struct ProtocolIE_Container_4587P33), + offsetof(struct ProtocolIE_Container_4587P33, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P33 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P33_tags_67, + sizeof(asn_DEF_ProtocolIE_Container_4587P33_tags_67) + /sizeof(asn_DEF_ProtocolIE_Container_4587P33_tags_67[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P33_tags_67, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P33_tags_67) + /sizeof(asn_DEF_ProtocolIE_Container_4587P33_tags_67[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P33_constr_67, &asn_PER_type_ProtocolIE_Container_4587P33_constr_67, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P33_67, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P33_specs_67 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P34_69[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SystemInformationDeliveryCommandIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P34_tags_69[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P34_specs_69 = { + sizeof(struct ProtocolIE_Container_4587P34), + offsetof(struct ProtocolIE_Container_4587P34, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P34 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P34_tags_69, + sizeof(asn_DEF_ProtocolIE_Container_4587P34_tags_69) + /sizeof(asn_DEF_ProtocolIE_Container_4587P34_tags_69[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P34_tags_69, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P34_tags_69) + /sizeof(asn_DEF_ProtocolIE_Container_4587P34_tags_69[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P34_constr_69, &asn_PER_type_ProtocolIE_Container_4587P34_constr_69, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P34_69, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P34_specs_69 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P35_71[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PagingIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P35_tags_71[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P35_specs_71 = { + sizeof(struct ProtocolIE_Container_4587P35), + offsetof(struct ProtocolIE_Container_4587P35, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P35 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P35_tags_71, + sizeof(asn_DEF_ProtocolIE_Container_4587P35_tags_71) + /sizeof(asn_DEF_ProtocolIE_Container_4587P35_tags_71[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P35_tags_71, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P35_tags_71) + /sizeof(asn_DEF_ProtocolIE_Container_4587P35_tags_71[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P35_constr_71, &asn_PER_type_ProtocolIE_Container_4587P35_constr_71, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P35_71, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P35_specs_71 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P36_73[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NotifyIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P36_tags_73[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P36_specs_73 = { + sizeof(struct ProtocolIE_Container_4587P36), + offsetof(struct ProtocolIE_Container_4587P36, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P36 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P36_tags_73, + sizeof(asn_DEF_ProtocolIE_Container_4587P36_tags_73) + /sizeof(asn_DEF_ProtocolIE_Container_4587P36_tags_73[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P36_tags_73, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P36_tags_73) + /sizeof(asn_DEF_ProtocolIE_Container_4587P36_tags_73[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P36_constr_73, &asn_PER_type_ProtocolIE_Container_4587P36_constr_73, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P36_73, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P36_specs_73 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P37_75[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PWSRestartIndicationIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P37_tags_75[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P37_specs_75 = { + sizeof(struct ProtocolIE_Container_4587P37), + offsetof(struct ProtocolIE_Container_4587P37, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P37 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P37_tags_75, + sizeof(asn_DEF_ProtocolIE_Container_4587P37_tags_75) + /sizeof(asn_DEF_ProtocolIE_Container_4587P37_tags_75[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P37_tags_75, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P37_tags_75) + /sizeof(asn_DEF_ProtocolIE_Container_4587P37_tags_75[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P37_constr_75, &asn_PER_type_ProtocolIE_Container_4587P37_constr_75, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P37_75, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P37_specs_75 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P38_77[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PWSFailureIndicationIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P38_tags_77[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P38_specs_77 = { + sizeof(struct ProtocolIE_Container_4587P38), + offsetof(struct ProtocolIE_Container_4587P38, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P38 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P38_tags_77, + sizeof(asn_DEF_ProtocolIE_Container_4587P38_tags_77) + /sizeof(asn_DEF_ProtocolIE_Container_4587P38_tags_77[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P38_tags_77, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P38_tags_77) + /sizeof(asn_DEF_ProtocolIE_Container_4587P38_tags_77[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P38_constr_77, &asn_PER_type_ProtocolIE_Container_4587P38_constr_77, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P38_77, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P38_specs_77 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P39_79[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNBDUStatusIndicationIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P39_tags_79[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P39_specs_79 = { + sizeof(struct ProtocolIE_Container_4587P39), + offsetof(struct ProtocolIE_Container_4587P39, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P39 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P39_tags_79, + sizeof(asn_DEF_ProtocolIE_Container_4587P39_tags_79) + /sizeof(asn_DEF_ProtocolIE_Container_4587P39_tags_79[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P39_tags_79, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P39_tags_79) + /sizeof(asn_DEF_ProtocolIE_Container_4587P39_tags_79[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P39_constr_79, &asn_PER_type_ProtocolIE_Container_4587P39_constr_79, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P39_79, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P39_specs_79 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P40_81[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RRCDeliveryReportIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_4587P40_tags_81[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P40_specs_81 = { + sizeof(struct ProtocolIE_Container_4587P40), + offsetof(struct ProtocolIE_Container_4587P40, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P40 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_4587P40_tags_81, + sizeof(asn_DEF_ProtocolIE_Container_4587P40_tags_81) + /sizeof(asn_DEF_ProtocolIE_Container_4587P40_tags_81[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_4587P40_tags_81, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_4587P40_tags_81) + /sizeof(asn_DEF_ProtocolIE_Container_4587P40_tags_81[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_Container_4587P40_constr_81, &asn_PER_type_ProtocolIE_Container_4587P40_constr_81, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_4587P40_81, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_4587P40_specs_81 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/ProtocolIE-Container.h b/src/du_app/F1AP/asn/ProtocolIE-Container.h new file mode 100755 index 000000000..a8b8a9f43 --- /dev/null +++ b/src/du_app/F1AP/asn/ProtocolIE-Container.h @@ -0,0 +1,484 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-Containers" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ProtocolIE_Container_H_ +#define _ProtocolIE_Container_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ResetIEs; +struct ResetAcknowledgeIEs; +struct ErrorIndicationIEs; +struct F1SetupRequestIEs; +struct F1SetupResponseIEs; +struct F1SetupFailureIEs; +struct GNBDUConfigurationUpdateIEs; +struct GNBDUConfigurationUpdateAcknowledgeIEs; +struct GNBDUConfigurationUpdateFailureIEs; +struct GNBCUConfigurationUpdateIEs; +struct GNBCUConfigurationUpdateAcknowledgeIEs; +struct GNBCUConfigurationUpdateFailureIEs; +struct GNBDUResourceCoordinationRequest_IEs; +struct GNBDUResourceCoordinationResponse_IEs; +struct UEContextSetupRequestIEs; +struct UEContextSetupResponseIEs; +struct UEContextSetupFailureIEs; +struct UEContextReleaseRequestIEs; +struct UEContextReleaseCommandIEs; +struct UEContextReleaseCompleteIEs; +struct UEContextModificationRequestIEs; +struct UEContextModificationResponseIEs; +struct UEContextModificationFailureIEs; +struct UEContextModificationRequiredIEs; +struct UEContextModificationConfirmIEs; +struct UEContextModificationRefuseIEs; +struct WriteReplaceWarningRequestIEs; +struct WriteReplaceWarningResponseIEs; +struct PWSCancelRequestIEs; +struct PWSCancelResponseIEs; +struct UEInactivityNotificationIEs; +struct InitialULRRCMessageTransferIEs; +struct DLRRCMessageTransferIEs; +struct ULRRCMessageTransferIEs; +struct SystemInformationDeliveryCommandIEs; +struct PagingIEs; +struct NotifyIEs; +struct PWSRestartIndicationIEs; +struct PWSFailureIndicationIEs; +struct GNBDUStatusIndicationIEs; +struct RRCDeliveryReportIEs; + +/* ProtocolIE-Container */ +typedef struct ProtocolIE_Container_4587P0 { + A_SEQUENCE_OF(struct ResetIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P0_t; +typedef struct ProtocolIE_Container_4587P1 { + A_SEQUENCE_OF(struct ResetAcknowledgeIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P1_t; +typedef struct ProtocolIE_Container_4587P2 { + A_SEQUENCE_OF(struct ErrorIndicationIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P2_t; +typedef struct ProtocolIE_Container_4587P3 { + A_SEQUENCE_OF(struct F1SetupRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P3_t; +typedef struct ProtocolIE_Container_4587P4 { + A_SEQUENCE_OF(struct F1SetupResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P4_t; +typedef struct ProtocolIE_Container_4587P5 { + A_SEQUENCE_OF(struct F1SetupFailureIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P5_t; +typedef struct ProtocolIE_Container_4587P6 { + A_SEQUENCE_OF(struct GNBDUConfigurationUpdateIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P6_t; +typedef struct ProtocolIE_Container_4587P7 { + A_SEQUENCE_OF(struct GNBDUConfigurationUpdateAcknowledgeIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P7_t; +typedef struct ProtocolIE_Container_4587P8 { + A_SEQUENCE_OF(struct GNBDUConfigurationUpdateFailureIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P8_t; +typedef struct ProtocolIE_Container_4587P9 { + A_SEQUENCE_OF(struct GNBCUConfigurationUpdateIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P9_t; +typedef struct ProtocolIE_Container_4587P10 { + A_SEQUENCE_OF(struct GNBCUConfigurationUpdateAcknowledgeIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P10_t; +typedef struct ProtocolIE_Container_4587P11 { + A_SEQUENCE_OF(struct GNBCUConfigurationUpdateFailureIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P11_t; +typedef struct ProtocolIE_Container_4587P12 { + A_SEQUENCE_OF(struct GNBDUResourceCoordinationRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P12_t; +typedef struct ProtocolIE_Container_4587P13 { + A_SEQUENCE_OF(struct GNBDUResourceCoordinationResponse_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P13_t; +typedef struct ProtocolIE_Container_4587P14 { + A_SEQUENCE_OF(struct UEContextSetupRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P14_t; +typedef struct ProtocolIE_Container_4587P15 { + A_SEQUENCE_OF(struct UEContextSetupResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P15_t; +typedef struct ProtocolIE_Container_4587P16 { + A_SEQUENCE_OF(struct UEContextSetupFailureIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P16_t; +typedef struct ProtocolIE_Container_4587P17 { + A_SEQUENCE_OF(struct UEContextReleaseRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P17_t; +typedef struct ProtocolIE_Container_4587P18 { + A_SEQUENCE_OF(struct UEContextReleaseCommandIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P18_t; +typedef struct ProtocolIE_Container_4587P19 { + A_SEQUENCE_OF(struct UEContextReleaseCompleteIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P19_t; +typedef struct ProtocolIE_Container_4587P20 { + A_SEQUENCE_OF(struct UEContextModificationRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P20_t; +typedef struct ProtocolIE_Container_4587P21 { + A_SEQUENCE_OF(struct UEContextModificationResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P21_t; +typedef struct ProtocolIE_Container_4587P22 { + A_SEQUENCE_OF(struct UEContextModificationFailureIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P22_t; +typedef struct ProtocolIE_Container_4587P23 { + A_SEQUENCE_OF(struct UEContextModificationRequiredIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P23_t; +typedef struct ProtocolIE_Container_4587P24 { + A_SEQUENCE_OF(struct UEContextModificationConfirmIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P24_t; +typedef struct ProtocolIE_Container_4587P25 { + A_SEQUENCE_OF(struct UEContextModificationRefuseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P25_t; +typedef struct ProtocolIE_Container_4587P26 { + A_SEQUENCE_OF(struct WriteReplaceWarningRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P26_t; +typedef struct ProtocolIE_Container_4587P27 { + A_SEQUENCE_OF(struct WriteReplaceWarningResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P27_t; +typedef struct ProtocolIE_Container_4587P28 { + A_SEQUENCE_OF(struct PWSCancelRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P28_t; +typedef struct ProtocolIE_Container_4587P29 { + A_SEQUENCE_OF(struct PWSCancelResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P29_t; +typedef struct ProtocolIE_Container_4587P30 { + A_SEQUENCE_OF(struct UEInactivityNotificationIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P30_t; +typedef struct ProtocolIE_Container_4587P31 { + A_SEQUENCE_OF(struct InitialULRRCMessageTransferIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P31_t; +typedef struct ProtocolIE_Container_4587P32 { + A_SEQUENCE_OF(struct DLRRCMessageTransferIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P32_t; +typedef struct ProtocolIE_Container_4587P33 { + A_SEQUENCE_OF(struct ULRRCMessageTransferIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P33_t; +typedef struct ProtocolIE_Container_4587P34 { + A_SEQUENCE_OF(struct SystemInformationDeliveryCommandIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P34_t; +typedef struct ProtocolIE_Container_4587P35 { + A_SEQUENCE_OF(struct PagingIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P35_t; +typedef struct ProtocolIE_Container_4587P36 { + A_SEQUENCE_OF(struct NotifyIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P36_t; +typedef struct ProtocolIE_Container_4587P37 { + A_SEQUENCE_OF(struct PWSRestartIndicationIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P37_t; +typedef struct ProtocolIE_Container_4587P38 { + A_SEQUENCE_OF(struct PWSFailureIndicationIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P38_t; +typedef struct ProtocolIE_Container_4587P39 { + A_SEQUENCE_OF(struct GNBDUStatusIndicationIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P39_t; +typedef struct ProtocolIE_Container_4587P40 { + A_SEQUENCE_OF(struct RRCDeliveryReportIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_4587P40_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P0; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P0_specs_1; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P0_1[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P0_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P1; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P1_specs_3; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P1_3[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P1_constr_3; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P2; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P2_specs_5; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P2_5[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P2_constr_5; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P3; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P3_specs_7; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P3_7[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P3_constr_7; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P4; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P4_specs_9; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P4_9[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P4_constr_9; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P5; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P5_specs_11; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P5_11[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P5_constr_11; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P6; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P6_specs_13; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P6_13[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P6_constr_13; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P7; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P7_specs_15; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P7_15[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P7_constr_15; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P8; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P8_specs_17; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P8_17[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P8_constr_17; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P9; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P9_specs_19; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P9_19[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P9_constr_19; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P10; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P10_specs_21; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P10_21[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P10_constr_21; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P11; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P11_specs_23; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P11_23[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P11_constr_23; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P12; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P12_specs_25; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P12_25[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P12_constr_25; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P13; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P13_specs_27; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P13_27[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P13_constr_27; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P14; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P14_specs_29; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P14_29[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P14_constr_29; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P15; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P15_specs_31; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P15_31[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P15_constr_31; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P16; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P16_specs_33; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P16_33[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P16_constr_33; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P17; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P17_specs_35; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P17_35[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P17_constr_35; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P18; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P18_specs_37; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P18_37[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P18_constr_37; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P19; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P19_specs_39; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P19_39[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P19_constr_39; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P20; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P20_specs_41; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P20_41[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P20_constr_41; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P21; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P21_specs_43; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P21_43[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P21_constr_43; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P22; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P22_specs_45; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P22_45[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P22_constr_45; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P23; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P23_specs_47; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P23_47[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P23_constr_47; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P24; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P24_specs_49; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P24_49[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P24_constr_49; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P25; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P25_specs_51; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P25_51[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P25_constr_51; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P26; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P26_specs_53; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P26_53[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P26_constr_53; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P27; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P27_specs_55; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P27_55[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P27_constr_55; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P28; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P28_specs_57; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P28_57[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P28_constr_57; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P29; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P29_specs_59; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P29_59[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P29_constr_59; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P30; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P30_specs_61; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P30_61[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P30_constr_61; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P31; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P31_specs_63; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P31_63[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P31_constr_63; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P32; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P32_specs_65; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P32_65[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P32_constr_65; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P33; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P33_specs_67; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P33_67[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P33_constr_67; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P34; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P34_specs_69; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P34_69[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P34_constr_69; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P35; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P35_specs_71; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P35_71[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P35_constr_71; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P36; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P36_specs_73; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P36_73[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P36_constr_73; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P37; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P37_specs_75; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P37_75[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P37_constr_75; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P38; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P38_specs_77; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P38_77[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P38_constr_77; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P39; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P39_specs_79; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P39_79[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P39_constr_79; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_4587P40; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_4587P40_specs_81; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_4587P40_81[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_4587P40_constr_81; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtocolIE_Container_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ProtocolIE-ContainerPair.c b/src/du_app/F1AP/asn/ProtocolIE-ContainerPair.c new file mode 100755 index 000000000..08c918740 --- /dev/null +++ b/src/du_app/F1AP/asn/ProtocolIE-ContainerPair.c @@ -0,0 +1,9 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-Containers" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ProtocolIE-ContainerPair.h" + diff --git a/src/du_app/F1AP/asn/ProtocolIE-ContainerPair.h b/src/du_app/F1AP/asn/ProtocolIE-ContainerPair.h new file mode 100755 index 000000000..bc6ad99fb --- /dev/null +++ b/src/du_app/F1AP/asn/ProtocolIE-ContainerPair.h @@ -0,0 +1,23 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-Containers" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ProtocolIE_ContainerPair_H_ +#define _ProtocolIE_ContainerPair_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtocolIE_ContainerPair_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ProtocolIE-Field.c b/src/du_app/F1AP/asn/ProtocolIE-Field.c new file mode 100755 index 000000000..3566138f1 --- /dev/null +++ b/src/du_app/F1AP/asn/ProtocolIE-Field.c @@ -0,0 +1,30729 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-Containers" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ProtocolIE-Field.h" + +static const long asn_VAL_4_id_UE_associatedLogicalF1_ConnectionItem = 80; +static const long asn_VAL_4_reject = 0; +static const long asn_VAL_4_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_UE_associatedLogicalF1_ConnectionItemRes_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_4_id_UE_associatedLogicalF1_ConnectionItem }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, + { "&Value", aioc__type, &asn_DEF_UE_associatedLogicalF1_ConnectionItem }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_4_mandatory } +}; +static const asn_ioc_set_t asn_IOS_UE_associatedLogicalF1_ConnectionItemRes_1[] = { + { 1, 4, asn_IOS_UE_associatedLogicalF1_ConnectionItemRes_1_rows } +}; +static const long asn_VAL_8_id_UE_associatedLogicalF1_ConnectionItem = 80; +static const long asn_VAL_8_ignore = 1; +static const long asn_VAL_8_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_UE_associatedLogicalF1_ConnectionItemResAck_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_8_id_UE_associatedLogicalF1_ConnectionItem }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_ignore }, + { "&Value", aioc__type, &asn_DEF_UE_associatedLogicalF1_ConnectionItem }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_8_mandatory } +}; +static const asn_ioc_set_t asn_IOS_UE_associatedLogicalF1_ConnectionItemResAck_1[] = { + { 1, 4, asn_IOS_UE_associatedLogicalF1_ConnectionItemResAck_1_rows } +}; +static const long asn_VAL_19_id_GNB_DU_Served_Cells_Item = 43; +static const long asn_VAL_19_reject = 0; +static const long asn_VAL_19_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_GNB_DU_Served_Cells_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_19_id_GNB_DU_Served_Cells_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_19_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_Served_Cells_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_19_mandatory } +}; +static const asn_ioc_set_t asn_IOS_GNB_DU_Served_Cells_ItemIEs_1[] = { + { 1, 4, asn_IOS_GNB_DU_Served_Cells_ItemIEs_1_rows } +}; +static const long asn_VAL_24_id_Cells_to_be_Activated_List_Item = 4; +static const long asn_VAL_24_reject = 0; +static const long asn_VAL_24_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_Cells_to_be_Activated_List_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_24_id_Cells_to_be_Activated_List_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_reject }, + { "&Value", aioc__type, &asn_DEF_Cells_to_be_Activated_List_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_24_mandatory } +}; +static const asn_ioc_set_t asn_IOS_Cells_to_be_Activated_List_ItemIEs_1[] = { + { 1, 4, asn_IOS_Cells_to_be_Activated_List_ItemIEs_1_rows } +}; +static const long asn_VAL_36_id_Served_Cells_To_Add_Item = 57; +static const long asn_VAL_36_reject = 0; +static const long asn_VAL_36_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_Served_Cells_To_Add_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_36_id_Served_Cells_To_Add_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_36_reject }, + { "&Value", aioc__type, &asn_DEF_Served_Cells_To_Add_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_36_mandatory } +}; +static const asn_ioc_set_t asn_IOS_Served_Cells_To_Add_ItemIEs_1[] = { + { 1, 4, asn_IOS_Served_Cells_To_Add_ItemIEs_1_rows } +}; +static const long asn_VAL_37_id_Served_Cells_To_Modify_Item = 61; +static const long asn_VAL_37_reject = 0; +static const long asn_VAL_37_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_Served_Cells_To_Modify_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_37_id_Served_Cells_To_Modify_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_37_reject }, + { "&Value", aioc__type, &asn_DEF_Served_Cells_To_Modify_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_37_mandatory } +}; +static const asn_ioc_set_t asn_IOS_Served_Cells_To_Modify_ItemIEs_1[] = { + { 1, 4, asn_IOS_Served_Cells_To_Modify_ItemIEs_1_rows } +}; +static const long asn_VAL_38_id_Served_Cells_To_Delete_Item = 59; +static const long asn_VAL_38_reject = 0; +static const long asn_VAL_38_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_Served_Cells_To_Delete_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_38_id_Served_Cells_To_Delete_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_38_reject }, + { "&Value", aioc__type, &asn_DEF_Served_Cells_To_Delete_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_38_mandatory } +}; +static const asn_ioc_set_t asn_IOS_Served_Cells_To_Delete_ItemIEs_1[] = { + { 1, 4, asn_IOS_Served_Cells_To_Delete_ItemIEs_1_rows } +}; +static const long asn_VAL_39_id_Cells_Status_Item = 88; +static const long asn_VAL_39_reject = 0; +static const long asn_VAL_39_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_Cells_Status_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_39_id_Cells_Status_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_39_reject }, + { "&Value", aioc__type, &asn_DEF_Cells_Status_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_39_mandatory } +}; +static const asn_ioc_set_t asn_IOS_Cells_Status_ItemIEs_1[] = { + { 1, 4, asn_IOS_Cells_Status_ItemIEs_1_rows } +}; +static const long asn_VAL_40_id_Dedicated_SIDelivery_NeededUE_Item = 190; +static const long asn_VAL_40_ignore = 1; +static const long asn_VAL_40_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_Dedicated_SIDelivery_NeededUE_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_40_id_Dedicated_SIDelivery_NeededUE_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_40_ignore }, + { "&Value", aioc__type, &asn_DEF_Dedicated_SIDelivery_NeededUE_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_40_mandatory } +}; +static const asn_ioc_set_t asn_IOS_Dedicated_SIDelivery_NeededUE_ItemIEs_1[] = { + { 1, 4, asn_IOS_Dedicated_SIDelivery_NeededUE_ItemIEs_1_rows } +}; +static const long asn_VAL_57_id_Cells_to_be_Deactivated_List_Item = 6; +static const long asn_VAL_57_reject = 0; +static const long asn_VAL_57_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_Cells_to_be_Deactivated_List_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_57_id_Cells_to_be_Deactivated_List_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_57_reject }, + { "&Value", aioc__type, &asn_DEF_Cells_to_be_Deactivated_List_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_57_mandatory } +}; +static const asn_ioc_set_t asn_IOS_Cells_to_be_Deactivated_List_ItemIEs_1[] = { + { 1, 4, asn_IOS_Cells_to_be_Deactivated_List_ItemIEs_1_rows } +}; +static const long asn_VAL_58_id_GNB_CU_TNL_Association_To_Add_Item = 120; +static const long asn_VAL_58_ignore = 1; +static const long asn_VAL_58_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_GNB_CU_TNL_Association_To_Add_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_58_id_GNB_CU_TNL_Association_To_Add_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_58_ignore }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_TNL_Association_To_Add_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_58_mandatory } +}; +static const asn_ioc_set_t asn_IOS_GNB_CU_TNL_Association_To_Add_ItemIEs_1[] = { + { 1, 4, asn_IOS_GNB_CU_TNL_Association_To_Add_ItemIEs_1_rows } +}; +static const long asn_VAL_59_id_GNB_CU_TNL_Association_To_Remove_Item = 122; +static const long asn_VAL_59_ignore = 1; +static const long asn_VAL_59_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_GNB_CU_TNL_Association_To_Remove_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_59_id_GNB_CU_TNL_Association_To_Remove_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_59_ignore }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_TNL_Association_To_Remove_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_59_mandatory } +}; +static const asn_ioc_set_t asn_IOS_GNB_CU_TNL_Association_To_Remove_ItemIEs_1[] = { + { 1, 4, asn_IOS_GNB_CU_TNL_Association_To_Remove_ItemIEs_1_rows } +}; +static const long asn_VAL_60_id_GNB_CU_TNL_Association_To_Update_Item = 124; +static const long asn_VAL_60_ignore = 1; +static const long asn_VAL_60_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_GNB_CU_TNL_Association_To_Update_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_60_id_GNB_CU_TNL_Association_To_Update_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_60_ignore }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_TNL_Association_To_Update_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_60_mandatory } +}; +static const asn_ioc_set_t asn_IOS_GNB_CU_TNL_Association_To_Update_ItemIEs_1[] = { + { 1, 4, asn_IOS_GNB_CU_TNL_Association_To_Update_ItemIEs_1_rows } +}; +static const long asn_VAL_61_id_Cells_to_be_Barred_Item = 130; +static const long asn_VAL_61_ignore = 1; +static const long asn_VAL_61_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_Cells_to_be_Barred_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_61_id_Cells_to_be_Barred_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_61_ignore }, + { "&Value", aioc__type, &asn_DEF_Cells_to_be_Barred_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_61_mandatory } +}; +static const asn_ioc_set_t asn_IOS_Cells_to_be_Barred_ItemIEs_1[] = { + { 1, 4, asn_IOS_Cells_to_be_Barred_ItemIEs_1_rows } +}; +static const long asn_VAL_62_id_Protected_EUTRA_Resources_Item = 168; +static const long asn_VAL_62_reject = 0; +static const long asn_VAL_62_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_Protected_EUTRA_Resources_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_62_id_Protected_EUTRA_Resources_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_62_reject }, + { "&Value", aioc__type, &asn_DEF_Protected_EUTRA_Resources_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_62_mandatory } +}; +static const asn_ioc_set_t asn_IOS_Protected_EUTRA_Resources_ItemIEs_1[] = { + { 1, 4, asn_IOS_Protected_EUTRA_Resources_ItemIEs_1_rows } +}; +static const long asn_VAL_69_id_Cells_Failed_to_be_Activated_List_Item = 2; +static const long asn_VAL_69_reject = 0; +static const long asn_VAL_69_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_Cells_Failed_to_be_Activated_List_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_69_id_Cells_Failed_to_be_Activated_List_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_69_reject }, + { "&Value", aioc__type, &asn_DEF_Cells_Failed_to_be_Activated_List_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_69_mandatory } +}; +static const asn_ioc_set_t asn_IOS_Cells_Failed_to_be_Activated_List_ItemIEs_1[] = { + { 1, 4, asn_IOS_Cells_Failed_to_be_Activated_List_ItemIEs_1_rows } +}; +static const long asn_VAL_70_id_GNB_CU_TNL_Association_Setup_Item = 133; +static const long asn_VAL_70_ignore = 1; +static const long asn_VAL_70_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_GNB_CU_TNL_Association_Setup_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_70_id_GNB_CU_TNL_Association_Setup_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_70_ignore }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_TNL_Association_Setup_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_70_mandatory } +}; +static const asn_ioc_set_t asn_IOS_GNB_CU_TNL_Association_Setup_ItemIEs_1[] = { + { 1, 4, asn_IOS_GNB_CU_TNL_Association_Setup_ItemIEs_1_rows } +}; +static const long asn_VAL_71_id_GNB_CU_TNL_Association_Failed_To_Setup_Item = 135; +static const long asn_VAL_71_ignore = 1; +static const long asn_VAL_71_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_71_id_GNB_CU_TNL_Association_Failed_To_Setup_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_71_ignore }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_71_mandatory } +}; +static const asn_ioc_set_t asn_IOS_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_1[] = { + { 1, 4, asn_IOS_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_1_rows } +}; +static const long asn_VAL_103_id_Candidate_SpCell_Item = 91; +static const long asn_VAL_103_ignore = 1; +static const long asn_VAL_103_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_Candidate_SpCell_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_103_id_Candidate_SpCell_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_103_ignore }, + { "&Value", aioc__type, &asn_DEF_Candidate_SpCell_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_103_mandatory } +}; +static const asn_ioc_set_t asn_IOS_Candidate_SpCell_ItemIEs_1[] = { + { 1, 4, asn_IOS_Candidate_SpCell_ItemIEs_1_rows } +}; +static const long asn_VAL_104_id_SCell_ToBeSetup_Item = 53; +static const long asn_VAL_104_ignore = 1; +static const long asn_VAL_104_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_SCell_ToBeSetup_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_104_id_SCell_ToBeSetup_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_104_ignore }, + { "&Value", aioc__type, &asn_DEF_SCell_ToBeSetup_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_104_mandatory } +}; +static const asn_ioc_set_t asn_IOS_SCell_ToBeSetup_ItemIEs_1[] = { + { 1, 4, asn_IOS_SCell_ToBeSetup_ItemIEs_1_rows } +}; +static const long asn_VAL_105_id_SRBs_ToBeSetup_Item = 73; +static const long asn_VAL_105_reject = 0; +static const long asn_VAL_105_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_SRBs_ToBeSetup_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_105_id_SRBs_ToBeSetup_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_105_reject }, + { "&Value", aioc__type, &asn_DEF_SRBs_ToBeSetup_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_105_mandatory } +}; +static const asn_ioc_set_t asn_IOS_SRBs_ToBeSetup_ItemIEs_1[] = { + { 1, 4, asn_IOS_SRBs_ToBeSetup_ItemIEs_1_rows } +}; +static const long asn_VAL_106_id_DRBs_ToBeSetup_Item = 34; +static const long asn_VAL_106_reject = 0; +static const long asn_VAL_106_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_DRBs_ToBeSetup_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_106_id_DRBs_ToBeSetup_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_106_reject }, + { "&Value", aioc__type, &asn_DEF_DRBs_ToBeSetup_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_106_mandatory } +}; +static const asn_ioc_set_t asn_IOS_DRBs_ToBeSetup_ItemIEs_1[] = { + { 1, 4, asn_IOS_DRBs_ToBeSetup_ItemIEs_1_rows } +}; +static const long asn_VAL_120_id_DRBs_Setup_Item = 26; +static const long asn_VAL_120_ignore = 1; +static const long asn_VAL_120_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_DRBs_Setup_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_120_id_DRBs_Setup_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_120_ignore }, + { "&Value", aioc__type, &asn_DEF_DRBs_Setup_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_120_mandatory } +}; +static const asn_ioc_set_t asn_IOS_DRBs_Setup_ItemIEs_1[] = { + { 1, 4, asn_IOS_DRBs_Setup_ItemIEs_1_rows } +}; +static const long asn_VAL_122_id_SRBs_FailedToBeSetup_Item = 65; +static const long asn_VAL_122_ignore = 1; +static const long asn_VAL_122_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_SRBs_FailedToBeSetup_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_122_id_SRBs_FailedToBeSetup_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_122_ignore }, + { "&Value", aioc__type, &asn_DEF_SRBs_FailedToBeSetup_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_122_mandatory } +}; +static const asn_ioc_set_t asn_IOS_SRBs_FailedToBeSetup_ItemIEs_1[] = { + { 1, 4, asn_IOS_SRBs_FailedToBeSetup_ItemIEs_1_rows } +}; +static const long asn_VAL_123_id_DRBs_FailedToBeSetup_Item = 14; +static const long asn_VAL_123_ignore = 1; +static const long asn_VAL_123_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_DRBs_FailedToBeSetup_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_123_id_DRBs_FailedToBeSetup_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_123_ignore }, + { "&Value", aioc__type, &asn_DEF_DRBs_FailedToBeSetup_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_123_mandatory } +}; +static const asn_ioc_set_t asn_IOS_DRBs_FailedToBeSetup_ItemIEs_1[] = { + { 1, 4, asn_IOS_DRBs_FailedToBeSetup_ItemIEs_1_rows } +}; +static const long asn_VAL_124_id_SCell_FailedtoSetup_Item = 84; +static const long asn_VAL_124_ignore = 1; +static const long asn_VAL_124_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_SCell_FailedtoSetup_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_124_id_SCell_FailedtoSetup_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_124_ignore }, + { "&Value", aioc__type, &asn_DEF_SCell_FailedtoSetup_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_124_mandatory } +}; +static const asn_ioc_set_t asn_IOS_SCell_FailedtoSetup_ItemIEs_1[] = { + { 1, 4, asn_IOS_SCell_FailedtoSetup_ItemIEs_1_rows } +}; +static const long asn_VAL_121_id_SRBs_Setup_Item = 203; +static const long asn_VAL_121_ignore = 1; +static const long asn_VAL_121_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_SRBs_Setup_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_121_id_SRBs_Setup_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_121_ignore }, + { "&Value", aioc__type, &asn_DEF_SRBs_Setup_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_121_mandatory } +}; +static const asn_ioc_set_t asn_IOS_SRBs_Setup_ItemIEs_1[] = { + { 1, 4, asn_IOS_SRBs_Setup_ItemIEs_1_rows } +}; +static const long asn_VAL_130_id_Potential_SpCell_Item = 93; +static const long asn_VAL_130_ignore = 1; +static const long asn_VAL_130_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_Potential_SpCell_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_130_id_Potential_SpCell_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_130_ignore }, + { "&Value", aioc__type, &asn_DEF_Potential_SpCell_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_130_mandatory } +}; +static const asn_ioc_set_t asn_IOS_Potential_SpCell_ItemIEs_1[] = { + { 1, 4, asn_IOS_Potential_SpCell_ItemIEs_1_rows } +}; +static const long asn_VAL_175_id_SCell_ToBeSetupMod_Item = 55; +static const long asn_VAL_175_ignore = 1; +static const long asn_VAL_175_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_SCell_ToBeSetupMod_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_175_id_SCell_ToBeSetupMod_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_175_ignore }, + { "&Value", aioc__type, &asn_DEF_SCell_ToBeSetupMod_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_175_mandatory } +}; +static const asn_ioc_set_t asn_IOS_SCell_ToBeSetupMod_ItemIEs_1[] = { + { 1, 4, asn_IOS_SCell_ToBeSetupMod_ItemIEs_1_rows } +}; +static const long asn_VAL_176_id_SCell_ToBeRemoved_Item = 51; +static const long asn_VAL_176_ignore = 1; +static const long asn_VAL_176_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_SCell_ToBeRemoved_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_176_id_SCell_ToBeRemoved_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_176_ignore }, + { "&Value", aioc__type, &asn_DEF_SCell_ToBeRemoved_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_176_mandatory } +}; +static const asn_ioc_set_t asn_IOS_SCell_ToBeRemoved_ItemIEs_1[] = { + { 1, 4, asn_IOS_SCell_ToBeRemoved_ItemIEs_1_rows } +}; +static const long asn_VAL_177_id_SRBs_ToBeSetupMod_Item = 75; +static const long asn_VAL_177_reject = 0; +static const long asn_VAL_177_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_SRBs_ToBeSetupMod_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_177_id_SRBs_ToBeSetupMod_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_177_reject }, + { "&Value", aioc__type, &asn_DEF_SRBs_ToBeSetupMod_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_177_mandatory } +}; +static const asn_ioc_set_t asn_IOS_SRBs_ToBeSetupMod_ItemIEs_1[] = { + { 1, 4, asn_IOS_SRBs_ToBeSetupMod_ItemIEs_1_rows } +}; +static const long asn_VAL_178_id_DRBs_ToBeSetupMod_Item = 36; +static const long asn_VAL_178_reject = 0; +static const long asn_VAL_178_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_DRBs_ToBeSetupMod_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_178_id_DRBs_ToBeSetupMod_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_178_reject }, + { "&Value", aioc__type, &asn_DEF_DRBs_ToBeSetupMod_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_178_mandatory } +}; +static const asn_ioc_set_t asn_IOS_DRBs_ToBeSetupMod_ItemIEs_1[] = { + { 1, 4, asn_IOS_DRBs_ToBeSetupMod_ItemIEs_1_rows } +}; +static const long asn_VAL_179_id_DRBs_ToBeModified_Item = 30; +static const long asn_VAL_179_reject = 0; +static const long asn_VAL_179_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_DRBs_ToBeModified_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_179_id_DRBs_ToBeModified_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_179_reject }, + { "&Value", aioc__type, &asn_DEF_DRBs_ToBeModified_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_179_mandatory } +}; +static const asn_ioc_set_t asn_IOS_DRBs_ToBeModified_ItemIEs_1[] = { + { 1, 4, asn_IOS_DRBs_ToBeModified_ItemIEs_1_rows } +}; +static const long asn_VAL_180_id_SRBs_ToBeReleased_Item = 71; +static const long asn_VAL_180_reject = 0; +static const long asn_VAL_180_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_SRBs_ToBeReleased_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_180_id_SRBs_ToBeReleased_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_180_reject }, + { "&Value", aioc__type, &asn_DEF_SRBs_ToBeReleased_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_180_mandatory } +}; +static const asn_ioc_set_t asn_IOS_SRBs_ToBeReleased_ItemIEs_1[] = { + { 1, 4, asn_IOS_SRBs_ToBeReleased_ItemIEs_1_rows } +}; +static const long asn_VAL_181_id_DRBs_ToBeReleased_Item = 32; +static const long asn_VAL_181_reject = 0; +static const long asn_VAL_181_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_DRBs_ToBeReleased_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_181_id_DRBs_ToBeReleased_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_181_reject }, + { "&Value", aioc__type, &asn_DEF_DRBs_ToBeReleased_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_181_mandatory } +}; +static const asn_ioc_set_t asn_IOS_DRBs_ToBeReleased_ItemIEs_1[] = { + { 1, 4, asn_IOS_DRBs_ToBeReleased_ItemIEs_1_rows } +}; +static const long asn_VAL_198_id_DRBs_SetupMod_Item = 28; +static const long asn_VAL_198_ignore = 1; +static const long asn_VAL_198_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_DRBs_SetupMod_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_198_id_DRBs_SetupMod_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_198_ignore }, + { "&Value", aioc__type, &asn_DEF_DRBs_SetupMod_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_198_mandatory } +}; +static const asn_ioc_set_t asn_IOS_DRBs_SetupMod_ItemIEs_1[] = { + { 1, 4, asn_IOS_DRBs_SetupMod_ItemIEs_1_rows } +}; +static const long asn_VAL_199_id_DRBs_Modified_Item = 20; +static const long asn_VAL_199_ignore = 1; +static const long asn_VAL_199_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_DRBs_Modified_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_199_id_DRBs_Modified_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_199_ignore }, + { "&Value", aioc__type, &asn_DEF_DRBs_Modified_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_199_mandatory } +}; +static const asn_ioc_set_t asn_IOS_DRBs_Modified_ItemIEs_1[] = { + { 1, 4, asn_IOS_DRBs_Modified_ItemIEs_1_rows } +}; +static const long asn_VAL_200_id_SRBs_SetupMod_Item = 205; +static const long asn_VAL_200_ignore = 1; +static const long asn_VAL_200_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_SRBs_SetupMod_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_200_id_SRBs_SetupMod_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_200_ignore }, + { "&Value", aioc__type, &asn_DEF_SRBs_SetupMod_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_200_mandatory } +}; +static const asn_ioc_set_t asn_IOS_SRBs_SetupMod_ItemIEs_1[] = { + { 1, 4, asn_IOS_SRBs_SetupMod_ItemIEs_1_rows } +}; +static const long asn_VAL_201_id_SRBs_Modified_Item = 207; +static const long asn_VAL_201_ignore = 1; +static const long asn_VAL_201_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_SRBs_Modified_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_201_id_SRBs_Modified_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_201_ignore }, + { "&Value", aioc__type, &asn_DEF_SRBs_Modified_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_201_mandatory } +}; +static const asn_ioc_set_t asn_IOS_SRBs_Modified_ItemIEs_1[] = { + { 1, 4, asn_IOS_SRBs_Modified_ItemIEs_1_rows } +}; +static const long asn_VAL_204_id_DRBs_FailedToBeModified_Item = 12; +static const long asn_VAL_204_ignore = 1; +static const long asn_VAL_204_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_DRBs_FailedToBeModified_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_204_id_DRBs_FailedToBeModified_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_204_ignore }, + { "&Value", aioc__type, &asn_DEF_DRBs_FailedToBeModified_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_204_mandatory } +}; +static const asn_ioc_set_t asn_IOS_DRBs_FailedToBeModified_ItemIEs_1[] = { + { 1, 4, asn_IOS_DRBs_FailedToBeModified_ItemIEs_1_rows } +}; +static const long asn_VAL_202_id_SRBs_FailedToBeSetupMod_Item = 67; +static const long asn_VAL_202_ignore = 1; +static const long asn_VAL_202_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_SRBs_FailedToBeSetupMod_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_202_id_SRBs_FailedToBeSetupMod_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_202_ignore }, + { "&Value", aioc__type, &asn_DEF_SRBs_FailedToBeSetupMod_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_202_mandatory } +}; +static const asn_ioc_set_t asn_IOS_SRBs_FailedToBeSetupMod_ItemIEs_1[] = { + { 1, 4, asn_IOS_SRBs_FailedToBeSetupMod_ItemIEs_1_rows } +}; +static const long asn_VAL_203_id_DRBs_FailedToBeSetupMod_Item = 16; +static const long asn_VAL_203_ignore = 1; +static const long asn_VAL_203_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_DRBs_FailedToBeSetupMod_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_203_id_DRBs_FailedToBeSetupMod_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_203_ignore }, + { "&Value", aioc__type, &asn_DEF_DRBs_FailedToBeSetupMod_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_203_mandatory } +}; +static const asn_ioc_set_t asn_IOS_DRBs_FailedToBeSetupMod_ItemIEs_1[] = { + { 1, 4, asn_IOS_DRBs_FailedToBeSetupMod_ItemIEs_1_rows } +}; +static const long asn_VAL_205_id_SCell_FailedtoSetupMod_Item = 86; +static const long asn_VAL_205_ignore = 1; +static const long asn_VAL_205_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_SCell_FailedtoSetupMod_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_205_id_SCell_FailedtoSetupMod_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_205_ignore }, + { "&Value", aioc__type, &asn_DEF_SCell_FailedtoSetupMod_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_205_mandatory } +}; +static const asn_ioc_set_t asn_IOS_SCell_FailedtoSetupMod_ItemIEs_1[] = { + { 1, 4, asn_IOS_SCell_FailedtoSetupMod_ItemIEs_1_rows } +}; +static const long asn_VAL_206_id_Associated_SCell_Item = 200; +static const long asn_VAL_206_ignore = 1; +static const long asn_VAL_206_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_Associated_SCell_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_206_id_Associated_SCell_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_206_ignore }, + { "&Value", aioc__type, &asn_DEF_Associated_SCell_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_206_mandatory } +}; +static const asn_ioc_set_t asn_IOS_Associated_SCell_ItemIEs_1[] = { + { 1, 4, asn_IOS_Associated_SCell_ItemIEs_1_rows } +}; +static const long asn_VAL_219_id_DRBs_Required_ToBeModified_Item = 22; +static const long asn_VAL_219_reject = 0; +static const long asn_VAL_219_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_DRBs_Required_ToBeModified_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_219_id_DRBs_Required_ToBeModified_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_219_reject }, + { "&Value", aioc__type, &asn_DEF_DRBs_Required_ToBeModified_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_219_mandatory } +}; +static const asn_ioc_set_t asn_IOS_DRBs_Required_ToBeModified_ItemIEs_1[] = { + { 1, 4, asn_IOS_DRBs_Required_ToBeModified_ItemIEs_1_rows } +}; +static const long asn_VAL_220_id_DRBs_Required_ToBeReleased_Item = 24; +static const long asn_VAL_220_reject = 0; +static const long asn_VAL_220_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_DRBs_Required_ToBeReleased_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_220_id_DRBs_Required_ToBeReleased_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_220_reject }, + { "&Value", aioc__type, &asn_DEF_DRBs_Required_ToBeReleased_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_220_mandatory } +}; +static const asn_ioc_set_t asn_IOS_DRBs_Required_ToBeReleased_ItemIEs_1[] = { + { 1, 4, asn_IOS_DRBs_Required_ToBeReleased_ItemIEs_1_rows } +}; +static const long asn_VAL_221_id_SRBs_Required_ToBeReleased_Item = 69; +static const long asn_VAL_221_reject = 0; +static const long asn_VAL_221_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_SRBs_Required_ToBeReleased_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_221_id_SRBs_Required_ToBeReleased_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_221_reject }, + { "&Value", aioc__type, &asn_DEF_SRBs_Required_ToBeReleased_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_221_mandatory } +}; +static const asn_ioc_set_t asn_IOS_SRBs_Required_ToBeReleased_ItemIEs_1[] = { + { 1, 4, asn_IOS_SRBs_Required_ToBeReleased_ItemIEs_1_rows } +}; +static const long asn_VAL_230_id_DRBs_ModifiedConf_Item = 18; +static const long asn_VAL_230_ignore = 1; +static const long asn_VAL_230_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_DRBs_ModifiedConf_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_230_id_DRBs_ModifiedConf_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_230_ignore }, + { "&Value", aioc__type, &asn_DEF_DRBs_ModifiedConf_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_230_mandatory } +}; +static const asn_ioc_set_t asn_IOS_DRBs_ModifiedConf_ItemIEs_1[] = { + { 1, 4, asn_IOS_DRBs_ModifiedConf_ItemIEs_1_rows } +}; +static const long asn_VAL_240_id_Cells_To_Be_Broadcast_Item = 145; +static const long asn_VAL_240_reject = 0; +static const long asn_VAL_240_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_Cells_To_Be_Broadcast_List_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_240_id_Cells_To_Be_Broadcast_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_240_reject }, + { "&Value", aioc__type, &asn_DEF_Cells_To_Be_Broadcast_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_240_mandatory } +}; +static const asn_ioc_set_t asn_IOS_Cells_To_Be_Broadcast_List_ItemIEs_1[] = { + { 1, 4, asn_IOS_Cells_To_Be_Broadcast_List_ItemIEs_1_rows } +}; +static const long asn_VAL_245_id_Cells_Broadcast_Completed_Item = 147; +static const long asn_VAL_245_reject = 0; +static const long asn_VAL_245_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_Cells_Broadcast_Completed_List_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_245_id_Cells_Broadcast_Completed_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_245_reject }, + { "&Value", aioc__type, &asn_DEF_Cells_Broadcast_Completed_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_245_mandatory } +}; +static const asn_ioc_set_t asn_IOS_Cells_Broadcast_Completed_List_ItemIEs_1[] = { + { 1, 4, asn_IOS_Cells_Broadcast_Completed_List_ItemIEs_1_rows } +}; +static const long asn_VAL_250_id_Broadcast_To_Be_Cancelled_Item = 149; +static const long asn_VAL_250_reject = 0; +static const long asn_VAL_250_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_Broadcast_To_Be_Cancelled_List_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_250_id_Broadcast_To_Be_Cancelled_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_250_reject }, + { "&Value", aioc__type, &asn_DEF_Broadcast_To_Be_Cancelled_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_250_mandatory } +}; +static const asn_ioc_set_t asn_IOS_Broadcast_To_Be_Cancelled_List_ItemIEs_1[] = { + { 1, 4, asn_IOS_Broadcast_To_Be_Cancelled_List_ItemIEs_1_rows } +}; +static const long asn_VAL_254_id_Cells_Broadcast_Cancelled_Item = 151; +static const long asn_VAL_254_reject = 0; +static const long asn_VAL_254_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_Cells_Broadcast_Cancelled_List_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_254_id_Cells_Broadcast_Cancelled_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_254_reject }, + { "&Value", aioc__type, &asn_DEF_Cells_Broadcast_Cancelled_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_254_mandatory } +}; +static const asn_ioc_set_t asn_IOS_Cells_Broadcast_Cancelled_List_ItemIEs_1[] = { + { 1, 4, asn_IOS_Cells_Broadcast_Cancelled_List_ItemIEs_1_rows } +}; +static const long asn_VAL_258_id_DRB_Activity_Item = 99; +static const long asn_VAL_258_reject = 0; +static const long asn_VAL_258_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_DRB_Activity_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_258_id_DRB_Activity_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_258_reject }, + { "&Value", aioc__type, &asn_DEF_DRB_Activity_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_258_mandatory } +}; +static const asn_ioc_set_t asn_IOS_DRB_Activity_ItemIEs_1[] = { + { 1, 4, asn_IOS_DRB_Activity_ItemIEs_1_rows } +}; +static const long asn_VAL_288_id_PagingCell_Item = 112; +static const long asn_VAL_288_ignore = 1; +static const long asn_VAL_288_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_PagingCell_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_288_id_PagingCell_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_288_ignore }, + { "&Value", aioc__type, &asn_DEF_PagingCell_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_288_mandatory } +}; +static const asn_ioc_set_t asn_IOS_PagingCell_ItemIEs_1[] = { + { 1, 4, asn_IOS_PagingCell_ItemIEs_1_rows } +}; +static const long asn_VAL_292_id_DRB_Notify_Item = 136; +static const long asn_VAL_292_reject = 0; +static const long asn_VAL_292_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_DRB_Notify_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_292_id_DRB_Notify_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_292_reject }, + { "&Value", aioc__type, &asn_DEF_DRB_Notify_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_292_mandatory } +}; +static const asn_ioc_set_t asn_IOS_DRB_Notify_ItemIEs_1[] = { + { 1, 4, asn_IOS_DRB_Notify_ItemIEs_1_rows } +}; +static const long asn_VAL_295_id_NR_CGI_List_For_Restart_Item = 153; +static const long asn_VAL_295_reject = 0; +static const long asn_VAL_295_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_NR_CGI_List_For_Restart_List_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_295_id_NR_CGI_List_For_Restart_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_295_reject }, + { "&Value", aioc__type, &asn_DEF_NR_CGI_List_For_Restart_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_295_mandatory } +}; +static const asn_ioc_set_t asn_IOS_NR_CGI_List_For_Restart_List_ItemIEs_1[] = { + { 1, 4, asn_IOS_NR_CGI_List_For_Restart_List_ItemIEs_1_rows } +}; +static const long asn_VAL_298_id_PWS_Failed_NR_CGI_Item = 155; +static const long asn_VAL_298_reject = 0; +static const long asn_VAL_298_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_PWS_Failed_NR_CGI_List_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_298_id_PWS_Failed_NR_CGI_Item }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_298_reject }, + { "&Value", aioc__type, &asn_DEF_PWS_Failed_NR_CGI_Item }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_298_mandatory } +}; +static const asn_ioc_set_t asn_IOS_PWS_Failed_NR_CGI_List_ItemIEs_1[] = { + { 1, 4, asn_IOS_PWS_Failed_NR_CGI_List_ItemIEs_1_rows } +}; +static const long asn_VAL_305_id_DRB_Information = 164; +static const long asn_VAL_305_ignore = 1; +static const long asn_VAL_305_optional = 0; +static const asn_ioc_cell_t asn_IOS_QoSInformation_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_305_id_DRB_Information }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_305_ignore }, + { "&Value", aioc__type, &asn_DEF_DRB_Information }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_305_optional } +}; +static const asn_ioc_set_t asn_IOS_QoSInformation_ExtIEs_1[] = { + { 1, 4, asn_IOS_QoSInformation_ExtIEs_1_rows } +}; +static const long asn_VAL_1_id_TransactionID = 78; +static const long asn_VAL_1_reject = 0; +static const long asn_VAL_1_mandatory = 2; +static const long asn_VAL_2_id_Cause = 0; +static const long asn_VAL_2_ignore = 1; +static const long asn_VAL_2_mandatory = 2; +static const long asn_VAL_3_id_ResetType = 48; +static const long asn_VAL_3_reject = 0; +static const long asn_VAL_3_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ResetIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_1_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_1_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_2_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_ignore }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_2_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_3_id_ResetType }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, + { "&Value", aioc__type, &asn_DEF_ResetType }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_3_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ResetIEs_1[] = { + { 3, 4, asn_IOS_ResetIEs_1_rows } +}; +static const long asn_VAL_5_id_TransactionID = 78; +static const long asn_VAL_5_reject = 0; +static const long asn_VAL_5_mandatory = 2; +static const long asn_VAL_6_id_UE_associatedLogicalF1_ConnectionListResAck = 81; +static const long asn_VAL_6_ignore = 1; +static const long asn_VAL_6_optional = 0; +static const long asn_VAL_7_id_CriticalityDiagnostics = 7; +static const long asn_VAL_7_ignore = 1; +static const long asn_VAL_7_optional = 0; +static const asn_ioc_cell_t asn_IOS_ResetAcknowledgeIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_5_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_5_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_6_id_UE_associatedLogicalF1_ConnectionListResAck }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_ignore }, + { "&Value", aioc__type, &asn_DEF_UE_associatedLogicalF1_ConnectionListResAck }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_6_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_7_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_7_optional } +}; +static const asn_ioc_set_t asn_IOS_ResetAcknowledgeIEs_1[] = { + { 3, 4, asn_IOS_ResetAcknowledgeIEs_1_rows } +}; +static const long asn_VAL_9_id_TransactionID = 78; +static const long asn_VAL_9_reject = 0; +static const long asn_VAL_9_mandatory = 2; +static const long asn_VAL_10_id_gNB_CU_UE_F1AP_ID = 40; +static const long asn_VAL_10_ignore = 1; +static const long asn_VAL_10_optional = 0; +static const long asn_VAL_11_id_gNB_DU_UE_F1AP_ID = 41; +static const long asn_VAL_11_ignore = 1; +static const long asn_VAL_11_optional = 0; +static const long asn_VAL_12_id_Cause = 0; +static const long asn_VAL_12_ignore = 1; +static const long asn_VAL_12_optional = 0; +static const long asn_VAL_13_id_CriticalityDiagnostics = 7; +static const long asn_VAL_13_ignore = 1; +static const long asn_VAL_13_optional = 0; +static const asn_ioc_cell_t asn_IOS_ErrorIndicationIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_9_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_9_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_10_id_gNB_CU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_ignore }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_10_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_11_id_gNB_DU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_11_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_12_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_ignore }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_12_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_13_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_13_optional } +}; +static const asn_ioc_set_t asn_IOS_ErrorIndicationIEs_1[] = { + { 5, 4, asn_IOS_ErrorIndicationIEs_1_rows } +}; +static const long asn_VAL_14_id_TransactionID = 78; +static const long asn_VAL_14_reject = 0; +static const long asn_VAL_14_mandatory = 2; +static const long asn_VAL_15_id_gNB_DU_ID = 42; +static const long asn_VAL_15_reject = 0; +static const long asn_VAL_15_mandatory = 2; +static const long asn_VAL_16_id_gNB_DU_Name = 45; +static const long asn_VAL_16_ignore = 1; +static const long asn_VAL_16_optional = 0; +static const long asn_VAL_17_id_gNB_DU_Served_Cells_List = 44; +static const long asn_VAL_17_reject = 0; +static const long asn_VAL_17_optional = 0; +static const long asn_VAL_18_id_GNB_DU_RRC_Version = 171; +static const long asn_VAL_18_reject = 0; +static const long asn_VAL_18_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_F1SetupRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_14_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_14_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_15_id_gNB_DU_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_15_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_16_id_gNB_DU_Name }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_ignore }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_Name }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_16_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_17_id_gNB_DU_Served_Cells_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_17_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_Served_Cells_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_17_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_18_id_GNB_DU_RRC_Version }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_18_reject }, + { "&Value", aioc__type, &asn_DEF_RRC_Version }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_18_mandatory } +}; +static const asn_ioc_set_t asn_IOS_F1SetupRequestIEs_1[] = { + { 5, 4, asn_IOS_F1SetupRequestIEs_1_rows } +}; +static const long asn_VAL_20_id_TransactionID = 78; +static const long asn_VAL_20_reject = 0; +static const long asn_VAL_20_mandatory = 2; +static const long asn_VAL_21_id_gNB_CU_Name = 82; +static const long asn_VAL_21_ignore = 1; +static const long asn_VAL_21_optional = 0; +static const long asn_VAL_22_id_Cells_to_be_Activated_List = 3; +static const long asn_VAL_22_reject = 0; +static const long asn_VAL_22_optional = 0; +static const long asn_VAL_23_id_GNB_CU_RRC_Version = 170; +static const long asn_VAL_23_reject = 0; +static const long asn_VAL_23_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_F1SetupResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_20_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_20_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_20_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_21_id_gNB_CU_Name }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_21_ignore }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_Name }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_21_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_22_id_Cells_to_be_Activated_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_22_reject }, + { "&Value", aioc__type, &asn_DEF_Cells_to_be_Activated_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_22_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_23_id_GNB_CU_RRC_Version }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_reject }, + { "&Value", aioc__type, &asn_DEF_RRC_Version }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_23_mandatory } +}; +static const asn_ioc_set_t asn_IOS_F1SetupResponseIEs_1[] = { + { 4, 4, asn_IOS_F1SetupResponseIEs_1_rows } +}; +static const long asn_VAL_25_id_TransactionID = 78; +static const long asn_VAL_25_reject = 0; +static const long asn_VAL_25_mandatory = 2; +static const long asn_VAL_26_id_Cause = 0; +static const long asn_VAL_26_ignore = 1; +static const long asn_VAL_26_mandatory = 2; +static const long asn_VAL_27_id_TimeToWait = 77; +static const long asn_VAL_27_ignore = 1; +static const long asn_VAL_27_optional = 0; +static const long asn_VAL_28_id_CriticalityDiagnostics = 7; +static const long asn_VAL_28_ignore = 1; +static const long asn_VAL_28_optional = 0; +static const asn_ioc_cell_t asn_IOS_F1SetupFailureIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_25_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_25_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_25_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_26_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_26_ignore }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_26_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_27_id_TimeToWait }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_27_ignore }, + { "&Value", aioc__type, &asn_DEF_TimeToWait }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_27_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_28_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_28_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_28_optional } +}; +static const asn_ioc_set_t asn_IOS_F1SetupFailureIEs_1[] = { + { 4, 4, asn_IOS_F1SetupFailureIEs_1_rows } +}; +static const long asn_VAL_29_id_TransactionID = 78; +static const long asn_VAL_29_reject = 0; +static const long asn_VAL_29_mandatory = 2; +static const long asn_VAL_30_id_Served_Cells_To_Add_List = 58; +static const long asn_VAL_30_reject = 0; +static const long asn_VAL_30_optional = 0; +static const long asn_VAL_31_id_Served_Cells_To_Modify_List = 62; +static const long asn_VAL_31_reject = 0; +static const long asn_VAL_31_optional = 0; +static const long asn_VAL_32_id_Served_Cells_To_Delete_List = 60; +static const long asn_VAL_32_reject = 0; +static const long asn_VAL_32_optional = 0; +static const long asn_VAL_33_id_Cells_Status_List = 89; +static const long asn_VAL_33_reject = 0; +static const long asn_VAL_33_optional = 0; +static const long asn_VAL_34_id_Dedicated_SIDelivery_NeededUE_List = 189; +static const long asn_VAL_34_ignore = 1; +static const long asn_VAL_34_optional = 0; +static const long asn_VAL_35_id_gNB_DU_ID = 42; +static const long asn_VAL_35_reject = 0; +static const long asn_VAL_35_optional = 0; +static const asn_ioc_cell_t asn_IOS_GNBDUConfigurationUpdateIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_29_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_29_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_29_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_30_id_Served_Cells_To_Add_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_30_reject }, + { "&Value", aioc__type, &asn_DEF_Served_Cells_To_Add_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_30_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_31_id_Served_Cells_To_Modify_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_31_reject }, + { "&Value", aioc__type, &asn_DEF_Served_Cells_To_Modify_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_31_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_32_id_Served_Cells_To_Delete_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_32_reject }, + { "&Value", aioc__type, &asn_DEF_Served_Cells_To_Delete_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_32_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_33_id_Cells_Status_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_33_reject }, + { "&Value", aioc__type, &asn_DEF_Cells_Status_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_33_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_34_id_Dedicated_SIDelivery_NeededUE_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_34_ignore }, + { "&Value", aioc__type, &asn_DEF_Dedicated_SIDelivery_NeededUE_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_34_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_35_id_gNB_DU_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_35_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_35_optional } +}; +static const asn_ioc_set_t asn_IOS_GNBDUConfigurationUpdateIEs_1[] = { + { 7, 4, asn_IOS_GNBDUConfigurationUpdateIEs_1_rows } +}; +static const long asn_VAL_41_id_TransactionID = 78; +static const long asn_VAL_41_reject = 0; +static const long asn_VAL_41_mandatory = 2; +static const long asn_VAL_42_id_Cells_to_be_Activated_List = 3; +static const long asn_VAL_42_reject = 0; +static const long asn_VAL_42_optional = 0; +static const long asn_VAL_43_id_CriticalityDiagnostics = 7; +static const long asn_VAL_43_ignore = 1; +static const long asn_VAL_43_optional = 0; +static const long asn_VAL_44_id_Cells_to_be_Deactivated_List = 5; +static const long asn_VAL_44_reject = 0; +static const long asn_VAL_44_optional = 0; +static const asn_ioc_cell_t asn_IOS_GNBDUConfigurationUpdateAcknowledgeIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_41_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_41_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_41_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_42_id_Cells_to_be_Activated_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_42_reject }, + { "&Value", aioc__type, &asn_DEF_Cells_to_be_Activated_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_42_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_43_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_43_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_43_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_44_id_Cells_to_be_Deactivated_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_44_reject }, + { "&Value", aioc__type, &asn_DEF_Cells_to_be_Deactivated_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_44_optional } +}; +static const asn_ioc_set_t asn_IOS_GNBDUConfigurationUpdateAcknowledgeIEs_1[] = { + { 4, 4, asn_IOS_GNBDUConfigurationUpdateAcknowledgeIEs_1_rows } +}; +static const long asn_VAL_45_id_TransactionID = 78; +static const long asn_VAL_45_reject = 0; +static const long asn_VAL_45_mandatory = 2; +static const long asn_VAL_46_id_Cause = 0; +static const long asn_VAL_46_ignore = 1; +static const long asn_VAL_46_mandatory = 2; +static const long asn_VAL_47_id_TimeToWait = 77; +static const long asn_VAL_47_ignore = 1; +static const long asn_VAL_47_optional = 0; +static const long asn_VAL_48_id_CriticalityDiagnostics = 7; +static const long asn_VAL_48_ignore = 1; +static const long asn_VAL_48_optional = 0; +static const asn_ioc_cell_t asn_IOS_GNBDUConfigurationUpdateFailureIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_45_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_45_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_45_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_46_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_46_ignore }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_46_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_47_id_TimeToWait }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_47_ignore }, + { "&Value", aioc__type, &asn_DEF_TimeToWait }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_47_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_48_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_48_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_48_optional } +}; +static const asn_ioc_set_t asn_IOS_GNBDUConfigurationUpdateFailureIEs_1[] = { + { 4, 4, asn_IOS_GNBDUConfigurationUpdateFailureIEs_1_rows } +}; +static const long asn_VAL_49_id_TransactionID = 78; +static const long asn_VAL_49_reject = 0; +static const long asn_VAL_49_mandatory = 2; +static const long asn_VAL_50_id_Cells_to_be_Activated_List = 3; +static const long asn_VAL_50_reject = 0; +static const long asn_VAL_50_optional = 0; +static const long asn_VAL_51_id_Cells_to_be_Deactivated_List = 5; +static const long asn_VAL_51_reject = 0; +static const long asn_VAL_51_optional = 0; +static const long asn_VAL_52_id_GNB_CU_TNL_Association_To_Add_List = 121; +static const long asn_VAL_52_ignore = 1; +static const long asn_VAL_52_optional = 0; +static const long asn_VAL_53_id_GNB_CU_TNL_Association_To_Remove_List = 123; +static const long asn_VAL_53_ignore = 1; +static const long asn_VAL_53_optional = 0; +static const long asn_VAL_54_id_GNB_CU_TNL_Association_To_Update_List = 125; +static const long asn_VAL_54_ignore = 1; +static const long asn_VAL_54_optional = 0; +static const long asn_VAL_55_id_Cells_to_be_Barred_List = 129; +static const long asn_VAL_55_ignore = 1; +static const long asn_VAL_55_optional = 0; +static const long asn_VAL_56_id_Protected_EUTRA_Resources_List = 105; +static const long asn_VAL_56_reject = 0; +static const long asn_VAL_56_optional = 0; +static const asn_ioc_cell_t asn_IOS_GNBCUConfigurationUpdateIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_49_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_49_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_49_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_50_id_Cells_to_be_Activated_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_50_reject }, + { "&Value", aioc__type, &asn_DEF_Cells_to_be_Activated_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_50_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_51_id_Cells_to_be_Deactivated_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_51_reject }, + { "&Value", aioc__type, &asn_DEF_Cells_to_be_Deactivated_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_51_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_52_id_GNB_CU_TNL_Association_To_Add_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_52_ignore }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_TNL_Association_To_Add_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_52_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_53_id_GNB_CU_TNL_Association_To_Remove_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_53_ignore }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_TNL_Association_To_Remove_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_53_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_54_id_GNB_CU_TNL_Association_To_Update_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_54_ignore }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_TNL_Association_To_Update_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_54_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_55_id_Cells_to_be_Barred_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_55_ignore }, + { "&Value", aioc__type, &asn_DEF_Cells_to_be_Barred_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_55_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_56_id_Protected_EUTRA_Resources_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_56_reject }, + { "&Value", aioc__type, &asn_DEF_Protected_EUTRA_Resources_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_56_optional } +}; +static const asn_ioc_set_t asn_IOS_GNBCUConfigurationUpdateIEs_1[] = { + { 8, 4, asn_IOS_GNBCUConfigurationUpdateIEs_1_rows } +}; +static const long asn_VAL_63_id_TransactionID = 78; +static const long asn_VAL_63_reject = 0; +static const long asn_VAL_63_mandatory = 2; +static const long asn_VAL_64_id_Cells_Failed_to_be_Activated_List = 1; +static const long asn_VAL_64_reject = 0; +static const long asn_VAL_64_optional = 0; +static const long asn_VAL_65_id_CriticalityDiagnostics = 7; +static const long asn_VAL_65_ignore = 1; +static const long asn_VAL_65_optional = 0; +static const long asn_VAL_66_id_GNB_CU_TNL_Association_Setup_List = 132; +static const long asn_VAL_66_ignore = 1; +static const long asn_VAL_66_optional = 0; +static const long asn_VAL_67_id_GNB_CU_TNL_Association_Failed_To_Setup_List = 134; +static const long asn_VAL_67_ignore = 1; +static const long asn_VAL_67_optional = 0; +static const long asn_VAL_68_id_Dedicated_SIDelivery_NeededUE_List = 189; +static const long asn_VAL_68_ignore = 1; +static const long asn_VAL_68_optional = 0; +static const asn_ioc_cell_t asn_IOS_GNBCUConfigurationUpdateAcknowledgeIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_63_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_63_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_63_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_64_id_Cells_Failed_to_be_Activated_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_64_reject }, + { "&Value", aioc__type, &asn_DEF_Cells_Failed_to_be_Activated_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_64_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_65_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_65_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_65_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_66_id_GNB_CU_TNL_Association_Setup_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_66_ignore }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_TNL_Association_Setup_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_66_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_67_id_GNB_CU_TNL_Association_Failed_To_Setup_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_67_ignore }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_67_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_68_id_Dedicated_SIDelivery_NeededUE_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_68_ignore }, + { "&Value", aioc__type, &asn_DEF_Dedicated_SIDelivery_NeededUE_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_68_optional } +}; +static const asn_ioc_set_t asn_IOS_GNBCUConfigurationUpdateAcknowledgeIEs_1[] = { + { 6, 4, asn_IOS_GNBCUConfigurationUpdateAcknowledgeIEs_1_rows } +}; +static const long asn_VAL_72_id_TransactionID = 78; +static const long asn_VAL_72_reject = 0; +static const long asn_VAL_72_mandatory = 2; +static const long asn_VAL_73_id_Cause = 0; +static const long asn_VAL_73_ignore = 1; +static const long asn_VAL_73_mandatory = 2; +static const long asn_VAL_74_id_TimeToWait = 77; +static const long asn_VAL_74_ignore = 1; +static const long asn_VAL_74_optional = 0; +static const long asn_VAL_75_id_CriticalityDiagnostics = 7; +static const long asn_VAL_75_ignore = 1; +static const long asn_VAL_75_optional = 0; +static const asn_ioc_cell_t asn_IOS_GNBCUConfigurationUpdateFailureIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_72_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_72_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_72_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_73_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_73_ignore }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_73_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_74_id_TimeToWait }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_74_ignore }, + { "&Value", aioc__type, &asn_DEF_TimeToWait }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_74_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_75_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_75_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_75_optional } +}; +static const asn_ioc_set_t asn_IOS_GNBCUConfigurationUpdateFailureIEs_1[] = { + { 4, 4, asn_IOS_GNBCUConfigurationUpdateFailureIEs_1_rows } +}; +static const long asn_VAL_76_id_TransactionID = 78; +static const long asn_VAL_76_reject = 0; +static const long asn_VAL_76_mandatory = 2; +static const long asn_VAL_77_id_RequestType = 106; +static const long asn_VAL_77_reject = 0; +static const long asn_VAL_77_mandatory = 2; +static const long asn_VAL_78_id_EUTRA_NR_CellResourceCoordinationReq_Container = 101; +static const long asn_VAL_78_reject = 0; +static const long asn_VAL_78_mandatory = 2; +static const long asn_VAL_79_id_IgnoreResourceCoordinationContainer = 213; +static const long asn_VAL_79_reject = 0; +static const long asn_VAL_79_optional = 0; +static const asn_ioc_cell_t asn_IOS_GNBDUResourceCoordinationRequest_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_76_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_76_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_76_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_77_id_RequestType }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_77_reject }, + { "&Value", aioc__type, &asn_DEF_RequestType }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_77_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_78_id_EUTRA_NR_CellResourceCoordinationReq_Container }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_78_reject }, + { "&Value", aioc__type, &asn_DEF_EUTRA_NR_CellResourceCoordinationReq_Container }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_78_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_79_id_IgnoreResourceCoordinationContainer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_79_reject }, + { "&Value", aioc__type, &asn_DEF_IgnoreResourceCoordinationContainer }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_79_optional } +}; +static const asn_ioc_set_t asn_IOS_GNBDUResourceCoordinationRequest_IEs_1[] = { + { 4, 4, asn_IOS_GNBDUResourceCoordinationRequest_IEs_1_rows } +}; +static const long asn_VAL_80_id_TransactionID = 78; +static const long asn_VAL_80_reject = 0; +static const long asn_VAL_80_mandatory = 2; +static const long asn_VAL_81_id_EUTRA_NR_CellResourceCoordinationReqAck_Container = 102; +static const long asn_VAL_81_reject = 0; +static const long asn_VAL_81_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_GNBDUResourceCoordinationResponse_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_80_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_80_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_80_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_81_id_EUTRA_NR_CellResourceCoordinationReqAck_Container }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_81_reject }, + { "&Value", aioc__type, &asn_DEF_EUTRA_NR_CellResourceCoordinationReqAck_Container }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_81_mandatory } +}; +static const asn_ioc_set_t asn_IOS_GNBDUResourceCoordinationResponse_IEs_1[] = { + { 2, 4, asn_IOS_GNBDUResourceCoordinationResponse_IEs_1_rows } +}; +static const long asn_VAL_82_id_gNB_CU_UE_F1AP_ID = 40; +static const long asn_VAL_82_reject = 0; +static const long asn_VAL_82_mandatory = 2; +static const long asn_VAL_83_id_gNB_DU_UE_F1AP_ID = 41; +static const long asn_VAL_83_ignore = 1; +static const long asn_VAL_83_optional = 0; +static const long asn_VAL_84_id_SpCell_ID = 63; +static const long asn_VAL_84_reject = 0; +static const long asn_VAL_84_mandatory = 2; +static const long asn_VAL_85_id_ServCellIndex = 107; +static const long asn_VAL_85_reject = 0; +static const long asn_VAL_85_mandatory = 2; +static const long asn_VAL_86_id_SpCellULConfigured = 96; +static const long asn_VAL_86_ignore = 1; +static const long asn_VAL_86_optional = 0; +static const long asn_VAL_87_id_CUtoDURRCInformation = 9; +static const long asn_VAL_87_reject = 0; +static const long asn_VAL_87_mandatory = 2; +static const long asn_VAL_88_id_Candidate_SpCell_List = 90; +static const long asn_VAL_88_ignore = 1; +static const long asn_VAL_88_optional = 0; +static const long asn_VAL_89_id_DRXCycle = 38; +static const long asn_VAL_89_ignore = 1; +static const long asn_VAL_89_optional = 0; +static const long asn_VAL_90_id_ResourceCoordinationTransferContainer = 49; +static const long asn_VAL_90_ignore = 1; +static const long asn_VAL_90_optional = 0; +static const long asn_VAL_91_id_SCell_ToBeSetup_List = 54; +static const long asn_VAL_91_ignore = 1; +static const long asn_VAL_91_optional = 0; +static const long asn_VAL_92_id_SRBs_ToBeSetup_List = 74; +static const long asn_VAL_92_reject = 0; +static const long asn_VAL_92_optional = 0; +static const long asn_VAL_93_id_DRBs_ToBeSetup_List = 35; +static const long asn_VAL_93_reject = 0; +static const long asn_VAL_93_optional = 0; +static const long asn_VAL_94_id_InactivityMonitoringRequest = 97; +static const long asn_VAL_94_reject = 0; +static const long asn_VAL_94_optional = 0; +static const long asn_VAL_95_id_RAT_FrequencyPriorityInformation = 108; +static const long asn_VAL_95_reject = 0; +static const long asn_VAL_95_optional = 0; +static const long asn_VAL_96_id_RRCContainer = 50; +static const long asn_VAL_96_ignore = 1; +static const long asn_VAL_96_optional = 0; +static const long asn_VAL_97_id_MaskedIMEISV = 126; +static const long asn_VAL_97_ignore = 1; +static const long asn_VAL_97_optional = 0; +static const long asn_VAL_98_id_ServingPLMN = 165; +static const long asn_VAL_98_ignore = 1; +static const long asn_VAL_98_optional = 0; +static const long asn_VAL_99_id_GNB_DU_UE_AMBR_UL = 158; +static const long asn_VAL_99_ignore = 1; +static const long asn_VAL_99_conditional = 1; +static const long asn_VAL_100_id_RRCDeliveryStatusRequest = 184; +static const long asn_VAL_100_ignore = 1; +static const long asn_VAL_100_optional = 0; +static const long asn_VAL_101_id_ResourceCoordinationTransferInformation = 195; +static const long asn_VAL_101_ignore = 1; +static const long asn_VAL_101_optional = 0; +static const long asn_VAL_102_id_ServingCellMO = 182; +static const long asn_VAL_102_ignore = 1; +static const long asn_VAL_102_optional = 0; +static const asn_ioc_cell_t asn_IOS_UEContextSetupRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_82_id_gNB_CU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_82_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_82_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_83_id_gNB_DU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_83_ignore }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_83_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_84_id_SpCell_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_84_reject }, + { "&Value", aioc__type, &asn_DEF_NRCGI }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_84_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_85_id_ServCellIndex }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_85_reject }, + { "&Value", aioc__type, &asn_DEF_ServCellIndex }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_85_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_86_id_SpCellULConfigured }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_86_ignore }, + { "&Value", aioc__type, &asn_DEF_CellULConfigured }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_86_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_87_id_CUtoDURRCInformation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_87_reject }, + { "&Value", aioc__type, &asn_DEF_CUtoDURRCInformation }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_87_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_88_id_Candidate_SpCell_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_88_ignore }, + { "&Value", aioc__type, &asn_DEF_Candidate_SpCell_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_88_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_89_id_DRXCycle }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_89_ignore }, + { "&Value", aioc__type, &asn_DEF_DRXCycle }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_89_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_90_id_ResourceCoordinationTransferContainer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_90_ignore }, + { "&Value", aioc__type, &asn_DEF_ResourceCoordinationTransferContainer }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_90_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_91_id_SCell_ToBeSetup_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_91_ignore }, + { "&Value", aioc__type, &asn_DEF_SCell_ToBeSetup_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_91_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_92_id_SRBs_ToBeSetup_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_92_reject }, + { "&Value", aioc__type, &asn_DEF_SRBs_ToBeSetup_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_92_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_93_id_DRBs_ToBeSetup_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_93_reject }, + { "&Value", aioc__type, &asn_DEF_DRBs_ToBeSetup_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_93_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_94_id_InactivityMonitoringRequest }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_94_reject }, + { "&Value", aioc__type, &asn_DEF_InactivityMonitoringRequest }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_94_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_95_id_RAT_FrequencyPriorityInformation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_95_reject }, + { "&Value", aioc__type, &asn_DEF_RAT_FrequencyPriorityInformation }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_95_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_96_id_RRCContainer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_96_ignore }, + { "&Value", aioc__type, &asn_DEF_RRCContainer }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_96_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_97_id_MaskedIMEISV }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_97_ignore }, + { "&Value", aioc__type, &asn_DEF_MaskedIMEISV }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_97_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_98_id_ServingPLMN }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_98_ignore }, + { "&Value", aioc__type, &asn_DEF_PLMN_Identity }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_98_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_99_id_GNB_DU_UE_AMBR_UL }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_99_ignore }, + { "&Value", aioc__type, &asn_DEF_BitRate }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_99_conditional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_100_id_RRCDeliveryStatusRequest }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_100_ignore }, + { "&Value", aioc__type, &asn_DEF_RRCDeliveryStatusRequest }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_100_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_101_id_ResourceCoordinationTransferInformation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_101_ignore }, + { "&Value", aioc__type, &asn_DEF_ResourceCoordinationTransferInformation }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_101_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_102_id_ServingCellMO }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_102_ignore }, + { "&Value", aioc__type, &asn_DEF_ServingCellMO }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_102_optional } +}; +static const asn_ioc_set_t asn_IOS_UEContextSetupRequestIEs_1[] = { + { 21, 4, asn_IOS_UEContextSetupRequestIEs_1_rows } +}; +static const long asn_VAL_107_id_gNB_CU_UE_F1AP_ID = 40; +static const long asn_VAL_107_reject = 0; +static const long asn_VAL_107_mandatory = 2; +static const long asn_VAL_108_id_gNB_DU_UE_F1AP_ID = 41; +static const long asn_VAL_108_reject = 0; +static const long asn_VAL_108_mandatory = 2; +static const long asn_VAL_109_id_DUtoCURRCInformation = 39; +static const long asn_VAL_109_reject = 0; +static const long asn_VAL_109_mandatory = 2; +static const long asn_VAL_110_id_C_RNTI = 95; +static const long asn_VAL_110_ignore = 1; +static const long asn_VAL_110_optional = 0; +static const long asn_VAL_111_id_ResourceCoordinationTransferContainer = 49; +static const long asn_VAL_111_ignore = 1; +static const long asn_VAL_111_optional = 0; +static const long asn_VAL_112_id_FullConfiguration = 94; +static const long asn_VAL_112_reject = 0; +static const long asn_VAL_112_optional = 0; +static const long asn_VAL_113_id_DRBs_Setup_List = 27; +static const long asn_VAL_113_ignore = 1; +static const long asn_VAL_113_optional = 0; +static const long asn_VAL_114_id_SRBs_FailedToBeSetup_List = 66; +static const long asn_VAL_114_ignore = 1; +static const long asn_VAL_114_optional = 0; +static const long asn_VAL_115_id_DRBs_FailedToBeSetup_List = 15; +static const long asn_VAL_115_ignore = 1; +static const long asn_VAL_115_optional = 0; +static const long asn_VAL_116_id_SCell_FailedtoSetup_List = 83; +static const long asn_VAL_116_ignore = 1; +static const long asn_VAL_116_optional = 0; +static const long asn_VAL_117_id_InactivityMonitoringResponse = 98; +static const long asn_VAL_117_reject = 0; +static const long asn_VAL_117_optional = 0; +static const long asn_VAL_118_id_CriticalityDiagnostics = 7; +static const long asn_VAL_118_ignore = 1; +static const long asn_VAL_118_optional = 0; +static const long asn_VAL_119_id_SRBs_Setup_List = 202; +static const long asn_VAL_119_ignore = 1; +static const long asn_VAL_119_optional = 0; +static const asn_ioc_cell_t asn_IOS_UEContextSetupResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_107_id_gNB_CU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_107_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_107_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_108_id_gNB_DU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_108_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_108_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_109_id_DUtoCURRCInformation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_109_reject }, + { "&Value", aioc__type, &asn_DEF_DUtoCURRCInformation }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_109_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_110_id_C_RNTI }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_110_ignore }, + { "&Value", aioc__type, &asn_DEF_C_RNTI }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_110_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_111_id_ResourceCoordinationTransferContainer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_111_ignore }, + { "&Value", aioc__type, &asn_DEF_ResourceCoordinationTransferContainer }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_111_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_112_id_FullConfiguration }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_112_reject }, + { "&Value", aioc__type, &asn_DEF_FullConfiguration }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_112_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_113_id_DRBs_Setup_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_113_ignore }, + { "&Value", aioc__type, &asn_DEF_DRBs_Setup_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_113_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_114_id_SRBs_FailedToBeSetup_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_114_ignore }, + { "&Value", aioc__type, &asn_DEF_SRBs_FailedToBeSetup_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_114_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_115_id_DRBs_FailedToBeSetup_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_115_ignore }, + { "&Value", aioc__type, &asn_DEF_DRBs_FailedToBeSetup_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_115_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_116_id_SCell_FailedtoSetup_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_116_ignore }, + { "&Value", aioc__type, &asn_DEF_SCell_FailedtoSetup_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_116_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_117_id_InactivityMonitoringResponse }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_117_reject }, + { "&Value", aioc__type, &asn_DEF_InactivityMonitoringResponse }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_117_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_118_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_118_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_118_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_119_id_SRBs_Setup_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_119_ignore }, + { "&Value", aioc__type, &asn_DEF_SRBs_Setup_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_119_optional } +}; +static const asn_ioc_set_t asn_IOS_UEContextSetupResponseIEs_1[] = { + { 13, 4, asn_IOS_UEContextSetupResponseIEs_1_rows } +}; +static const long asn_VAL_125_id_gNB_CU_UE_F1AP_ID = 40; +static const long asn_VAL_125_reject = 0; +static const long asn_VAL_125_mandatory = 2; +static const long asn_VAL_126_id_gNB_DU_UE_F1AP_ID = 41; +static const long asn_VAL_126_ignore = 1; +static const long asn_VAL_126_optional = 0; +static const long asn_VAL_127_id_Cause = 0; +static const long asn_VAL_127_ignore = 1; +static const long asn_VAL_127_mandatory = 2; +static const long asn_VAL_128_id_CriticalityDiagnostics = 7; +static const long asn_VAL_128_ignore = 1; +static const long asn_VAL_128_optional = 0; +static const long asn_VAL_129_id_Potential_SpCell_List = 92; +static const long asn_VAL_129_ignore = 1; +static const long asn_VAL_129_optional = 0; +static const asn_ioc_cell_t asn_IOS_UEContextSetupFailureIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_125_id_gNB_CU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_125_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_125_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_126_id_gNB_DU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_126_ignore }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_126_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_127_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_127_ignore }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_127_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_128_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_128_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_128_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_129_id_Potential_SpCell_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_129_ignore }, + { "&Value", aioc__type, &asn_DEF_Potential_SpCell_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_129_optional } +}; +static const asn_ioc_set_t asn_IOS_UEContextSetupFailureIEs_1[] = { + { 5, 4, asn_IOS_UEContextSetupFailureIEs_1_rows } +}; +static const long asn_VAL_131_id_gNB_CU_UE_F1AP_ID = 40; +static const long asn_VAL_131_reject = 0; +static const long asn_VAL_131_mandatory = 2; +static const long asn_VAL_132_id_gNB_DU_UE_F1AP_ID = 41; +static const long asn_VAL_132_reject = 0; +static const long asn_VAL_132_mandatory = 2; +static const long asn_VAL_133_id_Cause = 0; +static const long asn_VAL_133_ignore = 1; +static const long asn_VAL_133_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_UEContextReleaseRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_131_id_gNB_CU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_131_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_131_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_132_id_gNB_DU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_132_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_132_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_133_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_133_ignore }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_133_mandatory } +}; +static const asn_ioc_set_t asn_IOS_UEContextReleaseRequestIEs_1[] = { + { 3, 4, asn_IOS_UEContextReleaseRequestIEs_1_rows } +}; +static const long asn_VAL_134_id_gNB_CU_UE_F1AP_ID = 40; +static const long asn_VAL_134_reject = 0; +static const long asn_VAL_134_mandatory = 2; +static const long asn_VAL_135_id_gNB_DU_UE_F1AP_ID = 41; +static const long asn_VAL_135_reject = 0; +static const long asn_VAL_135_mandatory = 2; +static const long asn_VAL_136_id_Cause = 0; +static const long asn_VAL_136_ignore = 1; +static const long asn_VAL_136_mandatory = 2; +static const long asn_VAL_137_id_RRCContainer = 50; +static const long asn_VAL_137_ignore = 1; +static const long asn_VAL_137_optional = 0; +static const long asn_VAL_138_id_SRBID = 64; +static const long asn_VAL_138_ignore = 1; +static const long asn_VAL_138_optional = 0; +static const long asn_VAL_139_id_oldgNB_DU_UE_F1AP_ID = 47; +static const long asn_VAL_139_ignore = 1; +static const long asn_VAL_139_optional = 0; +static const long asn_VAL_140_id_ExecuteDuplication = 109; +static const long asn_VAL_140_ignore = 1; +static const long asn_VAL_140_optional = 0; +static const long asn_VAL_141_id_RRCDeliveryStatusRequest = 184; +static const long asn_VAL_141_ignore = 1; +static const long asn_VAL_141_optional = 0; +static const asn_ioc_cell_t asn_IOS_UEContextReleaseCommandIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_134_id_gNB_CU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_134_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_134_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_135_id_gNB_DU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_135_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_135_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_136_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_136_ignore }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_136_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_137_id_RRCContainer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_137_ignore }, + { "&Value", aioc__type, &asn_DEF_RRCContainer }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_137_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_138_id_SRBID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_138_ignore }, + { "&Value", aioc__type, &asn_DEF_SRBID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_138_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_139_id_oldgNB_DU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_139_ignore }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_139_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_140_id_ExecuteDuplication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_140_ignore }, + { "&Value", aioc__type, &asn_DEF_ExecuteDuplication }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_140_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_141_id_RRCDeliveryStatusRequest }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_141_ignore }, + { "&Value", aioc__type, &asn_DEF_RRCDeliveryStatusRequest }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_141_optional } +}; +static const asn_ioc_set_t asn_IOS_UEContextReleaseCommandIEs_1[] = { + { 8, 4, asn_IOS_UEContextReleaseCommandIEs_1_rows } +}; +static const long asn_VAL_142_id_gNB_CU_UE_F1AP_ID = 40; +static const long asn_VAL_142_reject = 0; +static const long asn_VAL_142_mandatory = 2; +static const long asn_VAL_143_id_gNB_DU_UE_F1AP_ID = 41; +static const long asn_VAL_143_reject = 0; +static const long asn_VAL_143_mandatory = 2; +static const long asn_VAL_144_id_CriticalityDiagnostics = 7; +static const long asn_VAL_144_ignore = 1; +static const long asn_VAL_144_optional = 0; +static const asn_ioc_cell_t asn_IOS_UEContextReleaseCompleteIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_142_id_gNB_CU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_142_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_142_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_143_id_gNB_DU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_143_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_143_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_144_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_144_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_144_optional } +}; +static const asn_ioc_set_t asn_IOS_UEContextReleaseCompleteIEs_1[] = { + { 3, 4, asn_IOS_UEContextReleaseCompleteIEs_1_rows } +}; +static const long asn_VAL_145_id_gNB_CU_UE_F1AP_ID = 40; +static const long asn_VAL_145_reject = 0; +static const long asn_VAL_145_mandatory = 2; +static const long asn_VAL_146_id_gNB_DU_UE_F1AP_ID = 41; +static const long asn_VAL_146_reject = 0; +static const long asn_VAL_146_mandatory = 2; +static const long asn_VAL_147_id_SpCell_ID = 63; +static const long asn_VAL_147_ignore = 1; +static const long asn_VAL_147_optional = 0; +static const long asn_VAL_148_id_ServCellIndex = 107; +static const long asn_VAL_148_reject = 0; +static const long asn_VAL_148_optional = 0; +static const long asn_VAL_149_id_SpCellULConfigured = 96; +static const long asn_VAL_149_ignore = 1; +static const long asn_VAL_149_optional = 0; +static const long asn_VAL_150_id_DRXCycle = 38; +static const long asn_VAL_150_ignore = 1; +static const long asn_VAL_150_optional = 0; +static const long asn_VAL_151_id_CUtoDURRCInformation = 9; +static const long asn_VAL_151_reject = 0; +static const long asn_VAL_151_optional = 0; +static const long asn_VAL_152_id_TransmissionActionIndicator = 79; +static const long asn_VAL_152_ignore = 1; +static const long asn_VAL_152_optional = 0; +static const long asn_VAL_153_id_ResourceCoordinationTransferContainer = 49; +static const long asn_VAL_153_ignore = 1; +static const long asn_VAL_153_optional = 0; +static const long asn_VAL_154_id_RRCReconfigurationCompleteIndicator = 87; +static const long asn_VAL_154_ignore = 1; +static const long asn_VAL_154_optional = 0; +static const long asn_VAL_155_id_RRCContainer = 50; +static const long asn_VAL_155_reject = 0; +static const long asn_VAL_155_optional = 0; +static const long asn_VAL_156_id_SCell_ToBeSetupMod_List = 56; +static const long asn_VAL_156_ignore = 1; +static const long asn_VAL_156_optional = 0; +static const long asn_VAL_157_id_SCell_ToBeRemoved_List = 52; +static const long asn_VAL_157_ignore = 1; +static const long asn_VAL_157_optional = 0; +static const long asn_VAL_158_id_SRBs_ToBeSetupMod_List = 76; +static const long asn_VAL_158_reject = 0; +static const long asn_VAL_158_optional = 0; +static const long asn_VAL_159_id_DRBs_ToBeSetupMod_List = 37; +static const long asn_VAL_159_reject = 0; +static const long asn_VAL_159_optional = 0; +static const long asn_VAL_160_id_DRBs_ToBeModified_List = 31; +static const long asn_VAL_160_reject = 0; +static const long asn_VAL_160_optional = 0; +static const long asn_VAL_161_id_SRBs_ToBeReleased_List = 72; +static const long asn_VAL_161_reject = 0; +static const long asn_VAL_161_optional = 0; +static const long asn_VAL_162_id_DRBs_ToBeReleased_List = 33; +static const long asn_VAL_162_reject = 0; +static const long asn_VAL_162_optional = 0; +static const long asn_VAL_163_id_InactivityMonitoringRequest = 97; +static const long asn_VAL_163_reject = 0; +static const long asn_VAL_163_optional = 0; +static const long asn_VAL_164_id_RAT_FrequencyPriorityInformation = 108; +static const long asn_VAL_164_reject = 0; +static const long asn_VAL_164_optional = 0; +static const long asn_VAL_165_id_DRXConfigurationIndicator = 159; +static const long asn_VAL_165_ignore = 1; +static const long asn_VAL_165_optional = 0; +static const long asn_VAL_166_id_RLCFailureIndication = 174; +static const long asn_VAL_166_ignore = 1; +static const long asn_VAL_166_optional = 0; +static const long asn_VAL_167_id_UplinkTxDirectCurrentListInformation = 175; +static const long asn_VAL_167_ignore = 1; +static const long asn_VAL_167_optional = 0; +static const long asn_VAL_168_id_GNB_DUConfigurationQuery = 162; +static const long asn_VAL_168_reject = 0; +static const long asn_VAL_168_optional = 0; +static const long asn_VAL_169_id_GNB_DU_UE_AMBR_UL = 158; +static const long asn_VAL_169_ignore = 1; +static const long asn_VAL_169_optional = 0; +static const long asn_VAL_170_id_ExecuteDuplication = 109; +static const long asn_VAL_170_ignore = 1; +static const long asn_VAL_170_optional = 0; +static const long asn_VAL_171_id_RRCDeliveryStatusRequest = 184; +static const long asn_VAL_171_ignore = 1; +static const long asn_VAL_171_optional = 0; +static const long asn_VAL_172_id_ResourceCoordinationTransferInformation = 195; +static const long asn_VAL_172_ignore = 1; +static const long asn_VAL_172_optional = 0; +static const long asn_VAL_173_id_ServingCellMO = 182; +static const long asn_VAL_173_ignore = 1; +static const long asn_VAL_173_optional = 0; +static const long asn_VAL_174_id_NeedforGap = 215; +static const long asn_VAL_174_ignore = 1; +static const long asn_VAL_174_optional = 0; +static const asn_ioc_cell_t asn_IOS_UEContextModificationRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_145_id_gNB_CU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_145_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_145_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_146_id_gNB_DU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_146_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_146_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_147_id_SpCell_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_147_ignore }, + { "&Value", aioc__type, &asn_DEF_NRCGI }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_147_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_148_id_ServCellIndex }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_148_reject }, + { "&Value", aioc__type, &asn_DEF_ServCellIndex }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_148_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_149_id_SpCellULConfigured }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_149_ignore }, + { "&Value", aioc__type, &asn_DEF_CellULConfigured }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_149_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_150_id_DRXCycle }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_150_ignore }, + { "&Value", aioc__type, &asn_DEF_DRXCycle }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_150_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_151_id_CUtoDURRCInformation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_151_reject }, + { "&Value", aioc__type, &asn_DEF_CUtoDURRCInformation }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_151_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_152_id_TransmissionActionIndicator }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_152_ignore }, + { "&Value", aioc__type, &asn_DEF_TransmissionActionIndicator }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_152_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_153_id_ResourceCoordinationTransferContainer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_153_ignore }, + { "&Value", aioc__type, &asn_DEF_ResourceCoordinationTransferContainer }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_153_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_154_id_RRCReconfigurationCompleteIndicator }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_154_ignore }, + { "&Value", aioc__type, &asn_DEF_RRCReconfigurationCompleteIndicator }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_154_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_155_id_RRCContainer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_155_reject }, + { "&Value", aioc__type, &asn_DEF_RRCContainer }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_155_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_156_id_SCell_ToBeSetupMod_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_156_ignore }, + { "&Value", aioc__type, &asn_DEF_SCell_ToBeSetupMod_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_156_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_157_id_SCell_ToBeRemoved_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_157_ignore }, + { "&Value", aioc__type, &asn_DEF_SCell_ToBeRemoved_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_157_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_158_id_SRBs_ToBeSetupMod_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_158_reject }, + { "&Value", aioc__type, &asn_DEF_SRBs_ToBeSetupMod_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_158_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_159_id_DRBs_ToBeSetupMod_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_159_reject }, + { "&Value", aioc__type, &asn_DEF_DRBs_ToBeSetupMod_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_159_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_160_id_DRBs_ToBeModified_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_160_reject }, + { "&Value", aioc__type, &asn_DEF_DRBs_ToBeModified_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_160_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_161_id_SRBs_ToBeReleased_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_161_reject }, + { "&Value", aioc__type, &asn_DEF_SRBs_ToBeReleased_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_161_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_162_id_DRBs_ToBeReleased_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_162_reject }, + { "&Value", aioc__type, &asn_DEF_DRBs_ToBeReleased_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_162_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_163_id_InactivityMonitoringRequest }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_163_reject }, + { "&Value", aioc__type, &asn_DEF_InactivityMonitoringRequest }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_163_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_164_id_RAT_FrequencyPriorityInformation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_164_reject }, + { "&Value", aioc__type, &asn_DEF_RAT_FrequencyPriorityInformation }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_164_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_165_id_DRXConfigurationIndicator }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_165_ignore }, + { "&Value", aioc__type, &asn_DEF_DRXConfigurationIndicator }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_165_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_166_id_RLCFailureIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_166_ignore }, + { "&Value", aioc__type, &asn_DEF_RLCFailureIndication }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_166_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_167_id_UplinkTxDirectCurrentListInformation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_167_ignore }, + { "&Value", aioc__type, &asn_DEF_UplinkTxDirectCurrentListInformation }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_167_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_168_id_GNB_DUConfigurationQuery }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_168_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_DUConfigurationQuery }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_168_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_169_id_GNB_DU_UE_AMBR_UL }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_169_ignore }, + { "&Value", aioc__type, &asn_DEF_BitRate }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_169_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_170_id_ExecuteDuplication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_170_ignore }, + { "&Value", aioc__type, &asn_DEF_ExecuteDuplication }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_170_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_171_id_RRCDeliveryStatusRequest }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_171_ignore }, + { "&Value", aioc__type, &asn_DEF_RRCDeliveryStatusRequest }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_171_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_172_id_ResourceCoordinationTransferInformation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_172_ignore }, + { "&Value", aioc__type, &asn_DEF_ResourceCoordinationTransferInformation }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_172_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_173_id_ServingCellMO }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_173_ignore }, + { "&Value", aioc__type, &asn_DEF_ServingCellMO }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_173_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_174_id_NeedforGap }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_174_ignore }, + { "&Value", aioc__type, &asn_DEF_NeedforGap }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_174_optional } +}; +static const asn_ioc_set_t asn_IOS_UEContextModificationRequestIEs_1[] = { + { 30, 4, asn_IOS_UEContextModificationRequestIEs_1_rows } +}; +static const long asn_VAL_182_id_gNB_CU_UE_F1AP_ID = 40; +static const long asn_VAL_182_reject = 0; +static const long asn_VAL_182_mandatory = 2; +static const long asn_VAL_183_id_gNB_DU_UE_F1AP_ID = 41; +static const long asn_VAL_183_reject = 0; +static const long asn_VAL_183_mandatory = 2; +static const long asn_VAL_184_id_ResourceCoordinationTransferContainer = 49; +static const long asn_VAL_184_ignore = 1; +static const long asn_VAL_184_optional = 0; +static const long asn_VAL_185_id_DUtoCURRCInformation = 39; +static const long asn_VAL_185_reject = 0; +static const long asn_VAL_185_optional = 0; +static const long asn_VAL_186_id_DRBs_SetupMod_List = 29; +static const long asn_VAL_186_ignore = 1; +static const long asn_VAL_186_optional = 0; +static const long asn_VAL_187_id_DRBs_Modified_List = 21; +static const long asn_VAL_187_ignore = 1; +static const long asn_VAL_187_optional = 0; +static const long asn_VAL_188_id_SRBs_FailedToBeSetupMod_List = 68; +static const long asn_VAL_188_ignore = 1; +static const long asn_VAL_188_optional = 0; +static const long asn_VAL_189_id_DRBs_FailedToBeSetupMod_List = 17; +static const long asn_VAL_189_ignore = 1; +static const long asn_VAL_189_optional = 0; +static const long asn_VAL_190_id_SCell_FailedtoSetupMod_List = 85; +static const long asn_VAL_190_ignore = 1; +static const long asn_VAL_190_optional = 0; +static const long asn_VAL_191_id_DRBs_FailedToBeModified_List = 13; +static const long asn_VAL_191_ignore = 1; +static const long asn_VAL_191_optional = 0; +static const long asn_VAL_192_id_InactivityMonitoringResponse = 98; +static const long asn_VAL_192_reject = 0; +static const long asn_VAL_192_optional = 0; +static const long asn_VAL_193_id_CriticalityDiagnostics = 7; +static const long asn_VAL_193_ignore = 1; +static const long asn_VAL_193_optional = 0; +static const long asn_VAL_194_id_C_RNTI = 95; +static const long asn_VAL_194_ignore = 1; +static const long asn_VAL_194_optional = 0; +static const long asn_VAL_195_id_Associated_SCell_List = 198; +static const long asn_VAL_195_ignore = 1; +static const long asn_VAL_195_optional = 0; +static const long asn_VAL_196_id_SRBs_SetupMod_List = 204; +static const long asn_VAL_196_ignore = 1; +static const long asn_VAL_196_optional = 0; +static const long asn_VAL_197_id_SRBs_Modified_List = 206; +static const long asn_VAL_197_ignore = 1; +static const long asn_VAL_197_optional = 0; +static const asn_ioc_cell_t asn_IOS_UEContextModificationResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_182_id_gNB_CU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_182_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_182_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_183_id_gNB_DU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_183_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_183_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_184_id_ResourceCoordinationTransferContainer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_184_ignore }, + { "&Value", aioc__type, &asn_DEF_ResourceCoordinationTransferContainer }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_184_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_185_id_DUtoCURRCInformation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_185_reject }, + { "&Value", aioc__type, &asn_DEF_DUtoCURRCInformation }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_185_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_186_id_DRBs_SetupMod_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_186_ignore }, + { "&Value", aioc__type, &asn_DEF_DRBs_SetupMod_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_186_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_187_id_DRBs_Modified_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_187_ignore }, + { "&Value", aioc__type, &asn_DEF_DRBs_Modified_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_187_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_188_id_SRBs_FailedToBeSetupMod_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_188_ignore }, + { "&Value", aioc__type, &asn_DEF_SRBs_FailedToBeSetupMod_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_188_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_189_id_DRBs_FailedToBeSetupMod_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_189_ignore }, + { "&Value", aioc__type, &asn_DEF_DRBs_FailedToBeSetupMod_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_189_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_190_id_SCell_FailedtoSetupMod_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_190_ignore }, + { "&Value", aioc__type, &asn_DEF_SCell_FailedtoSetupMod_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_190_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_191_id_DRBs_FailedToBeModified_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_191_ignore }, + { "&Value", aioc__type, &asn_DEF_DRBs_FailedToBeModified_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_191_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_192_id_InactivityMonitoringResponse }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_192_reject }, + { "&Value", aioc__type, &asn_DEF_InactivityMonitoringResponse }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_192_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_193_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_193_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_193_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_194_id_C_RNTI }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_194_ignore }, + { "&Value", aioc__type, &asn_DEF_C_RNTI }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_194_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_195_id_Associated_SCell_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_195_ignore }, + { "&Value", aioc__type, &asn_DEF_Associated_SCell_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_195_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_196_id_SRBs_SetupMod_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_196_ignore }, + { "&Value", aioc__type, &asn_DEF_SRBs_SetupMod_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_196_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_197_id_SRBs_Modified_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_197_ignore }, + { "&Value", aioc__type, &asn_DEF_SRBs_Modified_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_197_optional } +}; +static const asn_ioc_set_t asn_IOS_UEContextModificationResponseIEs_1[] = { + { 16, 4, asn_IOS_UEContextModificationResponseIEs_1_rows } +}; +static const long asn_VAL_207_id_gNB_CU_UE_F1AP_ID = 40; +static const long asn_VAL_207_reject = 0; +static const long asn_VAL_207_mandatory = 2; +static const long asn_VAL_208_id_gNB_DU_UE_F1AP_ID = 41; +static const long asn_VAL_208_reject = 0; +static const long asn_VAL_208_mandatory = 2; +static const long asn_VAL_209_id_Cause = 0; +static const long asn_VAL_209_ignore = 1; +static const long asn_VAL_209_mandatory = 2; +static const long asn_VAL_210_id_CriticalityDiagnostics = 7; +static const long asn_VAL_210_ignore = 1; +static const long asn_VAL_210_optional = 0; +static const asn_ioc_cell_t asn_IOS_UEContextModificationFailureIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_207_id_gNB_CU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_207_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_207_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_208_id_gNB_DU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_208_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_208_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_209_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_209_ignore }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_209_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_210_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_210_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_210_optional } +}; +static const asn_ioc_set_t asn_IOS_UEContextModificationFailureIEs_1[] = { + { 4, 4, asn_IOS_UEContextModificationFailureIEs_1_rows } +}; +static const long asn_VAL_211_id_gNB_CU_UE_F1AP_ID = 40; +static const long asn_VAL_211_reject = 0; +static const long asn_VAL_211_mandatory = 2; +static const long asn_VAL_212_id_gNB_DU_UE_F1AP_ID = 41; +static const long asn_VAL_212_reject = 0; +static const long asn_VAL_212_mandatory = 2; +static const long asn_VAL_213_id_ResourceCoordinationTransferContainer = 49; +static const long asn_VAL_213_ignore = 1; +static const long asn_VAL_213_optional = 0; +static const long asn_VAL_214_id_DUtoCURRCInformation = 39; +static const long asn_VAL_214_reject = 0; +static const long asn_VAL_214_optional = 0; +static const long asn_VAL_215_id_DRBs_Required_ToBeModified_List = 23; +static const long asn_VAL_215_reject = 0; +static const long asn_VAL_215_optional = 0; +static const long asn_VAL_216_id_SRBs_Required_ToBeReleased_List = 70; +static const long asn_VAL_216_reject = 0; +static const long asn_VAL_216_optional = 0; +static const long asn_VAL_217_id_DRBs_Required_ToBeReleased_List = 25; +static const long asn_VAL_217_reject = 0; +static const long asn_VAL_217_optional = 0; +static const long asn_VAL_218_id_Cause = 0; +static const long asn_VAL_218_ignore = 1; +static const long asn_VAL_218_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_UEContextModificationRequiredIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_211_id_gNB_CU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_211_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_211_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_212_id_gNB_DU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_212_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_212_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_213_id_ResourceCoordinationTransferContainer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_213_ignore }, + { "&Value", aioc__type, &asn_DEF_ResourceCoordinationTransferContainer }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_213_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_214_id_DUtoCURRCInformation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_214_reject }, + { "&Value", aioc__type, &asn_DEF_DUtoCURRCInformation }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_214_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_215_id_DRBs_Required_ToBeModified_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_215_reject }, + { "&Value", aioc__type, &asn_DEF_DRBs_Required_ToBeModified_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_215_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_216_id_SRBs_Required_ToBeReleased_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_216_reject }, + { "&Value", aioc__type, &asn_DEF_SRBs_Required_ToBeReleased_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_216_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_217_id_DRBs_Required_ToBeReleased_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_217_reject }, + { "&Value", aioc__type, &asn_DEF_DRBs_Required_ToBeReleased_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_217_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_218_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_218_ignore }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_218_mandatory } +}; +static const asn_ioc_set_t asn_IOS_UEContextModificationRequiredIEs_1[] = { + { 8, 4, asn_IOS_UEContextModificationRequiredIEs_1_rows } +}; +static const long asn_VAL_222_id_gNB_CU_UE_F1AP_ID = 40; +static const long asn_VAL_222_reject = 0; +static const long asn_VAL_222_mandatory = 2; +static const long asn_VAL_223_id_gNB_DU_UE_F1AP_ID = 41; +static const long asn_VAL_223_reject = 0; +static const long asn_VAL_223_mandatory = 2; +static const long asn_VAL_224_id_ResourceCoordinationTransferContainer = 49; +static const long asn_VAL_224_ignore = 1; +static const long asn_VAL_224_optional = 0; +static const long asn_VAL_225_id_DRBs_ModifiedConf_List = 19; +static const long asn_VAL_225_ignore = 1; +static const long asn_VAL_225_optional = 0; +static const long asn_VAL_226_id_RRCContainer = 50; +static const long asn_VAL_226_ignore = 1; +static const long asn_VAL_226_optional = 0; +static const long asn_VAL_227_id_CriticalityDiagnostics = 7; +static const long asn_VAL_227_ignore = 1; +static const long asn_VAL_227_optional = 0; +static const long asn_VAL_228_id_ExecuteDuplication = 109; +static const long asn_VAL_228_ignore = 1; +static const long asn_VAL_228_optional = 0; +static const long asn_VAL_229_id_ResourceCoordinationTransferInformation = 195; +static const long asn_VAL_229_ignore = 1; +static const long asn_VAL_229_optional = 0; +static const asn_ioc_cell_t asn_IOS_UEContextModificationConfirmIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_222_id_gNB_CU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_222_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_222_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_223_id_gNB_DU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_223_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_223_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_224_id_ResourceCoordinationTransferContainer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_224_ignore }, + { "&Value", aioc__type, &asn_DEF_ResourceCoordinationTransferContainer }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_224_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_225_id_DRBs_ModifiedConf_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_225_ignore }, + { "&Value", aioc__type, &asn_DEF_DRBs_ModifiedConf_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_225_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_226_id_RRCContainer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_226_ignore }, + { "&Value", aioc__type, &asn_DEF_RRCContainer }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_226_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_227_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_227_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_227_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_228_id_ExecuteDuplication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_228_ignore }, + { "&Value", aioc__type, &asn_DEF_ExecuteDuplication }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_228_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_229_id_ResourceCoordinationTransferInformation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_229_ignore }, + { "&Value", aioc__type, &asn_DEF_ResourceCoordinationTransferInformation }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_229_optional } +}; +static const asn_ioc_set_t asn_IOS_UEContextModificationConfirmIEs_1[] = { + { 8, 4, asn_IOS_UEContextModificationConfirmIEs_1_rows } +}; +static const long asn_VAL_231_id_gNB_CU_UE_F1AP_ID = 40; +static const long asn_VAL_231_reject = 0; +static const long asn_VAL_231_mandatory = 2; +static const long asn_VAL_232_id_gNB_DU_UE_F1AP_ID = 41; +static const long asn_VAL_232_reject = 0; +static const long asn_VAL_232_mandatory = 2; +static const long asn_VAL_233_id_Cause = 0; +static const long asn_VAL_233_ignore = 1; +static const long asn_VAL_233_mandatory = 2; +static const long asn_VAL_234_id_CriticalityDiagnostics = 7; +static const long asn_VAL_234_ignore = 1; +static const long asn_VAL_234_optional = 0; +static const asn_ioc_cell_t asn_IOS_UEContextModificationRefuseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_231_id_gNB_CU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_231_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_231_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_232_id_gNB_DU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_232_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_232_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_233_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_233_ignore }, + { "&Value", aioc__type, &asn_DEF_Cause }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_233_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_234_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_234_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_234_optional } +}; +static const asn_ioc_set_t asn_IOS_UEContextModificationRefuseIEs_1[] = { + { 4, 4, asn_IOS_UEContextModificationRefuseIEs_1_rows } +}; +static const long asn_VAL_235_id_TransactionID = 78; +static const long asn_VAL_235_reject = 0; +static const long asn_VAL_235_mandatory = 2; +static const long asn_VAL_236_id_PWSSystemInformation = 140; +static const long asn_VAL_236_reject = 0; +static const long asn_VAL_236_mandatory = 2; +static const long asn_VAL_237_id_RepetitionPeriod = 141; +static const long asn_VAL_237_reject = 0; +static const long asn_VAL_237_mandatory = 2; +static const long asn_VAL_238_id_NumberofBroadcastRequest = 142; +static const long asn_VAL_238_reject = 0; +static const long asn_VAL_238_mandatory = 2; +static const long asn_VAL_239_id_Cells_To_Be_Broadcast_List = 144; +static const long asn_VAL_239_reject = 0; +static const long asn_VAL_239_optional = 0; +static const asn_ioc_cell_t asn_IOS_WriteReplaceWarningRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_235_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_235_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_235_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_236_id_PWSSystemInformation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_236_reject }, + { "&Value", aioc__type, &asn_DEF_PWSSystemInformation }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_236_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_237_id_RepetitionPeriod }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_237_reject }, + { "&Value", aioc__type, &asn_DEF_RepetitionPeriod }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_237_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_238_id_NumberofBroadcastRequest }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_238_reject }, + { "&Value", aioc__type, &asn_DEF_NumberofBroadcastRequest }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_238_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_239_id_Cells_To_Be_Broadcast_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_239_reject }, + { "&Value", aioc__type, &asn_DEF_Cells_To_Be_Broadcast_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_239_optional } +}; +static const asn_ioc_set_t asn_IOS_WriteReplaceWarningRequestIEs_1[] = { + { 5, 4, asn_IOS_WriteReplaceWarningRequestIEs_1_rows } +}; +static const long asn_VAL_241_id_TransactionID = 78; +static const long asn_VAL_241_reject = 0; +static const long asn_VAL_241_mandatory = 2; +static const long asn_VAL_242_id_Cells_Broadcast_Completed_List = 146; +static const long asn_VAL_242_reject = 0; +static const long asn_VAL_242_optional = 0; +static const long asn_VAL_243_id_CriticalityDiagnostics = 7; +static const long asn_VAL_243_ignore = 1; +static const long asn_VAL_243_optional = 0; +static const long asn_VAL_244_id_Dedicated_SIDelivery_NeededUE_List = 189; +static const long asn_VAL_244_ignore = 1; +static const long asn_VAL_244_optional = 0; +static const asn_ioc_cell_t asn_IOS_WriteReplaceWarningResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_241_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_241_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_241_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_242_id_Cells_Broadcast_Completed_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_242_reject }, + { "&Value", aioc__type, &asn_DEF_Cells_Broadcast_Completed_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_242_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_243_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_243_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_243_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_244_id_Dedicated_SIDelivery_NeededUE_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_244_ignore }, + { "&Value", aioc__type, &asn_DEF_Dedicated_SIDelivery_NeededUE_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_244_optional } +}; +static const asn_ioc_set_t asn_IOS_WriteReplaceWarningResponseIEs_1[] = { + { 4, 4, asn_IOS_WriteReplaceWarningResponseIEs_1_rows } +}; +static const long asn_VAL_246_id_TransactionID = 78; +static const long asn_VAL_246_reject = 0; +static const long asn_VAL_246_mandatory = 2; +static const long asn_VAL_247_id_NumberofBroadcastRequest = 142; +static const long asn_VAL_247_reject = 0; +static const long asn_VAL_247_mandatory = 2; +static const long asn_VAL_248_id_Broadcast_To_Be_Cancelled_List = 148; +static const long asn_VAL_248_reject = 0; +static const long asn_VAL_248_optional = 0; +static const long asn_VAL_249_id_Cancel_all_Warning_Messages_Indicator = 157; +static const long asn_VAL_249_reject = 0; +static const long asn_VAL_249_optional = 0; +static const asn_ioc_cell_t asn_IOS_PWSCancelRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_246_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_246_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_246_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_247_id_NumberofBroadcastRequest }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_247_reject }, + { "&Value", aioc__type, &asn_DEF_NumberofBroadcastRequest }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_247_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_248_id_Broadcast_To_Be_Cancelled_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_248_reject }, + { "&Value", aioc__type, &asn_DEF_Broadcast_To_Be_Cancelled_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_248_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_249_id_Cancel_all_Warning_Messages_Indicator }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_249_reject }, + { "&Value", aioc__type, &asn_DEF_Cancel_all_Warning_Messages_Indicator }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_249_optional } +}; +static const asn_ioc_set_t asn_IOS_PWSCancelRequestIEs_1[] = { + { 4, 4, asn_IOS_PWSCancelRequestIEs_1_rows } +}; +static const long asn_VAL_251_id_TransactionID = 78; +static const long asn_VAL_251_reject = 0; +static const long asn_VAL_251_mandatory = 2; +static const long asn_VAL_252_id_Cells_Broadcast_Cancelled_List = 150; +static const long asn_VAL_252_reject = 0; +static const long asn_VAL_252_optional = 0; +static const long asn_VAL_253_id_CriticalityDiagnostics = 7; +static const long asn_VAL_253_ignore = 1; +static const long asn_VAL_253_optional = 0; +static const asn_ioc_cell_t asn_IOS_PWSCancelResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_251_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_251_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_251_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_252_id_Cells_Broadcast_Cancelled_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_252_reject }, + { "&Value", aioc__type, &asn_DEF_Cells_Broadcast_Cancelled_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_252_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_253_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_253_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_253_optional } +}; +static const asn_ioc_set_t asn_IOS_PWSCancelResponseIEs_1[] = { + { 3, 4, asn_IOS_PWSCancelResponseIEs_1_rows } +}; +static const long asn_VAL_255_id_gNB_CU_UE_F1AP_ID = 40; +static const long asn_VAL_255_reject = 0; +static const long asn_VAL_255_mandatory = 2; +static const long asn_VAL_256_id_gNB_DU_UE_F1AP_ID = 41; +static const long asn_VAL_256_reject = 0; +static const long asn_VAL_256_mandatory = 2; +static const long asn_VAL_257_id_DRB_Activity_List = 100; +static const long asn_VAL_257_reject = 0; +static const long asn_VAL_257_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_UEInactivityNotificationIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_255_id_gNB_CU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_255_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_255_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_256_id_gNB_DU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_256_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_256_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_257_id_DRB_Activity_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_257_reject }, + { "&Value", aioc__type, &asn_DEF_DRB_Activity_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_257_mandatory } +}; +static const asn_ioc_set_t asn_IOS_UEInactivityNotificationIEs_1[] = { + { 3, 4, asn_IOS_UEInactivityNotificationIEs_1_rows } +}; +static const long asn_VAL_259_id_gNB_DU_UE_F1AP_ID = 41; +static const long asn_VAL_259_reject = 0; +static const long asn_VAL_259_mandatory = 2; +static const long asn_VAL_260_id_NRCGI = 111; +static const long asn_VAL_260_reject = 0; +static const long asn_VAL_260_mandatory = 2; +static const long asn_VAL_261_id_C_RNTI = 95; +static const long asn_VAL_261_reject = 0; +static const long asn_VAL_261_mandatory = 2; +static const long asn_VAL_262_id_RRCContainer = 50; +static const long asn_VAL_262_reject = 0; +static const long asn_VAL_262_mandatory = 2; +static const long asn_VAL_263_id_DUtoCURRCContainer = 128; +static const long asn_VAL_263_reject = 0; +static const long asn_VAL_263_optional = 0; +static const long asn_VAL_264_id_SULAccessIndication = 178; +static const long asn_VAL_264_ignore = 1; +static const long asn_VAL_264_optional = 0; +static const long asn_VAL_265_id_TransactionID = 78; +static const long asn_VAL_265_ignore = 1; +static const long asn_VAL_265_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_InitialULRRCMessageTransferIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_259_id_gNB_DU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_259_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_259_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_260_id_NRCGI }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_260_reject }, + { "&Value", aioc__type, &asn_DEF_NRCGI }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_260_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_261_id_C_RNTI }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_261_reject }, + { "&Value", aioc__type, &asn_DEF_C_RNTI }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_261_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_262_id_RRCContainer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_262_reject }, + { "&Value", aioc__type, &asn_DEF_RRCContainer }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_262_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_263_id_DUtoCURRCContainer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_263_reject }, + { "&Value", aioc__type, &asn_DEF_DUtoCURRCContainer }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_263_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_264_id_SULAccessIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_264_ignore }, + { "&Value", aioc__type, &asn_DEF_SULAccessIndication }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_264_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_265_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_265_ignore }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_265_mandatory } +}; +static const asn_ioc_set_t asn_IOS_InitialULRRCMessageTransferIEs_1[] = { + { 7, 4, asn_IOS_InitialULRRCMessageTransferIEs_1_rows } +}; +static const long asn_VAL_266_id_gNB_CU_UE_F1AP_ID = 40; +static const long asn_VAL_266_reject = 0; +static const long asn_VAL_266_mandatory = 2; +static const long asn_VAL_267_id_gNB_DU_UE_F1AP_ID = 41; +static const long asn_VAL_267_reject = 0; +static const long asn_VAL_267_mandatory = 2; +static const long asn_VAL_268_id_oldgNB_DU_UE_F1AP_ID = 47; +static const long asn_VAL_268_reject = 0; +static const long asn_VAL_268_optional = 0; +static const long asn_VAL_269_id_SRBID = 64; +static const long asn_VAL_269_reject = 0; +static const long asn_VAL_269_mandatory = 2; +static const long asn_VAL_270_id_ExecuteDuplication = 109; +static const long asn_VAL_270_ignore = 1; +static const long asn_VAL_270_optional = 0; +static const long asn_VAL_271_id_RRCContainer = 50; +static const long asn_VAL_271_reject = 0; +static const long asn_VAL_271_mandatory = 2; +static const long asn_VAL_272_id_RAT_FrequencyPriorityInformation = 108; +static const long asn_VAL_272_reject = 0; +static const long asn_VAL_272_optional = 0; +static const long asn_VAL_273_id_RRCDeliveryStatusRequest = 184; +static const long asn_VAL_273_ignore = 1; +static const long asn_VAL_273_optional = 0; +static const asn_ioc_cell_t asn_IOS_DLRRCMessageTransferIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_266_id_gNB_CU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_266_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_266_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_267_id_gNB_DU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_267_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_267_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_268_id_oldgNB_DU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_268_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_268_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_269_id_SRBID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_269_reject }, + { "&Value", aioc__type, &asn_DEF_SRBID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_269_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_270_id_ExecuteDuplication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_270_ignore }, + { "&Value", aioc__type, &asn_DEF_ExecuteDuplication }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_270_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_271_id_RRCContainer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_271_reject }, + { "&Value", aioc__type, &asn_DEF_RRCContainer }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_271_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_272_id_RAT_FrequencyPriorityInformation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_272_reject }, + { "&Value", aioc__type, &asn_DEF_RAT_FrequencyPriorityInformation }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_272_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_273_id_RRCDeliveryStatusRequest }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_273_ignore }, + { "&Value", aioc__type, &asn_DEF_RRCDeliveryStatusRequest }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_273_optional } +}; +static const asn_ioc_set_t asn_IOS_DLRRCMessageTransferIEs_1[] = { + { 8, 4, asn_IOS_DLRRCMessageTransferIEs_1_rows } +}; +static const long asn_VAL_274_id_gNB_CU_UE_F1AP_ID = 40; +static const long asn_VAL_274_reject = 0; +static const long asn_VAL_274_mandatory = 2; +static const long asn_VAL_275_id_gNB_DU_UE_F1AP_ID = 41; +static const long asn_VAL_275_reject = 0; +static const long asn_VAL_275_mandatory = 2; +static const long asn_VAL_276_id_SRBID = 64; +static const long asn_VAL_276_reject = 0; +static const long asn_VAL_276_mandatory = 2; +static const long asn_VAL_277_id_RRCContainer = 50; +static const long asn_VAL_277_reject = 0; +static const long asn_VAL_277_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ULRRCMessageTransferIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_274_id_gNB_CU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_274_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_274_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_275_id_gNB_DU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_275_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_275_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_276_id_SRBID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_276_reject }, + { "&Value", aioc__type, &asn_DEF_SRBID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_276_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_277_id_RRCContainer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_277_reject }, + { "&Value", aioc__type, &asn_DEF_RRCContainer }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_277_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ULRRCMessageTransferIEs_1[] = { + { 4, 4, asn_IOS_ULRRCMessageTransferIEs_1_rows } +}; +static const long asn_VAL_278_id_TransactionID = 78; +static const long asn_VAL_278_reject = 0; +static const long asn_VAL_278_mandatory = 2; +static const long asn_VAL_279_id_NRCGI = 111; +static const long asn_VAL_279_reject = 0; +static const long asn_VAL_279_mandatory = 2; +static const long asn_VAL_280_id_SItype_List = 116; +static const long asn_VAL_280_reject = 0; +static const long asn_VAL_280_mandatory = 2; +static const long asn_VAL_281_id_ConfirmedUEID = 156; +static const long asn_VAL_281_reject = 0; +static const long asn_VAL_281_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_SystemInformationDeliveryCommandIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_278_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_278_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_278_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_279_id_NRCGI }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_279_reject }, + { "&Value", aioc__type, &asn_DEF_NRCGI }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_279_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_280_id_SItype_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_280_reject }, + { "&Value", aioc__type, &asn_DEF_SItype_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_280_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_281_id_ConfirmedUEID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_281_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_281_mandatory } +}; +static const asn_ioc_set_t asn_IOS_SystemInformationDeliveryCommandIEs_1[] = { + { 4, 4, asn_IOS_SystemInformationDeliveryCommandIEs_1_rows } +}; +static const long asn_VAL_282_id_UEIdentityIndexValue = 117; +static const long asn_VAL_282_reject = 0; +static const long asn_VAL_282_mandatory = 2; +static const long asn_VAL_283_id_PagingIdentity = 127; +static const long asn_VAL_283_reject = 0; +static const long asn_VAL_283_mandatory = 2; +static const long asn_VAL_284_id_PagingDRX = 114; +static const long asn_VAL_284_ignore = 1; +static const long asn_VAL_284_optional = 0; +static const long asn_VAL_285_id_PagingPriority = 115; +static const long asn_VAL_285_ignore = 1; +static const long asn_VAL_285_optional = 0; +static const long asn_VAL_286_id_PagingCell_List = 113; +static const long asn_VAL_286_ignore = 1; +static const long asn_VAL_286_mandatory = 2; +static const long asn_VAL_287_id_PagingOrigin = 216; +static const long asn_VAL_287_ignore = 1; +static const long asn_VAL_287_optional = 0; +static const asn_ioc_cell_t asn_IOS_PagingIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_282_id_UEIdentityIndexValue }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_282_reject }, + { "&Value", aioc__type, &asn_DEF_UEIdentityIndexValue }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_282_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_283_id_PagingIdentity }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_283_reject }, + { "&Value", aioc__type, &asn_DEF_PagingIdentity }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_283_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_284_id_PagingDRX }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_284_ignore }, + { "&Value", aioc__type, &asn_DEF_PagingDRX }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_284_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_285_id_PagingPriority }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_285_ignore }, + { "&Value", aioc__type, &asn_DEF_PagingPriority }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_285_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_286_id_PagingCell_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_286_ignore }, + { "&Value", aioc__type, &asn_DEF_PagingCell_list }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_286_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_287_id_PagingOrigin }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_287_ignore }, + { "&Value", aioc__type, &asn_DEF_PagingOrigin }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_287_optional } +}; +static const asn_ioc_set_t asn_IOS_PagingIEs_1[] = { + { 6, 4, asn_IOS_PagingIEs_1_rows } +}; +static const long asn_VAL_289_id_gNB_CU_UE_F1AP_ID = 40; +static const long asn_VAL_289_reject = 0; +static const long asn_VAL_289_mandatory = 2; +static const long asn_VAL_290_id_gNB_DU_UE_F1AP_ID = 41; +static const long asn_VAL_290_reject = 0; +static const long asn_VAL_290_mandatory = 2; +static const long asn_VAL_291_id_DRB_Notify_List = 137; +static const long asn_VAL_291_reject = 0; +static const long asn_VAL_291_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_NotifyIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_289_id_gNB_CU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_289_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_289_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_290_id_gNB_DU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_290_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_290_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_291_id_DRB_Notify_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_291_reject }, + { "&Value", aioc__type, &asn_DEF_DRB_Notify_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_291_mandatory } +}; +static const asn_ioc_set_t asn_IOS_NotifyIEs_1[] = { + { 3, 4, asn_IOS_NotifyIEs_1_rows } +}; +static const long asn_VAL_293_id_TransactionID = 78; +static const long asn_VAL_293_reject = 0; +static const long asn_VAL_293_mandatory = 2; +static const long asn_VAL_294_id_NR_CGI_List_For_Restart_List = 152; +static const long asn_VAL_294_reject = 0; +static const long asn_VAL_294_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_PWSRestartIndicationIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_293_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_293_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_293_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_294_id_NR_CGI_List_For_Restart_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_294_reject }, + { "&Value", aioc__type, &asn_DEF_NR_CGI_List_For_Restart_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_294_mandatory } +}; +static const asn_ioc_set_t asn_IOS_PWSRestartIndicationIEs_1[] = { + { 2, 4, asn_IOS_PWSRestartIndicationIEs_1_rows } +}; +static const long asn_VAL_296_id_TransactionID = 78; +static const long asn_VAL_296_reject = 0; +static const long asn_VAL_296_mandatory = 2; +static const long asn_VAL_297_id_PWS_Failed_NR_CGI_List = 154; +static const long asn_VAL_297_reject = 0; +static const long asn_VAL_297_optional = 0; +static const asn_ioc_cell_t asn_IOS_PWSFailureIndicationIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_296_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_296_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_296_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_297_id_PWS_Failed_NR_CGI_List }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_297_reject }, + { "&Value", aioc__type, &asn_DEF_PWS_Failed_NR_CGI_List }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_297_optional } +}; +static const asn_ioc_set_t asn_IOS_PWSFailureIndicationIEs_1[] = { + { 2, 4, asn_IOS_PWSFailureIndicationIEs_1_rows } +}; +static const long asn_VAL_299_id_TransactionID = 78; +static const long asn_VAL_299_reject = 0; +static const long asn_VAL_299_mandatory = 2; +static const long asn_VAL_300_id_GNBDUOverloadInformation = 172; +static const long asn_VAL_300_reject = 0; +static const long asn_VAL_300_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_GNBDUStatusIndicationIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_299_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_299_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_299_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_300_id_GNBDUOverloadInformation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_300_reject }, + { "&Value", aioc__type, &asn_DEF_GNBDUOverloadInformation }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_300_mandatory } +}; +static const asn_ioc_set_t asn_IOS_GNBDUStatusIndicationIEs_1[] = { + { 2, 4, asn_IOS_GNBDUStatusIndicationIEs_1_rows } +}; +static const long asn_VAL_301_id_gNB_CU_UE_F1AP_ID = 40; +static const long asn_VAL_301_reject = 0; +static const long asn_VAL_301_mandatory = 2; +static const long asn_VAL_302_id_gNB_DU_UE_F1AP_ID = 41; +static const long asn_VAL_302_reject = 0; +static const long asn_VAL_302_mandatory = 2; +static const long asn_VAL_303_id_RRCDeliveryStatus = 185; +static const long asn_VAL_303_ignore = 1; +static const long asn_VAL_303_mandatory = 2; +static const long asn_VAL_304_id_SRBID = 64; +static const long asn_VAL_304_ignore = 1; +static const long asn_VAL_304_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RRCDeliveryReportIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_301_id_gNB_CU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_301_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_CU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_301_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_302_id_gNB_DU_UE_F1AP_ID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_302_reject }, + { "&Value", aioc__type, &asn_DEF_GNB_DU_UE_F1AP_ID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_302_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_303_id_RRCDeliveryStatus }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_303_ignore }, + { "&Value", aioc__type, &asn_DEF_RRCDeliveryStatus }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_303_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_304_id_SRBID }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_304_ignore }, + { "&Value", aioc__type, &asn_DEF_SRBID }, + { "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_304_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RRCDeliveryReportIEs_1[] = { + { 4, 4, asn_IOS_RRCDeliveryReportIEs_1_rows } +}; +static int +memb_id_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_5(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_5(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_value_constraint_5(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_9(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_UE_associatedLogicalF1_ConnectionItemRes_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UE_associatedLogicalF1_ConnectionItemRes_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UE_associatedLogicalF1_ConnectionItemRes, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_9(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_UE_associatedLogicalF1_ConnectionItemRes_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UE_associatedLogicalF1_ConnectionItemRes_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UE_associatedLogicalF1_ConnectionItemRes, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_9(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_UE_associatedLogicalF1_ConnectionItemResAck_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UE_associatedLogicalF1_ConnectionItemResAck_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UE_associatedLogicalF1_ConnectionItemResAck, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_UE_associatedLogicalF1_ConnectionItemResAck_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UE_associatedLogicalF1_ConnectionItemResAck_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UE_associatedLogicalF1_ConnectionItemResAck, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_GNB_DU_Served_Cells_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNB_DU_Served_Cells_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNB_DU_Served_Cells_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_GNB_DU_Served_Cells_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNB_DU_Served_Cells_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNB_DU_Served_Cells_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Cells_to_be_Activated_List_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Cells_to_be_Activated_List_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Cells_to_be_Activated_List_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_Cells_to_be_Activated_List_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Cells_to_be_Activated_List_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Cells_to_be_Activated_List_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Served_Cells_To_Add_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Served_Cells_To_Add_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Served_Cells_To_Add_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_Served_Cells_To_Add_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Served_Cells_To_Add_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Served_Cells_To_Add_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Served_Cells_To_Modify_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Served_Cells_To_Modify_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Served_Cells_To_Modify_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_Served_Cells_To_Modify_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Served_Cells_To_Modify_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Served_Cells_To_Modify_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Served_Cells_To_Delete_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Served_Cells_To_Delete_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Served_Cells_To_Delete_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_Served_Cells_To_Delete_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Served_Cells_To_Delete_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Served_Cells_To_Delete_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Cells_Status_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Cells_Status_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Cells_Status_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_Cells_Status_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Cells_Status_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Cells_Status_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Dedicated_SIDelivery_NeededUE_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Dedicated_SIDelivery_NeededUE_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Dedicated_SIDelivery_NeededUE_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_Dedicated_SIDelivery_NeededUE_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Dedicated_SIDelivery_NeededUE_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Dedicated_SIDelivery_NeededUE_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Cells_to_be_Deactivated_List_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Cells_to_be_Deactivated_List_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Cells_to_be_Deactivated_List_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_Cells_to_be_Deactivated_List_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Cells_to_be_Deactivated_List_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Cells_to_be_Deactivated_List_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_GNB_CU_TNL_Association_To_Add_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNB_CU_TNL_Association_To_Add_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNB_CU_TNL_Association_To_Add_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_GNB_CU_TNL_Association_To_Add_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNB_CU_TNL_Association_To_Add_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNB_CU_TNL_Association_To_Add_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_GNB_CU_TNL_Association_To_Remove_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNB_CU_TNL_Association_To_Remove_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNB_CU_TNL_Association_To_Remove_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_GNB_CU_TNL_Association_To_Remove_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNB_CU_TNL_Association_To_Remove_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNB_CU_TNL_Association_To_Remove_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_GNB_CU_TNL_Association_To_Update_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNB_CU_TNL_Association_To_Update_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNB_CU_TNL_Association_To_Update_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_GNB_CU_TNL_Association_To_Update_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNB_CU_TNL_Association_To_Update_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNB_CU_TNL_Association_To_Update_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Cells_to_be_Barred_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Cells_to_be_Barred_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Cells_to_be_Barred_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_Cells_to_be_Barred_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Cells_to_be_Barred_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Cells_to_be_Barred_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Protected_EUTRA_Resources_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Protected_EUTRA_Resources_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Protected_EUTRA_Resources_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_Protected_EUTRA_Resources_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Protected_EUTRA_Resources_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Protected_EUTRA_Resources_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Cells_Failed_to_be_Activated_List_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Cells_Failed_to_be_Activated_List_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Cells_Failed_to_be_Activated_List_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_Cells_Failed_to_be_Activated_List_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Cells_Failed_to_be_Activated_List_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Cells_Failed_to_be_Activated_List_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_GNB_CU_TNL_Association_Setup_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNB_CU_TNL_Association_Setup_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNB_CU_TNL_Association_Setup_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_GNB_CU_TNL_Association_Setup_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNB_CU_TNL_Association_Setup_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNB_CU_TNL_Association_Setup_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Candidate_SpCell_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Candidate_SpCell_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Candidate_SpCell_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_Candidate_SpCell_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Candidate_SpCell_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Candidate_SpCell_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_SCell_ToBeSetup_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SCell_ToBeSetup_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SCell_ToBeSetup_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_SCell_ToBeSetup_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SCell_ToBeSetup_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SCell_ToBeSetup_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_SRBs_ToBeSetup_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SRBs_ToBeSetup_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SRBs_ToBeSetup_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_SRBs_ToBeSetup_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SRBs_ToBeSetup_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SRBs_ToBeSetup_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_DRBs_ToBeSetup_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_ToBeSetup_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_ToBeSetup_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_DRBs_ToBeSetup_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_ToBeSetup_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_ToBeSetup_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_DRBs_Setup_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_Setup_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_Setup_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_DRBs_Setup_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_Setup_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_Setup_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_SRBs_FailedToBeSetup_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SRBs_FailedToBeSetup_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SRBs_FailedToBeSetup_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_SRBs_FailedToBeSetup_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SRBs_FailedToBeSetup_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SRBs_FailedToBeSetup_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_105(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_DRBs_FailedToBeSetup_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_FailedToBeSetup_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_FailedToBeSetup_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_105(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_DRBs_FailedToBeSetup_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_FailedToBeSetup_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_FailedToBeSetup_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_105(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_109(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_SCell_FailedtoSetup_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SCell_FailedtoSetup_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SCell_FailedtoSetup_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_109(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_SCell_FailedtoSetup_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SCell_FailedtoSetup_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SCell_FailedtoSetup_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_109(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_113(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_SRBs_Setup_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SRBs_Setup_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SRBs_Setup_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_113(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_SRBs_Setup_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SRBs_Setup_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SRBs_Setup_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_113(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_117(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Potential_SpCell_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Potential_SpCell_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Potential_SpCell_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_117(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_Potential_SpCell_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Potential_SpCell_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Potential_SpCell_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_117(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_121(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_SCell_ToBeSetupMod_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SCell_ToBeSetupMod_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SCell_ToBeSetupMod_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_121(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_SCell_ToBeSetupMod_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SCell_ToBeSetupMod_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SCell_ToBeSetupMod_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_121(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_125(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_SCell_ToBeRemoved_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SCell_ToBeRemoved_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SCell_ToBeRemoved_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_125(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_SCell_ToBeRemoved_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SCell_ToBeRemoved_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SCell_ToBeRemoved_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_125(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_129(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_SRBs_ToBeSetupMod_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SRBs_ToBeSetupMod_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SRBs_ToBeSetupMod_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_129(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_SRBs_ToBeSetupMod_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SRBs_ToBeSetupMod_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SRBs_ToBeSetupMod_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_129(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_133(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_DRBs_ToBeSetupMod_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_ToBeSetupMod_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_ToBeSetupMod_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_133(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_DRBs_ToBeSetupMod_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_ToBeSetupMod_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_ToBeSetupMod_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_133(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_137(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_DRBs_ToBeModified_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_ToBeModified_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_ToBeModified_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_137(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_DRBs_ToBeModified_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_ToBeModified_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_ToBeModified_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_137(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_141(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_SRBs_ToBeReleased_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SRBs_ToBeReleased_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SRBs_ToBeReleased_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_141(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_SRBs_ToBeReleased_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SRBs_ToBeReleased_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SRBs_ToBeReleased_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_141(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_145(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_DRBs_ToBeReleased_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_ToBeReleased_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_ToBeReleased_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_145(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_DRBs_ToBeReleased_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_ToBeReleased_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_ToBeReleased_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_145(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_149(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_DRBs_SetupMod_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_SetupMod_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_SetupMod_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_149(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_DRBs_SetupMod_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_SetupMod_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_SetupMod_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_149(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_153(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_DRBs_Modified_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_Modified_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_Modified_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_153(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_DRBs_Modified_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_Modified_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_Modified_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_153(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_157(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_SRBs_SetupMod_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SRBs_SetupMod_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SRBs_SetupMod_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_157(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_SRBs_SetupMod_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SRBs_SetupMod_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SRBs_SetupMod_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_157(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_161(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_SRBs_Modified_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SRBs_Modified_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SRBs_Modified_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_161(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_SRBs_Modified_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SRBs_Modified_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SRBs_Modified_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_161(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_165(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_DRBs_FailedToBeModified_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_FailedToBeModified_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_FailedToBeModified_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_165(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_DRBs_FailedToBeModified_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_FailedToBeModified_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_FailedToBeModified_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_165(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_169(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_SRBs_FailedToBeSetupMod_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SRBs_FailedToBeSetupMod_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SRBs_FailedToBeSetupMod_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_169(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_SRBs_FailedToBeSetupMod_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SRBs_FailedToBeSetupMod_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SRBs_FailedToBeSetupMod_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_169(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_173(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_DRBs_FailedToBeSetupMod_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_FailedToBeSetupMod_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_FailedToBeSetupMod_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_173(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_DRBs_FailedToBeSetupMod_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_FailedToBeSetupMod_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_FailedToBeSetupMod_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_173(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_177(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_SCell_FailedtoSetupMod_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SCell_FailedtoSetupMod_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SCell_FailedtoSetupMod_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_177(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_SCell_FailedtoSetupMod_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SCell_FailedtoSetupMod_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SCell_FailedtoSetupMod_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_177(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_181(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Associated_SCell_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Associated_SCell_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Associated_SCell_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_181(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_Associated_SCell_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Associated_SCell_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Associated_SCell_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_181(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_185(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_DRBs_Required_ToBeModified_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_Required_ToBeModified_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_Required_ToBeModified_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_185(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_DRBs_Required_ToBeModified_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_Required_ToBeModified_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_Required_ToBeModified_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_185(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_189(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_DRBs_Required_ToBeReleased_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_Required_ToBeReleased_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_Required_ToBeReleased_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_189(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_DRBs_Required_ToBeReleased_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_Required_ToBeReleased_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_Required_ToBeReleased_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_189(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_193(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_SRBs_Required_ToBeReleased_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SRBs_Required_ToBeReleased_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SRBs_Required_ToBeReleased_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_193(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_SRBs_Required_ToBeReleased_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SRBs_Required_ToBeReleased_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SRBs_Required_ToBeReleased_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_193(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_197(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_DRBs_ModifiedConf_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_ModifiedConf_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_ModifiedConf_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_197(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_DRBs_ModifiedConf_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRBs_ModifiedConf_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRBs_ModifiedConf_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_197(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_201(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Cells_To_Be_Broadcast_List_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Cells_To_Be_Broadcast_List_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Cells_To_Be_Broadcast_List_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_201(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_Cells_To_Be_Broadcast_List_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Cells_To_Be_Broadcast_List_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Cells_To_Be_Broadcast_List_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_201(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_205(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Cells_Broadcast_Completed_List_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Cells_Broadcast_Completed_List_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Cells_Broadcast_Completed_List_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_205(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_Cells_Broadcast_Completed_List_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Cells_Broadcast_Completed_List_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Cells_Broadcast_Completed_List_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_205(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_209(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Broadcast_To_Be_Cancelled_List_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Broadcast_To_Be_Cancelled_List_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Broadcast_To_Be_Cancelled_List_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_209(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_Broadcast_To_Be_Cancelled_List_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Broadcast_To_Be_Cancelled_List_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Broadcast_To_Be_Cancelled_List_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_209(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_213(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_Cells_Broadcast_Cancelled_List_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Cells_Broadcast_Cancelled_List_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Cells_Broadcast_Cancelled_List_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_213(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_Cells_Broadcast_Cancelled_List_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_Cells_Broadcast_Cancelled_List_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct Cells_Broadcast_Cancelled_List_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_213(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_217(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_DRB_Activity_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRB_Activity_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRB_Activity_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_217(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_DRB_Activity_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRB_Activity_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRB_Activity_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_217(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_221(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_PagingCell_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_PagingCell_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct PagingCell_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_221(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_PagingCell_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_PagingCell_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct PagingCell_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_221(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_225(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_DRB_Notify_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRB_Notify_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRB_Notify_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_225(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_DRB_Notify_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DRB_Notify_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DRB_Notify_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_225(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_229(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_NR_CGI_List_For_Restart_List_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_NR_CGI_List_For_Restart_List_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct NR_CGI_List_For_Restart_List_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_229(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_NR_CGI_List_For_Restart_List_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_NR_CGI_List_For_Restart_List_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct NR_CGI_List_For_Restart_List_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_229(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_233(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_PWS_Failed_NR_CGI_List_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_PWS_Failed_NR_CGI_List_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct PWS_Failed_NR_CGI_List_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_233(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_PWS_Failed_NR_CGI_List_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_PWS_Failed_NR_CGI_List_ItemIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct PWS_Failed_NR_CGI_List_ItemIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_233(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_237(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_237(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_value_constraint_237(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_241(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_241(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_value_constraint_241(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_245(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_245(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_value_constraint_245(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_249(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_249(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_value_constraint_249(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_253(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_253(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_value_constraint_253(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_257(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_257(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_value_constraint_257(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_261(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_261(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_value_constraint_261(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_265(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_QoSInformation_ExtIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_QoSInformation_ExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct QoSInformation_ExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_265(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_QoSInformation_ExtIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_QoSInformation_ExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct QoSInformation_ExtIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_265(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_269(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_269(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_value_constraint_269(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_273(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_273(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_value_constraint_273(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_277(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_criticality_constraint_277(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_value_constraint_277(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_281(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_ResetIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ResetIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_281(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_ResetIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ResetIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_281(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_285(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_ResetAcknowledgeIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ResetAcknowledgeIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetAcknowledgeIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_285(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_ResetAcknowledgeIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ResetAcknowledgeIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetAcknowledgeIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_285(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_289(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_ErrorIndicationIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ErrorIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_289(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_ErrorIndicationIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ErrorIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_289(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_293(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_F1SetupRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_F1SetupRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct F1SetupRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_293(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_F1SetupRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_F1SetupRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct F1SetupRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_293(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_297(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_F1SetupResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_F1SetupResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct F1SetupResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_297(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_F1SetupResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_F1SetupResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct F1SetupResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_297(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_301(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_F1SetupFailureIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_F1SetupFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct F1SetupFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_301(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_F1SetupFailureIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_F1SetupFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct F1SetupFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_301(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_305(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_GNBDUConfigurationUpdateIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNBDUConfigurationUpdateIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNBDUConfigurationUpdateIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_305(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_GNBDUConfigurationUpdateIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNBDUConfigurationUpdateIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNBDUConfigurationUpdateIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_305(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_309(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_GNBDUConfigurationUpdateAcknowledgeIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNBDUConfigurationUpdateAcknowledgeIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNBDUConfigurationUpdateAcknowledgeIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_309(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_GNBDUConfigurationUpdateAcknowledgeIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNBDUConfigurationUpdateAcknowledgeIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNBDUConfigurationUpdateAcknowledgeIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_309(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_313(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_GNBDUConfigurationUpdateFailureIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNBDUConfigurationUpdateFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNBDUConfigurationUpdateFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_313(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_GNBDUConfigurationUpdateFailureIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNBDUConfigurationUpdateFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNBDUConfigurationUpdateFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_313(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_317(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_GNBCUConfigurationUpdateIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNBCUConfigurationUpdateIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNBCUConfigurationUpdateIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_317(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_GNBCUConfigurationUpdateIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNBCUConfigurationUpdateIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNBCUConfigurationUpdateIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_317(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_321(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_GNBCUConfigurationUpdateAcknowledgeIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNBCUConfigurationUpdateAcknowledgeIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNBCUConfigurationUpdateAcknowledgeIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_321(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_GNBCUConfigurationUpdateAcknowledgeIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNBCUConfigurationUpdateAcknowledgeIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNBCUConfigurationUpdateAcknowledgeIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_321(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_325(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_GNBCUConfigurationUpdateFailureIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNBCUConfigurationUpdateFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNBCUConfigurationUpdateFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_325(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_GNBCUConfigurationUpdateFailureIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNBCUConfigurationUpdateFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNBCUConfigurationUpdateFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_325(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_329(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_GNBDUResourceCoordinationRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNBDUResourceCoordinationRequest_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNBDUResourceCoordinationRequest_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_329(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_GNBDUResourceCoordinationRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNBDUResourceCoordinationRequest_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNBDUResourceCoordinationRequest_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_329(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_333(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_GNBDUResourceCoordinationResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNBDUResourceCoordinationResponse_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNBDUResourceCoordinationResponse_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_333(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_GNBDUResourceCoordinationResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNBDUResourceCoordinationResponse_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNBDUResourceCoordinationResponse_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_333(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_337(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_UEContextSetupRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UEContextSetupRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextSetupRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_337(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_UEContextSetupRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UEContextSetupRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextSetupRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_337(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_341(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_UEContextSetupResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UEContextSetupResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextSetupResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_341(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_UEContextSetupResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UEContextSetupResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextSetupResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_341(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_345(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_UEContextSetupFailureIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UEContextSetupFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextSetupFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_345(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_UEContextSetupFailureIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UEContextSetupFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextSetupFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_345(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_349(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_UEContextReleaseRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UEContextReleaseRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextReleaseRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_349(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_UEContextReleaseRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UEContextReleaseRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextReleaseRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_349(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_353(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_UEContextReleaseCommandIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UEContextReleaseCommandIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextReleaseCommandIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_353(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_UEContextReleaseCommandIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UEContextReleaseCommandIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextReleaseCommandIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_353(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_357(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_UEContextReleaseCompleteIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UEContextReleaseCompleteIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextReleaseCompleteIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_357(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_UEContextReleaseCompleteIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UEContextReleaseCompleteIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextReleaseCompleteIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_357(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_361(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_UEContextModificationRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UEContextModificationRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextModificationRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_361(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_UEContextModificationRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UEContextModificationRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextModificationRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_361(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_365(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_UEContextModificationResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UEContextModificationResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextModificationResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_365(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_UEContextModificationResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UEContextModificationResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextModificationResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_365(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_369(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_UEContextModificationFailureIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UEContextModificationFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextModificationFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_369(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_UEContextModificationFailureIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UEContextModificationFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextModificationFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_369(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_373(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_UEContextModificationRequiredIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UEContextModificationRequiredIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextModificationRequiredIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_373(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_UEContextModificationRequiredIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UEContextModificationRequiredIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextModificationRequiredIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_373(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_377(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_UEContextModificationConfirmIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UEContextModificationConfirmIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextModificationConfirmIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_377(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_UEContextModificationConfirmIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UEContextModificationConfirmIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextModificationConfirmIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_377(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_381(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_UEContextModificationRefuseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UEContextModificationRefuseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextModificationRefuseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_381(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_UEContextModificationRefuseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UEContextModificationRefuseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextModificationRefuseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_381(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_385(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_WriteReplaceWarningRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_WriteReplaceWarningRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct WriteReplaceWarningRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_385(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_WriteReplaceWarningRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_WriteReplaceWarningRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct WriteReplaceWarningRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_385(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_389(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_WriteReplaceWarningResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_WriteReplaceWarningResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct WriteReplaceWarningResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_389(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_WriteReplaceWarningResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_WriteReplaceWarningResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct WriteReplaceWarningResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_389(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_393(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_PWSCancelRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_PWSCancelRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct PWSCancelRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_393(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_PWSCancelRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_PWSCancelRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct PWSCancelRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_393(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_397(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_PWSCancelResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_PWSCancelResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct PWSCancelResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_397(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_PWSCancelResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_PWSCancelResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct PWSCancelResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_397(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_401(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_UEInactivityNotificationIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UEInactivityNotificationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEInactivityNotificationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_401(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_UEInactivityNotificationIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_UEInactivityNotificationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEInactivityNotificationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_401(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_405(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_InitialULRRCMessageTransferIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_InitialULRRCMessageTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct InitialULRRCMessageTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_405(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_InitialULRRCMessageTransferIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_InitialULRRCMessageTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct InitialULRRCMessageTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_405(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_409(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_DLRRCMessageTransferIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DLRRCMessageTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DLRRCMessageTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_409(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_DLRRCMessageTransferIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_DLRRCMessageTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DLRRCMessageTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_409(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_413(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_ULRRCMessageTransferIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ULRRCMessageTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ULRRCMessageTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_413(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_ULRRCMessageTransferIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ULRRCMessageTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ULRRCMessageTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_413(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_417(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_SystemInformationDeliveryCommandIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SystemInformationDeliveryCommandIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SystemInformationDeliveryCommandIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_417(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_SystemInformationDeliveryCommandIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_SystemInformationDeliveryCommandIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SystemInformationDeliveryCommandIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_417(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_421(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_PagingIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_PagingIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct PagingIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_421(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_PagingIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_PagingIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct PagingIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_421(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_425(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_NotifyIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_NotifyIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct NotifyIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_425(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_NotifyIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_NotifyIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct NotifyIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_425(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_429(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_PWSRestartIndicationIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_PWSRestartIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct PWSRestartIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_429(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_PWSRestartIndicationIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_PWSRestartIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct PWSRestartIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_429(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_433(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_PWSFailureIndicationIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_PWSFailureIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct PWSFailureIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_433(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_PWSFailureIndicationIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_PWSFailureIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct PWSFailureIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_433(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_437(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_GNBDUStatusIndicationIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNBDUStatusIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNBDUStatusIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_437(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_GNBDUStatusIndicationIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_GNBDUStatusIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GNBDUStatusIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_437(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_441(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_RRCDeliveryReportIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RRCDeliveryReportIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RRCDeliveryReportIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_441(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_RRCDeliveryReportIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RRCDeliveryReportIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RRCDeliveryReportIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_441(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_oer_constraints_t asn_OER_memb_id_constr_2 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_6 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_10 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_14 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_16 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_16 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_18 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_18 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_19 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_19 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_20 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_20 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_22 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_22 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_23 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_23 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_24 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_24 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_26 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_26 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_27 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_27 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_28 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_28 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_30 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_30 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_31 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_31 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_32 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_32 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_34 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_34 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_35 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_35 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_36 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_36 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_38 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_38 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_39 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_39 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_40 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_40 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_42 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_42 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_43 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_43 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_44 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_44 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_46 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_46 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_47 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_47 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_48 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_48 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_50 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_50 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_51 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_51 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_52 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_52 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_54 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_54 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_55 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_55 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_56 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_56 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_58 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_58 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_59 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_59 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_60 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_60 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_62 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_62 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_63 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_63 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_64 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_64 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_66 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_66 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_67 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_67 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_68 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_68 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_70 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_70 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_71 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_71 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_72 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_72 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_74 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_74 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_75 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_75 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_76 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_76 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_78 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_78 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_79 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_79 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_80 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_80 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_82 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_82 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_83 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_83 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_84 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_84 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_86 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_86 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_87 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_87 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_88 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_88 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_90 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_90 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_91 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_91 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_92 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_92 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_94 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_94 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_95 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_95 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_96 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_96 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_98 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_98 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_99 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_99 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_100 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_100 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_102 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_102 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_103 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_103 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_104 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_104 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_106 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_106 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_107 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_107 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_108 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_108 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_110 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_110 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_111 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_111 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_112 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_112 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_114 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_114 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_115 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_115 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_116 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_116 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_118 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_118 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_119 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_119 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_120 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_120 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_122 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_122 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_123 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_123 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_124 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_124 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_126 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_126 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_127 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_127 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_128 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_128 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_130 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_130 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_131 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_131 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_132 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_132 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_134 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_134 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_135 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_135 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_136 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_136 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_138 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_138 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_139 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_139 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_140 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_140 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_142 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_142 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_143 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_143 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_144 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_144 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_146 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_146 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_147 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_147 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_148 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_148 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_150 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_150 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_151 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_151 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_152 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_152 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_154 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_154 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_155 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_155 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_156 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_156 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_158 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_158 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_159 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_159 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_160 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_160 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_162 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_162 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_163 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_163 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_164 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_164 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_166 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_166 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_167 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_167 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_168 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_168 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_170 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_170 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_171 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_171 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_172 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_172 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_174 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_174 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_175 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_175 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_176 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_176 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_178 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_178 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_179 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_179 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_180 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_180 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_182 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_182 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_183 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_183 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_184 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_184 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_186 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_186 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_187 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_187 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_188 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_188 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_190 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_190 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_191 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_191 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_192 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_192 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_194 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_194 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_195 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_195 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_196 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_196 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_198 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_198 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_199 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_199 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_200 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_200 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_202 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_202 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_203 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_203 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_204 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_204 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_206 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_206 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_207 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_207 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_208 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_208 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_210 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_210 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_211 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_211 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_212 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_212 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_214 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_214 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_215 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_215 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_216 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_216 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_218 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_218 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_219 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_219 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_220 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_220 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_222 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_222 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_223 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_223 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_224 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_224 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_226 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_226 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_227 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_227 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_228 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_228 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_230 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_230 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_231 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_231 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_232 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_232 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_234 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_234 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_235 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_235 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_236 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_236 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_238 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_238 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_239 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_239 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_240 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_240 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_242 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_242 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_243 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_243 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_244 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_244 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_246 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_246 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_247 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_247 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_248 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_248 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_250 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_250 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_251 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_251 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_252 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_252 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_254 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_254 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_255 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_255 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_256 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_256 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_258 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_258 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_259 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_259 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_260 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_260 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_262 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_262 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_263 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_263 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_264 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_264 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_266 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_266 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_267 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_267 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_268 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_268 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_270 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_270 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_271 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_271 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_272 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_272 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_274 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_274 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_275 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_275 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_276 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_276 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_278 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_278 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_279 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_279 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_280 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_280 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_282 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_282 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_283 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_283 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_284 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_284 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_286 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_286 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_287 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_287 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_288 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_288 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_290 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_290 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_291 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_291 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_292 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_292 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_294 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_294 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_295 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_295 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_296 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_296 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_298 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_298 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_299 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_299 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_300 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_300 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_302 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_302 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_303 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_303 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_304 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_304 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_306 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_306 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_307 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_307 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_308 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_308 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_310 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_310 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_311 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_311 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_312 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_312 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_314 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_314 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_315 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_315 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_316 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_316 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_318 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_318 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_319 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_319 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_320 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_320 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_322 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_322 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_323 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_323 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_324 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_324 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_326 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_326 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_327 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_327 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_328 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_328 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_330 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_330 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_331 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_331 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_332 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_332 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_334 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_334 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_335 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_335 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_336 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_336 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_338 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_338 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_339 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_339 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_340 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_340 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_342 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_342 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_343 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_343 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_344 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_344 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_346 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_346 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_347 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_347 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_348 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_348 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_350 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_350 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_351 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_351 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_352 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_352 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_354 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_354 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_355 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_355 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_356 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_356 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_358 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_358 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_359 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_359 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_360 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_360 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_362 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_362 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_363 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_363 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_364 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_364 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_366 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_366 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_367 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_367 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_368 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_368 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_370 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_370 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_371 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_371 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_372 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_372 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_374 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_374 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_375 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_375 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_376 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_376 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_378 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_378 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_379 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_379 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_380 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_380 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_382 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_382 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_383 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_383 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_384 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_384 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_386 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_386 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_387 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_387 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_388 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_388 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_390 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_390 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_391 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_391 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_392 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_392 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_394 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_394 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_395 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_395 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_396 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_396 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_398 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_398 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_399 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_399 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_400 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_400 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_402 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_402 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_403 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_403 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_404 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_404 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_406 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_406 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_407 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_407 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_408 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_408 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_410 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_410 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_411 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_411 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_412 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_412 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_414 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_414 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_415 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_415 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_416 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_416 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_418 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_418 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_419 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_419 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_420 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_420 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_422 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_422 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_423 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_423 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_424 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_424 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_426 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_426 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_427 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_427 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_428 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_428 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_430 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_430 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_431 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_431 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_432 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_432 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_434 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_434 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_435 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_435 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_436 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_436 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_438 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_438 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_439 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_439 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_440 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_440 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_442 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_442 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_443 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_443 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_444 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_444 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { + sizeof(struct F1AP_PDU_ExtIEs__value), + offsetof(struct F1AP_PDU_ExtIEs__value, _asn_ctx), + offsetof(struct F1AP_PDU_ExtIEs__value, present), + sizeof(((struct F1AP_PDU_ExtIEs__value *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_4 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_value_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_F1AP_PDU_ExtIEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct F1AP_PDU_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_2, &asn_PER_memb_id_constr_2, memb_id_constraint_1 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct F1AP_PDU_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &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 F1AP_PDU_ExtIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_4, + 0, + { &asn_OER_memb_value_constr_4, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_F1AP_PDU_ExtIEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_F1AP_PDU_ExtIEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_F1AP_PDU_ExtIEs_specs_1 = { + sizeof(struct F1AP_PDU_ExtIEs), + offsetof(struct F1AP_PDU_ExtIEs, _asn_ctx), + asn_MAP_F1AP_PDU_ExtIEs_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_F1AP_PDU_ExtIEs = { + "F1AP-PDU-ExtIEs", + "F1AP-PDU-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_F1AP_PDU_ExtIEs_tags_1, + sizeof(asn_DEF_F1AP_PDU_ExtIEs_tags_1) + /sizeof(asn_DEF_F1AP_PDU_ExtIEs_tags_1[0]), /* 1 */ + asn_DEF_F1AP_PDU_ExtIEs_tags_1, /* Same as above */ + sizeof(asn_DEF_F1AP_PDU_ExtIEs_tags_1) + /sizeof(asn_DEF_F1AP_PDU_ExtIEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_F1AP_PDU_ExtIEs_1, + 3, /* Elements count */ + &asn_SPC_F1AP_PDU_ExtIEs_specs_1 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_value_specs_8 = { + sizeof(struct ResetType_ExtIEs__value), + offsetof(struct ResetType_ExtIEs__value, _asn_ctx), + offsetof(struct ResetType_ExtIEs__value, present), + sizeof(((struct ResetType_ExtIEs__value *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_8 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_value_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ResetType_ExtIEs_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct ResetType_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_6, &asn_PER_memb_id_constr_6, memb_id_constraint_5 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ResetType_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &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 ResetType_ExtIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_8, + 0, + { &asn_OER_memb_value_constr_8, &asn_PER_memb_value_constr_8, memb_value_constraint_5 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ResetType_ExtIEs_tags_5[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ResetType_ExtIEs_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ResetType_ExtIEs_specs_5 = { + sizeof(struct ResetType_ExtIEs), + offsetof(struct ResetType_ExtIEs, _asn_ctx), + asn_MAP_ResetType_ExtIEs_tag2el_5, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ResetType_ExtIEs = { + "ResetType-ExtIEs", + "ResetType-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ResetType_ExtIEs_tags_5, + sizeof(asn_DEF_ResetType_ExtIEs_tags_5) + /sizeof(asn_DEF_ResetType_ExtIEs_tags_5[0]), /* 1 */ + asn_DEF_ResetType_ExtIEs_tags_5, /* Same as above */ + sizeof(asn_DEF_ResetType_ExtIEs_tags_5) + /sizeof(asn_DEF_ResetType_ExtIEs_tags_5[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ResetType_ExtIEs_5, + 3, /* Elements count */ + &asn_SPC_ResetType_ExtIEs_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_12[] = { + { ATF_NOFLAGS, 0, offsetof(struct UE_associatedLogicalF1_ConnectionItemRes__value, choice.UE_associatedLogicalF1_ConnectionItem), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UE_associatedLogicalF1_ConnectionItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UE-associatedLogicalF1-ConnectionItem" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_12[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* UE-associatedLogicalF1-ConnectionItem */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_12 = { + sizeof(struct UE_associatedLogicalF1_ConnectionItemRes__value), + offsetof(struct UE_associatedLogicalF1_ConnectionItemRes__value, _asn_ctx), + offsetof(struct UE_associatedLogicalF1_ConnectionItemRes__value, present), + sizeof(((struct UE_associatedLogicalF1_ConnectionItemRes__value *)0)->present), + asn_MAP_value_tag2el_12, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_12 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_12, + 1, /* Elements count */ + &asn_SPC_value_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UE_associatedLogicalF1_ConnectionItemRes_9[] = { + { ATF_NOFLAGS, 0, offsetof(struct UE_associatedLogicalF1_ConnectionItemRes, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_10, &asn_PER_memb_id_constr_10, memb_id_constraint_9 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct UE_associatedLogicalF1_ConnectionItemRes, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_UE_associatedLogicalF1_ConnectionItemRes_criticality_type, + { &asn_OER_memb_criticality_constr_11, &asn_PER_memb_criticality_constr_11, memb_criticality_constraint_9 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UE_associatedLogicalF1_ConnectionItemRes, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_12, + select_UE_associatedLogicalF1_ConnectionItemRes_value_type, + { &asn_OER_memb_value_constr_12, &asn_PER_memb_value_constr_12, memb_value_constraint_9 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_UE_associatedLogicalF1_ConnectionItemRes_tags_9[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UE_associatedLogicalF1_ConnectionItemRes_tag2el_9[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UE_associatedLogicalF1_ConnectionItemRes_specs_9 = { + sizeof(struct UE_associatedLogicalF1_ConnectionItemRes), + offsetof(struct UE_associatedLogicalF1_ConnectionItemRes, _asn_ctx), + asn_MAP_UE_associatedLogicalF1_ConnectionItemRes_tag2el_9, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UE_associatedLogicalF1_ConnectionItemRes = { + "UE-associatedLogicalF1-ConnectionItemRes", + "UE-associatedLogicalF1-ConnectionItemRes", + &asn_OP_SEQUENCE, + asn_DEF_UE_associatedLogicalF1_ConnectionItemRes_tags_9, + sizeof(asn_DEF_UE_associatedLogicalF1_ConnectionItemRes_tags_9) + /sizeof(asn_DEF_UE_associatedLogicalF1_ConnectionItemRes_tags_9[0]), /* 1 */ + asn_DEF_UE_associatedLogicalF1_ConnectionItemRes_tags_9, /* Same as above */ + sizeof(asn_DEF_UE_associatedLogicalF1_ConnectionItemRes_tags_9) + /sizeof(asn_DEF_UE_associatedLogicalF1_ConnectionItemRes_tags_9[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UE_associatedLogicalF1_ConnectionItemRes_9, + 3, /* Elements count */ + &asn_SPC_UE_associatedLogicalF1_ConnectionItemRes_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_16[] = { + { ATF_NOFLAGS, 0, offsetof(struct UE_associatedLogicalF1_ConnectionItemResAck__value, choice.UE_associatedLogicalF1_ConnectionItem), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UE_associatedLogicalF1_ConnectionItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UE-associatedLogicalF1-ConnectionItem" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_16[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* UE-associatedLogicalF1-ConnectionItem */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_16 = { + sizeof(struct UE_associatedLogicalF1_ConnectionItemResAck__value), + offsetof(struct UE_associatedLogicalF1_ConnectionItemResAck__value, _asn_ctx), + offsetof(struct UE_associatedLogicalF1_ConnectionItemResAck__value, present), + sizeof(((struct UE_associatedLogicalF1_ConnectionItemResAck__value *)0)->present), + asn_MAP_value_tag2el_16, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_16 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_16, + 1, /* Elements count */ + &asn_SPC_value_specs_16 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UE_associatedLogicalF1_ConnectionItemResAck_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct UE_associatedLogicalF1_ConnectionItemResAck, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_14, &asn_PER_memb_id_constr_14, memb_id_constraint_13 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct UE_associatedLogicalF1_ConnectionItemResAck, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_UE_associatedLogicalF1_ConnectionItemResAck_criticality_type, + { &asn_OER_memb_criticality_constr_15, &asn_PER_memb_criticality_constr_15, memb_criticality_constraint_13 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UE_associatedLogicalF1_ConnectionItemResAck, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_16, + select_UE_associatedLogicalF1_ConnectionItemResAck_value_type, + { &asn_OER_memb_value_constr_16, &asn_PER_memb_value_constr_16, memb_value_constraint_13 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_UE_associatedLogicalF1_ConnectionItemResAck_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UE_associatedLogicalF1_ConnectionItemResAck_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UE_associatedLogicalF1_ConnectionItemResAck_specs_13 = { + sizeof(struct UE_associatedLogicalF1_ConnectionItemResAck), + offsetof(struct UE_associatedLogicalF1_ConnectionItemResAck, _asn_ctx), + asn_MAP_UE_associatedLogicalF1_ConnectionItemResAck_tag2el_13, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UE_associatedLogicalF1_ConnectionItemResAck = { + "UE-associatedLogicalF1-ConnectionItemResAck", + "UE-associatedLogicalF1-ConnectionItemResAck", + &asn_OP_SEQUENCE, + asn_DEF_UE_associatedLogicalF1_ConnectionItemResAck_tags_13, + sizeof(asn_DEF_UE_associatedLogicalF1_ConnectionItemResAck_tags_13) + /sizeof(asn_DEF_UE_associatedLogicalF1_ConnectionItemResAck_tags_13[0]), /* 1 */ + asn_DEF_UE_associatedLogicalF1_ConnectionItemResAck_tags_13, /* Same as above */ + sizeof(asn_DEF_UE_associatedLogicalF1_ConnectionItemResAck_tags_13) + /sizeof(asn_DEF_UE_associatedLogicalF1_ConnectionItemResAck_tags_13[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UE_associatedLogicalF1_ConnectionItemResAck_13, + 3, /* Elements count */ + &asn_SPC_UE_associatedLogicalF1_ConnectionItemResAck_specs_13 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_20[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_DU_Served_Cells_ItemIEs__value, choice.GNB_DU_Served_Cells_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNB_DU_Served_Cells_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-DU-Served-Cells-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_20[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* GNB-DU-Served-Cells-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_20 = { + sizeof(struct GNB_DU_Served_Cells_ItemIEs__value), + offsetof(struct GNB_DU_Served_Cells_ItemIEs__value, _asn_ctx), + offsetof(struct GNB_DU_Served_Cells_ItemIEs__value, present), + sizeof(((struct GNB_DU_Served_Cells_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_20, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_20 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_20, + 1, /* Elements count */ + &asn_SPC_value_specs_20 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GNB_DU_Served_Cells_ItemIEs_17[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_DU_Served_Cells_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_18, &asn_PER_memb_id_constr_18, memb_id_constraint_17 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNB_DU_Served_Cells_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_GNB_DU_Served_Cells_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_19, &asn_PER_memb_criticality_constr_19, memb_criticality_constraint_17 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GNB_DU_Served_Cells_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_20, + select_GNB_DU_Served_Cells_ItemIEs_value_type, + { &asn_OER_memb_value_constr_20, &asn_PER_memb_value_constr_20, memb_value_constraint_17 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNB_DU_Served_Cells_ItemIEs_tags_17[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNB_DU_Served_Cells_ItemIEs_tag2el_17[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNB_DU_Served_Cells_ItemIEs_specs_17 = { + sizeof(struct GNB_DU_Served_Cells_ItemIEs), + offsetof(struct GNB_DU_Served_Cells_ItemIEs, _asn_ctx), + asn_MAP_GNB_DU_Served_Cells_ItemIEs_tag2el_17, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_DU_Served_Cells_ItemIEs = { + "GNB-DU-Served-Cells-ItemIEs", + "GNB-DU-Served-Cells-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_GNB_DU_Served_Cells_ItemIEs_tags_17, + sizeof(asn_DEF_GNB_DU_Served_Cells_ItemIEs_tags_17) + /sizeof(asn_DEF_GNB_DU_Served_Cells_ItemIEs_tags_17[0]), /* 1 */ + asn_DEF_GNB_DU_Served_Cells_ItemIEs_tags_17, /* Same as above */ + sizeof(asn_DEF_GNB_DU_Served_Cells_ItemIEs_tags_17) + /sizeof(asn_DEF_GNB_DU_Served_Cells_ItemIEs_tags_17[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_DU_Served_Cells_ItemIEs_17, + 3, /* Elements count */ + &asn_SPC_GNB_DU_Served_Cells_ItemIEs_specs_17 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_24[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_to_be_Activated_List_ItemIEs__value, choice.Cells_to_be_Activated_List_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_to_be_Activated_List_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cells-to-be-Activated-List-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_24[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Cells-to-be-Activated-List-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_24 = { + sizeof(struct Cells_to_be_Activated_List_ItemIEs__value), + offsetof(struct Cells_to_be_Activated_List_ItemIEs__value, _asn_ctx), + offsetof(struct Cells_to_be_Activated_List_ItemIEs__value, present), + sizeof(((struct Cells_to_be_Activated_List_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_24, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_24 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_24, + 1, /* Elements count */ + &asn_SPC_value_specs_24 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Cells_to_be_Activated_List_ItemIEs_21[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_to_be_Activated_List_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_22, &asn_PER_memb_id_constr_22, memb_id_constraint_21 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cells_to_be_Activated_List_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_Cells_to_be_Activated_List_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_23, &asn_PER_memb_criticality_constr_23, memb_criticality_constraint_21 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Cells_to_be_Activated_List_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_24, + select_Cells_to_be_Activated_List_ItemIEs_value_type, + { &asn_OER_memb_value_constr_24, &asn_PER_memb_value_constr_24, memb_value_constraint_21 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_Cells_to_be_Activated_List_ItemIEs_tags_21[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Cells_to_be_Activated_List_ItemIEs_tag2el_21[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Cells_to_be_Activated_List_ItemIEs_specs_21 = { + sizeof(struct Cells_to_be_Activated_List_ItemIEs), + offsetof(struct Cells_to_be_Activated_List_ItemIEs, _asn_ctx), + asn_MAP_Cells_to_be_Activated_List_ItemIEs_tag2el_21, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_to_be_Activated_List_ItemIEs = { + "Cells-to-be-Activated-List-ItemIEs", + "Cells-to-be-Activated-List-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_Cells_to_be_Activated_List_ItemIEs_tags_21, + sizeof(asn_DEF_Cells_to_be_Activated_List_ItemIEs_tags_21) + /sizeof(asn_DEF_Cells_to_be_Activated_List_ItemIEs_tags_21[0]), /* 1 */ + asn_DEF_Cells_to_be_Activated_List_ItemIEs_tags_21, /* Same as above */ + sizeof(asn_DEF_Cells_to_be_Activated_List_ItemIEs_tags_21) + /sizeof(asn_DEF_Cells_to_be_Activated_List_ItemIEs_tags_21[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_to_be_Activated_List_ItemIEs_21, + 3, /* Elements count */ + &asn_SPC_Cells_to_be_Activated_List_ItemIEs_specs_21 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_28[] = { + { ATF_NOFLAGS, 0, offsetof(struct Served_Cells_To_Add_ItemIEs__value, choice.Served_Cells_To_Add_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Served_Cells_To_Add_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Served-Cells-To-Add-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_28[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Served-Cells-To-Add-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_28 = { + sizeof(struct Served_Cells_To_Add_ItemIEs__value), + offsetof(struct Served_Cells_To_Add_ItemIEs__value, _asn_ctx), + offsetof(struct Served_Cells_To_Add_ItemIEs__value, present), + sizeof(((struct Served_Cells_To_Add_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_28, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_28 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_28, + 1, /* Elements count */ + &asn_SPC_value_specs_28 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Served_Cells_To_Add_ItemIEs_25[] = { + { ATF_NOFLAGS, 0, offsetof(struct Served_Cells_To_Add_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_26, &asn_PER_memb_id_constr_26, memb_id_constraint_25 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Served_Cells_To_Add_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_Served_Cells_To_Add_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_27, &asn_PER_memb_criticality_constr_27, memb_criticality_constraint_25 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Served_Cells_To_Add_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_28, + select_Served_Cells_To_Add_ItemIEs_value_type, + { &asn_OER_memb_value_constr_28, &asn_PER_memb_value_constr_28, memb_value_constraint_25 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_Served_Cells_To_Add_ItemIEs_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Served_Cells_To_Add_ItemIEs_tag2el_25[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Served_Cells_To_Add_ItemIEs_specs_25 = { + sizeof(struct Served_Cells_To_Add_ItemIEs), + offsetof(struct Served_Cells_To_Add_ItemIEs, _asn_ctx), + asn_MAP_Served_Cells_To_Add_ItemIEs_tag2el_25, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Served_Cells_To_Add_ItemIEs = { + "Served-Cells-To-Add-ItemIEs", + "Served-Cells-To-Add-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_Served_Cells_To_Add_ItemIEs_tags_25, + sizeof(asn_DEF_Served_Cells_To_Add_ItemIEs_tags_25) + /sizeof(asn_DEF_Served_Cells_To_Add_ItemIEs_tags_25[0]), /* 1 */ + asn_DEF_Served_Cells_To_Add_ItemIEs_tags_25, /* Same as above */ + sizeof(asn_DEF_Served_Cells_To_Add_ItemIEs_tags_25) + /sizeof(asn_DEF_Served_Cells_To_Add_ItemIEs_tags_25[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Served_Cells_To_Add_ItemIEs_25, + 3, /* Elements count */ + &asn_SPC_Served_Cells_To_Add_ItemIEs_specs_25 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_32[] = { + { ATF_NOFLAGS, 0, offsetof(struct Served_Cells_To_Modify_ItemIEs__value, choice.Served_Cells_To_Modify_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Served_Cells_To_Modify_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Served-Cells-To-Modify-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_32[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Served-Cells-To-Modify-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_32 = { + sizeof(struct Served_Cells_To_Modify_ItemIEs__value), + offsetof(struct Served_Cells_To_Modify_ItemIEs__value, _asn_ctx), + offsetof(struct Served_Cells_To_Modify_ItemIEs__value, present), + sizeof(((struct Served_Cells_To_Modify_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_32, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_32 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_32, + 1, /* Elements count */ + &asn_SPC_value_specs_32 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Served_Cells_To_Modify_ItemIEs_29[] = { + { ATF_NOFLAGS, 0, offsetof(struct Served_Cells_To_Modify_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_30, &asn_PER_memb_id_constr_30, memb_id_constraint_29 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Served_Cells_To_Modify_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_Served_Cells_To_Modify_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_31, &asn_PER_memb_criticality_constr_31, memb_criticality_constraint_29 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Served_Cells_To_Modify_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_32, + select_Served_Cells_To_Modify_ItemIEs_value_type, + { &asn_OER_memb_value_constr_32, &asn_PER_memb_value_constr_32, memb_value_constraint_29 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_Served_Cells_To_Modify_ItemIEs_tags_29[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Served_Cells_To_Modify_ItemIEs_tag2el_29[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Served_Cells_To_Modify_ItemIEs_specs_29 = { + sizeof(struct Served_Cells_To_Modify_ItemIEs), + offsetof(struct Served_Cells_To_Modify_ItemIEs, _asn_ctx), + asn_MAP_Served_Cells_To_Modify_ItemIEs_tag2el_29, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Served_Cells_To_Modify_ItemIEs = { + "Served-Cells-To-Modify-ItemIEs", + "Served-Cells-To-Modify-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_Served_Cells_To_Modify_ItemIEs_tags_29, + sizeof(asn_DEF_Served_Cells_To_Modify_ItemIEs_tags_29) + /sizeof(asn_DEF_Served_Cells_To_Modify_ItemIEs_tags_29[0]), /* 1 */ + asn_DEF_Served_Cells_To_Modify_ItemIEs_tags_29, /* Same as above */ + sizeof(asn_DEF_Served_Cells_To_Modify_ItemIEs_tags_29) + /sizeof(asn_DEF_Served_Cells_To_Modify_ItemIEs_tags_29[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Served_Cells_To_Modify_ItemIEs_29, + 3, /* Elements count */ + &asn_SPC_Served_Cells_To_Modify_ItemIEs_specs_29 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_36[] = { + { ATF_NOFLAGS, 0, offsetof(struct Served_Cells_To_Delete_ItemIEs__value, choice.Served_Cells_To_Delete_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Served_Cells_To_Delete_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Served-Cells-To-Delete-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_36[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Served-Cells-To-Delete-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_36 = { + sizeof(struct Served_Cells_To_Delete_ItemIEs__value), + offsetof(struct Served_Cells_To_Delete_ItemIEs__value, _asn_ctx), + offsetof(struct Served_Cells_To_Delete_ItemIEs__value, present), + sizeof(((struct Served_Cells_To_Delete_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_36, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_36 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_36, + 1, /* Elements count */ + &asn_SPC_value_specs_36 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Served_Cells_To_Delete_ItemIEs_33[] = { + { ATF_NOFLAGS, 0, offsetof(struct Served_Cells_To_Delete_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_34, &asn_PER_memb_id_constr_34, memb_id_constraint_33 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Served_Cells_To_Delete_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_Served_Cells_To_Delete_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_35, &asn_PER_memb_criticality_constr_35, memb_criticality_constraint_33 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Served_Cells_To_Delete_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_36, + select_Served_Cells_To_Delete_ItemIEs_value_type, + { &asn_OER_memb_value_constr_36, &asn_PER_memb_value_constr_36, memb_value_constraint_33 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_Served_Cells_To_Delete_ItemIEs_tags_33[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Served_Cells_To_Delete_ItemIEs_tag2el_33[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Served_Cells_To_Delete_ItemIEs_specs_33 = { + sizeof(struct Served_Cells_To_Delete_ItemIEs), + offsetof(struct Served_Cells_To_Delete_ItemIEs, _asn_ctx), + asn_MAP_Served_Cells_To_Delete_ItemIEs_tag2el_33, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Served_Cells_To_Delete_ItemIEs = { + "Served-Cells-To-Delete-ItemIEs", + "Served-Cells-To-Delete-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_Served_Cells_To_Delete_ItemIEs_tags_33, + sizeof(asn_DEF_Served_Cells_To_Delete_ItemIEs_tags_33) + /sizeof(asn_DEF_Served_Cells_To_Delete_ItemIEs_tags_33[0]), /* 1 */ + asn_DEF_Served_Cells_To_Delete_ItemIEs_tags_33, /* Same as above */ + sizeof(asn_DEF_Served_Cells_To_Delete_ItemIEs_tags_33) + /sizeof(asn_DEF_Served_Cells_To_Delete_ItemIEs_tags_33[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Served_Cells_To_Delete_ItemIEs_33, + 3, /* Elements count */ + &asn_SPC_Served_Cells_To_Delete_ItemIEs_specs_33 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_40[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_Status_ItemIEs__value, choice.Cells_Status_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_Status_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cells-Status-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_40[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Cells-Status-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_40 = { + sizeof(struct Cells_Status_ItemIEs__value), + offsetof(struct Cells_Status_ItemIEs__value, _asn_ctx), + offsetof(struct Cells_Status_ItemIEs__value, present), + sizeof(((struct Cells_Status_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_40, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_40 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_40, + 1, /* Elements count */ + &asn_SPC_value_specs_40 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Cells_Status_ItemIEs_37[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_Status_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_38, &asn_PER_memb_id_constr_38, memb_id_constraint_37 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cells_Status_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_Cells_Status_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_39, &asn_PER_memb_criticality_constr_39, memb_criticality_constraint_37 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Cells_Status_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_40, + select_Cells_Status_ItemIEs_value_type, + { &asn_OER_memb_value_constr_40, &asn_PER_memb_value_constr_40, memb_value_constraint_37 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_Cells_Status_ItemIEs_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Cells_Status_ItemIEs_tag2el_37[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Cells_Status_ItemIEs_specs_37 = { + sizeof(struct Cells_Status_ItemIEs), + offsetof(struct Cells_Status_ItemIEs, _asn_ctx), + asn_MAP_Cells_Status_ItemIEs_tag2el_37, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_Status_ItemIEs = { + "Cells-Status-ItemIEs", + "Cells-Status-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_Cells_Status_ItemIEs_tags_37, + sizeof(asn_DEF_Cells_Status_ItemIEs_tags_37) + /sizeof(asn_DEF_Cells_Status_ItemIEs_tags_37[0]), /* 1 */ + asn_DEF_Cells_Status_ItemIEs_tags_37, /* Same as above */ + sizeof(asn_DEF_Cells_Status_ItemIEs_tags_37) + /sizeof(asn_DEF_Cells_Status_ItemIEs_tags_37[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_Status_ItemIEs_37, + 3, /* Elements count */ + &asn_SPC_Cells_Status_ItemIEs_specs_37 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_44[] = { + { ATF_NOFLAGS, 0, offsetof(struct Dedicated_SIDelivery_NeededUE_ItemIEs__value, choice.Dedicated_SIDelivery_NeededUE_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Dedicated_SIDelivery_NeededUE_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Dedicated-SIDelivery-NeededUE-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_44[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Dedicated-SIDelivery-NeededUE-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_44 = { + sizeof(struct Dedicated_SIDelivery_NeededUE_ItemIEs__value), + offsetof(struct Dedicated_SIDelivery_NeededUE_ItemIEs__value, _asn_ctx), + offsetof(struct Dedicated_SIDelivery_NeededUE_ItemIEs__value, present), + sizeof(((struct Dedicated_SIDelivery_NeededUE_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_44, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_44 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_44, + 1, /* Elements count */ + &asn_SPC_value_specs_44 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Dedicated_SIDelivery_NeededUE_ItemIEs_41[] = { + { ATF_NOFLAGS, 0, offsetof(struct Dedicated_SIDelivery_NeededUE_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_42, &asn_PER_memb_id_constr_42, memb_id_constraint_41 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Dedicated_SIDelivery_NeededUE_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_Dedicated_SIDelivery_NeededUE_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_43, &asn_PER_memb_criticality_constr_43, memb_criticality_constraint_41 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Dedicated_SIDelivery_NeededUE_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_44, + select_Dedicated_SIDelivery_NeededUE_ItemIEs_value_type, + { &asn_OER_memb_value_constr_44, &asn_PER_memb_value_constr_44, memb_value_constraint_41 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_Dedicated_SIDelivery_NeededUE_ItemIEs_tags_41[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Dedicated_SIDelivery_NeededUE_ItemIEs_tag2el_41[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Dedicated_SIDelivery_NeededUE_ItemIEs_specs_41 = { + sizeof(struct Dedicated_SIDelivery_NeededUE_ItemIEs), + offsetof(struct Dedicated_SIDelivery_NeededUE_ItemIEs, _asn_ctx), + asn_MAP_Dedicated_SIDelivery_NeededUE_ItemIEs_tag2el_41, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Dedicated_SIDelivery_NeededUE_ItemIEs = { + "Dedicated-SIDelivery-NeededUE-ItemIEs", + "Dedicated-SIDelivery-NeededUE-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_Dedicated_SIDelivery_NeededUE_ItemIEs_tags_41, + sizeof(asn_DEF_Dedicated_SIDelivery_NeededUE_ItemIEs_tags_41) + /sizeof(asn_DEF_Dedicated_SIDelivery_NeededUE_ItemIEs_tags_41[0]), /* 1 */ + asn_DEF_Dedicated_SIDelivery_NeededUE_ItemIEs_tags_41, /* Same as above */ + sizeof(asn_DEF_Dedicated_SIDelivery_NeededUE_ItemIEs_tags_41) + /sizeof(asn_DEF_Dedicated_SIDelivery_NeededUE_ItemIEs_tags_41[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Dedicated_SIDelivery_NeededUE_ItemIEs_41, + 3, /* Elements count */ + &asn_SPC_Dedicated_SIDelivery_NeededUE_ItemIEs_specs_41 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_48[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_to_be_Deactivated_List_ItemIEs__value, choice.Cells_to_be_Deactivated_List_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_to_be_Deactivated_List_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cells-to-be-Deactivated-List-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_48[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Cells-to-be-Deactivated-List-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_48 = { + sizeof(struct Cells_to_be_Deactivated_List_ItemIEs__value), + offsetof(struct Cells_to_be_Deactivated_List_ItemIEs__value, _asn_ctx), + offsetof(struct Cells_to_be_Deactivated_List_ItemIEs__value, present), + sizeof(((struct Cells_to_be_Deactivated_List_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_48, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_48 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_48, + 1, /* Elements count */ + &asn_SPC_value_specs_48 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Cells_to_be_Deactivated_List_ItemIEs_45[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_to_be_Deactivated_List_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_46, &asn_PER_memb_id_constr_46, memb_id_constraint_45 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cells_to_be_Deactivated_List_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_Cells_to_be_Deactivated_List_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_47, &asn_PER_memb_criticality_constr_47, memb_criticality_constraint_45 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Cells_to_be_Deactivated_List_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_48, + select_Cells_to_be_Deactivated_List_ItemIEs_value_type, + { &asn_OER_memb_value_constr_48, &asn_PER_memb_value_constr_48, memb_value_constraint_45 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_Cells_to_be_Deactivated_List_ItemIEs_tags_45[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Cells_to_be_Deactivated_List_ItemIEs_tag2el_45[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Cells_to_be_Deactivated_List_ItemIEs_specs_45 = { + sizeof(struct Cells_to_be_Deactivated_List_ItemIEs), + offsetof(struct Cells_to_be_Deactivated_List_ItemIEs, _asn_ctx), + asn_MAP_Cells_to_be_Deactivated_List_ItemIEs_tag2el_45, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_to_be_Deactivated_List_ItemIEs = { + "Cells-to-be-Deactivated-List-ItemIEs", + "Cells-to-be-Deactivated-List-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_Cells_to_be_Deactivated_List_ItemIEs_tags_45, + sizeof(asn_DEF_Cells_to_be_Deactivated_List_ItemIEs_tags_45) + /sizeof(asn_DEF_Cells_to_be_Deactivated_List_ItemIEs_tags_45[0]), /* 1 */ + asn_DEF_Cells_to_be_Deactivated_List_ItemIEs_tags_45, /* Same as above */ + sizeof(asn_DEF_Cells_to_be_Deactivated_List_ItemIEs_tags_45) + /sizeof(asn_DEF_Cells_to_be_Deactivated_List_ItemIEs_tags_45[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_to_be_Deactivated_List_ItemIEs_45, + 3, /* Elements count */ + &asn_SPC_Cells_to_be_Deactivated_List_ItemIEs_specs_45 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_52[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_To_Add_ItemIEs__value, choice.GNB_CU_TNL_Association_To_Add_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNB_CU_TNL_Association_To_Add_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-TNL-Association-To-Add-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_52[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* GNB-CU-TNL-Association-To-Add-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_52 = { + sizeof(struct GNB_CU_TNL_Association_To_Add_ItemIEs__value), + offsetof(struct GNB_CU_TNL_Association_To_Add_ItemIEs__value, _asn_ctx), + offsetof(struct GNB_CU_TNL_Association_To_Add_ItemIEs__value, present), + sizeof(((struct GNB_CU_TNL_Association_To_Add_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_52, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_52 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_52, + 1, /* Elements count */ + &asn_SPC_value_specs_52 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_To_Add_ItemIEs_49[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_To_Add_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_50, &asn_PER_memb_id_constr_50, memb_id_constraint_49 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_To_Add_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_GNB_CU_TNL_Association_To_Add_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_51, &asn_PER_memb_criticality_constr_51, memb_criticality_constraint_49 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_To_Add_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_52, + select_GNB_CU_TNL_Association_To_Add_ItemIEs_value_type, + { &asn_OER_memb_value_constr_52, &asn_PER_memb_value_constr_52, memb_value_constraint_49 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNB_CU_TNL_Association_To_Add_ItemIEs_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNB_CU_TNL_Association_To_Add_ItemIEs_tag2el_49[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNB_CU_TNL_Association_To_Add_ItemIEs_specs_49 = { + sizeof(struct GNB_CU_TNL_Association_To_Add_ItemIEs), + offsetof(struct GNB_CU_TNL_Association_To_Add_ItemIEs, _asn_ctx), + asn_MAP_GNB_CU_TNL_Association_To_Add_ItemIEs_tag2el_49, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_To_Add_ItemIEs = { + "GNB-CU-TNL-Association-To-Add-ItemIEs", + "GNB-CU-TNL-Association-To-Add-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_GNB_CU_TNL_Association_To_Add_ItemIEs_tags_49, + sizeof(asn_DEF_GNB_CU_TNL_Association_To_Add_ItemIEs_tags_49) + /sizeof(asn_DEF_GNB_CU_TNL_Association_To_Add_ItemIEs_tags_49[0]), /* 1 */ + asn_DEF_GNB_CU_TNL_Association_To_Add_ItemIEs_tags_49, /* Same as above */ + sizeof(asn_DEF_GNB_CU_TNL_Association_To_Add_ItemIEs_tags_49) + /sizeof(asn_DEF_GNB_CU_TNL_Association_To_Add_ItemIEs_tags_49[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_CU_TNL_Association_To_Add_ItemIEs_49, + 3, /* Elements count */ + &asn_SPC_GNB_CU_TNL_Association_To_Add_ItemIEs_specs_49 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_56[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_To_Remove_ItemIEs__value, choice.GNB_CU_TNL_Association_To_Remove_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNB_CU_TNL_Association_To_Remove_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-TNL-Association-To-Remove-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_56[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* GNB-CU-TNL-Association-To-Remove-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_56 = { + sizeof(struct GNB_CU_TNL_Association_To_Remove_ItemIEs__value), + offsetof(struct GNB_CU_TNL_Association_To_Remove_ItemIEs__value, _asn_ctx), + offsetof(struct GNB_CU_TNL_Association_To_Remove_ItemIEs__value, present), + sizeof(((struct GNB_CU_TNL_Association_To_Remove_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_56, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_56 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_56, + 1, /* Elements count */ + &asn_SPC_value_specs_56 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_To_Remove_ItemIEs_53[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_To_Remove_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_54, &asn_PER_memb_id_constr_54, memb_id_constraint_53 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_To_Remove_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_GNB_CU_TNL_Association_To_Remove_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_55, &asn_PER_memb_criticality_constr_55, memb_criticality_constraint_53 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_To_Remove_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_56, + select_GNB_CU_TNL_Association_To_Remove_ItemIEs_value_type, + { &asn_OER_memb_value_constr_56, &asn_PER_memb_value_constr_56, memb_value_constraint_53 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNB_CU_TNL_Association_To_Remove_ItemIEs_tags_53[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNB_CU_TNL_Association_To_Remove_ItemIEs_tag2el_53[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNB_CU_TNL_Association_To_Remove_ItemIEs_specs_53 = { + sizeof(struct GNB_CU_TNL_Association_To_Remove_ItemIEs), + offsetof(struct GNB_CU_TNL_Association_To_Remove_ItemIEs, _asn_ctx), + asn_MAP_GNB_CU_TNL_Association_To_Remove_ItemIEs_tag2el_53, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_To_Remove_ItemIEs = { + "GNB-CU-TNL-Association-To-Remove-ItemIEs", + "GNB-CU-TNL-Association-To-Remove-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_GNB_CU_TNL_Association_To_Remove_ItemIEs_tags_53, + sizeof(asn_DEF_GNB_CU_TNL_Association_To_Remove_ItemIEs_tags_53) + /sizeof(asn_DEF_GNB_CU_TNL_Association_To_Remove_ItemIEs_tags_53[0]), /* 1 */ + asn_DEF_GNB_CU_TNL_Association_To_Remove_ItemIEs_tags_53, /* Same as above */ + sizeof(asn_DEF_GNB_CU_TNL_Association_To_Remove_ItemIEs_tags_53) + /sizeof(asn_DEF_GNB_CU_TNL_Association_To_Remove_ItemIEs_tags_53[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_CU_TNL_Association_To_Remove_ItemIEs_53, + 3, /* Elements count */ + &asn_SPC_GNB_CU_TNL_Association_To_Remove_ItemIEs_specs_53 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_60[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_To_Update_ItemIEs__value, choice.GNB_CU_TNL_Association_To_Update_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNB_CU_TNL_Association_To_Update_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-TNL-Association-To-Update-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_60[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* GNB-CU-TNL-Association-To-Update-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_60 = { + sizeof(struct GNB_CU_TNL_Association_To_Update_ItemIEs__value), + offsetof(struct GNB_CU_TNL_Association_To_Update_ItemIEs__value, _asn_ctx), + offsetof(struct GNB_CU_TNL_Association_To_Update_ItemIEs__value, present), + sizeof(((struct GNB_CU_TNL_Association_To_Update_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_60, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_60 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_60, + 1, /* Elements count */ + &asn_SPC_value_specs_60 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_To_Update_ItemIEs_57[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_To_Update_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_58, &asn_PER_memb_id_constr_58, memb_id_constraint_57 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_To_Update_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_GNB_CU_TNL_Association_To_Update_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_59, &asn_PER_memb_criticality_constr_59, memb_criticality_constraint_57 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_To_Update_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_60, + select_GNB_CU_TNL_Association_To_Update_ItemIEs_value_type, + { &asn_OER_memb_value_constr_60, &asn_PER_memb_value_constr_60, memb_value_constraint_57 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNB_CU_TNL_Association_To_Update_ItemIEs_tags_57[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNB_CU_TNL_Association_To_Update_ItemIEs_tag2el_57[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNB_CU_TNL_Association_To_Update_ItemIEs_specs_57 = { + sizeof(struct GNB_CU_TNL_Association_To_Update_ItemIEs), + offsetof(struct GNB_CU_TNL_Association_To_Update_ItemIEs, _asn_ctx), + asn_MAP_GNB_CU_TNL_Association_To_Update_ItemIEs_tag2el_57, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_To_Update_ItemIEs = { + "GNB-CU-TNL-Association-To-Update-ItemIEs", + "GNB-CU-TNL-Association-To-Update-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_GNB_CU_TNL_Association_To_Update_ItemIEs_tags_57, + sizeof(asn_DEF_GNB_CU_TNL_Association_To_Update_ItemIEs_tags_57) + /sizeof(asn_DEF_GNB_CU_TNL_Association_To_Update_ItemIEs_tags_57[0]), /* 1 */ + asn_DEF_GNB_CU_TNL_Association_To_Update_ItemIEs_tags_57, /* Same as above */ + sizeof(asn_DEF_GNB_CU_TNL_Association_To_Update_ItemIEs_tags_57) + /sizeof(asn_DEF_GNB_CU_TNL_Association_To_Update_ItemIEs_tags_57[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_CU_TNL_Association_To_Update_ItemIEs_57, + 3, /* Elements count */ + &asn_SPC_GNB_CU_TNL_Association_To_Update_ItemIEs_specs_57 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_64[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_to_be_Barred_ItemIEs__value, choice.Cells_to_be_Barred_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_to_be_Barred_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cells-to-be-Barred-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_64[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Cells-to-be-Barred-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_64 = { + sizeof(struct Cells_to_be_Barred_ItemIEs__value), + offsetof(struct Cells_to_be_Barred_ItemIEs__value, _asn_ctx), + offsetof(struct Cells_to_be_Barred_ItemIEs__value, present), + sizeof(((struct Cells_to_be_Barred_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_64, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_64 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_64, + 1, /* Elements count */ + &asn_SPC_value_specs_64 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Cells_to_be_Barred_ItemIEs_61[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_to_be_Barred_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_62, &asn_PER_memb_id_constr_62, memb_id_constraint_61 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cells_to_be_Barred_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_Cells_to_be_Barred_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_63, &asn_PER_memb_criticality_constr_63, memb_criticality_constraint_61 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Cells_to_be_Barred_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_64, + select_Cells_to_be_Barred_ItemIEs_value_type, + { &asn_OER_memb_value_constr_64, &asn_PER_memb_value_constr_64, memb_value_constraint_61 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_Cells_to_be_Barred_ItemIEs_tags_61[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Cells_to_be_Barred_ItemIEs_tag2el_61[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Cells_to_be_Barred_ItemIEs_specs_61 = { + sizeof(struct Cells_to_be_Barred_ItemIEs), + offsetof(struct Cells_to_be_Barred_ItemIEs, _asn_ctx), + asn_MAP_Cells_to_be_Barred_ItemIEs_tag2el_61, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_to_be_Barred_ItemIEs = { + "Cells-to-be-Barred-ItemIEs", + "Cells-to-be-Barred-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_Cells_to_be_Barred_ItemIEs_tags_61, + sizeof(asn_DEF_Cells_to_be_Barred_ItemIEs_tags_61) + /sizeof(asn_DEF_Cells_to_be_Barred_ItemIEs_tags_61[0]), /* 1 */ + asn_DEF_Cells_to_be_Barred_ItemIEs_tags_61, /* Same as above */ + sizeof(asn_DEF_Cells_to_be_Barred_ItemIEs_tags_61) + /sizeof(asn_DEF_Cells_to_be_Barred_ItemIEs_tags_61[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_to_be_Barred_ItemIEs_61, + 3, /* Elements count */ + &asn_SPC_Cells_to_be_Barred_ItemIEs_specs_61 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_68[] = { + { ATF_NOFLAGS, 0, offsetof(struct Protected_EUTRA_Resources_ItemIEs__value, choice.Protected_EUTRA_Resources_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Protected_EUTRA_Resources_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Protected-EUTRA-Resources-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_68[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Protected-EUTRA-Resources-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_68 = { + sizeof(struct Protected_EUTRA_Resources_ItemIEs__value), + offsetof(struct Protected_EUTRA_Resources_ItemIEs__value, _asn_ctx), + offsetof(struct Protected_EUTRA_Resources_ItemIEs__value, present), + sizeof(((struct Protected_EUTRA_Resources_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_68, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_68 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_68, + 1, /* Elements count */ + &asn_SPC_value_specs_68 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Protected_EUTRA_Resources_ItemIEs_65[] = { + { ATF_NOFLAGS, 0, offsetof(struct Protected_EUTRA_Resources_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_66, &asn_PER_memb_id_constr_66, memb_id_constraint_65 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Protected_EUTRA_Resources_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_Protected_EUTRA_Resources_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_67, &asn_PER_memb_criticality_constr_67, memb_criticality_constraint_65 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Protected_EUTRA_Resources_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_68, + select_Protected_EUTRA_Resources_ItemIEs_value_type, + { &asn_OER_memb_value_constr_68, &asn_PER_memb_value_constr_68, memb_value_constraint_65 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_Protected_EUTRA_Resources_ItemIEs_tags_65[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Protected_EUTRA_Resources_ItemIEs_tag2el_65[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Protected_EUTRA_Resources_ItemIEs_specs_65 = { + sizeof(struct Protected_EUTRA_Resources_ItemIEs), + offsetof(struct Protected_EUTRA_Resources_ItemIEs, _asn_ctx), + asn_MAP_Protected_EUTRA_Resources_ItemIEs_tag2el_65, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Protected_EUTRA_Resources_ItemIEs = { + "Protected-EUTRA-Resources-ItemIEs", + "Protected-EUTRA-Resources-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_Protected_EUTRA_Resources_ItemIEs_tags_65, + sizeof(asn_DEF_Protected_EUTRA_Resources_ItemIEs_tags_65) + /sizeof(asn_DEF_Protected_EUTRA_Resources_ItemIEs_tags_65[0]), /* 1 */ + asn_DEF_Protected_EUTRA_Resources_ItemIEs_tags_65, /* Same as above */ + sizeof(asn_DEF_Protected_EUTRA_Resources_ItemIEs_tags_65) + /sizeof(asn_DEF_Protected_EUTRA_Resources_ItemIEs_tags_65[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Protected_EUTRA_Resources_ItemIEs_65, + 3, /* Elements count */ + &asn_SPC_Protected_EUTRA_Resources_ItemIEs_specs_65 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_72[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_Failed_to_be_Activated_List_ItemIEs__value, choice.Cells_Failed_to_be_Activated_List_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_Failed_to_be_Activated_List_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cells-Failed-to-be-Activated-List-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_72[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Cells-Failed-to-be-Activated-List-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_72 = { + sizeof(struct Cells_Failed_to_be_Activated_List_ItemIEs__value), + offsetof(struct Cells_Failed_to_be_Activated_List_ItemIEs__value, _asn_ctx), + offsetof(struct Cells_Failed_to_be_Activated_List_ItemIEs__value, present), + sizeof(((struct Cells_Failed_to_be_Activated_List_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_72, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_72 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_72, + 1, /* Elements count */ + &asn_SPC_value_specs_72 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Cells_Failed_to_be_Activated_List_ItemIEs_69[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_Failed_to_be_Activated_List_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_70, &asn_PER_memb_id_constr_70, memb_id_constraint_69 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cells_Failed_to_be_Activated_List_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_Cells_Failed_to_be_Activated_List_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_71, &asn_PER_memb_criticality_constr_71, memb_criticality_constraint_69 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Cells_Failed_to_be_Activated_List_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_72, + select_Cells_Failed_to_be_Activated_List_ItemIEs_value_type, + { &asn_OER_memb_value_constr_72, &asn_PER_memb_value_constr_72, memb_value_constraint_69 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_Cells_Failed_to_be_Activated_List_ItemIEs_tags_69[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Cells_Failed_to_be_Activated_List_ItemIEs_tag2el_69[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Cells_Failed_to_be_Activated_List_ItemIEs_specs_69 = { + sizeof(struct Cells_Failed_to_be_Activated_List_ItemIEs), + offsetof(struct Cells_Failed_to_be_Activated_List_ItemIEs, _asn_ctx), + asn_MAP_Cells_Failed_to_be_Activated_List_ItemIEs_tag2el_69, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_Failed_to_be_Activated_List_ItemIEs = { + "Cells-Failed-to-be-Activated-List-ItemIEs", + "Cells-Failed-to-be-Activated-List-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_Cells_Failed_to_be_Activated_List_ItemIEs_tags_69, + sizeof(asn_DEF_Cells_Failed_to_be_Activated_List_ItemIEs_tags_69) + /sizeof(asn_DEF_Cells_Failed_to_be_Activated_List_ItemIEs_tags_69[0]), /* 1 */ + asn_DEF_Cells_Failed_to_be_Activated_List_ItemIEs_tags_69, /* Same as above */ + sizeof(asn_DEF_Cells_Failed_to_be_Activated_List_ItemIEs_tags_69) + /sizeof(asn_DEF_Cells_Failed_to_be_Activated_List_ItemIEs_tags_69[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_Failed_to_be_Activated_List_ItemIEs_69, + 3, /* Elements count */ + &asn_SPC_Cells_Failed_to_be_Activated_List_ItemIEs_specs_69 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_76[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_Setup_ItemIEs__value, choice.GNB_CU_TNL_Association_Setup_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNB_CU_TNL_Association_Setup_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-TNL-Association-Setup-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_76[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* GNB-CU-TNL-Association-Setup-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_76 = { + sizeof(struct GNB_CU_TNL_Association_Setup_ItemIEs__value), + offsetof(struct GNB_CU_TNL_Association_Setup_ItemIEs__value, _asn_ctx), + offsetof(struct GNB_CU_TNL_Association_Setup_ItemIEs__value, present), + sizeof(((struct GNB_CU_TNL_Association_Setup_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_76, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_76 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_76, + 1, /* Elements count */ + &asn_SPC_value_specs_76 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_Setup_ItemIEs_73[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_Setup_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_74, &asn_PER_memb_id_constr_74, memb_id_constraint_73 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_Setup_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_GNB_CU_TNL_Association_Setup_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_75, &asn_PER_memb_criticality_constr_75, memb_criticality_constraint_73 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_Setup_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_76, + select_GNB_CU_TNL_Association_Setup_ItemIEs_value_type, + { &asn_OER_memb_value_constr_76, &asn_PER_memb_value_constr_76, memb_value_constraint_73 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNB_CU_TNL_Association_Setup_ItemIEs_tags_73[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNB_CU_TNL_Association_Setup_ItemIEs_tag2el_73[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNB_CU_TNL_Association_Setup_ItemIEs_specs_73 = { + sizeof(struct GNB_CU_TNL_Association_Setup_ItemIEs), + offsetof(struct GNB_CU_TNL_Association_Setup_ItemIEs, _asn_ctx), + asn_MAP_GNB_CU_TNL_Association_Setup_ItemIEs_tag2el_73, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_Setup_ItemIEs = { + "GNB-CU-TNL-Association-Setup-ItemIEs", + "GNB-CU-TNL-Association-Setup-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_GNB_CU_TNL_Association_Setup_ItemIEs_tags_73, + sizeof(asn_DEF_GNB_CU_TNL_Association_Setup_ItemIEs_tags_73) + /sizeof(asn_DEF_GNB_CU_TNL_Association_Setup_ItemIEs_tags_73[0]), /* 1 */ + asn_DEF_GNB_CU_TNL_Association_Setup_ItemIEs_tags_73, /* Same as above */ + sizeof(asn_DEF_GNB_CU_TNL_Association_Setup_ItemIEs_tags_73) + /sizeof(asn_DEF_GNB_CU_TNL_Association_Setup_ItemIEs_tags_73[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_CU_TNL_Association_Setup_ItemIEs_73, + 3, /* Elements count */ + &asn_SPC_GNB_CU_TNL_Association_Setup_ItemIEs_specs_73 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_80[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs__value, choice.GNB_CU_TNL_Association_Failed_To_Setup_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-TNL-Association-Failed-To-Setup-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_80[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* GNB-CU-TNL-Association-Failed-To-Setup-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_80 = { + sizeof(struct GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs__value), + offsetof(struct GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs__value, _asn_ctx), + offsetof(struct GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs__value, present), + sizeof(((struct GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_80, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_80 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_80, + 1, /* Elements count */ + &asn_SPC_value_specs_80 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_77[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_78, &asn_PER_memb_id_constr_78, memb_id_constraint_77 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_79, &asn_PER_memb_criticality_constr_79, memb_criticality_constraint_77 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_80, + select_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_value_type, + { &asn_OER_memb_value_constr_80, &asn_PER_memb_value_constr_80, memb_value_constraint_77 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_tags_77[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_tag2el_77[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_specs_77 = { + sizeof(struct GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs), + offsetof(struct GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs, _asn_ctx), + asn_MAP_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_tag2el_77, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs = { + "GNB-CU-TNL-Association-Failed-To-Setup-ItemIEs", + "GNB-CU-TNL-Association-Failed-To-Setup-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_tags_77, + sizeof(asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_tags_77) + /sizeof(asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_tags_77[0]), /* 1 */ + asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_tags_77, /* Same as above */ + sizeof(asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_tags_77) + /sizeof(asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_tags_77[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_77, + 3, /* Elements count */ + &asn_SPC_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_specs_77 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_84[] = { + { ATF_NOFLAGS, 0, offsetof(struct Candidate_SpCell_ItemIEs__value, choice.Candidate_SpCell_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Candidate_SpCell_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Candidate-SpCell-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_84[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Candidate-SpCell-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_84 = { + sizeof(struct Candidate_SpCell_ItemIEs__value), + offsetof(struct Candidate_SpCell_ItemIEs__value, _asn_ctx), + offsetof(struct Candidate_SpCell_ItemIEs__value, present), + sizeof(((struct Candidate_SpCell_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_84, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_84 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_84, + 1, /* Elements count */ + &asn_SPC_value_specs_84 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Candidate_SpCell_ItemIEs_81[] = { + { ATF_NOFLAGS, 0, offsetof(struct Candidate_SpCell_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_82, &asn_PER_memb_id_constr_82, memb_id_constraint_81 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Candidate_SpCell_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_Candidate_SpCell_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_83, &asn_PER_memb_criticality_constr_83, memb_criticality_constraint_81 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Candidate_SpCell_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_84, + select_Candidate_SpCell_ItemIEs_value_type, + { &asn_OER_memb_value_constr_84, &asn_PER_memb_value_constr_84, memb_value_constraint_81 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_Candidate_SpCell_ItemIEs_tags_81[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Candidate_SpCell_ItemIEs_tag2el_81[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Candidate_SpCell_ItemIEs_specs_81 = { + sizeof(struct Candidate_SpCell_ItemIEs), + offsetof(struct Candidate_SpCell_ItemIEs, _asn_ctx), + asn_MAP_Candidate_SpCell_ItemIEs_tag2el_81, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Candidate_SpCell_ItemIEs = { + "Candidate-SpCell-ItemIEs", + "Candidate-SpCell-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_Candidate_SpCell_ItemIEs_tags_81, + sizeof(asn_DEF_Candidate_SpCell_ItemIEs_tags_81) + /sizeof(asn_DEF_Candidate_SpCell_ItemIEs_tags_81[0]), /* 1 */ + asn_DEF_Candidate_SpCell_ItemIEs_tags_81, /* Same as above */ + sizeof(asn_DEF_Candidate_SpCell_ItemIEs_tags_81) + /sizeof(asn_DEF_Candidate_SpCell_ItemIEs_tags_81[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Candidate_SpCell_ItemIEs_81, + 3, /* Elements count */ + &asn_SPC_Candidate_SpCell_ItemIEs_specs_81 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_88[] = { + { ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeSetup_ItemIEs__value, choice.SCell_ToBeSetup_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SCell_ToBeSetup_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SCell-ToBeSetup-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_88[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SCell-ToBeSetup-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_88 = { + sizeof(struct SCell_ToBeSetup_ItemIEs__value), + offsetof(struct SCell_ToBeSetup_ItemIEs__value, _asn_ctx), + offsetof(struct SCell_ToBeSetup_ItemIEs__value, present), + sizeof(((struct SCell_ToBeSetup_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_88, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_88 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_88, + 1, /* Elements count */ + &asn_SPC_value_specs_88 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SCell_ToBeSetup_ItemIEs_85[] = { + { ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeSetup_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_86, &asn_PER_memb_id_constr_86, memb_id_constraint_85 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeSetup_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_SCell_ToBeSetup_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_87, &asn_PER_memb_criticality_constr_87, memb_criticality_constraint_85 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeSetup_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_88, + select_SCell_ToBeSetup_ItemIEs_value_type, + { &asn_OER_memb_value_constr_88, &asn_PER_memb_value_constr_88, memb_value_constraint_85 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_SCell_ToBeSetup_ItemIEs_tags_85[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SCell_ToBeSetup_ItemIEs_tag2el_85[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SCell_ToBeSetup_ItemIEs_specs_85 = { + sizeof(struct SCell_ToBeSetup_ItemIEs), + offsetof(struct SCell_ToBeSetup_ItemIEs, _asn_ctx), + asn_MAP_SCell_ToBeSetup_ItemIEs_tag2el_85, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SCell_ToBeSetup_ItemIEs = { + "SCell-ToBeSetup-ItemIEs", + "SCell-ToBeSetup-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_SCell_ToBeSetup_ItemIEs_tags_85, + sizeof(asn_DEF_SCell_ToBeSetup_ItemIEs_tags_85) + /sizeof(asn_DEF_SCell_ToBeSetup_ItemIEs_tags_85[0]), /* 1 */ + asn_DEF_SCell_ToBeSetup_ItemIEs_tags_85, /* Same as above */ + sizeof(asn_DEF_SCell_ToBeSetup_ItemIEs_tags_85) + /sizeof(asn_DEF_SCell_ToBeSetup_ItemIEs_tags_85[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SCell_ToBeSetup_ItemIEs_85, + 3, /* Elements count */ + &asn_SPC_SCell_ToBeSetup_ItemIEs_specs_85 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_92[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_ToBeSetup_ItemIEs__value, choice.SRBs_ToBeSetup_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_ToBeSetup_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRBs-ToBeSetup-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_92[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SRBs-ToBeSetup-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_92 = { + sizeof(struct SRBs_ToBeSetup_ItemIEs__value), + offsetof(struct SRBs_ToBeSetup_ItemIEs__value, _asn_ctx), + offsetof(struct SRBs_ToBeSetup_ItemIEs__value, present), + sizeof(((struct SRBs_ToBeSetup_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_92, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_92 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_92, + 1, /* Elements count */ + &asn_SPC_value_specs_92 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRBs_ToBeSetup_ItemIEs_89[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_ToBeSetup_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_90, &asn_PER_memb_id_constr_90, memb_id_constraint_89 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRBs_ToBeSetup_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_SRBs_ToBeSetup_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_91, &asn_PER_memb_criticality_constr_91, memb_criticality_constraint_89 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SRBs_ToBeSetup_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_92, + select_SRBs_ToBeSetup_ItemIEs_value_type, + { &asn_OER_memb_value_constr_92, &asn_PER_memb_value_constr_92, memb_value_constraint_89 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_ToBeSetup_ItemIEs_tags_89[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_ToBeSetup_ItemIEs_tag2el_89[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SRBs_ToBeSetup_ItemIEs_specs_89 = { + sizeof(struct SRBs_ToBeSetup_ItemIEs), + offsetof(struct SRBs_ToBeSetup_ItemIEs, _asn_ctx), + asn_MAP_SRBs_ToBeSetup_ItemIEs_tag2el_89, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_ToBeSetup_ItemIEs = { + "SRBs-ToBeSetup-ItemIEs", + "SRBs-ToBeSetup-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_ToBeSetup_ItemIEs_tags_89, + sizeof(asn_DEF_SRBs_ToBeSetup_ItemIEs_tags_89) + /sizeof(asn_DEF_SRBs_ToBeSetup_ItemIEs_tags_89[0]), /* 1 */ + asn_DEF_SRBs_ToBeSetup_ItemIEs_tags_89, /* Same as above */ + sizeof(asn_DEF_SRBs_ToBeSetup_ItemIEs_tags_89) + /sizeof(asn_DEF_SRBs_ToBeSetup_ItemIEs_tags_89[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_ToBeSetup_ItemIEs_89, + 3, /* Elements count */ + &asn_SPC_SRBs_ToBeSetup_ItemIEs_specs_89 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_96[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetup_ItemIEs__value, choice.DRBs_ToBeSetup_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_ToBeSetup_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRBs-ToBeSetup-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_96[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* DRBs-ToBeSetup-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_96 = { + sizeof(struct DRBs_ToBeSetup_ItemIEs__value), + offsetof(struct DRBs_ToBeSetup_ItemIEs__value, _asn_ctx), + offsetof(struct DRBs_ToBeSetup_ItemIEs__value, present), + sizeof(((struct DRBs_ToBeSetup_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_96, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_96 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_96, + 1, /* Elements count */ + &asn_SPC_value_specs_96 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRBs_ToBeSetup_ItemIEs_93[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetup_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_94, &asn_PER_memb_id_constr_94, memb_id_constraint_93 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetup_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_DRBs_ToBeSetup_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_95, &asn_PER_memb_criticality_constr_95, memb_criticality_constraint_93 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetup_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_96, + select_DRBs_ToBeSetup_ItemIEs_value_type, + { &asn_OER_memb_value_constr_96, &asn_PER_memb_value_constr_96, memb_value_constraint_93 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_ToBeSetup_ItemIEs_tags_93[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_ToBeSetup_ItemIEs_tag2el_93[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRBs_ToBeSetup_ItemIEs_specs_93 = { + sizeof(struct DRBs_ToBeSetup_ItemIEs), + offsetof(struct DRBs_ToBeSetup_ItemIEs, _asn_ctx), + asn_MAP_DRBs_ToBeSetup_ItemIEs_tag2el_93, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeSetup_ItemIEs = { + "DRBs-ToBeSetup-ItemIEs", + "DRBs-ToBeSetup-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_ToBeSetup_ItemIEs_tags_93, + sizeof(asn_DEF_DRBs_ToBeSetup_ItemIEs_tags_93) + /sizeof(asn_DEF_DRBs_ToBeSetup_ItemIEs_tags_93[0]), /* 1 */ + asn_DEF_DRBs_ToBeSetup_ItemIEs_tags_93, /* Same as above */ + sizeof(asn_DEF_DRBs_ToBeSetup_ItemIEs_tags_93) + /sizeof(asn_DEF_DRBs_ToBeSetup_ItemIEs_tags_93[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_ToBeSetup_ItemIEs_93, + 3, /* Elements count */ + &asn_SPC_DRBs_ToBeSetup_ItemIEs_specs_93 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_100[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Setup_ItemIEs__value, choice.DRBs_Setup_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_Setup_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRBs-Setup-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_100[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* DRBs-Setup-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_100 = { + sizeof(struct DRBs_Setup_ItemIEs__value), + offsetof(struct DRBs_Setup_ItemIEs__value, _asn_ctx), + offsetof(struct DRBs_Setup_ItemIEs__value, present), + sizeof(((struct DRBs_Setup_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_100, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_100 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_100, + 1, /* Elements count */ + &asn_SPC_value_specs_100 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRBs_Setup_ItemIEs_97[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Setup_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_98, &asn_PER_memb_id_constr_98, memb_id_constraint_97 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Setup_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_DRBs_Setup_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_99, &asn_PER_memb_criticality_constr_99, memb_criticality_constraint_97 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DRBs_Setup_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_100, + select_DRBs_Setup_ItemIEs_value_type, + { &asn_OER_memb_value_constr_100, &asn_PER_memb_value_constr_100, memb_value_constraint_97 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_Setup_ItemIEs_tags_97[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_Setup_ItemIEs_tag2el_97[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRBs_Setup_ItemIEs_specs_97 = { + sizeof(struct DRBs_Setup_ItemIEs), + offsetof(struct DRBs_Setup_ItemIEs, _asn_ctx), + asn_MAP_DRBs_Setup_ItemIEs_tag2el_97, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_Setup_ItemIEs = { + "DRBs-Setup-ItemIEs", + "DRBs-Setup-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_Setup_ItemIEs_tags_97, + sizeof(asn_DEF_DRBs_Setup_ItemIEs_tags_97) + /sizeof(asn_DEF_DRBs_Setup_ItemIEs_tags_97[0]), /* 1 */ + asn_DEF_DRBs_Setup_ItemIEs_tags_97, /* Same as above */ + sizeof(asn_DEF_DRBs_Setup_ItemIEs_tags_97) + /sizeof(asn_DEF_DRBs_Setup_ItemIEs_tags_97[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_Setup_ItemIEs_97, + 3, /* Elements count */ + &asn_SPC_DRBs_Setup_ItemIEs_specs_97 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_104[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_FailedToBeSetup_ItemIEs__value, choice.SRBs_FailedToBeSetup_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_FailedToBeSetup_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRBs-FailedToBeSetup-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_104[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SRBs-FailedToBeSetup-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_104 = { + sizeof(struct SRBs_FailedToBeSetup_ItemIEs__value), + offsetof(struct SRBs_FailedToBeSetup_ItemIEs__value, _asn_ctx), + offsetof(struct SRBs_FailedToBeSetup_ItemIEs__value, present), + sizeof(((struct SRBs_FailedToBeSetup_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_104, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_104 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_104, + 1, /* Elements count */ + &asn_SPC_value_specs_104 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRBs_FailedToBeSetup_ItemIEs_101[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_FailedToBeSetup_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_102, &asn_PER_memb_id_constr_102, memb_id_constraint_101 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRBs_FailedToBeSetup_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_SRBs_FailedToBeSetup_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_103, &asn_PER_memb_criticality_constr_103, memb_criticality_constraint_101 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SRBs_FailedToBeSetup_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_104, + select_SRBs_FailedToBeSetup_ItemIEs_value_type, + { &asn_OER_memb_value_constr_104, &asn_PER_memb_value_constr_104, memb_value_constraint_101 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_FailedToBeSetup_ItemIEs_tags_101[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_FailedToBeSetup_ItemIEs_tag2el_101[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SRBs_FailedToBeSetup_ItemIEs_specs_101 = { + sizeof(struct SRBs_FailedToBeSetup_ItemIEs), + offsetof(struct SRBs_FailedToBeSetup_ItemIEs, _asn_ctx), + asn_MAP_SRBs_FailedToBeSetup_ItemIEs_tag2el_101, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_FailedToBeSetup_ItemIEs = { + "SRBs-FailedToBeSetup-ItemIEs", + "SRBs-FailedToBeSetup-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_FailedToBeSetup_ItemIEs_tags_101, + sizeof(asn_DEF_SRBs_FailedToBeSetup_ItemIEs_tags_101) + /sizeof(asn_DEF_SRBs_FailedToBeSetup_ItemIEs_tags_101[0]), /* 1 */ + asn_DEF_SRBs_FailedToBeSetup_ItemIEs_tags_101, /* Same as above */ + sizeof(asn_DEF_SRBs_FailedToBeSetup_ItemIEs_tags_101) + /sizeof(asn_DEF_SRBs_FailedToBeSetup_ItemIEs_tags_101[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_FailedToBeSetup_ItemIEs_101, + 3, /* Elements count */ + &asn_SPC_SRBs_FailedToBeSetup_ItemIEs_specs_101 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_108[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_FailedToBeSetup_ItemIEs__value, choice.DRBs_FailedToBeSetup_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_FailedToBeSetup_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRBs-FailedToBeSetup-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_108[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* DRBs-FailedToBeSetup-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_108 = { + sizeof(struct DRBs_FailedToBeSetup_ItemIEs__value), + offsetof(struct DRBs_FailedToBeSetup_ItemIEs__value, _asn_ctx), + offsetof(struct DRBs_FailedToBeSetup_ItemIEs__value, present), + sizeof(((struct DRBs_FailedToBeSetup_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_108, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_108 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_108, + 1, /* Elements count */ + &asn_SPC_value_specs_108 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRBs_FailedToBeSetup_ItemIEs_105[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_FailedToBeSetup_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_106, &asn_PER_memb_id_constr_106, memb_id_constraint_105 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_FailedToBeSetup_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_DRBs_FailedToBeSetup_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_107, &asn_PER_memb_criticality_constr_107, memb_criticality_constraint_105 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DRBs_FailedToBeSetup_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_108, + select_DRBs_FailedToBeSetup_ItemIEs_value_type, + { &asn_OER_memb_value_constr_108, &asn_PER_memb_value_constr_108, memb_value_constraint_105 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_FailedToBeSetup_ItemIEs_tags_105[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_FailedToBeSetup_ItemIEs_tag2el_105[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRBs_FailedToBeSetup_ItemIEs_specs_105 = { + sizeof(struct DRBs_FailedToBeSetup_ItemIEs), + offsetof(struct DRBs_FailedToBeSetup_ItemIEs, _asn_ctx), + asn_MAP_DRBs_FailedToBeSetup_ItemIEs_tag2el_105, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_FailedToBeSetup_ItemIEs = { + "DRBs-FailedToBeSetup-ItemIEs", + "DRBs-FailedToBeSetup-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_FailedToBeSetup_ItemIEs_tags_105, + sizeof(asn_DEF_DRBs_FailedToBeSetup_ItemIEs_tags_105) + /sizeof(asn_DEF_DRBs_FailedToBeSetup_ItemIEs_tags_105[0]), /* 1 */ + asn_DEF_DRBs_FailedToBeSetup_ItemIEs_tags_105, /* Same as above */ + sizeof(asn_DEF_DRBs_FailedToBeSetup_ItemIEs_tags_105) + /sizeof(asn_DEF_DRBs_FailedToBeSetup_ItemIEs_tags_105[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_FailedToBeSetup_ItemIEs_105, + 3, /* Elements count */ + &asn_SPC_DRBs_FailedToBeSetup_ItemIEs_specs_105 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_112[] = { + { ATF_NOFLAGS, 0, offsetof(struct SCell_FailedtoSetup_ItemIEs__value, choice.SCell_FailedtoSetup_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SCell_FailedtoSetup_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SCell-FailedtoSetup-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_112[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SCell-FailedtoSetup-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_112 = { + sizeof(struct SCell_FailedtoSetup_ItemIEs__value), + offsetof(struct SCell_FailedtoSetup_ItemIEs__value, _asn_ctx), + offsetof(struct SCell_FailedtoSetup_ItemIEs__value, present), + sizeof(((struct SCell_FailedtoSetup_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_112, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_112 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_112, + 1, /* Elements count */ + &asn_SPC_value_specs_112 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SCell_FailedtoSetup_ItemIEs_109[] = { + { ATF_NOFLAGS, 0, offsetof(struct SCell_FailedtoSetup_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_110, &asn_PER_memb_id_constr_110, memb_id_constraint_109 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SCell_FailedtoSetup_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_SCell_FailedtoSetup_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_111, &asn_PER_memb_criticality_constr_111, memb_criticality_constraint_109 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SCell_FailedtoSetup_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_112, + select_SCell_FailedtoSetup_ItemIEs_value_type, + { &asn_OER_memb_value_constr_112, &asn_PER_memb_value_constr_112, memb_value_constraint_109 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_SCell_FailedtoSetup_ItemIEs_tags_109[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SCell_FailedtoSetup_ItemIEs_tag2el_109[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SCell_FailedtoSetup_ItemIEs_specs_109 = { + sizeof(struct SCell_FailedtoSetup_ItemIEs), + offsetof(struct SCell_FailedtoSetup_ItemIEs, _asn_ctx), + asn_MAP_SCell_FailedtoSetup_ItemIEs_tag2el_109, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SCell_FailedtoSetup_ItemIEs = { + "SCell-FailedtoSetup-ItemIEs", + "SCell-FailedtoSetup-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_SCell_FailedtoSetup_ItemIEs_tags_109, + sizeof(asn_DEF_SCell_FailedtoSetup_ItemIEs_tags_109) + /sizeof(asn_DEF_SCell_FailedtoSetup_ItemIEs_tags_109[0]), /* 1 */ + asn_DEF_SCell_FailedtoSetup_ItemIEs_tags_109, /* Same as above */ + sizeof(asn_DEF_SCell_FailedtoSetup_ItemIEs_tags_109) + /sizeof(asn_DEF_SCell_FailedtoSetup_ItemIEs_tags_109[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SCell_FailedtoSetup_ItemIEs_109, + 3, /* Elements count */ + &asn_SPC_SCell_FailedtoSetup_ItemIEs_specs_109 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_116[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_Setup_ItemIEs__value, choice.SRBs_Setup_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_Setup_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRBs-Setup-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_116[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SRBs-Setup-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_116 = { + sizeof(struct SRBs_Setup_ItemIEs__value), + offsetof(struct SRBs_Setup_ItemIEs__value, _asn_ctx), + offsetof(struct SRBs_Setup_ItemIEs__value, present), + sizeof(((struct SRBs_Setup_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_116, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_116 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_116, + 1, /* Elements count */ + &asn_SPC_value_specs_116 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRBs_Setup_ItemIEs_113[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_Setup_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_114, &asn_PER_memb_id_constr_114, memb_id_constraint_113 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRBs_Setup_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_SRBs_Setup_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_115, &asn_PER_memb_criticality_constr_115, memb_criticality_constraint_113 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SRBs_Setup_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_116, + select_SRBs_Setup_ItemIEs_value_type, + { &asn_OER_memb_value_constr_116, &asn_PER_memb_value_constr_116, memb_value_constraint_113 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_Setup_ItemIEs_tags_113[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_Setup_ItemIEs_tag2el_113[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SRBs_Setup_ItemIEs_specs_113 = { + sizeof(struct SRBs_Setup_ItemIEs), + offsetof(struct SRBs_Setup_ItemIEs, _asn_ctx), + asn_MAP_SRBs_Setup_ItemIEs_tag2el_113, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_Setup_ItemIEs = { + "SRBs-Setup-ItemIEs", + "SRBs-Setup-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_Setup_ItemIEs_tags_113, + sizeof(asn_DEF_SRBs_Setup_ItemIEs_tags_113) + /sizeof(asn_DEF_SRBs_Setup_ItemIEs_tags_113[0]), /* 1 */ + asn_DEF_SRBs_Setup_ItemIEs_tags_113, /* Same as above */ + sizeof(asn_DEF_SRBs_Setup_ItemIEs_tags_113) + /sizeof(asn_DEF_SRBs_Setup_ItemIEs_tags_113[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_Setup_ItemIEs_113, + 3, /* Elements count */ + &asn_SPC_SRBs_Setup_ItemIEs_specs_113 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_120[] = { + { ATF_NOFLAGS, 0, offsetof(struct Potential_SpCell_ItemIEs__value, choice.Potential_SpCell_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Potential_SpCell_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Potential-SpCell-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_120[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Potential-SpCell-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_120 = { + sizeof(struct Potential_SpCell_ItemIEs__value), + offsetof(struct Potential_SpCell_ItemIEs__value, _asn_ctx), + offsetof(struct Potential_SpCell_ItemIEs__value, present), + sizeof(((struct Potential_SpCell_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_120, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_120 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_120, + 1, /* Elements count */ + &asn_SPC_value_specs_120 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Potential_SpCell_ItemIEs_117[] = { + { ATF_NOFLAGS, 0, offsetof(struct Potential_SpCell_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_118, &asn_PER_memb_id_constr_118, memb_id_constraint_117 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Potential_SpCell_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_Potential_SpCell_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_119, &asn_PER_memb_criticality_constr_119, memb_criticality_constraint_117 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Potential_SpCell_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_120, + select_Potential_SpCell_ItemIEs_value_type, + { &asn_OER_memb_value_constr_120, &asn_PER_memb_value_constr_120, memb_value_constraint_117 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_Potential_SpCell_ItemIEs_tags_117[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Potential_SpCell_ItemIEs_tag2el_117[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Potential_SpCell_ItemIEs_specs_117 = { + sizeof(struct Potential_SpCell_ItemIEs), + offsetof(struct Potential_SpCell_ItemIEs, _asn_ctx), + asn_MAP_Potential_SpCell_ItemIEs_tag2el_117, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Potential_SpCell_ItemIEs = { + "Potential-SpCell-ItemIEs", + "Potential-SpCell-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_Potential_SpCell_ItemIEs_tags_117, + sizeof(asn_DEF_Potential_SpCell_ItemIEs_tags_117) + /sizeof(asn_DEF_Potential_SpCell_ItemIEs_tags_117[0]), /* 1 */ + asn_DEF_Potential_SpCell_ItemIEs_tags_117, /* Same as above */ + sizeof(asn_DEF_Potential_SpCell_ItemIEs_tags_117) + /sizeof(asn_DEF_Potential_SpCell_ItemIEs_tags_117[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Potential_SpCell_ItemIEs_117, + 3, /* Elements count */ + &asn_SPC_Potential_SpCell_ItemIEs_specs_117 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_124[] = { + { ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeSetupMod_ItemIEs__value, choice.SCell_ToBeSetupMod_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SCell_ToBeSetupMod_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SCell-ToBeSetupMod-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_124[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SCell-ToBeSetupMod-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_124 = { + sizeof(struct SCell_ToBeSetupMod_ItemIEs__value), + offsetof(struct SCell_ToBeSetupMod_ItemIEs__value, _asn_ctx), + offsetof(struct SCell_ToBeSetupMod_ItemIEs__value, present), + sizeof(((struct SCell_ToBeSetupMod_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_124, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_124 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_124, + 1, /* Elements count */ + &asn_SPC_value_specs_124 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SCell_ToBeSetupMod_ItemIEs_121[] = { + { ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeSetupMod_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_122, &asn_PER_memb_id_constr_122, memb_id_constraint_121 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeSetupMod_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_SCell_ToBeSetupMod_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_123, &asn_PER_memb_criticality_constr_123, memb_criticality_constraint_121 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeSetupMod_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_124, + select_SCell_ToBeSetupMod_ItemIEs_value_type, + { &asn_OER_memb_value_constr_124, &asn_PER_memb_value_constr_124, memb_value_constraint_121 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_SCell_ToBeSetupMod_ItemIEs_tags_121[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SCell_ToBeSetupMod_ItemIEs_tag2el_121[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SCell_ToBeSetupMod_ItemIEs_specs_121 = { + sizeof(struct SCell_ToBeSetupMod_ItemIEs), + offsetof(struct SCell_ToBeSetupMod_ItemIEs, _asn_ctx), + asn_MAP_SCell_ToBeSetupMod_ItemIEs_tag2el_121, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SCell_ToBeSetupMod_ItemIEs = { + "SCell-ToBeSetupMod-ItemIEs", + "SCell-ToBeSetupMod-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_SCell_ToBeSetupMod_ItemIEs_tags_121, + sizeof(asn_DEF_SCell_ToBeSetupMod_ItemIEs_tags_121) + /sizeof(asn_DEF_SCell_ToBeSetupMod_ItemIEs_tags_121[0]), /* 1 */ + asn_DEF_SCell_ToBeSetupMod_ItemIEs_tags_121, /* Same as above */ + sizeof(asn_DEF_SCell_ToBeSetupMod_ItemIEs_tags_121) + /sizeof(asn_DEF_SCell_ToBeSetupMod_ItemIEs_tags_121[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SCell_ToBeSetupMod_ItemIEs_121, + 3, /* Elements count */ + &asn_SPC_SCell_ToBeSetupMod_ItemIEs_specs_121 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_128[] = { + { ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeRemoved_ItemIEs__value, choice.SCell_ToBeRemoved_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SCell_ToBeRemoved_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SCell-ToBeRemoved-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_128[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SCell-ToBeRemoved-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_128 = { + sizeof(struct SCell_ToBeRemoved_ItemIEs__value), + offsetof(struct SCell_ToBeRemoved_ItemIEs__value, _asn_ctx), + offsetof(struct SCell_ToBeRemoved_ItemIEs__value, present), + sizeof(((struct SCell_ToBeRemoved_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_128, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_128 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_128, + 1, /* Elements count */ + &asn_SPC_value_specs_128 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SCell_ToBeRemoved_ItemIEs_125[] = { + { ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeRemoved_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_126, &asn_PER_memb_id_constr_126, memb_id_constraint_125 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeRemoved_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_SCell_ToBeRemoved_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_127, &asn_PER_memb_criticality_constr_127, memb_criticality_constraint_125 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeRemoved_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_128, + select_SCell_ToBeRemoved_ItemIEs_value_type, + { &asn_OER_memb_value_constr_128, &asn_PER_memb_value_constr_128, memb_value_constraint_125 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_SCell_ToBeRemoved_ItemIEs_tags_125[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SCell_ToBeRemoved_ItemIEs_tag2el_125[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SCell_ToBeRemoved_ItemIEs_specs_125 = { + sizeof(struct SCell_ToBeRemoved_ItemIEs), + offsetof(struct SCell_ToBeRemoved_ItemIEs, _asn_ctx), + asn_MAP_SCell_ToBeRemoved_ItemIEs_tag2el_125, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SCell_ToBeRemoved_ItemIEs = { + "SCell-ToBeRemoved-ItemIEs", + "SCell-ToBeRemoved-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_SCell_ToBeRemoved_ItemIEs_tags_125, + sizeof(asn_DEF_SCell_ToBeRemoved_ItemIEs_tags_125) + /sizeof(asn_DEF_SCell_ToBeRemoved_ItemIEs_tags_125[0]), /* 1 */ + asn_DEF_SCell_ToBeRemoved_ItemIEs_tags_125, /* Same as above */ + sizeof(asn_DEF_SCell_ToBeRemoved_ItemIEs_tags_125) + /sizeof(asn_DEF_SCell_ToBeRemoved_ItemIEs_tags_125[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SCell_ToBeRemoved_ItemIEs_125, + 3, /* Elements count */ + &asn_SPC_SCell_ToBeRemoved_ItemIEs_specs_125 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_132[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_ToBeSetupMod_ItemIEs__value, choice.SRBs_ToBeSetupMod_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_ToBeSetupMod_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRBs-ToBeSetupMod-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_132[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SRBs-ToBeSetupMod-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_132 = { + sizeof(struct SRBs_ToBeSetupMod_ItemIEs__value), + offsetof(struct SRBs_ToBeSetupMod_ItemIEs__value, _asn_ctx), + offsetof(struct SRBs_ToBeSetupMod_ItemIEs__value, present), + sizeof(((struct SRBs_ToBeSetupMod_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_132, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_132 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_132, + 1, /* Elements count */ + &asn_SPC_value_specs_132 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRBs_ToBeSetupMod_ItemIEs_129[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_ToBeSetupMod_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_130, &asn_PER_memb_id_constr_130, memb_id_constraint_129 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRBs_ToBeSetupMod_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_SRBs_ToBeSetupMod_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_131, &asn_PER_memb_criticality_constr_131, memb_criticality_constraint_129 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SRBs_ToBeSetupMod_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_132, + select_SRBs_ToBeSetupMod_ItemIEs_value_type, + { &asn_OER_memb_value_constr_132, &asn_PER_memb_value_constr_132, memb_value_constraint_129 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_ToBeSetupMod_ItemIEs_tags_129[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_ToBeSetupMod_ItemIEs_tag2el_129[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SRBs_ToBeSetupMod_ItemIEs_specs_129 = { + sizeof(struct SRBs_ToBeSetupMod_ItemIEs), + offsetof(struct SRBs_ToBeSetupMod_ItemIEs, _asn_ctx), + asn_MAP_SRBs_ToBeSetupMod_ItemIEs_tag2el_129, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_ToBeSetupMod_ItemIEs = { + "SRBs-ToBeSetupMod-ItemIEs", + "SRBs-ToBeSetupMod-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_ToBeSetupMod_ItemIEs_tags_129, + sizeof(asn_DEF_SRBs_ToBeSetupMod_ItemIEs_tags_129) + /sizeof(asn_DEF_SRBs_ToBeSetupMod_ItemIEs_tags_129[0]), /* 1 */ + asn_DEF_SRBs_ToBeSetupMod_ItemIEs_tags_129, /* Same as above */ + sizeof(asn_DEF_SRBs_ToBeSetupMod_ItemIEs_tags_129) + /sizeof(asn_DEF_SRBs_ToBeSetupMod_ItemIEs_tags_129[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_ToBeSetupMod_ItemIEs_129, + 3, /* Elements count */ + &asn_SPC_SRBs_ToBeSetupMod_ItemIEs_specs_129 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_136[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetupMod_ItemIEs__value, choice.DRBs_ToBeSetupMod_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_ToBeSetupMod_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRBs-ToBeSetupMod-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_136[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* DRBs-ToBeSetupMod-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_136 = { + sizeof(struct DRBs_ToBeSetupMod_ItemIEs__value), + offsetof(struct DRBs_ToBeSetupMod_ItemIEs__value, _asn_ctx), + offsetof(struct DRBs_ToBeSetupMod_ItemIEs__value, present), + sizeof(((struct DRBs_ToBeSetupMod_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_136, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_136 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_136, + 1, /* Elements count */ + &asn_SPC_value_specs_136 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRBs_ToBeSetupMod_ItemIEs_133[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetupMod_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_134, &asn_PER_memb_id_constr_134, memb_id_constraint_133 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetupMod_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_DRBs_ToBeSetupMod_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_135, &asn_PER_memb_criticality_constr_135, memb_criticality_constraint_133 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeSetupMod_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_136, + select_DRBs_ToBeSetupMod_ItemIEs_value_type, + { &asn_OER_memb_value_constr_136, &asn_PER_memb_value_constr_136, memb_value_constraint_133 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_ToBeSetupMod_ItemIEs_tags_133[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_ToBeSetupMod_ItemIEs_tag2el_133[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRBs_ToBeSetupMod_ItemIEs_specs_133 = { + sizeof(struct DRBs_ToBeSetupMod_ItemIEs), + offsetof(struct DRBs_ToBeSetupMod_ItemIEs, _asn_ctx), + asn_MAP_DRBs_ToBeSetupMod_ItemIEs_tag2el_133, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeSetupMod_ItemIEs = { + "DRBs-ToBeSetupMod-ItemIEs", + "DRBs-ToBeSetupMod-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_ToBeSetupMod_ItemIEs_tags_133, + sizeof(asn_DEF_DRBs_ToBeSetupMod_ItemIEs_tags_133) + /sizeof(asn_DEF_DRBs_ToBeSetupMod_ItemIEs_tags_133[0]), /* 1 */ + asn_DEF_DRBs_ToBeSetupMod_ItemIEs_tags_133, /* Same as above */ + sizeof(asn_DEF_DRBs_ToBeSetupMod_ItemIEs_tags_133) + /sizeof(asn_DEF_DRBs_ToBeSetupMod_ItemIEs_tags_133[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_ToBeSetupMod_ItemIEs_133, + 3, /* Elements count */ + &asn_SPC_DRBs_ToBeSetupMod_ItemIEs_specs_133 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_140[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeModified_ItemIEs__value, choice.DRBs_ToBeModified_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_ToBeModified_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRBs-ToBeModified-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_140[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* DRBs-ToBeModified-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_140 = { + sizeof(struct DRBs_ToBeModified_ItemIEs__value), + offsetof(struct DRBs_ToBeModified_ItemIEs__value, _asn_ctx), + offsetof(struct DRBs_ToBeModified_ItemIEs__value, present), + sizeof(((struct DRBs_ToBeModified_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_140, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_140 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_140, + 1, /* Elements count */ + &asn_SPC_value_specs_140 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRBs_ToBeModified_ItemIEs_137[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeModified_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_138, &asn_PER_memb_id_constr_138, memb_id_constraint_137 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeModified_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_DRBs_ToBeModified_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_139, &asn_PER_memb_criticality_constr_139, memb_criticality_constraint_137 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeModified_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_140, + select_DRBs_ToBeModified_ItemIEs_value_type, + { &asn_OER_memb_value_constr_140, &asn_PER_memb_value_constr_140, memb_value_constraint_137 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_ToBeModified_ItemIEs_tags_137[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_ToBeModified_ItemIEs_tag2el_137[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRBs_ToBeModified_ItemIEs_specs_137 = { + sizeof(struct DRBs_ToBeModified_ItemIEs), + offsetof(struct DRBs_ToBeModified_ItemIEs, _asn_ctx), + asn_MAP_DRBs_ToBeModified_ItemIEs_tag2el_137, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeModified_ItemIEs = { + "DRBs-ToBeModified-ItemIEs", + "DRBs-ToBeModified-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_ToBeModified_ItemIEs_tags_137, + sizeof(asn_DEF_DRBs_ToBeModified_ItemIEs_tags_137) + /sizeof(asn_DEF_DRBs_ToBeModified_ItemIEs_tags_137[0]), /* 1 */ + asn_DEF_DRBs_ToBeModified_ItemIEs_tags_137, /* Same as above */ + sizeof(asn_DEF_DRBs_ToBeModified_ItemIEs_tags_137) + /sizeof(asn_DEF_DRBs_ToBeModified_ItemIEs_tags_137[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_ToBeModified_ItemIEs_137, + 3, /* Elements count */ + &asn_SPC_DRBs_ToBeModified_ItemIEs_specs_137 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_144[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_ToBeReleased_ItemIEs__value, choice.SRBs_ToBeReleased_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_ToBeReleased_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRBs-ToBeReleased-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_144[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SRBs-ToBeReleased-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_144 = { + sizeof(struct SRBs_ToBeReleased_ItemIEs__value), + offsetof(struct SRBs_ToBeReleased_ItemIEs__value, _asn_ctx), + offsetof(struct SRBs_ToBeReleased_ItemIEs__value, present), + sizeof(((struct SRBs_ToBeReleased_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_144, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_144 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_144, + 1, /* Elements count */ + &asn_SPC_value_specs_144 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRBs_ToBeReleased_ItemIEs_141[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_ToBeReleased_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_142, &asn_PER_memb_id_constr_142, memb_id_constraint_141 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRBs_ToBeReleased_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_SRBs_ToBeReleased_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_143, &asn_PER_memb_criticality_constr_143, memb_criticality_constraint_141 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SRBs_ToBeReleased_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_144, + select_SRBs_ToBeReleased_ItemIEs_value_type, + { &asn_OER_memb_value_constr_144, &asn_PER_memb_value_constr_144, memb_value_constraint_141 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_ToBeReleased_ItemIEs_tags_141[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_ToBeReleased_ItemIEs_tag2el_141[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SRBs_ToBeReleased_ItemIEs_specs_141 = { + sizeof(struct SRBs_ToBeReleased_ItemIEs), + offsetof(struct SRBs_ToBeReleased_ItemIEs, _asn_ctx), + asn_MAP_SRBs_ToBeReleased_ItemIEs_tag2el_141, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_ToBeReleased_ItemIEs = { + "SRBs-ToBeReleased-ItemIEs", + "SRBs-ToBeReleased-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_ToBeReleased_ItemIEs_tags_141, + sizeof(asn_DEF_SRBs_ToBeReleased_ItemIEs_tags_141) + /sizeof(asn_DEF_SRBs_ToBeReleased_ItemIEs_tags_141[0]), /* 1 */ + asn_DEF_SRBs_ToBeReleased_ItemIEs_tags_141, /* Same as above */ + sizeof(asn_DEF_SRBs_ToBeReleased_ItemIEs_tags_141) + /sizeof(asn_DEF_SRBs_ToBeReleased_ItemIEs_tags_141[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_ToBeReleased_ItemIEs_141, + 3, /* Elements count */ + &asn_SPC_SRBs_ToBeReleased_ItemIEs_specs_141 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_148[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeReleased_ItemIEs__value, choice.DRBs_ToBeReleased_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_ToBeReleased_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRBs-ToBeReleased-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_148[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* DRBs-ToBeReleased-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_148 = { + sizeof(struct DRBs_ToBeReleased_ItemIEs__value), + offsetof(struct DRBs_ToBeReleased_ItemIEs__value, _asn_ctx), + offsetof(struct DRBs_ToBeReleased_ItemIEs__value, present), + sizeof(((struct DRBs_ToBeReleased_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_148, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_148 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_148, + 1, /* Elements count */ + &asn_SPC_value_specs_148 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRBs_ToBeReleased_ItemIEs_145[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeReleased_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_146, &asn_PER_memb_id_constr_146, memb_id_constraint_145 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeReleased_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_DRBs_ToBeReleased_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_147, &asn_PER_memb_criticality_constr_147, memb_criticality_constraint_145 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DRBs_ToBeReleased_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_148, + select_DRBs_ToBeReleased_ItemIEs_value_type, + { &asn_OER_memb_value_constr_148, &asn_PER_memb_value_constr_148, memb_value_constraint_145 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_ToBeReleased_ItemIEs_tags_145[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_ToBeReleased_ItemIEs_tag2el_145[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRBs_ToBeReleased_ItemIEs_specs_145 = { + sizeof(struct DRBs_ToBeReleased_ItemIEs), + offsetof(struct DRBs_ToBeReleased_ItemIEs, _asn_ctx), + asn_MAP_DRBs_ToBeReleased_ItemIEs_tag2el_145, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeReleased_ItemIEs = { + "DRBs-ToBeReleased-ItemIEs", + "DRBs-ToBeReleased-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_ToBeReleased_ItemIEs_tags_145, + sizeof(asn_DEF_DRBs_ToBeReleased_ItemIEs_tags_145) + /sizeof(asn_DEF_DRBs_ToBeReleased_ItemIEs_tags_145[0]), /* 1 */ + asn_DEF_DRBs_ToBeReleased_ItemIEs_tags_145, /* Same as above */ + sizeof(asn_DEF_DRBs_ToBeReleased_ItemIEs_tags_145) + /sizeof(asn_DEF_DRBs_ToBeReleased_ItemIEs_tags_145[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_ToBeReleased_ItemIEs_145, + 3, /* Elements count */ + &asn_SPC_DRBs_ToBeReleased_ItemIEs_specs_145 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_152[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_SetupMod_ItemIEs__value, choice.DRBs_SetupMod_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_SetupMod_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRBs-SetupMod-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_152[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* DRBs-SetupMod-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_152 = { + sizeof(struct DRBs_SetupMod_ItemIEs__value), + offsetof(struct DRBs_SetupMod_ItemIEs__value, _asn_ctx), + offsetof(struct DRBs_SetupMod_ItemIEs__value, present), + sizeof(((struct DRBs_SetupMod_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_152, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_152 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_152, + 1, /* Elements count */ + &asn_SPC_value_specs_152 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRBs_SetupMod_ItemIEs_149[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_SetupMod_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_150, &asn_PER_memb_id_constr_150, memb_id_constraint_149 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_SetupMod_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_DRBs_SetupMod_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_151, &asn_PER_memb_criticality_constr_151, memb_criticality_constraint_149 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DRBs_SetupMod_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_152, + select_DRBs_SetupMod_ItemIEs_value_type, + { &asn_OER_memb_value_constr_152, &asn_PER_memb_value_constr_152, memb_value_constraint_149 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_SetupMod_ItemIEs_tags_149[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_SetupMod_ItemIEs_tag2el_149[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRBs_SetupMod_ItemIEs_specs_149 = { + sizeof(struct DRBs_SetupMod_ItemIEs), + offsetof(struct DRBs_SetupMod_ItemIEs, _asn_ctx), + asn_MAP_DRBs_SetupMod_ItemIEs_tag2el_149, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_SetupMod_ItemIEs = { + "DRBs-SetupMod-ItemIEs", + "DRBs-SetupMod-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_SetupMod_ItemIEs_tags_149, + sizeof(asn_DEF_DRBs_SetupMod_ItemIEs_tags_149) + /sizeof(asn_DEF_DRBs_SetupMod_ItemIEs_tags_149[0]), /* 1 */ + asn_DEF_DRBs_SetupMod_ItemIEs_tags_149, /* Same as above */ + sizeof(asn_DEF_DRBs_SetupMod_ItemIEs_tags_149) + /sizeof(asn_DEF_DRBs_SetupMod_ItemIEs_tags_149[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_SetupMod_ItemIEs_149, + 3, /* Elements count */ + &asn_SPC_DRBs_SetupMod_ItemIEs_specs_149 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_156[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Modified_ItemIEs__value, choice.DRBs_Modified_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_Modified_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRBs-Modified-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_156[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* DRBs-Modified-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_156 = { + sizeof(struct DRBs_Modified_ItemIEs__value), + offsetof(struct DRBs_Modified_ItemIEs__value, _asn_ctx), + offsetof(struct DRBs_Modified_ItemIEs__value, present), + sizeof(((struct DRBs_Modified_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_156, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_156 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_156, + 1, /* Elements count */ + &asn_SPC_value_specs_156 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRBs_Modified_ItemIEs_153[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Modified_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_154, &asn_PER_memb_id_constr_154, memb_id_constraint_153 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Modified_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_DRBs_Modified_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_155, &asn_PER_memb_criticality_constr_155, memb_criticality_constraint_153 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DRBs_Modified_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_156, + select_DRBs_Modified_ItemIEs_value_type, + { &asn_OER_memb_value_constr_156, &asn_PER_memb_value_constr_156, memb_value_constraint_153 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_Modified_ItemIEs_tags_153[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_Modified_ItemIEs_tag2el_153[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRBs_Modified_ItemIEs_specs_153 = { + sizeof(struct DRBs_Modified_ItemIEs), + offsetof(struct DRBs_Modified_ItemIEs, _asn_ctx), + asn_MAP_DRBs_Modified_ItemIEs_tag2el_153, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_Modified_ItemIEs = { + "DRBs-Modified-ItemIEs", + "DRBs-Modified-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_Modified_ItemIEs_tags_153, + sizeof(asn_DEF_DRBs_Modified_ItemIEs_tags_153) + /sizeof(asn_DEF_DRBs_Modified_ItemIEs_tags_153[0]), /* 1 */ + asn_DEF_DRBs_Modified_ItemIEs_tags_153, /* Same as above */ + sizeof(asn_DEF_DRBs_Modified_ItemIEs_tags_153) + /sizeof(asn_DEF_DRBs_Modified_ItemIEs_tags_153[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_Modified_ItemIEs_153, + 3, /* Elements count */ + &asn_SPC_DRBs_Modified_ItemIEs_specs_153 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_160[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_SetupMod_ItemIEs__value, choice.SRBs_SetupMod_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_SetupMod_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRBs-SetupMod-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_160[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SRBs-SetupMod-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_160 = { + sizeof(struct SRBs_SetupMod_ItemIEs__value), + offsetof(struct SRBs_SetupMod_ItemIEs__value, _asn_ctx), + offsetof(struct SRBs_SetupMod_ItemIEs__value, present), + sizeof(((struct SRBs_SetupMod_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_160, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_160 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_160, + 1, /* Elements count */ + &asn_SPC_value_specs_160 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRBs_SetupMod_ItemIEs_157[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_SetupMod_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_158, &asn_PER_memb_id_constr_158, memb_id_constraint_157 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRBs_SetupMod_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_SRBs_SetupMod_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_159, &asn_PER_memb_criticality_constr_159, memb_criticality_constraint_157 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SRBs_SetupMod_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_160, + select_SRBs_SetupMod_ItemIEs_value_type, + { &asn_OER_memb_value_constr_160, &asn_PER_memb_value_constr_160, memb_value_constraint_157 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_SetupMod_ItemIEs_tags_157[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_SetupMod_ItemIEs_tag2el_157[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SRBs_SetupMod_ItemIEs_specs_157 = { + sizeof(struct SRBs_SetupMod_ItemIEs), + offsetof(struct SRBs_SetupMod_ItemIEs, _asn_ctx), + asn_MAP_SRBs_SetupMod_ItemIEs_tag2el_157, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_SetupMod_ItemIEs = { + "SRBs-SetupMod-ItemIEs", + "SRBs-SetupMod-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_SetupMod_ItemIEs_tags_157, + sizeof(asn_DEF_SRBs_SetupMod_ItemIEs_tags_157) + /sizeof(asn_DEF_SRBs_SetupMod_ItemIEs_tags_157[0]), /* 1 */ + asn_DEF_SRBs_SetupMod_ItemIEs_tags_157, /* Same as above */ + sizeof(asn_DEF_SRBs_SetupMod_ItemIEs_tags_157) + /sizeof(asn_DEF_SRBs_SetupMod_ItemIEs_tags_157[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_SetupMod_ItemIEs_157, + 3, /* Elements count */ + &asn_SPC_SRBs_SetupMod_ItemIEs_specs_157 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_164[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_Modified_ItemIEs__value, choice.SRBs_Modified_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_Modified_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRBs-Modified-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_164[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SRBs-Modified-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_164 = { + sizeof(struct SRBs_Modified_ItemIEs__value), + offsetof(struct SRBs_Modified_ItemIEs__value, _asn_ctx), + offsetof(struct SRBs_Modified_ItemIEs__value, present), + sizeof(((struct SRBs_Modified_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_164, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_164 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_164, + 1, /* Elements count */ + &asn_SPC_value_specs_164 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRBs_Modified_ItemIEs_161[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_Modified_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_162, &asn_PER_memb_id_constr_162, memb_id_constraint_161 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRBs_Modified_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_SRBs_Modified_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_163, &asn_PER_memb_criticality_constr_163, memb_criticality_constraint_161 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SRBs_Modified_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_164, + select_SRBs_Modified_ItemIEs_value_type, + { &asn_OER_memb_value_constr_164, &asn_PER_memb_value_constr_164, memb_value_constraint_161 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_Modified_ItemIEs_tags_161[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_Modified_ItemIEs_tag2el_161[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SRBs_Modified_ItemIEs_specs_161 = { + sizeof(struct SRBs_Modified_ItemIEs), + offsetof(struct SRBs_Modified_ItemIEs, _asn_ctx), + asn_MAP_SRBs_Modified_ItemIEs_tag2el_161, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_Modified_ItemIEs = { + "SRBs-Modified-ItemIEs", + "SRBs-Modified-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_Modified_ItemIEs_tags_161, + sizeof(asn_DEF_SRBs_Modified_ItemIEs_tags_161) + /sizeof(asn_DEF_SRBs_Modified_ItemIEs_tags_161[0]), /* 1 */ + asn_DEF_SRBs_Modified_ItemIEs_tags_161, /* Same as above */ + sizeof(asn_DEF_SRBs_Modified_ItemIEs_tags_161) + /sizeof(asn_DEF_SRBs_Modified_ItemIEs_tags_161[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_Modified_ItemIEs_161, + 3, /* Elements count */ + &asn_SPC_SRBs_Modified_ItemIEs_specs_161 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_168[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_FailedToBeModified_ItemIEs__value, choice.DRBs_FailedToBeModified_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_FailedToBeModified_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRBs-FailedToBeModified-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_168[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* DRBs-FailedToBeModified-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_168 = { + sizeof(struct DRBs_FailedToBeModified_ItemIEs__value), + offsetof(struct DRBs_FailedToBeModified_ItemIEs__value, _asn_ctx), + offsetof(struct DRBs_FailedToBeModified_ItemIEs__value, present), + sizeof(((struct DRBs_FailedToBeModified_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_168, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_168 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_168, + 1, /* Elements count */ + &asn_SPC_value_specs_168 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRBs_FailedToBeModified_ItemIEs_165[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_FailedToBeModified_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_166, &asn_PER_memb_id_constr_166, memb_id_constraint_165 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_FailedToBeModified_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_DRBs_FailedToBeModified_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_167, &asn_PER_memb_criticality_constr_167, memb_criticality_constraint_165 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DRBs_FailedToBeModified_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_168, + select_DRBs_FailedToBeModified_ItemIEs_value_type, + { &asn_OER_memb_value_constr_168, &asn_PER_memb_value_constr_168, memb_value_constraint_165 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_FailedToBeModified_ItemIEs_tags_165[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_FailedToBeModified_ItemIEs_tag2el_165[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRBs_FailedToBeModified_ItemIEs_specs_165 = { + sizeof(struct DRBs_FailedToBeModified_ItemIEs), + offsetof(struct DRBs_FailedToBeModified_ItemIEs, _asn_ctx), + asn_MAP_DRBs_FailedToBeModified_ItemIEs_tag2el_165, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_FailedToBeModified_ItemIEs = { + "DRBs-FailedToBeModified-ItemIEs", + "DRBs-FailedToBeModified-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_FailedToBeModified_ItemIEs_tags_165, + sizeof(asn_DEF_DRBs_FailedToBeModified_ItemIEs_tags_165) + /sizeof(asn_DEF_DRBs_FailedToBeModified_ItemIEs_tags_165[0]), /* 1 */ + asn_DEF_DRBs_FailedToBeModified_ItemIEs_tags_165, /* Same as above */ + sizeof(asn_DEF_DRBs_FailedToBeModified_ItemIEs_tags_165) + /sizeof(asn_DEF_DRBs_FailedToBeModified_ItemIEs_tags_165[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_FailedToBeModified_ItemIEs_165, + 3, /* Elements count */ + &asn_SPC_DRBs_FailedToBeModified_ItemIEs_specs_165 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_172[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_FailedToBeSetupMod_ItemIEs__value, choice.SRBs_FailedToBeSetupMod_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_FailedToBeSetupMod_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRBs-FailedToBeSetupMod-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_172[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SRBs-FailedToBeSetupMod-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_172 = { + sizeof(struct SRBs_FailedToBeSetupMod_ItemIEs__value), + offsetof(struct SRBs_FailedToBeSetupMod_ItemIEs__value, _asn_ctx), + offsetof(struct SRBs_FailedToBeSetupMod_ItemIEs__value, present), + sizeof(((struct SRBs_FailedToBeSetupMod_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_172, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_172 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_172, + 1, /* Elements count */ + &asn_SPC_value_specs_172 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRBs_FailedToBeSetupMod_ItemIEs_169[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_FailedToBeSetupMod_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_170, &asn_PER_memb_id_constr_170, memb_id_constraint_169 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRBs_FailedToBeSetupMod_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_SRBs_FailedToBeSetupMod_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_171, &asn_PER_memb_criticality_constr_171, memb_criticality_constraint_169 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SRBs_FailedToBeSetupMod_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_172, + select_SRBs_FailedToBeSetupMod_ItemIEs_value_type, + { &asn_OER_memb_value_constr_172, &asn_PER_memb_value_constr_172, memb_value_constraint_169 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_FailedToBeSetupMod_ItemIEs_tags_169[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_FailedToBeSetupMod_ItemIEs_tag2el_169[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SRBs_FailedToBeSetupMod_ItemIEs_specs_169 = { + sizeof(struct SRBs_FailedToBeSetupMod_ItemIEs), + offsetof(struct SRBs_FailedToBeSetupMod_ItemIEs, _asn_ctx), + asn_MAP_SRBs_FailedToBeSetupMod_ItemIEs_tag2el_169, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_FailedToBeSetupMod_ItemIEs = { + "SRBs-FailedToBeSetupMod-ItemIEs", + "SRBs-FailedToBeSetupMod-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_FailedToBeSetupMod_ItemIEs_tags_169, + sizeof(asn_DEF_SRBs_FailedToBeSetupMod_ItemIEs_tags_169) + /sizeof(asn_DEF_SRBs_FailedToBeSetupMod_ItemIEs_tags_169[0]), /* 1 */ + asn_DEF_SRBs_FailedToBeSetupMod_ItemIEs_tags_169, /* Same as above */ + sizeof(asn_DEF_SRBs_FailedToBeSetupMod_ItemIEs_tags_169) + /sizeof(asn_DEF_SRBs_FailedToBeSetupMod_ItemIEs_tags_169[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_FailedToBeSetupMod_ItemIEs_169, + 3, /* Elements count */ + &asn_SPC_SRBs_FailedToBeSetupMod_ItemIEs_specs_169 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_176[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_FailedToBeSetupMod_ItemIEs__value, choice.DRBs_FailedToBeSetupMod_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_FailedToBeSetupMod_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRBs-FailedToBeSetupMod-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_176[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* DRBs-FailedToBeSetupMod-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_176 = { + sizeof(struct DRBs_FailedToBeSetupMod_ItemIEs__value), + offsetof(struct DRBs_FailedToBeSetupMod_ItemIEs__value, _asn_ctx), + offsetof(struct DRBs_FailedToBeSetupMod_ItemIEs__value, present), + sizeof(((struct DRBs_FailedToBeSetupMod_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_176, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_176 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_176, + 1, /* Elements count */ + &asn_SPC_value_specs_176 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRBs_FailedToBeSetupMod_ItemIEs_173[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_FailedToBeSetupMod_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_174, &asn_PER_memb_id_constr_174, memb_id_constraint_173 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_FailedToBeSetupMod_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_DRBs_FailedToBeSetupMod_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_175, &asn_PER_memb_criticality_constr_175, memb_criticality_constraint_173 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DRBs_FailedToBeSetupMod_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_176, + select_DRBs_FailedToBeSetupMod_ItemIEs_value_type, + { &asn_OER_memb_value_constr_176, &asn_PER_memb_value_constr_176, memb_value_constraint_173 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_FailedToBeSetupMod_ItemIEs_tags_173[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_FailedToBeSetupMod_ItemIEs_tag2el_173[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRBs_FailedToBeSetupMod_ItemIEs_specs_173 = { + sizeof(struct DRBs_FailedToBeSetupMod_ItemIEs), + offsetof(struct DRBs_FailedToBeSetupMod_ItemIEs, _asn_ctx), + asn_MAP_DRBs_FailedToBeSetupMod_ItemIEs_tag2el_173, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_FailedToBeSetupMod_ItemIEs = { + "DRBs-FailedToBeSetupMod-ItemIEs", + "DRBs-FailedToBeSetupMod-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_FailedToBeSetupMod_ItemIEs_tags_173, + sizeof(asn_DEF_DRBs_FailedToBeSetupMod_ItemIEs_tags_173) + /sizeof(asn_DEF_DRBs_FailedToBeSetupMod_ItemIEs_tags_173[0]), /* 1 */ + asn_DEF_DRBs_FailedToBeSetupMod_ItemIEs_tags_173, /* Same as above */ + sizeof(asn_DEF_DRBs_FailedToBeSetupMod_ItemIEs_tags_173) + /sizeof(asn_DEF_DRBs_FailedToBeSetupMod_ItemIEs_tags_173[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_FailedToBeSetupMod_ItemIEs_173, + 3, /* Elements count */ + &asn_SPC_DRBs_FailedToBeSetupMod_ItemIEs_specs_173 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_180[] = { + { ATF_NOFLAGS, 0, offsetof(struct SCell_FailedtoSetupMod_ItemIEs__value, choice.SCell_FailedtoSetupMod_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SCell_FailedtoSetupMod_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SCell-FailedtoSetupMod-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_180[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SCell-FailedtoSetupMod-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_180 = { + sizeof(struct SCell_FailedtoSetupMod_ItemIEs__value), + offsetof(struct SCell_FailedtoSetupMod_ItemIEs__value, _asn_ctx), + offsetof(struct SCell_FailedtoSetupMod_ItemIEs__value, present), + sizeof(((struct SCell_FailedtoSetupMod_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_180, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_180 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_180, + 1, /* Elements count */ + &asn_SPC_value_specs_180 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SCell_FailedtoSetupMod_ItemIEs_177[] = { + { ATF_NOFLAGS, 0, offsetof(struct SCell_FailedtoSetupMod_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_178, &asn_PER_memb_id_constr_178, memb_id_constraint_177 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SCell_FailedtoSetupMod_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_SCell_FailedtoSetupMod_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_179, &asn_PER_memb_criticality_constr_179, memb_criticality_constraint_177 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SCell_FailedtoSetupMod_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_180, + select_SCell_FailedtoSetupMod_ItemIEs_value_type, + { &asn_OER_memb_value_constr_180, &asn_PER_memb_value_constr_180, memb_value_constraint_177 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_SCell_FailedtoSetupMod_ItemIEs_tags_177[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SCell_FailedtoSetupMod_ItemIEs_tag2el_177[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SCell_FailedtoSetupMod_ItemIEs_specs_177 = { + sizeof(struct SCell_FailedtoSetupMod_ItemIEs), + offsetof(struct SCell_FailedtoSetupMod_ItemIEs, _asn_ctx), + asn_MAP_SCell_FailedtoSetupMod_ItemIEs_tag2el_177, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SCell_FailedtoSetupMod_ItemIEs = { + "SCell-FailedtoSetupMod-ItemIEs", + "SCell-FailedtoSetupMod-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_SCell_FailedtoSetupMod_ItemIEs_tags_177, + sizeof(asn_DEF_SCell_FailedtoSetupMod_ItemIEs_tags_177) + /sizeof(asn_DEF_SCell_FailedtoSetupMod_ItemIEs_tags_177[0]), /* 1 */ + asn_DEF_SCell_FailedtoSetupMod_ItemIEs_tags_177, /* Same as above */ + sizeof(asn_DEF_SCell_FailedtoSetupMod_ItemIEs_tags_177) + /sizeof(asn_DEF_SCell_FailedtoSetupMod_ItemIEs_tags_177[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SCell_FailedtoSetupMod_ItemIEs_177, + 3, /* Elements count */ + &asn_SPC_SCell_FailedtoSetupMod_ItemIEs_specs_177 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_184[] = { + { ATF_NOFLAGS, 0, offsetof(struct Associated_SCell_ItemIEs__value, choice.Associated_SCell_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Associated_SCell_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Associated-SCell-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_184[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Associated-SCell-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_184 = { + sizeof(struct Associated_SCell_ItemIEs__value), + offsetof(struct Associated_SCell_ItemIEs__value, _asn_ctx), + offsetof(struct Associated_SCell_ItemIEs__value, present), + sizeof(((struct Associated_SCell_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_184, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_184 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_184, + 1, /* Elements count */ + &asn_SPC_value_specs_184 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Associated_SCell_ItemIEs_181[] = { + { ATF_NOFLAGS, 0, offsetof(struct Associated_SCell_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_182, &asn_PER_memb_id_constr_182, memb_id_constraint_181 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Associated_SCell_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_Associated_SCell_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_183, &asn_PER_memb_criticality_constr_183, memb_criticality_constraint_181 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Associated_SCell_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_184, + select_Associated_SCell_ItemIEs_value_type, + { &asn_OER_memb_value_constr_184, &asn_PER_memb_value_constr_184, memb_value_constraint_181 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_Associated_SCell_ItemIEs_tags_181[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Associated_SCell_ItemIEs_tag2el_181[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Associated_SCell_ItemIEs_specs_181 = { + sizeof(struct Associated_SCell_ItemIEs), + offsetof(struct Associated_SCell_ItemIEs, _asn_ctx), + asn_MAP_Associated_SCell_ItemIEs_tag2el_181, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Associated_SCell_ItemIEs = { + "Associated-SCell-ItemIEs", + "Associated-SCell-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_Associated_SCell_ItemIEs_tags_181, + sizeof(asn_DEF_Associated_SCell_ItemIEs_tags_181) + /sizeof(asn_DEF_Associated_SCell_ItemIEs_tags_181[0]), /* 1 */ + asn_DEF_Associated_SCell_ItemIEs_tags_181, /* Same as above */ + sizeof(asn_DEF_Associated_SCell_ItemIEs_tags_181) + /sizeof(asn_DEF_Associated_SCell_ItemIEs_tags_181[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Associated_SCell_ItemIEs_181, + 3, /* Elements count */ + &asn_SPC_Associated_SCell_ItemIEs_specs_181 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_188[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Required_ToBeModified_ItemIEs__value, choice.DRBs_Required_ToBeModified_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_Required_ToBeModified_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRBs-Required-ToBeModified-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_188[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* DRBs-Required-ToBeModified-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_188 = { + sizeof(struct DRBs_Required_ToBeModified_ItemIEs__value), + offsetof(struct DRBs_Required_ToBeModified_ItemIEs__value, _asn_ctx), + offsetof(struct DRBs_Required_ToBeModified_ItemIEs__value, present), + sizeof(((struct DRBs_Required_ToBeModified_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_188, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_188 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_188, + 1, /* Elements count */ + &asn_SPC_value_specs_188 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRBs_Required_ToBeModified_ItemIEs_185[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Required_ToBeModified_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_186, &asn_PER_memb_id_constr_186, memb_id_constraint_185 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Required_ToBeModified_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_DRBs_Required_ToBeModified_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_187, &asn_PER_memb_criticality_constr_187, memb_criticality_constraint_185 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DRBs_Required_ToBeModified_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_188, + select_DRBs_Required_ToBeModified_ItemIEs_value_type, + { &asn_OER_memb_value_constr_188, &asn_PER_memb_value_constr_188, memb_value_constraint_185 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_Required_ToBeModified_ItemIEs_tags_185[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_Required_ToBeModified_ItemIEs_tag2el_185[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRBs_Required_ToBeModified_ItemIEs_specs_185 = { + sizeof(struct DRBs_Required_ToBeModified_ItemIEs), + offsetof(struct DRBs_Required_ToBeModified_ItemIEs, _asn_ctx), + asn_MAP_DRBs_Required_ToBeModified_ItemIEs_tag2el_185, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_Required_ToBeModified_ItemIEs = { + "DRBs-Required-ToBeModified-ItemIEs", + "DRBs-Required-ToBeModified-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_Required_ToBeModified_ItemIEs_tags_185, + sizeof(asn_DEF_DRBs_Required_ToBeModified_ItemIEs_tags_185) + /sizeof(asn_DEF_DRBs_Required_ToBeModified_ItemIEs_tags_185[0]), /* 1 */ + asn_DEF_DRBs_Required_ToBeModified_ItemIEs_tags_185, /* Same as above */ + sizeof(asn_DEF_DRBs_Required_ToBeModified_ItemIEs_tags_185) + /sizeof(asn_DEF_DRBs_Required_ToBeModified_ItemIEs_tags_185[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_Required_ToBeModified_ItemIEs_185, + 3, /* Elements count */ + &asn_SPC_DRBs_Required_ToBeModified_ItemIEs_specs_185 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_192[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Required_ToBeReleased_ItemIEs__value, choice.DRBs_Required_ToBeReleased_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_Required_ToBeReleased_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRBs-Required-ToBeReleased-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_192[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* DRBs-Required-ToBeReleased-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_192 = { + sizeof(struct DRBs_Required_ToBeReleased_ItemIEs__value), + offsetof(struct DRBs_Required_ToBeReleased_ItemIEs__value, _asn_ctx), + offsetof(struct DRBs_Required_ToBeReleased_ItemIEs__value, present), + sizeof(((struct DRBs_Required_ToBeReleased_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_192, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_192 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_192, + 1, /* Elements count */ + &asn_SPC_value_specs_192 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRBs_Required_ToBeReleased_ItemIEs_189[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Required_ToBeReleased_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_190, &asn_PER_memb_id_constr_190, memb_id_constraint_189 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_Required_ToBeReleased_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_DRBs_Required_ToBeReleased_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_191, &asn_PER_memb_criticality_constr_191, memb_criticality_constraint_189 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DRBs_Required_ToBeReleased_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_192, + select_DRBs_Required_ToBeReleased_ItemIEs_value_type, + { &asn_OER_memb_value_constr_192, &asn_PER_memb_value_constr_192, memb_value_constraint_189 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_Required_ToBeReleased_ItemIEs_tags_189[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_Required_ToBeReleased_ItemIEs_tag2el_189[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRBs_Required_ToBeReleased_ItemIEs_specs_189 = { + sizeof(struct DRBs_Required_ToBeReleased_ItemIEs), + offsetof(struct DRBs_Required_ToBeReleased_ItemIEs, _asn_ctx), + asn_MAP_DRBs_Required_ToBeReleased_ItemIEs_tag2el_189, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_Required_ToBeReleased_ItemIEs = { + "DRBs-Required-ToBeReleased-ItemIEs", + "DRBs-Required-ToBeReleased-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_Required_ToBeReleased_ItemIEs_tags_189, + sizeof(asn_DEF_DRBs_Required_ToBeReleased_ItemIEs_tags_189) + /sizeof(asn_DEF_DRBs_Required_ToBeReleased_ItemIEs_tags_189[0]), /* 1 */ + asn_DEF_DRBs_Required_ToBeReleased_ItemIEs_tags_189, /* Same as above */ + sizeof(asn_DEF_DRBs_Required_ToBeReleased_ItemIEs_tags_189) + /sizeof(asn_DEF_DRBs_Required_ToBeReleased_ItemIEs_tags_189[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_Required_ToBeReleased_ItemIEs_189, + 3, /* Elements count */ + &asn_SPC_DRBs_Required_ToBeReleased_ItemIEs_specs_189 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_196[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_Required_ToBeReleased_ItemIEs__value, choice.SRBs_Required_ToBeReleased_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_Required_ToBeReleased_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRBs-Required-ToBeReleased-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_196[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SRBs-Required-ToBeReleased-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_196 = { + sizeof(struct SRBs_Required_ToBeReleased_ItemIEs__value), + offsetof(struct SRBs_Required_ToBeReleased_ItemIEs__value, _asn_ctx), + offsetof(struct SRBs_Required_ToBeReleased_ItemIEs__value, present), + sizeof(((struct SRBs_Required_ToBeReleased_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_196, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_196 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_196, + 1, /* Elements count */ + &asn_SPC_value_specs_196 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRBs_Required_ToBeReleased_ItemIEs_193[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_Required_ToBeReleased_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_194, &asn_PER_memb_id_constr_194, memb_id_constraint_193 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRBs_Required_ToBeReleased_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_SRBs_Required_ToBeReleased_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_195, &asn_PER_memb_criticality_constr_195, memb_criticality_constraint_193 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SRBs_Required_ToBeReleased_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_196, + select_SRBs_Required_ToBeReleased_ItemIEs_value_type, + { &asn_OER_memb_value_constr_196, &asn_PER_memb_value_constr_196, memb_value_constraint_193 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_Required_ToBeReleased_ItemIEs_tags_193[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_Required_ToBeReleased_ItemIEs_tag2el_193[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SRBs_Required_ToBeReleased_ItemIEs_specs_193 = { + sizeof(struct SRBs_Required_ToBeReleased_ItemIEs), + offsetof(struct SRBs_Required_ToBeReleased_ItemIEs, _asn_ctx), + asn_MAP_SRBs_Required_ToBeReleased_ItemIEs_tag2el_193, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_Required_ToBeReleased_ItemIEs = { + "SRBs-Required-ToBeReleased-ItemIEs", + "SRBs-Required-ToBeReleased-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_Required_ToBeReleased_ItemIEs_tags_193, + sizeof(asn_DEF_SRBs_Required_ToBeReleased_ItemIEs_tags_193) + /sizeof(asn_DEF_SRBs_Required_ToBeReleased_ItemIEs_tags_193[0]), /* 1 */ + asn_DEF_SRBs_Required_ToBeReleased_ItemIEs_tags_193, /* Same as above */ + sizeof(asn_DEF_SRBs_Required_ToBeReleased_ItemIEs_tags_193) + /sizeof(asn_DEF_SRBs_Required_ToBeReleased_ItemIEs_tags_193[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_Required_ToBeReleased_ItemIEs_193, + 3, /* Elements count */ + &asn_SPC_SRBs_Required_ToBeReleased_ItemIEs_specs_193 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_200[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ModifiedConf_ItemIEs__value, choice.DRBs_ModifiedConf_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_ModifiedConf_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRBs-ModifiedConf-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_200[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* DRBs-ModifiedConf-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_200 = { + sizeof(struct DRBs_ModifiedConf_ItemIEs__value), + offsetof(struct DRBs_ModifiedConf_ItemIEs__value, _asn_ctx), + offsetof(struct DRBs_ModifiedConf_ItemIEs__value, present), + sizeof(((struct DRBs_ModifiedConf_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_200, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_200 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_200, + 1, /* Elements count */ + &asn_SPC_value_specs_200 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRBs_ModifiedConf_ItemIEs_197[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ModifiedConf_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_198, &asn_PER_memb_id_constr_198, memb_id_constraint_197 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRBs_ModifiedConf_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_DRBs_ModifiedConf_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_199, &asn_PER_memb_criticality_constr_199, memb_criticality_constraint_197 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DRBs_ModifiedConf_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_200, + select_DRBs_ModifiedConf_ItemIEs_value_type, + { &asn_OER_memb_value_constr_200, &asn_PER_memb_value_constr_200, memb_value_constraint_197 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRBs_ModifiedConf_ItemIEs_tags_197[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRBs_ModifiedConf_ItemIEs_tag2el_197[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRBs_ModifiedConf_ItemIEs_specs_197 = { + sizeof(struct DRBs_ModifiedConf_ItemIEs), + offsetof(struct DRBs_ModifiedConf_ItemIEs, _asn_ctx), + asn_MAP_DRBs_ModifiedConf_ItemIEs_tag2el_197, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRBs_ModifiedConf_ItemIEs = { + "DRBs-ModifiedConf-ItemIEs", + "DRBs-ModifiedConf-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRBs_ModifiedConf_ItemIEs_tags_197, + sizeof(asn_DEF_DRBs_ModifiedConf_ItemIEs_tags_197) + /sizeof(asn_DEF_DRBs_ModifiedConf_ItemIEs_tags_197[0]), /* 1 */ + asn_DEF_DRBs_ModifiedConf_ItemIEs_tags_197, /* Same as above */ + sizeof(asn_DEF_DRBs_ModifiedConf_ItemIEs_tags_197) + /sizeof(asn_DEF_DRBs_ModifiedConf_ItemIEs_tags_197[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_ModifiedConf_ItemIEs_197, + 3, /* Elements count */ + &asn_SPC_DRBs_ModifiedConf_ItemIEs_specs_197 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_204[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_To_Be_Broadcast_List_ItemIEs__value, choice.Cells_To_Be_Broadcast_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_To_Be_Broadcast_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cells-To-Be-Broadcast-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_204[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Cells-To-Be-Broadcast-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_204 = { + sizeof(struct Cells_To_Be_Broadcast_List_ItemIEs__value), + offsetof(struct Cells_To_Be_Broadcast_List_ItemIEs__value, _asn_ctx), + offsetof(struct Cells_To_Be_Broadcast_List_ItemIEs__value, present), + sizeof(((struct Cells_To_Be_Broadcast_List_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_204, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_204 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_204, + 1, /* Elements count */ + &asn_SPC_value_specs_204 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Cells_To_Be_Broadcast_List_ItemIEs_201[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_To_Be_Broadcast_List_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_202, &asn_PER_memb_id_constr_202, memb_id_constraint_201 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cells_To_Be_Broadcast_List_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_Cells_To_Be_Broadcast_List_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_203, &asn_PER_memb_criticality_constr_203, memb_criticality_constraint_201 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Cells_To_Be_Broadcast_List_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_204, + select_Cells_To_Be_Broadcast_List_ItemIEs_value_type, + { &asn_OER_memb_value_constr_204, &asn_PER_memb_value_constr_204, memb_value_constraint_201 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_Cells_To_Be_Broadcast_List_ItemIEs_tags_201[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Cells_To_Be_Broadcast_List_ItemIEs_tag2el_201[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Cells_To_Be_Broadcast_List_ItemIEs_specs_201 = { + sizeof(struct Cells_To_Be_Broadcast_List_ItemIEs), + offsetof(struct Cells_To_Be_Broadcast_List_ItemIEs, _asn_ctx), + asn_MAP_Cells_To_Be_Broadcast_List_ItemIEs_tag2el_201, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_To_Be_Broadcast_List_ItemIEs = { + "Cells-To-Be-Broadcast-List-ItemIEs", + "Cells-To-Be-Broadcast-List-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_Cells_To_Be_Broadcast_List_ItemIEs_tags_201, + sizeof(asn_DEF_Cells_To_Be_Broadcast_List_ItemIEs_tags_201) + /sizeof(asn_DEF_Cells_To_Be_Broadcast_List_ItemIEs_tags_201[0]), /* 1 */ + asn_DEF_Cells_To_Be_Broadcast_List_ItemIEs_tags_201, /* Same as above */ + sizeof(asn_DEF_Cells_To_Be_Broadcast_List_ItemIEs_tags_201) + /sizeof(asn_DEF_Cells_To_Be_Broadcast_List_ItemIEs_tags_201[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_To_Be_Broadcast_List_ItemIEs_201, + 3, /* Elements count */ + &asn_SPC_Cells_To_Be_Broadcast_List_ItemIEs_specs_201 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_208[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_Broadcast_Completed_List_ItemIEs__value, choice.Cells_Broadcast_Completed_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_Broadcast_Completed_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cells-Broadcast-Completed-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_208[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Cells-Broadcast-Completed-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_208 = { + sizeof(struct Cells_Broadcast_Completed_List_ItemIEs__value), + offsetof(struct Cells_Broadcast_Completed_List_ItemIEs__value, _asn_ctx), + offsetof(struct Cells_Broadcast_Completed_List_ItemIEs__value, present), + sizeof(((struct Cells_Broadcast_Completed_List_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_208, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_208 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_208, + 1, /* Elements count */ + &asn_SPC_value_specs_208 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Cells_Broadcast_Completed_List_ItemIEs_205[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_Broadcast_Completed_List_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_206, &asn_PER_memb_id_constr_206, memb_id_constraint_205 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cells_Broadcast_Completed_List_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_Cells_Broadcast_Completed_List_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_207, &asn_PER_memb_criticality_constr_207, memb_criticality_constraint_205 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Cells_Broadcast_Completed_List_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_208, + select_Cells_Broadcast_Completed_List_ItemIEs_value_type, + { &asn_OER_memb_value_constr_208, &asn_PER_memb_value_constr_208, memb_value_constraint_205 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_Cells_Broadcast_Completed_List_ItemIEs_tags_205[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Cells_Broadcast_Completed_List_ItemIEs_tag2el_205[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Cells_Broadcast_Completed_List_ItemIEs_specs_205 = { + sizeof(struct Cells_Broadcast_Completed_List_ItemIEs), + offsetof(struct Cells_Broadcast_Completed_List_ItemIEs, _asn_ctx), + asn_MAP_Cells_Broadcast_Completed_List_ItemIEs_tag2el_205, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_Broadcast_Completed_List_ItemIEs = { + "Cells-Broadcast-Completed-List-ItemIEs", + "Cells-Broadcast-Completed-List-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_Cells_Broadcast_Completed_List_ItemIEs_tags_205, + sizeof(asn_DEF_Cells_Broadcast_Completed_List_ItemIEs_tags_205) + /sizeof(asn_DEF_Cells_Broadcast_Completed_List_ItemIEs_tags_205[0]), /* 1 */ + asn_DEF_Cells_Broadcast_Completed_List_ItemIEs_tags_205, /* Same as above */ + sizeof(asn_DEF_Cells_Broadcast_Completed_List_ItemIEs_tags_205) + /sizeof(asn_DEF_Cells_Broadcast_Completed_List_ItemIEs_tags_205[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_Broadcast_Completed_List_ItemIEs_205, + 3, /* Elements count */ + &asn_SPC_Cells_Broadcast_Completed_List_ItemIEs_specs_205 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_212[] = { + { ATF_NOFLAGS, 0, offsetof(struct Broadcast_To_Be_Cancelled_List_ItemIEs__value, choice.Broadcast_To_Be_Cancelled_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Broadcast_To_Be_Cancelled_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Broadcast-To-Be-Cancelled-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_212[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Broadcast-To-Be-Cancelled-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_212 = { + sizeof(struct Broadcast_To_Be_Cancelled_List_ItemIEs__value), + offsetof(struct Broadcast_To_Be_Cancelled_List_ItemIEs__value, _asn_ctx), + offsetof(struct Broadcast_To_Be_Cancelled_List_ItemIEs__value, present), + sizeof(((struct Broadcast_To_Be_Cancelled_List_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_212, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_212 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_212, + 1, /* Elements count */ + &asn_SPC_value_specs_212 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Broadcast_To_Be_Cancelled_List_ItemIEs_209[] = { + { ATF_NOFLAGS, 0, offsetof(struct Broadcast_To_Be_Cancelled_List_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_210, &asn_PER_memb_id_constr_210, memb_id_constraint_209 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Broadcast_To_Be_Cancelled_List_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_Broadcast_To_Be_Cancelled_List_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_211, &asn_PER_memb_criticality_constr_211, memb_criticality_constraint_209 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Broadcast_To_Be_Cancelled_List_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_212, + select_Broadcast_To_Be_Cancelled_List_ItemIEs_value_type, + { &asn_OER_memb_value_constr_212, &asn_PER_memb_value_constr_212, memb_value_constraint_209 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_Broadcast_To_Be_Cancelled_List_ItemIEs_tags_209[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Broadcast_To_Be_Cancelled_List_ItemIEs_tag2el_209[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Broadcast_To_Be_Cancelled_List_ItemIEs_specs_209 = { + sizeof(struct Broadcast_To_Be_Cancelled_List_ItemIEs), + offsetof(struct Broadcast_To_Be_Cancelled_List_ItemIEs, _asn_ctx), + asn_MAP_Broadcast_To_Be_Cancelled_List_ItemIEs_tag2el_209, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Broadcast_To_Be_Cancelled_List_ItemIEs = { + "Broadcast-To-Be-Cancelled-List-ItemIEs", + "Broadcast-To-Be-Cancelled-List-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_Broadcast_To_Be_Cancelled_List_ItemIEs_tags_209, + sizeof(asn_DEF_Broadcast_To_Be_Cancelled_List_ItemIEs_tags_209) + /sizeof(asn_DEF_Broadcast_To_Be_Cancelled_List_ItemIEs_tags_209[0]), /* 1 */ + asn_DEF_Broadcast_To_Be_Cancelled_List_ItemIEs_tags_209, /* Same as above */ + sizeof(asn_DEF_Broadcast_To_Be_Cancelled_List_ItemIEs_tags_209) + /sizeof(asn_DEF_Broadcast_To_Be_Cancelled_List_ItemIEs_tags_209[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Broadcast_To_Be_Cancelled_List_ItemIEs_209, + 3, /* Elements count */ + &asn_SPC_Broadcast_To_Be_Cancelled_List_ItemIEs_specs_209 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_216[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_Broadcast_Cancelled_List_ItemIEs__value, choice.Cells_Broadcast_Cancelled_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_Broadcast_Cancelled_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cells-Broadcast-Cancelled-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_216[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Cells-Broadcast-Cancelled-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_216 = { + sizeof(struct Cells_Broadcast_Cancelled_List_ItemIEs__value), + offsetof(struct Cells_Broadcast_Cancelled_List_ItemIEs__value, _asn_ctx), + offsetof(struct Cells_Broadcast_Cancelled_List_ItemIEs__value, present), + sizeof(((struct Cells_Broadcast_Cancelled_List_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_216, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_216 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_216, + 1, /* Elements count */ + &asn_SPC_value_specs_216 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Cells_Broadcast_Cancelled_List_ItemIEs_213[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cells_Broadcast_Cancelled_List_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_214, &asn_PER_memb_id_constr_214, memb_id_constraint_213 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cells_Broadcast_Cancelled_List_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_Cells_Broadcast_Cancelled_List_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_215, &asn_PER_memb_criticality_constr_215, memb_criticality_constraint_213 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Cells_Broadcast_Cancelled_List_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_216, + select_Cells_Broadcast_Cancelled_List_ItemIEs_value_type, + { &asn_OER_memb_value_constr_216, &asn_PER_memb_value_constr_216, memb_value_constraint_213 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_Cells_Broadcast_Cancelled_List_ItemIEs_tags_213[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Cells_Broadcast_Cancelled_List_ItemIEs_tag2el_213[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Cells_Broadcast_Cancelled_List_ItemIEs_specs_213 = { + sizeof(struct Cells_Broadcast_Cancelled_List_ItemIEs), + offsetof(struct Cells_Broadcast_Cancelled_List_ItemIEs, _asn_ctx), + asn_MAP_Cells_Broadcast_Cancelled_List_ItemIEs_tag2el_213, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Cells_Broadcast_Cancelled_List_ItemIEs = { + "Cells-Broadcast-Cancelled-List-ItemIEs", + "Cells-Broadcast-Cancelled-List-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_Cells_Broadcast_Cancelled_List_ItemIEs_tags_213, + sizeof(asn_DEF_Cells_Broadcast_Cancelled_List_ItemIEs_tags_213) + /sizeof(asn_DEF_Cells_Broadcast_Cancelled_List_ItemIEs_tags_213[0]), /* 1 */ + asn_DEF_Cells_Broadcast_Cancelled_List_ItemIEs_tags_213, /* Same as above */ + sizeof(asn_DEF_Cells_Broadcast_Cancelled_List_ItemIEs_tags_213) + /sizeof(asn_DEF_Cells_Broadcast_Cancelled_List_ItemIEs_tags_213[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_Broadcast_Cancelled_List_ItemIEs_213, + 3, /* Elements count */ + &asn_SPC_Cells_Broadcast_Cancelled_List_ItemIEs_specs_213 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_220[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRB_Activity_ItemIEs__value, choice.DRB_Activity_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRB_Activity_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRB-Activity-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_220[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* DRB-Activity-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_220 = { + sizeof(struct DRB_Activity_ItemIEs__value), + offsetof(struct DRB_Activity_ItemIEs__value, _asn_ctx), + offsetof(struct DRB_Activity_ItemIEs__value, present), + sizeof(((struct DRB_Activity_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_220, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_220 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_220, + 1, /* Elements count */ + &asn_SPC_value_specs_220 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRB_Activity_ItemIEs_217[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRB_Activity_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_218, &asn_PER_memb_id_constr_218, memb_id_constraint_217 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRB_Activity_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_DRB_Activity_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_219, &asn_PER_memb_criticality_constr_219, memb_criticality_constraint_217 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DRB_Activity_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_220, + select_DRB_Activity_ItemIEs_value_type, + { &asn_OER_memb_value_constr_220, &asn_PER_memb_value_constr_220, memb_value_constraint_217 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRB_Activity_ItemIEs_tags_217[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRB_Activity_ItemIEs_tag2el_217[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRB_Activity_ItemIEs_specs_217 = { + sizeof(struct DRB_Activity_ItemIEs), + offsetof(struct DRB_Activity_ItemIEs, _asn_ctx), + asn_MAP_DRB_Activity_ItemIEs_tag2el_217, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRB_Activity_ItemIEs = { + "DRB-Activity-ItemIEs", + "DRB-Activity-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRB_Activity_ItemIEs_tags_217, + sizeof(asn_DEF_DRB_Activity_ItemIEs_tags_217) + /sizeof(asn_DEF_DRB_Activity_ItemIEs_tags_217[0]), /* 1 */ + asn_DEF_DRB_Activity_ItemIEs_tags_217, /* Same as above */ + sizeof(asn_DEF_DRB_Activity_ItemIEs_tags_217) + /sizeof(asn_DEF_DRB_Activity_ItemIEs_tags_217[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRB_Activity_ItemIEs_217, + 3, /* Elements count */ + &asn_SPC_DRB_Activity_ItemIEs_specs_217 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_224[] = { + { ATF_NOFLAGS, 0, offsetof(struct PagingCell_ItemIEs__value, choice.PagingCell_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PagingCell_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PagingCell-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_224[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* PagingCell-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_224 = { + sizeof(struct PagingCell_ItemIEs__value), + offsetof(struct PagingCell_ItemIEs__value, _asn_ctx), + offsetof(struct PagingCell_ItemIEs__value, present), + sizeof(((struct PagingCell_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_224, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_224 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_224, + 1, /* Elements count */ + &asn_SPC_value_specs_224 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PagingCell_ItemIEs_221[] = { + { ATF_NOFLAGS, 0, offsetof(struct PagingCell_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_222, &asn_PER_memb_id_constr_222, memb_id_constraint_221 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct PagingCell_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_PagingCell_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_223, &asn_PER_memb_criticality_constr_223, memb_criticality_constraint_221 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct PagingCell_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_224, + select_PagingCell_ItemIEs_value_type, + { &asn_OER_memb_value_constr_224, &asn_PER_memb_value_constr_224, memb_value_constraint_221 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_PagingCell_ItemIEs_tags_221[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PagingCell_ItemIEs_tag2el_221[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PagingCell_ItemIEs_specs_221 = { + sizeof(struct PagingCell_ItemIEs), + offsetof(struct PagingCell_ItemIEs, _asn_ctx), + asn_MAP_PagingCell_ItemIEs_tag2el_221, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PagingCell_ItemIEs = { + "PagingCell-ItemIEs", + "PagingCell-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_PagingCell_ItemIEs_tags_221, + sizeof(asn_DEF_PagingCell_ItemIEs_tags_221) + /sizeof(asn_DEF_PagingCell_ItemIEs_tags_221[0]), /* 1 */ + asn_DEF_PagingCell_ItemIEs_tags_221, /* Same as above */ + sizeof(asn_DEF_PagingCell_ItemIEs_tags_221) + /sizeof(asn_DEF_PagingCell_ItemIEs_tags_221[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PagingCell_ItemIEs_221, + 3, /* Elements count */ + &asn_SPC_PagingCell_ItemIEs_specs_221 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_228[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRB_Notify_ItemIEs__value, choice.DRB_Notify_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRB_Notify_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRB-Notify-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_228[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* DRB-Notify-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_228 = { + sizeof(struct DRB_Notify_ItemIEs__value), + offsetof(struct DRB_Notify_ItemIEs__value, _asn_ctx), + offsetof(struct DRB_Notify_ItemIEs__value, present), + sizeof(((struct DRB_Notify_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_228, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_228 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_228, + 1, /* Elements count */ + &asn_SPC_value_specs_228 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRB_Notify_ItemIEs_225[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRB_Notify_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_226, &asn_PER_memb_id_constr_226, memb_id_constraint_225 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRB_Notify_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_DRB_Notify_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_227, &asn_PER_memb_criticality_constr_227, memb_criticality_constraint_225 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DRB_Notify_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_228, + select_DRB_Notify_ItemIEs_value_type, + { &asn_OER_memb_value_constr_228, &asn_PER_memb_value_constr_228, memb_value_constraint_225 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRB_Notify_ItemIEs_tags_225[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DRB_Notify_ItemIEs_tag2el_225[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DRB_Notify_ItemIEs_specs_225 = { + sizeof(struct DRB_Notify_ItemIEs), + offsetof(struct DRB_Notify_ItemIEs, _asn_ctx), + asn_MAP_DRB_Notify_ItemIEs_tag2el_225, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRB_Notify_ItemIEs = { + "DRB-Notify-ItemIEs", + "DRB-Notify-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_DRB_Notify_ItemIEs_tags_225, + sizeof(asn_DEF_DRB_Notify_ItemIEs_tags_225) + /sizeof(asn_DEF_DRB_Notify_ItemIEs_tags_225[0]), /* 1 */ + asn_DEF_DRB_Notify_ItemIEs_tags_225, /* Same as above */ + sizeof(asn_DEF_DRB_Notify_ItemIEs_tags_225) + /sizeof(asn_DEF_DRB_Notify_ItemIEs_tags_225[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRB_Notify_ItemIEs_225, + 3, /* Elements count */ + &asn_SPC_DRB_Notify_ItemIEs_specs_225 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_232[] = { + { ATF_NOFLAGS, 0, offsetof(struct NR_CGI_List_For_Restart_List_ItemIEs__value, choice.NR_CGI_List_For_Restart_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NR_CGI_List_For_Restart_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NR-CGI-List-For-Restart-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_232[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* NR-CGI-List-For-Restart-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_232 = { + sizeof(struct NR_CGI_List_For_Restart_List_ItemIEs__value), + offsetof(struct NR_CGI_List_For_Restart_List_ItemIEs__value, _asn_ctx), + offsetof(struct NR_CGI_List_For_Restart_List_ItemIEs__value, present), + sizeof(((struct NR_CGI_List_For_Restart_List_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_232, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_232 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_232, + 1, /* Elements count */ + &asn_SPC_value_specs_232 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_NR_CGI_List_For_Restart_List_ItemIEs_229[] = { + { ATF_NOFLAGS, 0, offsetof(struct NR_CGI_List_For_Restart_List_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_230, &asn_PER_memb_id_constr_230, memb_id_constraint_229 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct NR_CGI_List_For_Restart_List_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_NR_CGI_List_For_Restart_List_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_231, &asn_PER_memb_criticality_constr_231, memb_criticality_constraint_229 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct NR_CGI_List_For_Restart_List_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_232, + select_NR_CGI_List_For_Restart_List_ItemIEs_value_type, + { &asn_OER_memb_value_constr_232, &asn_PER_memb_value_constr_232, memb_value_constraint_229 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_NR_CGI_List_For_Restart_List_ItemIEs_tags_229[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NR_CGI_List_For_Restart_List_ItemIEs_tag2el_229[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NR_CGI_List_For_Restart_List_ItemIEs_specs_229 = { + sizeof(struct NR_CGI_List_For_Restart_List_ItemIEs), + offsetof(struct NR_CGI_List_For_Restart_List_ItemIEs, _asn_ctx), + asn_MAP_NR_CGI_List_For_Restart_List_ItemIEs_tag2el_229, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NR_CGI_List_For_Restart_List_ItemIEs = { + "NR-CGI-List-For-Restart-List-ItemIEs", + "NR-CGI-List-For-Restart-List-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_NR_CGI_List_For_Restart_List_ItemIEs_tags_229, + sizeof(asn_DEF_NR_CGI_List_For_Restart_List_ItemIEs_tags_229) + /sizeof(asn_DEF_NR_CGI_List_For_Restart_List_ItemIEs_tags_229[0]), /* 1 */ + asn_DEF_NR_CGI_List_For_Restart_List_ItemIEs_tags_229, /* Same as above */ + sizeof(asn_DEF_NR_CGI_List_For_Restart_List_ItemIEs_tags_229) + /sizeof(asn_DEF_NR_CGI_List_For_Restart_List_ItemIEs_tags_229[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NR_CGI_List_For_Restart_List_ItemIEs_229, + 3, /* Elements count */ + &asn_SPC_NR_CGI_List_For_Restart_List_ItemIEs_specs_229 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_236[] = { + { ATF_NOFLAGS, 0, offsetof(struct PWS_Failed_NR_CGI_List_ItemIEs__value, choice.PWS_Failed_NR_CGI_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PWS_Failed_NR_CGI_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PWS-Failed-NR-CGI-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_236[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* PWS-Failed-NR-CGI-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_236 = { + sizeof(struct PWS_Failed_NR_CGI_List_ItemIEs__value), + offsetof(struct PWS_Failed_NR_CGI_List_ItemIEs__value, _asn_ctx), + offsetof(struct PWS_Failed_NR_CGI_List_ItemIEs__value, present), + sizeof(((struct PWS_Failed_NR_CGI_List_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_236, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_236 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_236, + 1, /* Elements count */ + &asn_SPC_value_specs_236 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PWS_Failed_NR_CGI_List_ItemIEs_233[] = { + { ATF_NOFLAGS, 0, offsetof(struct PWS_Failed_NR_CGI_List_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_234, &asn_PER_memb_id_constr_234, memb_id_constraint_233 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct PWS_Failed_NR_CGI_List_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_PWS_Failed_NR_CGI_List_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_235, &asn_PER_memb_criticality_constr_235, memb_criticality_constraint_233 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct PWS_Failed_NR_CGI_List_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_236, + select_PWS_Failed_NR_CGI_List_ItemIEs_value_type, + { &asn_OER_memb_value_constr_236, &asn_PER_memb_value_constr_236, memb_value_constraint_233 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_PWS_Failed_NR_CGI_List_ItemIEs_tags_233[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PWS_Failed_NR_CGI_List_ItemIEs_tag2el_233[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PWS_Failed_NR_CGI_List_ItemIEs_specs_233 = { + sizeof(struct PWS_Failed_NR_CGI_List_ItemIEs), + offsetof(struct PWS_Failed_NR_CGI_List_ItemIEs, _asn_ctx), + asn_MAP_PWS_Failed_NR_CGI_List_ItemIEs_tag2el_233, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PWS_Failed_NR_CGI_List_ItemIEs = { + "PWS-Failed-NR-CGI-List-ItemIEs", + "PWS-Failed-NR-CGI-List-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_PWS_Failed_NR_CGI_List_ItemIEs_tags_233, + sizeof(asn_DEF_PWS_Failed_NR_CGI_List_ItemIEs_tags_233) + /sizeof(asn_DEF_PWS_Failed_NR_CGI_List_ItemIEs_tags_233[0]), /* 1 */ + asn_DEF_PWS_Failed_NR_CGI_List_ItemIEs_tags_233, /* Same as above */ + sizeof(asn_DEF_PWS_Failed_NR_CGI_List_ItemIEs_tags_233) + /sizeof(asn_DEF_PWS_Failed_NR_CGI_List_ItemIEs_tags_233[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PWS_Failed_NR_CGI_List_ItemIEs_233, + 3, /* Elements count */ + &asn_SPC_PWS_Failed_NR_CGI_List_ItemIEs_specs_233 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_value_specs_240 = { + sizeof(struct Cause_ExtIEs__value), + offsetof(struct Cause_ExtIEs__value, _asn_ctx), + offsetof(struct Cause_ExtIEs__value, present), + sizeof(((struct Cause_ExtIEs__value *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_240 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_value_specs_240 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Cause_ExtIEs_237[] = { + { ATF_NOFLAGS, 0, offsetof(struct Cause_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_238, &asn_PER_memb_id_constr_238, memb_id_constraint_237 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct Cause_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_239, &asn_PER_memb_criticality_constr_239, memb_criticality_constraint_237 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Cause_ExtIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_240, + 0, + { &asn_OER_memb_value_constr_240, &asn_PER_memb_value_constr_240, memb_value_constraint_237 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_Cause_ExtIEs_tags_237[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Cause_ExtIEs_tag2el_237[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Cause_ExtIEs_specs_237 = { + sizeof(struct Cause_ExtIEs), + offsetof(struct Cause_ExtIEs, _asn_ctx), + asn_MAP_Cause_ExtIEs_tag2el_237, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Cause_ExtIEs = { + "Cause-ExtIEs", + "Cause-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_Cause_ExtIEs_tags_237, + sizeof(asn_DEF_Cause_ExtIEs_tags_237) + /sizeof(asn_DEF_Cause_ExtIEs_tags_237[0]), /* 1 */ + asn_DEF_Cause_ExtIEs_tags_237, /* Same as above */ + sizeof(asn_DEF_Cause_ExtIEs_tags_237) + /sizeof(asn_DEF_Cause_ExtIEs_tags_237[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cause_ExtIEs_237, + 3, /* Elements count */ + &asn_SPC_Cause_ExtIEs_specs_237 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_value_specs_244 = { + sizeof(struct CNUEPagingIdentity_ExtIEs__value), + offsetof(struct CNUEPagingIdentity_ExtIEs__value, _asn_ctx), + offsetof(struct CNUEPagingIdentity_ExtIEs__value, present), + sizeof(((struct CNUEPagingIdentity_ExtIEs__value *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_244 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_value_specs_244 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CNUEPagingIdentity_ExtIEs_241[] = { + { ATF_NOFLAGS, 0, offsetof(struct CNUEPagingIdentity_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_242, &asn_PER_memb_id_constr_242, memb_id_constraint_241 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct CNUEPagingIdentity_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_243, &asn_PER_memb_criticality_constr_243, memb_criticality_constraint_241 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CNUEPagingIdentity_ExtIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_244, + 0, + { &asn_OER_memb_value_constr_244, &asn_PER_memb_value_constr_244, memb_value_constraint_241 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_CNUEPagingIdentity_ExtIEs_tags_241[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CNUEPagingIdentity_ExtIEs_tag2el_241[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CNUEPagingIdentity_ExtIEs_specs_241 = { + sizeof(struct CNUEPagingIdentity_ExtIEs), + offsetof(struct CNUEPagingIdentity_ExtIEs, _asn_ctx), + asn_MAP_CNUEPagingIdentity_ExtIEs_tag2el_241, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CNUEPagingIdentity_ExtIEs = { + "CNUEPagingIdentity-ExtIEs", + "CNUEPagingIdentity-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_CNUEPagingIdentity_ExtIEs_tags_241, + sizeof(asn_DEF_CNUEPagingIdentity_ExtIEs_tags_241) + /sizeof(asn_DEF_CNUEPagingIdentity_ExtIEs_tags_241[0]), /* 1 */ + asn_DEF_CNUEPagingIdentity_ExtIEs_tags_241, /* Same as above */ + sizeof(asn_DEF_CNUEPagingIdentity_ExtIEs_tags_241) + /sizeof(asn_DEF_CNUEPagingIdentity_ExtIEs_tags_241[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CNUEPagingIdentity_ExtIEs_241, + 3, /* Elements count */ + &asn_SPC_CNUEPagingIdentity_ExtIEs_specs_241 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_value_specs_248 = { + sizeof(struct CP_TransportLayerAddress_ExtIEs__value), + offsetof(struct CP_TransportLayerAddress_ExtIEs__value, _asn_ctx), + offsetof(struct CP_TransportLayerAddress_ExtIEs__value, present), + sizeof(((struct CP_TransportLayerAddress_ExtIEs__value *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_248 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_value_specs_248 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CP_TransportLayerAddress_ExtIEs_245[] = { + { ATF_NOFLAGS, 0, offsetof(struct CP_TransportLayerAddress_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_246, &asn_PER_memb_id_constr_246, memb_id_constraint_245 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct CP_TransportLayerAddress_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_247, &asn_PER_memb_criticality_constr_247, memb_criticality_constraint_245 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct CP_TransportLayerAddress_ExtIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_248, + 0, + { &asn_OER_memb_value_constr_248, &asn_PER_memb_value_constr_248, memb_value_constraint_245 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_CP_TransportLayerAddress_ExtIEs_tags_245[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CP_TransportLayerAddress_ExtIEs_tag2el_245[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CP_TransportLayerAddress_ExtIEs_specs_245 = { + sizeof(struct CP_TransportLayerAddress_ExtIEs), + offsetof(struct CP_TransportLayerAddress_ExtIEs, _asn_ctx), + asn_MAP_CP_TransportLayerAddress_ExtIEs_tag2el_245, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CP_TransportLayerAddress_ExtIEs = { + "CP-TransportLayerAddress-ExtIEs", + "CP-TransportLayerAddress-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_CP_TransportLayerAddress_ExtIEs_tags_245, + sizeof(asn_DEF_CP_TransportLayerAddress_ExtIEs_tags_245) + /sizeof(asn_DEF_CP_TransportLayerAddress_ExtIEs_tags_245[0]), /* 1 */ + asn_DEF_CP_TransportLayerAddress_ExtIEs_tags_245, /* Same as above */ + sizeof(asn_DEF_CP_TransportLayerAddress_ExtIEs_tags_245) + /sizeof(asn_DEF_CP_TransportLayerAddress_ExtIEs_tags_245[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CP_TransportLayerAddress_ExtIEs_245, + 3, /* Elements count */ + &asn_SPC_CP_TransportLayerAddress_ExtIEs_specs_245 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_value_specs_252 = { + sizeof(struct EUTRA_Mode_Info_ExtIEs__value), + offsetof(struct EUTRA_Mode_Info_ExtIEs__value, _asn_ctx), + offsetof(struct EUTRA_Mode_Info_ExtIEs__value, present), + sizeof(((struct EUTRA_Mode_Info_ExtIEs__value *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_252 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_value_specs_252 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_EUTRA_Mode_Info_ExtIEs_249[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_Mode_Info_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_250, &asn_PER_memb_id_constr_250, memb_id_constraint_249 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_Mode_Info_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_251, &asn_PER_memb_criticality_constr_251, memb_criticality_constraint_249 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct EUTRA_Mode_Info_ExtIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_252, + 0, + { &asn_OER_memb_value_constr_252, &asn_PER_memb_value_constr_252, memb_value_constraint_249 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_EUTRA_Mode_Info_ExtIEs_tags_249[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EUTRA_Mode_Info_ExtIEs_tag2el_249[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EUTRA_Mode_Info_ExtIEs_specs_249 = { + sizeof(struct EUTRA_Mode_Info_ExtIEs), + offsetof(struct EUTRA_Mode_Info_ExtIEs, _asn_ctx), + asn_MAP_EUTRA_Mode_Info_ExtIEs_tag2el_249, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_Mode_Info_ExtIEs = { + "EUTRA-Mode-Info-ExtIEs", + "EUTRA-Mode-Info-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_EUTRA_Mode_Info_ExtIEs_tags_249, + sizeof(asn_DEF_EUTRA_Mode_Info_ExtIEs_tags_249) + /sizeof(asn_DEF_EUTRA_Mode_Info_ExtIEs_tags_249[0]), /* 1 */ + asn_DEF_EUTRA_Mode_Info_ExtIEs_tags_249, /* Same as above */ + sizeof(asn_DEF_EUTRA_Mode_Info_ExtIEs_tags_249) + /sizeof(asn_DEF_EUTRA_Mode_Info_ExtIEs_tags_249[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRA_Mode_Info_ExtIEs_249, + 3, /* Elements count */ + &asn_SPC_EUTRA_Mode_Info_ExtIEs_specs_249 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_value_specs_256 = { + sizeof(struct NR_Mode_Info_ExtIEs__value), + offsetof(struct NR_Mode_Info_ExtIEs__value, _asn_ctx), + offsetof(struct NR_Mode_Info_ExtIEs__value, present), + sizeof(((struct NR_Mode_Info_ExtIEs__value *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_256 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_value_specs_256 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_NR_Mode_Info_ExtIEs_253[] = { + { ATF_NOFLAGS, 0, offsetof(struct NR_Mode_Info_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_254, &asn_PER_memb_id_constr_254, memb_id_constraint_253 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct NR_Mode_Info_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_255, &asn_PER_memb_criticality_constr_255, memb_criticality_constraint_253 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct NR_Mode_Info_ExtIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_256, + 0, + { &asn_OER_memb_value_constr_256, &asn_PER_memb_value_constr_256, memb_value_constraint_253 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_NR_Mode_Info_ExtIEs_tags_253[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NR_Mode_Info_ExtIEs_tag2el_253[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NR_Mode_Info_ExtIEs_specs_253 = { + sizeof(struct NR_Mode_Info_ExtIEs), + offsetof(struct NR_Mode_Info_ExtIEs, _asn_ctx), + asn_MAP_NR_Mode_Info_ExtIEs_tag2el_253, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NR_Mode_Info_ExtIEs = { + "NR-Mode-Info-ExtIEs", + "NR-Mode-Info-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_NR_Mode_Info_ExtIEs_tags_253, + sizeof(asn_DEF_NR_Mode_Info_ExtIEs_tags_253) + /sizeof(asn_DEF_NR_Mode_Info_ExtIEs_tags_253[0]), /* 1 */ + asn_DEF_NR_Mode_Info_ExtIEs_tags_253, /* Same as above */ + sizeof(asn_DEF_NR_Mode_Info_ExtIEs_tags_253) + /sizeof(asn_DEF_NR_Mode_Info_ExtIEs_tags_253[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NR_Mode_Info_ExtIEs_253, + 3, /* Elements count */ + &asn_SPC_NR_Mode_Info_ExtIEs_specs_253 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_value_specs_260 = { + sizeof(struct PagingIdentity_ExtIEs__value), + offsetof(struct PagingIdentity_ExtIEs__value, _asn_ctx), + offsetof(struct PagingIdentity_ExtIEs__value, present), + sizeof(((struct PagingIdentity_ExtIEs__value *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_260 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_value_specs_260 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PagingIdentity_ExtIEs_257[] = { + { ATF_NOFLAGS, 0, offsetof(struct PagingIdentity_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_258, &asn_PER_memb_id_constr_258, memb_id_constraint_257 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct PagingIdentity_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_259, &asn_PER_memb_criticality_constr_259, memb_criticality_constraint_257 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct PagingIdentity_ExtIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_260, + 0, + { &asn_OER_memb_value_constr_260, &asn_PER_memb_value_constr_260, memb_value_constraint_257 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_PagingIdentity_ExtIEs_tags_257[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PagingIdentity_ExtIEs_tag2el_257[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PagingIdentity_ExtIEs_specs_257 = { + sizeof(struct PagingIdentity_ExtIEs), + offsetof(struct PagingIdentity_ExtIEs, _asn_ctx), + asn_MAP_PagingIdentity_ExtIEs_tag2el_257, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PagingIdentity_ExtIEs = { + "PagingIdentity-ExtIEs", + "PagingIdentity-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_PagingIdentity_ExtIEs_tags_257, + sizeof(asn_DEF_PagingIdentity_ExtIEs_tags_257) + /sizeof(asn_DEF_PagingIdentity_ExtIEs_tags_257[0]), /* 1 */ + asn_DEF_PagingIdentity_ExtIEs_tags_257, /* Same as above */ + sizeof(asn_DEF_PagingIdentity_ExtIEs_tags_257) + /sizeof(asn_DEF_PagingIdentity_ExtIEs_tags_257[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PagingIdentity_ExtIEs_257, + 3, /* Elements count */ + &asn_SPC_PagingIdentity_ExtIEs_specs_257 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_value_specs_264 = { + sizeof(struct QoS_Characteristics_ExtIEs__value), + offsetof(struct QoS_Characteristics_ExtIEs__value, _asn_ctx), + offsetof(struct QoS_Characteristics_ExtIEs__value, present), + sizeof(((struct QoS_Characteristics_ExtIEs__value *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_264 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_value_specs_264 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_QoS_Characteristics_ExtIEs_261[] = { + { ATF_NOFLAGS, 0, offsetof(struct QoS_Characteristics_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_262, &asn_PER_memb_id_constr_262, memb_id_constraint_261 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct QoS_Characteristics_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_263, &asn_PER_memb_criticality_constr_263, memb_criticality_constraint_261 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct QoS_Characteristics_ExtIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_264, + 0, + { &asn_OER_memb_value_constr_264, &asn_PER_memb_value_constr_264, memb_value_constraint_261 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_QoS_Characteristics_ExtIEs_tags_261[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_QoS_Characteristics_ExtIEs_tag2el_261[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_QoS_Characteristics_ExtIEs_specs_261 = { + sizeof(struct QoS_Characteristics_ExtIEs), + offsetof(struct QoS_Characteristics_ExtIEs, _asn_ctx), + asn_MAP_QoS_Characteristics_ExtIEs_tag2el_261, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_QoS_Characteristics_ExtIEs = { + "QoS-Characteristics-ExtIEs", + "QoS-Characteristics-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_QoS_Characteristics_ExtIEs_tags_261, + sizeof(asn_DEF_QoS_Characteristics_ExtIEs_tags_261) + /sizeof(asn_DEF_QoS_Characteristics_ExtIEs_tags_261[0]), /* 1 */ + asn_DEF_QoS_Characteristics_ExtIEs_tags_261, /* Same as above */ + sizeof(asn_DEF_QoS_Characteristics_ExtIEs_tags_261) + /sizeof(asn_DEF_QoS_Characteristics_ExtIEs_tags_261[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_QoS_Characteristics_ExtIEs_261, + 3, /* Elements count */ + &asn_SPC_QoS_Characteristics_ExtIEs_specs_261 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_268[] = { + { ATF_NOFLAGS, 0, offsetof(struct QoSInformation_ExtIEs__value, choice.DRB_Information), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRB_Information, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRB-Information" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_268[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* DRB-Information */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_268 = { + sizeof(struct QoSInformation_ExtIEs__value), + offsetof(struct QoSInformation_ExtIEs__value, _asn_ctx), + offsetof(struct QoSInformation_ExtIEs__value, present), + sizeof(((struct QoSInformation_ExtIEs__value *)0)->present), + asn_MAP_value_tag2el_268, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_268 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_268, + 1, /* Elements count */ + &asn_SPC_value_specs_268 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_QoSInformation_ExtIEs_265[] = { + { ATF_NOFLAGS, 0, offsetof(struct QoSInformation_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_266, &asn_PER_memb_id_constr_266, memb_id_constraint_265 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct QoSInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_QoSInformation_ExtIEs_criticality_type, + { &asn_OER_memb_criticality_constr_267, &asn_PER_memb_criticality_constr_267, memb_criticality_constraint_265 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct QoSInformation_ExtIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_268, + select_QoSInformation_ExtIEs_value_type, + { &asn_OER_memb_value_constr_268, &asn_PER_memb_value_constr_268, memb_value_constraint_265 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_QoSInformation_ExtIEs_tags_265[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_QoSInformation_ExtIEs_tag2el_265[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_QoSInformation_ExtIEs_specs_265 = { + sizeof(struct QoSInformation_ExtIEs), + offsetof(struct QoSInformation_ExtIEs, _asn_ctx), + asn_MAP_QoSInformation_ExtIEs_tag2el_265, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_QoSInformation_ExtIEs = { + "QoSInformation-ExtIEs", + "QoSInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_QoSInformation_ExtIEs_tags_265, + sizeof(asn_DEF_QoSInformation_ExtIEs_tags_265) + /sizeof(asn_DEF_QoSInformation_ExtIEs_tags_265[0]), /* 1 */ + asn_DEF_QoSInformation_ExtIEs_tags_265, /* Same as above */ + sizeof(asn_DEF_QoSInformation_ExtIEs_tags_265) + /sizeof(asn_DEF_QoSInformation_ExtIEs_tags_265[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_QoSInformation_ExtIEs_265, + 3, /* Elements count */ + &asn_SPC_QoSInformation_ExtIEs_specs_265 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_value_specs_272 = { + sizeof(struct RAT_FrequencyPriorityInformation_ExtIEs__value), + offsetof(struct RAT_FrequencyPriorityInformation_ExtIEs__value, _asn_ctx), + offsetof(struct RAT_FrequencyPriorityInformation_ExtIEs__value, present), + sizeof(((struct RAT_FrequencyPriorityInformation_ExtIEs__value *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_272 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_value_specs_272 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RAT_FrequencyPriorityInformation_ExtIEs_269[] = { + { ATF_NOFLAGS, 0, offsetof(struct RAT_FrequencyPriorityInformation_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_270, &asn_PER_memb_id_constr_270, memb_id_constraint_269 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RAT_FrequencyPriorityInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_271, &asn_PER_memb_criticality_constr_271, memb_criticality_constraint_269 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RAT_FrequencyPriorityInformation_ExtIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_272, + 0, + { &asn_OER_memb_value_constr_272, &asn_PER_memb_value_constr_272, memb_value_constraint_269 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RAT_FrequencyPriorityInformation_ExtIEs_tags_269[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RAT_FrequencyPriorityInformation_ExtIEs_tag2el_269[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RAT_FrequencyPriorityInformation_ExtIEs_specs_269 = { + sizeof(struct RAT_FrequencyPriorityInformation_ExtIEs), + offsetof(struct RAT_FrequencyPriorityInformation_ExtIEs, _asn_ctx), + asn_MAP_RAT_FrequencyPriorityInformation_ExtIEs_tag2el_269, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RAT_FrequencyPriorityInformation_ExtIEs = { + "RAT-FrequencyPriorityInformation-ExtIEs", + "RAT-FrequencyPriorityInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_RAT_FrequencyPriorityInformation_ExtIEs_tags_269, + sizeof(asn_DEF_RAT_FrequencyPriorityInformation_ExtIEs_tags_269) + /sizeof(asn_DEF_RAT_FrequencyPriorityInformation_ExtIEs_tags_269[0]), /* 1 */ + asn_DEF_RAT_FrequencyPriorityInformation_ExtIEs_tags_269, /* Same as above */ + sizeof(asn_DEF_RAT_FrequencyPriorityInformation_ExtIEs_tags_269) + /sizeof(asn_DEF_RAT_FrequencyPriorityInformation_ExtIEs_tags_269[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RAT_FrequencyPriorityInformation_ExtIEs_269, + 3, /* Elements count */ + &asn_SPC_RAT_FrequencyPriorityInformation_ExtIEs_specs_269 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_value_specs_276 = { + sizeof(struct UEIdentityIndexValueChoice_ExtIEs__value), + offsetof(struct UEIdentityIndexValueChoice_ExtIEs__value, _asn_ctx), + offsetof(struct UEIdentityIndexValueChoice_ExtIEs__value, present), + sizeof(((struct UEIdentityIndexValueChoice_ExtIEs__value *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_276 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_value_specs_276 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UEIdentityIndexValueChoice_ExtIEs_273[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEIdentityIndexValueChoice_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_274, &asn_PER_memb_id_constr_274, memb_id_constraint_273 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEIdentityIndexValueChoice_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_275, &asn_PER_memb_criticality_constr_275, memb_criticality_constraint_273 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UEIdentityIndexValueChoice_ExtIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_276, + 0, + { &asn_OER_memb_value_constr_276, &asn_PER_memb_value_constr_276, memb_value_constraint_273 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEIdentityIndexValueChoice_ExtIEs_tags_273[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEIdentityIndexValueChoice_ExtIEs_tag2el_273[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEIdentityIndexValueChoice_ExtIEs_specs_273 = { + sizeof(struct UEIdentityIndexValueChoice_ExtIEs), + offsetof(struct UEIdentityIndexValueChoice_ExtIEs, _asn_ctx), + asn_MAP_UEIdentityIndexValueChoice_ExtIEs_tag2el_273, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UEIdentityIndexValueChoice_ExtIEs = { + "UEIdentityIndexValueChoice-ExtIEs", + "UEIdentityIndexValueChoice-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_UEIdentityIndexValueChoice_ExtIEs_tags_273, + sizeof(asn_DEF_UEIdentityIndexValueChoice_ExtIEs_tags_273) + /sizeof(asn_DEF_UEIdentityIndexValueChoice_ExtIEs_tags_273[0]), /* 1 */ + asn_DEF_UEIdentityIndexValueChoice_ExtIEs_tags_273, /* Same as above */ + sizeof(asn_DEF_UEIdentityIndexValueChoice_ExtIEs_tags_273) + /sizeof(asn_DEF_UEIdentityIndexValueChoice_ExtIEs_tags_273[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEIdentityIndexValueChoice_ExtIEs_273, + 3, /* Elements count */ + &asn_SPC_UEIdentityIndexValueChoice_ExtIEs_specs_273 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_value_specs_280 = { + sizeof(struct UPTransportLayerInformation_ExtIEs__value), + offsetof(struct UPTransportLayerInformation_ExtIEs__value, _asn_ctx), + offsetof(struct UPTransportLayerInformation_ExtIEs__value, present), + sizeof(((struct UPTransportLayerInformation_ExtIEs__value *)0)->present), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_280 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_value_specs_280 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UPTransportLayerInformation_ExtIEs_277[] = { + { ATF_NOFLAGS, 0, offsetof(struct UPTransportLayerInformation_ExtIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_278, &asn_PER_memb_id_constr_278, memb_id_constraint_277 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct UPTransportLayerInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + 0, + { &asn_OER_memb_criticality_constr_279, &asn_PER_memb_criticality_constr_279, memb_criticality_constraint_277 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UPTransportLayerInformation_ExtIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_280, + 0, + { &asn_OER_memb_value_constr_280, &asn_PER_memb_value_constr_280, memb_value_constraint_277 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_UPTransportLayerInformation_ExtIEs_tags_277[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UPTransportLayerInformation_ExtIEs_tag2el_277[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UPTransportLayerInformation_ExtIEs_specs_277 = { + sizeof(struct UPTransportLayerInformation_ExtIEs), + offsetof(struct UPTransportLayerInformation_ExtIEs, _asn_ctx), + asn_MAP_UPTransportLayerInformation_ExtIEs_tag2el_277, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UPTransportLayerInformation_ExtIEs = { + "UPTransportLayerInformation-ExtIEs", + "UPTransportLayerInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_UPTransportLayerInformation_ExtIEs_tags_277, + sizeof(asn_DEF_UPTransportLayerInformation_ExtIEs_tags_277) + /sizeof(asn_DEF_UPTransportLayerInformation_ExtIEs_tags_277[0]), /* 1 */ + asn_DEF_UPTransportLayerInformation_ExtIEs_tags_277, /* Same as above */ + sizeof(asn_DEF_UPTransportLayerInformation_ExtIEs_tags_277) + /sizeof(asn_DEF_UPTransportLayerInformation_ExtIEs_tags_277[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UPTransportLayerInformation_ExtIEs_277, + 3, /* Elements count */ + &asn_SPC_UPTransportLayerInformation_ExtIEs_specs_277 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_284[] = { + { ATF_NOFLAGS, 0, offsetof(struct ResetIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ResetIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ResetIEs__value, choice.ResetType), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ResetType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ResetType" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_284[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 1 }, /* radioNetwork */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, -1, 0 }, /* f1-Interface */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 1 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, -1, 0 }, /* partOfF1-Interface */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 1 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, -1, 0 }, /* choice-extension */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 } /* choice-extension */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_284 = { + sizeof(struct ResetIEs__value), + offsetof(struct ResetIEs__value, _asn_ctx), + offsetof(struct ResetIEs__value, present), + sizeof(((struct ResetIEs__value *)0)->present), + asn_MAP_value_tag2el_284, + 9, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_284 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_284, + 3, /* Elements count */ + &asn_SPC_value_specs_284 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ResetIEs_281[] = { + { ATF_NOFLAGS, 0, offsetof(struct ResetIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_282, &asn_PER_memb_id_constr_282, memb_id_constraint_281 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ResetIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_ResetIEs_criticality_type, + { &asn_OER_memb_criticality_constr_283, &asn_PER_memb_criticality_constr_283, memb_criticality_constraint_281 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResetIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_284, + select_ResetIEs_value_type, + { &asn_OER_memb_value_constr_284, &asn_PER_memb_value_constr_284, memb_value_constraint_281 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ResetIEs_tags_281[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ResetIEs_tag2el_281[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ResetIEs_specs_281 = { + sizeof(struct ResetIEs), + offsetof(struct ResetIEs, _asn_ctx), + asn_MAP_ResetIEs_tag2el_281, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ResetIEs = { + "ResetIEs", + "ResetIEs", + &asn_OP_SEQUENCE, + asn_DEF_ResetIEs_tags_281, + sizeof(asn_DEF_ResetIEs_tags_281) + /sizeof(asn_DEF_ResetIEs_tags_281[0]), /* 1 */ + asn_DEF_ResetIEs_tags_281, /* Same as above */ + sizeof(asn_DEF_ResetIEs_tags_281) + /sizeof(asn_DEF_ResetIEs_tags_281[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ResetIEs_281, + 3, /* Elements count */ + &asn_SPC_ResetIEs_specs_281 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_288[] = { + { ATF_NOFLAGS, 0, offsetof(struct ResetAcknowledgeIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ResetAcknowledgeIEs__value, choice.UE_associatedLogicalF1_ConnectionListResAck), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UE_associatedLogicalF1_ConnectionListResAck, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UE-associatedLogicalF1-ConnectionListResAck" + }, + { ATF_NOFLAGS, 0, offsetof(struct ResetAcknowledgeIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_288[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* UE-associatedLogicalF1-ConnectionListResAck */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* CriticalityDiagnostics */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_288 = { + sizeof(struct ResetAcknowledgeIEs__value), + offsetof(struct ResetAcknowledgeIEs__value, _asn_ctx), + offsetof(struct ResetAcknowledgeIEs__value, present), + sizeof(((struct ResetAcknowledgeIEs__value *)0)->present), + asn_MAP_value_tag2el_288, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_288 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_288, + 3, /* Elements count */ + &asn_SPC_value_specs_288 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ResetAcknowledgeIEs_285[] = { + { ATF_NOFLAGS, 0, offsetof(struct ResetAcknowledgeIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_286, &asn_PER_memb_id_constr_286, memb_id_constraint_285 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ResetAcknowledgeIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_ResetAcknowledgeIEs_criticality_type, + { &asn_OER_memb_criticality_constr_287, &asn_PER_memb_criticality_constr_287, memb_criticality_constraint_285 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResetAcknowledgeIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_288, + select_ResetAcknowledgeIEs_value_type, + { &asn_OER_memb_value_constr_288, &asn_PER_memb_value_constr_288, memb_value_constraint_285 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ResetAcknowledgeIEs_tags_285[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ResetAcknowledgeIEs_tag2el_285[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ResetAcknowledgeIEs_specs_285 = { + sizeof(struct ResetAcknowledgeIEs), + offsetof(struct ResetAcknowledgeIEs, _asn_ctx), + asn_MAP_ResetAcknowledgeIEs_tag2el_285, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ResetAcknowledgeIEs = { + "ResetAcknowledgeIEs", + "ResetAcknowledgeIEs", + &asn_OP_SEQUENCE, + asn_DEF_ResetAcknowledgeIEs_tags_285, + sizeof(asn_DEF_ResetAcknowledgeIEs_tags_285) + /sizeof(asn_DEF_ResetAcknowledgeIEs_tags_285[0]), /* 1 */ + asn_DEF_ResetAcknowledgeIEs_tags_285, /* Same as above */ + sizeof(asn_DEF_ResetAcknowledgeIEs_tags_285) + /sizeof(asn_DEF_ResetAcknowledgeIEs_tags_285[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ResetAcknowledgeIEs_285, + 3, /* Elements count */ + &asn_SPC_ResetAcknowledgeIEs_specs_285 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_292[] = { + { ATF_NOFLAGS, 0, offsetof(struct ErrorIndicationIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ErrorIndicationIEs__value, choice.GNB_CU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_CU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ErrorIndicationIEs__value, choice.GNB_DU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_DU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-DU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ErrorIndicationIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ErrorIndicationIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_value_to_canonical_292[] = { 0, 1, 2, 4, 3 }; +static const unsigned asn_MAP_value_from_canonical_292[] = { 0, 1, 2, 4, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_292[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* GNB-CU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -2, 0 }, /* GNB-DU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, 0, 0 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* radioNetwork */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 } /* choice-extension */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_292 = { + sizeof(struct ErrorIndicationIEs__value), + offsetof(struct ErrorIndicationIEs__value, _asn_ctx), + offsetof(struct ErrorIndicationIEs__value, present), + sizeof(((struct ErrorIndicationIEs__value *)0)->present), + asn_MAP_value_tag2el_292, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_292, + asn_MAP_value_from_canonical_292, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_292 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_292, + 5, /* Elements count */ + &asn_SPC_value_specs_292 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ErrorIndicationIEs_289[] = { + { ATF_NOFLAGS, 0, offsetof(struct ErrorIndicationIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_290, &asn_PER_memb_id_constr_290, memb_id_constraint_289 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ErrorIndicationIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_ErrorIndicationIEs_criticality_type, + { &asn_OER_memb_criticality_constr_291, &asn_PER_memb_criticality_constr_291, memb_criticality_constraint_289 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ErrorIndicationIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_292, + select_ErrorIndicationIEs_value_type, + { &asn_OER_memb_value_constr_292, &asn_PER_memb_value_constr_292, memb_value_constraint_289 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ErrorIndicationIEs_tags_289[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ErrorIndicationIEs_tag2el_289[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ErrorIndicationIEs_specs_289 = { + sizeof(struct ErrorIndicationIEs), + offsetof(struct ErrorIndicationIEs, _asn_ctx), + asn_MAP_ErrorIndicationIEs_tag2el_289, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ErrorIndicationIEs = { + "ErrorIndicationIEs", + "ErrorIndicationIEs", + &asn_OP_SEQUENCE, + asn_DEF_ErrorIndicationIEs_tags_289, + sizeof(asn_DEF_ErrorIndicationIEs_tags_289) + /sizeof(asn_DEF_ErrorIndicationIEs_tags_289[0]), /* 1 */ + asn_DEF_ErrorIndicationIEs_tags_289, /* Same as above */ + sizeof(asn_DEF_ErrorIndicationIEs_tags_289) + /sizeof(asn_DEF_ErrorIndicationIEs_tags_289[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ErrorIndicationIEs_289, + 3, /* Elements count */ + &asn_SPC_ErrorIndicationIEs_specs_289 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_296[] = { + { ATF_NOFLAGS, 0, offsetof(struct F1SetupRequestIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct F1SetupRequestIEs__value, choice.GNB_DU_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_DU_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-DU-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct F1SetupRequestIEs__value, choice.GNB_DU_Name), + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)), + 0, + &asn_DEF_GNB_DU_Name, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-DU-Name" + }, + { ATF_NOFLAGS, 0, offsetof(struct F1SetupRequestIEs__value, choice.GNB_DU_Served_Cells_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNB_DU_Served_Cells_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-DU-Served-Cells-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct F1SetupRequestIEs__value, choice.RRC_Version), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RRC_Version, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RRC-Version" + }, +}; +static const unsigned asn_MAP_value_to_canonical_296[] = { 0, 1, 3, 4, 2 }; +static const unsigned asn_MAP_value_from_canonical_296[] = { 0, 1, 4, 2, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_296[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* GNB-DU-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 1 }, /* GNB-DU-Served-Cells-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 0 }, /* RRC-Version */ + { (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)), 2, 0, 0 } /* GNB-DU-Name */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_296 = { + sizeof(struct F1SetupRequestIEs__value), + offsetof(struct F1SetupRequestIEs__value, _asn_ctx), + offsetof(struct F1SetupRequestIEs__value, present), + sizeof(((struct F1SetupRequestIEs__value *)0)->present), + asn_MAP_value_tag2el_296, + 5, /* Count of tags in the map */ + asn_MAP_value_to_canonical_296, + asn_MAP_value_from_canonical_296, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_296 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_296, + 5, /* Elements count */ + &asn_SPC_value_specs_296 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_F1SetupRequestIEs_293[] = { + { ATF_NOFLAGS, 0, offsetof(struct F1SetupRequestIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_294, &asn_PER_memb_id_constr_294, memb_id_constraint_293 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct F1SetupRequestIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_F1SetupRequestIEs_criticality_type, + { &asn_OER_memb_criticality_constr_295, &asn_PER_memb_criticality_constr_295, memb_criticality_constraint_293 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct F1SetupRequestIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_296, + select_F1SetupRequestIEs_value_type, + { &asn_OER_memb_value_constr_296, &asn_PER_memb_value_constr_296, memb_value_constraint_293 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_F1SetupRequestIEs_tags_293[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_F1SetupRequestIEs_tag2el_293[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_F1SetupRequestIEs_specs_293 = { + sizeof(struct F1SetupRequestIEs), + offsetof(struct F1SetupRequestIEs, _asn_ctx), + asn_MAP_F1SetupRequestIEs_tag2el_293, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_F1SetupRequestIEs = { + "F1SetupRequestIEs", + "F1SetupRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_F1SetupRequestIEs_tags_293, + sizeof(asn_DEF_F1SetupRequestIEs_tags_293) + /sizeof(asn_DEF_F1SetupRequestIEs_tags_293[0]), /* 1 */ + asn_DEF_F1SetupRequestIEs_tags_293, /* Same as above */ + sizeof(asn_DEF_F1SetupRequestIEs_tags_293) + /sizeof(asn_DEF_F1SetupRequestIEs_tags_293[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_F1SetupRequestIEs_293, + 3, /* Elements count */ + &asn_SPC_F1SetupRequestIEs_specs_293 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_300[] = { + { ATF_NOFLAGS, 0, offsetof(struct F1SetupResponseIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct F1SetupResponseIEs__value, choice.GNB_CU_Name), + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)), + 0, + &asn_DEF_GNB_CU_Name, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-Name" + }, + { ATF_NOFLAGS, 0, offsetof(struct F1SetupResponseIEs__value, choice.Cells_to_be_Activated_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_to_be_Activated_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cells-to-be-Activated-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct F1SetupResponseIEs__value, choice.RRC_Version), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RRC_Version, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RRC-Version" + }, +}; +static const unsigned asn_MAP_value_to_canonical_300[] = { 0, 2, 3, 1 }; +static const unsigned asn_MAP_value_from_canonical_300[] = { 0, 3, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_300[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 1 }, /* Cells-to-be-Activated-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* RRC-Version */ + { (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)), 1, 0, 0 } /* GNB-CU-Name */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_300 = { + sizeof(struct F1SetupResponseIEs__value), + offsetof(struct F1SetupResponseIEs__value, _asn_ctx), + offsetof(struct F1SetupResponseIEs__value, present), + sizeof(((struct F1SetupResponseIEs__value *)0)->present), + asn_MAP_value_tag2el_300, + 4, /* Count of tags in the map */ + asn_MAP_value_to_canonical_300, + asn_MAP_value_from_canonical_300, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_300 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_300, + 4, /* Elements count */ + &asn_SPC_value_specs_300 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_F1SetupResponseIEs_297[] = { + { ATF_NOFLAGS, 0, offsetof(struct F1SetupResponseIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_298, &asn_PER_memb_id_constr_298, memb_id_constraint_297 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct F1SetupResponseIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_F1SetupResponseIEs_criticality_type, + { &asn_OER_memb_criticality_constr_299, &asn_PER_memb_criticality_constr_299, memb_criticality_constraint_297 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct F1SetupResponseIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_300, + select_F1SetupResponseIEs_value_type, + { &asn_OER_memb_value_constr_300, &asn_PER_memb_value_constr_300, memb_value_constraint_297 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_F1SetupResponseIEs_tags_297[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_F1SetupResponseIEs_tag2el_297[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_F1SetupResponseIEs_specs_297 = { + sizeof(struct F1SetupResponseIEs), + offsetof(struct F1SetupResponseIEs, _asn_ctx), + asn_MAP_F1SetupResponseIEs_tag2el_297, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_F1SetupResponseIEs = { + "F1SetupResponseIEs", + "F1SetupResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_F1SetupResponseIEs_tags_297, + sizeof(asn_DEF_F1SetupResponseIEs_tags_297) + /sizeof(asn_DEF_F1SetupResponseIEs_tags_297[0]), /* 1 */ + asn_DEF_F1SetupResponseIEs_tags_297, /* Same as above */ + sizeof(asn_DEF_F1SetupResponseIEs_tags_297) + /sizeof(asn_DEF_F1SetupResponseIEs_tags_297[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_F1SetupResponseIEs_297, + 3, /* Elements count */ + &asn_SPC_F1SetupResponseIEs_specs_297 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_304[] = { + { ATF_NOFLAGS, 0, offsetof(struct F1SetupFailureIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct F1SetupFailureIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct F1SetupFailureIEs__value, choice.TimeToWait), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_TimeToWait, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TimeToWait" + }, + { ATF_NOFLAGS, 0, offsetof(struct F1SetupFailureIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_value_to_canonical_304[] = { 0, 2, 3, 1 }; +static const unsigned asn_MAP_value_from_canonical_304[] = { 0, 3, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_304[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* TimeToWait */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 } /* choice-extension */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_304 = { + sizeof(struct F1SetupFailureIEs__value), + offsetof(struct F1SetupFailureIEs__value, _asn_ctx), + offsetof(struct F1SetupFailureIEs__value, present), + sizeof(((struct F1SetupFailureIEs__value *)0)->present), + asn_MAP_value_tag2el_304, + 8, /* Count of tags in the map */ + asn_MAP_value_to_canonical_304, + asn_MAP_value_from_canonical_304, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_304 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_304, + 4, /* Elements count */ + &asn_SPC_value_specs_304 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_F1SetupFailureIEs_301[] = { + { ATF_NOFLAGS, 0, offsetof(struct F1SetupFailureIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_302, &asn_PER_memb_id_constr_302, memb_id_constraint_301 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct F1SetupFailureIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_F1SetupFailureIEs_criticality_type, + { &asn_OER_memb_criticality_constr_303, &asn_PER_memb_criticality_constr_303, memb_criticality_constraint_301 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct F1SetupFailureIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_304, + select_F1SetupFailureIEs_value_type, + { &asn_OER_memb_value_constr_304, &asn_PER_memb_value_constr_304, memb_value_constraint_301 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_F1SetupFailureIEs_tags_301[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_F1SetupFailureIEs_tag2el_301[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_F1SetupFailureIEs_specs_301 = { + sizeof(struct F1SetupFailureIEs), + offsetof(struct F1SetupFailureIEs, _asn_ctx), + asn_MAP_F1SetupFailureIEs_tag2el_301, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_F1SetupFailureIEs = { + "F1SetupFailureIEs", + "F1SetupFailureIEs", + &asn_OP_SEQUENCE, + asn_DEF_F1SetupFailureIEs_tags_301, + sizeof(asn_DEF_F1SetupFailureIEs_tags_301) + /sizeof(asn_DEF_F1SetupFailureIEs_tags_301[0]), /* 1 */ + asn_DEF_F1SetupFailureIEs_tags_301, /* Same as above */ + sizeof(asn_DEF_F1SetupFailureIEs_tags_301) + /sizeof(asn_DEF_F1SetupFailureIEs_tags_301[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_F1SetupFailureIEs_301, + 3, /* Elements count */ + &asn_SPC_F1SetupFailureIEs_specs_301 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_308[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdateIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdateIEs__value, choice.Served_Cells_To_Add_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Served_Cells_To_Add_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Served-Cells-To-Add-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdateIEs__value, choice.Served_Cells_To_Modify_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Served_Cells_To_Modify_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Served-Cells-To-Modify-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdateIEs__value, choice.Served_Cells_To_Delete_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Served_Cells_To_Delete_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Served-Cells-To-Delete-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdateIEs__value, choice.Cells_Status_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_Status_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cells-Status-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdateIEs__value, choice.Dedicated_SIDelivery_NeededUE_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Dedicated_SIDelivery_NeededUE_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Dedicated-SIDelivery-NeededUE-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdateIEs__value, choice.GNB_DU_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_DU_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-DU-ID" + }, +}; +static const unsigned asn_MAP_value_to_canonical_308[] = { 0, 6, 1, 2, 3, 4, 5 }; +static const unsigned asn_MAP_value_from_canonical_308[] = { 0, 2, 3, 4, 5, 6, 1 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_308[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 6, -1, 0 }, /* GNB-DU-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 4 }, /* Served-Cells-To-Add-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 3 }, /* Served-Cells-To-Modify-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 2 }, /* Served-Cells-To-Delete-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -3, 1 }, /* Cells-Status-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -4, 0 } /* Dedicated-SIDelivery-NeededUE-List */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_308 = { + sizeof(struct GNBDUConfigurationUpdateIEs__value), + offsetof(struct GNBDUConfigurationUpdateIEs__value, _asn_ctx), + offsetof(struct GNBDUConfigurationUpdateIEs__value, present), + sizeof(((struct GNBDUConfigurationUpdateIEs__value *)0)->present), + asn_MAP_value_tag2el_308, + 7, /* Count of tags in the map */ + asn_MAP_value_to_canonical_308, + asn_MAP_value_from_canonical_308, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_308 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_308, + 7, /* Elements count */ + &asn_SPC_value_specs_308 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GNBDUConfigurationUpdateIEs_305[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdateIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_306, &asn_PER_memb_id_constr_306, memb_id_constraint_305 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdateIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_GNBDUConfigurationUpdateIEs_criticality_type, + { &asn_OER_memb_criticality_constr_307, &asn_PER_memb_criticality_constr_307, memb_criticality_constraint_305 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdateIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_308, + select_GNBDUConfigurationUpdateIEs_value_type, + { &asn_OER_memb_value_constr_308, &asn_PER_memb_value_constr_308, memb_value_constraint_305 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNBDUConfigurationUpdateIEs_tags_305[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNBDUConfigurationUpdateIEs_tag2el_305[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNBDUConfigurationUpdateIEs_specs_305 = { + sizeof(struct GNBDUConfigurationUpdateIEs), + offsetof(struct GNBDUConfigurationUpdateIEs, _asn_ctx), + asn_MAP_GNBDUConfigurationUpdateIEs_tag2el_305, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNBDUConfigurationUpdateIEs = { + "GNBDUConfigurationUpdateIEs", + "GNBDUConfigurationUpdateIEs", + &asn_OP_SEQUENCE, + asn_DEF_GNBDUConfigurationUpdateIEs_tags_305, + sizeof(asn_DEF_GNBDUConfigurationUpdateIEs_tags_305) + /sizeof(asn_DEF_GNBDUConfigurationUpdateIEs_tags_305[0]), /* 1 */ + asn_DEF_GNBDUConfigurationUpdateIEs_tags_305, /* Same as above */ + sizeof(asn_DEF_GNBDUConfigurationUpdateIEs_tags_305) + /sizeof(asn_DEF_GNBDUConfigurationUpdateIEs_tags_305[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNBDUConfigurationUpdateIEs_305, + 3, /* Elements count */ + &asn_SPC_GNBDUConfigurationUpdateIEs_specs_305 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_312[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdateAcknowledgeIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdateAcknowledgeIEs__value, choice.Cells_to_be_Activated_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_to_be_Activated_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cells-to-be-Activated-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdateAcknowledgeIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdateAcknowledgeIEs__value, choice.Cells_to_be_Deactivated_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_to_be_Deactivated_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cells-to-be-Deactivated-List" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_312[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 2 }, /* Cells-to-be-Activated-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* Cells-to-be-Deactivated-List */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_312 = { + sizeof(struct GNBDUConfigurationUpdateAcknowledgeIEs__value), + offsetof(struct GNBDUConfigurationUpdateAcknowledgeIEs__value, _asn_ctx), + offsetof(struct GNBDUConfigurationUpdateAcknowledgeIEs__value, present), + sizeof(((struct GNBDUConfigurationUpdateAcknowledgeIEs__value *)0)->present), + asn_MAP_value_tag2el_312, + 4, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_312 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_312, + 4, /* Elements count */ + &asn_SPC_value_specs_312 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GNBDUConfigurationUpdateAcknowledgeIEs_309[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdateAcknowledgeIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_310, &asn_PER_memb_id_constr_310, memb_id_constraint_309 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdateAcknowledgeIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_GNBDUConfigurationUpdateAcknowledgeIEs_criticality_type, + { &asn_OER_memb_criticality_constr_311, &asn_PER_memb_criticality_constr_311, memb_criticality_constraint_309 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdateAcknowledgeIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_312, + select_GNBDUConfigurationUpdateAcknowledgeIEs_value_type, + { &asn_OER_memb_value_constr_312, &asn_PER_memb_value_constr_312, memb_value_constraint_309 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNBDUConfigurationUpdateAcknowledgeIEs_tags_309[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNBDUConfigurationUpdateAcknowledgeIEs_tag2el_309[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNBDUConfigurationUpdateAcknowledgeIEs_specs_309 = { + sizeof(struct GNBDUConfigurationUpdateAcknowledgeIEs), + offsetof(struct GNBDUConfigurationUpdateAcknowledgeIEs, _asn_ctx), + asn_MAP_GNBDUConfigurationUpdateAcknowledgeIEs_tag2el_309, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNBDUConfigurationUpdateAcknowledgeIEs = { + "GNBDUConfigurationUpdateAcknowledgeIEs", + "GNBDUConfigurationUpdateAcknowledgeIEs", + &asn_OP_SEQUENCE, + asn_DEF_GNBDUConfigurationUpdateAcknowledgeIEs_tags_309, + sizeof(asn_DEF_GNBDUConfigurationUpdateAcknowledgeIEs_tags_309) + /sizeof(asn_DEF_GNBDUConfigurationUpdateAcknowledgeIEs_tags_309[0]), /* 1 */ + asn_DEF_GNBDUConfigurationUpdateAcknowledgeIEs_tags_309, /* Same as above */ + sizeof(asn_DEF_GNBDUConfigurationUpdateAcknowledgeIEs_tags_309) + /sizeof(asn_DEF_GNBDUConfigurationUpdateAcknowledgeIEs_tags_309[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNBDUConfigurationUpdateAcknowledgeIEs_309, + 3, /* Elements count */ + &asn_SPC_GNBDUConfigurationUpdateAcknowledgeIEs_specs_309 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_316[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdateFailureIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdateFailureIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdateFailureIEs__value, choice.TimeToWait), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_TimeToWait, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TimeToWait" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdateFailureIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_value_to_canonical_316[] = { 0, 2, 3, 1 }; +static const unsigned asn_MAP_value_from_canonical_316[] = { 0, 3, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_316[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* TimeToWait */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 } /* choice-extension */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_316 = { + sizeof(struct GNBDUConfigurationUpdateFailureIEs__value), + offsetof(struct GNBDUConfigurationUpdateFailureIEs__value, _asn_ctx), + offsetof(struct GNBDUConfigurationUpdateFailureIEs__value, present), + sizeof(((struct GNBDUConfigurationUpdateFailureIEs__value *)0)->present), + asn_MAP_value_tag2el_316, + 8, /* Count of tags in the map */ + asn_MAP_value_to_canonical_316, + asn_MAP_value_from_canonical_316, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_316 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_316, + 4, /* Elements count */ + &asn_SPC_value_specs_316 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GNBDUConfigurationUpdateFailureIEs_313[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdateFailureIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_314, &asn_PER_memb_id_constr_314, memb_id_constraint_313 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdateFailureIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_GNBDUConfigurationUpdateFailureIEs_criticality_type, + { &asn_OER_memb_criticality_constr_315, &asn_PER_memb_criticality_constr_315, memb_criticality_constraint_313 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GNBDUConfigurationUpdateFailureIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_316, + select_GNBDUConfigurationUpdateFailureIEs_value_type, + { &asn_OER_memb_value_constr_316, &asn_PER_memb_value_constr_316, memb_value_constraint_313 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNBDUConfigurationUpdateFailureIEs_tags_313[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNBDUConfigurationUpdateFailureIEs_tag2el_313[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNBDUConfigurationUpdateFailureIEs_specs_313 = { + sizeof(struct GNBDUConfigurationUpdateFailureIEs), + offsetof(struct GNBDUConfigurationUpdateFailureIEs, _asn_ctx), + asn_MAP_GNBDUConfigurationUpdateFailureIEs_tag2el_313, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNBDUConfigurationUpdateFailureIEs = { + "GNBDUConfigurationUpdateFailureIEs", + "GNBDUConfigurationUpdateFailureIEs", + &asn_OP_SEQUENCE, + asn_DEF_GNBDUConfigurationUpdateFailureIEs_tags_313, + sizeof(asn_DEF_GNBDUConfigurationUpdateFailureIEs_tags_313) + /sizeof(asn_DEF_GNBDUConfigurationUpdateFailureIEs_tags_313[0]), /* 1 */ + asn_DEF_GNBDUConfigurationUpdateFailureIEs_tags_313, /* Same as above */ + sizeof(asn_DEF_GNBDUConfigurationUpdateFailureIEs_tags_313) + /sizeof(asn_DEF_GNBDUConfigurationUpdateFailureIEs_tags_313[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNBDUConfigurationUpdateFailureIEs_313, + 3, /* Elements count */ + &asn_SPC_GNBDUConfigurationUpdateFailureIEs_specs_313 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_320[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateIEs__value, choice.Cells_to_be_Activated_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_to_be_Activated_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cells-to-be-Activated-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateIEs__value, choice.Cells_to_be_Deactivated_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_to_be_Deactivated_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cells-to-be-Deactivated-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateIEs__value, choice.GNB_CU_TNL_Association_To_Add_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNB_CU_TNL_Association_To_Add_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-TNL-Association-To-Add-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateIEs__value, choice.GNB_CU_TNL_Association_To_Remove_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNB_CU_TNL_Association_To_Remove_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-TNL-Association-To-Remove-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateIEs__value, choice.GNB_CU_TNL_Association_To_Update_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNB_CU_TNL_Association_To_Update_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-TNL-Association-To-Update-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateIEs__value, choice.Cells_to_be_Barred_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_to_be_Barred_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cells-to-be-Barred-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateIEs__value, choice.Protected_EUTRA_Resources_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Protected_EUTRA_Resources_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Protected-EUTRA-Resources-List" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_320[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 6 }, /* Cells-to-be-Activated-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 5 }, /* Cells-to-be-Deactivated-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 4 }, /* GNB-CU-TNL-Association-To-Add-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -3, 3 }, /* GNB-CU-TNL-Association-To-Remove-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -4, 2 }, /* GNB-CU-TNL-Association-To-Update-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -5, 1 }, /* Cells-to-be-Barred-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -6, 0 } /* Protected-EUTRA-Resources-List */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_320 = { + sizeof(struct GNBCUConfigurationUpdateIEs__value), + offsetof(struct GNBCUConfigurationUpdateIEs__value, _asn_ctx), + offsetof(struct GNBCUConfigurationUpdateIEs__value, present), + sizeof(((struct GNBCUConfigurationUpdateIEs__value *)0)->present), + asn_MAP_value_tag2el_320, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_320 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_320, + 8, /* Elements count */ + &asn_SPC_value_specs_320 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GNBCUConfigurationUpdateIEs_317[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_318, &asn_PER_memb_id_constr_318, memb_id_constraint_317 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_GNBCUConfigurationUpdateIEs_criticality_type, + { &asn_OER_memb_criticality_constr_319, &asn_PER_memb_criticality_constr_319, memb_criticality_constraint_317 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_320, + select_GNBCUConfigurationUpdateIEs_value_type, + { &asn_OER_memb_value_constr_320, &asn_PER_memb_value_constr_320, memb_value_constraint_317 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNBCUConfigurationUpdateIEs_tags_317[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNBCUConfigurationUpdateIEs_tag2el_317[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNBCUConfigurationUpdateIEs_specs_317 = { + sizeof(struct GNBCUConfigurationUpdateIEs), + offsetof(struct GNBCUConfigurationUpdateIEs, _asn_ctx), + asn_MAP_GNBCUConfigurationUpdateIEs_tag2el_317, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNBCUConfigurationUpdateIEs = { + "GNBCUConfigurationUpdateIEs", + "GNBCUConfigurationUpdateIEs", + &asn_OP_SEQUENCE, + asn_DEF_GNBCUConfigurationUpdateIEs_tags_317, + sizeof(asn_DEF_GNBCUConfigurationUpdateIEs_tags_317) + /sizeof(asn_DEF_GNBCUConfigurationUpdateIEs_tags_317[0]), /* 1 */ + asn_DEF_GNBCUConfigurationUpdateIEs_tags_317, /* Same as above */ + sizeof(asn_DEF_GNBCUConfigurationUpdateIEs_tags_317) + /sizeof(asn_DEF_GNBCUConfigurationUpdateIEs_tags_317[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNBCUConfigurationUpdateIEs_317, + 3, /* Elements count */ + &asn_SPC_GNBCUConfigurationUpdateIEs_specs_317 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_324[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateAcknowledgeIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateAcknowledgeIEs__value, choice.Cells_Failed_to_be_Activated_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_Failed_to_be_Activated_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cells-Failed-to-be-Activated-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateAcknowledgeIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateAcknowledgeIEs__value, choice.GNB_CU_TNL_Association_Setup_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNB_CU_TNL_Association_Setup_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-TNL-Association-Setup-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateAcknowledgeIEs__value, choice.GNB_CU_TNL_Association_Failed_To_Setup_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-TNL-Association-Failed-To-Setup-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateAcknowledgeIEs__value, choice.Dedicated_SIDelivery_NeededUE_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Dedicated_SIDelivery_NeededUE_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Dedicated-SIDelivery-NeededUE-List" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_324[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 4 }, /* Cells-Failed-to-be-Activated-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 3 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 2 }, /* GNB-CU-TNL-Association-Setup-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -3, 1 }, /* GNB-CU-TNL-Association-Failed-To-Setup-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -4, 0 } /* Dedicated-SIDelivery-NeededUE-List */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_324 = { + sizeof(struct GNBCUConfigurationUpdateAcknowledgeIEs__value), + offsetof(struct GNBCUConfigurationUpdateAcknowledgeIEs__value, _asn_ctx), + offsetof(struct GNBCUConfigurationUpdateAcknowledgeIEs__value, present), + sizeof(((struct GNBCUConfigurationUpdateAcknowledgeIEs__value *)0)->present), + asn_MAP_value_tag2el_324, + 6, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_324 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_324, + 6, /* Elements count */ + &asn_SPC_value_specs_324 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GNBCUConfigurationUpdateAcknowledgeIEs_321[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateAcknowledgeIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_322, &asn_PER_memb_id_constr_322, memb_id_constraint_321 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateAcknowledgeIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_GNBCUConfigurationUpdateAcknowledgeIEs_criticality_type, + { &asn_OER_memb_criticality_constr_323, &asn_PER_memb_criticality_constr_323, memb_criticality_constraint_321 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateAcknowledgeIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_324, + select_GNBCUConfigurationUpdateAcknowledgeIEs_value_type, + { &asn_OER_memb_value_constr_324, &asn_PER_memb_value_constr_324, memb_value_constraint_321 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNBCUConfigurationUpdateAcknowledgeIEs_tags_321[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNBCUConfigurationUpdateAcknowledgeIEs_tag2el_321[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNBCUConfigurationUpdateAcknowledgeIEs_specs_321 = { + sizeof(struct GNBCUConfigurationUpdateAcknowledgeIEs), + offsetof(struct GNBCUConfigurationUpdateAcknowledgeIEs, _asn_ctx), + asn_MAP_GNBCUConfigurationUpdateAcknowledgeIEs_tag2el_321, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNBCUConfigurationUpdateAcknowledgeIEs = { + "GNBCUConfigurationUpdateAcknowledgeIEs", + "GNBCUConfigurationUpdateAcknowledgeIEs", + &asn_OP_SEQUENCE, + asn_DEF_GNBCUConfigurationUpdateAcknowledgeIEs_tags_321, + sizeof(asn_DEF_GNBCUConfigurationUpdateAcknowledgeIEs_tags_321) + /sizeof(asn_DEF_GNBCUConfigurationUpdateAcknowledgeIEs_tags_321[0]), /* 1 */ + asn_DEF_GNBCUConfigurationUpdateAcknowledgeIEs_tags_321, /* Same as above */ + sizeof(asn_DEF_GNBCUConfigurationUpdateAcknowledgeIEs_tags_321) + /sizeof(asn_DEF_GNBCUConfigurationUpdateAcknowledgeIEs_tags_321[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNBCUConfigurationUpdateAcknowledgeIEs_321, + 3, /* Elements count */ + &asn_SPC_GNBCUConfigurationUpdateAcknowledgeIEs_specs_321 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_328[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateFailureIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateFailureIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateFailureIEs__value, choice.TimeToWait), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_TimeToWait, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TimeToWait" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateFailureIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_value_to_canonical_328[] = { 0, 2, 3, 1 }; +static const unsigned asn_MAP_value_from_canonical_328[] = { 0, 3, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_328[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* TimeToWait */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* radioNetwork */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 } /* choice-extension */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_328 = { + sizeof(struct GNBCUConfigurationUpdateFailureIEs__value), + offsetof(struct GNBCUConfigurationUpdateFailureIEs__value, _asn_ctx), + offsetof(struct GNBCUConfigurationUpdateFailureIEs__value, present), + sizeof(((struct GNBCUConfigurationUpdateFailureIEs__value *)0)->present), + asn_MAP_value_tag2el_328, + 8, /* Count of tags in the map */ + asn_MAP_value_to_canonical_328, + asn_MAP_value_from_canonical_328, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_328 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_328, + 4, /* Elements count */ + &asn_SPC_value_specs_328 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GNBCUConfigurationUpdateFailureIEs_325[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateFailureIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_326, &asn_PER_memb_id_constr_326, memb_id_constraint_325 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateFailureIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_GNBCUConfigurationUpdateFailureIEs_criticality_type, + { &asn_OER_memb_criticality_constr_327, &asn_PER_memb_criticality_constr_327, memb_criticality_constraint_325 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GNBCUConfigurationUpdateFailureIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_328, + select_GNBCUConfigurationUpdateFailureIEs_value_type, + { &asn_OER_memb_value_constr_328, &asn_PER_memb_value_constr_328, memb_value_constraint_325 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNBCUConfigurationUpdateFailureIEs_tags_325[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNBCUConfigurationUpdateFailureIEs_tag2el_325[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNBCUConfigurationUpdateFailureIEs_specs_325 = { + sizeof(struct GNBCUConfigurationUpdateFailureIEs), + offsetof(struct GNBCUConfigurationUpdateFailureIEs, _asn_ctx), + asn_MAP_GNBCUConfigurationUpdateFailureIEs_tag2el_325, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNBCUConfigurationUpdateFailureIEs = { + "GNBCUConfigurationUpdateFailureIEs", + "GNBCUConfigurationUpdateFailureIEs", + &asn_OP_SEQUENCE, + asn_DEF_GNBCUConfigurationUpdateFailureIEs_tags_325, + sizeof(asn_DEF_GNBCUConfigurationUpdateFailureIEs_tags_325) + /sizeof(asn_DEF_GNBCUConfigurationUpdateFailureIEs_tags_325[0]), /* 1 */ + asn_DEF_GNBCUConfigurationUpdateFailureIEs_tags_325, /* Same as above */ + sizeof(asn_DEF_GNBCUConfigurationUpdateFailureIEs_tags_325) + /sizeof(asn_DEF_GNBCUConfigurationUpdateFailureIEs_tags_325[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNBCUConfigurationUpdateFailureIEs_325, + 3, /* Elements count */ + &asn_SPC_GNBCUConfigurationUpdateFailureIEs_specs_325 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_332[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBDUResourceCoordinationRequest_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBDUResourceCoordinationRequest_IEs__value, choice.RequestType), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_RequestType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RequestType" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBDUResourceCoordinationRequest_IEs__value, choice.EUTRA_NR_CellResourceCoordinationReq_Container), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_EUTRA_NR_CellResourceCoordinationReq_Container, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "EUTRA-NR-CellResourceCoordinationReq-Container" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBDUResourceCoordinationRequest_IEs__value, choice.IgnoreResourceCoordinationContainer), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_IgnoreResourceCoordinationContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "IgnoreResourceCoordinationContainer" + }, +}; +static const unsigned asn_MAP_value_to_canonical_332[] = { 0, 2, 1, 3 }; +static const unsigned asn_MAP_value_from_canonical_332[] = { 0, 2, 1, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_332[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 0 }, /* EUTRA-NR-CellResourceCoordinationReq-Container */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 1 }, /* RequestType */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, -1, 0 } /* IgnoreResourceCoordinationContainer */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_332 = { + sizeof(struct GNBDUResourceCoordinationRequest_IEs__value), + offsetof(struct GNBDUResourceCoordinationRequest_IEs__value, _asn_ctx), + offsetof(struct GNBDUResourceCoordinationRequest_IEs__value, present), + sizeof(((struct GNBDUResourceCoordinationRequest_IEs__value *)0)->present), + asn_MAP_value_tag2el_332, + 4, /* Count of tags in the map */ + asn_MAP_value_to_canonical_332, + asn_MAP_value_from_canonical_332, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_332 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_332, + 4, /* Elements count */ + &asn_SPC_value_specs_332 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GNBDUResourceCoordinationRequest_IEs_329[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBDUResourceCoordinationRequest_IEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_330, &asn_PER_memb_id_constr_330, memb_id_constraint_329 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBDUResourceCoordinationRequest_IEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_GNBDUResourceCoordinationRequest_IEs_criticality_type, + { &asn_OER_memb_criticality_constr_331, &asn_PER_memb_criticality_constr_331, memb_criticality_constraint_329 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GNBDUResourceCoordinationRequest_IEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_332, + select_GNBDUResourceCoordinationRequest_IEs_value_type, + { &asn_OER_memb_value_constr_332, &asn_PER_memb_value_constr_332, memb_value_constraint_329 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNBDUResourceCoordinationRequest_IEs_tags_329[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNBDUResourceCoordinationRequest_IEs_tag2el_329[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNBDUResourceCoordinationRequest_IEs_specs_329 = { + sizeof(struct GNBDUResourceCoordinationRequest_IEs), + offsetof(struct GNBDUResourceCoordinationRequest_IEs, _asn_ctx), + asn_MAP_GNBDUResourceCoordinationRequest_IEs_tag2el_329, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNBDUResourceCoordinationRequest_IEs = { + "GNBDUResourceCoordinationRequest-IEs", + "GNBDUResourceCoordinationRequest-IEs", + &asn_OP_SEQUENCE, + asn_DEF_GNBDUResourceCoordinationRequest_IEs_tags_329, + sizeof(asn_DEF_GNBDUResourceCoordinationRequest_IEs_tags_329) + /sizeof(asn_DEF_GNBDUResourceCoordinationRequest_IEs_tags_329[0]), /* 1 */ + asn_DEF_GNBDUResourceCoordinationRequest_IEs_tags_329, /* Same as above */ + sizeof(asn_DEF_GNBDUResourceCoordinationRequest_IEs_tags_329) + /sizeof(asn_DEF_GNBDUResourceCoordinationRequest_IEs_tags_329[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNBDUResourceCoordinationRequest_IEs_329, + 3, /* Elements count */ + &asn_SPC_GNBDUResourceCoordinationRequest_IEs_specs_329 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_336[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBDUResourceCoordinationResponse_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBDUResourceCoordinationResponse_IEs__value, choice.EUTRA_NR_CellResourceCoordinationReqAck_Container), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_EUTRA_NR_CellResourceCoordinationReqAck_Container, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "EUTRA-NR-CellResourceCoordinationReqAck-Container" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_336[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 1, 0, 0 } /* EUTRA-NR-CellResourceCoordinationReqAck-Container */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_336 = { + sizeof(struct GNBDUResourceCoordinationResponse_IEs__value), + offsetof(struct GNBDUResourceCoordinationResponse_IEs__value, _asn_ctx), + offsetof(struct GNBDUResourceCoordinationResponse_IEs__value, present), + sizeof(((struct GNBDUResourceCoordinationResponse_IEs__value *)0)->present), + asn_MAP_value_tag2el_336, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_336 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_336, + 2, /* Elements count */ + &asn_SPC_value_specs_336 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GNBDUResourceCoordinationResponse_IEs_333[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBDUResourceCoordinationResponse_IEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_334, &asn_PER_memb_id_constr_334, memb_id_constraint_333 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBDUResourceCoordinationResponse_IEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_GNBDUResourceCoordinationResponse_IEs_criticality_type, + { &asn_OER_memb_criticality_constr_335, &asn_PER_memb_criticality_constr_335, memb_criticality_constraint_333 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GNBDUResourceCoordinationResponse_IEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_336, + select_GNBDUResourceCoordinationResponse_IEs_value_type, + { &asn_OER_memb_value_constr_336, &asn_PER_memb_value_constr_336, memb_value_constraint_333 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNBDUResourceCoordinationResponse_IEs_tags_333[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNBDUResourceCoordinationResponse_IEs_tag2el_333[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNBDUResourceCoordinationResponse_IEs_specs_333 = { + sizeof(struct GNBDUResourceCoordinationResponse_IEs), + offsetof(struct GNBDUResourceCoordinationResponse_IEs, _asn_ctx), + asn_MAP_GNBDUResourceCoordinationResponse_IEs_tag2el_333, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNBDUResourceCoordinationResponse_IEs = { + "GNBDUResourceCoordinationResponse-IEs", + "GNBDUResourceCoordinationResponse-IEs", + &asn_OP_SEQUENCE, + asn_DEF_GNBDUResourceCoordinationResponse_IEs_tags_333, + sizeof(asn_DEF_GNBDUResourceCoordinationResponse_IEs_tags_333) + /sizeof(asn_DEF_GNBDUResourceCoordinationResponse_IEs_tags_333[0]), /* 1 */ + asn_DEF_GNBDUResourceCoordinationResponse_IEs_tags_333, /* Same as above */ + sizeof(asn_DEF_GNBDUResourceCoordinationResponse_IEs_tags_333) + /sizeof(asn_DEF_GNBDUResourceCoordinationResponse_IEs_tags_333[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNBDUResourceCoordinationResponse_IEs_333, + 3, /* Elements count */ + &asn_SPC_GNBDUResourceCoordinationResponse_IEs_specs_333 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_340[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupRequestIEs__value, choice.GNB_CU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_CU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupRequestIEs__value, choice.GNB_DU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_DU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-DU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupRequestIEs__value, choice.NRCGI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NRCGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NRCGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupRequestIEs__value, choice.ServCellIndex), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ServCellIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupRequestIEs__value, choice.CellULConfigured), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_CellULConfigured, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CellULConfigured" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupRequestIEs__value, choice.CUtoDURRCInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CUtoDURRCInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CUtoDURRCInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupRequestIEs__value, choice.Candidate_SpCell_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Candidate_SpCell_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Candidate-SpCell-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupRequestIEs__value, choice.DRXCycle), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRXCycle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRXCycle" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupRequestIEs__value, choice.ResourceCoordinationTransferContainer), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ResourceCoordinationTransferContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ResourceCoordinationTransferContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupRequestIEs__value, choice.SCell_ToBeSetup_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SCell_ToBeSetup_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SCell-ToBeSetup-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupRequestIEs__value, choice.SRBs_ToBeSetup_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_ToBeSetup_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRBs-ToBeSetup-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupRequestIEs__value, choice.DRBs_ToBeSetup_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_ToBeSetup_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRBs-ToBeSetup-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupRequestIEs__value, choice.InactivityMonitoringRequest), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_InactivityMonitoringRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "InactivityMonitoringRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupRequestIEs__value, choice.RAT_FrequencyPriorityInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_RAT_FrequencyPriorityInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAT-FrequencyPriorityInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupRequestIEs__value, choice.RRCContainer), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RRCContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RRCContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupRequestIEs__value, choice.MaskedIMEISV), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_MaskedIMEISV, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MaskedIMEISV" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupRequestIEs__value, choice.PLMN_Identity), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_PLMN_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PLMN-Identity" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupRequestIEs__value, choice.BitRate), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "BitRate" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupRequestIEs__value, choice.RRCDeliveryStatusRequest), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_RRCDeliveryStatusRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RRCDeliveryStatusRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupRequestIEs__value, choice.ResourceCoordinationTransferInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ResourceCoordinationTransferInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ResourceCoordinationTransferInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupRequestIEs__value, choice.ServingCellMO), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ServingCellMO, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ServingCellMO" + }, +}; +static const unsigned asn_MAP_value_to_canonical_340[] = { 0, 1, 3, 17, 20, 15, 8, 14, 16, 4, 12, 18, 2, 5, 6, 7, 9, 10, 11, 19, 13 }; +static const unsigned asn_MAP_value_from_canonical_340[] = { 0, 1, 12, 2, 9, 13, 14, 15, 6, 16, 17, 18, 10, 20, 7, 5, 8, 3, 11, 19, 4 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_340[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 4 }, /* GNB-CU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 3 }, /* GNB-DU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 2 }, /* ServCellIndex */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 17, -3, 1 }, /* BitRate */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 20, -4, 0 }, /* ServingCellMO */ + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 15, 0, 0 }, /* MaskedIMEISV */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 8, 0, 2 }, /* ResourceCoordinationTransferContainer */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 14, -1, 1 }, /* RRCContainer */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 16, -2, 0 }, /* PLMN-Identity */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 4, 0, 2 }, /* CellULConfigured */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 12, -1, 1 }, /* InactivityMonitoringRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 18, -2, 0 }, /* RRCDeliveryStatusRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 7 }, /* NRCGI */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -1, 6 }, /* CUtoDURRCInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -2, 5 }, /* Candidate-SpCell-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -3, 4 }, /* DRXCycle */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -4, 3 }, /* SCell-ToBeSetup-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -5, 2 }, /* SRBs-ToBeSetup-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -6, 1 }, /* DRBs-ToBeSetup-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 19, -7, 0 }, /* ResourceCoordinationTransferInformation */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 13, 0, 0 }, /* subscriberProfileIDforRFP */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 13, 0, 0 }, /* rAT-FrequencySelectionPriority */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 13, 0, 0 } /* choice-extension */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_340 = { + sizeof(struct UEContextSetupRequestIEs__value), + offsetof(struct UEContextSetupRequestIEs__value, _asn_ctx), + offsetof(struct UEContextSetupRequestIEs__value, present), + sizeof(((struct UEContextSetupRequestIEs__value *)0)->present), + asn_MAP_value_tag2el_340, + 23, /* Count of tags in the map */ + asn_MAP_value_to_canonical_340, + asn_MAP_value_from_canonical_340, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_340 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_340, + 21, /* Elements count */ + &asn_SPC_value_specs_340 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UEContextSetupRequestIEs_337[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupRequestIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_338, &asn_PER_memb_id_constr_338, memb_id_constraint_337 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupRequestIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_UEContextSetupRequestIEs_criticality_type, + { &asn_OER_memb_criticality_constr_339, &asn_PER_memb_criticality_constr_339, memb_criticality_constraint_337 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UEContextSetupRequestIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_340, + select_UEContextSetupRequestIEs_value_type, + { &asn_OER_memb_value_constr_340, &asn_PER_memb_value_constr_340, memb_value_constraint_337 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEContextSetupRequestIEs_tags_337[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEContextSetupRequestIEs_tag2el_337[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEContextSetupRequestIEs_specs_337 = { + sizeof(struct UEContextSetupRequestIEs), + offsetof(struct UEContextSetupRequestIEs, _asn_ctx), + asn_MAP_UEContextSetupRequestIEs_tag2el_337, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UEContextSetupRequestIEs = { + "UEContextSetupRequestIEs", + "UEContextSetupRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_UEContextSetupRequestIEs_tags_337, + sizeof(asn_DEF_UEContextSetupRequestIEs_tags_337) + /sizeof(asn_DEF_UEContextSetupRequestIEs_tags_337[0]), /* 1 */ + asn_DEF_UEContextSetupRequestIEs_tags_337, /* Same as above */ + sizeof(asn_DEF_UEContextSetupRequestIEs_tags_337) + /sizeof(asn_DEF_UEContextSetupRequestIEs_tags_337[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEContextSetupRequestIEs_337, + 3, /* Elements count */ + &asn_SPC_UEContextSetupRequestIEs_specs_337 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_344[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupResponseIEs__value, choice.GNB_CU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_CU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupResponseIEs__value, choice.GNB_DU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_DU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-DU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupResponseIEs__value, choice.DUtoCURRCInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DUtoCURRCInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DUtoCURRCInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupResponseIEs__value, choice.C_RNTI), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_C_RNTI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "C-RNTI" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupResponseIEs__value, choice.ResourceCoordinationTransferContainer), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ResourceCoordinationTransferContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ResourceCoordinationTransferContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupResponseIEs__value, choice.FullConfiguration), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_FullConfiguration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "FullConfiguration" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupResponseIEs__value, choice.DRBs_Setup_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_Setup_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRBs-Setup-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupResponseIEs__value, choice.SRBs_FailedToBeSetup_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_FailedToBeSetup_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRBs-FailedToBeSetup-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupResponseIEs__value, choice.DRBs_FailedToBeSetup_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_FailedToBeSetup_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRBs-FailedToBeSetup-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupResponseIEs__value, choice.SCell_FailedtoSetup_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SCell_FailedtoSetup_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SCell-FailedtoSetup-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupResponseIEs__value, choice.InactivityMonitoringResponse), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_InactivityMonitoringResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "InactivityMonitoringResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupResponseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupResponseIEs__value, choice.SRBs_Setup_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_Setup_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRBs-Setup-List" + }, +}; +static const unsigned asn_MAP_value_to_canonical_344[] = { 0, 1, 3, 4, 5, 10, 2, 6, 7, 8, 9, 11, 12 }; +static const unsigned asn_MAP_value_from_canonical_344[] = { 0, 1, 6, 2, 3, 4, 7, 8, 9, 10, 5, 11, 12 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_344[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* GNB-CU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* GNB-DU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* C-RNTI */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, 0, 0 }, /* ResourceCoordinationTransferContainer */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, 0, 1 }, /* FullConfiguration */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 10, -1, 0 }, /* InactivityMonitoringResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 6 }, /* DUtoCURRCInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -1, 5 }, /* DRBs-Setup-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -2, 4 }, /* SRBs-FailedToBeSetup-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -3, 3 }, /* DRBs-FailedToBeSetup-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -4, 2 }, /* SCell-FailedtoSetup-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -5, 1 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 12, -6, 0 } /* SRBs-Setup-List */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_344 = { + sizeof(struct UEContextSetupResponseIEs__value), + offsetof(struct UEContextSetupResponseIEs__value, _asn_ctx), + offsetof(struct UEContextSetupResponseIEs__value, present), + sizeof(((struct UEContextSetupResponseIEs__value *)0)->present), + asn_MAP_value_tag2el_344, + 13, /* Count of tags in the map */ + asn_MAP_value_to_canonical_344, + asn_MAP_value_from_canonical_344, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_344 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_344, + 13, /* Elements count */ + &asn_SPC_value_specs_344 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UEContextSetupResponseIEs_341[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupResponseIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_342, &asn_PER_memb_id_constr_342, memb_id_constraint_341 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupResponseIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_UEContextSetupResponseIEs_criticality_type, + { &asn_OER_memb_criticality_constr_343, &asn_PER_memb_criticality_constr_343, memb_criticality_constraint_341 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UEContextSetupResponseIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_344, + select_UEContextSetupResponseIEs_value_type, + { &asn_OER_memb_value_constr_344, &asn_PER_memb_value_constr_344, memb_value_constraint_341 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEContextSetupResponseIEs_tags_341[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEContextSetupResponseIEs_tag2el_341[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEContextSetupResponseIEs_specs_341 = { + sizeof(struct UEContextSetupResponseIEs), + offsetof(struct UEContextSetupResponseIEs, _asn_ctx), + asn_MAP_UEContextSetupResponseIEs_tag2el_341, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UEContextSetupResponseIEs = { + "UEContextSetupResponseIEs", + "UEContextSetupResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_UEContextSetupResponseIEs_tags_341, + sizeof(asn_DEF_UEContextSetupResponseIEs_tags_341) + /sizeof(asn_DEF_UEContextSetupResponseIEs_tags_341[0]), /* 1 */ + asn_DEF_UEContextSetupResponseIEs_tags_341, /* Same as above */ + sizeof(asn_DEF_UEContextSetupResponseIEs_tags_341) + /sizeof(asn_DEF_UEContextSetupResponseIEs_tags_341[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEContextSetupResponseIEs_341, + 3, /* Elements count */ + &asn_SPC_UEContextSetupResponseIEs_specs_341 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_348[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupFailureIEs__value, choice.GNB_CU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_CU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupFailureIEs__value, choice.GNB_DU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_DU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-DU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupFailureIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupFailureIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupFailureIEs__value, choice.Potential_SpCell_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Potential_SpCell_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Potential-SpCell-List" + }, +}; +static const unsigned asn_MAP_value_to_canonical_348[] = { 0, 1, 3, 4, 2 }; +static const unsigned asn_MAP_value_from_canonical_348[] = { 0, 1, 4, 2, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_348[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* GNB-CU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* GNB-DU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 1 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 0 }, /* Potential-SpCell-List */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 } /* choice-extension */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_348 = { + sizeof(struct UEContextSetupFailureIEs__value), + offsetof(struct UEContextSetupFailureIEs__value, _asn_ctx), + offsetof(struct UEContextSetupFailureIEs__value, present), + sizeof(((struct UEContextSetupFailureIEs__value *)0)->present), + asn_MAP_value_tag2el_348, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_348, + asn_MAP_value_from_canonical_348, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_348 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_348, + 5, /* Elements count */ + &asn_SPC_value_specs_348 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UEContextSetupFailureIEs_345[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupFailureIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_346, &asn_PER_memb_id_constr_346, memb_id_constraint_345 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupFailureIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_UEContextSetupFailureIEs_criticality_type, + { &asn_OER_memb_criticality_constr_347, &asn_PER_memb_criticality_constr_347, memb_criticality_constraint_345 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UEContextSetupFailureIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_348, + select_UEContextSetupFailureIEs_value_type, + { &asn_OER_memb_value_constr_348, &asn_PER_memb_value_constr_348, memb_value_constraint_345 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEContextSetupFailureIEs_tags_345[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEContextSetupFailureIEs_tag2el_345[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEContextSetupFailureIEs_specs_345 = { + sizeof(struct UEContextSetupFailureIEs), + offsetof(struct UEContextSetupFailureIEs, _asn_ctx), + asn_MAP_UEContextSetupFailureIEs_tag2el_345, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UEContextSetupFailureIEs = { + "UEContextSetupFailureIEs", + "UEContextSetupFailureIEs", + &asn_OP_SEQUENCE, + asn_DEF_UEContextSetupFailureIEs_tags_345, + sizeof(asn_DEF_UEContextSetupFailureIEs_tags_345) + /sizeof(asn_DEF_UEContextSetupFailureIEs_tags_345[0]), /* 1 */ + asn_DEF_UEContextSetupFailureIEs_tags_345, /* Same as above */ + sizeof(asn_DEF_UEContextSetupFailureIEs_tags_345) + /sizeof(asn_DEF_UEContextSetupFailureIEs_tags_345[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEContextSetupFailureIEs_345, + 3, /* Elements count */ + &asn_SPC_UEContextSetupFailureIEs_specs_345 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_352[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextReleaseRequestIEs__value, choice.GNB_CU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_CU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextReleaseRequestIEs__value, choice.GNB_DU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_DU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-DU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextReleaseRequestIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_352[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* GNB-CU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* GNB-DU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 } /* choice-extension */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_352 = { + sizeof(struct UEContextReleaseRequestIEs__value), + offsetof(struct UEContextReleaseRequestIEs__value, _asn_ctx), + offsetof(struct UEContextReleaseRequestIEs__value, present), + sizeof(((struct UEContextReleaseRequestIEs__value *)0)->present), + asn_MAP_value_tag2el_352, + 7, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_352 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_352, + 3, /* Elements count */ + &asn_SPC_value_specs_352 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UEContextReleaseRequestIEs_349[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextReleaseRequestIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_350, &asn_PER_memb_id_constr_350, memb_id_constraint_349 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextReleaseRequestIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_UEContextReleaseRequestIEs_criticality_type, + { &asn_OER_memb_criticality_constr_351, &asn_PER_memb_criticality_constr_351, memb_criticality_constraint_349 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UEContextReleaseRequestIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_352, + select_UEContextReleaseRequestIEs_value_type, + { &asn_OER_memb_value_constr_352, &asn_PER_memb_value_constr_352, memb_value_constraint_349 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEContextReleaseRequestIEs_tags_349[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEContextReleaseRequestIEs_tag2el_349[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEContextReleaseRequestIEs_specs_349 = { + sizeof(struct UEContextReleaseRequestIEs), + offsetof(struct UEContextReleaseRequestIEs, _asn_ctx), + asn_MAP_UEContextReleaseRequestIEs_tag2el_349, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UEContextReleaseRequestIEs = { + "UEContextReleaseRequestIEs", + "UEContextReleaseRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_UEContextReleaseRequestIEs_tags_349, + sizeof(asn_DEF_UEContextReleaseRequestIEs_tags_349) + /sizeof(asn_DEF_UEContextReleaseRequestIEs_tags_349[0]), /* 1 */ + asn_DEF_UEContextReleaseRequestIEs_tags_349, /* Same as above */ + sizeof(asn_DEF_UEContextReleaseRequestIEs_tags_349) + /sizeof(asn_DEF_UEContextReleaseRequestIEs_tags_349[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEContextReleaseRequestIEs_349, + 3, /* Elements count */ + &asn_SPC_UEContextReleaseRequestIEs_specs_349 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_356[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextReleaseCommandIEs__value, choice.GNB_CU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_CU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextReleaseCommandIEs__value, choice.GNB_DU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_DU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-DU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextReleaseCommandIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextReleaseCommandIEs__value, choice.RRCContainer), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RRCContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RRCContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextReleaseCommandIEs__value, choice.SRBID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_SRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRBID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextReleaseCommandIEs__value, choice.ExecuteDuplication), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ExecuteDuplication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ExecuteDuplication" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextReleaseCommandIEs__value, choice.RRCDeliveryStatusRequest), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_RRCDeliveryStatusRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RRCDeliveryStatusRequest" + }, +}; +static const unsigned asn_MAP_value_to_canonical_356[] = { 0, 1, 4, 3, 5, 6, 2 }; +static const unsigned asn_MAP_value_from_canonical_356[] = { 0, 1, 6, 3, 2, 4, 5 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_356[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* GNB-CU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* GNB-DU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 4, -2, 0 }, /* SRBID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, 0, 0 }, /* RRCContainer */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, 0, 1 }, /* ExecuteDuplication */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 6, -1, 0 }, /* RRCDeliveryStatusRequest */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 } /* choice-extension */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_356 = { + sizeof(struct UEContextReleaseCommandIEs__value), + offsetof(struct UEContextReleaseCommandIEs__value, _asn_ctx), + offsetof(struct UEContextReleaseCommandIEs__value, present), + sizeof(((struct UEContextReleaseCommandIEs__value *)0)->present), + asn_MAP_value_tag2el_356, + 11, /* Count of tags in the map */ + asn_MAP_value_to_canonical_356, + asn_MAP_value_from_canonical_356, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_356 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_356, + 7, /* Elements count */ + &asn_SPC_value_specs_356 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UEContextReleaseCommandIEs_353[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextReleaseCommandIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_354, &asn_PER_memb_id_constr_354, memb_id_constraint_353 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextReleaseCommandIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_UEContextReleaseCommandIEs_criticality_type, + { &asn_OER_memb_criticality_constr_355, &asn_PER_memb_criticality_constr_355, memb_criticality_constraint_353 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UEContextReleaseCommandIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_356, + select_UEContextReleaseCommandIEs_value_type, + { &asn_OER_memb_value_constr_356, &asn_PER_memb_value_constr_356, memb_value_constraint_353 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEContextReleaseCommandIEs_tags_353[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEContextReleaseCommandIEs_tag2el_353[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEContextReleaseCommandIEs_specs_353 = { + sizeof(struct UEContextReleaseCommandIEs), + offsetof(struct UEContextReleaseCommandIEs, _asn_ctx), + asn_MAP_UEContextReleaseCommandIEs_tag2el_353, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UEContextReleaseCommandIEs = { + "UEContextReleaseCommandIEs", + "UEContextReleaseCommandIEs", + &asn_OP_SEQUENCE, + asn_DEF_UEContextReleaseCommandIEs_tags_353, + sizeof(asn_DEF_UEContextReleaseCommandIEs_tags_353) + /sizeof(asn_DEF_UEContextReleaseCommandIEs_tags_353[0]), /* 1 */ + asn_DEF_UEContextReleaseCommandIEs_tags_353, /* Same as above */ + sizeof(asn_DEF_UEContextReleaseCommandIEs_tags_353) + /sizeof(asn_DEF_UEContextReleaseCommandIEs_tags_353[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEContextReleaseCommandIEs_353, + 3, /* Elements count */ + &asn_SPC_UEContextReleaseCommandIEs_specs_353 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_360[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextReleaseCompleteIEs__value, choice.GNB_CU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_CU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextReleaseCompleteIEs__value, choice.GNB_DU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_DU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-DU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextReleaseCompleteIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_360[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* GNB-CU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* GNB-DU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 } /* CriticalityDiagnostics */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_360 = { + sizeof(struct UEContextReleaseCompleteIEs__value), + offsetof(struct UEContextReleaseCompleteIEs__value, _asn_ctx), + offsetof(struct UEContextReleaseCompleteIEs__value, present), + sizeof(((struct UEContextReleaseCompleteIEs__value *)0)->present), + asn_MAP_value_tag2el_360, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_360 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_360, + 3, /* Elements count */ + &asn_SPC_value_specs_360 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UEContextReleaseCompleteIEs_357[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextReleaseCompleteIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_358, &asn_PER_memb_id_constr_358, memb_id_constraint_357 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextReleaseCompleteIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_UEContextReleaseCompleteIEs_criticality_type, + { &asn_OER_memb_criticality_constr_359, &asn_PER_memb_criticality_constr_359, memb_criticality_constraint_357 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UEContextReleaseCompleteIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_360, + select_UEContextReleaseCompleteIEs_value_type, + { &asn_OER_memb_value_constr_360, &asn_PER_memb_value_constr_360, memb_value_constraint_357 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEContextReleaseCompleteIEs_tags_357[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEContextReleaseCompleteIEs_tag2el_357[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEContextReleaseCompleteIEs_specs_357 = { + sizeof(struct UEContextReleaseCompleteIEs), + offsetof(struct UEContextReleaseCompleteIEs, _asn_ctx), + asn_MAP_UEContextReleaseCompleteIEs_tag2el_357, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UEContextReleaseCompleteIEs = { + "UEContextReleaseCompleteIEs", + "UEContextReleaseCompleteIEs", + &asn_OP_SEQUENCE, + asn_DEF_UEContextReleaseCompleteIEs_tags_357, + sizeof(asn_DEF_UEContextReleaseCompleteIEs_tags_357) + /sizeof(asn_DEF_UEContextReleaseCompleteIEs_tags_357[0]), /* 1 */ + asn_DEF_UEContextReleaseCompleteIEs_tags_357, /* Same as above */ + sizeof(asn_DEF_UEContextReleaseCompleteIEs_tags_357) + /sizeof(asn_DEF_UEContextReleaseCompleteIEs_tags_357[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEContextReleaseCompleteIEs_357, + 3, /* Elements count */ + &asn_SPC_UEContextReleaseCompleteIEs_specs_357 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_364[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.GNB_CU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_CU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.GNB_DU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_DU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-DU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.NRCGI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NRCGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NRCGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.ServCellIndex), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ServCellIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.CellULConfigured), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_CellULConfigured, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CellULConfigured" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.DRXCycle), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRXCycle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRXCycle" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.CUtoDURRCInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CUtoDURRCInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CUtoDURRCInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.TransmissionActionIndicator), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_TransmissionActionIndicator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransmissionActionIndicator" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.ResourceCoordinationTransferContainer), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ResourceCoordinationTransferContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ResourceCoordinationTransferContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.RRCReconfigurationCompleteIndicator), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_RRCReconfigurationCompleteIndicator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RRCReconfigurationCompleteIndicator" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.RRCContainer), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RRCContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RRCContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.SCell_ToBeSetupMod_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SCell_ToBeSetupMod_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SCell-ToBeSetupMod-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.SCell_ToBeRemoved_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SCell_ToBeRemoved_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SCell-ToBeRemoved-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.SRBs_ToBeSetupMod_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_ToBeSetupMod_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRBs-ToBeSetupMod-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.DRBs_ToBeSetupMod_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_ToBeSetupMod_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRBs-ToBeSetupMod-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.DRBs_ToBeModified_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_ToBeModified_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRBs-ToBeModified-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.SRBs_ToBeReleased_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_ToBeReleased_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRBs-ToBeReleased-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.DRBs_ToBeReleased_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_ToBeReleased_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRBs-ToBeReleased-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.InactivityMonitoringRequest), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_InactivityMonitoringRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "InactivityMonitoringRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.RAT_FrequencyPriorityInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_RAT_FrequencyPriorityInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAT-FrequencyPriorityInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.DRXConfigurationIndicator), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_DRXConfigurationIndicator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRXConfigurationIndicator" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.RLCFailureIndication), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RLCFailureIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RLCFailureIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.UplinkTxDirectCurrentListInformation), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_UplinkTxDirectCurrentListInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UplinkTxDirectCurrentListInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.GNB_DUConfigurationQuery), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_GNB_DUConfigurationQuery, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-DUConfigurationQuery" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.BitRate), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "BitRate" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.ExecuteDuplication), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ExecuteDuplication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ExecuteDuplication" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.RRCDeliveryStatusRequest), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_RRCDeliveryStatusRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RRCDeliveryStatusRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.ResourceCoordinationTransferInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ResourceCoordinationTransferInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ResourceCoordinationTransferInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.ServingCellMO), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ServingCellMO, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ServingCellMO" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs__value, choice.NeedforGap), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_NeedforGap, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NeedforGap" + }, +}; +static const unsigned asn_MAP_value_to_canonical_364[] = { 0, 1, 3, 24, 28, 8, 10, 22, 4, 7, 9, 18, 20, 23, 25, 26, 29, 2, 5, 6, 11, 12, 13, 14, 15, 16, 17, 21, 27, 19 }; +static const unsigned asn_MAP_value_from_canonical_364[] = { 0, 1, 17, 2, 8, 18, 19, 9, 5, 10, 6, 20, 21, 22, 23, 24, 25, 26, 11, 29, 12, 27, 7, 13, 3, 14, 15, 28, 4, 16 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_364[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 4 }, /* GNB-CU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 3 }, /* GNB-DU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 2 }, /* ServCellIndex */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 24, -3, 1 }, /* BitRate */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 28, -4, 0 }, /* ServingCellMO */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 8, 0, 2 }, /* ResourceCoordinationTransferContainer */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 10, -1, 1 }, /* RRCContainer */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 22, -2, 0 }, /* UplinkTxDirectCurrentListInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 4, 0, 8 }, /* CellULConfigured */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 7, -1, 7 }, /* TransmissionActionIndicator */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 9, -2, 6 }, /* RRCReconfigurationCompleteIndicator */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 18, -3, 5 }, /* InactivityMonitoringRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 20, -4, 4 }, /* DRXConfigurationIndicator */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 23, -5, 3 }, /* GNB-DUConfigurationQuery */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 25, -6, 2 }, /* ExecuteDuplication */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 26, -7, 1 }, /* RRCDeliveryStatusRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 29, -8, 0 }, /* NeedforGap */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 11 }, /* NRCGI */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -1, 10 }, /* DRXCycle */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -2, 9 }, /* CUtoDURRCInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -3, 8 }, /* SCell-ToBeSetupMod-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 12, -4, 7 }, /* SCell-ToBeRemoved-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 13, -5, 6 }, /* SRBs-ToBeSetupMod-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 14, -6, 5 }, /* DRBs-ToBeSetupMod-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 15, -7, 4 }, /* DRBs-ToBeModified-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 16, -8, 3 }, /* SRBs-ToBeReleased-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 17, -9, 2 }, /* DRBs-ToBeReleased-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 21, -10, 1 }, /* RLCFailureIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 27, -11, 0 }, /* ResourceCoordinationTransferInformation */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 19, 0, 0 }, /* subscriberProfileIDforRFP */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 19, 0, 0 }, /* rAT-FrequencySelectionPriority */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 19, 0, 0 } /* choice-extension */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_364 = { + sizeof(struct UEContextModificationRequestIEs__value), + offsetof(struct UEContextModificationRequestIEs__value, _asn_ctx), + offsetof(struct UEContextModificationRequestIEs__value, present), + sizeof(((struct UEContextModificationRequestIEs__value *)0)->present), + asn_MAP_value_tag2el_364, + 32, /* Count of tags in the map */ + asn_MAP_value_to_canonical_364, + asn_MAP_value_from_canonical_364, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_364 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_364, + 30, /* Elements count */ + &asn_SPC_value_specs_364 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UEContextModificationRequestIEs_361[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_362, &asn_PER_memb_id_constr_362, memb_id_constraint_361 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_UEContextModificationRequestIEs_criticality_type, + { &asn_OER_memb_criticality_constr_363, &asn_PER_memb_criticality_constr_363, memb_criticality_constraint_361 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequestIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_364, + select_UEContextModificationRequestIEs_value_type, + { &asn_OER_memb_value_constr_364, &asn_PER_memb_value_constr_364, memb_value_constraint_361 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEContextModificationRequestIEs_tags_361[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEContextModificationRequestIEs_tag2el_361[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationRequestIEs_specs_361 = { + sizeof(struct UEContextModificationRequestIEs), + offsetof(struct UEContextModificationRequestIEs, _asn_ctx), + asn_MAP_UEContextModificationRequestIEs_tag2el_361, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UEContextModificationRequestIEs = { + "UEContextModificationRequestIEs", + "UEContextModificationRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_UEContextModificationRequestIEs_tags_361, + sizeof(asn_DEF_UEContextModificationRequestIEs_tags_361) + /sizeof(asn_DEF_UEContextModificationRequestIEs_tags_361[0]), /* 1 */ + asn_DEF_UEContextModificationRequestIEs_tags_361, /* Same as above */ + sizeof(asn_DEF_UEContextModificationRequestIEs_tags_361) + /sizeof(asn_DEF_UEContextModificationRequestIEs_tags_361[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEContextModificationRequestIEs_361, + 3, /* Elements count */ + &asn_SPC_UEContextModificationRequestIEs_specs_361 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_368[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationResponseIEs__value, choice.GNB_CU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_CU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationResponseIEs__value, choice.GNB_DU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_DU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-DU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationResponseIEs__value, choice.ResourceCoordinationTransferContainer), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ResourceCoordinationTransferContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ResourceCoordinationTransferContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationResponseIEs__value, choice.DUtoCURRCInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DUtoCURRCInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DUtoCURRCInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationResponseIEs__value, choice.DRBs_SetupMod_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_SetupMod_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRBs-SetupMod-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationResponseIEs__value, choice.DRBs_Modified_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_Modified_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRBs-Modified-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationResponseIEs__value, choice.SRBs_FailedToBeSetupMod_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_FailedToBeSetupMod_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRBs-FailedToBeSetupMod-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationResponseIEs__value, choice.DRBs_FailedToBeSetupMod_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_FailedToBeSetupMod_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRBs-FailedToBeSetupMod-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationResponseIEs__value, choice.SCell_FailedtoSetupMod_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SCell_FailedtoSetupMod_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SCell-FailedtoSetupMod-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationResponseIEs__value, choice.DRBs_FailedToBeModified_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_FailedToBeModified_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRBs-FailedToBeModified-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationResponseIEs__value, choice.InactivityMonitoringResponse), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_InactivityMonitoringResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "InactivityMonitoringResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationResponseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationResponseIEs__value, choice.C_RNTI), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_C_RNTI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "C-RNTI" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationResponseIEs__value, choice.Associated_SCell_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Associated_SCell_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Associated-SCell-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationResponseIEs__value, choice.SRBs_SetupMod_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_SetupMod_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRBs-SetupMod-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationResponseIEs__value, choice.SRBs_Modified_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_Modified_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRBs-Modified-List" + }, +}; +static const unsigned asn_MAP_value_to_canonical_368[] = { 0, 1, 12, 2, 10, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 15 }; +static const unsigned asn_MAP_value_from_canonical_368[] = { 0, 1, 3, 5, 6, 7, 8, 9, 10, 11, 4, 12, 2, 13, 14, 15 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_368[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* GNB-CU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* GNB-DU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 12, -2, 0 }, /* C-RNTI */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 0 }, /* ResourceCoordinationTransferContainer */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 10, 0, 0 }, /* InactivityMonitoringResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 10 }, /* DUtoCURRCInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 9 }, /* DRBs-SetupMod-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -2, 8 }, /* DRBs-Modified-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -3, 7 }, /* SRBs-FailedToBeSetupMod-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -4, 6 }, /* DRBs-FailedToBeSetupMod-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -5, 5 }, /* SCell-FailedtoSetupMod-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -6, 4 }, /* DRBs-FailedToBeModified-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -7, 3 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 13, -8, 2 }, /* Associated-SCell-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 14, -9, 1 }, /* SRBs-SetupMod-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 15, -10, 0 } /* SRBs-Modified-List */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_368 = { + sizeof(struct UEContextModificationResponseIEs__value), + offsetof(struct UEContextModificationResponseIEs__value, _asn_ctx), + offsetof(struct UEContextModificationResponseIEs__value, present), + sizeof(((struct UEContextModificationResponseIEs__value *)0)->present), + asn_MAP_value_tag2el_368, + 16, /* Count of tags in the map */ + asn_MAP_value_to_canonical_368, + asn_MAP_value_from_canonical_368, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_368 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_368, + 16, /* Elements count */ + &asn_SPC_value_specs_368 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UEContextModificationResponseIEs_365[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationResponseIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_366, &asn_PER_memb_id_constr_366, memb_id_constraint_365 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationResponseIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_UEContextModificationResponseIEs_criticality_type, + { &asn_OER_memb_criticality_constr_367, &asn_PER_memb_criticality_constr_367, memb_criticality_constraint_365 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UEContextModificationResponseIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_368, + select_UEContextModificationResponseIEs_value_type, + { &asn_OER_memb_value_constr_368, &asn_PER_memb_value_constr_368, memb_value_constraint_365 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEContextModificationResponseIEs_tags_365[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEContextModificationResponseIEs_tag2el_365[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationResponseIEs_specs_365 = { + sizeof(struct UEContextModificationResponseIEs), + offsetof(struct UEContextModificationResponseIEs, _asn_ctx), + asn_MAP_UEContextModificationResponseIEs_tag2el_365, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UEContextModificationResponseIEs = { + "UEContextModificationResponseIEs", + "UEContextModificationResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_UEContextModificationResponseIEs_tags_365, + sizeof(asn_DEF_UEContextModificationResponseIEs_tags_365) + /sizeof(asn_DEF_UEContextModificationResponseIEs_tags_365[0]), /* 1 */ + asn_DEF_UEContextModificationResponseIEs_tags_365, /* Same as above */ + sizeof(asn_DEF_UEContextModificationResponseIEs_tags_365) + /sizeof(asn_DEF_UEContextModificationResponseIEs_tags_365[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEContextModificationResponseIEs_365, + 3, /* Elements count */ + &asn_SPC_UEContextModificationResponseIEs_specs_365 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_372[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationFailureIEs__value, choice.GNB_CU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_CU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationFailureIEs__value, choice.GNB_DU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_DU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-DU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationFailureIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationFailureIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_value_to_canonical_372[] = { 0, 1, 3, 2 }; +static const unsigned asn_MAP_value_from_canonical_372[] = { 0, 1, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_372[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* GNB-CU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* GNB-DU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 } /* choice-extension */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_372 = { + sizeof(struct UEContextModificationFailureIEs__value), + offsetof(struct UEContextModificationFailureIEs__value, _asn_ctx), + offsetof(struct UEContextModificationFailureIEs__value, present), + sizeof(((struct UEContextModificationFailureIEs__value *)0)->present), + asn_MAP_value_tag2el_372, + 8, /* Count of tags in the map */ + asn_MAP_value_to_canonical_372, + asn_MAP_value_from_canonical_372, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_372 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_372, + 4, /* Elements count */ + &asn_SPC_value_specs_372 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UEContextModificationFailureIEs_369[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationFailureIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_370, &asn_PER_memb_id_constr_370, memb_id_constraint_369 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationFailureIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_UEContextModificationFailureIEs_criticality_type, + { &asn_OER_memb_criticality_constr_371, &asn_PER_memb_criticality_constr_371, memb_criticality_constraint_369 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UEContextModificationFailureIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_372, + select_UEContextModificationFailureIEs_value_type, + { &asn_OER_memb_value_constr_372, &asn_PER_memb_value_constr_372, memb_value_constraint_369 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEContextModificationFailureIEs_tags_369[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEContextModificationFailureIEs_tag2el_369[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationFailureIEs_specs_369 = { + sizeof(struct UEContextModificationFailureIEs), + offsetof(struct UEContextModificationFailureIEs, _asn_ctx), + asn_MAP_UEContextModificationFailureIEs_tag2el_369, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UEContextModificationFailureIEs = { + "UEContextModificationFailureIEs", + "UEContextModificationFailureIEs", + &asn_OP_SEQUENCE, + asn_DEF_UEContextModificationFailureIEs_tags_369, + sizeof(asn_DEF_UEContextModificationFailureIEs_tags_369) + /sizeof(asn_DEF_UEContextModificationFailureIEs_tags_369[0]), /* 1 */ + asn_DEF_UEContextModificationFailureIEs_tags_369, /* Same as above */ + sizeof(asn_DEF_UEContextModificationFailureIEs_tags_369) + /sizeof(asn_DEF_UEContextModificationFailureIEs_tags_369[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEContextModificationFailureIEs_369, + 3, /* Elements count */ + &asn_SPC_UEContextModificationFailureIEs_specs_369 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_376[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequiredIEs__value, choice.GNB_CU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_CU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequiredIEs__value, choice.GNB_DU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_DU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-DU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequiredIEs__value, choice.ResourceCoordinationTransferContainer), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ResourceCoordinationTransferContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ResourceCoordinationTransferContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequiredIEs__value, choice.DUtoCURRCInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DUtoCURRCInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DUtoCURRCInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequiredIEs__value, choice.DRBs_Required_ToBeModified_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_Required_ToBeModified_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRBs-Required-ToBeModified-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequiredIEs__value, choice.SRBs_Required_ToBeReleased_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRBs_Required_ToBeReleased_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRBs-Required-ToBeReleased-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequiredIEs__value, choice.DRBs_Required_ToBeReleased_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_Required_ToBeReleased_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRBs-Required-ToBeReleased-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequiredIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_376[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* GNB-CU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* GNB-DU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 0 }, /* ResourceCoordinationTransferContainer */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 3 }, /* DUtoCURRCInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 2 }, /* DRBs-Required-ToBeModified-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -2, 1 }, /* SRBs-Required-ToBeReleased-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -3, 0 }, /* DRBs-Required-ToBeReleased-List */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 7, 0, 0 }, /* radioNetwork */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 7, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 7, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 7, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 7, 0, 0 } /* choice-extension */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_376 = { + sizeof(struct UEContextModificationRequiredIEs__value), + offsetof(struct UEContextModificationRequiredIEs__value, _asn_ctx), + offsetof(struct UEContextModificationRequiredIEs__value, present), + sizeof(((struct UEContextModificationRequiredIEs__value *)0)->present), + asn_MAP_value_tag2el_376, + 12, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_376 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_376, + 8, /* Elements count */ + &asn_SPC_value_specs_376 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UEContextModificationRequiredIEs_373[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequiredIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_374, &asn_PER_memb_id_constr_374, memb_id_constraint_373 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequiredIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_UEContextModificationRequiredIEs_criticality_type, + { &asn_OER_memb_criticality_constr_375, &asn_PER_memb_criticality_constr_375, memb_criticality_constraint_373 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequiredIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_376, + select_UEContextModificationRequiredIEs_value_type, + { &asn_OER_memb_value_constr_376, &asn_PER_memb_value_constr_376, memb_value_constraint_373 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEContextModificationRequiredIEs_tags_373[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEContextModificationRequiredIEs_tag2el_373[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationRequiredIEs_specs_373 = { + sizeof(struct UEContextModificationRequiredIEs), + offsetof(struct UEContextModificationRequiredIEs, _asn_ctx), + asn_MAP_UEContextModificationRequiredIEs_tag2el_373, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UEContextModificationRequiredIEs = { + "UEContextModificationRequiredIEs", + "UEContextModificationRequiredIEs", + &asn_OP_SEQUENCE, + asn_DEF_UEContextModificationRequiredIEs_tags_373, + sizeof(asn_DEF_UEContextModificationRequiredIEs_tags_373) + /sizeof(asn_DEF_UEContextModificationRequiredIEs_tags_373[0]), /* 1 */ + asn_DEF_UEContextModificationRequiredIEs_tags_373, /* Same as above */ + sizeof(asn_DEF_UEContextModificationRequiredIEs_tags_373) + /sizeof(asn_DEF_UEContextModificationRequiredIEs_tags_373[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEContextModificationRequiredIEs_373, + 3, /* Elements count */ + &asn_SPC_UEContextModificationRequiredIEs_specs_373 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_380[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationConfirmIEs__value, choice.GNB_CU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_CU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationConfirmIEs__value, choice.GNB_DU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_DU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-DU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationConfirmIEs__value, choice.ResourceCoordinationTransferContainer), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ResourceCoordinationTransferContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ResourceCoordinationTransferContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationConfirmIEs__value, choice.DRBs_ModifiedConf_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRBs_ModifiedConf_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRBs-ModifiedConf-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationConfirmIEs__value, choice.RRCContainer), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RRCContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RRCContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationConfirmIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationConfirmIEs__value, choice.ExecuteDuplication), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ExecuteDuplication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ExecuteDuplication" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationConfirmIEs__value, choice.ResourceCoordinationTransferInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ResourceCoordinationTransferInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ResourceCoordinationTransferInformation" + }, +}; +static const unsigned asn_MAP_value_to_canonical_380[] = { 0, 1, 2, 4, 6, 3, 5, 7 }; +static const unsigned asn_MAP_value_from_canonical_380[] = { 0, 1, 2, 5, 3, 6, 4, 7 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_380[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* GNB-CU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* GNB-DU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 1 }, /* ResourceCoordinationTransferContainer */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -1, 0 }, /* RRCContainer */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 6, 0, 0 }, /* ExecuteDuplication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 2 }, /* DRBs-ModifiedConf-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -1, 1 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -2, 0 } /* ResourceCoordinationTransferInformation */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_380 = { + sizeof(struct UEContextModificationConfirmIEs__value), + offsetof(struct UEContextModificationConfirmIEs__value, _asn_ctx), + offsetof(struct UEContextModificationConfirmIEs__value, present), + sizeof(((struct UEContextModificationConfirmIEs__value *)0)->present), + asn_MAP_value_tag2el_380, + 8, /* Count of tags in the map */ + asn_MAP_value_to_canonical_380, + asn_MAP_value_from_canonical_380, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_380 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_380, + 8, /* Elements count */ + &asn_SPC_value_specs_380 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UEContextModificationConfirmIEs_377[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationConfirmIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_378, &asn_PER_memb_id_constr_378, memb_id_constraint_377 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationConfirmIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_UEContextModificationConfirmIEs_criticality_type, + { &asn_OER_memb_criticality_constr_379, &asn_PER_memb_criticality_constr_379, memb_criticality_constraint_377 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UEContextModificationConfirmIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_380, + select_UEContextModificationConfirmIEs_value_type, + { &asn_OER_memb_value_constr_380, &asn_PER_memb_value_constr_380, memb_value_constraint_377 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEContextModificationConfirmIEs_tags_377[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEContextModificationConfirmIEs_tag2el_377[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationConfirmIEs_specs_377 = { + sizeof(struct UEContextModificationConfirmIEs), + offsetof(struct UEContextModificationConfirmIEs, _asn_ctx), + asn_MAP_UEContextModificationConfirmIEs_tag2el_377, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UEContextModificationConfirmIEs = { + "UEContextModificationConfirmIEs", + "UEContextModificationConfirmIEs", + &asn_OP_SEQUENCE, + asn_DEF_UEContextModificationConfirmIEs_tags_377, + sizeof(asn_DEF_UEContextModificationConfirmIEs_tags_377) + /sizeof(asn_DEF_UEContextModificationConfirmIEs_tags_377[0]), /* 1 */ + asn_DEF_UEContextModificationConfirmIEs_tags_377, /* Same as above */ + sizeof(asn_DEF_UEContextModificationConfirmIEs_tags_377) + /sizeof(asn_DEF_UEContextModificationConfirmIEs_tags_377[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEContextModificationConfirmIEs_377, + 3, /* Elements count */ + &asn_SPC_UEContextModificationConfirmIEs_specs_377 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_384[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRefuseIEs__value, choice.GNB_CU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_CU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRefuseIEs__value, choice.GNB_DU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_DU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-DU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRefuseIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRefuseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_value_to_canonical_384[] = { 0, 1, 3, 2 }; +static const unsigned asn_MAP_value_from_canonical_384[] = { 0, 1, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_384[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* GNB-CU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* GNB-DU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* radioNetwork */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 } /* choice-extension */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_384 = { + sizeof(struct UEContextModificationRefuseIEs__value), + offsetof(struct UEContextModificationRefuseIEs__value, _asn_ctx), + offsetof(struct UEContextModificationRefuseIEs__value, present), + sizeof(((struct UEContextModificationRefuseIEs__value *)0)->present), + asn_MAP_value_tag2el_384, + 8, /* Count of tags in the map */ + asn_MAP_value_to_canonical_384, + asn_MAP_value_from_canonical_384, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_384 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_384, + 4, /* Elements count */ + &asn_SPC_value_specs_384 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UEContextModificationRefuseIEs_381[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRefuseIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_382, &asn_PER_memb_id_constr_382, memb_id_constraint_381 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRefuseIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_UEContextModificationRefuseIEs_criticality_type, + { &asn_OER_memb_criticality_constr_383, &asn_PER_memb_criticality_constr_383, memb_criticality_constraint_381 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRefuseIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_384, + select_UEContextModificationRefuseIEs_value_type, + { &asn_OER_memb_value_constr_384, &asn_PER_memb_value_constr_384, memb_value_constraint_381 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEContextModificationRefuseIEs_tags_381[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEContextModificationRefuseIEs_tag2el_381[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationRefuseIEs_specs_381 = { + sizeof(struct UEContextModificationRefuseIEs), + offsetof(struct UEContextModificationRefuseIEs, _asn_ctx), + asn_MAP_UEContextModificationRefuseIEs_tag2el_381, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UEContextModificationRefuseIEs = { + "UEContextModificationRefuseIEs", + "UEContextModificationRefuseIEs", + &asn_OP_SEQUENCE, + asn_DEF_UEContextModificationRefuseIEs_tags_381, + sizeof(asn_DEF_UEContextModificationRefuseIEs_tags_381) + /sizeof(asn_DEF_UEContextModificationRefuseIEs_tags_381[0]), /* 1 */ + asn_DEF_UEContextModificationRefuseIEs_tags_381, /* Same as above */ + sizeof(asn_DEF_UEContextModificationRefuseIEs_tags_381) + /sizeof(asn_DEF_UEContextModificationRefuseIEs_tags_381[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEContextModificationRefuseIEs_381, + 3, /* Elements count */ + &asn_SPC_UEContextModificationRefuseIEs_specs_381 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_388[] = { + { ATF_NOFLAGS, 0, offsetof(struct WriteReplaceWarningRequestIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct WriteReplaceWarningRequestIEs__value, choice.PWSSystemInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PWSSystemInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PWSSystemInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct WriteReplaceWarningRequestIEs__value, choice.RepetitionPeriod), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RepetitionPeriod, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RepetitionPeriod" + }, + { ATF_NOFLAGS, 0, offsetof(struct WriteReplaceWarningRequestIEs__value, choice.NumberofBroadcastRequest), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NumberofBroadcastRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NumberofBroadcastRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct WriteReplaceWarningRequestIEs__value, choice.Cells_To_Be_Broadcast_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_To_Be_Broadcast_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cells-To-Be-Broadcast-List" + }, +}; +static const unsigned asn_MAP_value_to_canonical_388[] = { 0, 2, 3, 1, 4 }; +static const unsigned asn_MAP_value_from_canonical_388[] = { 0, 3, 1, 2, 4 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_388[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 1 }, /* RepetitionPeriod */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* NumberofBroadcastRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* PWSSystemInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 0 } /* Cells-To-Be-Broadcast-List */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_388 = { + sizeof(struct WriteReplaceWarningRequestIEs__value), + offsetof(struct WriteReplaceWarningRequestIEs__value, _asn_ctx), + offsetof(struct WriteReplaceWarningRequestIEs__value, present), + sizeof(((struct WriteReplaceWarningRequestIEs__value *)0)->present), + asn_MAP_value_tag2el_388, + 5, /* Count of tags in the map */ + asn_MAP_value_to_canonical_388, + asn_MAP_value_from_canonical_388, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_388 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_388, + 5, /* Elements count */ + &asn_SPC_value_specs_388 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_WriteReplaceWarningRequestIEs_385[] = { + { ATF_NOFLAGS, 0, offsetof(struct WriteReplaceWarningRequestIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_386, &asn_PER_memb_id_constr_386, memb_id_constraint_385 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct WriteReplaceWarningRequestIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_WriteReplaceWarningRequestIEs_criticality_type, + { &asn_OER_memb_criticality_constr_387, &asn_PER_memb_criticality_constr_387, memb_criticality_constraint_385 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct WriteReplaceWarningRequestIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_388, + select_WriteReplaceWarningRequestIEs_value_type, + { &asn_OER_memb_value_constr_388, &asn_PER_memb_value_constr_388, memb_value_constraint_385 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_WriteReplaceWarningRequestIEs_tags_385[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_WriteReplaceWarningRequestIEs_tag2el_385[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_WriteReplaceWarningRequestIEs_specs_385 = { + sizeof(struct WriteReplaceWarningRequestIEs), + offsetof(struct WriteReplaceWarningRequestIEs, _asn_ctx), + asn_MAP_WriteReplaceWarningRequestIEs_tag2el_385, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_WriteReplaceWarningRequestIEs = { + "WriteReplaceWarningRequestIEs", + "WriteReplaceWarningRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_WriteReplaceWarningRequestIEs_tags_385, + sizeof(asn_DEF_WriteReplaceWarningRequestIEs_tags_385) + /sizeof(asn_DEF_WriteReplaceWarningRequestIEs_tags_385[0]), /* 1 */ + asn_DEF_WriteReplaceWarningRequestIEs_tags_385, /* Same as above */ + sizeof(asn_DEF_WriteReplaceWarningRequestIEs_tags_385) + /sizeof(asn_DEF_WriteReplaceWarningRequestIEs_tags_385[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_WriteReplaceWarningRequestIEs_385, + 3, /* Elements count */ + &asn_SPC_WriteReplaceWarningRequestIEs_specs_385 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_392[] = { + { ATF_NOFLAGS, 0, offsetof(struct WriteReplaceWarningResponseIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct WriteReplaceWarningResponseIEs__value, choice.Cells_Broadcast_Completed_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_Broadcast_Completed_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cells-Broadcast-Completed-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct WriteReplaceWarningResponseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, + { ATF_NOFLAGS, 0, offsetof(struct WriteReplaceWarningResponseIEs__value, choice.Dedicated_SIDelivery_NeededUE_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Dedicated_SIDelivery_NeededUE_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Dedicated-SIDelivery-NeededUE-List" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_392[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 2 }, /* Cells-Broadcast-Completed-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* Dedicated-SIDelivery-NeededUE-List */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_392 = { + sizeof(struct WriteReplaceWarningResponseIEs__value), + offsetof(struct WriteReplaceWarningResponseIEs__value, _asn_ctx), + offsetof(struct WriteReplaceWarningResponseIEs__value, present), + sizeof(((struct WriteReplaceWarningResponseIEs__value *)0)->present), + asn_MAP_value_tag2el_392, + 4, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_392 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_392, + 4, /* Elements count */ + &asn_SPC_value_specs_392 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_WriteReplaceWarningResponseIEs_389[] = { + { ATF_NOFLAGS, 0, offsetof(struct WriteReplaceWarningResponseIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_390, &asn_PER_memb_id_constr_390, memb_id_constraint_389 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct WriteReplaceWarningResponseIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_WriteReplaceWarningResponseIEs_criticality_type, + { &asn_OER_memb_criticality_constr_391, &asn_PER_memb_criticality_constr_391, memb_criticality_constraint_389 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct WriteReplaceWarningResponseIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_392, + select_WriteReplaceWarningResponseIEs_value_type, + { &asn_OER_memb_value_constr_392, &asn_PER_memb_value_constr_392, memb_value_constraint_389 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_WriteReplaceWarningResponseIEs_tags_389[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_WriteReplaceWarningResponseIEs_tag2el_389[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_WriteReplaceWarningResponseIEs_specs_389 = { + sizeof(struct WriteReplaceWarningResponseIEs), + offsetof(struct WriteReplaceWarningResponseIEs, _asn_ctx), + asn_MAP_WriteReplaceWarningResponseIEs_tag2el_389, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_WriteReplaceWarningResponseIEs = { + "WriteReplaceWarningResponseIEs", + "WriteReplaceWarningResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_WriteReplaceWarningResponseIEs_tags_389, + sizeof(asn_DEF_WriteReplaceWarningResponseIEs_tags_389) + /sizeof(asn_DEF_WriteReplaceWarningResponseIEs_tags_389[0]), /* 1 */ + asn_DEF_WriteReplaceWarningResponseIEs_tags_389, /* Same as above */ + sizeof(asn_DEF_WriteReplaceWarningResponseIEs_tags_389) + /sizeof(asn_DEF_WriteReplaceWarningResponseIEs_tags_389[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_WriteReplaceWarningResponseIEs_389, + 3, /* Elements count */ + &asn_SPC_WriteReplaceWarningResponseIEs_specs_389 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_396[] = { + { ATF_NOFLAGS, 0, offsetof(struct PWSCancelRequestIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct PWSCancelRequestIEs__value, choice.NumberofBroadcastRequest), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NumberofBroadcastRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NumberofBroadcastRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct PWSCancelRequestIEs__value, choice.Broadcast_To_Be_Cancelled_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Broadcast_To_Be_Cancelled_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Broadcast-To-Be-Cancelled-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct PWSCancelRequestIEs__value, choice.Cancel_all_Warning_Messages_Indicator), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_Cancel_all_Warning_Messages_Indicator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cancel-all-Warning-Messages-Indicator" + }, +}; +static const unsigned asn_MAP_value_to_canonical_396[] = { 0, 1, 3, 2 }; +static const unsigned asn_MAP_value_from_canonical_396[] = { 0, 1, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_396[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* NumberofBroadcastRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, 0, 0 }, /* Cancel-all-Warning-Messages-Indicator */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 } /* Broadcast-To-Be-Cancelled-List */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_396 = { + sizeof(struct PWSCancelRequestIEs__value), + offsetof(struct PWSCancelRequestIEs__value, _asn_ctx), + offsetof(struct PWSCancelRequestIEs__value, present), + sizeof(((struct PWSCancelRequestIEs__value *)0)->present), + asn_MAP_value_tag2el_396, + 4, /* Count of tags in the map */ + asn_MAP_value_to_canonical_396, + asn_MAP_value_from_canonical_396, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_396 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_396, + 4, /* Elements count */ + &asn_SPC_value_specs_396 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PWSCancelRequestIEs_393[] = { + { ATF_NOFLAGS, 0, offsetof(struct PWSCancelRequestIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_394, &asn_PER_memb_id_constr_394, memb_id_constraint_393 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct PWSCancelRequestIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_PWSCancelRequestIEs_criticality_type, + { &asn_OER_memb_criticality_constr_395, &asn_PER_memb_criticality_constr_395, memb_criticality_constraint_393 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct PWSCancelRequestIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_396, + select_PWSCancelRequestIEs_value_type, + { &asn_OER_memb_value_constr_396, &asn_PER_memb_value_constr_396, memb_value_constraint_393 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_PWSCancelRequestIEs_tags_393[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PWSCancelRequestIEs_tag2el_393[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PWSCancelRequestIEs_specs_393 = { + sizeof(struct PWSCancelRequestIEs), + offsetof(struct PWSCancelRequestIEs, _asn_ctx), + asn_MAP_PWSCancelRequestIEs_tag2el_393, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PWSCancelRequestIEs = { + "PWSCancelRequestIEs", + "PWSCancelRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_PWSCancelRequestIEs_tags_393, + sizeof(asn_DEF_PWSCancelRequestIEs_tags_393) + /sizeof(asn_DEF_PWSCancelRequestIEs_tags_393[0]), /* 1 */ + asn_DEF_PWSCancelRequestIEs_tags_393, /* Same as above */ + sizeof(asn_DEF_PWSCancelRequestIEs_tags_393) + /sizeof(asn_DEF_PWSCancelRequestIEs_tags_393[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PWSCancelRequestIEs_393, + 3, /* Elements count */ + &asn_SPC_PWSCancelRequestIEs_specs_393 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_400[] = { + { ATF_NOFLAGS, 0, offsetof(struct PWSCancelResponseIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct PWSCancelResponseIEs__value, choice.Cells_Broadcast_Cancelled_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Cells_Broadcast_Cancelled_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cells-Broadcast-Cancelled-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct PWSCancelResponseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_400[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* Cells-Broadcast-Cancelled-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* CriticalityDiagnostics */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_400 = { + sizeof(struct PWSCancelResponseIEs__value), + offsetof(struct PWSCancelResponseIEs__value, _asn_ctx), + offsetof(struct PWSCancelResponseIEs__value, present), + sizeof(((struct PWSCancelResponseIEs__value *)0)->present), + asn_MAP_value_tag2el_400, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_400 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_400, + 3, /* Elements count */ + &asn_SPC_value_specs_400 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PWSCancelResponseIEs_397[] = { + { ATF_NOFLAGS, 0, offsetof(struct PWSCancelResponseIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_398, &asn_PER_memb_id_constr_398, memb_id_constraint_397 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct PWSCancelResponseIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_PWSCancelResponseIEs_criticality_type, + { &asn_OER_memb_criticality_constr_399, &asn_PER_memb_criticality_constr_399, memb_criticality_constraint_397 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct PWSCancelResponseIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_400, + select_PWSCancelResponseIEs_value_type, + { &asn_OER_memb_value_constr_400, &asn_PER_memb_value_constr_400, memb_value_constraint_397 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_PWSCancelResponseIEs_tags_397[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PWSCancelResponseIEs_tag2el_397[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PWSCancelResponseIEs_specs_397 = { + sizeof(struct PWSCancelResponseIEs), + offsetof(struct PWSCancelResponseIEs, _asn_ctx), + asn_MAP_PWSCancelResponseIEs_tag2el_397, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PWSCancelResponseIEs = { + "PWSCancelResponseIEs", + "PWSCancelResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_PWSCancelResponseIEs_tags_397, + sizeof(asn_DEF_PWSCancelResponseIEs_tags_397) + /sizeof(asn_DEF_PWSCancelResponseIEs_tags_397[0]), /* 1 */ + asn_DEF_PWSCancelResponseIEs_tags_397, /* Same as above */ + sizeof(asn_DEF_PWSCancelResponseIEs_tags_397) + /sizeof(asn_DEF_PWSCancelResponseIEs_tags_397[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PWSCancelResponseIEs_397, + 3, /* Elements count */ + &asn_SPC_PWSCancelResponseIEs_specs_397 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_404[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEInactivityNotificationIEs__value, choice.GNB_CU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_CU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEInactivityNotificationIEs__value, choice.GNB_DU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_DU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-DU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEInactivityNotificationIEs__value, choice.DRB_Activity_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRB_Activity_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRB-Activity-List" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_404[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* GNB-CU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* GNB-DU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 } /* DRB-Activity-List */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_404 = { + sizeof(struct UEInactivityNotificationIEs__value), + offsetof(struct UEInactivityNotificationIEs__value, _asn_ctx), + offsetof(struct UEInactivityNotificationIEs__value, present), + sizeof(((struct UEInactivityNotificationIEs__value *)0)->present), + asn_MAP_value_tag2el_404, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_404 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_404, + 3, /* Elements count */ + &asn_SPC_value_specs_404 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UEInactivityNotificationIEs_401[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEInactivityNotificationIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_402, &asn_PER_memb_id_constr_402, memb_id_constraint_401 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct UEInactivityNotificationIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_UEInactivityNotificationIEs_criticality_type, + { &asn_OER_memb_criticality_constr_403, &asn_PER_memb_criticality_constr_403, memb_criticality_constraint_401 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UEInactivityNotificationIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_404, + select_UEInactivityNotificationIEs_value_type, + { &asn_OER_memb_value_constr_404, &asn_PER_memb_value_constr_404, memb_value_constraint_401 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEInactivityNotificationIEs_tags_401[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEInactivityNotificationIEs_tag2el_401[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEInactivityNotificationIEs_specs_401 = { + sizeof(struct UEInactivityNotificationIEs), + offsetof(struct UEInactivityNotificationIEs, _asn_ctx), + asn_MAP_UEInactivityNotificationIEs_tag2el_401, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UEInactivityNotificationIEs = { + "UEInactivityNotificationIEs", + "UEInactivityNotificationIEs", + &asn_OP_SEQUENCE, + asn_DEF_UEInactivityNotificationIEs_tags_401, + sizeof(asn_DEF_UEInactivityNotificationIEs_tags_401) + /sizeof(asn_DEF_UEInactivityNotificationIEs_tags_401[0]), /* 1 */ + asn_DEF_UEInactivityNotificationIEs_tags_401, /* Same as above */ + sizeof(asn_DEF_UEInactivityNotificationIEs_tags_401) + /sizeof(asn_DEF_UEInactivityNotificationIEs_tags_401[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEInactivityNotificationIEs_401, + 3, /* Elements count */ + &asn_SPC_UEInactivityNotificationIEs_specs_401 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_408[] = { + { ATF_NOFLAGS, 0, offsetof(struct InitialULRRCMessageTransferIEs__value, choice.GNB_DU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_DU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-DU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitialULRRCMessageTransferIEs__value, choice.NRCGI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NRCGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NRCGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitialULRRCMessageTransferIEs__value, choice.C_RNTI), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_C_RNTI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "C-RNTI" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitialULRRCMessageTransferIEs__value, choice.RRCContainer), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RRCContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RRCContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitialULRRCMessageTransferIEs__value, choice.DUtoCURRCContainer), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_DUtoCURRCContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DUtoCURRCContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitialULRRCMessageTransferIEs__value, choice.SULAccessIndication), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_SULAccessIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SULAccessIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitialULRRCMessageTransferIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, +}; +static const unsigned asn_MAP_value_to_canonical_408[] = { 0, 2, 6, 3, 4, 5, 1 }; +static const unsigned asn_MAP_value_from_canonical_408[] = { 0, 6, 1, 3, 4, 5, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_408[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* GNB-DU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 1 }, /* C-RNTI */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 6, -2, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, 0, 1 }, /* RRCContainer */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -1, 0 }, /* DUtoCURRCContainer */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, 0, 0 }, /* SULAccessIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* NRCGI */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_408 = { + sizeof(struct InitialULRRCMessageTransferIEs__value), + offsetof(struct InitialULRRCMessageTransferIEs__value, _asn_ctx), + offsetof(struct InitialULRRCMessageTransferIEs__value, present), + sizeof(((struct InitialULRRCMessageTransferIEs__value *)0)->present), + asn_MAP_value_tag2el_408, + 7, /* Count of tags in the map */ + asn_MAP_value_to_canonical_408, + asn_MAP_value_from_canonical_408, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_408 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_408, + 7, /* Elements count */ + &asn_SPC_value_specs_408 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_InitialULRRCMessageTransferIEs_405[] = { + { ATF_NOFLAGS, 0, offsetof(struct InitialULRRCMessageTransferIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_406, &asn_PER_memb_id_constr_406, memb_id_constraint_405 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitialULRRCMessageTransferIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_InitialULRRCMessageTransferIEs_criticality_type, + { &asn_OER_memb_criticality_constr_407, &asn_PER_memb_criticality_constr_407, memb_criticality_constraint_405 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct InitialULRRCMessageTransferIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_408, + select_InitialULRRCMessageTransferIEs_value_type, + { &asn_OER_memb_value_constr_408, &asn_PER_memb_value_constr_408, memb_value_constraint_405 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_InitialULRRCMessageTransferIEs_tags_405[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_InitialULRRCMessageTransferIEs_tag2el_405[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_InitialULRRCMessageTransferIEs_specs_405 = { + sizeof(struct InitialULRRCMessageTransferIEs), + offsetof(struct InitialULRRCMessageTransferIEs, _asn_ctx), + asn_MAP_InitialULRRCMessageTransferIEs_tag2el_405, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_InitialULRRCMessageTransferIEs = { + "InitialULRRCMessageTransferIEs", + "InitialULRRCMessageTransferIEs", + &asn_OP_SEQUENCE, + asn_DEF_InitialULRRCMessageTransferIEs_tags_405, + sizeof(asn_DEF_InitialULRRCMessageTransferIEs_tags_405) + /sizeof(asn_DEF_InitialULRRCMessageTransferIEs_tags_405[0]), /* 1 */ + asn_DEF_InitialULRRCMessageTransferIEs_tags_405, /* Same as above */ + sizeof(asn_DEF_InitialULRRCMessageTransferIEs_tags_405) + /sizeof(asn_DEF_InitialULRRCMessageTransferIEs_tags_405[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_InitialULRRCMessageTransferIEs_405, + 3, /* Elements count */ + &asn_SPC_InitialULRRCMessageTransferIEs_specs_405 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_412[] = { + { ATF_NOFLAGS, 0, offsetof(struct DLRRCMessageTransferIEs__value, choice.GNB_CU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_CU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct DLRRCMessageTransferIEs__value, choice.GNB_DU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_DU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-DU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct DLRRCMessageTransferIEs__value, choice.SRBID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_SRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRBID" + }, + { ATF_NOFLAGS, 0, offsetof(struct DLRRCMessageTransferIEs__value, choice.ExecuteDuplication), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ExecuteDuplication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ExecuteDuplication" + }, + { ATF_NOFLAGS, 0, offsetof(struct DLRRCMessageTransferIEs__value, choice.RRCContainer), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RRCContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RRCContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct DLRRCMessageTransferIEs__value, choice.RAT_FrequencyPriorityInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_RAT_FrequencyPriorityInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAT-FrequencyPriorityInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct DLRRCMessageTransferIEs__value, choice.RRCDeliveryStatusRequest), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_RRCDeliveryStatusRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RRCDeliveryStatusRequest" + }, +}; +static const unsigned asn_MAP_value_to_canonical_412[] = { 0, 1, 2, 4, 3, 6, 5 }; +static const unsigned asn_MAP_value_from_canonical_412[] = { 0, 1, 2, 4, 3, 6, 5 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_412[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* GNB-CU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* GNB-DU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -2, 0 }, /* SRBID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, 0, 0 }, /* RRCContainer */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, 0, 1 }, /* ExecuteDuplication */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 6, -1, 0 }, /* RRCDeliveryStatusRequest */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 5, 0, 0 }, /* subscriberProfileIDforRFP */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 5, 0, 0 }, /* rAT-FrequencySelectionPriority */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 5, 0, 0 } /* choice-extension */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_412 = { + sizeof(struct DLRRCMessageTransferIEs__value), + offsetof(struct DLRRCMessageTransferIEs__value, _asn_ctx), + offsetof(struct DLRRCMessageTransferIEs__value, present), + sizeof(((struct DLRRCMessageTransferIEs__value *)0)->present), + asn_MAP_value_tag2el_412, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_412, + asn_MAP_value_from_canonical_412, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_412 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_412, + 7, /* Elements count */ + &asn_SPC_value_specs_412 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DLRRCMessageTransferIEs_409[] = { + { ATF_NOFLAGS, 0, offsetof(struct DLRRCMessageTransferIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_410, &asn_PER_memb_id_constr_410, memb_id_constraint_409 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct DLRRCMessageTransferIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_DLRRCMessageTransferIEs_criticality_type, + { &asn_OER_memb_criticality_constr_411, &asn_PER_memb_criticality_constr_411, memb_criticality_constraint_409 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct DLRRCMessageTransferIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_412, + select_DLRRCMessageTransferIEs_value_type, + { &asn_OER_memb_value_constr_412, &asn_PER_memb_value_constr_412, memb_value_constraint_409 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_DLRRCMessageTransferIEs_tags_409[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DLRRCMessageTransferIEs_tag2el_409[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_DLRRCMessageTransferIEs_specs_409 = { + sizeof(struct DLRRCMessageTransferIEs), + offsetof(struct DLRRCMessageTransferIEs, _asn_ctx), + asn_MAP_DLRRCMessageTransferIEs_tag2el_409, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DLRRCMessageTransferIEs = { + "DLRRCMessageTransferIEs", + "DLRRCMessageTransferIEs", + &asn_OP_SEQUENCE, + asn_DEF_DLRRCMessageTransferIEs_tags_409, + sizeof(asn_DEF_DLRRCMessageTransferIEs_tags_409) + /sizeof(asn_DEF_DLRRCMessageTransferIEs_tags_409[0]), /* 1 */ + asn_DEF_DLRRCMessageTransferIEs_tags_409, /* Same as above */ + sizeof(asn_DEF_DLRRCMessageTransferIEs_tags_409) + /sizeof(asn_DEF_DLRRCMessageTransferIEs_tags_409[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DLRRCMessageTransferIEs_409, + 3, /* Elements count */ + &asn_SPC_DLRRCMessageTransferIEs_specs_409 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_416[] = { + { ATF_NOFLAGS, 0, offsetof(struct ULRRCMessageTransferIEs__value, choice.GNB_CU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_CU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ULRRCMessageTransferIEs__value, choice.GNB_DU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_DU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-DU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ULRRCMessageTransferIEs__value, choice.SRBID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_SRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRBID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ULRRCMessageTransferIEs__value, choice.RRCContainer), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RRCContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RRCContainer" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_416[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* GNB-CU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* GNB-DU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -2, 0 }, /* SRBID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, 0, 0 } /* RRCContainer */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_416 = { + sizeof(struct ULRRCMessageTransferIEs__value), + offsetof(struct ULRRCMessageTransferIEs__value, _asn_ctx), + offsetof(struct ULRRCMessageTransferIEs__value, present), + sizeof(((struct ULRRCMessageTransferIEs__value *)0)->present), + asn_MAP_value_tag2el_416, + 4, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_416 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_416, + 4, /* Elements count */ + &asn_SPC_value_specs_416 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ULRRCMessageTransferIEs_413[] = { + { ATF_NOFLAGS, 0, offsetof(struct ULRRCMessageTransferIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_414, &asn_PER_memb_id_constr_414, memb_id_constraint_413 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ULRRCMessageTransferIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_ULRRCMessageTransferIEs_criticality_type, + { &asn_OER_memb_criticality_constr_415, &asn_PER_memb_criticality_constr_415, memb_criticality_constraint_413 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ULRRCMessageTransferIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_416, + select_ULRRCMessageTransferIEs_value_type, + { &asn_OER_memb_value_constr_416, &asn_PER_memb_value_constr_416, memb_value_constraint_413 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ULRRCMessageTransferIEs_tags_413[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ULRRCMessageTransferIEs_tag2el_413[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ULRRCMessageTransferIEs_specs_413 = { + sizeof(struct ULRRCMessageTransferIEs), + offsetof(struct ULRRCMessageTransferIEs, _asn_ctx), + asn_MAP_ULRRCMessageTransferIEs_tag2el_413, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ULRRCMessageTransferIEs = { + "ULRRCMessageTransferIEs", + "ULRRCMessageTransferIEs", + &asn_OP_SEQUENCE, + asn_DEF_ULRRCMessageTransferIEs_tags_413, + sizeof(asn_DEF_ULRRCMessageTransferIEs_tags_413) + /sizeof(asn_DEF_ULRRCMessageTransferIEs_tags_413[0]), /* 1 */ + asn_DEF_ULRRCMessageTransferIEs_tags_413, /* Same as above */ + sizeof(asn_DEF_ULRRCMessageTransferIEs_tags_413) + /sizeof(asn_DEF_ULRRCMessageTransferIEs_tags_413[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ULRRCMessageTransferIEs_413, + 3, /* Elements count */ + &asn_SPC_ULRRCMessageTransferIEs_specs_413 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_420[] = { + { ATF_NOFLAGS, 0, offsetof(struct SystemInformationDeliveryCommandIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct SystemInformationDeliveryCommandIEs__value, choice.NRCGI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NRCGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NRCGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct SystemInformationDeliveryCommandIEs__value, choice.SItype_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SItype_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SItype-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct SystemInformationDeliveryCommandIEs__value, choice.GNB_DU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_DU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-DU-UE-F1AP-ID" + }, +}; +static const unsigned asn_MAP_value_to_canonical_420[] = { 0, 3, 1, 2 }; +static const unsigned asn_MAP_value_from_canonical_420[] = { 0, 2, 3, 1 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_420[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -1, 0 }, /* GNB-DU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* NRCGI */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* SItype-List */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_420 = { + sizeof(struct SystemInformationDeliveryCommandIEs__value), + offsetof(struct SystemInformationDeliveryCommandIEs__value, _asn_ctx), + offsetof(struct SystemInformationDeliveryCommandIEs__value, present), + sizeof(((struct SystemInformationDeliveryCommandIEs__value *)0)->present), + asn_MAP_value_tag2el_420, + 4, /* Count of tags in the map */ + asn_MAP_value_to_canonical_420, + asn_MAP_value_from_canonical_420, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_420 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_420, + 4, /* Elements count */ + &asn_SPC_value_specs_420 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SystemInformationDeliveryCommandIEs_417[] = { + { ATF_NOFLAGS, 0, offsetof(struct SystemInformationDeliveryCommandIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_418, &asn_PER_memb_id_constr_418, memb_id_constraint_417 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SystemInformationDeliveryCommandIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_SystemInformationDeliveryCommandIEs_criticality_type, + { &asn_OER_memb_criticality_constr_419, &asn_PER_memb_criticality_constr_419, memb_criticality_constraint_417 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SystemInformationDeliveryCommandIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_420, + select_SystemInformationDeliveryCommandIEs_value_type, + { &asn_OER_memb_value_constr_420, &asn_PER_memb_value_constr_420, memb_value_constraint_417 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_SystemInformationDeliveryCommandIEs_tags_417[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SystemInformationDeliveryCommandIEs_tag2el_417[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SystemInformationDeliveryCommandIEs_specs_417 = { + sizeof(struct SystemInformationDeliveryCommandIEs), + offsetof(struct SystemInformationDeliveryCommandIEs, _asn_ctx), + asn_MAP_SystemInformationDeliveryCommandIEs_tag2el_417, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SystemInformationDeliveryCommandIEs = { + "SystemInformationDeliveryCommandIEs", + "SystemInformationDeliveryCommandIEs", + &asn_OP_SEQUENCE, + asn_DEF_SystemInformationDeliveryCommandIEs_tags_417, + sizeof(asn_DEF_SystemInformationDeliveryCommandIEs_tags_417) + /sizeof(asn_DEF_SystemInformationDeliveryCommandIEs_tags_417[0]), /* 1 */ + asn_DEF_SystemInformationDeliveryCommandIEs_tags_417, /* Same as above */ + sizeof(asn_DEF_SystemInformationDeliveryCommandIEs_tags_417) + /sizeof(asn_DEF_SystemInformationDeliveryCommandIEs_tags_417[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SystemInformationDeliveryCommandIEs_417, + 3, /* Elements count */ + &asn_SPC_SystemInformationDeliveryCommandIEs_specs_417 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_424[] = { + { ATF_NOFLAGS, 0, offsetof(struct PagingIEs__value, choice.UEIdentityIndexValue), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_UEIdentityIndexValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEIdentityIndexValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct PagingIEs__value, choice.PagingIdentity), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_PagingIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PagingIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct PagingIEs__value, choice.PagingDRX), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_PagingDRX, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PagingDRX" + }, + { ATF_NOFLAGS, 0, offsetof(struct PagingIEs__value, choice.PagingPriority), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_PagingPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PagingPriority" + }, + { ATF_NOFLAGS, 0, offsetof(struct PagingIEs__value, choice.PagingCell_list), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PagingCell_list, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PagingCell-list" + }, + { ATF_NOFLAGS, 0, offsetof(struct PagingIEs__value, choice.PagingOrigin), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_PagingOrigin, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PagingOrigin" + }, +}; +static const unsigned asn_MAP_value_to_canonical_424[] = { 2, 3, 5, 4, 0, 1 }; +static const unsigned asn_MAP_value_from_canonical_424[] = { 4, 5, 0, 1, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_424[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 2 }, /* PagingDRX */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, -1, 1 }, /* PagingPriority */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, -2, 0 }, /* PagingOrigin */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, 0, 0 }, /* PagingCell-list */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 1 }, /* indexLength10 */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, -1, 0 }, /* rANUEPagingIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 1 }, /* choice-extension */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, -1, 0 }, /* cNUEPagingIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 } /* choice-extension */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_424 = { + sizeof(struct PagingIEs__value), + offsetof(struct PagingIEs__value, _asn_ctx), + offsetof(struct PagingIEs__value, present), + sizeof(((struct PagingIEs__value *)0)->present), + asn_MAP_value_tag2el_424, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_424, + asn_MAP_value_from_canonical_424, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_424 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_424, + 6, /* Elements count */ + &asn_SPC_value_specs_424 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PagingIEs_421[] = { + { ATF_NOFLAGS, 0, offsetof(struct PagingIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_422, &asn_PER_memb_id_constr_422, memb_id_constraint_421 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct PagingIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_PagingIEs_criticality_type, + { &asn_OER_memb_criticality_constr_423, &asn_PER_memb_criticality_constr_423, memb_criticality_constraint_421 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct PagingIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_424, + select_PagingIEs_value_type, + { &asn_OER_memb_value_constr_424, &asn_PER_memb_value_constr_424, memb_value_constraint_421 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_PagingIEs_tags_421[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PagingIEs_tag2el_421[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PagingIEs_specs_421 = { + sizeof(struct PagingIEs), + offsetof(struct PagingIEs, _asn_ctx), + asn_MAP_PagingIEs_tag2el_421, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PagingIEs = { + "PagingIEs", + "PagingIEs", + &asn_OP_SEQUENCE, + asn_DEF_PagingIEs_tags_421, + sizeof(asn_DEF_PagingIEs_tags_421) + /sizeof(asn_DEF_PagingIEs_tags_421[0]), /* 1 */ + asn_DEF_PagingIEs_tags_421, /* Same as above */ + sizeof(asn_DEF_PagingIEs_tags_421) + /sizeof(asn_DEF_PagingIEs_tags_421[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PagingIEs_421, + 3, /* Elements count */ + &asn_SPC_PagingIEs_specs_421 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_428[] = { + { ATF_NOFLAGS, 0, offsetof(struct NotifyIEs__value, choice.GNB_CU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_CU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct NotifyIEs__value, choice.GNB_DU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_DU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-DU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct NotifyIEs__value, choice.DRB_Notify_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRB_Notify_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DRB-Notify-List" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_428[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* GNB-CU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* GNB-DU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 } /* DRB-Notify-List */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_428 = { + sizeof(struct NotifyIEs__value), + offsetof(struct NotifyIEs__value, _asn_ctx), + offsetof(struct NotifyIEs__value, present), + sizeof(((struct NotifyIEs__value *)0)->present), + asn_MAP_value_tag2el_428, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_428 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_428, + 3, /* Elements count */ + &asn_SPC_value_specs_428 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_NotifyIEs_425[] = { + { ATF_NOFLAGS, 0, offsetof(struct NotifyIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_426, &asn_PER_memb_id_constr_426, memb_id_constraint_425 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct NotifyIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_NotifyIEs_criticality_type, + { &asn_OER_memb_criticality_constr_427, &asn_PER_memb_criticality_constr_427, memb_criticality_constraint_425 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct NotifyIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_428, + select_NotifyIEs_value_type, + { &asn_OER_memb_value_constr_428, &asn_PER_memb_value_constr_428, memb_value_constraint_425 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_NotifyIEs_tags_425[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NotifyIEs_tag2el_425[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NotifyIEs_specs_425 = { + sizeof(struct NotifyIEs), + offsetof(struct NotifyIEs, _asn_ctx), + asn_MAP_NotifyIEs_tag2el_425, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NotifyIEs = { + "NotifyIEs", + "NotifyIEs", + &asn_OP_SEQUENCE, + asn_DEF_NotifyIEs_tags_425, + sizeof(asn_DEF_NotifyIEs_tags_425) + /sizeof(asn_DEF_NotifyIEs_tags_425[0]), /* 1 */ + asn_DEF_NotifyIEs_tags_425, /* Same as above */ + sizeof(asn_DEF_NotifyIEs_tags_425) + /sizeof(asn_DEF_NotifyIEs_tags_425[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NotifyIEs_425, + 3, /* Elements count */ + &asn_SPC_NotifyIEs_specs_425 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_432[] = { + { ATF_NOFLAGS, 0, offsetof(struct PWSRestartIndicationIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct PWSRestartIndicationIEs__value, choice.NR_CGI_List_For_Restart_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NR_CGI_List_For_Restart_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NR-CGI-List-For-Restart-List" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_432[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* NR-CGI-List-For-Restart-List */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_432 = { + sizeof(struct PWSRestartIndicationIEs__value), + offsetof(struct PWSRestartIndicationIEs__value, _asn_ctx), + offsetof(struct PWSRestartIndicationIEs__value, present), + sizeof(((struct PWSRestartIndicationIEs__value *)0)->present), + asn_MAP_value_tag2el_432, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_432 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_432, + 2, /* Elements count */ + &asn_SPC_value_specs_432 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PWSRestartIndicationIEs_429[] = { + { ATF_NOFLAGS, 0, offsetof(struct PWSRestartIndicationIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_430, &asn_PER_memb_id_constr_430, memb_id_constraint_429 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct PWSRestartIndicationIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_PWSRestartIndicationIEs_criticality_type, + { &asn_OER_memb_criticality_constr_431, &asn_PER_memb_criticality_constr_431, memb_criticality_constraint_429 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct PWSRestartIndicationIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_432, + select_PWSRestartIndicationIEs_value_type, + { &asn_OER_memb_value_constr_432, &asn_PER_memb_value_constr_432, memb_value_constraint_429 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_PWSRestartIndicationIEs_tags_429[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PWSRestartIndicationIEs_tag2el_429[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PWSRestartIndicationIEs_specs_429 = { + sizeof(struct PWSRestartIndicationIEs), + offsetof(struct PWSRestartIndicationIEs, _asn_ctx), + asn_MAP_PWSRestartIndicationIEs_tag2el_429, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PWSRestartIndicationIEs = { + "PWSRestartIndicationIEs", + "PWSRestartIndicationIEs", + &asn_OP_SEQUENCE, + asn_DEF_PWSRestartIndicationIEs_tags_429, + sizeof(asn_DEF_PWSRestartIndicationIEs_tags_429) + /sizeof(asn_DEF_PWSRestartIndicationIEs_tags_429[0]), /* 1 */ + asn_DEF_PWSRestartIndicationIEs_tags_429, /* Same as above */ + sizeof(asn_DEF_PWSRestartIndicationIEs_tags_429) + /sizeof(asn_DEF_PWSRestartIndicationIEs_tags_429[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PWSRestartIndicationIEs_429, + 3, /* Elements count */ + &asn_SPC_PWSRestartIndicationIEs_specs_429 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_436[] = { + { ATF_NOFLAGS, 0, offsetof(struct PWSFailureIndicationIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct PWSFailureIndicationIEs__value, choice.PWS_Failed_NR_CGI_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PWS_Failed_NR_CGI_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PWS-Failed-NR-CGI-List" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_436[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* PWS-Failed-NR-CGI-List */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_436 = { + sizeof(struct PWSFailureIndicationIEs__value), + offsetof(struct PWSFailureIndicationIEs__value, _asn_ctx), + offsetof(struct PWSFailureIndicationIEs__value, present), + sizeof(((struct PWSFailureIndicationIEs__value *)0)->present), + asn_MAP_value_tag2el_436, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_436 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_436, + 2, /* Elements count */ + &asn_SPC_value_specs_436 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PWSFailureIndicationIEs_433[] = { + { ATF_NOFLAGS, 0, offsetof(struct PWSFailureIndicationIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_434, &asn_PER_memb_id_constr_434, memb_id_constraint_433 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct PWSFailureIndicationIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_PWSFailureIndicationIEs_criticality_type, + { &asn_OER_memb_criticality_constr_435, &asn_PER_memb_criticality_constr_435, memb_criticality_constraint_433 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct PWSFailureIndicationIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_436, + select_PWSFailureIndicationIEs_value_type, + { &asn_OER_memb_value_constr_436, &asn_PER_memb_value_constr_436, memb_value_constraint_433 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_PWSFailureIndicationIEs_tags_433[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PWSFailureIndicationIEs_tag2el_433[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PWSFailureIndicationIEs_specs_433 = { + sizeof(struct PWSFailureIndicationIEs), + offsetof(struct PWSFailureIndicationIEs, _asn_ctx), + asn_MAP_PWSFailureIndicationIEs_tag2el_433, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PWSFailureIndicationIEs = { + "PWSFailureIndicationIEs", + "PWSFailureIndicationIEs", + &asn_OP_SEQUENCE, + asn_DEF_PWSFailureIndicationIEs_tags_433, + sizeof(asn_DEF_PWSFailureIndicationIEs_tags_433) + /sizeof(asn_DEF_PWSFailureIndicationIEs_tags_433[0]), /* 1 */ + asn_DEF_PWSFailureIndicationIEs_tags_433, /* Same as above */ + sizeof(asn_DEF_PWSFailureIndicationIEs_tags_433) + /sizeof(asn_DEF_PWSFailureIndicationIEs_tags_433[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PWSFailureIndicationIEs_433, + 3, /* Elements count */ + &asn_SPC_PWSFailureIndicationIEs_specs_433 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_440[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBDUStatusIndicationIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBDUStatusIndicationIEs__value, choice.GNBDUOverloadInformation), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_GNBDUOverloadInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNBDUOverloadInformation" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_440[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* GNBDUOverloadInformation */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_440 = { + sizeof(struct GNBDUStatusIndicationIEs__value), + offsetof(struct GNBDUStatusIndicationIEs__value, _asn_ctx), + offsetof(struct GNBDUStatusIndicationIEs__value, present), + sizeof(((struct GNBDUStatusIndicationIEs__value *)0)->present), + asn_MAP_value_tag2el_440, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_440 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_440, + 2, /* Elements count */ + &asn_SPC_value_specs_440 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GNBDUStatusIndicationIEs_437[] = { + { ATF_NOFLAGS, 0, offsetof(struct GNBDUStatusIndicationIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_438, &asn_PER_memb_id_constr_438, memb_id_constraint_437 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct GNBDUStatusIndicationIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_GNBDUStatusIndicationIEs_criticality_type, + { &asn_OER_memb_criticality_constr_439, &asn_PER_memb_criticality_constr_439, memb_criticality_constraint_437 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct GNBDUStatusIndicationIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_440, + select_GNBDUStatusIndicationIEs_value_type, + { &asn_OER_memb_value_constr_440, &asn_PER_memb_value_constr_440, memb_value_constraint_437 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_GNBDUStatusIndicationIEs_tags_437[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_GNBDUStatusIndicationIEs_tag2el_437[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GNBDUStatusIndicationIEs_specs_437 = { + sizeof(struct GNBDUStatusIndicationIEs), + offsetof(struct GNBDUStatusIndicationIEs, _asn_ctx), + asn_MAP_GNBDUStatusIndicationIEs_tag2el_437, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GNBDUStatusIndicationIEs = { + "GNBDUStatusIndicationIEs", + "GNBDUStatusIndicationIEs", + &asn_OP_SEQUENCE, + asn_DEF_GNBDUStatusIndicationIEs_tags_437, + sizeof(asn_DEF_GNBDUStatusIndicationIEs_tags_437) + /sizeof(asn_DEF_GNBDUStatusIndicationIEs_tags_437[0]), /* 1 */ + asn_DEF_GNBDUStatusIndicationIEs_tags_437, /* Same as above */ + sizeof(asn_DEF_GNBDUStatusIndicationIEs_tags_437) + /sizeof(asn_DEF_GNBDUStatusIndicationIEs_tags_437[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNBDUStatusIndicationIEs_437, + 3, /* Elements count */ + &asn_SPC_GNBDUStatusIndicationIEs_specs_437 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_444[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCDeliveryReportIEs__value, choice.GNB_CU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_CU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-CU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCDeliveryReportIEs__value, choice.GNB_DU_UE_F1AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_GNB_DU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNB-DU-UE-F1AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCDeliveryReportIEs__value, choice.RRCDeliveryStatus), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RRCDeliveryStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RRCDeliveryStatus" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCDeliveryReportIEs__value, choice.SRBID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_SRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRBID" + }, +}; +static const unsigned asn_MAP_value_to_canonical_444[] = { 0, 1, 3, 2 }; +static const unsigned asn_MAP_value_from_canonical_444[] = { 0, 1, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_444[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* GNB-CU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* GNB-DU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* SRBID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 } /* RRCDeliveryStatus */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_444 = { + sizeof(struct RRCDeliveryReportIEs__value), + offsetof(struct RRCDeliveryReportIEs__value, _asn_ctx), + offsetof(struct RRCDeliveryReportIEs__value, present), + sizeof(((struct RRCDeliveryReportIEs__value *)0)->present), + asn_MAP_value_tag2el_444, + 4, /* Count of tags in the map */ + asn_MAP_value_to_canonical_444, + asn_MAP_value_from_canonical_444, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_444 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_444, + 4, /* Elements count */ + &asn_SPC_value_specs_444 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RRCDeliveryReportIEs_441[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCDeliveryReportIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ID, + 0, + { &asn_OER_memb_id_constr_442, &asn_PER_memb_id_constr_442, memb_id_constraint_441 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCDeliveryReportIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_RRCDeliveryReportIEs_criticality_type, + { &asn_OER_memb_criticality_constr_443, &asn_PER_memb_criticality_constr_443, memb_criticality_constraint_441 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RRCDeliveryReportIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_444, + select_RRCDeliveryReportIEs_value_type, + { &asn_OER_memb_value_constr_444, &asn_PER_memb_value_constr_444, memb_value_constraint_441 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RRCDeliveryReportIEs_tags_441[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RRCDeliveryReportIEs_tag2el_441[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RRCDeliveryReportIEs_specs_441 = { + sizeof(struct RRCDeliveryReportIEs), + offsetof(struct RRCDeliveryReportIEs, _asn_ctx), + asn_MAP_RRCDeliveryReportIEs_tag2el_441, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RRCDeliveryReportIEs = { + "RRCDeliveryReportIEs", + "RRCDeliveryReportIEs", + &asn_OP_SEQUENCE, + asn_DEF_RRCDeliveryReportIEs_tags_441, + sizeof(asn_DEF_RRCDeliveryReportIEs_tags_441) + /sizeof(asn_DEF_RRCDeliveryReportIEs_tags_441[0]), /* 1 */ + asn_DEF_RRCDeliveryReportIEs_tags_441, /* Same as above */ + sizeof(asn_DEF_RRCDeliveryReportIEs_tags_441) + /sizeof(asn_DEF_RRCDeliveryReportIEs_tags_441[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCDeliveryReportIEs_441, + 3, /* Elements count */ + &asn_SPC_RRCDeliveryReportIEs_specs_441 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/ProtocolIE-Field.h b/src/du_app/F1AP/asn/ProtocolIE-Field.h new file mode 100755 index 000000000..ce09d7faf --- /dev/null +++ b/src/du_app/F1AP/asn/ProtocolIE-Field.h @@ -0,0 +1,3158 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-Containers" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ProtocolIE_Field_H_ +#define _ProtocolIE_Field_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-ID.h" +#include "Criticality.h" +#include +#include +#include +#include +#include +#include "UE-associatedLogicalF1-ConnectionItem.h" +#include "Presence.h" +#include "GNB-DU-Served-Cells-Item.h" +#include "Cells-to-be-Activated-List-Item.h" +#include "Served-Cells-To-Add-Item.h" +#include "Served-Cells-To-Modify-Item.h" +#include "Served-Cells-To-Delete-Item.h" +#include "Cells-Status-Item.h" +#include "Dedicated-SIDelivery-NeededUE-Item.h" +#include "Cells-to-be-Deactivated-List-Item.h" +#include "GNB-CU-TNL-Association-To-Add-Item.h" +#include "GNB-CU-TNL-Association-To-Remove-Item.h" +#include "GNB-CU-TNL-Association-To-Update-Item.h" +#include "Cells-to-be-Barred-Item.h" +#include "Protected-EUTRA-Resources-Item.h" +#include "Cells-Failed-to-be-Activated-List-Item.h" +#include "GNB-CU-TNL-Association-Setup-Item.h" +#include "GNB-CU-TNL-Association-Failed-To-Setup-Item.h" +#include "Candidate-SpCell-Item.h" +#include "SCell-ToBeSetup-Item.h" +#include "SRBs-ToBeSetup-Item.h" +#include "DRBs-ToBeSetup-Item.h" +#include "DRBs-Setup-Item.h" +#include "SRBs-FailedToBeSetup-Item.h" +#include "DRBs-FailedToBeSetup-Item.h" +#include "SCell-FailedtoSetup-Item.h" +#include "SRBs-Setup-Item.h" +#include "Potential-SpCell-Item.h" +#include "SCell-ToBeSetupMod-Item.h" +#include "SCell-ToBeRemoved-Item.h" +#include "SRBs-ToBeSetupMod-Item.h" +#include "DRBs-ToBeSetupMod-Item.h" +#include "DRBs-ToBeModified-Item.h" +#include "SRBs-ToBeReleased-Item.h" +#include "DRBs-ToBeReleased-Item.h" +#include "DRBs-SetupMod-Item.h" +#include "DRBs-Modified-Item.h" +#include "SRBs-SetupMod-Item.h" +#include "SRBs-Modified-Item.h" +#include "DRBs-FailedToBeModified-Item.h" +#include "SRBs-FailedToBeSetupMod-Item.h" +#include "DRBs-FailedToBeSetupMod-Item.h" +#include "SCell-FailedtoSetupMod-Item.h" +#include "Associated-SCell-Item.h" +#include "DRBs-Required-ToBeModified-Item.h" +#include "DRBs-Required-ToBeReleased-Item.h" +#include "SRBs-Required-ToBeReleased-Item.h" +#include "DRBs-ModifiedConf-Item.h" +#include "Cells-To-Be-Broadcast-Item.h" +#include "Cells-Broadcast-Completed-Item.h" +#include "Broadcast-To-Be-Cancelled-Item.h" +#include "Cells-Broadcast-Cancelled-Item.h" +#include "DRB-Activity-Item.h" +#include "PagingCell-Item.h" +#include "DRB-Notify-Item.h" +#include "NR-CGI-List-For-Restart-Item.h" +#include "PWS-Failed-NR-CGI-Item.h" +#include "DRB-Information.h" +#include "TransactionID.h" +#include "Cause.h" +#include "ResetType.h" +#include "UE-associatedLogicalF1-ConnectionListResAck.h" +#include "CriticalityDiagnostics.h" +#include "GNB-CU-UE-F1AP-ID.h" +#include "GNB-DU-UE-F1AP-ID.h" +#include "GNB-DU-ID.h" +#include "GNB-DU-Name.h" +#include "GNB-DU-Served-Cells-List.h" +#include "RRC-Version.h" +#include "GNB-CU-Name.h" +#include "Cells-to-be-Activated-List.h" +#include "TimeToWait.h" +#include "Served-Cells-To-Add-List.h" +#include "Served-Cells-To-Modify-List.h" +#include "Served-Cells-To-Delete-List.h" +#include "Cells-Status-List.h" +#include "Dedicated-SIDelivery-NeededUE-List.h" +#include "Cells-to-be-Deactivated-List.h" +#include "GNB-CU-TNL-Association-To-Add-List.h" +#include "GNB-CU-TNL-Association-To-Remove-List.h" +#include "GNB-CU-TNL-Association-To-Update-List.h" +#include "Cells-to-be-Barred-List.h" +#include "Protected-EUTRA-Resources-List.h" +#include "Cells-Failed-to-be-Activated-List.h" +#include "GNB-CU-TNL-Association-Setup-List.h" +#include "GNB-CU-TNL-Association-Failed-To-Setup-List.h" +#include "RequestType.h" +#include "EUTRA-NR-CellResourceCoordinationReq-Container.h" +#include "IgnoreResourceCoordinationContainer.h" +#include "EUTRA-NR-CellResourceCoordinationReqAck-Container.h" +#include "NRCGI.h" +#include "ServCellIndex.h" +#include "CellULConfigured.h" +#include "CUtoDURRCInformation.h" +#include "Candidate-SpCell-List.h" +#include "DRXCycle.h" +#include "ResourceCoordinationTransferContainer.h" +#include "SCell-ToBeSetup-List.h" +#include "SRBs-ToBeSetup-List.h" +#include "DRBs-ToBeSetup-List.h" +#include "InactivityMonitoringRequest.h" +#include "RAT-FrequencyPriorityInformation.h" +#include "RRCContainer.h" +#include "MaskedIMEISV.h" +#include "PLMN-Identity.h" +#include "BitRate.h" +#include "RRCDeliveryStatusRequest.h" +#include "ResourceCoordinationTransferInformation.h" +#include "ServingCellMO.h" +#include "DUtoCURRCInformation.h" +#include "C-RNTI.h" +#include "FullConfiguration.h" +#include "DRBs-Setup-List.h" +#include "SRBs-FailedToBeSetup-List.h" +#include "DRBs-FailedToBeSetup-List.h" +#include "SCell-FailedtoSetup-List.h" +#include "InactivityMonitoringResponse.h" +#include "SRBs-Setup-List.h" +#include "Potential-SpCell-List.h" +#include "SRBID.h" +#include "ExecuteDuplication.h" +#include "TransmissionActionIndicator.h" +#include "RRCReconfigurationCompleteIndicator.h" +#include "SCell-ToBeSetupMod-List.h" +#include "SCell-ToBeRemoved-List.h" +#include "SRBs-ToBeSetupMod-List.h" +#include "DRBs-ToBeSetupMod-List.h" +#include "DRBs-ToBeModified-List.h" +#include "SRBs-ToBeReleased-List.h" +#include "DRBs-ToBeReleased-List.h" +#include "DRXConfigurationIndicator.h" +#include "RLCFailureIndication.h" +#include "UplinkTxDirectCurrentListInformation.h" +#include "GNB-DUConfigurationQuery.h" +#include "NeedforGap.h" +#include "DRBs-SetupMod-List.h" +#include "DRBs-Modified-List.h" +#include "SRBs-FailedToBeSetupMod-List.h" +#include "DRBs-FailedToBeSetupMod-List.h" +#include "SCell-FailedtoSetupMod-List.h" +#include "DRBs-FailedToBeModified-List.h" +#include "Associated-SCell-List.h" +#include "SRBs-SetupMod-List.h" +#include "SRBs-Modified-List.h" +#include "DRBs-Required-ToBeModified-List.h" +#include "SRBs-Required-ToBeReleased-List.h" +#include "DRBs-Required-ToBeReleased-List.h" +#include "DRBs-ModifiedConf-List.h" +#include "PWSSystemInformation.h" +#include "RepetitionPeriod.h" +#include "NumberofBroadcastRequest.h" +#include "Cells-To-Be-Broadcast-List.h" +#include "Cells-Broadcast-Completed-List.h" +#include "Broadcast-To-Be-Cancelled-List.h" +#include "Cancel-all-Warning-Messages-Indicator.h" +#include "Cells-Broadcast-Cancelled-List.h" +#include "DRB-Activity-List.h" +#include "DUtoCURRCContainer.h" +#include "SULAccessIndication.h" +#include "SItype-List.h" +#include "UEIdentityIndexValue.h" +#include "PagingIdentity.h" +#include "PagingDRX.h" +#include "PagingPriority.h" +#include "PagingCell-list.h" +#include "PagingOrigin.h" +#include "DRB-Notify-List.h" +#include "NR-CGI-List-For-Restart-List.h" +#include "PWS-Failed-NR-CGI-List.h" +#include "GNBDUOverloadInformation.h" +#include "RRCDeliveryStatus.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum F1AP_PDU_ExtIEs__value_PR { + F1AP_PDU_ExtIEs__value_PR_NOTHING /* No components present */ + +} F1AP_PDU_ExtIEs__value_PR; +typedef enum ResetType_ExtIEs__value_PR { + ResetType_ExtIEs__value_PR_NOTHING /* No components present */ + +} ResetType_ExtIEs__value_PR; +typedef enum UE_associatedLogicalF1_ConnectionItemRes__value_PR { + UE_associatedLogicalF1_ConnectionItemRes__value_PR_NOTHING, /* No components present */ + UE_associatedLogicalF1_ConnectionItemRes__value_PR_UE_associatedLogicalF1_ConnectionItem +} UE_associatedLogicalF1_ConnectionItemRes__value_PR; +typedef enum UE_associatedLogicalF1_ConnectionItemResAck__value_PR { + UE_associatedLogicalF1_ConnectionItemResAck__value_PR_NOTHING, /* No components present */ + UE_associatedLogicalF1_ConnectionItemResAck__value_PR_UE_associatedLogicalF1_ConnectionItem +} UE_associatedLogicalF1_ConnectionItemResAck__value_PR; +typedef enum GNB_DU_Served_Cells_ItemIEs__value_PR { + GNB_DU_Served_Cells_ItemIEs__value_PR_NOTHING, /* No components present */ + GNB_DU_Served_Cells_ItemIEs__value_PR_GNB_DU_Served_Cells_Item +} GNB_DU_Served_Cells_ItemIEs__value_PR; +typedef enum Cells_to_be_Activated_List_ItemIEs__value_PR { + Cells_to_be_Activated_List_ItemIEs__value_PR_NOTHING, /* No components present */ + Cells_to_be_Activated_List_ItemIEs__value_PR_Cells_to_be_Activated_List_Item +} Cells_to_be_Activated_List_ItemIEs__value_PR; +typedef enum Served_Cells_To_Add_ItemIEs__value_PR { + Served_Cells_To_Add_ItemIEs__value_PR_NOTHING, /* No components present */ + Served_Cells_To_Add_ItemIEs__value_PR_Served_Cells_To_Add_Item +} Served_Cells_To_Add_ItemIEs__value_PR; +typedef enum Served_Cells_To_Modify_ItemIEs__value_PR { + Served_Cells_To_Modify_ItemIEs__value_PR_NOTHING, /* No components present */ + Served_Cells_To_Modify_ItemIEs__value_PR_Served_Cells_To_Modify_Item +} Served_Cells_To_Modify_ItemIEs__value_PR; +typedef enum Served_Cells_To_Delete_ItemIEs__value_PR { + Served_Cells_To_Delete_ItemIEs__value_PR_NOTHING, /* No components present */ + Served_Cells_To_Delete_ItemIEs__value_PR_Served_Cells_To_Delete_Item +} Served_Cells_To_Delete_ItemIEs__value_PR; +typedef enum Cells_Status_ItemIEs__value_PR { + Cells_Status_ItemIEs__value_PR_NOTHING, /* No components present */ + Cells_Status_ItemIEs__value_PR_Cells_Status_Item +} Cells_Status_ItemIEs__value_PR; +typedef enum Dedicated_SIDelivery_NeededUE_ItemIEs__value_PR { + Dedicated_SIDelivery_NeededUE_ItemIEs__value_PR_NOTHING, /* No components present */ + Dedicated_SIDelivery_NeededUE_ItemIEs__value_PR_Dedicated_SIDelivery_NeededUE_Item +} Dedicated_SIDelivery_NeededUE_ItemIEs__value_PR; +typedef enum Cells_to_be_Deactivated_List_ItemIEs__value_PR { + Cells_to_be_Deactivated_List_ItemIEs__value_PR_NOTHING, /* No components present */ + Cells_to_be_Deactivated_List_ItemIEs__value_PR_Cells_to_be_Deactivated_List_Item +} Cells_to_be_Deactivated_List_ItemIEs__value_PR; +typedef enum GNB_CU_TNL_Association_To_Add_ItemIEs__value_PR { + GNB_CU_TNL_Association_To_Add_ItemIEs__value_PR_NOTHING, /* No components present */ + GNB_CU_TNL_Association_To_Add_ItemIEs__value_PR_GNB_CU_TNL_Association_To_Add_Item +} GNB_CU_TNL_Association_To_Add_ItemIEs__value_PR; +typedef enum GNB_CU_TNL_Association_To_Remove_ItemIEs__value_PR { + GNB_CU_TNL_Association_To_Remove_ItemIEs__value_PR_NOTHING, /* No components present */ + GNB_CU_TNL_Association_To_Remove_ItemIEs__value_PR_GNB_CU_TNL_Association_To_Remove_Item +} GNB_CU_TNL_Association_To_Remove_ItemIEs__value_PR; +typedef enum GNB_CU_TNL_Association_To_Update_ItemIEs__value_PR { + GNB_CU_TNL_Association_To_Update_ItemIEs__value_PR_NOTHING, /* No components present */ + GNB_CU_TNL_Association_To_Update_ItemIEs__value_PR_GNB_CU_TNL_Association_To_Update_Item +} GNB_CU_TNL_Association_To_Update_ItemIEs__value_PR; +typedef enum Cells_to_be_Barred_ItemIEs__value_PR { + Cells_to_be_Barred_ItemIEs__value_PR_NOTHING, /* No components present */ + Cells_to_be_Barred_ItemIEs__value_PR_Cells_to_be_Barred_Item +} Cells_to_be_Barred_ItemIEs__value_PR; +typedef enum Protected_EUTRA_Resources_ItemIEs__value_PR { + Protected_EUTRA_Resources_ItemIEs__value_PR_NOTHING, /* No components present */ + Protected_EUTRA_Resources_ItemIEs__value_PR_Protected_EUTRA_Resources_Item +} Protected_EUTRA_Resources_ItemIEs__value_PR; +typedef enum Cells_Failed_to_be_Activated_List_ItemIEs__value_PR { + Cells_Failed_to_be_Activated_List_ItemIEs__value_PR_NOTHING, /* No components present */ + Cells_Failed_to_be_Activated_List_ItemIEs__value_PR_Cells_Failed_to_be_Activated_List_Item +} Cells_Failed_to_be_Activated_List_ItemIEs__value_PR; +typedef enum GNB_CU_TNL_Association_Setup_ItemIEs__value_PR { + GNB_CU_TNL_Association_Setup_ItemIEs__value_PR_NOTHING, /* No components present */ + GNB_CU_TNL_Association_Setup_ItemIEs__value_PR_GNB_CU_TNL_Association_Setup_Item +} GNB_CU_TNL_Association_Setup_ItemIEs__value_PR; +typedef enum GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs__value_PR { + GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs__value_PR_NOTHING, /* No components present */ + GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs__value_PR_GNB_CU_TNL_Association_Failed_To_Setup_Item +} GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs__value_PR; +typedef enum Candidate_SpCell_ItemIEs__value_PR { + Candidate_SpCell_ItemIEs__value_PR_NOTHING, /* No components present */ + Candidate_SpCell_ItemIEs__value_PR_Candidate_SpCell_Item +} Candidate_SpCell_ItemIEs__value_PR; +typedef enum SCell_ToBeSetup_ItemIEs__value_PR { + SCell_ToBeSetup_ItemIEs__value_PR_NOTHING, /* No components present */ + SCell_ToBeSetup_ItemIEs__value_PR_SCell_ToBeSetup_Item +} SCell_ToBeSetup_ItemIEs__value_PR; +typedef enum SRBs_ToBeSetup_ItemIEs__value_PR { + SRBs_ToBeSetup_ItemIEs__value_PR_NOTHING, /* No components present */ + SRBs_ToBeSetup_ItemIEs__value_PR_SRBs_ToBeSetup_Item +} SRBs_ToBeSetup_ItemIEs__value_PR; +typedef enum DRBs_ToBeSetup_ItemIEs__value_PR { + DRBs_ToBeSetup_ItemIEs__value_PR_NOTHING, /* No components present */ + DRBs_ToBeSetup_ItemIEs__value_PR_DRBs_ToBeSetup_Item +} DRBs_ToBeSetup_ItemIEs__value_PR; +typedef enum DRBs_Setup_ItemIEs__value_PR { + DRBs_Setup_ItemIEs__value_PR_NOTHING, /* No components present */ + DRBs_Setup_ItemIEs__value_PR_DRBs_Setup_Item +} DRBs_Setup_ItemIEs__value_PR; +typedef enum SRBs_FailedToBeSetup_ItemIEs__value_PR { + SRBs_FailedToBeSetup_ItemIEs__value_PR_NOTHING, /* No components present */ + SRBs_FailedToBeSetup_ItemIEs__value_PR_SRBs_FailedToBeSetup_Item +} SRBs_FailedToBeSetup_ItemIEs__value_PR; +typedef enum DRBs_FailedToBeSetup_ItemIEs__value_PR { + DRBs_FailedToBeSetup_ItemIEs__value_PR_NOTHING, /* No components present */ + DRBs_FailedToBeSetup_ItemIEs__value_PR_DRBs_FailedToBeSetup_Item +} DRBs_FailedToBeSetup_ItemIEs__value_PR; +typedef enum SCell_FailedtoSetup_ItemIEs__value_PR { + SCell_FailedtoSetup_ItemIEs__value_PR_NOTHING, /* No components present */ + SCell_FailedtoSetup_ItemIEs__value_PR_SCell_FailedtoSetup_Item +} SCell_FailedtoSetup_ItemIEs__value_PR; +typedef enum SRBs_Setup_ItemIEs__value_PR { + SRBs_Setup_ItemIEs__value_PR_NOTHING, /* No components present */ + SRBs_Setup_ItemIEs__value_PR_SRBs_Setup_Item +} SRBs_Setup_ItemIEs__value_PR; +typedef enum Potential_SpCell_ItemIEs__value_PR { + Potential_SpCell_ItemIEs__value_PR_NOTHING, /* No components present */ + Potential_SpCell_ItemIEs__value_PR_Potential_SpCell_Item +} Potential_SpCell_ItemIEs__value_PR; +typedef enum SCell_ToBeSetupMod_ItemIEs__value_PR { + SCell_ToBeSetupMod_ItemIEs__value_PR_NOTHING, /* No components present */ + SCell_ToBeSetupMod_ItemIEs__value_PR_SCell_ToBeSetupMod_Item +} SCell_ToBeSetupMod_ItemIEs__value_PR; +typedef enum SCell_ToBeRemoved_ItemIEs__value_PR { + SCell_ToBeRemoved_ItemIEs__value_PR_NOTHING, /* No components present */ + SCell_ToBeRemoved_ItemIEs__value_PR_SCell_ToBeRemoved_Item +} SCell_ToBeRemoved_ItemIEs__value_PR; +typedef enum SRBs_ToBeSetupMod_ItemIEs__value_PR { + SRBs_ToBeSetupMod_ItemIEs__value_PR_NOTHING, /* No components present */ + SRBs_ToBeSetupMod_ItemIEs__value_PR_SRBs_ToBeSetupMod_Item +} SRBs_ToBeSetupMod_ItemIEs__value_PR; +typedef enum DRBs_ToBeSetupMod_ItemIEs__value_PR { + DRBs_ToBeSetupMod_ItemIEs__value_PR_NOTHING, /* No components present */ + DRBs_ToBeSetupMod_ItemIEs__value_PR_DRBs_ToBeSetupMod_Item +} DRBs_ToBeSetupMod_ItemIEs__value_PR; +typedef enum DRBs_ToBeModified_ItemIEs__value_PR { + DRBs_ToBeModified_ItemIEs__value_PR_NOTHING, /* No components present */ + DRBs_ToBeModified_ItemIEs__value_PR_DRBs_ToBeModified_Item +} DRBs_ToBeModified_ItemIEs__value_PR; +typedef enum SRBs_ToBeReleased_ItemIEs__value_PR { + SRBs_ToBeReleased_ItemIEs__value_PR_NOTHING, /* No components present */ + SRBs_ToBeReleased_ItemIEs__value_PR_SRBs_ToBeReleased_Item +} SRBs_ToBeReleased_ItemIEs__value_PR; +typedef enum DRBs_ToBeReleased_ItemIEs__value_PR { + DRBs_ToBeReleased_ItemIEs__value_PR_NOTHING, /* No components present */ + DRBs_ToBeReleased_ItemIEs__value_PR_DRBs_ToBeReleased_Item +} DRBs_ToBeReleased_ItemIEs__value_PR; +typedef enum DRBs_SetupMod_ItemIEs__value_PR { + DRBs_SetupMod_ItemIEs__value_PR_NOTHING, /* No components present */ + DRBs_SetupMod_ItemIEs__value_PR_DRBs_SetupMod_Item +} DRBs_SetupMod_ItemIEs__value_PR; +typedef enum DRBs_Modified_ItemIEs__value_PR { + DRBs_Modified_ItemIEs__value_PR_NOTHING, /* No components present */ + DRBs_Modified_ItemIEs__value_PR_DRBs_Modified_Item +} DRBs_Modified_ItemIEs__value_PR; +typedef enum SRBs_SetupMod_ItemIEs__value_PR { + SRBs_SetupMod_ItemIEs__value_PR_NOTHING, /* No components present */ + SRBs_SetupMod_ItemIEs__value_PR_SRBs_SetupMod_Item +} SRBs_SetupMod_ItemIEs__value_PR; +typedef enum SRBs_Modified_ItemIEs__value_PR { + SRBs_Modified_ItemIEs__value_PR_NOTHING, /* No components present */ + SRBs_Modified_ItemIEs__value_PR_SRBs_Modified_Item +} SRBs_Modified_ItemIEs__value_PR; +typedef enum DRBs_FailedToBeModified_ItemIEs__value_PR { + DRBs_FailedToBeModified_ItemIEs__value_PR_NOTHING, /* No components present */ + DRBs_FailedToBeModified_ItemIEs__value_PR_DRBs_FailedToBeModified_Item +} DRBs_FailedToBeModified_ItemIEs__value_PR; +typedef enum SRBs_FailedToBeSetupMod_ItemIEs__value_PR { + SRBs_FailedToBeSetupMod_ItemIEs__value_PR_NOTHING, /* No components present */ + SRBs_FailedToBeSetupMod_ItemIEs__value_PR_SRBs_FailedToBeSetupMod_Item +} SRBs_FailedToBeSetupMod_ItemIEs__value_PR; +typedef enum DRBs_FailedToBeSetupMod_ItemIEs__value_PR { + DRBs_FailedToBeSetupMod_ItemIEs__value_PR_NOTHING, /* No components present */ + DRBs_FailedToBeSetupMod_ItemIEs__value_PR_DRBs_FailedToBeSetupMod_Item +} DRBs_FailedToBeSetupMod_ItemIEs__value_PR; +typedef enum SCell_FailedtoSetupMod_ItemIEs__value_PR { + SCell_FailedtoSetupMod_ItemIEs__value_PR_NOTHING, /* No components present */ + SCell_FailedtoSetupMod_ItemIEs__value_PR_SCell_FailedtoSetupMod_Item +} SCell_FailedtoSetupMod_ItemIEs__value_PR; +typedef enum Associated_SCell_ItemIEs__value_PR { + Associated_SCell_ItemIEs__value_PR_NOTHING, /* No components present */ + Associated_SCell_ItemIEs__value_PR_Associated_SCell_Item +} Associated_SCell_ItemIEs__value_PR; +typedef enum DRBs_Required_ToBeModified_ItemIEs__value_PR { + DRBs_Required_ToBeModified_ItemIEs__value_PR_NOTHING, /* No components present */ + DRBs_Required_ToBeModified_ItemIEs__value_PR_DRBs_Required_ToBeModified_Item +} DRBs_Required_ToBeModified_ItemIEs__value_PR; +typedef enum DRBs_Required_ToBeReleased_ItemIEs__value_PR { + DRBs_Required_ToBeReleased_ItemIEs__value_PR_NOTHING, /* No components present */ + DRBs_Required_ToBeReleased_ItemIEs__value_PR_DRBs_Required_ToBeReleased_Item +} DRBs_Required_ToBeReleased_ItemIEs__value_PR; +typedef enum SRBs_Required_ToBeReleased_ItemIEs__value_PR { + SRBs_Required_ToBeReleased_ItemIEs__value_PR_NOTHING, /* No components present */ + SRBs_Required_ToBeReleased_ItemIEs__value_PR_SRBs_Required_ToBeReleased_Item +} SRBs_Required_ToBeReleased_ItemIEs__value_PR; +typedef enum DRBs_ModifiedConf_ItemIEs__value_PR { + DRBs_ModifiedConf_ItemIEs__value_PR_NOTHING, /* No components present */ + DRBs_ModifiedConf_ItemIEs__value_PR_DRBs_ModifiedConf_Item +} DRBs_ModifiedConf_ItemIEs__value_PR; +typedef enum Cells_To_Be_Broadcast_List_ItemIEs__value_PR { + Cells_To_Be_Broadcast_List_ItemIEs__value_PR_NOTHING, /* No components present */ + Cells_To_Be_Broadcast_List_ItemIEs__value_PR_Cells_To_Be_Broadcast_Item +} Cells_To_Be_Broadcast_List_ItemIEs__value_PR; +typedef enum Cells_Broadcast_Completed_List_ItemIEs__value_PR { + Cells_Broadcast_Completed_List_ItemIEs__value_PR_NOTHING, /* No components present */ + Cells_Broadcast_Completed_List_ItemIEs__value_PR_Cells_Broadcast_Completed_Item +} Cells_Broadcast_Completed_List_ItemIEs__value_PR; +typedef enum Broadcast_To_Be_Cancelled_List_ItemIEs__value_PR { + Broadcast_To_Be_Cancelled_List_ItemIEs__value_PR_NOTHING, /* No components present */ + Broadcast_To_Be_Cancelled_List_ItemIEs__value_PR_Broadcast_To_Be_Cancelled_Item +} Broadcast_To_Be_Cancelled_List_ItemIEs__value_PR; +typedef enum Cells_Broadcast_Cancelled_List_ItemIEs__value_PR { + Cells_Broadcast_Cancelled_List_ItemIEs__value_PR_NOTHING, /* No components present */ + Cells_Broadcast_Cancelled_List_ItemIEs__value_PR_Cells_Broadcast_Cancelled_Item +} Cells_Broadcast_Cancelled_List_ItemIEs__value_PR; +typedef enum DRB_Activity_ItemIEs__value_PR { + DRB_Activity_ItemIEs__value_PR_NOTHING, /* No components present */ + DRB_Activity_ItemIEs__value_PR_DRB_Activity_Item +} DRB_Activity_ItemIEs__value_PR; +typedef enum PagingCell_ItemIEs__value_PR { + PagingCell_ItemIEs__value_PR_NOTHING, /* No components present */ + PagingCell_ItemIEs__value_PR_PagingCell_Item +} PagingCell_ItemIEs__value_PR; +typedef enum DRB_Notify_ItemIEs__value_PR { + DRB_Notify_ItemIEs__value_PR_NOTHING, /* No components present */ + DRB_Notify_ItemIEs__value_PR_DRB_Notify_Item +} DRB_Notify_ItemIEs__value_PR; +typedef enum NR_CGI_List_For_Restart_List_ItemIEs__value_PR { + NR_CGI_List_For_Restart_List_ItemIEs__value_PR_NOTHING, /* No components present */ + NR_CGI_List_For_Restart_List_ItemIEs__value_PR_NR_CGI_List_For_Restart_Item +} NR_CGI_List_For_Restart_List_ItemIEs__value_PR; +typedef enum PWS_Failed_NR_CGI_List_ItemIEs__value_PR { + PWS_Failed_NR_CGI_List_ItemIEs__value_PR_NOTHING, /* No components present */ + PWS_Failed_NR_CGI_List_ItemIEs__value_PR_PWS_Failed_NR_CGI_Item +} PWS_Failed_NR_CGI_List_ItemIEs__value_PR; +typedef enum Cause_ExtIEs__value_PR { + Cause_ExtIEs__value_PR_NOTHING /* No components present */ + +} Cause_ExtIEs__value_PR; +typedef enum CNUEPagingIdentity_ExtIEs__value_PR { + CNUEPagingIdentity_ExtIEs__value_PR_NOTHING /* No components present */ + +} CNUEPagingIdentity_ExtIEs__value_PR; +typedef enum CP_TransportLayerAddress_ExtIEs__value_PR { + CP_TransportLayerAddress_ExtIEs__value_PR_NOTHING /* No components present */ + +} CP_TransportLayerAddress_ExtIEs__value_PR; +typedef enum EUTRA_Mode_Info_ExtIEs__value_PR { + EUTRA_Mode_Info_ExtIEs__value_PR_NOTHING /* No components present */ + +} EUTRA_Mode_Info_ExtIEs__value_PR; +typedef enum NR_Mode_Info_ExtIEs__value_PR { + NR_Mode_Info_ExtIEs__value_PR_NOTHING /* No components present */ + +} NR_Mode_Info_ExtIEs__value_PR; +typedef enum PagingIdentity_ExtIEs__value_PR { + PagingIdentity_ExtIEs__value_PR_NOTHING /* No components present */ + +} PagingIdentity_ExtIEs__value_PR; +typedef enum QoS_Characteristics_ExtIEs__value_PR { + QoS_Characteristics_ExtIEs__value_PR_NOTHING /* No components present */ + +} QoS_Characteristics_ExtIEs__value_PR; +typedef enum QoSInformation_ExtIEs__value_PR { + QoSInformation_ExtIEs__value_PR_NOTHING, /* No components present */ + QoSInformation_ExtIEs__value_PR_DRB_Information +} QoSInformation_ExtIEs__value_PR; +typedef enum RAT_FrequencyPriorityInformation_ExtIEs__value_PR { + RAT_FrequencyPriorityInformation_ExtIEs__value_PR_NOTHING /* No components present */ + +} RAT_FrequencyPriorityInformation_ExtIEs__value_PR; +typedef enum UEIdentityIndexValueChoice_ExtIEs__value_PR { + UEIdentityIndexValueChoice_ExtIEs__value_PR_NOTHING /* No components present */ + +} UEIdentityIndexValueChoice_ExtIEs__value_PR; +typedef enum UPTransportLayerInformation_ExtIEs__value_PR { + UPTransportLayerInformation_ExtIEs__value_PR_NOTHING /* No components present */ + +} UPTransportLayerInformation_ExtIEs__value_PR; +typedef enum ResetIEs__value_PR { + ResetIEs__value_PR_NOTHING, /* No components present */ + ResetIEs__value_PR_TransactionID, + ResetIEs__value_PR_Cause, + ResetIEs__value_PR_ResetType +} ResetIEs__value_PR; +typedef enum ResetAcknowledgeIEs__value_PR { + ResetAcknowledgeIEs__value_PR_NOTHING, /* No components present */ + ResetAcknowledgeIEs__value_PR_TransactionID, + ResetAcknowledgeIEs__value_PR_UE_associatedLogicalF1_ConnectionListResAck, + ResetAcknowledgeIEs__value_PR_CriticalityDiagnostics +} ResetAcknowledgeIEs__value_PR; +typedef enum ErrorIndicationIEs__value_PR { + ErrorIndicationIEs__value_PR_NOTHING, /* No components present */ + ErrorIndicationIEs__value_PR_TransactionID, + ErrorIndicationIEs__value_PR_GNB_CU_UE_F1AP_ID, + ErrorIndicationIEs__value_PR_GNB_DU_UE_F1AP_ID, + ErrorIndicationIEs__value_PR_Cause, + ErrorIndicationIEs__value_PR_CriticalityDiagnostics +} ErrorIndicationIEs__value_PR; +typedef enum F1SetupRequestIEs__value_PR { + F1SetupRequestIEs__value_PR_NOTHING, /* No components present */ + F1SetupRequestIEs__value_PR_TransactionID, + F1SetupRequestIEs__value_PR_GNB_DU_ID, + F1SetupRequestIEs__value_PR_GNB_DU_Name, + F1SetupRequestIEs__value_PR_GNB_DU_Served_Cells_List, + F1SetupRequestIEs__value_PR_RRC_Version +} F1SetupRequestIEs__value_PR; +typedef enum F1SetupResponseIEs__value_PR { + F1SetupResponseIEs__value_PR_NOTHING, /* No components present */ + F1SetupResponseIEs__value_PR_TransactionID, + F1SetupResponseIEs__value_PR_GNB_CU_Name, + F1SetupResponseIEs__value_PR_Cells_to_be_Activated_List, + F1SetupResponseIEs__value_PR_RRC_Version +} F1SetupResponseIEs__value_PR; +typedef enum F1SetupFailureIEs__value_PR { + F1SetupFailureIEs__value_PR_NOTHING, /* No components present */ + F1SetupFailureIEs__value_PR_TransactionID, + F1SetupFailureIEs__value_PR_Cause, + F1SetupFailureIEs__value_PR_TimeToWait, + F1SetupFailureIEs__value_PR_CriticalityDiagnostics +} F1SetupFailureIEs__value_PR; +typedef enum GNBDUConfigurationUpdateIEs__value_PR { + GNBDUConfigurationUpdateIEs__value_PR_NOTHING, /* No components present */ + GNBDUConfigurationUpdateIEs__value_PR_TransactionID, + GNBDUConfigurationUpdateIEs__value_PR_Served_Cells_To_Add_List, + GNBDUConfigurationUpdateIEs__value_PR_Served_Cells_To_Modify_List, + GNBDUConfigurationUpdateIEs__value_PR_Served_Cells_To_Delete_List, + GNBDUConfigurationUpdateIEs__value_PR_Cells_Status_List, + GNBDUConfigurationUpdateIEs__value_PR_Dedicated_SIDelivery_NeededUE_List, + GNBDUConfigurationUpdateIEs__value_PR_GNB_DU_ID +} GNBDUConfigurationUpdateIEs__value_PR; +typedef enum GNBDUConfigurationUpdateAcknowledgeIEs__value_PR { + GNBDUConfigurationUpdateAcknowledgeIEs__value_PR_NOTHING, /* No components present */ + GNBDUConfigurationUpdateAcknowledgeIEs__value_PR_TransactionID, + GNBDUConfigurationUpdateAcknowledgeIEs__value_PR_Cells_to_be_Activated_List, + GNBDUConfigurationUpdateAcknowledgeIEs__value_PR_CriticalityDiagnostics, + GNBDUConfigurationUpdateAcknowledgeIEs__value_PR_Cells_to_be_Deactivated_List +} GNBDUConfigurationUpdateAcknowledgeIEs__value_PR; +typedef enum GNBDUConfigurationUpdateFailureIEs__value_PR { + GNBDUConfigurationUpdateFailureIEs__value_PR_NOTHING, /* No components present */ + GNBDUConfigurationUpdateFailureIEs__value_PR_TransactionID, + GNBDUConfigurationUpdateFailureIEs__value_PR_Cause, + GNBDUConfigurationUpdateFailureIEs__value_PR_TimeToWait, + GNBDUConfigurationUpdateFailureIEs__value_PR_CriticalityDiagnostics +} GNBDUConfigurationUpdateFailureIEs__value_PR; +typedef enum GNBCUConfigurationUpdateIEs__value_PR { + GNBCUConfigurationUpdateIEs__value_PR_NOTHING, /* No components present */ + GNBCUConfigurationUpdateIEs__value_PR_TransactionID, + GNBCUConfigurationUpdateIEs__value_PR_Cells_to_be_Activated_List, + GNBCUConfigurationUpdateIEs__value_PR_Cells_to_be_Deactivated_List, + GNBCUConfigurationUpdateIEs__value_PR_GNB_CU_TNL_Association_To_Add_List, + GNBCUConfigurationUpdateIEs__value_PR_GNB_CU_TNL_Association_To_Remove_List, + GNBCUConfigurationUpdateIEs__value_PR_GNB_CU_TNL_Association_To_Update_List, + GNBCUConfigurationUpdateIEs__value_PR_Cells_to_be_Barred_List, + GNBCUConfigurationUpdateIEs__value_PR_Protected_EUTRA_Resources_List +} GNBCUConfigurationUpdateIEs__value_PR; +typedef enum GNBCUConfigurationUpdateAcknowledgeIEs__value_PR { + GNBCUConfigurationUpdateAcknowledgeIEs__value_PR_NOTHING, /* No components present */ + GNBCUConfigurationUpdateAcknowledgeIEs__value_PR_TransactionID, + GNBCUConfigurationUpdateAcknowledgeIEs__value_PR_Cells_Failed_to_be_Activated_List, + GNBCUConfigurationUpdateAcknowledgeIEs__value_PR_CriticalityDiagnostics, + GNBCUConfigurationUpdateAcknowledgeIEs__value_PR_GNB_CU_TNL_Association_Setup_List, + GNBCUConfigurationUpdateAcknowledgeIEs__value_PR_GNB_CU_TNL_Association_Failed_To_Setup_List, + GNBCUConfigurationUpdateAcknowledgeIEs__value_PR_Dedicated_SIDelivery_NeededUE_List +} GNBCUConfigurationUpdateAcknowledgeIEs__value_PR; +typedef enum GNBCUConfigurationUpdateFailureIEs__value_PR { + GNBCUConfigurationUpdateFailureIEs__value_PR_NOTHING, /* No components present */ + GNBCUConfigurationUpdateFailureIEs__value_PR_TransactionID, + GNBCUConfigurationUpdateFailureIEs__value_PR_Cause, + GNBCUConfigurationUpdateFailureIEs__value_PR_TimeToWait, + GNBCUConfigurationUpdateFailureIEs__value_PR_CriticalityDiagnostics +} GNBCUConfigurationUpdateFailureIEs__value_PR; +typedef enum GNBDUResourceCoordinationRequest_IEs__value_PR { + GNBDUResourceCoordinationRequest_IEs__value_PR_NOTHING, /* No components present */ + GNBDUResourceCoordinationRequest_IEs__value_PR_TransactionID, + GNBDUResourceCoordinationRequest_IEs__value_PR_RequestType, + GNBDUResourceCoordinationRequest_IEs__value_PR_EUTRA_NR_CellResourceCoordinationReq_Container, + GNBDUResourceCoordinationRequest_IEs__value_PR_IgnoreResourceCoordinationContainer +} GNBDUResourceCoordinationRequest_IEs__value_PR; +typedef enum GNBDUResourceCoordinationResponse_IEs__value_PR { + GNBDUResourceCoordinationResponse_IEs__value_PR_NOTHING, /* No components present */ + GNBDUResourceCoordinationResponse_IEs__value_PR_TransactionID, + GNBDUResourceCoordinationResponse_IEs__value_PR_EUTRA_NR_CellResourceCoordinationReqAck_Container +} GNBDUResourceCoordinationResponse_IEs__value_PR; +typedef enum UEContextSetupRequestIEs__value_PR { + UEContextSetupRequestIEs__value_PR_NOTHING, /* No components present */ + UEContextSetupRequestIEs__value_PR_GNB_CU_UE_F1AP_ID, + UEContextSetupRequestIEs__value_PR_GNB_DU_UE_F1AP_ID, + UEContextSetupRequestIEs__value_PR_NRCGI, + UEContextSetupRequestIEs__value_PR_ServCellIndex, + UEContextSetupRequestIEs__value_PR_CellULConfigured, + UEContextSetupRequestIEs__value_PR_CUtoDURRCInformation, + UEContextSetupRequestIEs__value_PR_Candidate_SpCell_List, + UEContextSetupRequestIEs__value_PR_DRXCycle, + UEContextSetupRequestIEs__value_PR_ResourceCoordinationTransferContainer, + UEContextSetupRequestIEs__value_PR_SCell_ToBeSetup_List, + UEContextSetupRequestIEs__value_PR_SRBs_ToBeSetup_List, + UEContextSetupRequestIEs__value_PR_DRBs_ToBeSetup_List, + UEContextSetupRequestIEs__value_PR_InactivityMonitoringRequest, + UEContextSetupRequestIEs__value_PR_RAT_FrequencyPriorityInformation, + UEContextSetupRequestIEs__value_PR_RRCContainer, + UEContextSetupRequestIEs__value_PR_MaskedIMEISV, + UEContextSetupRequestIEs__value_PR_PLMN_Identity, + UEContextSetupRequestIEs__value_PR_BitRate, + UEContextSetupRequestIEs__value_PR_RRCDeliveryStatusRequest, + UEContextSetupRequestIEs__value_PR_ResourceCoordinationTransferInformation, + UEContextSetupRequestIEs__value_PR_ServingCellMO +} UEContextSetupRequestIEs__value_PR; +typedef enum UEContextSetupResponseIEs__value_PR { + UEContextSetupResponseIEs__value_PR_NOTHING, /* No components present */ + UEContextSetupResponseIEs__value_PR_GNB_CU_UE_F1AP_ID, + UEContextSetupResponseIEs__value_PR_GNB_DU_UE_F1AP_ID, + UEContextSetupResponseIEs__value_PR_DUtoCURRCInformation, + UEContextSetupResponseIEs__value_PR_C_RNTI, + UEContextSetupResponseIEs__value_PR_ResourceCoordinationTransferContainer, + UEContextSetupResponseIEs__value_PR_FullConfiguration, + UEContextSetupResponseIEs__value_PR_DRBs_Setup_List, + UEContextSetupResponseIEs__value_PR_SRBs_FailedToBeSetup_List, + UEContextSetupResponseIEs__value_PR_DRBs_FailedToBeSetup_List, + UEContextSetupResponseIEs__value_PR_SCell_FailedtoSetup_List, + UEContextSetupResponseIEs__value_PR_InactivityMonitoringResponse, + UEContextSetupResponseIEs__value_PR_CriticalityDiagnostics, + UEContextSetupResponseIEs__value_PR_SRBs_Setup_List +} UEContextSetupResponseIEs__value_PR; +typedef enum UEContextSetupFailureIEs__value_PR { + UEContextSetupFailureIEs__value_PR_NOTHING, /* No components present */ + UEContextSetupFailureIEs__value_PR_GNB_CU_UE_F1AP_ID, + UEContextSetupFailureIEs__value_PR_GNB_DU_UE_F1AP_ID, + UEContextSetupFailureIEs__value_PR_Cause, + UEContextSetupFailureIEs__value_PR_CriticalityDiagnostics, + UEContextSetupFailureIEs__value_PR_Potential_SpCell_List +} UEContextSetupFailureIEs__value_PR; +typedef enum UEContextReleaseRequestIEs__value_PR { + UEContextReleaseRequestIEs__value_PR_NOTHING, /* No components present */ + UEContextReleaseRequestIEs__value_PR_GNB_CU_UE_F1AP_ID, + UEContextReleaseRequestIEs__value_PR_GNB_DU_UE_F1AP_ID, + UEContextReleaseRequestIEs__value_PR_Cause +} UEContextReleaseRequestIEs__value_PR; +typedef enum UEContextReleaseCommandIEs__value_PR { + UEContextReleaseCommandIEs__value_PR_NOTHING, /* No components present */ + UEContextReleaseCommandIEs__value_PR_GNB_CU_UE_F1AP_ID, + UEContextReleaseCommandIEs__value_PR_GNB_DU_UE_F1AP_ID, + UEContextReleaseCommandIEs__value_PR_Cause, + UEContextReleaseCommandIEs__value_PR_RRCContainer, + UEContextReleaseCommandIEs__value_PR_SRBID, + UEContextReleaseCommandIEs__value_PR_ExecuteDuplication, + UEContextReleaseCommandIEs__value_PR_RRCDeliveryStatusRequest +} UEContextReleaseCommandIEs__value_PR; +typedef enum UEContextReleaseCompleteIEs__value_PR { + UEContextReleaseCompleteIEs__value_PR_NOTHING, /* No components present */ + UEContextReleaseCompleteIEs__value_PR_GNB_CU_UE_F1AP_ID, + UEContextReleaseCompleteIEs__value_PR_GNB_DU_UE_F1AP_ID, + UEContextReleaseCompleteIEs__value_PR_CriticalityDiagnostics +} UEContextReleaseCompleteIEs__value_PR; +typedef enum UEContextModificationRequestIEs__value_PR { + UEContextModificationRequestIEs__value_PR_NOTHING, /* No components present */ + UEContextModificationRequestIEs__value_PR_GNB_CU_UE_F1AP_ID, + UEContextModificationRequestIEs__value_PR_GNB_DU_UE_F1AP_ID, + UEContextModificationRequestIEs__value_PR_NRCGI, + UEContextModificationRequestIEs__value_PR_ServCellIndex, + UEContextModificationRequestIEs__value_PR_CellULConfigured, + UEContextModificationRequestIEs__value_PR_DRXCycle, + UEContextModificationRequestIEs__value_PR_CUtoDURRCInformation, + UEContextModificationRequestIEs__value_PR_TransmissionActionIndicator, + UEContextModificationRequestIEs__value_PR_ResourceCoordinationTransferContainer, + UEContextModificationRequestIEs__value_PR_RRCReconfigurationCompleteIndicator, + UEContextModificationRequestIEs__value_PR_RRCContainer, + UEContextModificationRequestIEs__value_PR_SCell_ToBeSetupMod_List, + UEContextModificationRequestIEs__value_PR_SCell_ToBeRemoved_List, + UEContextModificationRequestIEs__value_PR_SRBs_ToBeSetupMod_List, + UEContextModificationRequestIEs__value_PR_DRBs_ToBeSetupMod_List, + UEContextModificationRequestIEs__value_PR_DRBs_ToBeModified_List, + UEContextModificationRequestIEs__value_PR_SRBs_ToBeReleased_List, + UEContextModificationRequestIEs__value_PR_DRBs_ToBeReleased_List, + UEContextModificationRequestIEs__value_PR_InactivityMonitoringRequest, + UEContextModificationRequestIEs__value_PR_RAT_FrequencyPriorityInformation, + UEContextModificationRequestIEs__value_PR_DRXConfigurationIndicator, + UEContextModificationRequestIEs__value_PR_RLCFailureIndication, + UEContextModificationRequestIEs__value_PR_UplinkTxDirectCurrentListInformation, + UEContextModificationRequestIEs__value_PR_GNB_DUConfigurationQuery, + UEContextModificationRequestIEs__value_PR_BitRate, + UEContextModificationRequestIEs__value_PR_ExecuteDuplication, + UEContextModificationRequestIEs__value_PR_RRCDeliveryStatusRequest, + UEContextModificationRequestIEs__value_PR_ResourceCoordinationTransferInformation, + UEContextModificationRequestIEs__value_PR_ServingCellMO, + UEContextModificationRequestIEs__value_PR_NeedforGap +} UEContextModificationRequestIEs__value_PR; +typedef enum UEContextModificationResponseIEs__value_PR { + UEContextModificationResponseIEs__value_PR_NOTHING, /* No components present */ + UEContextModificationResponseIEs__value_PR_GNB_CU_UE_F1AP_ID, + UEContextModificationResponseIEs__value_PR_GNB_DU_UE_F1AP_ID, + UEContextModificationResponseIEs__value_PR_ResourceCoordinationTransferContainer, + UEContextModificationResponseIEs__value_PR_DUtoCURRCInformation, + UEContextModificationResponseIEs__value_PR_DRBs_SetupMod_List, + UEContextModificationResponseIEs__value_PR_DRBs_Modified_List, + UEContextModificationResponseIEs__value_PR_SRBs_FailedToBeSetupMod_List, + UEContextModificationResponseIEs__value_PR_DRBs_FailedToBeSetupMod_List, + UEContextModificationResponseIEs__value_PR_SCell_FailedtoSetupMod_List, + UEContextModificationResponseIEs__value_PR_DRBs_FailedToBeModified_List, + UEContextModificationResponseIEs__value_PR_InactivityMonitoringResponse, + UEContextModificationResponseIEs__value_PR_CriticalityDiagnostics, + UEContextModificationResponseIEs__value_PR_C_RNTI, + UEContextModificationResponseIEs__value_PR_Associated_SCell_List, + UEContextModificationResponseIEs__value_PR_SRBs_SetupMod_List, + UEContextModificationResponseIEs__value_PR_SRBs_Modified_List +} UEContextModificationResponseIEs__value_PR; +typedef enum UEContextModificationFailureIEs__value_PR { + UEContextModificationFailureIEs__value_PR_NOTHING, /* No components present */ + UEContextModificationFailureIEs__value_PR_GNB_CU_UE_F1AP_ID, + UEContextModificationFailureIEs__value_PR_GNB_DU_UE_F1AP_ID, + UEContextModificationFailureIEs__value_PR_Cause, + UEContextModificationFailureIEs__value_PR_CriticalityDiagnostics +} UEContextModificationFailureIEs__value_PR; +typedef enum UEContextModificationRequiredIEs__value_PR { + UEContextModificationRequiredIEs__value_PR_NOTHING, /* No components present */ + UEContextModificationRequiredIEs__value_PR_GNB_CU_UE_F1AP_ID, + UEContextModificationRequiredIEs__value_PR_GNB_DU_UE_F1AP_ID, + UEContextModificationRequiredIEs__value_PR_ResourceCoordinationTransferContainer, + UEContextModificationRequiredIEs__value_PR_DUtoCURRCInformation, + UEContextModificationRequiredIEs__value_PR_DRBs_Required_ToBeModified_List, + UEContextModificationRequiredIEs__value_PR_SRBs_Required_ToBeReleased_List, + UEContextModificationRequiredIEs__value_PR_DRBs_Required_ToBeReleased_List, + UEContextModificationRequiredIEs__value_PR_Cause +} UEContextModificationRequiredIEs__value_PR; +typedef enum UEContextModificationConfirmIEs__value_PR { + UEContextModificationConfirmIEs__value_PR_NOTHING, /* No components present */ + UEContextModificationConfirmIEs__value_PR_GNB_CU_UE_F1AP_ID, + UEContextModificationConfirmIEs__value_PR_GNB_DU_UE_F1AP_ID, + UEContextModificationConfirmIEs__value_PR_ResourceCoordinationTransferContainer, + UEContextModificationConfirmIEs__value_PR_DRBs_ModifiedConf_List, + UEContextModificationConfirmIEs__value_PR_RRCContainer, + UEContextModificationConfirmIEs__value_PR_CriticalityDiagnostics, + UEContextModificationConfirmIEs__value_PR_ExecuteDuplication, + UEContextModificationConfirmIEs__value_PR_ResourceCoordinationTransferInformation +} UEContextModificationConfirmIEs__value_PR; +typedef enum UEContextModificationRefuseIEs__value_PR { + UEContextModificationRefuseIEs__value_PR_NOTHING, /* No components present */ + UEContextModificationRefuseIEs__value_PR_GNB_CU_UE_F1AP_ID, + UEContextModificationRefuseIEs__value_PR_GNB_DU_UE_F1AP_ID, + UEContextModificationRefuseIEs__value_PR_Cause, + UEContextModificationRefuseIEs__value_PR_CriticalityDiagnostics +} UEContextModificationRefuseIEs__value_PR; +typedef enum WriteReplaceWarningRequestIEs__value_PR { + WriteReplaceWarningRequestIEs__value_PR_NOTHING, /* No components present */ + WriteReplaceWarningRequestIEs__value_PR_TransactionID, + WriteReplaceWarningRequestIEs__value_PR_PWSSystemInformation, + WriteReplaceWarningRequestIEs__value_PR_RepetitionPeriod, + WriteReplaceWarningRequestIEs__value_PR_NumberofBroadcastRequest, + WriteReplaceWarningRequestIEs__value_PR_Cells_To_Be_Broadcast_List +} WriteReplaceWarningRequestIEs__value_PR; +typedef enum WriteReplaceWarningResponseIEs__value_PR { + WriteReplaceWarningResponseIEs__value_PR_NOTHING, /* No components present */ + WriteReplaceWarningResponseIEs__value_PR_TransactionID, + WriteReplaceWarningResponseIEs__value_PR_Cells_Broadcast_Completed_List, + WriteReplaceWarningResponseIEs__value_PR_CriticalityDiagnostics, + WriteReplaceWarningResponseIEs__value_PR_Dedicated_SIDelivery_NeededUE_List +} WriteReplaceWarningResponseIEs__value_PR; +typedef enum PWSCancelRequestIEs__value_PR { + PWSCancelRequestIEs__value_PR_NOTHING, /* No components present */ + PWSCancelRequestIEs__value_PR_TransactionID, + PWSCancelRequestIEs__value_PR_NumberofBroadcastRequest, + PWSCancelRequestIEs__value_PR_Broadcast_To_Be_Cancelled_List, + PWSCancelRequestIEs__value_PR_Cancel_all_Warning_Messages_Indicator +} PWSCancelRequestIEs__value_PR; +typedef enum PWSCancelResponseIEs__value_PR { + PWSCancelResponseIEs__value_PR_NOTHING, /* No components present */ + PWSCancelResponseIEs__value_PR_TransactionID, + PWSCancelResponseIEs__value_PR_Cells_Broadcast_Cancelled_List, + PWSCancelResponseIEs__value_PR_CriticalityDiagnostics +} PWSCancelResponseIEs__value_PR; +typedef enum UEInactivityNotificationIEs__value_PR { + UEInactivityNotificationIEs__value_PR_NOTHING, /* No components present */ + UEInactivityNotificationIEs__value_PR_GNB_CU_UE_F1AP_ID, + UEInactivityNotificationIEs__value_PR_GNB_DU_UE_F1AP_ID, + UEInactivityNotificationIEs__value_PR_DRB_Activity_List +} UEInactivityNotificationIEs__value_PR; +typedef enum InitialULRRCMessageTransferIEs__value_PR { + InitialULRRCMessageTransferIEs__value_PR_NOTHING, /* No components present */ + InitialULRRCMessageTransferIEs__value_PR_GNB_DU_UE_F1AP_ID, + InitialULRRCMessageTransferIEs__value_PR_NRCGI, + InitialULRRCMessageTransferIEs__value_PR_C_RNTI, + InitialULRRCMessageTransferIEs__value_PR_RRCContainer, + InitialULRRCMessageTransferIEs__value_PR_DUtoCURRCContainer, + InitialULRRCMessageTransferIEs__value_PR_SULAccessIndication, + InitialULRRCMessageTransferIEs__value_PR_TransactionID +} InitialULRRCMessageTransferIEs__value_PR; +typedef enum DLRRCMessageTransferIEs__value_PR { + DLRRCMessageTransferIEs__value_PR_NOTHING, /* No components present */ + DLRRCMessageTransferIEs__value_PR_GNB_CU_UE_F1AP_ID, + DLRRCMessageTransferIEs__value_PR_GNB_DU_UE_F1AP_ID, + DLRRCMessageTransferIEs__value_PR_SRBID, + DLRRCMessageTransferIEs__value_PR_ExecuteDuplication, + DLRRCMessageTransferIEs__value_PR_RRCContainer, + DLRRCMessageTransferIEs__value_PR_RAT_FrequencyPriorityInformation, + DLRRCMessageTransferIEs__value_PR_RRCDeliveryStatusRequest +} DLRRCMessageTransferIEs__value_PR; +typedef enum ULRRCMessageTransferIEs__value_PR { + ULRRCMessageTransferIEs__value_PR_NOTHING, /* No components present */ + ULRRCMessageTransferIEs__value_PR_GNB_CU_UE_F1AP_ID, + ULRRCMessageTransferIEs__value_PR_GNB_DU_UE_F1AP_ID, + ULRRCMessageTransferIEs__value_PR_SRBID, + ULRRCMessageTransferIEs__value_PR_RRCContainer +} ULRRCMessageTransferIEs__value_PR; +typedef enum SystemInformationDeliveryCommandIEs__value_PR { + SystemInformationDeliveryCommandIEs__value_PR_NOTHING, /* No components present */ + SystemInformationDeliveryCommandIEs__value_PR_TransactionID, + SystemInformationDeliveryCommandIEs__value_PR_NRCGI, + SystemInformationDeliveryCommandIEs__value_PR_SItype_List, + SystemInformationDeliveryCommandIEs__value_PR_GNB_DU_UE_F1AP_ID +} SystemInformationDeliveryCommandIEs__value_PR; +typedef enum PagingIEs__value_PR { + PagingIEs__value_PR_NOTHING, /* No components present */ + PagingIEs__value_PR_UEIdentityIndexValue, + PagingIEs__value_PR_PagingIdentity, + PagingIEs__value_PR_PagingDRX, + PagingIEs__value_PR_PagingPriority, + PagingIEs__value_PR_PagingCell_list, + PagingIEs__value_PR_PagingOrigin +} PagingIEs__value_PR; +typedef enum NotifyIEs__value_PR { + NotifyIEs__value_PR_NOTHING, /* No components present */ + NotifyIEs__value_PR_GNB_CU_UE_F1AP_ID, + NotifyIEs__value_PR_GNB_DU_UE_F1AP_ID, + NotifyIEs__value_PR_DRB_Notify_List +} NotifyIEs__value_PR; +typedef enum PWSRestartIndicationIEs__value_PR { + PWSRestartIndicationIEs__value_PR_NOTHING, /* No components present */ + PWSRestartIndicationIEs__value_PR_TransactionID, + PWSRestartIndicationIEs__value_PR_NR_CGI_List_For_Restart_List +} PWSRestartIndicationIEs__value_PR; +typedef enum PWSFailureIndicationIEs__value_PR { + PWSFailureIndicationIEs__value_PR_NOTHING, /* No components present */ + PWSFailureIndicationIEs__value_PR_TransactionID, + PWSFailureIndicationIEs__value_PR_PWS_Failed_NR_CGI_List +} PWSFailureIndicationIEs__value_PR; +typedef enum GNBDUStatusIndicationIEs__value_PR { + GNBDUStatusIndicationIEs__value_PR_NOTHING, /* No components present */ + GNBDUStatusIndicationIEs__value_PR_TransactionID, + GNBDUStatusIndicationIEs__value_PR_GNBDUOverloadInformation +} GNBDUStatusIndicationIEs__value_PR; +typedef enum RRCDeliveryReportIEs__value_PR { + RRCDeliveryReportIEs__value_PR_NOTHING, /* No components present */ + RRCDeliveryReportIEs__value_PR_GNB_CU_UE_F1AP_ID, + RRCDeliveryReportIEs__value_PR_GNB_DU_UE_F1AP_ID, + RRCDeliveryReportIEs__value_PR_RRCDeliveryStatus, + RRCDeliveryReportIEs__value_PR_SRBID +} RRCDeliveryReportIEs__value_PR; + +/* ProtocolIE-Field */ +typedef struct F1AP_PDU_ExtIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct F1AP_PDU_ExtIEs__value { + F1AP_PDU_ExtIEs__value_PR present; + union F1AP_PDU_ExtIEs__value_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} F1AP_PDU_ExtIEs_t; +typedef struct ResetType_ExtIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct ResetType_ExtIEs__value { + ResetType_ExtIEs__value_PR present; + union ResetType_ExtIEs__value_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ResetType_ExtIEs_t; +typedef struct UE_associatedLogicalF1_ConnectionItemRes { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct UE_associatedLogicalF1_ConnectionItemRes__value { + UE_associatedLogicalF1_ConnectionItemRes__value_PR present; + union UE_associatedLogicalF1_ConnectionItemRes__value_u { + UE_associatedLogicalF1_ConnectionItem_t UE_associatedLogicalF1_ConnectionItem; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UE_associatedLogicalF1_ConnectionItemRes_t; +typedef struct UE_associatedLogicalF1_ConnectionItemResAck { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct UE_associatedLogicalF1_ConnectionItemResAck__value { + UE_associatedLogicalF1_ConnectionItemResAck__value_PR present; + union UE_associatedLogicalF1_ConnectionItemResAck__value_u { + UE_associatedLogicalF1_ConnectionItem_t UE_associatedLogicalF1_ConnectionItem; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UE_associatedLogicalF1_ConnectionItemResAck_t; +typedef struct GNB_DU_Served_Cells_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct GNB_DU_Served_Cells_ItemIEs__value { + GNB_DU_Served_Cells_ItemIEs__value_PR present; + union GNB_DU_Served_Cells_ItemIEs__value_u { + GNB_DU_Served_Cells_Item_t GNB_DU_Served_Cells_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_DU_Served_Cells_ItemIEs_t; +typedef struct Cells_to_be_Activated_List_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct Cells_to_be_Activated_List_ItemIEs__value { + Cells_to_be_Activated_List_ItemIEs__value_PR present; + union Cells_to_be_Activated_List_ItemIEs__value_u { + Cells_to_be_Activated_List_Item_t Cells_to_be_Activated_List_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_to_be_Activated_List_ItemIEs_t; +typedef struct Served_Cells_To_Add_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct Served_Cells_To_Add_ItemIEs__value { + Served_Cells_To_Add_ItemIEs__value_PR present; + union Served_Cells_To_Add_ItemIEs__value_u { + Served_Cells_To_Add_Item_t Served_Cells_To_Add_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Served_Cells_To_Add_ItemIEs_t; +typedef struct Served_Cells_To_Modify_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct Served_Cells_To_Modify_ItemIEs__value { + Served_Cells_To_Modify_ItemIEs__value_PR present; + union Served_Cells_To_Modify_ItemIEs__value_u { + Served_Cells_To_Modify_Item_t Served_Cells_To_Modify_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Served_Cells_To_Modify_ItemIEs_t; +typedef struct Served_Cells_To_Delete_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct Served_Cells_To_Delete_ItemIEs__value { + Served_Cells_To_Delete_ItemIEs__value_PR present; + union Served_Cells_To_Delete_ItemIEs__value_u { + Served_Cells_To_Delete_Item_t Served_Cells_To_Delete_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Served_Cells_To_Delete_ItemIEs_t; +typedef struct Cells_Status_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct Cells_Status_ItemIEs__value { + Cells_Status_ItemIEs__value_PR present; + union Cells_Status_ItemIEs__value_u { + Cells_Status_Item_t Cells_Status_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_Status_ItemIEs_t; +typedef struct Dedicated_SIDelivery_NeededUE_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct Dedicated_SIDelivery_NeededUE_ItemIEs__value { + Dedicated_SIDelivery_NeededUE_ItemIEs__value_PR present; + union Dedicated_SIDelivery_NeededUE_ItemIEs__value_u { + Dedicated_SIDelivery_NeededUE_Item_t Dedicated_SIDelivery_NeededUE_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Dedicated_SIDelivery_NeededUE_ItemIEs_t; +typedef struct Cells_to_be_Deactivated_List_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct Cells_to_be_Deactivated_List_ItemIEs__value { + Cells_to_be_Deactivated_List_ItemIEs__value_PR present; + union Cells_to_be_Deactivated_List_ItemIEs__value_u { + Cells_to_be_Deactivated_List_Item_t Cells_to_be_Deactivated_List_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_to_be_Deactivated_List_ItemIEs_t; +typedef struct GNB_CU_TNL_Association_To_Add_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct GNB_CU_TNL_Association_To_Add_ItemIEs__value { + GNB_CU_TNL_Association_To_Add_ItemIEs__value_PR present; + union GNB_CU_TNL_Association_To_Add_ItemIEs__value_u { + GNB_CU_TNL_Association_To_Add_Item_t GNB_CU_TNL_Association_To_Add_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_CU_TNL_Association_To_Add_ItemIEs_t; +typedef struct GNB_CU_TNL_Association_To_Remove_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct GNB_CU_TNL_Association_To_Remove_ItemIEs__value { + GNB_CU_TNL_Association_To_Remove_ItemIEs__value_PR present; + union GNB_CU_TNL_Association_To_Remove_ItemIEs__value_u { + GNB_CU_TNL_Association_To_Remove_Item_t GNB_CU_TNL_Association_To_Remove_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_CU_TNL_Association_To_Remove_ItemIEs_t; +typedef struct GNB_CU_TNL_Association_To_Update_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct GNB_CU_TNL_Association_To_Update_ItemIEs__value { + GNB_CU_TNL_Association_To_Update_ItemIEs__value_PR present; + union GNB_CU_TNL_Association_To_Update_ItemIEs__value_u { + GNB_CU_TNL_Association_To_Update_Item_t GNB_CU_TNL_Association_To_Update_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_CU_TNL_Association_To_Update_ItemIEs_t; +typedef struct Cells_to_be_Barred_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct Cells_to_be_Barred_ItemIEs__value { + Cells_to_be_Barred_ItemIEs__value_PR present; + union Cells_to_be_Barred_ItemIEs__value_u { + Cells_to_be_Barred_Item_t Cells_to_be_Barred_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_to_be_Barred_ItemIEs_t; +typedef struct Protected_EUTRA_Resources_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct Protected_EUTRA_Resources_ItemIEs__value { + Protected_EUTRA_Resources_ItemIEs__value_PR present; + union Protected_EUTRA_Resources_ItemIEs__value_u { + Protected_EUTRA_Resources_Item_t Protected_EUTRA_Resources_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Protected_EUTRA_Resources_ItemIEs_t; +typedef struct Cells_Failed_to_be_Activated_List_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct Cells_Failed_to_be_Activated_List_ItemIEs__value { + Cells_Failed_to_be_Activated_List_ItemIEs__value_PR present; + union Cells_Failed_to_be_Activated_List_ItemIEs__value_u { + Cells_Failed_to_be_Activated_List_Item_t Cells_Failed_to_be_Activated_List_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_Failed_to_be_Activated_List_ItemIEs_t; +typedef struct GNB_CU_TNL_Association_Setup_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct GNB_CU_TNL_Association_Setup_ItemIEs__value { + GNB_CU_TNL_Association_Setup_ItemIEs__value_PR present; + union GNB_CU_TNL_Association_Setup_ItemIEs__value_u { + GNB_CU_TNL_Association_Setup_Item_t GNB_CU_TNL_Association_Setup_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_CU_TNL_Association_Setup_ItemIEs_t; +typedef struct GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs__value { + GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs__value_PR present; + union GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs__value_u { + GNB_CU_TNL_Association_Failed_To_Setup_Item_t GNB_CU_TNL_Association_Failed_To_Setup_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_t; +typedef struct Candidate_SpCell_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct Candidate_SpCell_ItemIEs__value { + Candidate_SpCell_ItemIEs__value_PR present; + union Candidate_SpCell_ItemIEs__value_u { + Candidate_SpCell_Item_t Candidate_SpCell_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Candidate_SpCell_ItemIEs_t; +typedef struct SCell_ToBeSetup_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct SCell_ToBeSetup_ItemIEs__value { + SCell_ToBeSetup_ItemIEs__value_PR present; + union SCell_ToBeSetup_ItemIEs__value_u { + SCell_ToBeSetup_Item_t SCell_ToBeSetup_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SCell_ToBeSetup_ItemIEs_t; +typedef struct SRBs_ToBeSetup_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct SRBs_ToBeSetup_ItemIEs__value { + SRBs_ToBeSetup_ItemIEs__value_PR present; + union SRBs_ToBeSetup_ItemIEs__value_u { + SRBs_ToBeSetup_Item_t SRBs_ToBeSetup_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_ToBeSetup_ItemIEs_t; +typedef struct DRBs_ToBeSetup_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct DRBs_ToBeSetup_ItemIEs__value { + DRBs_ToBeSetup_ItemIEs__value_PR present; + union DRBs_ToBeSetup_ItemIEs__value_u { + DRBs_ToBeSetup_Item_t DRBs_ToBeSetup_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_ToBeSetup_ItemIEs_t; +typedef struct DRBs_Setup_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct DRBs_Setup_ItemIEs__value { + DRBs_Setup_ItemIEs__value_PR present; + union DRBs_Setup_ItemIEs__value_u { + DRBs_Setup_Item_t DRBs_Setup_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_Setup_ItemIEs_t; +typedef struct SRBs_FailedToBeSetup_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct SRBs_FailedToBeSetup_ItemIEs__value { + SRBs_FailedToBeSetup_ItemIEs__value_PR present; + union SRBs_FailedToBeSetup_ItemIEs__value_u { + SRBs_FailedToBeSetup_Item_t SRBs_FailedToBeSetup_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_FailedToBeSetup_ItemIEs_t; +typedef struct DRBs_FailedToBeSetup_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct DRBs_FailedToBeSetup_ItemIEs__value { + DRBs_FailedToBeSetup_ItemIEs__value_PR present; + union DRBs_FailedToBeSetup_ItemIEs__value_u { + DRBs_FailedToBeSetup_Item_t DRBs_FailedToBeSetup_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_FailedToBeSetup_ItemIEs_t; +typedef struct SCell_FailedtoSetup_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct SCell_FailedtoSetup_ItemIEs__value { + SCell_FailedtoSetup_ItemIEs__value_PR present; + union SCell_FailedtoSetup_ItemIEs__value_u { + SCell_FailedtoSetup_Item_t SCell_FailedtoSetup_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SCell_FailedtoSetup_ItemIEs_t; +typedef struct SRBs_Setup_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct SRBs_Setup_ItemIEs__value { + SRBs_Setup_ItemIEs__value_PR present; + union SRBs_Setup_ItemIEs__value_u { + SRBs_Setup_Item_t SRBs_Setup_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_Setup_ItemIEs_t; +typedef struct Potential_SpCell_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct Potential_SpCell_ItemIEs__value { + Potential_SpCell_ItemIEs__value_PR present; + union Potential_SpCell_ItemIEs__value_u { + Potential_SpCell_Item_t Potential_SpCell_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Potential_SpCell_ItemIEs_t; +typedef struct SCell_ToBeSetupMod_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct SCell_ToBeSetupMod_ItemIEs__value { + SCell_ToBeSetupMod_ItemIEs__value_PR present; + union SCell_ToBeSetupMod_ItemIEs__value_u { + SCell_ToBeSetupMod_Item_t SCell_ToBeSetupMod_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SCell_ToBeSetupMod_ItemIEs_t; +typedef struct SCell_ToBeRemoved_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct SCell_ToBeRemoved_ItemIEs__value { + SCell_ToBeRemoved_ItemIEs__value_PR present; + union SCell_ToBeRemoved_ItemIEs__value_u { + SCell_ToBeRemoved_Item_t SCell_ToBeRemoved_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SCell_ToBeRemoved_ItemIEs_t; +typedef struct SRBs_ToBeSetupMod_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct SRBs_ToBeSetupMod_ItemIEs__value { + SRBs_ToBeSetupMod_ItemIEs__value_PR present; + union SRBs_ToBeSetupMod_ItemIEs__value_u { + SRBs_ToBeSetupMod_Item_t SRBs_ToBeSetupMod_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_ToBeSetupMod_ItemIEs_t; +typedef struct DRBs_ToBeSetupMod_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct DRBs_ToBeSetupMod_ItemIEs__value { + DRBs_ToBeSetupMod_ItemIEs__value_PR present; + union DRBs_ToBeSetupMod_ItemIEs__value_u { + DRBs_ToBeSetupMod_Item_t DRBs_ToBeSetupMod_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_ToBeSetupMod_ItemIEs_t; +typedef struct DRBs_ToBeModified_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct DRBs_ToBeModified_ItemIEs__value { + DRBs_ToBeModified_ItemIEs__value_PR present; + union DRBs_ToBeModified_ItemIEs__value_u { + DRBs_ToBeModified_Item_t DRBs_ToBeModified_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_ToBeModified_ItemIEs_t; +typedef struct SRBs_ToBeReleased_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct SRBs_ToBeReleased_ItemIEs__value { + SRBs_ToBeReleased_ItemIEs__value_PR present; + union SRBs_ToBeReleased_ItemIEs__value_u { + SRBs_ToBeReleased_Item_t SRBs_ToBeReleased_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_ToBeReleased_ItemIEs_t; +typedef struct DRBs_ToBeReleased_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct DRBs_ToBeReleased_ItemIEs__value { + DRBs_ToBeReleased_ItemIEs__value_PR present; + union DRBs_ToBeReleased_ItemIEs__value_u { + DRBs_ToBeReleased_Item_t DRBs_ToBeReleased_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_ToBeReleased_ItemIEs_t; +typedef struct DRBs_SetupMod_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct DRBs_SetupMod_ItemIEs__value { + DRBs_SetupMod_ItemIEs__value_PR present; + union DRBs_SetupMod_ItemIEs__value_u { + DRBs_SetupMod_Item_t DRBs_SetupMod_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_SetupMod_ItemIEs_t; +typedef struct DRBs_Modified_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct DRBs_Modified_ItemIEs__value { + DRBs_Modified_ItemIEs__value_PR present; + union DRBs_Modified_ItemIEs__value_u { + DRBs_Modified_Item_t DRBs_Modified_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_Modified_ItemIEs_t; +typedef struct SRBs_SetupMod_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct SRBs_SetupMod_ItemIEs__value { + SRBs_SetupMod_ItemIEs__value_PR present; + union SRBs_SetupMod_ItemIEs__value_u { + SRBs_SetupMod_Item_t SRBs_SetupMod_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_SetupMod_ItemIEs_t; +typedef struct SRBs_Modified_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct SRBs_Modified_ItemIEs__value { + SRBs_Modified_ItemIEs__value_PR present; + union SRBs_Modified_ItemIEs__value_u { + SRBs_Modified_Item_t SRBs_Modified_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_Modified_ItemIEs_t; +typedef struct DRBs_FailedToBeModified_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct DRBs_FailedToBeModified_ItemIEs__value { + DRBs_FailedToBeModified_ItemIEs__value_PR present; + union DRBs_FailedToBeModified_ItemIEs__value_u { + DRBs_FailedToBeModified_Item_t DRBs_FailedToBeModified_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_FailedToBeModified_ItemIEs_t; +typedef struct SRBs_FailedToBeSetupMod_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct SRBs_FailedToBeSetupMod_ItemIEs__value { + SRBs_FailedToBeSetupMod_ItemIEs__value_PR present; + union SRBs_FailedToBeSetupMod_ItemIEs__value_u { + SRBs_FailedToBeSetupMod_Item_t SRBs_FailedToBeSetupMod_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_FailedToBeSetupMod_ItemIEs_t; +typedef struct DRBs_FailedToBeSetupMod_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct DRBs_FailedToBeSetupMod_ItemIEs__value { + DRBs_FailedToBeSetupMod_ItemIEs__value_PR present; + union DRBs_FailedToBeSetupMod_ItemIEs__value_u { + DRBs_FailedToBeSetupMod_Item_t DRBs_FailedToBeSetupMod_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_FailedToBeSetupMod_ItemIEs_t; +typedef struct SCell_FailedtoSetupMod_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct SCell_FailedtoSetupMod_ItemIEs__value { + SCell_FailedtoSetupMod_ItemIEs__value_PR present; + union SCell_FailedtoSetupMod_ItemIEs__value_u { + SCell_FailedtoSetupMod_Item_t SCell_FailedtoSetupMod_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SCell_FailedtoSetupMod_ItemIEs_t; +typedef struct Associated_SCell_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct Associated_SCell_ItemIEs__value { + Associated_SCell_ItemIEs__value_PR present; + union Associated_SCell_ItemIEs__value_u { + Associated_SCell_Item_t Associated_SCell_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Associated_SCell_ItemIEs_t; +typedef struct DRBs_Required_ToBeModified_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct DRBs_Required_ToBeModified_ItemIEs__value { + DRBs_Required_ToBeModified_ItemIEs__value_PR present; + union DRBs_Required_ToBeModified_ItemIEs__value_u { + DRBs_Required_ToBeModified_Item_t DRBs_Required_ToBeModified_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_Required_ToBeModified_ItemIEs_t; +typedef struct DRBs_Required_ToBeReleased_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct DRBs_Required_ToBeReleased_ItemIEs__value { + DRBs_Required_ToBeReleased_ItemIEs__value_PR present; + union DRBs_Required_ToBeReleased_ItemIEs__value_u { + DRBs_Required_ToBeReleased_Item_t DRBs_Required_ToBeReleased_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_Required_ToBeReleased_ItemIEs_t; +typedef struct SRBs_Required_ToBeReleased_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct SRBs_Required_ToBeReleased_ItemIEs__value { + SRBs_Required_ToBeReleased_ItemIEs__value_PR present; + union SRBs_Required_ToBeReleased_ItemIEs__value_u { + SRBs_Required_ToBeReleased_Item_t SRBs_Required_ToBeReleased_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_Required_ToBeReleased_ItemIEs_t; +typedef struct DRBs_ModifiedConf_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct DRBs_ModifiedConf_ItemIEs__value { + DRBs_ModifiedConf_ItemIEs__value_PR present; + union DRBs_ModifiedConf_ItemIEs__value_u { + DRBs_ModifiedConf_Item_t DRBs_ModifiedConf_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRBs_ModifiedConf_ItemIEs_t; +typedef struct Cells_To_Be_Broadcast_List_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct Cells_To_Be_Broadcast_List_ItemIEs__value { + Cells_To_Be_Broadcast_List_ItemIEs__value_PR present; + union Cells_To_Be_Broadcast_List_ItemIEs__value_u { + Cells_To_Be_Broadcast_Item_t Cells_To_Be_Broadcast_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_To_Be_Broadcast_List_ItemIEs_t; +typedef struct Cells_Broadcast_Completed_List_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct Cells_Broadcast_Completed_List_ItemIEs__value { + Cells_Broadcast_Completed_List_ItemIEs__value_PR present; + union Cells_Broadcast_Completed_List_ItemIEs__value_u { + Cells_Broadcast_Completed_Item_t Cells_Broadcast_Completed_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_Broadcast_Completed_List_ItemIEs_t; +typedef struct Broadcast_To_Be_Cancelled_List_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct Broadcast_To_Be_Cancelled_List_ItemIEs__value { + Broadcast_To_Be_Cancelled_List_ItemIEs__value_PR present; + union Broadcast_To_Be_Cancelled_List_ItemIEs__value_u { + Broadcast_To_Be_Cancelled_Item_t Broadcast_To_Be_Cancelled_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Broadcast_To_Be_Cancelled_List_ItemIEs_t; +typedef struct Cells_Broadcast_Cancelled_List_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct Cells_Broadcast_Cancelled_List_ItemIEs__value { + Cells_Broadcast_Cancelled_List_ItemIEs__value_PR present; + union Cells_Broadcast_Cancelled_List_ItemIEs__value_u { + Cells_Broadcast_Cancelled_Item_t Cells_Broadcast_Cancelled_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cells_Broadcast_Cancelled_List_ItemIEs_t; +typedef struct DRB_Activity_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct DRB_Activity_ItemIEs__value { + DRB_Activity_ItemIEs__value_PR present; + union DRB_Activity_ItemIEs__value_u { + DRB_Activity_Item_t DRB_Activity_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRB_Activity_ItemIEs_t; +typedef struct PagingCell_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct PagingCell_ItemIEs__value { + PagingCell_ItemIEs__value_PR present; + union PagingCell_ItemIEs__value_u { + PagingCell_Item_t PagingCell_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PagingCell_ItemIEs_t; +typedef struct DRB_Notify_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct DRB_Notify_ItemIEs__value { + DRB_Notify_ItemIEs__value_PR present; + union DRB_Notify_ItemIEs__value_u { + DRB_Notify_Item_t DRB_Notify_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRB_Notify_ItemIEs_t; +typedef struct NR_CGI_List_For_Restart_List_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct NR_CGI_List_For_Restart_List_ItemIEs__value { + NR_CGI_List_For_Restart_List_ItemIEs__value_PR present; + union NR_CGI_List_For_Restart_List_ItemIEs__value_u { + NR_CGI_List_For_Restart_Item_t NR_CGI_List_For_Restart_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NR_CGI_List_For_Restart_List_ItemIEs_t; +typedef struct PWS_Failed_NR_CGI_List_ItemIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct PWS_Failed_NR_CGI_List_ItemIEs__value { + PWS_Failed_NR_CGI_List_ItemIEs__value_PR present; + union PWS_Failed_NR_CGI_List_ItemIEs__value_u { + PWS_Failed_NR_CGI_Item_t PWS_Failed_NR_CGI_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PWS_Failed_NR_CGI_List_ItemIEs_t; +typedef struct Cause_ExtIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct Cause_ExtIEs__value { + Cause_ExtIEs__value_PR present; + union Cause_ExtIEs__value_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Cause_ExtIEs_t; +typedef struct CNUEPagingIdentity_ExtIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct CNUEPagingIdentity_ExtIEs__value { + CNUEPagingIdentity_ExtIEs__value_PR present; + union CNUEPagingIdentity_ExtIEs__value_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CNUEPagingIdentity_ExtIEs_t; +typedef struct CP_TransportLayerAddress_ExtIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct CP_TransportLayerAddress_ExtIEs__value { + CP_TransportLayerAddress_ExtIEs__value_PR present; + union CP_TransportLayerAddress_ExtIEs__value_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CP_TransportLayerAddress_ExtIEs_t; +typedef struct EUTRA_Mode_Info_ExtIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct EUTRA_Mode_Info_ExtIEs__value { + EUTRA_Mode_Info_ExtIEs__value_PR present; + union EUTRA_Mode_Info_ExtIEs__value_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_Mode_Info_ExtIEs_t; +typedef struct NR_Mode_Info_ExtIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct NR_Mode_Info_ExtIEs__value { + NR_Mode_Info_ExtIEs__value_PR present; + union NR_Mode_Info_ExtIEs__value_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NR_Mode_Info_ExtIEs_t; +typedef struct PagingIdentity_ExtIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct PagingIdentity_ExtIEs__value { + PagingIdentity_ExtIEs__value_PR present; + union PagingIdentity_ExtIEs__value_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PagingIdentity_ExtIEs_t; +typedef struct QoS_Characteristics_ExtIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct QoS_Characteristics_ExtIEs__value { + QoS_Characteristics_ExtIEs__value_PR present; + union QoS_Characteristics_ExtIEs__value_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} QoS_Characteristics_ExtIEs_t; +typedef struct QoSInformation_ExtIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct QoSInformation_ExtIEs__value { + QoSInformation_ExtIEs__value_PR present; + union QoSInformation_ExtIEs__value_u { + DRB_Information_t DRB_Information; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} QoSInformation_ExtIEs_t; +typedef struct RAT_FrequencyPriorityInformation_ExtIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RAT_FrequencyPriorityInformation_ExtIEs__value { + RAT_FrequencyPriorityInformation_ExtIEs__value_PR present; + union RAT_FrequencyPriorityInformation_ExtIEs__value_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RAT_FrequencyPriorityInformation_ExtIEs_t; +typedef struct UEIdentityIndexValueChoice_ExtIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct UEIdentityIndexValueChoice_ExtIEs__value { + UEIdentityIndexValueChoice_ExtIEs__value_PR present; + union UEIdentityIndexValueChoice_ExtIEs__value_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEIdentityIndexValueChoice_ExtIEs_t; +typedef struct UPTransportLayerInformation_ExtIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct UPTransportLayerInformation_ExtIEs__value { + UPTransportLayerInformation_ExtIEs__value_PR present; + union UPTransportLayerInformation_ExtIEs__value_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UPTransportLayerInformation_ExtIEs_t; +typedef struct ResetIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct ResetIEs__value { + ResetIEs__value_PR present; + union ResetIEs__value_u { + TransactionID_t TransactionID; + Cause_t Cause; + ResetType_t ResetType; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ResetIEs_t; +typedef struct ResetAcknowledgeIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct ResetAcknowledgeIEs__value { + ResetAcknowledgeIEs__value_PR present; + union ResetAcknowledgeIEs__value_u { + TransactionID_t TransactionID; + UE_associatedLogicalF1_ConnectionListResAck_t UE_associatedLogicalF1_ConnectionListResAck; + CriticalityDiagnostics_t CriticalityDiagnostics; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ResetAcknowledgeIEs_t; +typedef struct ErrorIndicationIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct ErrorIndicationIEs__value { + ErrorIndicationIEs__value_PR present; + union ErrorIndicationIEs__value_u { + TransactionID_t TransactionID; + GNB_CU_UE_F1AP_ID_t GNB_CU_UE_F1AP_ID; + GNB_DU_UE_F1AP_ID_t GNB_DU_UE_F1AP_ID; + Cause_t Cause; + CriticalityDiagnostics_t CriticalityDiagnostics; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ErrorIndicationIEs_t; +typedef struct F1SetupRequestIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct F1SetupRequestIEs__value { + F1SetupRequestIEs__value_PR present; + union F1SetupRequestIEs__value_u { + TransactionID_t TransactionID; + GNB_DU_ID_t GNB_DU_ID; + GNB_DU_Name_t GNB_DU_Name; + GNB_DU_Served_Cells_List_t GNB_DU_Served_Cells_List; + RRC_Version_t RRC_Version; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} F1SetupRequestIEs_t; +typedef struct F1SetupResponseIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct F1SetupResponseIEs__value { + F1SetupResponseIEs__value_PR present; + union F1SetupResponseIEs__value_u { + TransactionID_t TransactionID; + GNB_CU_Name_t GNB_CU_Name; + Cells_to_be_Activated_List_t Cells_to_be_Activated_List; + RRC_Version_t RRC_Version; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} F1SetupResponseIEs_t; +typedef struct F1SetupFailureIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct F1SetupFailureIEs__value { + F1SetupFailureIEs__value_PR present; + union F1SetupFailureIEs__value_u { + TransactionID_t TransactionID; + Cause_t Cause; + TimeToWait_t TimeToWait; + CriticalityDiagnostics_t CriticalityDiagnostics; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} F1SetupFailureIEs_t; +typedef struct GNBDUConfigurationUpdateIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct GNBDUConfigurationUpdateIEs__value { + GNBDUConfigurationUpdateIEs__value_PR present; + union GNBDUConfigurationUpdateIEs__value_u { + TransactionID_t TransactionID; + Served_Cells_To_Add_List_t Served_Cells_To_Add_List; + Served_Cells_To_Modify_List_t Served_Cells_To_Modify_List; + Served_Cells_To_Delete_List_t Served_Cells_To_Delete_List; + Cells_Status_List_t Cells_Status_List; + Dedicated_SIDelivery_NeededUE_List_t Dedicated_SIDelivery_NeededUE_List; + GNB_DU_ID_t GNB_DU_ID; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNBDUConfigurationUpdateIEs_t; +typedef struct GNBDUConfigurationUpdateAcknowledgeIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct GNBDUConfigurationUpdateAcknowledgeIEs__value { + GNBDUConfigurationUpdateAcknowledgeIEs__value_PR present; + union GNBDUConfigurationUpdateAcknowledgeIEs__value_u { + TransactionID_t TransactionID; + Cells_to_be_Activated_List_t Cells_to_be_Activated_List; + CriticalityDiagnostics_t CriticalityDiagnostics; + Cells_to_be_Deactivated_List_t Cells_to_be_Deactivated_List; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNBDUConfigurationUpdateAcknowledgeIEs_t; +typedef struct GNBDUConfigurationUpdateFailureIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct GNBDUConfigurationUpdateFailureIEs__value { + GNBDUConfigurationUpdateFailureIEs__value_PR present; + union GNBDUConfigurationUpdateFailureIEs__value_u { + TransactionID_t TransactionID; + Cause_t Cause; + TimeToWait_t TimeToWait; + CriticalityDiagnostics_t CriticalityDiagnostics; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNBDUConfigurationUpdateFailureIEs_t; +typedef struct GNBCUConfigurationUpdateIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct GNBCUConfigurationUpdateIEs__value { + GNBCUConfigurationUpdateIEs__value_PR present; + union GNBCUConfigurationUpdateIEs__value_u { + TransactionID_t TransactionID; + Cells_to_be_Activated_List_t Cells_to_be_Activated_List; + Cells_to_be_Deactivated_List_t Cells_to_be_Deactivated_List; + GNB_CU_TNL_Association_To_Add_List_t GNB_CU_TNL_Association_To_Add_List; + GNB_CU_TNL_Association_To_Remove_List_t GNB_CU_TNL_Association_To_Remove_List; + GNB_CU_TNL_Association_To_Update_List_t GNB_CU_TNL_Association_To_Update_List; + Cells_to_be_Barred_List_t Cells_to_be_Barred_List; + Protected_EUTRA_Resources_List_t Protected_EUTRA_Resources_List; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNBCUConfigurationUpdateIEs_t; +typedef struct GNBCUConfigurationUpdateAcknowledgeIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct GNBCUConfigurationUpdateAcknowledgeIEs__value { + GNBCUConfigurationUpdateAcknowledgeIEs__value_PR present; + union GNBCUConfigurationUpdateAcknowledgeIEs__value_u { + TransactionID_t TransactionID; + Cells_Failed_to_be_Activated_List_t Cells_Failed_to_be_Activated_List; + CriticalityDiagnostics_t CriticalityDiagnostics; + GNB_CU_TNL_Association_Setup_List_t GNB_CU_TNL_Association_Setup_List; + GNB_CU_TNL_Association_Failed_To_Setup_List_t GNB_CU_TNL_Association_Failed_To_Setup_List; + Dedicated_SIDelivery_NeededUE_List_t Dedicated_SIDelivery_NeededUE_List; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNBCUConfigurationUpdateAcknowledgeIEs_t; +typedef struct GNBCUConfigurationUpdateFailureIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct GNBCUConfigurationUpdateFailureIEs__value { + GNBCUConfigurationUpdateFailureIEs__value_PR present; + union GNBCUConfigurationUpdateFailureIEs__value_u { + TransactionID_t TransactionID; + Cause_t Cause; + TimeToWait_t TimeToWait; + CriticalityDiagnostics_t CriticalityDiagnostics; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNBCUConfigurationUpdateFailureIEs_t; +typedef struct GNBDUResourceCoordinationRequest_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct GNBDUResourceCoordinationRequest_IEs__value { + GNBDUResourceCoordinationRequest_IEs__value_PR present; + union GNBDUResourceCoordinationRequest_IEs__value_u { + TransactionID_t TransactionID; + RequestType_t RequestType; + EUTRA_NR_CellResourceCoordinationReq_Container_t EUTRA_NR_CellResourceCoordinationReq_Container; + IgnoreResourceCoordinationContainer_t IgnoreResourceCoordinationContainer; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNBDUResourceCoordinationRequest_IEs_t; +typedef struct GNBDUResourceCoordinationResponse_IEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct GNBDUResourceCoordinationResponse_IEs__value { + GNBDUResourceCoordinationResponse_IEs__value_PR present; + union GNBDUResourceCoordinationResponse_IEs__value_u { + TransactionID_t TransactionID; + EUTRA_NR_CellResourceCoordinationReqAck_Container_t EUTRA_NR_CellResourceCoordinationReqAck_Container; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNBDUResourceCoordinationResponse_IEs_t; +typedef struct UEContextSetupRequestIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct UEContextSetupRequestIEs__value { + UEContextSetupRequestIEs__value_PR present; + union UEContextSetupRequestIEs__value_u { + GNB_CU_UE_F1AP_ID_t GNB_CU_UE_F1AP_ID; + GNB_DU_UE_F1AP_ID_t GNB_DU_UE_F1AP_ID; + NRCGI_t NRCGI; + ServCellIndex_t ServCellIndex; + CellULConfigured_t CellULConfigured; + CUtoDURRCInformation_t CUtoDURRCInformation; + Candidate_SpCell_List_t Candidate_SpCell_List; + DRXCycle_t DRXCycle; + ResourceCoordinationTransferContainer_t ResourceCoordinationTransferContainer; + SCell_ToBeSetup_List_t SCell_ToBeSetup_List; + SRBs_ToBeSetup_List_t SRBs_ToBeSetup_List; + DRBs_ToBeSetup_List_t DRBs_ToBeSetup_List; + InactivityMonitoringRequest_t InactivityMonitoringRequest; + RAT_FrequencyPriorityInformation_t RAT_FrequencyPriorityInformation; + RRCContainer_t RRCContainer; + MaskedIMEISV_t MaskedIMEISV; + PLMN_Identity_t PLMN_Identity; + BitRate_t BitRate; + RRCDeliveryStatusRequest_t RRCDeliveryStatusRequest; + ResourceCoordinationTransferInformation_t ResourceCoordinationTransferInformation; + ServingCellMO_t ServingCellMO; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEContextSetupRequestIEs_t; +typedef struct UEContextSetupResponseIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct UEContextSetupResponseIEs__value { + UEContextSetupResponseIEs__value_PR present; + union UEContextSetupResponseIEs__value_u { + GNB_CU_UE_F1AP_ID_t GNB_CU_UE_F1AP_ID; + GNB_DU_UE_F1AP_ID_t GNB_DU_UE_F1AP_ID; + DUtoCURRCInformation_t DUtoCURRCInformation; + C_RNTI_t C_RNTI; + ResourceCoordinationTransferContainer_t ResourceCoordinationTransferContainer; + FullConfiguration_t FullConfiguration; + DRBs_Setup_List_t DRBs_Setup_List; + SRBs_FailedToBeSetup_List_t SRBs_FailedToBeSetup_List; + DRBs_FailedToBeSetup_List_t DRBs_FailedToBeSetup_List; + SCell_FailedtoSetup_List_t SCell_FailedtoSetup_List; + InactivityMonitoringResponse_t InactivityMonitoringResponse; + CriticalityDiagnostics_t CriticalityDiagnostics; + SRBs_Setup_List_t SRBs_Setup_List; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEContextSetupResponseIEs_t; +typedef struct UEContextSetupFailureIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct UEContextSetupFailureIEs__value { + UEContextSetupFailureIEs__value_PR present; + union UEContextSetupFailureIEs__value_u { + GNB_CU_UE_F1AP_ID_t GNB_CU_UE_F1AP_ID; + GNB_DU_UE_F1AP_ID_t GNB_DU_UE_F1AP_ID; + Cause_t Cause; + CriticalityDiagnostics_t CriticalityDiagnostics; + Potential_SpCell_List_t Potential_SpCell_List; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEContextSetupFailureIEs_t; +typedef struct UEContextReleaseRequestIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct UEContextReleaseRequestIEs__value { + UEContextReleaseRequestIEs__value_PR present; + union UEContextReleaseRequestIEs__value_u { + GNB_CU_UE_F1AP_ID_t GNB_CU_UE_F1AP_ID; + GNB_DU_UE_F1AP_ID_t GNB_DU_UE_F1AP_ID; + Cause_t Cause; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEContextReleaseRequestIEs_t; +typedef struct UEContextReleaseCommandIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct UEContextReleaseCommandIEs__value { + UEContextReleaseCommandIEs__value_PR present; + union UEContextReleaseCommandIEs__value_u { + GNB_CU_UE_F1AP_ID_t GNB_CU_UE_F1AP_ID; + GNB_DU_UE_F1AP_ID_t GNB_DU_UE_F1AP_ID; + Cause_t Cause; + RRCContainer_t RRCContainer; + SRBID_t SRBID; + ExecuteDuplication_t ExecuteDuplication; + RRCDeliveryStatusRequest_t RRCDeliveryStatusRequest; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEContextReleaseCommandIEs_t; +typedef struct UEContextReleaseCompleteIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct UEContextReleaseCompleteIEs__value { + UEContextReleaseCompleteIEs__value_PR present; + union UEContextReleaseCompleteIEs__value_u { + GNB_CU_UE_F1AP_ID_t GNB_CU_UE_F1AP_ID; + GNB_DU_UE_F1AP_ID_t GNB_DU_UE_F1AP_ID; + CriticalityDiagnostics_t CriticalityDiagnostics; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEContextReleaseCompleteIEs_t; +typedef struct UEContextModificationRequestIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct UEContextModificationRequestIEs__value { + UEContextModificationRequestIEs__value_PR present; + union UEContextModificationRequestIEs__value_u { + GNB_CU_UE_F1AP_ID_t GNB_CU_UE_F1AP_ID; + GNB_DU_UE_F1AP_ID_t GNB_DU_UE_F1AP_ID; + NRCGI_t NRCGI; + ServCellIndex_t ServCellIndex; + CellULConfigured_t CellULConfigured; + DRXCycle_t DRXCycle; + CUtoDURRCInformation_t CUtoDURRCInformation; + TransmissionActionIndicator_t TransmissionActionIndicator; + ResourceCoordinationTransferContainer_t ResourceCoordinationTransferContainer; + RRCReconfigurationCompleteIndicator_t RRCReconfigurationCompleteIndicator; + RRCContainer_t RRCContainer; + SCell_ToBeSetupMod_List_t SCell_ToBeSetupMod_List; + SCell_ToBeRemoved_List_t SCell_ToBeRemoved_List; + SRBs_ToBeSetupMod_List_t SRBs_ToBeSetupMod_List; + DRBs_ToBeSetupMod_List_t DRBs_ToBeSetupMod_List; + DRBs_ToBeModified_List_t DRBs_ToBeModified_List; + SRBs_ToBeReleased_List_t SRBs_ToBeReleased_List; + DRBs_ToBeReleased_List_t DRBs_ToBeReleased_List; + InactivityMonitoringRequest_t InactivityMonitoringRequest; + RAT_FrequencyPriorityInformation_t RAT_FrequencyPriorityInformation; + DRXConfigurationIndicator_t DRXConfigurationIndicator; + RLCFailureIndication_t RLCFailureIndication; + UplinkTxDirectCurrentListInformation_t UplinkTxDirectCurrentListInformation; + GNB_DUConfigurationQuery_t GNB_DUConfigurationQuery; + BitRate_t BitRate; + ExecuteDuplication_t ExecuteDuplication; + RRCDeliveryStatusRequest_t RRCDeliveryStatusRequest; + ResourceCoordinationTransferInformation_t ResourceCoordinationTransferInformation; + ServingCellMO_t ServingCellMO; + NeedforGap_t NeedforGap; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEContextModificationRequestIEs_t; +typedef struct UEContextModificationResponseIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct UEContextModificationResponseIEs__value { + UEContextModificationResponseIEs__value_PR present; + union UEContextModificationResponseIEs__value_u { + GNB_CU_UE_F1AP_ID_t GNB_CU_UE_F1AP_ID; + GNB_DU_UE_F1AP_ID_t GNB_DU_UE_F1AP_ID; + ResourceCoordinationTransferContainer_t ResourceCoordinationTransferContainer; + DUtoCURRCInformation_t DUtoCURRCInformation; + DRBs_SetupMod_List_t DRBs_SetupMod_List; + DRBs_Modified_List_t DRBs_Modified_List; + SRBs_FailedToBeSetupMod_List_t SRBs_FailedToBeSetupMod_List; + DRBs_FailedToBeSetupMod_List_t DRBs_FailedToBeSetupMod_List; + SCell_FailedtoSetupMod_List_t SCell_FailedtoSetupMod_List; + DRBs_FailedToBeModified_List_t DRBs_FailedToBeModified_List; + InactivityMonitoringResponse_t InactivityMonitoringResponse; + CriticalityDiagnostics_t CriticalityDiagnostics; + C_RNTI_t C_RNTI; + Associated_SCell_List_t Associated_SCell_List; + SRBs_SetupMod_List_t SRBs_SetupMod_List; + SRBs_Modified_List_t SRBs_Modified_List; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEContextModificationResponseIEs_t; +typedef struct UEContextModificationFailureIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct UEContextModificationFailureIEs__value { + UEContextModificationFailureIEs__value_PR present; + union UEContextModificationFailureIEs__value_u { + GNB_CU_UE_F1AP_ID_t GNB_CU_UE_F1AP_ID; + GNB_DU_UE_F1AP_ID_t GNB_DU_UE_F1AP_ID; + Cause_t Cause; + CriticalityDiagnostics_t CriticalityDiagnostics; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEContextModificationFailureIEs_t; +typedef struct UEContextModificationRequiredIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct UEContextModificationRequiredIEs__value { + UEContextModificationRequiredIEs__value_PR present; + union UEContextModificationRequiredIEs__value_u { + GNB_CU_UE_F1AP_ID_t GNB_CU_UE_F1AP_ID; + GNB_DU_UE_F1AP_ID_t GNB_DU_UE_F1AP_ID; + ResourceCoordinationTransferContainer_t ResourceCoordinationTransferContainer; + DUtoCURRCInformation_t DUtoCURRCInformation; + DRBs_Required_ToBeModified_List_t DRBs_Required_ToBeModified_List; + SRBs_Required_ToBeReleased_List_t SRBs_Required_ToBeReleased_List; + DRBs_Required_ToBeReleased_List_t DRBs_Required_ToBeReleased_List; + Cause_t Cause; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEContextModificationRequiredIEs_t; +typedef struct UEContextModificationConfirmIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct UEContextModificationConfirmIEs__value { + UEContextModificationConfirmIEs__value_PR present; + union UEContextModificationConfirmIEs__value_u { + GNB_CU_UE_F1AP_ID_t GNB_CU_UE_F1AP_ID; + GNB_DU_UE_F1AP_ID_t GNB_DU_UE_F1AP_ID; + ResourceCoordinationTransferContainer_t ResourceCoordinationTransferContainer; + DRBs_ModifiedConf_List_t DRBs_ModifiedConf_List; + RRCContainer_t RRCContainer; + CriticalityDiagnostics_t CriticalityDiagnostics; + ExecuteDuplication_t ExecuteDuplication; + ResourceCoordinationTransferInformation_t ResourceCoordinationTransferInformation; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEContextModificationConfirmIEs_t; +typedef struct UEContextModificationRefuseIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct UEContextModificationRefuseIEs__value { + UEContextModificationRefuseIEs__value_PR present; + union UEContextModificationRefuseIEs__value_u { + GNB_CU_UE_F1AP_ID_t GNB_CU_UE_F1AP_ID; + GNB_DU_UE_F1AP_ID_t GNB_DU_UE_F1AP_ID; + Cause_t Cause; + CriticalityDiagnostics_t CriticalityDiagnostics; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEContextModificationRefuseIEs_t; +typedef struct WriteReplaceWarningRequestIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct WriteReplaceWarningRequestIEs__value { + WriteReplaceWarningRequestIEs__value_PR present; + union WriteReplaceWarningRequestIEs__value_u { + TransactionID_t TransactionID; + PWSSystemInformation_t PWSSystemInformation; + RepetitionPeriod_t RepetitionPeriod; + NumberofBroadcastRequest_t NumberofBroadcastRequest; + Cells_To_Be_Broadcast_List_t Cells_To_Be_Broadcast_List; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} WriteReplaceWarningRequestIEs_t; +typedef struct WriteReplaceWarningResponseIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct WriteReplaceWarningResponseIEs__value { + WriteReplaceWarningResponseIEs__value_PR present; + union WriteReplaceWarningResponseIEs__value_u { + TransactionID_t TransactionID; + Cells_Broadcast_Completed_List_t Cells_Broadcast_Completed_List; + CriticalityDiagnostics_t CriticalityDiagnostics; + Dedicated_SIDelivery_NeededUE_List_t Dedicated_SIDelivery_NeededUE_List; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} WriteReplaceWarningResponseIEs_t; +typedef struct PWSCancelRequestIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct PWSCancelRequestIEs__value { + PWSCancelRequestIEs__value_PR present; + union PWSCancelRequestIEs__value_u { + TransactionID_t TransactionID; + NumberofBroadcastRequest_t NumberofBroadcastRequest; + Broadcast_To_Be_Cancelled_List_t Broadcast_To_Be_Cancelled_List; + Cancel_all_Warning_Messages_Indicator_t Cancel_all_Warning_Messages_Indicator; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PWSCancelRequestIEs_t; +typedef struct PWSCancelResponseIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct PWSCancelResponseIEs__value { + PWSCancelResponseIEs__value_PR present; + union PWSCancelResponseIEs__value_u { + TransactionID_t TransactionID; + Cells_Broadcast_Cancelled_List_t Cells_Broadcast_Cancelled_List; + CriticalityDiagnostics_t CriticalityDiagnostics; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PWSCancelResponseIEs_t; +typedef struct UEInactivityNotificationIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct UEInactivityNotificationIEs__value { + UEInactivityNotificationIEs__value_PR present; + union UEInactivityNotificationIEs__value_u { + GNB_CU_UE_F1AP_ID_t GNB_CU_UE_F1AP_ID; + GNB_DU_UE_F1AP_ID_t GNB_DU_UE_F1AP_ID; + DRB_Activity_List_t DRB_Activity_List; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEInactivityNotificationIEs_t; +typedef struct InitialULRRCMessageTransferIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct InitialULRRCMessageTransferIEs__value { + InitialULRRCMessageTransferIEs__value_PR present; + union InitialULRRCMessageTransferIEs__value_u { + GNB_DU_UE_F1AP_ID_t GNB_DU_UE_F1AP_ID; + NRCGI_t NRCGI; + C_RNTI_t C_RNTI; + RRCContainer_t RRCContainer; + DUtoCURRCContainer_t DUtoCURRCContainer; + SULAccessIndication_t SULAccessIndication; + TransactionID_t TransactionID; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} InitialULRRCMessageTransferIEs_t; +typedef struct DLRRCMessageTransferIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct DLRRCMessageTransferIEs__value { + DLRRCMessageTransferIEs__value_PR present; + union DLRRCMessageTransferIEs__value_u { + GNB_CU_UE_F1AP_ID_t GNB_CU_UE_F1AP_ID; + GNB_DU_UE_F1AP_ID_t GNB_DU_UE_F1AP_ID; + SRBID_t SRBID; + ExecuteDuplication_t ExecuteDuplication; + RRCContainer_t RRCContainer; + RAT_FrequencyPriorityInformation_t RAT_FrequencyPriorityInformation; + RRCDeliveryStatusRequest_t RRCDeliveryStatusRequest; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DLRRCMessageTransferIEs_t; +typedef struct ULRRCMessageTransferIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct ULRRCMessageTransferIEs__value { + ULRRCMessageTransferIEs__value_PR present; + union ULRRCMessageTransferIEs__value_u { + GNB_CU_UE_F1AP_ID_t GNB_CU_UE_F1AP_ID; + GNB_DU_UE_F1AP_ID_t GNB_DU_UE_F1AP_ID; + SRBID_t SRBID; + RRCContainer_t RRCContainer; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ULRRCMessageTransferIEs_t; +typedef struct SystemInformationDeliveryCommandIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct SystemInformationDeliveryCommandIEs__value { + SystemInformationDeliveryCommandIEs__value_PR present; + union SystemInformationDeliveryCommandIEs__value_u { + TransactionID_t TransactionID; + NRCGI_t NRCGI; + SItype_List_t SItype_List; + GNB_DU_UE_F1AP_ID_t GNB_DU_UE_F1AP_ID; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SystemInformationDeliveryCommandIEs_t; +typedef struct PagingIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct PagingIEs__value { + PagingIEs__value_PR present; + union PagingIEs__value_u { + UEIdentityIndexValue_t UEIdentityIndexValue; + PagingIdentity_t PagingIdentity; + PagingDRX_t PagingDRX; + PagingPriority_t PagingPriority; + PagingCell_list_t PagingCell_list; + PagingOrigin_t PagingOrigin; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PagingIEs_t; +typedef struct NotifyIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct NotifyIEs__value { + NotifyIEs__value_PR present; + union NotifyIEs__value_u { + GNB_CU_UE_F1AP_ID_t GNB_CU_UE_F1AP_ID; + GNB_DU_UE_F1AP_ID_t GNB_DU_UE_F1AP_ID; + DRB_Notify_List_t DRB_Notify_List; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NotifyIEs_t; +typedef struct PWSRestartIndicationIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct PWSRestartIndicationIEs__value { + PWSRestartIndicationIEs__value_PR present; + union PWSRestartIndicationIEs__value_u { + TransactionID_t TransactionID; + NR_CGI_List_For_Restart_List_t NR_CGI_List_For_Restart_List; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PWSRestartIndicationIEs_t; +typedef struct PWSFailureIndicationIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct PWSFailureIndicationIEs__value { + PWSFailureIndicationIEs__value_PR present; + union PWSFailureIndicationIEs__value_u { + TransactionID_t TransactionID; + PWS_Failed_NR_CGI_List_t PWS_Failed_NR_CGI_List; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PWSFailureIndicationIEs_t; +typedef struct GNBDUStatusIndicationIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct GNBDUStatusIndicationIEs__value { + GNBDUStatusIndicationIEs__value_PR present; + union GNBDUStatusIndicationIEs__value_u { + TransactionID_t TransactionID; + GNBDUOverloadInformation_t GNBDUOverloadInformation; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GNBDUStatusIndicationIEs_t; +typedef struct RRCDeliveryReportIEs { + ProtocolIE_ID_t id; + Criticality_t criticality; + struct RRCDeliveryReportIEs__value { + RRCDeliveryReportIEs__value_PR present; + union RRCDeliveryReportIEs__value_u { + GNB_CU_UE_F1AP_ID_t GNB_CU_UE_F1AP_ID; + GNB_DU_UE_F1AP_ID_t GNB_DU_UE_F1AP_ID; + RRCDeliveryStatus_t RRCDeliveryStatus; + SRBID_t SRBID; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RRCDeliveryReportIEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_F1AP_PDU_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_F1AP_PDU_ExtIEs_specs_1; +extern asn_TYPE_member_t asn_MBR_F1AP_PDU_ExtIEs_1[3]; +extern asn_TYPE_descriptor_t asn_DEF_ResetType_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ResetType_ExtIEs_specs_5; +extern asn_TYPE_member_t asn_MBR_ResetType_ExtIEs_5[3]; +extern asn_TYPE_descriptor_t asn_DEF_UE_associatedLogicalF1_ConnectionItemRes; +extern asn_SEQUENCE_specifics_t asn_SPC_UE_associatedLogicalF1_ConnectionItemRes_specs_9; +extern asn_TYPE_member_t asn_MBR_UE_associatedLogicalF1_ConnectionItemRes_9[3]; +extern asn_TYPE_descriptor_t asn_DEF_UE_associatedLogicalF1_ConnectionItemResAck; +extern asn_SEQUENCE_specifics_t asn_SPC_UE_associatedLogicalF1_ConnectionItemResAck_specs_13; +extern asn_TYPE_member_t asn_MBR_UE_associatedLogicalF1_ConnectionItemResAck_13[3]; +extern asn_TYPE_descriptor_t asn_DEF_GNB_DU_Served_Cells_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_GNB_DU_Served_Cells_ItemIEs_specs_17; +extern asn_TYPE_member_t asn_MBR_GNB_DU_Served_Cells_ItemIEs_17[3]; +extern asn_TYPE_descriptor_t asn_DEF_Cells_to_be_Activated_List_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Cells_to_be_Activated_List_ItemIEs_specs_21; +extern asn_TYPE_member_t asn_MBR_Cells_to_be_Activated_List_ItemIEs_21[3]; +extern asn_TYPE_descriptor_t asn_DEF_Served_Cells_To_Add_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Served_Cells_To_Add_ItemIEs_specs_25; +extern asn_TYPE_member_t asn_MBR_Served_Cells_To_Add_ItemIEs_25[3]; +extern asn_TYPE_descriptor_t asn_DEF_Served_Cells_To_Modify_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Served_Cells_To_Modify_ItemIEs_specs_29; +extern asn_TYPE_member_t asn_MBR_Served_Cells_To_Modify_ItemIEs_29[3]; +extern asn_TYPE_descriptor_t asn_DEF_Served_Cells_To_Delete_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Served_Cells_To_Delete_ItemIEs_specs_33; +extern asn_TYPE_member_t asn_MBR_Served_Cells_To_Delete_ItemIEs_33[3]; +extern asn_TYPE_descriptor_t asn_DEF_Cells_Status_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Cells_Status_ItemIEs_specs_37; +extern asn_TYPE_member_t asn_MBR_Cells_Status_ItemIEs_37[3]; +extern asn_TYPE_descriptor_t asn_DEF_Dedicated_SIDelivery_NeededUE_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Dedicated_SIDelivery_NeededUE_ItemIEs_specs_41; +extern asn_TYPE_member_t asn_MBR_Dedicated_SIDelivery_NeededUE_ItemIEs_41[3]; +extern asn_TYPE_descriptor_t asn_DEF_Cells_to_be_Deactivated_List_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Cells_to_be_Deactivated_List_ItemIEs_specs_45; +extern asn_TYPE_member_t asn_MBR_Cells_to_be_Deactivated_List_ItemIEs_45[3]; +extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_To_Add_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_GNB_CU_TNL_Association_To_Add_ItemIEs_specs_49; +extern asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_To_Add_ItemIEs_49[3]; +extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_To_Remove_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_GNB_CU_TNL_Association_To_Remove_ItemIEs_specs_53; +extern asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_To_Remove_ItemIEs_53[3]; +extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_To_Update_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_GNB_CU_TNL_Association_To_Update_ItemIEs_specs_57; +extern asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_To_Update_ItemIEs_57[3]; +extern asn_TYPE_descriptor_t asn_DEF_Cells_to_be_Barred_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Cells_to_be_Barred_ItemIEs_specs_61; +extern asn_TYPE_member_t asn_MBR_Cells_to_be_Barred_ItemIEs_61[3]; +extern asn_TYPE_descriptor_t asn_DEF_Protected_EUTRA_Resources_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Protected_EUTRA_Resources_ItemIEs_specs_65; +extern asn_TYPE_member_t asn_MBR_Protected_EUTRA_Resources_ItemIEs_65[3]; +extern asn_TYPE_descriptor_t asn_DEF_Cells_Failed_to_be_Activated_List_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Cells_Failed_to_be_Activated_List_ItemIEs_specs_69; +extern asn_TYPE_member_t asn_MBR_Cells_Failed_to_be_Activated_List_ItemIEs_69[3]; +extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_Setup_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_GNB_CU_TNL_Association_Setup_ItemIEs_specs_73; +extern asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_Setup_ItemIEs_73[3]; +extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_specs_77; +extern asn_TYPE_member_t asn_MBR_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_77[3]; +extern asn_TYPE_descriptor_t asn_DEF_Candidate_SpCell_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Candidate_SpCell_ItemIEs_specs_81; +extern asn_TYPE_member_t asn_MBR_Candidate_SpCell_ItemIEs_81[3]; +extern asn_TYPE_descriptor_t asn_DEF_SCell_ToBeSetup_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SCell_ToBeSetup_ItemIEs_specs_85; +extern asn_TYPE_member_t asn_MBR_SCell_ToBeSetup_ItemIEs_85[3]; +extern asn_TYPE_descriptor_t asn_DEF_SRBs_ToBeSetup_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SRBs_ToBeSetup_ItemIEs_specs_89; +extern asn_TYPE_member_t asn_MBR_SRBs_ToBeSetup_ItemIEs_89[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeSetup_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRBs_ToBeSetup_ItemIEs_specs_93; +extern asn_TYPE_member_t asn_MBR_DRBs_ToBeSetup_ItemIEs_93[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRBs_Setup_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRBs_Setup_ItemIEs_specs_97; +extern asn_TYPE_member_t asn_MBR_DRBs_Setup_ItemIEs_97[3]; +extern asn_TYPE_descriptor_t asn_DEF_SRBs_FailedToBeSetup_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SRBs_FailedToBeSetup_ItemIEs_specs_101; +extern asn_TYPE_member_t asn_MBR_SRBs_FailedToBeSetup_ItemIEs_101[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRBs_FailedToBeSetup_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRBs_FailedToBeSetup_ItemIEs_specs_105; +extern asn_TYPE_member_t asn_MBR_DRBs_FailedToBeSetup_ItemIEs_105[3]; +extern asn_TYPE_descriptor_t asn_DEF_SCell_FailedtoSetup_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SCell_FailedtoSetup_ItemIEs_specs_109; +extern asn_TYPE_member_t asn_MBR_SCell_FailedtoSetup_ItemIEs_109[3]; +extern asn_TYPE_descriptor_t asn_DEF_SRBs_Setup_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SRBs_Setup_ItemIEs_specs_113; +extern asn_TYPE_member_t asn_MBR_SRBs_Setup_ItemIEs_113[3]; +extern asn_TYPE_descriptor_t asn_DEF_Potential_SpCell_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Potential_SpCell_ItemIEs_specs_117; +extern asn_TYPE_member_t asn_MBR_Potential_SpCell_ItemIEs_117[3]; +extern asn_TYPE_descriptor_t asn_DEF_SCell_ToBeSetupMod_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SCell_ToBeSetupMod_ItemIEs_specs_121; +extern asn_TYPE_member_t asn_MBR_SCell_ToBeSetupMod_ItemIEs_121[3]; +extern asn_TYPE_descriptor_t asn_DEF_SCell_ToBeRemoved_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SCell_ToBeRemoved_ItemIEs_specs_125; +extern asn_TYPE_member_t asn_MBR_SCell_ToBeRemoved_ItemIEs_125[3]; +extern asn_TYPE_descriptor_t asn_DEF_SRBs_ToBeSetupMod_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SRBs_ToBeSetupMod_ItemIEs_specs_129; +extern asn_TYPE_member_t asn_MBR_SRBs_ToBeSetupMod_ItemIEs_129[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeSetupMod_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRBs_ToBeSetupMod_ItemIEs_specs_133; +extern asn_TYPE_member_t asn_MBR_DRBs_ToBeSetupMod_ItemIEs_133[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeModified_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRBs_ToBeModified_ItemIEs_specs_137; +extern asn_TYPE_member_t asn_MBR_DRBs_ToBeModified_ItemIEs_137[3]; +extern asn_TYPE_descriptor_t asn_DEF_SRBs_ToBeReleased_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SRBs_ToBeReleased_ItemIEs_specs_141; +extern asn_TYPE_member_t asn_MBR_SRBs_ToBeReleased_ItemIEs_141[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRBs_ToBeReleased_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRBs_ToBeReleased_ItemIEs_specs_145; +extern asn_TYPE_member_t asn_MBR_DRBs_ToBeReleased_ItemIEs_145[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRBs_SetupMod_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRBs_SetupMod_ItemIEs_specs_149; +extern asn_TYPE_member_t asn_MBR_DRBs_SetupMod_ItemIEs_149[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRBs_Modified_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRBs_Modified_ItemIEs_specs_153; +extern asn_TYPE_member_t asn_MBR_DRBs_Modified_ItemIEs_153[3]; +extern asn_TYPE_descriptor_t asn_DEF_SRBs_SetupMod_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SRBs_SetupMod_ItemIEs_specs_157; +extern asn_TYPE_member_t asn_MBR_SRBs_SetupMod_ItemIEs_157[3]; +extern asn_TYPE_descriptor_t asn_DEF_SRBs_Modified_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SRBs_Modified_ItemIEs_specs_161; +extern asn_TYPE_member_t asn_MBR_SRBs_Modified_ItemIEs_161[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRBs_FailedToBeModified_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRBs_FailedToBeModified_ItemIEs_specs_165; +extern asn_TYPE_member_t asn_MBR_DRBs_FailedToBeModified_ItemIEs_165[3]; +extern asn_TYPE_descriptor_t asn_DEF_SRBs_FailedToBeSetupMod_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SRBs_FailedToBeSetupMod_ItemIEs_specs_169; +extern asn_TYPE_member_t asn_MBR_SRBs_FailedToBeSetupMod_ItemIEs_169[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRBs_FailedToBeSetupMod_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRBs_FailedToBeSetupMod_ItemIEs_specs_173; +extern asn_TYPE_member_t asn_MBR_DRBs_FailedToBeSetupMod_ItemIEs_173[3]; +extern asn_TYPE_descriptor_t asn_DEF_SCell_FailedtoSetupMod_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SCell_FailedtoSetupMod_ItemIEs_specs_177; +extern asn_TYPE_member_t asn_MBR_SCell_FailedtoSetupMod_ItemIEs_177[3]; +extern asn_TYPE_descriptor_t asn_DEF_Associated_SCell_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Associated_SCell_ItemIEs_specs_181; +extern asn_TYPE_member_t asn_MBR_Associated_SCell_ItemIEs_181[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRBs_Required_ToBeModified_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRBs_Required_ToBeModified_ItemIEs_specs_185; +extern asn_TYPE_member_t asn_MBR_DRBs_Required_ToBeModified_ItemIEs_185[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRBs_Required_ToBeReleased_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRBs_Required_ToBeReleased_ItemIEs_specs_189; +extern asn_TYPE_member_t asn_MBR_DRBs_Required_ToBeReleased_ItemIEs_189[3]; +extern asn_TYPE_descriptor_t asn_DEF_SRBs_Required_ToBeReleased_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SRBs_Required_ToBeReleased_ItemIEs_specs_193; +extern asn_TYPE_member_t asn_MBR_SRBs_Required_ToBeReleased_ItemIEs_193[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRBs_ModifiedConf_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRBs_ModifiedConf_ItemIEs_specs_197; +extern asn_TYPE_member_t asn_MBR_DRBs_ModifiedConf_ItemIEs_197[3]; +extern asn_TYPE_descriptor_t asn_DEF_Cells_To_Be_Broadcast_List_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Cells_To_Be_Broadcast_List_ItemIEs_specs_201; +extern asn_TYPE_member_t asn_MBR_Cells_To_Be_Broadcast_List_ItemIEs_201[3]; +extern asn_TYPE_descriptor_t asn_DEF_Cells_Broadcast_Completed_List_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Cells_Broadcast_Completed_List_ItemIEs_specs_205; +extern asn_TYPE_member_t asn_MBR_Cells_Broadcast_Completed_List_ItemIEs_205[3]; +extern asn_TYPE_descriptor_t asn_DEF_Broadcast_To_Be_Cancelled_List_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Broadcast_To_Be_Cancelled_List_ItemIEs_specs_209; +extern asn_TYPE_member_t asn_MBR_Broadcast_To_Be_Cancelled_List_ItemIEs_209[3]; +extern asn_TYPE_descriptor_t asn_DEF_Cells_Broadcast_Cancelled_List_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Cells_Broadcast_Cancelled_List_ItemIEs_specs_213; +extern asn_TYPE_member_t asn_MBR_Cells_Broadcast_Cancelled_List_ItemIEs_213[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRB_Activity_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRB_Activity_ItemIEs_specs_217; +extern asn_TYPE_member_t asn_MBR_DRB_Activity_ItemIEs_217[3]; +extern asn_TYPE_descriptor_t asn_DEF_PagingCell_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_PagingCell_ItemIEs_specs_221; +extern asn_TYPE_member_t asn_MBR_PagingCell_ItemIEs_221[3]; +extern asn_TYPE_descriptor_t asn_DEF_DRB_Notify_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DRB_Notify_ItemIEs_specs_225; +extern asn_TYPE_member_t asn_MBR_DRB_Notify_ItemIEs_225[3]; +extern asn_TYPE_descriptor_t asn_DEF_NR_CGI_List_For_Restart_List_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_NR_CGI_List_For_Restart_List_ItemIEs_specs_229; +extern asn_TYPE_member_t asn_MBR_NR_CGI_List_For_Restart_List_ItemIEs_229[3]; +extern asn_TYPE_descriptor_t asn_DEF_PWS_Failed_NR_CGI_List_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_PWS_Failed_NR_CGI_List_ItemIEs_specs_233; +extern asn_TYPE_member_t asn_MBR_PWS_Failed_NR_CGI_List_ItemIEs_233[3]; +extern asn_TYPE_descriptor_t asn_DEF_Cause_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_Cause_ExtIEs_specs_237; +extern asn_TYPE_member_t asn_MBR_Cause_ExtIEs_237[3]; +extern asn_TYPE_descriptor_t asn_DEF_CNUEPagingIdentity_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_CNUEPagingIdentity_ExtIEs_specs_241; +extern asn_TYPE_member_t asn_MBR_CNUEPagingIdentity_ExtIEs_241[3]; +extern asn_TYPE_descriptor_t asn_DEF_CP_TransportLayerAddress_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_CP_TransportLayerAddress_ExtIEs_specs_245; +extern asn_TYPE_member_t asn_MBR_CP_TransportLayerAddress_ExtIEs_245[3]; +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_Mode_Info_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRA_Mode_Info_ExtIEs_specs_249; +extern asn_TYPE_member_t asn_MBR_EUTRA_Mode_Info_ExtIEs_249[3]; +extern asn_TYPE_descriptor_t asn_DEF_NR_Mode_Info_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_NR_Mode_Info_ExtIEs_specs_253; +extern asn_TYPE_member_t asn_MBR_NR_Mode_Info_ExtIEs_253[3]; +extern asn_TYPE_descriptor_t asn_DEF_PagingIdentity_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_PagingIdentity_ExtIEs_specs_257; +extern asn_TYPE_member_t asn_MBR_PagingIdentity_ExtIEs_257[3]; +extern asn_TYPE_descriptor_t asn_DEF_QoS_Characteristics_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_QoS_Characteristics_ExtIEs_specs_261; +extern asn_TYPE_member_t asn_MBR_QoS_Characteristics_ExtIEs_261[3]; +extern asn_TYPE_descriptor_t asn_DEF_QoSInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_QoSInformation_ExtIEs_specs_265; +extern asn_TYPE_member_t asn_MBR_QoSInformation_ExtIEs_265[3]; +extern asn_TYPE_descriptor_t asn_DEF_RAT_FrequencyPriorityInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RAT_FrequencyPriorityInformation_ExtIEs_specs_269; +extern asn_TYPE_member_t asn_MBR_RAT_FrequencyPriorityInformation_ExtIEs_269[3]; +extern asn_TYPE_descriptor_t asn_DEF_UEIdentityIndexValueChoice_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_UEIdentityIndexValueChoice_ExtIEs_specs_273; +extern asn_TYPE_member_t asn_MBR_UEIdentityIndexValueChoice_ExtIEs_273[3]; +extern asn_TYPE_descriptor_t asn_DEF_UPTransportLayerInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_UPTransportLayerInformation_ExtIEs_specs_277; +extern asn_TYPE_member_t asn_MBR_UPTransportLayerInformation_ExtIEs_277[3]; +extern asn_TYPE_descriptor_t asn_DEF_ResetIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ResetIEs_specs_281; +extern asn_TYPE_member_t asn_MBR_ResetIEs_281[3]; +extern asn_TYPE_descriptor_t asn_DEF_ResetAcknowledgeIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ResetAcknowledgeIEs_specs_285; +extern asn_TYPE_member_t asn_MBR_ResetAcknowledgeIEs_285[3]; +extern asn_TYPE_descriptor_t asn_DEF_ErrorIndicationIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndicationIEs_specs_289; +extern asn_TYPE_member_t asn_MBR_ErrorIndicationIEs_289[3]; +extern asn_TYPE_descriptor_t asn_DEF_F1SetupRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_F1SetupRequestIEs_specs_293; +extern asn_TYPE_member_t asn_MBR_F1SetupRequestIEs_293[3]; +extern asn_TYPE_descriptor_t asn_DEF_F1SetupResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_F1SetupResponseIEs_specs_297; +extern asn_TYPE_member_t asn_MBR_F1SetupResponseIEs_297[3]; +extern asn_TYPE_descriptor_t asn_DEF_F1SetupFailureIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_F1SetupFailureIEs_specs_301; +extern asn_TYPE_member_t asn_MBR_F1SetupFailureIEs_301[3]; +extern asn_TYPE_descriptor_t asn_DEF_GNBDUConfigurationUpdateIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_GNBDUConfigurationUpdateIEs_specs_305; +extern asn_TYPE_member_t asn_MBR_GNBDUConfigurationUpdateIEs_305[3]; +extern asn_TYPE_descriptor_t asn_DEF_GNBDUConfigurationUpdateAcknowledgeIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_GNBDUConfigurationUpdateAcknowledgeIEs_specs_309; +extern asn_TYPE_member_t asn_MBR_GNBDUConfigurationUpdateAcknowledgeIEs_309[3]; +extern asn_TYPE_descriptor_t asn_DEF_GNBDUConfigurationUpdateFailureIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_GNBDUConfigurationUpdateFailureIEs_specs_313; +extern asn_TYPE_member_t asn_MBR_GNBDUConfigurationUpdateFailureIEs_313[3]; +extern asn_TYPE_descriptor_t asn_DEF_GNBCUConfigurationUpdateIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_GNBCUConfigurationUpdateIEs_specs_317; +extern asn_TYPE_member_t asn_MBR_GNBCUConfigurationUpdateIEs_317[3]; +extern asn_TYPE_descriptor_t asn_DEF_GNBCUConfigurationUpdateAcknowledgeIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_GNBCUConfigurationUpdateAcknowledgeIEs_specs_321; +extern asn_TYPE_member_t asn_MBR_GNBCUConfigurationUpdateAcknowledgeIEs_321[3]; +extern asn_TYPE_descriptor_t asn_DEF_GNBCUConfigurationUpdateFailureIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_GNBCUConfigurationUpdateFailureIEs_specs_325; +extern asn_TYPE_member_t asn_MBR_GNBCUConfigurationUpdateFailureIEs_325[3]; +extern asn_TYPE_descriptor_t asn_DEF_GNBDUResourceCoordinationRequest_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_GNBDUResourceCoordinationRequest_IEs_specs_329; +extern asn_TYPE_member_t asn_MBR_GNBDUResourceCoordinationRequest_IEs_329[3]; +extern asn_TYPE_descriptor_t asn_DEF_GNBDUResourceCoordinationResponse_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_GNBDUResourceCoordinationResponse_IEs_specs_333; +extern asn_TYPE_member_t asn_MBR_GNBDUResourceCoordinationResponse_IEs_333[3]; +extern asn_TYPE_descriptor_t asn_DEF_UEContextSetupRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_UEContextSetupRequestIEs_specs_337; +extern asn_TYPE_member_t asn_MBR_UEContextSetupRequestIEs_337[3]; +extern asn_TYPE_descriptor_t asn_DEF_UEContextSetupResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_UEContextSetupResponseIEs_specs_341; +extern asn_TYPE_member_t asn_MBR_UEContextSetupResponseIEs_341[3]; +extern asn_TYPE_descriptor_t asn_DEF_UEContextSetupFailureIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_UEContextSetupFailureIEs_specs_345; +extern asn_TYPE_member_t asn_MBR_UEContextSetupFailureIEs_345[3]; +extern asn_TYPE_descriptor_t asn_DEF_UEContextReleaseRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_UEContextReleaseRequestIEs_specs_349; +extern asn_TYPE_member_t asn_MBR_UEContextReleaseRequestIEs_349[3]; +extern asn_TYPE_descriptor_t asn_DEF_UEContextReleaseCommandIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_UEContextReleaseCommandIEs_specs_353; +extern asn_TYPE_member_t asn_MBR_UEContextReleaseCommandIEs_353[3]; +extern asn_TYPE_descriptor_t asn_DEF_UEContextReleaseCompleteIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_UEContextReleaseCompleteIEs_specs_357; +extern asn_TYPE_member_t asn_MBR_UEContextReleaseCompleteIEs_357[3]; +extern asn_TYPE_descriptor_t asn_DEF_UEContextModificationRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationRequestIEs_specs_361; +extern asn_TYPE_member_t asn_MBR_UEContextModificationRequestIEs_361[3]; +extern asn_TYPE_descriptor_t asn_DEF_UEContextModificationResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationResponseIEs_specs_365; +extern asn_TYPE_member_t asn_MBR_UEContextModificationResponseIEs_365[3]; +extern asn_TYPE_descriptor_t asn_DEF_UEContextModificationFailureIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationFailureIEs_specs_369; +extern asn_TYPE_member_t asn_MBR_UEContextModificationFailureIEs_369[3]; +extern asn_TYPE_descriptor_t asn_DEF_UEContextModificationRequiredIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationRequiredIEs_specs_373; +extern asn_TYPE_member_t asn_MBR_UEContextModificationRequiredIEs_373[3]; +extern asn_TYPE_descriptor_t asn_DEF_UEContextModificationConfirmIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationConfirmIEs_specs_377; +extern asn_TYPE_member_t asn_MBR_UEContextModificationConfirmIEs_377[3]; +extern asn_TYPE_descriptor_t asn_DEF_UEContextModificationRefuseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationRefuseIEs_specs_381; +extern asn_TYPE_member_t asn_MBR_UEContextModificationRefuseIEs_381[3]; +extern asn_TYPE_descriptor_t asn_DEF_WriteReplaceWarningRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_WriteReplaceWarningRequestIEs_specs_385; +extern asn_TYPE_member_t asn_MBR_WriteReplaceWarningRequestIEs_385[3]; +extern asn_TYPE_descriptor_t asn_DEF_WriteReplaceWarningResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_WriteReplaceWarningResponseIEs_specs_389; +extern asn_TYPE_member_t asn_MBR_WriteReplaceWarningResponseIEs_389[3]; +extern asn_TYPE_descriptor_t asn_DEF_PWSCancelRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_PWSCancelRequestIEs_specs_393; +extern asn_TYPE_member_t asn_MBR_PWSCancelRequestIEs_393[3]; +extern asn_TYPE_descriptor_t asn_DEF_PWSCancelResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_PWSCancelResponseIEs_specs_397; +extern asn_TYPE_member_t asn_MBR_PWSCancelResponseIEs_397[3]; +extern asn_TYPE_descriptor_t asn_DEF_UEInactivityNotificationIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_UEInactivityNotificationIEs_specs_401; +extern asn_TYPE_member_t asn_MBR_UEInactivityNotificationIEs_401[3]; +extern asn_TYPE_descriptor_t asn_DEF_InitialULRRCMessageTransferIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_InitialULRRCMessageTransferIEs_specs_405; +extern asn_TYPE_member_t asn_MBR_InitialULRRCMessageTransferIEs_405[3]; +extern asn_TYPE_descriptor_t asn_DEF_DLRRCMessageTransferIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DLRRCMessageTransferIEs_specs_409; +extern asn_TYPE_member_t asn_MBR_DLRRCMessageTransferIEs_409[3]; +extern asn_TYPE_descriptor_t asn_DEF_ULRRCMessageTransferIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ULRRCMessageTransferIEs_specs_413; +extern asn_TYPE_member_t asn_MBR_ULRRCMessageTransferIEs_413[3]; +extern asn_TYPE_descriptor_t asn_DEF_SystemInformationDeliveryCommandIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SystemInformationDeliveryCommandIEs_specs_417; +extern asn_TYPE_member_t asn_MBR_SystemInformationDeliveryCommandIEs_417[3]; +extern asn_TYPE_descriptor_t asn_DEF_PagingIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_PagingIEs_specs_421; +extern asn_TYPE_member_t asn_MBR_PagingIEs_421[3]; +extern asn_TYPE_descriptor_t asn_DEF_NotifyIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_NotifyIEs_specs_425; +extern asn_TYPE_member_t asn_MBR_NotifyIEs_425[3]; +extern asn_TYPE_descriptor_t asn_DEF_PWSRestartIndicationIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_PWSRestartIndicationIEs_specs_429; +extern asn_TYPE_member_t asn_MBR_PWSRestartIndicationIEs_429[3]; +extern asn_TYPE_descriptor_t asn_DEF_PWSFailureIndicationIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_PWSFailureIndicationIEs_specs_433; +extern asn_TYPE_member_t asn_MBR_PWSFailureIndicationIEs_433[3]; +extern asn_TYPE_descriptor_t asn_DEF_GNBDUStatusIndicationIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_GNBDUStatusIndicationIEs_specs_437; +extern asn_TYPE_member_t asn_MBR_GNBDUStatusIndicationIEs_437[3]; +extern asn_TYPE_descriptor_t asn_DEF_RRCDeliveryReportIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCDeliveryReportIEs_specs_441; +extern asn_TYPE_member_t asn_MBR_RRCDeliveryReportIEs_441[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtocolIE_Field_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ProtocolIE-FieldPair.c b/src/du_app/F1AP/asn/ProtocolIE-FieldPair.c new file mode 100755 index 000000000..0ed23660f --- /dev/null +++ b/src/du_app/F1AP/asn/ProtocolIE-FieldPair.c @@ -0,0 +1,9 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-Containers" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ProtocolIE-FieldPair.h" + diff --git a/src/du_app/F1AP/asn/ProtocolIE-FieldPair.h b/src/du_app/F1AP/asn/ProtocolIE-FieldPair.h new file mode 100755 index 000000000..2ab4bcc55 --- /dev/null +++ b/src/du_app/F1AP/asn/ProtocolIE-FieldPair.h @@ -0,0 +1,23 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-Containers" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ProtocolIE_FieldPair_H_ +#define _ProtocolIE_FieldPair_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtocolIE_FieldPair_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ProtocolIE-ID.c b/src/du_app/F1AP/asn/ProtocolIE-ID.c new file mode 100755 index 000000000..3637e3c70 --- /dev/null +++ b/src/du_app/F1AP/asn/ProtocolIE-ID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-CommonDataTypes" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ProtocolIE-ID.h" + +int +ProtocolIE_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_ProtocolIE_ID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ID = { + "ProtocolIE-ID", + "ProtocolIE-ID", + &asn_OP_NativeInteger, + asn_DEF_ProtocolIE_ID_tags_1, + sizeof(asn_DEF_ProtocolIE_ID_tags_1) + /sizeof(asn_DEF_ProtocolIE_ID_tags_1[0]), /* 1 */ + asn_DEF_ProtocolIE_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ID_tags_1) + /sizeof(asn_DEF_ProtocolIE_ID_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ID_constr_1, &asn_PER_type_ProtocolIE_ID_constr_1, ProtocolIE_ID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/ProtocolIE-ID.h b/src/du_app/F1AP/asn/ProtocolIE-ID.h new file mode 100755 index 000000000..125d5bf06 --- /dev/null +++ b/src/du_app/F1AP/asn/ProtocolIE-ID.h @@ -0,0 +1,253 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-CommonDataTypes" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ProtocolIE_ID_H_ +#define _ProtocolIE_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProtocolIE-ID */ +typedef long ProtocolIE_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ID; +asn_struct_free_f ProtocolIE_ID_free; +asn_struct_print_f ProtocolIE_ID_print; +asn_constr_check_f ProtocolIE_ID_constraint; +ber_type_decoder_f ProtocolIE_ID_decode_ber; +der_type_encoder_f ProtocolIE_ID_encode_der; +xer_type_decoder_f ProtocolIE_ID_decode_xer; +xer_type_encoder_f ProtocolIE_ID_encode_xer; +oer_type_decoder_f ProtocolIE_ID_decode_oer; +oer_type_encoder_f ProtocolIE_ID_encode_oer; +per_type_decoder_f ProtocolIE_ID_decode_uper; +per_type_encoder_f ProtocolIE_ID_encode_uper; +per_type_decoder_f ProtocolIE_ID_decode_aper; +per_type_encoder_f ProtocolIE_ID_encode_aper; +#define ProtocolIE_ID_id_Cause ((ProtocolIE_ID_t)0) +#define ProtocolIE_ID_id_Cells_Failed_to_be_Activated_List ((ProtocolIE_ID_t)1) +#define ProtocolIE_ID_id_Cells_Failed_to_be_Activated_List_Item ((ProtocolIE_ID_t)2) +#define ProtocolIE_ID_id_Cells_to_be_Activated_List ((ProtocolIE_ID_t)3) +#define ProtocolIE_ID_id_Cells_to_be_Activated_List_Item ((ProtocolIE_ID_t)4) +#define ProtocolIE_ID_id_Cells_to_be_Deactivated_List ((ProtocolIE_ID_t)5) +#define ProtocolIE_ID_id_Cells_to_be_Deactivated_List_Item ((ProtocolIE_ID_t)6) +#define ProtocolIE_ID_id_CriticalityDiagnostics ((ProtocolIE_ID_t)7) +#define ProtocolIE_ID_id_CUtoDURRCInformation ((ProtocolIE_ID_t)9) +#define ProtocolIE_ID_id_DRBs_FailedToBeModified_Item ((ProtocolIE_ID_t)12) +#define ProtocolIE_ID_id_DRBs_FailedToBeModified_List ((ProtocolIE_ID_t)13) +#define ProtocolIE_ID_id_DRBs_FailedToBeSetup_Item ((ProtocolIE_ID_t)14) +#define ProtocolIE_ID_id_DRBs_FailedToBeSetup_List ((ProtocolIE_ID_t)15) +#define ProtocolIE_ID_id_DRBs_FailedToBeSetupMod_Item ((ProtocolIE_ID_t)16) +#define ProtocolIE_ID_id_DRBs_FailedToBeSetupMod_List ((ProtocolIE_ID_t)17) +#define ProtocolIE_ID_id_DRBs_ModifiedConf_Item ((ProtocolIE_ID_t)18) +#define ProtocolIE_ID_id_DRBs_ModifiedConf_List ((ProtocolIE_ID_t)19) +#define ProtocolIE_ID_id_DRBs_Modified_Item ((ProtocolIE_ID_t)20) +#define ProtocolIE_ID_id_DRBs_Modified_List ((ProtocolIE_ID_t)21) +#define ProtocolIE_ID_id_DRBs_Required_ToBeModified_Item ((ProtocolIE_ID_t)22) +#define ProtocolIE_ID_id_DRBs_Required_ToBeModified_List ((ProtocolIE_ID_t)23) +#define ProtocolIE_ID_id_DRBs_Required_ToBeReleased_Item ((ProtocolIE_ID_t)24) +#define ProtocolIE_ID_id_DRBs_Required_ToBeReleased_List ((ProtocolIE_ID_t)25) +#define ProtocolIE_ID_id_DRBs_Setup_Item ((ProtocolIE_ID_t)26) +#define ProtocolIE_ID_id_DRBs_Setup_List ((ProtocolIE_ID_t)27) +#define ProtocolIE_ID_id_DRBs_SetupMod_Item ((ProtocolIE_ID_t)28) +#define ProtocolIE_ID_id_DRBs_SetupMod_List ((ProtocolIE_ID_t)29) +#define ProtocolIE_ID_id_DRBs_ToBeModified_Item ((ProtocolIE_ID_t)30) +#define ProtocolIE_ID_id_DRBs_ToBeModified_List ((ProtocolIE_ID_t)31) +#define ProtocolIE_ID_id_DRBs_ToBeReleased_Item ((ProtocolIE_ID_t)32) +#define ProtocolIE_ID_id_DRBs_ToBeReleased_List ((ProtocolIE_ID_t)33) +#define ProtocolIE_ID_id_DRBs_ToBeSetup_Item ((ProtocolIE_ID_t)34) +#define ProtocolIE_ID_id_DRBs_ToBeSetup_List ((ProtocolIE_ID_t)35) +#define ProtocolIE_ID_id_DRBs_ToBeSetupMod_Item ((ProtocolIE_ID_t)36) +#define ProtocolIE_ID_id_DRBs_ToBeSetupMod_List ((ProtocolIE_ID_t)37) +#define ProtocolIE_ID_id_DRXCycle ((ProtocolIE_ID_t)38) +#define ProtocolIE_ID_id_DUtoCURRCInformation ((ProtocolIE_ID_t)39) +#define ProtocolIE_ID_id_gNB_CU_UE_F1AP_ID ((ProtocolIE_ID_t)40) +#define ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID ((ProtocolIE_ID_t)41) +#define ProtocolIE_ID_id_gNB_DU_ID ((ProtocolIE_ID_t)42) +#define ProtocolIE_ID_id_GNB_DU_Served_Cells_Item ((ProtocolIE_ID_t)43) +#define ProtocolIE_ID_id_gNB_DU_Served_Cells_List ((ProtocolIE_ID_t)44) +#define ProtocolIE_ID_id_gNB_DU_Name ((ProtocolIE_ID_t)45) +#define ProtocolIE_ID_id_NRCellID ((ProtocolIE_ID_t)46) +#define ProtocolIE_ID_id_oldgNB_DU_UE_F1AP_ID ((ProtocolIE_ID_t)47) +#define ProtocolIE_ID_id_ResetType ((ProtocolIE_ID_t)48) +#define ProtocolIE_ID_id_ResourceCoordinationTransferContainer ((ProtocolIE_ID_t)49) +#define ProtocolIE_ID_id_RRCContainer ((ProtocolIE_ID_t)50) +#define ProtocolIE_ID_id_SCell_ToBeRemoved_Item ((ProtocolIE_ID_t)51) +#define ProtocolIE_ID_id_SCell_ToBeRemoved_List ((ProtocolIE_ID_t)52) +#define ProtocolIE_ID_id_SCell_ToBeSetup_Item ((ProtocolIE_ID_t)53) +#define ProtocolIE_ID_id_SCell_ToBeSetup_List ((ProtocolIE_ID_t)54) +#define ProtocolIE_ID_id_SCell_ToBeSetupMod_Item ((ProtocolIE_ID_t)55) +#define ProtocolIE_ID_id_SCell_ToBeSetupMod_List ((ProtocolIE_ID_t)56) +#define ProtocolIE_ID_id_Served_Cells_To_Add_Item ((ProtocolIE_ID_t)57) +#define ProtocolIE_ID_id_Served_Cells_To_Add_List ((ProtocolIE_ID_t)58) +#define ProtocolIE_ID_id_Served_Cells_To_Delete_Item ((ProtocolIE_ID_t)59) +#define ProtocolIE_ID_id_Served_Cells_To_Delete_List ((ProtocolIE_ID_t)60) +#define ProtocolIE_ID_id_Served_Cells_To_Modify_Item ((ProtocolIE_ID_t)61) +#define ProtocolIE_ID_id_Served_Cells_To_Modify_List ((ProtocolIE_ID_t)62) +#define ProtocolIE_ID_id_SpCell_ID ((ProtocolIE_ID_t)63) +#define ProtocolIE_ID_id_SRBID ((ProtocolIE_ID_t)64) +#define ProtocolIE_ID_id_SRBs_FailedToBeSetup_Item ((ProtocolIE_ID_t)65) +#define ProtocolIE_ID_id_SRBs_FailedToBeSetup_List ((ProtocolIE_ID_t)66) +#define ProtocolIE_ID_id_SRBs_FailedToBeSetupMod_Item ((ProtocolIE_ID_t)67) +#define ProtocolIE_ID_id_SRBs_FailedToBeSetupMod_List ((ProtocolIE_ID_t)68) +#define ProtocolIE_ID_id_SRBs_Required_ToBeReleased_Item ((ProtocolIE_ID_t)69) +#define ProtocolIE_ID_id_SRBs_Required_ToBeReleased_List ((ProtocolIE_ID_t)70) +#define ProtocolIE_ID_id_SRBs_ToBeReleased_Item ((ProtocolIE_ID_t)71) +#define ProtocolIE_ID_id_SRBs_ToBeReleased_List ((ProtocolIE_ID_t)72) +#define ProtocolIE_ID_id_SRBs_ToBeSetup_Item ((ProtocolIE_ID_t)73) +#define ProtocolIE_ID_id_SRBs_ToBeSetup_List ((ProtocolIE_ID_t)74) +#define ProtocolIE_ID_id_SRBs_ToBeSetupMod_Item ((ProtocolIE_ID_t)75) +#define ProtocolIE_ID_id_SRBs_ToBeSetupMod_List ((ProtocolIE_ID_t)76) +#define ProtocolIE_ID_id_TimeToWait ((ProtocolIE_ID_t)77) +#define ProtocolIE_ID_id_TransactionID ((ProtocolIE_ID_t)78) +#define ProtocolIE_ID_id_TransmissionActionIndicator ((ProtocolIE_ID_t)79) +#define ProtocolIE_ID_id_UE_associatedLogicalF1_ConnectionItem ((ProtocolIE_ID_t)80) +#define ProtocolIE_ID_id_UE_associatedLogicalF1_ConnectionListResAck ((ProtocolIE_ID_t)81) +#define ProtocolIE_ID_id_gNB_CU_Name ((ProtocolIE_ID_t)82) +#define ProtocolIE_ID_id_SCell_FailedtoSetup_List ((ProtocolIE_ID_t)83) +#define ProtocolIE_ID_id_SCell_FailedtoSetup_Item ((ProtocolIE_ID_t)84) +#define ProtocolIE_ID_id_SCell_FailedtoSetupMod_List ((ProtocolIE_ID_t)85) +#define ProtocolIE_ID_id_SCell_FailedtoSetupMod_Item ((ProtocolIE_ID_t)86) +#define ProtocolIE_ID_id_RRCReconfigurationCompleteIndicator ((ProtocolIE_ID_t)87) +#define ProtocolIE_ID_id_Cells_Status_Item ((ProtocolIE_ID_t)88) +#define ProtocolIE_ID_id_Cells_Status_List ((ProtocolIE_ID_t)89) +#define ProtocolIE_ID_id_Candidate_SpCell_List ((ProtocolIE_ID_t)90) +#define ProtocolIE_ID_id_Candidate_SpCell_Item ((ProtocolIE_ID_t)91) +#define ProtocolIE_ID_id_Potential_SpCell_List ((ProtocolIE_ID_t)92) +#define ProtocolIE_ID_id_Potential_SpCell_Item ((ProtocolIE_ID_t)93) +#define ProtocolIE_ID_id_FullConfiguration ((ProtocolIE_ID_t)94) +#define ProtocolIE_ID_id_C_RNTI ((ProtocolIE_ID_t)95) +#define ProtocolIE_ID_id_SpCellULConfigured ((ProtocolIE_ID_t)96) +#define ProtocolIE_ID_id_InactivityMonitoringRequest ((ProtocolIE_ID_t)97) +#define ProtocolIE_ID_id_InactivityMonitoringResponse ((ProtocolIE_ID_t)98) +#define ProtocolIE_ID_id_DRB_Activity_Item ((ProtocolIE_ID_t)99) +#define ProtocolIE_ID_id_DRB_Activity_List ((ProtocolIE_ID_t)100) +#define ProtocolIE_ID_id_EUTRA_NR_CellResourceCoordinationReq_Container ((ProtocolIE_ID_t)101) +#define ProtocolIE_ID_id_EUTRA_NR_CellResourceCoordinationReqAck_Container ((ProtocolIE_ID_t)102) +#define ProtocolIE_ID_id_Protected_EUTRA_Resources_List ((ProtocolIE_ID_t)105) +#define ProtocolIE_ID_id_RequestType ((ProtocolIE_ID_t)106) +#define ProtocolIE_ID_id_ServCellIndex ((ProtocolIE_ID_t)107) +#define ProtocolIE_ID_id_RAT_FrequencyPriorityInformation ((ProtocolIE_ID_t)108) +#define ProtocolIE_ID_id_ExecuteDuplication ((ProtocolIE_ID_t)109) +#define ProtocolIE_ID_id_NRCGI ((ProtocolIE_ID_t)111) +#define ProtocolIE_ID_id_PagingCell_Item ((ProtocolIE_ID_t)112) +#define ProtocolIE_ID_id_PagingCell_List ((ProtocolIE_ID_t)113) +#define ProtocolIE_ID_id_PagingDRX ((ProtocolIE_ID_t)114) +#define ProtocolIE_ID_id_PagingPriority ((ProtocolIE_ID_t)115) +#define ProtocolIE_ID_id_SItype_List ((ProtocolIE_ID_t)116) +#define ProtocolIE_ID_id_UEIdentityIndexValue ((ProtocolIE_ID_t)117) +#define ProtocolIE_ID_id_gNB_CUSystemInformation ((ProtocolIE_ID_t)118) +#define ProtocolIE_ID_id_HandoverPreparationInformation ((ProtocolIE_ID_t)119) +#define ProtocolIE_ID_id_GNB_CU_TNL_Association_To_Add_Item ((ProtocolIE_ID_t)120) +#define ProtocolIE_ID_id_GNB_CU_TNL_Association_To_Add_List ((ProtocolIE_ID_t)121) +#define ProtocolIE_ID_id_GNB_CU_TNL_Association_To_Remove_Item ((ProtocolIE_ID_t)122) +#define ProtocolIE_ID_id_GNB_CU_TNL_Association_To_Remove_List ((ProtocolIE_ID_t)123) +#define ProtocolIE_ID_id_GNB_CU_TNL_Association_To_Update_Item ((ProtocolIE_ID_t)124) +#define ProtocolIE_ID_id_GNB_CU_TNL_Association_To_Update_List ((ProtocolIE_ID_t)125) +#define ProtocolIE_ID_id_MaskedIMEISV ((ProtocolIE_ID_t)126) +#define ProtocolIE_ID_id_PagingIdentity ((ProtocolIE_ID_t)127) +#define ProtocolIE_ID_id_DUtoCURRCContainer ((ProtocolIE_ID_t)128) +#define ProtocolIE_ID_id_Cells_to_be_Barred_List ((ProtocolIE_ID_t)129) +#define ProtocolIE_ID_id_Cells_to_be_Barred_Item ((ProtocolIE_ID_t)130) +#define ProtocolIE_ID_id_TAISliceSupportList ((ProtocolIE_ID_t)131) +#define ProtocolIE_ID_id_GNB_CU_TNL_Association_Setup_List ((ProtocolIE_ID_t)132) +#define ProtocolIE_ID_id_GNB_CU_TNL_Association_Setup_Item ((ProtocolIE_ID_t)133) +#define ProtocolIE_ID_id_GNB_CU_TNL_Association_Failed_To_Setup_List ((ProtocolIE_ID_t)134) +#define ProtocolIE_ID_id_GNB_CU_TNL_Association_Failed_To_Setup_Item ((ProtocolIE_ID_t)135) +#define ProtocolIE_ID_id_DRB_Notify_Item ((ProtocolIE_ID_t)136) +#define ProtocolIE_ID_id_DRB_Notify_List ((ProtocolIE_ID_t)137) +#define ProtocolIE_ID_id_NotficationControl ((ProtocolIE_ID_t)138) +#define ProtocolIE_ID_id_RANAC ((ProtocolIE_ID_t)139) +#define ProtocolIE_ID_id_PWSSystemInformation ((ProtocolIE_ID_t)140) +#define ProtocolIE_ID_id_RepetitionPeriod ((ProtocolIE_ID_t)141) +#define ProtocolIE_ID_id_NumberofBroadcastRequest ((ProtocolIE_ID_t)142) +#define ProtocolIE_ID_id_Cells_To_Be_Broadcast_List ((ProtocolIE_ID_t)144) +#define ProtocolIE_ID_id_Cells_To_Be_Broadcast_Item ((ProtocolIE_ID_t)145) +#define ProtocolIE_ID_id_Cells_Broadcast_Completed_List ((ProtocolIE_ID_t)146) +#define ProtocolIE_ID_id_Cells_Broadcast_Completed_Item ((ProtocolIE_ID_t)147) +#define ProtocolIE_ID_id_Broadcast_To_Be_Cancelled_List ((ProtocolIE_ID_t)148) +#define ProtocolIE_ID_id_Broadcast_To_Be_Cancelled_Item ((ProtocolIE_ID_t)149) +#define ProtocolIE_ID_id_Cells_Broadcast_Cancelled_List ((ProtocolIE_ID_t)150) +#define ProtocolIE_ID_id_Cells_Broadcast_Cancelled_Item ((ProtocolIE_ID_t)151) +#define ProtocolIE_ID_id_NR_CGI_List_For_Restart_List ((ProtocolIE_ID_t)152) +#define ProtocolIE_ID_id_NR_CGI_List_For_Restart_Item ((ProtocolIE_ID_t)153) +#define ProtocolIE_ID_id_PWS_Failed_NR_CGI_List ((ProtocolIE_ID_t)154) +#define ProtocolIE_ID_id_PWS_Failed_NR_CGI_Item ((ProtocolIE_ID_t)155) +#define ProtocolIE_ID_id_ConfirmedUEID ((ProtocolIE_ID_t)156) +#define ProtocolIE_ID_id_Cancel_all_Warning_Messages_Indicator ((ProtocolIE_ID_t)157) +#define ProtocolIE_ID_id_GNB_DU_UE_AMBR_UL ((ProtocolIE_ID_t)158) +#define ProtocolIE_ID_id_DRXConfigurationIndicator ((ProtocolIE_ID_t)159) +#define ProtocolIE_ID_id_RLC_Status ((ProtocolIE_ID_t)160) +#define ProtocolIE_ID_id_DLPDCPSNLength ((ProtocolIE_ID_t)161) +#define ProtocolIE_ID_id_GNB_DUConfigurationQuery ((ProtocolIE_ID_t)162) +#define ProtocolIE_ID_id_MeasurementTimingConfiguration ((ProtocolIE_ID_t)163) +#define ProtocolIE_ID_id_DRB_Information ((ProtocolIE_ID_t)164) +#define ProtocolIE_ID_id_ServingPLMN ((ProtocolIE_ID_t)165) +#define ProtocolIE_ID_id_Protected_EUTRA_Resources_Item ((ProtocolIE_ID_t)168) +#define ProtocolIE_ID_id_GNB_CU_RRC_Version ((ProtocolIE_ID_t)170) +#define ProtocolIE_ID_id_GNB_DU_RRC_Version ((ProtocolIE_ID_t)171) +#define ProtocolIE_ID_id_GNBDUOverloadInformation ((ProtocolIE_ID_t)172) +#define ProtocolIE_ID_id_CellGroupConfig ((ProtocolIE_ID_t)173) +#define ProtocolIE_ID_id_RLCFailureIndication ((ProtocolIE_ID_t)174) +#define ProtocolIE_ID_id_UplinkTxDirectCurrentListInformation ((ProtocolIE_ID_t)175) +#define ProtocolIE_ID_id_DC_Based_Duplication_Configured ((ProtocolIE_ID_t)176) +#define ProtocolIE_ID_id_DC_Based_Duplication_Activation ((ProtocolIE_ID_t)177) +#define ProtocolIE_ID_id_SULAccessIndication ((ProtocolIE_ID_t)178) +#define ProtocolIE_ID_id_AvailablePLMNList ((ProtocolIE_ID_t)179) +#define ProtocolIE_ID_id_PDUSessionID ((ProtocolIE_ID_t)180) +#define ProtocolIE_ID_id_ULPDUSessionAggregateMaximumBitRate ((ProtocolIE_ID_t)181) +#define ProtocolIE_ID_id_ServingCellMO ((ProtocolIE_ID_t)182) +#define ProtocolIE_ID_id_QoSFlowMappingIndication ((ProtocolIE_ID_t)183) +#define ProtocolIE_ID_id_RRCDeliveryStatusRequest ((ProtocolIE_ID_t)184) +#define ProtocolIE_ID_id_RRCDeliveryStatus ((ProtocolIE_ID_t)185) +#define ProtocolIE_ID_id_BearerTypeChange ((ProtocolIE_ID_t)186) +#define ProtocolIE_ID_id_RLCMode ((ProtocolIE_ID_t)187) +#define ProtocolIE_ID_id_Duplication_Activation ((ProtocolIE_ID_t)188) +#define ProtocolIE_ID_id_Dedicated_SIDelivery_NeededUE_List ((ProtocolIE_ID_t)189) +#define ProtocolIE_ID_id_Dedicated_SIDelivery_NeededUE_Item ((ProtocolIE_ID_t)190) +#define ProtocolIE_ID_id_DRX_LongCycleStartOffset ((ProtocolIE_ID_t)191) +#define ProtocolIE_ID_id_ULPDCPSNLength ((ProtocolIE_ID_t)192) +#define ProtocolIE_ID_id_SelectedBandCombinationIndex ((ProtocolIE_ID_t)193) +#define ProtocolIE_ID_id_SelectedFeatureSetEntryIndex ((ProtocolIE_ID_t)194) +#define ProtocolIE_ID_id_ResourceCoordinationTransferInformation ((ProtocolIE_ID_t)195) +#define ProtocolIE_ID_id_ExtendedServedPLMNs_List ((ProtocolIE_ID_t)196) +#define ProtocolIE_ID_id_ExtendedAvailablePLMN_List ((ProtocolIE_ID_t)197) +#define ProtocolIE_ID_id_Associated_SCell_List ((ProtocolIE_ID_t)198) +#define ProtocolIE_ID_id_latest_RRC_Version_Enhanced ((ProtocolIE_ID_t)199) +#define ProtocolIE_ID_id_Associated_SCell_Item ((ProtocolIE_ID_t)200) +#define ProtocolIE_ID_id_Cell_Direction ((ProtocolIE_ID_t)201) +#define ProtocolIE_ID_id_SRBs_Setup_List ((ProtocolIE_ID_t)202) +#define ProtocolIE_ID_id_SRBs_Setup_Item ((ProtocolIE_ID_t)203) +#define ProtocolIE_ID_id_SRBs_SetupMod_List ((ProtocolIE_ID_t)204) +#define ProtocolIE_ID_id_SRBs_SetupMod_Item ((ProtocolIE_ID_t)205) +#define ProtocolIE_ID_id_SRBs_Modified_List ((ProtocolIE_ID_t)206) +#define ProtocolIE_ID_id_SRBs_Modified_Item ((ProtocolIE_ID_t)207) +#define ProtocolIE_ID_id_Ph_InfoSCG ((ProtocolIE_ID_t)208) +#define ProtocolIE_ID_id_RequestedBandCombinationIndex ((ProtocolIE_ID_t)209) +#define ProtocolIE_ID_id_RequestedFeatureSetEntryIndex ((ProtocolIE_ID_t)210) +#define ProtocolIE_ID_id_RequestedP_MaxFR2 ((ProtocolIE_ID_t)211) +#define ProtocolIE_ID_id_DRX_Config ((ProtocolIE_ID_t)212) +#define ProtocolIE_ID_id_IgnoreResourceCoordinationContainer ((ProtocolIE_ID_t)213) +#define ProtocolIE_ID_id_UEAssistanceInformation ((ProtocolIE_ID_t)214) +#define ProtocolIE_ID_id_NeedforGap ((ProtocolIE_ID_t)215) +#define ProtocolIE_ID_id_PagingOrigin ((ProtocolIE_ID_t)216) + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtocolIE_ID_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ProtocolIE-SingleContainer.c b/src/du_app/F1AP/asn/ProtocolIE-SingleContainer.c new file mode 100755 index 000000000..6c28dee1b --- /dev/null +++ b/src/du_app/F1AP/asn/ProtocolIE-SingleContainer.c @@ -0,0 +1,1619 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-Containers" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ProtocolIE-SingleContainer.h" + +/* + * This type is implemented using F1AP_PDU_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ResetType_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using UE_associatedLogicalF1_ConnectionItemRes, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using UE_associatedLogicalF1_ConnectionItemResAck, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using GNB_DU_Served_Cells_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using Cells_to_be_Activated_List_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using Served_Cells_To_Add_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using Served_Cells_To_Modify_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using Served_Cells_To_Delete_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using Cells_Status_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using Dedicated_SIDelivery_NeededUE_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using Cells_to_be_Deactivated_List_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using GNB_CU_TNL_Association_To_Add_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using GNB_CU_TNL_Association_To_Remove_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using GNB_CU_TNL_Association_To_Update_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using Cells_to_be_Barred_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using Protected_EUTRA_Resources_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using Cells_Failed_to_be_Activated_List_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using GNB_CU_TNL_Association_Setup_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using Candidate_SpCell_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using SCell_ToBeSetup_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using SRBs_ToBeSetup_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using DRBs_ToBeSetup_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using DRBs_Setup_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using SRBs_FailedToBeSetup_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using DRBs_FailedToBeSetup_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using SCell_FailedtoSetup_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using SRBs_Setup_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using Potential_SpCell_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using SCell_ToBeSetupMod_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using SCell_ToBeRemoved_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using SRBs_ToBeSetupMod_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using DRBs_ToBeSetupMod_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using DRBs_ToBeModified_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using SRBs_ToBeReleased_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using DRBs_ToBeReleased_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using DRBs_SetupMod_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using DRBs_Modified_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using SRBs_SetupMod_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using SRBs_Modified_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using DRBs_FailedToBeModified_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using SRBs_FailedToBeSetupMod_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using DRBs_FailedToBeSetupMod_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using SCell_FailedtoSetupMod_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using Associated_SCell_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using DRBs_Required_ToBeModified_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using DRBs_Required_ToBeReleased_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using SRBs_Required_ToBeReleased_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using DRBs_ModifiedConf_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using Cells_To_Be_Broadcast_List_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using Cells_Broadcast_Completed_List_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using Broadcast_To_Be_Cancelled_List_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using Cells_Broadcast_Cancelled_List_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using DRB_Activity_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using PagingCell_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using DRB_Notify_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NR_CGI_List_For_Restart_List_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using PWS_Failed_NR_CGI_List_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using Cause_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using CNUEPagingIdentity_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using CP_TransportLayerAddress_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using EUTRA_Mode_Info_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NR_Mode_Info_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using PagingIdentity_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using QoS_Characteristics_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using QoSInformation_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using RAT_FrequencyPriorityInformation_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using UEIdentityIndexValueChoice_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using UPTransportLayerInformation_ExtIEs, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P0_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P0 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P0_tags_1, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P0_tags_1[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P0_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P0_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_F1AP_PDU_ExtIEs_1, + 3, /* Elements count */ + &asn_SPC_F1AP_PDU_ExtIEs_specs_1 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P1_tags_2[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P1 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P1_tags_2, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P1_tags_2) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P1_tags_2[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P1_tags_2, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P1_tags_2) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P1_tags_2[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ResetType_ExtIEs_5, + 3, /* Elements count */ + &asn_SPC_ResetType_ExtIEs_specs_5 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P2_tags_3[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P2 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P2_tags_3, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P2_tags_3) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P2_tags_3[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P2_tags_3, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P2_tags_3) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P2_tags_3[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UE_associatedLogicalF1_ConnectionItemRes_9, + 3, /* Elements count */ + &asn_SPC_UE_associatedLogicalF1_ConnectionItemRes_specs_9 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P3_tags_4[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P3 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P3_tags_4, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P3_tags_4) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P3_tags_4[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P3_tags_4, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P3_tags_4) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P3_tags_4[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UE_associatedLogicalF1_ConnectionItemResAck_13, + 3, /* Elements count */ + &asn_SPC_UE_associatedLogicalF1_ConnectionItemResAck_specs_13 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P4_tags_5[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P4 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P4_tags_5, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P4_tags_5) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P4_tags_5[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P4_tags_5, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P4_tags_5) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P4_tags_5[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_DU_Served_Cells_ItemIEs_17, + 3, /* Elements count */ + &asn_SPC_GNB_DU_Served_Cells_ItemIEs_specs_17 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P5_tags_6[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P5 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P5_tags_6, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P5_tags_6) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P5_tags_6[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P5_tags_6, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P5_tags_6) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P5_tags_6[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_to_be_Activated_List_ItemIEs_21, + 3, /* Elements count */ + &asn_SPC_Cells_to_be_Activated_List_ItemIEs_specs_21 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P6_tags_7[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P6 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P6_tags_7, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P6_tags_7) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P6_tags_7[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P6_tags_7, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P6_tags_7) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P6_tags_7[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Served_Cells_To_Add_ItemIEs_25, + 3, /* Elements count */ + &asn_SPC_Served_Cells_To_Add_ItemIEs_specs_25 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P7_tags_8[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P7 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P7_tags_8, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P7_tags_8) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P7_tags_8[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P7_tags_8, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P7_tags_8) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P7_tags_8[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Served_Cells_To_Modify_ItemIEs_29, + 3, /* Elements count */ + &asn_SPC_Served_Cells_To_Modify_ItemIEs_specs_29 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P8_tags_9[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P8 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P8_tags_9, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P8_tags_9) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P8_tags_9[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P8_tags_9, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P8_tags_9) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P8_tags_9[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Served_Cells_To_Delete_ItemIEs_33, + 3, /* Elements count */ + &asn_SPC_Served_Cells_To_Delete_ItemIEs_specs_33 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P9_tags_10[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P9 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P9_tags_10, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P9_tags_10) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P9_tags_10[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P9_tags_10, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P9_tags_10) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P9_tags_10[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_Status_ItemIEs_37, + 3, /* Elements count */ + &asn_SPC_Cells_Status_ItemIEs_specs_37 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P10_tags_11[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P10 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P10_tags_11, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P10_tags_11) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P10_tags_11[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P10_tags_11, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P10_tags_11) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P10_tags_11[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Dedicated_SIDelivery_NeededUE_ItemIEs_41, + 3, /* Elements count */ + &asn_SPC_Dedicated_SIDelivery_NeededUE_ItemIEs_specs_41 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P11_tags_12[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P11 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P11_tags_12, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P11_tags_12) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P11_tags_12[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P11_tags_12, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P11_tags_12) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P11_tags_12[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_to_be_Deactivated_List_ItemIEs_45, + 3, /* Elements count */ + &asn_SPC_Cells_to_be_Deactivated_List_ItemIEs_specs_45 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P12_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P12 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P12_tags_13, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P12_tags_13) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P12_tags_13[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P12_tags_13, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P12_tags_13) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P12_tags_13[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_CU_TNL_Association_To_Add_ItemIEs_49, + 3, /* Elements count */ + &asn_SPC_GNB_CU_TNL_Association_To_Add_ItemIEs_specs_49 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P13_tags_14[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P13 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P13_tags_14, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P13_tags_14) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P13_tags_14[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P13_tags_14, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P13_tags_14) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P13_tags_14[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_CU_TNL_Association_To_Remove_ItemIEs_53, + 3, /* Elements count */ + &asn_SPC_GNB_CU_TNL_Association_To_Remove_ItemIEs_specs_53 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P14_tags_15[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P14 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P14_tags_15, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P14_tags_15) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P14_tags_15[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P14_tags_15, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P14_tags_15) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P14_tags_15[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_CU_TNL_Association_To_Update_ItemIEs_57, + 3, /* Elements count */ + &asn_SPC_GNB_CU_TNL_Association_To_Update_ItemIEs_specs_57 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P15_tags_16[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P15 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P15_tags_16, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P15_tags_16) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P15_tags_16[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P15_tags_16, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P15_tags_16) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P15_tags_16[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_to_be_Barred_ItemIEs_61, + 3, /* Elements count */ + &asn_SPC_Cells_to_be_Barred_ItemIEs_specs_61 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P16_tags_17[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P16 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P16_tags_17, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P16_tags_17) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P16_tags_17[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P16_tags_17, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P16_tags_17) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P16_tags_17[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Protected_EUTRA_Resources_ItemIEs_65, + 3, /* Elements count */ + &asn_SPC_Protected_EUTRA_Resources_ItemIEs_specs_65 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P17_tags_18[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P17 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P17_tags_18, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P17_tags_18) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P17_tags_18[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P17_tags_18, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P17_tags_18) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P17_tags_18[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_Failed_to_be_Activated_List_ItemIEs_69, + 3, /* Elements count */ + &asn_SPC_Cells_Failed_to_be_Activated_List_ItemIEs_specs_69 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P18_tags_19[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P18 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P18_tags_19, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P18_tags_19) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P18_tags_19[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P18_tags_19, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P18_tags_19) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P18_tags_19[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_CU_TNL_Association_Setup_ItemIEs_73, + 3, /* Elements count */ + &asn_SPC_GNB_CU_TNL_Association_Setup_ItemIEs_specs_73 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P19_tags_20[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P19 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P19_tags_20, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P19_tags_20) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P19_tags_20[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P19_tags_20, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P19_tags_20) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P19_tags_20[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_77, + 3, /* Elements count */ + &asn_SPC_GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_specs_77 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P20_tags_21[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P20 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P20_tags_21, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P20_tags_21) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P20_tags_21[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P20_tags_21, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P20_tags_21) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P20_tags_21[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Candidate_SpCell_ItemIEs_81, + 3, /* Elements count */ + &asn_SPC_Candidate_SpCell_ItemIEs_specs_81 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P21_tags_22[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P21 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P21_tags_22, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P21_tags_22) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P21_tags_22[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P21_tags_22, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P21_tags_22) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P21_tags_22[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SCell_ToBeSetup_ItemIEs_85, + 3, /* Elements count */ + &asn_SPC_SCell_ToBeSetup_ItemIEs_specs_85 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P22_tags_23[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P22 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P22_tags_23, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P22_tags_23) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P22_tags_23[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P22_tags_23, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P22_tags_23) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P22_tags_23[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_ToBeSetup_ItemIEs_89, + 3, /* Elements count */ + &asn_SPC_SRBs_ToBeSetup_ItemIEs_specs_89 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P23_tags_24[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P23 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P23_tags_24, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P23_tags_24) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P23_tags_24[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P23_tags_24, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P23_tags_24) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P23_tags_24[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_ToBeSetup_ItemIEs_93, + 3, /* Elements count */ + &asn_SPC_DRBs_ToBeSetup_ItemIEs_specs_93 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P24_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P24 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P24_tags_25, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P24_tags_25) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P24_tags_25[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P24_tags_25, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P24_tags_25) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P24_tags_25[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_Setup_ItemIEs_97, + 3, /* Elements count */ + &asn_SPC_DRBs_Setup_ItemIEs_specs_97 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P25_tags_26[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P25 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P25_tags_26, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P25_tags_26) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P25_tags_26[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P25_tags_26, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P25_tags_26) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P25_tags_26[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_FailedToBeSetup_ItemIEs_101, + 3, /* Elements count */ + &asn_SPC_SRBs_FailedToBeSetup_ItemIEs_specs_101 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P26_tags_27[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P26 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P26_tags_27, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P26_tags_27) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P26_tags_27[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P26_tags_27, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P26_tags_27) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P26_tags_27[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_FailedToBeSetup_ItemIEs_105, + 3, /* Elements count */ + &asn_SPC_DRBs_FailedToBeSetup_ItemIEs_specs_105 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P27_tags_28[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P27 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P27_tags_28, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P27_tags_28) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P27_tags_28[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P27_tags_28, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P27_tags_28) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P27_tags_28[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SCell_FailedtoSetup_ItemIEs_109, + 3, /* Elements count */ + &asn_SPC_SCell_FailedtoSetup_ItemIEs_specs_109 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P28_tags_29[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P28 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P28_tags_29, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P28_tags_29) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P28_tags_29[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P28_tags_29, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P28_tags_29) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P28_tags_29[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_Setup_ItemIEs_113, + 3, /* Elements count */ + &asn_SPC_SRBs_Setup_ItemIEs_specs_113 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P29_tags_30[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P29 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P29_tags_30, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P29_tags_30) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P29_tags_30[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P29_tags_30, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P29_tags_30) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P29_tags_30[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Potential_SpCell_ItemIEs_117, + 3, /* Elements count */ + &asn_SPC_Potential_SpCell_ItemIEs_specs_117 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P30_tags_31[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P30 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P30_tags_31, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P30_tags_31) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P30_tags_31[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P30_tags_31, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P30_tags_31) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P30_tags_31[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SCell_ToBeSetupMod_ItemIEs_121, + 3, /* Elements count */ + &asn_SPC_SCell_ToBeSetupMod_ItemIEs_specs_121 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P31_tags_32[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P31 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P31_tags_32, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P31_tags_32) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P31_tags_32[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P31_tags_32, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P31_tags_32) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P31_tags_32[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SCell_ToBeRemoved_ItemIEs_125, + 3, /* Elements count */ + &asn_SPC_SCell_ToBeRemoved_ItemIEs_specs_125 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P32_tags_33[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P32 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P32_tags_33, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P32_tags_33) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P32_tags_33[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P32_tags_33, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P32_tags_33) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P32_tags_33[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_ToBeSetupMod_ItemIEs_129, + 3, /* Elements count */ + &asn_SPC_SRBs_ToBeSetupMod_ItemIEs_specs_129 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P33_tags_34[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P33 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P33_tags_34, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P33_tags_34) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P33_tags_34[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P33_tags_34, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P33_tags_34) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P33_tags_34[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_ToBeSetupMod_ItemIEs_133, + 3, /* Elements count */ + &asn_SPC_DRBs_ToBeSetupMod_ItemIEs_specs_133 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P34_tags_35[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P34 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P34_tags_35, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P34_tags_35) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P34_tags_35[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P34_tags_35, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P34_tags_35) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P34_tags_35[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_ToBeModified_ItemIEs_137, + 3, /* Elements count */ + &asn_SPC_DRBs_ToBeModified_ItemIEs_specs_137 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P35_tags_36[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P35 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P35_tags_36, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P35_tags_36) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P35_tags_36[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P35_tags_36, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P35_tags_36) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P35_tags_36[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_ToBeReleased_ItemIEs_141, + 3, /* Elements count */ + &asn_SPC_SRBs_ToBeReleased_ItemIEs_specs_141 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P36_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P36 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P36_tags_37, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P36_tags_37) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P36_tags_37[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P36_tags_37, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P36_tags_37) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P36_tags_37[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_ToBeReleased_ItemIEs_145, + 3, /* Elements count */ + &asn_SPC_DRBs_ToBeReleased_ItemIEs_specs_145 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P37_tags_38[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P37 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P37_tags_38, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P37_tags_38) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P37_tags_38[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P37_tags_38, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P37_tags_38) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P37_tags_38[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_SetupMod_ItemIEs_149, + 3, /* Elements count */ + &asn_SPC_DRBs_SetupMod_ItemIEs_specs_149 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P38_tags_39[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P38 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P38_tags_39, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P38_tags_39) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P38_tags_39[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P38_tags_39, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P38_tags_39) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P38_tags_39[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_Modified_ItemIEs_153, + 3, /* Elements count */ + &asn_SPC_DRBs_Modified_ItemIEs_specs_153 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P39_tags_40[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P39 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P39_tags_40, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P39_tags_40) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P39_tags_40[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P39_tags_40, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P39_tags_40) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P39_tags_40[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_SetupMod_ItemIEs_157, + 3, /* Elements count */ + &asn_SPC_SRBs_SetupMod_ItemIEs_specs_157 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P40_tags_41[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P40 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P40_tags_41, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P40_tags_41) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P40_tags_41[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P40_tags_41, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P40_tags_41) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P40_tags_41[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_Modified_ItemIEs_161, + 3, /* Elements count */ + &asn_SPC_SRBs_Modified_ItemIEs_specs_161 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P41_tags_42[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P41 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P41_tags_42, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P41_tags_42) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P41_tags_42[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P41_tags_42, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P41_tags_42) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P41_tags_42[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_FailedToBeModified_ItemIEs_165, + 3, /* Elements count */ + &asn_SPC_DRBs_FailedToBeModified_ItemIEs_specs_165 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P42_tags_43[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P42 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P42_tags_43, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P42_tags_43) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P42_tags_43[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P42_tags_43, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P42_tags_43) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P42_tags_43[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_FailedToBeSetupMod_ItemIEs_169, + 3, /* Elements count */ + &asn_SPC_SRBs_FailedToBeSetupMod_ItemIEs_specs_169 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P43_tags_44[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P43 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P43_tags_44, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P43_tags_44) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P43_tags_44[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P43_tags_44, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P43_tags_44) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P43_tags_44[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_FailedToBeSetupMod_ItemIEs_173, + 3, /* Elements count */ + &asn_SPC_DRBs_FailedToBeSetupMod_ItemIEs_specs_173 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P44_tags_45[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P44 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P44_tags_45, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P44_tags_45) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P44_tags_45[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P44_tags_45, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P44_tags_45) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P44_tags_45[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SCell_FailedtoSetupMod_ItemIEs_177, + 3, /* Elements count */ + &asn_SPC_SCell_FailedtoSetupMod_ItemIEs_specs_177 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P45_tags_46[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P45 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P45_tags_46, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P45_tags_46) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P45_tags_46[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P45_tags_46, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P45_tags_46) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P45_tags_46[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Associated_SCell_ItemIEs_181, + 3, /* Elements count */ + &asn_SPC_Associated_SCell_ItemIEs_specs_181 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P46_tags_47[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P46 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P46_tags_47, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P46_tags_47) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P46_tags_47[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P46_tags_47, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P46_tags_47) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P46_tags_47[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_Required_ToBeModified_ItemIEs_185, + 3, /* Elements count */ + &asn_SPC_DRBs_Required_ToBeModified_ItemIEs_specs_185 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P47_tags_48[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P47 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P47_tags_48, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P47_tags_48) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P47_tags_48[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P47_tags_48, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P47_tags_48) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P47_tags_48[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_Required_ToBeReleased_ItemIEs_189, + 3, /* Elements count */ + &asn_SPC_DRBs_Required_ToBeReleased_ItemIEs_specs_189 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P48_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P48 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P48_tags_49, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P48_tags_49) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P48_tags_49[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P48_tags_49, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P48_tags_49) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P48_tags_49[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_Required_ToBeReleased_ItemIEs_193, + 3, /* Elements count */ + &asn_SPC_SRBs_Required_ToBeReleased_ItemIEs_specs_193 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P49_tags_50[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P49 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P49_tags_50, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P49_tags_50) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P49_tags_50[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P49_tags_50, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P49_tags_50) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P49_tags_50[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRBs_ModifiedConf_ItemIEs_197, + 3, /* Elements count */ + &asn_SPC_DRBs_ModifiedConf_ItemIEs_specs_197 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P50_tags_51[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P50 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P50_tags_51, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P50_tags_51) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P50_tags_51[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P50_tags_51, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P50_tags_51) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P50_tags_51[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_To_Be_Broadcast_List_ItemIEs_201, + 3, /* Elements count */ + &asn_SPC_Cells_To_Be_Broadcast_List_ItemIEs_specs_201 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P51_tags_52[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P51 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P51_tags_52, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P51_tags_52) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P51_tags_52[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P51_tags_52, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P51_tags_52) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P51_tags_52[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_Broadcast_Completed_List_ItemIEs_205, + 3, /* Elements count */ + &asn_SPC_Cells_Broadcast_Completed_List_ItemIEs_specs_205 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P52_tags_53[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P52 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P52_tags_53, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P52_tags_53) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P52_tags_53[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P52_tags_53, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P52_tags_53) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P52_tags_53[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Broadcast_To_Be_Cancelled_List_ItemIEs_209, + 3, /* Elements count */ + &asn_SPC_Broadcast_To_Be_Cancelled_List_ItemIEs_specs_209 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P53_tags_54[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P53 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P53_tags_54, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P53_tags_54) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P53_tags_54[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P53_tags_54, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P53_tags_54) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P53_tags_54[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cells_Broadcast_Cancelled_List_ItemIEs_213, + 3, /* Elements count */ + &asn_SPC_Cells_Broadcast_Cancelled_List_ItemIEs_specs_213 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P54_tags_55[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P54 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P54_tags_55, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P54_tags_55) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P54_tags_55[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P54_tags_55, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P54_tags_55) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P54_tags_55[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRB_Activity_ItemIEs_217, + 3, /* Elements count */ + &asn_SPC_DRB_Activity_ItemIEs_specs_217 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P55_tags_56[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P55 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P55_tags_56, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P55_tags_56) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P55_tags_56[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P55_tags_56, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P55_tags_56) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P55_tags_56[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PagingCell_ItemIEs_221, + 3, /* Elements count */ + &asn_SPC_PagingCell_ItemIEs_specs_221 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P56_tags_57[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P56 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P56_tags_57, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P56_tags_57) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P56_tags_57[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P56_tags_57, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P56_tags_57) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P56_tags_57[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRB_Notify_ItemIEs_225, + 3, /* Elements count */ + &asn_SPC_DRB_Notify_ItemIEs_specs_225 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P57_tags_58[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P57 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P57_tags_58, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P57_tags_58) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P57_tags_58[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P57_tags_58, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P57_tags_58) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P57_tags_58[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NR_CGI_List_For_Restart_List_ItemIEs_229, + 3, /* Elements count */ + &asn_SPC_NR_CGI_List_For_Restart_List_ItemIEs_specs_229 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P58_tags_59[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P58 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P58_tags_59, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P58_tags_59) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P58_tags_59[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P58_tags_59, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P58_tags_59) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P58_tags_59[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PWS_Failed_NR_CGI_List_ItemIEs_233, + 3, /* Elements count */ + &asn_SPC_PWS_Failed_NR_CGI_List_ItemIEs_specs_233 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P59_tags_60[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P59 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P59_tags_60, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P59_tags_60) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P59_tags_60[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P59_tags_60, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P59_tags_60) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P59_tags_60[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Cause_ExtIEs_237, + 3, /* Elements count */ + &asn_SPC_Cause_ExtIEs_specs_237 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P60_tags_61[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P60 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P60_tags_61, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P60_tags_61) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P60_tags_61[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P60_tags_61, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P60_tags_61) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P60_tags_61[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CNUEPagingIdentity_ExtIEs_241, + 3, /* Elements count */ + &asn_SPC_CNUEPagingIdentity_ExtIEs_specs_241 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P61_tags_62[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P61 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P61_tags_62, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P61_tags_62) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P61_tags_62[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P61_tags_62, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P61_tags_62) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P61_tags_62[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CP_TransportLayerAddress_ExtIEs_245, + 3, /* Elements count */ + &asn_SPC_CP_TransportLayerAddress_ExtIEs_specs_245 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P62_tags_63[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P62 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P62_tags_63, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P62_tags_63) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P62_tags_63[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P62_tags_63, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P62_tags_63) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P62_tags_63[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRA_Mode_Info_ExtIEs_249, + 3, /* Elements count */ + &asn_SPC_EUTRA_Mode_Info_ExtIEs_specs_249 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P63_tags_64[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P63 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P63_tags_64, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P63_tags_64) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P63_tags_64[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P63_tags_64, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P63_tags_64) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P63_tags_64[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NR_Mode_Info_ExtIEs_253, + 3, /* Elements count */ + &asn_SPC_NR_Mode_Info_ExtIEs_specs_253 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P64_tags_65[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P64 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P64_tags_65, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P64_tags_65) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P64_tags_65[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P64_tags_65, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P64_tags_65) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P64_tags_65[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PagingIdentity_ExtIEs_257, + 3, /* Elements count */ + &asn_SPC_PagingIdentity_ExtIEs_specs_257 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P65_tags_66[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P65 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P65_tags_66, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P65_tags_66) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P65_tags_66[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P65_tags_66, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P65_tags_66) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P65_tags_66[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_QoS_Characteristics_ExtIEs_261, + 3, /* Elements count */ + &asn_SPC_QoS_Characteristics_ExtIEs_specs_261 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P66_tags_67[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P66 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P66_tags_67, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P66_tags_67) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P66_tags_67[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P66_tags_67, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P66_tags_67) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P66_tags_67[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_QoSInformation_ExtIEs_265, + 3, /* Elements count */ + &asn_SPC_QoSInformation_ExtIEs_specs_265 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P67_tags_68[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P67 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P67_tags_68, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P67_tags_68) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P67_tags_68[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P67_tags_68, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P67_tags_68) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P67_tags_68[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RAT_FrequencyPriorityInformation_ExtIEs_269, + 3, /* Elements count */ + &asn_SPC_RAT_FrequencyPriorityInformation_ExtIEs_specs_269 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P68_tags_69[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P68 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P68_tags_69, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P68_tags_69) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P68_tags_69[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P68_tags_69, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P68_tags_69) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P68_tags_69[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEIdentityIndexValueChoice_ExtIEs_273, + 3, /* Elements count */ + &asn_SPC_UEIdentityIndexValueChoice_ExtIEs_specs_273 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_4590P69_tags_70[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P69 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainer_4590P69_tags_70, + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P69_tags_70) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P69_tags_70[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainer_4590P69_tags_70, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P69_tags_70) + /sizeof(asn_DEF_ProtocolIE_SingleContainer_4590P69_tags_70[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UPTransportLayerInformation_ExtIEs_277, + 3, /* Elements count */ + &asn_SPC_UPTransportLayerInformation_ExtIEs_specs_277 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/ProtocolIE-SingleContainer.h b/src/du_app/F1AP/asn/ProtocolIE-SingleContainer.h new file mode 100755 index 000000000..fb555adae --- /dev/null +++ b/src/du_app/F1AP/asn/ProtocolIE-SingleContainer.h @@ -0,0 +1,1080 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-Containers" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ProtocolIE_SingleContainer_H_ +#define _ProtocolIE_SingleContainer_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Field.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProtocolIE-SingleContainer */ +typedef F1AP_PDU_ExtIEs_t ProtocolIE_SingleContainer_4590P0_t; +typedef ResetType_ExtIEs_t ProtocolIE_SingleContainer_4590P1_t; +typedef UE_associatedLogicalF1_ConnectionItemRes_t ProtocolIE_SingleContainer_4590P2_t; +typedef UE_associatedLogicalF1_ConnectionItemResAck_t ProtocolIE_SingleContainer_4590P3_t; +typedef GNB_DU_Served_Cells_ItemIEs_t ProtocolIE_SingleContainer_4590P4_t; +typedef Cells_to_be_Activated_List_ItemIEs_t ProtocolIE_SingleContainer_4590P5_t; +typedef Served_Cells_To_Add_ItemIEs_t ProtocolIE_SingleContainer_4590P6_t; +typedef Served_Cells_To_Modify_ItemIEs_t ProtocolIE_SingleContainer_4590P7_t; +typedef Served_Cells_To_Delete_ItemIEs_t ProtocolIE_SingleContainer_4590P8_t; +typedef Cells_Status_ItemIEs_t ProtocolIE_SingleContainer_4590P9_t; +typedef Dedicated_SIDelivery_NeededUE_ItemIEs_t ProtocolIE_SingleContainer_4590P10_t; +typedef Cells_to_be_Deactivated_List_ItemIEs_t ProtocolIE_SingleContainer_4590P11_t; +typedef GNB_CU_TNL_Association_To_Add_ItemIEs_t ProtocolIE_SingleContainer_4590P12_t; +typedef GNB_CU_TNL_Association_To_Remove_ItemIEs_t ProtocolIE_SingleContainer_4590P13_t; +typedef GNB_CU_TNL_Association_To_Update_ItemIEs_t ProtocolIE_SingleContainer_4590P14_t; +typedef Cells_to_be_Barred_ItemIEs_t ProtocolIE_SingleContainer_4590P15_t; +typedef Protected_EUTRA_Resources_ItemIEs_t ProtocolIE_SingleContainer_4590P16_t; +typedef Cells_Failed_to_be_Activated_List_ItemIEs_t ProtocolIE_SingleContainer_4590P17_t; +typedef GNB_CU_TNL_Association_Setup_ItemIEs_t ProtocolIE_SingleContainer_4590P18_t; +typedef GNB_CU_TNL_Association_Failed_To_Setup_ItemIEs_t ProtocolIE_SingleContainer_4590P19_t; +typedef Candidate_SpCell_ItemIEs_t ProtocolIE_SingleContainer_4590P20_t; +typedef SCell_ToBeSetup_ItemIEs_t ProtocolIE_SingleContainer_4590P21_t; +typedef SRBs_ToBeSetup_ItemIEs_t ProtocolIE_SingleContainer_4590P22_t; +typedef DRBs_ToBeSetup_ItemIEs_t ProtocolIE_SingleContainer_4590P23_t; +typedef DRBs_Setup_ItemIEs_t ProtocolIE_SingleContainer_4590P24_t; +typedef SRBs_FailedToBeSetup_ItemIEs_t ProtocolIE_SingleContainer_4590P25_t; +typedef DRBs_FailedToBeSetup_ItemIEs_t ProtocolIE_SingleContainer_4590P26_t; +typedef SCell_FailedtoSetup_ItemIEs_t ProtocolIE_SingleContainer_4590P27_t; +typedef SRBs_Setup_ItemIEs_t ProtocolIE_SingleContainer_4590P28_t; +typedef Potential_SpCell_ItemIEs_t ProtocolIE_SingleContainer_4590P29_t; +typedef SCell_ToBeSetupMod_ItemIEs_t ProtocolIE_SingleContainer_4590P30_t; +typedef SCell_ToBeRemoved_ItemIEs_t ProtocolIE_SingleContainer_4590P31_t; +typedef SRBs_ToBeSetupMod_ItemIEs_t ProtocolIE_SingleContainer_4590P32_t; +typedef DRBs_ToBeSetupMod_ItemIEs_t ProtocolIE_SingleContainer_4590P33_t; +typedef DRBs_ToBeModified_ItemIEs_t ProtocolIE_SingleContainer_4590P34_t; +typedef SRBs_ToBeReleased_ItemIEs_t ProtocolIE_SingleContainer_4590P35_t; +typedef DRBs_ToBeReleased_ItemIEs_t ProtocolIE_SingleContainer_4590P36_t; +typedef DRBs_SetupMod_ItemIEs_t ProtocolIE_SingleContainer_4590P37_t; +typedef DRBs_Modified_ItemIEs_t ProtocolIE_SingleContainer_4590P38_t; +typedef SRBs_SetupMod_ItemIEs_t ProtocolIE_SingleContainer_4590P39_t; +typedef SRBs_Modified_ItemIEs_t ProtocolIE_SingleContainer_4590P40_t; +typedef DRBs_FailedToBeModified_ItemIEs_t ProtocolIE_SingleContainer_4590P41_t; +typedef SRBs_FailedToBeSetupMod_ItemIEs_t ProtocolIE_SingleContainer_4590P42_t; +typedef DRBs_FailedToBeSetupMod_ItemIEs_t ProtocolIE_SingleContainer_4590P43_t; +typedef SCell_FailedtoSetupMod_ItemIEs_t ProtocolIE_SingleContainer_4590P44_t; +typedef Associated_SCell_ItemIEs_t ProtocolIE_SingleContainer_4590P45_t; +typedef DRBs_Required_ToBeModified_ItemIEs_t ProtocolIE_SingleContainer_4590P46_t; +typedef DRBs_Required_ToBeReleased_ItemIEs_t ProtocolIE_SingleContainer_4590P47_t; +typedef SRBs_Required_ToBeReleased_ItemIEs_t ProtocolIE_SingleContainer_4590P48_t; +typedef DRBs_ModifiedConf_ItemIEs_t ProtocolIE_SingleContainer_4590P49_t; +typedef Cells_To_Be_Broadcast_List_ItemIEs_t ProtocolIE_SingleContainer_4590P50_t; +typedef Cells_Broadcast_Completed_List_ItemIEs_t ProtocolIE_SingleContainer_4590P51_t; +typedef Broadcast_To_Be_Cancelled_List_ItemIEs_t ProtocolIE_SingleContainer_4590P52_t; +typedef Cells_Broadcast_Cancelled_List_ItemIEs_t ProtocolIE_SingleContainer_4590P53_t; +typedef DRB_Activity_ItemIEs_t ProtocolIE_SingleContainer_4590P54_t; +typedef PagingCell_ItemIEs_t ProtocolIE_SingleContainer_4590P55_t; +typedef DRB_Notify_ItemIEs_t ProtocolIE_SingleContainer_4590P56_t; +typedef NR_CGI_List_For_Restart_List_ItemIEs_t ProtocolIE_SingleContainer_4590P57_t; +typedef PWS_Failed_NR_CGI_List_ItemIEs_t ProtocolIE_SingleContainer_4590P58_t; +typedef Cause_ExtIEs_t ProtocolIE_SingleContainer_4590P59_t; +typedef CNUEPagingIdentity_ExtIEs_t ProtocolIE_SingleContainer_4590P60_t; +typedef CP_TransportLayerAddress_ExtIEs_t ProtocolIE_SingleContainer_4590P61_t; +typedef EUTRA_Mode_Info_ExtIEs_t ProtocolIE_SingleContainer_4590P62_t; +typedef NR_Mode_Info_ExtIEs_t ProtocolIE_SingleContainer_4590P63_t; +typedef PagingIdentity_ExtIEs_t ProtocolIE_SingleContainer_4590P64_t; +typedef QoS_Characteristics_ExtIEs_t ProtocolIE_SingleContainer_4590P65_t; +typedef QoSInformation_ExtIEs_t ProtocolIE_SingleContainer_4590P66_t; +typedef RAT_FrequencyPriorityInformation_ExtIEs_t ProtocolIE_SingleContainer_4590P67_t; +typedef UEIdentityIndexValueChoice_ExtIEs_t ProtocolIE_SingleContainer_4590P68_t; +typedef UPTransportLayerInformation_ExtIEs_t ProtocolIE_SingleContainer_4590P69_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P0; +asn_struct_free_f ProtocolIE_SingleContainer_4590P0_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P0_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P0_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P0_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P0_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P0_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P0_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P0_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P0_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P0_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P0_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P0_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P0_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P1; +asn_struct_free_f ProtocolIE_SingleContainer_4590P1_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P1_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P1_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P1_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P1_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P1_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P1_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P1_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P1_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P1_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P1_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P1_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P1_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P2; +asn_struct_free_f ProtocolIE_SingleContainer_4590P2_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P2_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P2_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P2_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P2_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P2_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P2_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P2_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P2_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P2_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P2_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P2_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P2_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P3; +asn_struct_free_f ProtocolIE_SingleContainer_4590P3_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P3_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P3_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P3_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P3_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P3_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P3_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P3_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P3_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P3_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P3_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P3_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P3_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P4; +asn_struct_free_f ProtocolIE_SingleContainer_4590P4_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P4_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P4_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P4_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P4_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P4_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P4_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P4_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P4_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P4_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P4_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P4_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P4_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P5; +asn_struct_free_f ProtocolIE_SingleContainer_4590P5_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P5_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P5_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P5_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P5_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P5_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P5_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P5_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P5_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P5_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P5_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P5_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P5_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P6; +asn_struct_free_f ProtocolIE_SingleContainer_4590P6_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P6_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P6_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P6_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P6_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P6_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P6_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P6_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P6_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P6_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P6_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P6_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P6_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P7; +asn_struct_free_f ProtocolIE_SingleContainer_4590P7_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P7_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P7_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P7_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P7_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P7_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P7_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P7_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P7_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P7_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P7_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P7_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P7_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P8; +asn_struct_free_f ProtocolIE_SingleContainer_4590P8_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P8_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P8_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P8_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P8_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P8_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P8_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P8_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P8_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P8_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P8_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P8_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P8_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P9; +asn_struct_free_f ProtocolIE_SingleContainer_4590P9_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P9_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P9_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P9_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P9_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P9_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P9_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P9_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P9_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P9_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P9_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P9_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P9_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P10; +asn_struct_free_f ProtocolIE_SingleContainer_4590P10_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P10_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P10_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P10_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P10_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P10_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P10_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P10_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P10_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P10_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P10_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P10_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P10_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P11; +asn_struct_free_f ProtocolIE_SingleContainer_4590P11_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P11_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P11_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P11_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P11_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P11_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P11_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P11_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P11_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P11_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P11_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P11_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P11_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P12; +asn_struct_free_f ProtocolIE_SingleContainer_4590P12_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P12_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P12_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P12_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P12_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P12_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P12_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P12_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P12_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P12_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P12_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P12_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P12_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P13; +asn_struct_free_f ProtocolIE_SingleContainer_4590P13_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P13_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P13_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P13_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P13_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P13_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P13_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P13_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P13_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P13_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P13_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P13_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P13_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P14; +asn_struct_free_f ProtocolIE_SingleContainer_4590P14_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P14_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P14_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P14_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P14_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P14_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P14_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P14_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P14_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P14_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P14_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P14_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P14_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P15; +asn_struct_free_f ProtocolIE_SingleContainer_4590P15_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P15_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P15_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P15_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P15_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P15_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P15_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P15_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P15_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P15_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P15_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P15_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P15_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P16; +asn_struct_free_f ProtocolIE_SingleContainer_4590P16_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P16_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P16_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P16_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P16_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P16_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P16_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P16_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P16_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P16_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P16_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P16_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P16_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P17; +asn_struct_free_f ProtocolIE_SingleContainer_4590P17_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P17_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P17_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P17_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P17_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P17_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P17_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P17_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P17_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P17_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P17_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P17_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P17_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P18; +asn_struct_free_f ProtocolIE_SingleContainer_4590P18_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P18_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P18_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P18_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P18_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P18_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P18_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P18_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P18_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P18_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P18_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P18_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P18_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P19; +asn_struct_free_f ProtocolIE_SingleContainer_4590P19_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P19_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P19_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P19_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P19_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P19_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P19_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P19_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P19_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P19_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P19_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P19_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P19_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P20; +asn_struct_free_f ProtocolIE_SingleContainer_4590P20_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P20_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P20_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P20_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P20_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P20_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P20_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P20_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P20_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P20_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P20_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P20_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P20_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P21; +asn_struct_free_f ProtocolIE_SingleContainer_4590P21_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P21_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P21_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P21_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P21_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P21_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P21_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P21_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P21_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P21_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P21_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P21_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P21_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P22; +asn_struct_free_f ProtocolIE_SingleContainer_4590P22_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P22_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P22_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P22_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P22_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P22_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P22_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P22_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P22_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P22_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P22_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P22_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P22_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P23; +asn_struct_free_f ProtocolIE_SingleContainer_4590P23_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P23_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P23_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P23_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P23_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P23_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P23_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P23_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P23_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P23_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P23_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P23_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P23_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P24; +asn_struct_free_f ProtocolIE_SingleContainer_4590P24_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P24_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P24_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P24_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P24_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P24_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P24_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P24_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P24_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P24_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P24_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P24_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P24_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P25; +asn_struct_free_f ProtocolIE_SingleContainer_4590P25_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P25_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P25_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P25_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P25_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P25_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P25_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P25_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P25_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P25_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P25_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P25_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P25_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P26; +asn_struct_free_f ProtocolIE_SingleContainer_4590P26_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P26_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P26_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P26_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P26_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P26_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P26_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P26_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P26_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P26_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P26_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P26_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P26_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P27; +asn_struct_free_f ProtocolIE_SingleContainer_4590P27_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P27_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P27_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P27_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P27_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P27_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P27_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P27_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P27_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P27_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P27_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P27_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P27_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P28; +asn_struct_free_f ProtocolIE_SingleContainer_4590P28_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P28_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P28_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P28_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P28_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P28_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P28_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P28_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P28_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P28_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P28_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P28_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P28_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P29; +asn_struct_free_f ProtocolIE_SingleContainer_4590P29_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P29_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P29_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P29_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P29_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P29_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P29_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P29_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P29_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P29_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P29_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P29_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P29_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P30; +asn_struct_free_f ProtocolIE_SingleContainer_4590P30_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P30_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P30_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P30_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P30_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P30_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P30_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P30_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P30_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P30_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P30_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P30_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P30_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P31; +asn_struct_free_f ProtocolIE_SingleContainer_4590P31_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P31_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P31_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P31_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P31_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P31_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P31_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P31_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P31_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P31_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P31_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P31_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P31_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P32; +asn_struct_free_f ProtocolIE_SingleContainer_4590P32_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P32_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P32_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P32_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P32_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P32_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P32_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P32_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P32_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P32_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P32_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P32_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P32_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P33; +asn_struct_free_f ProtocolIE_SingleContainer_4590P33_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P33_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P33_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P33_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P33_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P33_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P33_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P33_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P33_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P33_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P33_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P33_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P33_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P34; +asn_struct_free_f ProtocolIE_SingleContainer_4590P34_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P34_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P34_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P34_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P34_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P34_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P34_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P34_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P34_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P34_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P34_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P34_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P34_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P35; +asn_struct_free_f ProtocolIE_SingleContainer_4590P35_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P35_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P35_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P35_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P35_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P35_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P35_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P35_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P35_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P35_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P35_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P35_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P35_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P36; +asn_struct_free_f ProtocolIE_SingleContainer_4590P36_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P36_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P36_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P36_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P36_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P36_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P36_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P36_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P36_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P36_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P36_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P36_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P36_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P37; +asn_struct_free_f ProtocolIE_SingleContainer_4590P37_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P37_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P37_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P37_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P37_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P37_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P37_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P37_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P37_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P37_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P37_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P37_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P37_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P38; +asn_struct_free_f ProtocolIE_SingleContainer_4590P38_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P38_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P38_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P38_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P38_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P38_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P38_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P38_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P38_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P38_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P38_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P38_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P38_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P39; +asn_struct_free_f ProtocolIE_SingleContainer_4590P39_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P39_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P39_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P39_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P39_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P39_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P39_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P39_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P39_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P39_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P39_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P39_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P39_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P40; +asn_struct_free_f ProtocolIE_SingleContainer_4590P40_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P40_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P40_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P40_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P40_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P40_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P40_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P40_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P40_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P40_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P40_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P40_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P40_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P41; +asn_struct_free_f ProtocolIE_SingleContainer_4590P41_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P41_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P41_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P41_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P41_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P41_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P41_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P41_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P41_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P41_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P41_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P41_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P41_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P42; +asn_struct_free_f ProtocolIE_SingleContainer_4590P42_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P42_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P42_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P42_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P42_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P42_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P42_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P42_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P42_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P42_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P42_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P42_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P42_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P43; +asn_struct_free_f ProtocolIE_SingleContainer_4590P43_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P43_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P43_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P43_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P43_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P43_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P43_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P43_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P43_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P43_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P43_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P43_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P43_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P44; +asn_struct_free_f ProtocolIE_SingleContainer_4590P44_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P44_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P44_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P44_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P44_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P44_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P44_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P44_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P44_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P44_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P44_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P44_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P44_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P45; +asn_struct_free_f ProtocolIE_SingleContainer_4590P45_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P45_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P45_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P45_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P45_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P45_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P45_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P45_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P45_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P45_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P45_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P45_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P45_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P46; +asn_struct_free_f ProtocolIE_SingleContainer_4590P46_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P46_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P46_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P46_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P46_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P46_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P46_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P46_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P46_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P46_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P46_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P46_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P46_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P47; +asn_struct_free_f ProtocolIE_SingleContainer_4590P47_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P47_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P47_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P47_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P47_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P47_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P47_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P47_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P47_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P47_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P47_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P47_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P47_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P48; +asn_struct_free_f ProtocolIE_SingleContainer_4590P48_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P48_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P48_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P48_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P48_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P48_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P48_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P48_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P48_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P48_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P48_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P48_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P48_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P49; +asn_struct_free_f ProtocolIE_SingleContainer_4590P49_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P49_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P49_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P49_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P49_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P49_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P49_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P49_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P49_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P49_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P49_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P49_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P49_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P50; +asn_struct_free_f ProtocolIE_SingleContainer_4590P50_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P50_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P50_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P50_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P50_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P50_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P50_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P50_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P50_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P50_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P50_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P50_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P50_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P51; +asn_struct_free_f ProtocolIE_SingleContainer_4590P51_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P51_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P51_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P51_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P51_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P51_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P51_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P51_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P51_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P51_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P51_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P51_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P51_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P52; +asn_struct_free_f ProtocolIE_SingleContainer_4590P52_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P52_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P52_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P52_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P52_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P52_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P52_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P52_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P52_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P52_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P52_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P52_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P52_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P53; +asn_struct_free_f ProtocolIE_SingleContainer_4590P53_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P53_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P53_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P53_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P53_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P53_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P53_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P53_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P53_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P53_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P53_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P53_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P53_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P54; +asn_struct_free_f ProtocolIE_SingleContainer_4590P54_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P54_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P54_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P54_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P54_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P54_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P54_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P54_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P54_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P54_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P54_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P54_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P54_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P55; +asn_struct_free_f ProtocolIE_SingleContainer_4590P55_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P55_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P55_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P55_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P55_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P55_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P55_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P55_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P55_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P55_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P55_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P55_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P55_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P56; +asn_struct_free_f ProtocolIE_SingleContainer_4590P56_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P56_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P56_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P56_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P56_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P56_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P56_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P56_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P56_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P56_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P56_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P56_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P56_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P57; +asn_struct_free_f ProtocolIE_SingleContainer_4590P57_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P57_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P57_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P57_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P57_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P57_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P57_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P57_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P57_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P57_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P57_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P57_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P57_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P58; +asn_struct_free_f ProtocolIE_SingleContainer_4590P58_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P58_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P58_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P58_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P58_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P58_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P58_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P58_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P58_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P58_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P58_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P58_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P58_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P59; +asn_struct_free_f ProtocolIE_SingleContainer_4590P59_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P59_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P59_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P59_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P59_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P59_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P59_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P59_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P59_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P59_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P59_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P59_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P59_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P60; +asn_struct_free_f ProtocolIE_SingleContainer_4590P60_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P60_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P60_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P60_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P60_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P60_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P60_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P60_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P60_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P60_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P60_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P60_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P60_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P61; +asn_struct_free_f ProtocolIE_SingleContainer_4590P61_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P61_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P61_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P61_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P61_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P61_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P61_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P61_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P61_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P61_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P61_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P61_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P61_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P62; +asn_struct_free_f ProtocolIE_SingleContainer_4590P62_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P62_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P62_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P62_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P62_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P62_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P62_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P62_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P62_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P62_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P62_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P62_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P62_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P63; +asn_struct_free_f ProtocolIE_SingleContainer_4590P63_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P63_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P63_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P63_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P63_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P63_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P63_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P63_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P63_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P63_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P63_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P63_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P63_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P64; +asn_struct_free_f ProtocolIE_SingleContainer_4590P64_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P64_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P64_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P64_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P64_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P64_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P64_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P64_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P64_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P64_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P64_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P64_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P64_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P65; +asn_struct_free_f ProtocolIE_SingleContainer_4590P65_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P65_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P65_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P65_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P65_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P65_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P65_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P65_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P65_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P65_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P65_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P65_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P65_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P66; +asn_struct_free_f ProtocolIE_SingleContainer_4590P66_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P66_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P66_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P66_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P66_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P66_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P66_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P66_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P66_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P66_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P66_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P66_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P66_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P67; +asn_struct_free_f ProtocolIE_SingleContainer_4590P67_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P67_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P67_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P67_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P67_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P67_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P67_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P67_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P67_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P67_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P67_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P67_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P67_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P68; +asn_struct_free_f ProtocolIE_SingleContainer_4590P68_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P68_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P68_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P68_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P68_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P68_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P68_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P68_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P68_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P68_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P68_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P68_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P68_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_4590P69; +asn_struct_free_f ProtocolIE_SingleContainer_4590P69_free; +asn_struct_print_f ProtocolIE_SingleContainer_4590P69_print; +asn_constr_check_f ProtocolIE_SingleContainer_4590P69_constraint; +ber_type_decoder_f ProtocolIE_SingleContainer_4590P69_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainer_4590P69_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainer_4590P69_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainer_4590P69_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainer_4590P69_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainer_4590P69_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainer_4590P69_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P69_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainer_4590P69_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainer_4590P69_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtocolIE_SingleContainer_H_ */ +#include diff --git a/src/du_app/F1AP/asn/QCI.c b/src/du_app/F1AP/asn/QCI.c new file mode 100755 index 000000000..a8de89e36 --- /dev/null +++ b/src/du_app/F1AP/asn/QCI.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#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 = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_QCI_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +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/src/du_app/F1AP/asn/QCI.h b/src/du_app/F1AP/asn/QCI.h new file mode 100755 index 000000000..2106d0deb --- /dev/null +++ b/src/du_app/F1AP/asn/QCI.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#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/src/du_app/F1AP/asn/QoS-Characteristics.c b/src/du_app/F1AP/asn/QoS-Characteristics.c new file mode 100755 index 000000000..137a07780 --- /dev/null +++ b/src/du_app/F1AP/asn/QoS-Characteristics.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "QoS-Characteristics.h" + +#include "NonDynamic5QIDescriptor.h" +#include "Dynamic5QIDescriptor.h" +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_QoS_Characteristics_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_QoS_Characteristics_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_QoS_Characteristics_1[] = { + { ATF_POINTER, 0, offsetof(struct QoS_Characteristics, choice.non_Dynamic_5QI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NonDynamic5QIDescriptor, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "non-Dynamic-5QI" + }, + { ATF_POINTER, 0, offsetof(struct QoS_Characteristics, choice.dynamic_5QI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Dynamic5QIDescriptor, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dynamic-5QI" + }, + { ATF_POINTER, 0, offsetof(struct QoS_Characteristics, choice.choice_extension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_SingleContainer_4590P65, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-extension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_QoS_Characteristics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* non-Dynamic-5QI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dynamic-5QI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-extension */ +}; +asn_CHOICE_specifics_t asn_SPC_QoS_Characteristics_specs_1 = { + sizeof(struct QoS_Characteristics), + offsetof(struct QoS_Characteristics, _asn_ctx), + offsetof(struct QoS_Characteristics, present), + sizeof(((struct QoS_Characteristics *)0)->present), + asn_MAP_QoS_Characteristics_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_QoS_Characteristics = { + "QoS-Characteristics", + "QoS-Characteristics", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_QoS_Characteristics_constr_1, &asn_PER_type_QoS_Characteristics_constr_1, CHOICE_constraint }, + asn_MBR_QoS_Characteristics_1, + 3, /* Elements count */ + &asn_SPC_QoS_Characteristics_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/QoS-Characteristics.h b/src/du_app/F1AP/asn/QoS-Characteristics.h new file mode 100755 index 000000000..498196960 --- /dev/null +++ b/src/du_app/F1AP/asn/QoS-Characteristics.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _QoS_Characteristics_H_ +#define _QoS_Characteristics_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum QoS_Characteristics_PR { + QoS_Characteristics_PR_NOTHING, /* No components present */ + QoS_Characteristics_PR_non_Dynamic_5QI, + QoS_Characteristics_PR_dynamic_5QI, + QoS_Characteristics_PR_choice_extension +} QoS_Characteristics_PR; + +/* Forward declarations */ +struct NonDynamic5QIDescriptor; +struct Dynamic5QIDescriptor; +struct ProtocolIE_SingleContainer; + +/* QoS-Characteristics */ +typedef struct QoS_Characteristics { + QoS_Characteristics_PR present; + union QoS_Characteristics_u { + struct NonDynamic5QIDescriptor *non_Dynamic_5QI; + struct Dynamic5QIDescriptor *dynamic_5QI; + struct ProtocolIE_SingleContainer *choice_extension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} QoS_Characteristics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_QoS_Characteristics; +extern asn_CHOICE_specifics_t asn_SPC_QoS_Characteristics_specs_1; +extern asn_TYPE_member_t asn_MBR_QoS_Characteristics_1[3]; +extern asn_per_constraints_t asn_PER_type_QoS_Characteristics_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _QoS_Characteristics_H_ */ +#include diff --git a/src/du_app/F1AP/asn/QoSFlowIdentifier.c b/src/du_app/F1AP/asn/QoSFlowIdentifier.c new file mode 100755 index 000000000..617160e1c --- /dev/null +++ b/src/du_app/F1AP/asn/QoSFlowIdentifier.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "QoSFlowIdentifier.h" + +int +QoSFlowIdentifier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 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_QoSFlowIdentifier_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +asn_per_constraints_t asn_PER_type_QoSFlowIdentifier_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_QoSFlowIdentifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_QoSFlowIdentifier = { + "QoSFlowIdentifier", + "QoSFlowIdentifier", + &asn_OP_NativeInteger, + asn_DEF_QoSFlowIdentifier_tags_1, + sizeof(asn_DEF_QoSFlowIdentifier_tags_1) + /sizeof(asn_DEF_QoSFlowIdentifier_tags_1[0]), /* 1 */ + asn_DEF_QoSFlowIdentifier_tags_1, /* Same as above */ + sizeof(asn_DEF_QoSFlowIdentifier_tags_1) + /sizeof(asn_DEF_QoSFlowIdentifier_tags_1[0]), /* 1 */ + { &asn_OER_type_QoSFlowIdentifier_constr_1, &asn_PER_type_QoSFlowIdentifier_constr_1, QoSFlowIdentifier_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/QoSFlowIdentifier.h b/src/du_app/F1AP/asn/QoSFlowIdentifier.h new file mode 100755 index 000000000..48fe24ce7 --- /dev/null +++ b/src/du_app/F1AP/asn/QoSFlowIdentifier.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _QoSFlowIdentifier_H_ +#define _QoSFlowIdentifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* QoSFlowIdentifier */ +typedef long QoSFlowIdentifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_QoSFlowIdentifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_QoSFlowIdentifier; +asn_struct_free_f QoSFlowIdentifier_free; +asn_struct_print_f QoSFlowIdentifier_print; +asn_constr_check_f QoSFlowIdentifier_constraint; +ber_type_decoder_f QoSFlowIdentifier_decode_ber; +der_type_encoder_f QoSFlowIdentifier_encode_der; +xer_type_decoder_f QoSFlowIdentifier_decode_xer; +xer_type_encoder_f QoSFlowIdentifier_encode_xer; +oer_type_decoder_f QoSFlowIdentifier_decode_oer; +oer_type_encoder_f QoSFlowIdentifier_encode_oer; +per_type_decoder_f QoSFlowIdentifier_decode_uper; +per_type_encoder_f QoSFlowIdentifier_encode_uper; +per_type_decoder_f QoSFlowIdentifier_decode_aper; +per_type_encoder_f QoSFlowIdentifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _QoSFlowIdentifier_H_ */ +#include diff --git a/src/du_app/F1AP/asn/QoSFlowLevelQoSParameters.c b/src/du_app/F1AP/asn/QoSFlowLevelQoSParameters.c new file mode 100755 index 000000000..127e45764 --- /dev/null +++ b/src/du_app/F1AP/asn/QoSFlowLevelQoSParameters.c @@ -0,0 +1,143 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "QoSFlowLevelQoSParameters.h" + +#include "GBR-QoSFlowInformation.h" +#include "ProtocolExtensionContainer.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_reflective_QoS_Attribute_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_reflective_QoS_Attribute_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 const asn_INTEGER_enum_map_t asn_MAP_reflective_QoS_Attribute_value2enum_5[] = { + { 0, 10, "subject-to" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_reflective_QoS_Attribute_enum2value_5[] = { + 0 /* subject-to(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_reflective_QoS_Attribute_specs_5 = { + asn_MAP_reflective_QoS_Attribute_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_reflective_QoS_Attribute_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_reflective_QoS_Attribute_tags_5[] = { + (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_reflective_QoS_Attribute_5 = { + "reflective-QoS-Attribute", + "reflective-QoS-Attribute", + &asn_OP_NativeEnumerated, + asn_DEF_reflective_QoS_Attribute_tags_5, + sizeof(asn_DEF_reflective_QoS_Attribute_tags_5) + /sizeof(asn_DEF_reflective_QoS_Attribute_tags_5[0]) - 1, /* 1 */ + asn_DEF_reflective_QoS_Attribute_tags_5, /* Same as above */ + sizeof(asn_DEF_reflective_QoS_Attribute_tags_5) + /sizeof(asn_DEF_reflective_QoS_Attribute_tags_5[0]), /* 2 */ + { &asn_OER_type_reflective_QoS_Attribute_constr_5, &asn_PER_type_reflective_QoS_Attribute_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_reflective_QoS_Attribute_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_QoSFlowLevelQoSParameters_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct QoSFlowLevelQoSParameters, qoS_Characteristics), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_QoS_Characteristics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qoS-Characteristics" + }, + { ATF_NOFLAGS, 0, offsetof(struct QoSFlowLevelQoSParameters, nGRANallocationRetentionPriority), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NGRANAllocationAndRetentionPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nGRANallocationRetentionPriority" + }, + { ATF_POINTER, 3, offsetof(struct QoSFlowLevelQoSParameters, gBR_QoS_Flow_Information), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GBR_QoSFlowInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gBR-QoS-Flow-Information" + }, + { ATF_POINTER, 2, offsetof(struct QoSFlowLevelQoSParameters, reflective_QoS_Attribute), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_reflective_QoS_Attribute_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reflective-QoS-Attribute" + }, + { ATF_POINTER, 1, offsetof(struct QoSFlowLevelQoSParameters, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P74, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_QoSFlowLevelQoSParameters_oms_1[] = { 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_QoSFlowLevelQoSParameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_QoSFlowLevelQoSParameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qoS-Characteristics */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nGRANallocationRetentionPriority */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* gBR-QoS-Flow-Information */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* reflective-QoS-Attribute */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_QoSFlowLevelQoSParameters_specs_1 = { + sizeof(struct QoSFlowLevelQoSParameters), + offsetof(struct QoSFlowLevelQoSParameters, _asn_ctx), + asn_MAP_QoSFlowLevelQoSParameters_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_QoSFlowLevelQoSParameters_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_QoSFlowLevelQoSParameters = { + "QoSFlowLevelQoSParameters", + "QoSFlowLevelQoSParameters", + &asn_OP_SEQUENCE, + asn_DEF_QoSFlowLevelQoSParameters_tags_1, + sizeof(asn_DEF_QoSFlowLevelQoSParameters_tags_1) + /sizeof(asn_DEF_QoSFlowLevelQoSParameters_tags_1[0]), /* 1 */ + asn_DEF_QoSFlowLevelQoSParameters_tags_1, /* Same as above */ + sizeof(asn_DEF_QoSFlowLevelQoSParameters_tags_1) + /sizeof(asn_DEF_QoSFlowLevelQoSParameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_QoSFlowLevelQoSParameters_1, + 5, /* Elements count */ + &asn_SPC_QoSFlowLevelQoSParameters_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/QoSFlowLevelQoSParameters.h b/src/du_app/F1AP/asn/QoSFlowLevelQoSParameters.h new file mode 100755 index 000000000..9ff5965b2 --- /dev/null +++ b/src/du_app/F1AP/asn/QoSFlowLevelQoSParameters.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _QoSFlowLevelQoSParameters_H_ +#define _QoSFlowLevelQoSParameters_H_ + + +#include + +/* Including external dependencies */ +#include "QoS-Characteristics.h" +#include "NGRANAllocationAndRetentionPriority.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum QoSFlowLevelQoSParameters__reflective_QoS_Attribute { + QoSFlowLevelQoSParameters__reflective_QoS_Attribute_subject_to = 0 + /* + * Enumeration is extensible + */ +} e_QoSFlowLevelQoSParameters__reflective_QoS_Attribute; + +/* Forward declarations */ +struct GBR_QoSFlowInformation; +struct ProtocolExtensionContainer; + +/* QoSFlowLevelQoSParameters */ +typedef struct QoSFlowLevelQoSParameters { + QoS_Characteristics_t qoS_Characteristics; + NGRANAllocationAndRetentionPriority_t nGRANallocationRetentionPriority; + struct GBR_QoSFlowInformation *gBR_QoS_Flow_Information; /* OPTIONAL */ + long *reflective_QoS_Attribute; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} QoSFlowLevelQoSParameters_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_reflective_QoS_Attribute_5; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_QoSFlowLevelQoSParameters; +extern asn_SEQUENCE_specifics_t asn_SPC_QoSFlowLevelQoSParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_QoSFlowLevelQoSParameters_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _QoSFlowLevelQoSParameters_H_ */ +#include diff --git a/src/du_app/F1AP/asn/QoSFlowMappingIndication.c b/src/du_app/F1AP/asn/QoSFlowMappingIndication.c new file mode 100755 index 000000000..16ecc3a69 --- /dev/null +++ b/src/du_app/F1AP/asn/QoSFlowMappingIndication.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "QoSFlowMappingIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_QoSFlowMappingIndication_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_QoSFlowMappingIndication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_QoSFlowMappingIndication_value2enum_1[] = { + { 0, 2, "ul" }, + { 1, 2, "dl" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_QoSFlowMappingIndication_enum2value_1[] = { + 1, /* dl(1) */ + 0 /* ul(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_QoSFlowMappingIndication_specs_1 = { + asn_MAP_QoSFlowMappingIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_QoSFlowMappingIndication_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_QoSFlowMappingIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_QoSFlowMappingIndication = { + "QoSFlowMappingIndication", + "QoSFlowMappingIndication", + &asn_OP_NativeEnumerated, + asn_DEF_QoSFlowMappingIndication_tags_1, + sizeof(asn_DEF_QoSFlowMappingIndication_tags_1) + /sizeof(asn_DEF_QoSFlowMappingIndication_tags_1[0]), /* 1 */ + asn_DEF_QoSFlowMappingIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_QoSFlowMappingIndication_tags_1) + /sizeof(asn_DEF_QoSFlowMappingIndication_tags_1[0]), /* 1 */ + { &asn_OER_type_QoSFlowMappingIndication_constr_1, &asn_PER_type_QoSFlowMappingIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_QoSFlowMappingIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/QoSFlowMappingIndication.h b/src/du_app/F1AP/asn/QoSFlowMappingIndication.h new file mode 100755 index 000000000..deee76dcc --- /dev/null +++ b/src/du_app/F1AP/asn/QoSFlowMappingIndication.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _QoSFlowMappingIndication_H_ +#define _QoSFlowMappingIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum QoSFlowMappingIndication { + QoSFlowMappingIndication_ul = 0, + QoSFlowMappingIndication_dl = 1 + /* + * Enumeration is extensible + */ +} e_QoSFlowMappingIndication; + +/* QoSFlowMappingIndication */ +typedef long QoSFlowMappingIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_QoSFlowMappingIndication; +asn_struct_free_f QoSFlowMappingIndication_free; +asn_struct_print_f QoSFlowMappingIndication_print; +asn_constr_check_f QoSFlowMappingIndication_constraint; +ber_type_decoder_f QoSFlowMappingIndication_decode_ber; +der_type_encoder_f QoSFlowMappingIndication_encode_der; +xer_type_decoder_f QoSFlowMappingIndication_decode_xer; +xer_type_encoder_f QoSFlowMappingIndication_encode_xer; +oer_type_decoder_f QoSFlowMappingIndication_decode_oer; +oer_type_encoder_f QoSFlowMappingIndication_encode_oer; +per_type_decoder_f QoSFlowMappingIndication_decode_uper; +per_type_encoder_f QoSFlowMappingIndication_encode_uper; +per_type_decoder_f QoSFlowMappingIndication_decode_aper; +per_type_encoder_f QoSFlowMappingIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _QoSFlowMappingIndication_H_ */ +#include diff --git a/src/du_app/F1AP/asn/QoSInformation.c b/src/du_app/F1AP/asn/QoSInformation.c new file mode 100755 index 000000000..10cf0bf8a --- /dev/null +++ b/src/du_app/F1AP/asn/QoSInformation.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "QoSInformation.h" + +#include "EUTRANQoS.h" +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_QoSInformation_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_QoSInformation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_QoSInformation_1[] = { + { ATF_POINTER, 0, offsetof(struct QoSInformation, choice.eUTRANQoS), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRANQoS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRANQoS" + }, + { ATF_POINTER, 0, offsetof(struct QoSInformation, choice.choice_extension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_SingleContainer_4590P66, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-extension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_QoSInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eUTRANQoS */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* choice-extension */ +}; +asn_CHOICE_specifics_t asn_SPC_QoSInformation_specs_1 = { + sizeof(struct QoSInformation), + offsetof(struct QoSInformation, _asn_ctx), + offsetof(struct QoSInformation, present), + sizeof(((struct QoSInformation *)0)->present), + asn_MAP_QoSInformation_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_QoSInformation = { + "QoSInformation", + "QoSInformation", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_QoSInformation_constr_1, &asn_PER_type_QoSInformation_constr_1, CHOICE_constraint }, + asn_MBR_QoSInformation_1, + 2, /* Elements count */ + &asn_SPC_QoSInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/QoSInformation.h b/src/du_app/F1AP/asn/QoSInformation.h new file mode 100755 index 000000000..4e757581c --- /dev/null +++ b/src/du_app/F1AP/asn/QoSInformation.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _QoSInformation_H_ +#define _QoSInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum QoSInformation_PR { + QoSInformation_PR_NOTHING, /* No components present */ + QoSInformation_PR_eUTRANQoS, + QoSInformation_PR_choice_extension +} QoSInformation_PR; + +/* Forward declarations */ +struct EUTRANQoS; +struct ProtocolIE_SingleContainer; + +/* QoSInformation */ +typedef struct QoSInformation { + QoSInformation_PR present; + union QoSInformation_u { + struct EUTRANQoS *eUTRANQoS; + struct ProtocolIE_SingleContainer *choice_extension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} QoSInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_QoSInformation; +extern asn_CHOICE_specifics_t asn_SPC_QoSInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_QoSInformation_1[2]; +extern asn_per_constraints_t asn_PER_type_QoSInformation_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _QoSInformation_H_ */ +#include diff --git a/src/du_app/F1AP/asn/RANAC.c b/src/du_app/F1AP/asn/RANAC.c new file mode 100755 index 000000000..6a11fc686 --- /dev/null +++ b/src/du_app/F1AP/asn/RANAC.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RANAC.h" + +int +RANAC_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_RANAC_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_type_RANAC_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RANAC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RANAC = { + "RANAC", + "RANAC", + &asn_OP_NativeInteger, + asn_DEF_RANAC_tags_1, + sizeof(asn_DEF_RANAC_tags_1) + /sizeof(asn_DEF_RANAC_tags_1[0]), /* 1 */ + asn_DEF_RANAC_tags_1, /* Same as above */ + sizeof(asn_DEF_RANAC_tags_1) + /sizeof(asn_DEF_RANAC_tags_1[0]), /* 1 */ + { &asn_OER_type_RANAC_constr_1, &asn_PER_type_RANAC_constr_1, RANAC_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/RANAC.h b/src/du_app/F1AP/asn/RANAC.h new file mode 100755 index 000000000..31e86235e --- /dev/null +++ b/src/du_app/F1AP/asn/RANAC.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RANAC_H_ +#define _RANAC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RANAC */ +typedef long RANAC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RANAC; +asn_struct_free_f RANAC_free; +asn_struct_print_f RANAC_print; +asn_constr_check_f RANAC_constraint; +ber_type_decoder_f RANAC_decode_ber; +der_type_encoder_f RANAC_encode_der; +xer_type_decoder_f RANAC_decode_xer; +xer_type_encoder_f RANAC_encode_xer; +oer_type_decoder_f RANAC_decode_oer; +oer_type_encoder_f RANAC_encode_oer; +per_type_decoder_f RANAC_decode_uper; +per_type_encoder_f RANAC_encode_uper; +per_type_decoder_f RANAC_decode_aper; +per_type_encoder_f RANAC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RANAC_H_ */ +#include diff --git a/src/du_app/F1AP/asn/RANUEPagingIdentity.c b/src/du_app/F1AP/asn/RANUEPagingIdentity.c new file mode 100755 index 000000000..c6a5afbfd --- /dev/null +++ b/src/du_app/F1AP/asn/RANUEPagingIdentity.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RANUEPagingIdentity.h" + +#include "ProtocolExtensionContainer.h" +static int +memb_iRNTI_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 40)) { + /* Constraint 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_iRNTI_constr_2 CC_NOTUSED = { + { 0, 0 }, + 40 /* (SIZE(40..40)) */}; +static asn_per_constraints_t asn_PER_memb_iRNTI_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 40, 40 } /* (SIZE(40..40)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_RANUEPagingIdentity_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RANUEPagingIdentity, iRNTI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_iRNTI_constr_2, &asn_PER_memb_iRNTI_constr_2, memb_iRNTI_constraint_1 }, + 0, 0, /* No default value */ + "iRNTI" + }, + { ATF_POINTER, 1, offsetof(struct RANUEPagingIdentity, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P75, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_RANUEPagingIdentity_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_RANUEPagingIdentity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RANUEPagingIdentity_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* iRNTI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RANUEPagingIdentity_specs_1 = { + sizeof(struct RANUEPagingIdentity), + offsetof(struct RANUEPagingIdentity, _asn_ctx), + asn_MAP_RANUEPagingIdentity_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RANUEPagingIdentity_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RANUEPagingIdentity = { + "RANUEPagingIdentity", + "RANUEPagingIdentity", + &asn_OP_SEQUENCE, + asn_DEF_RANUEPagingIdentity_tags_1, + sizeof(asn_DEF_RANUEPagingIdentity_tags_1) + /sizeof(asn_DEF_RANUEPagingIdentity_tags_1[0]), /* 1 */ + asn_DEF_RANUEPagingIdentity_tags_1, /* Same as above */ + sizeof(asn_DEF_RANUEPagingIdentity_tags_1) + /sizeof(asn_DEF_RANUEPagingIdentity_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RANUEPagingIdentity_1, + 2, /* Elements count */ + &asn_SPC_RANUEPagingIdentity_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/RANUEPagingIdentity.h b/src/du_app/F1AP/asn/RANUEPagingIdentity.h new file mode 100755 index 000000000..e68aa9033 --- /dev/null +++ b/src/du_app/F1AP/asn/RANUEPagingIdentity.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RANUEPagingIdentity_H_ +#define _RANUEPagingIdentity_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* RANUEPagingIdentity */ +typedef struct RANUEPagingIdentity { + BIT_STRING_t iRNTI; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RANUEPagingIdentity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RANUEPagingIdentity; +extern asn_SEQUENCE_specifics_t asn_SPC_RANUEPagingIdentity_specs_1; +extern asn_TYPE_member_t asn_MBR_RANUEPagingIdentity_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RANUEPagingIdentity_H_ */ +#include diff --git a/src/du_app/F1AP/asn/RAT-FrequencyPriorityInformation.c b/src/du_app/F1AP/asn/RAT-FrequencyPriorityInformation.c new file mode 100755 index 000000000..2e88d8827 --- /dev/null +++ b/src/du_app/F1AP/asn/RAT-FrequencyPriorityInformation.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RAT-FrequencyPriorityInformation.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_RAT_FrequencyPriorityInformation_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RAT_FrequencyPriorityInformation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_RAT_FrequencyPriorityInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RAT_FrequencyPriorityInformation, choice.subscriberProfileIDforRFP), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubscriberProfileIDforRFP, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subscriberProfileIDforRFP" + }, + { ATF_NOFLAGS, 0, offsetof(struct RAT_FrequencyPriorityInformation, choice.rAT_FrequencySelectionPriority), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RAT_FrequencySelectionPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rAT-FrequencySelectionPriority" + }, + { ATF_POINTER, 0, offsetof(struct RAT_FrequencyPriorityInformation, choice.choice_extension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_SingleContainer_4590P67, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-extension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_RAT_FrequencyPriorityInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* subscriberProfileIDforRFP */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rAT-FrequencySelectionPriority */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-extension */ +}; +static asn_CHOICE_specifics_t asn_SPC_RAT_FrequencyPriorityInformation_specs_1 = { + sizeof(struct RAT_FrequencyPriorityInformation), + offsetof(struct RAT_FrequencyPriorityInformation, _asn_ctx), + offsetof(struct RAT_FrequencyPriorityInformation, present), + sizeof(((struct RAT_FrequencyPriorityInformation *)0)->present), + asn_MAP_RAT_FrequencyPriorityInformation_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_RAT_FrequencyPriorityInformation = { + "RAT-FrequencyPriorityInformation", + "RAT-FrequencyPriorityInformation", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_RAT_FrequencyPriorityInformation_constr_1, &asn_PER_type_RAT_FrequencyPriorityInformation_constr_1, CHOICE_constraint }, + asn_MBR_RAT_FrequencyPriorityInformation_1, + 3, /* Elements count */ + &asn_SPC_RAT_FrequencyPriorityInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/RAT-FrequencyPriorityInformation.h b/src/du_app/F1AP/asn/RAT-FrequencyPriorityInformation.h new file mode 100755 index 000000000..782e8fc8a --- /dev/null +++ b/src/du_app/F1AP/asn/RAT-FrequencyPriorityInformation.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RAT_FrequencyPriorityInformation_H_ +#define _RAT_FrequencyPriorityInformation_H_ + + +#include + +/* Including external dependencies */ +#include "SubscriberProfileIDforRFP.h" +#include "RAT-FrequencySelectionPriority.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RAT_FrequencyPriorityInformation_PR { + RAT_FrequencyPriorityInformation_PR_NOTHING, /* No components present */ + RAT_FrequencyPriorityInformation_PR_subscriberProfileIDforRFP, + RAT_FrequencyPriorityInformation_PR_rAT_FrequencySelectionPriority, + RAT_FrequencyPriorityInformation_PR_choice_extension +} RAT_FrequencyPriorityInformation_PR; + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* RAT-FrequencyPriorityInformation */ +typedef struct RAT_FrequencyPriorityInformation { + RAT_FrequencyPriorityInformation_PR present; + union RAT_FrequencyPriorityInformation_u { + SubscriberProfileIDforRFP_t subscriberProfileIDforRFP; + RAT_FrequencySelectionPriority_t rAT_FrequencySelectionPriority; + struct ProtocolIE_SingleContainer *choice_extension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RAT_FrequencyPriorityInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RAT_FrequencyPriorityInformation; + +#ifdef __cplusplus +} +#endif + +#endif /* _RAT_FrequencyPriorityInformation_H_ */ +#include diff --git a/src/du_app/F1AP/asn/RAT-FrequencySelectionPriority.c b/src/du_app/F1AP/asn/RAT-FrequencySelectionPriority.c new file mode 100755 index 000000000..1431bc27c --- /dev/null +++ b/src/du_app/F1AP/asn/RAT-FrequencySelectionPriority.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RAT-FrequencySelectionPriority.h" + +int +RAT_FrequencySelectionPriority_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 <= 256)) { + /* 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_RAT_FrequencySelectionPriority_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RAT_FrequencySelectionPriority_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 256 } /* (1..256,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RAT_FrequencySelectionPriority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RAT_FrequencySelectionPriority = { + "RAT-FrequencySelectionPriority", + "RAT-FrequencySelectionPriority", + &asn_OP_NativeInteger, + asn_DEF_RAT_FrequencySelectionPriority_tags_1, + sizeof(asn_DEF_RAT_FrequencySelectionPriority_tags_1) + /sizeof(asn_DEF_RAT_FrequencySelectionPriority_tags_1[0]), /* 1 */ + asn_DEF_RAT_FrequencySelectionPriority_tags_1, /* Same as above */ + sizeof(asn_DEF_RAT_FrequencySelectionPriority_tags_1) + /sizeof(asn_DEF_RAT_FrequencySelectionPriority_tags_1[0]), /* 1 */ + { &asn_OER_type_RAT_FrequencySelectionPriority_constr_1, &asn_PER_type_RAT_FrequencySelectionPriority_constr_1, RAT_FrequencySelectionPriority_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/RAT-FrequencySelectionPriority.h b/src/du_app/F1AP/asn/RAT-FrequencySelectionPriority.h new file mode 100755 index 000000000..c042cba94 --- /dev/null +++ b/src/du_app/F1AP/asn/RAT-FrequencySelectionPriority.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RAT_FrequencySelectionPriority_H_ +#define _RAT_FrequencySelectionPriority_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RAT-FrequencySelectionPriority */ +typedef long RAT_FrequencySelectionPriority_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RAT_FrequencySelectionPriority_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RAT_FrequencySelectionPriority; +asn_struct_free_f RAT_FrequencySelectionPriority_free; +asn_struct_print_f RAT_FrequencySelectionPriority_print; +asn_constr_check_f RAT_FrequencySelectionPriority_constraint; +ber_type_decoder_f RAT_FrequencySelectionPriority_decode_ber; +der_type_encoder_f RAT_FrequencySelectionPriority_encode_der; +xer_type_decoder_f RAT_FrequencySelectionPriority_decode_xer; +xer_type_encoder_f RAT_FrequencySelectionPriority_encode_xer; +oer_type_decoder_f RAT_FrequencySelectionPriority_decode_oer; +oer_type_encoder_f RAT_FrequencySelectionPriority_encode_oer; +per_type_decoder_f RAT_FrequencySelectionPriority_decode_uper; +per_type_encoder_f RAT_FrequencySelectionPriority_encode_uper; +per_type_decoder_f RAT_FrequencySelectionPriority_decode_aper; +per_type_encoder_f RAT_FrequencySelectionPriority_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RAT_FrequencySelectionPriority_H_ */ +#include diff --git a/src/du_app/F1AP/asn/RLC-Status.c b/src/du_app/F1AP/asn/RLC-Status.c new file mode 100755 index 000000000..86d23a1fa --- /dev/null +++ b/src/du_app/F1AP/asn/RLC-Status.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RLC-Status.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_RLC_Status_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RLC_Status, reestablishment_Indication), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Reestablishment_Indication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reestablishment-Indication" + }, + { ATF_POINTER, 1, offsetof(struct RLC_Status, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P79, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_RLC_Status_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_RLC_Status_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RLC_Status_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reestablishment-Indication */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RLC_Status_specs_1 = { + sizeof(struct RLC_Status), + offsetof(struct RLC_Status, _asn_ctx), + asn_MAP_RLC_Status_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RLC_Status_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RLC_Status = { + "RLC-Status", + "RLC-Status", + &asn_OP_SEQUENCE, + asn_DEF_RLC_Status_tags_1, + sizeof(asn_DEF_RLC_Status_tags_1) + /sizeof(asn_DEF_RLC_Status_tags_1[0]), /* 1 */ + asn_DEF_RLC_Status_tags_1, /* Same as above */ + sizeof(asn_DEF_RLC_Status_tags_1) + /sizeof(asn_DEF_RLC_Status_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RLC_Status_1, + 2, /* Elements count */ + &asn_SPC_RLC_Status_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/RLC-Status.h b/src/du_app/F1AP/asn/RLC-Status.h new file mode 100755 index 000000000..895717f6f --- /dev/null +++ b/src/du_app/F1AP/asn/RLC-Status.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RLC_Status_H_ +#define _RLC_Status_H_ + + +#include + +/* Including external dependencies */ +#include "Reestablishment-Indication.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* RLC-Status */ +typedef struct RLC_Status { + Reestablishment_Indication_t reestablishment_Indication; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RLC_Status_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RLC_Status; + +#ifdef __cplusplus +} +#endif + +#endif /* _RLC_Status_H_ */ +#include diff --git a/src/du_app/F1AP/asn/RLCFailureIndication.c b/src/du_app/F1AP/asn/RLCFailureIndication.c new file mode 100755 index 000000000..9e5a3c529 --- /dev/null +++ b/src/du_app/F1AP/asn/RLCFailureIndication.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RLCFailureIndication.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_RLCFailureIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RLCFailureIndication, assocatedLCID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LCID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "assocatedLCID" + }, + { ATF_POINTER, 1, offsetof(struct RLCFailureIndication, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P78, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_RLCFailureIndication_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_RLCFailureIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RLCFailureIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* assocatedLCID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RLCFailureIndication_specs_1 = { + sizeof(struct RLCFailureIndication), + offsetof(struct RLCFailureIndication, _asn_ctx), + asn_MAP_RLCFailureIndication_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RLCFailureIndication_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RLCFailureIndication = { + "RLCFailureIndication", + "RLCFailureIndication", + &asn_OP_SEQUENCE, + asn_DEF_RLCFailureIndication_tags_1, + sizeof(asn_DEF_RLCFailureIndication_tags_1) + /sizeof(asn_DEF_RLCFailureIndication_tags_1[0]), /* 1 */ + asn_DEF_RLCFailureIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_RLCFailureIndication_tags_1) + /sizeof(asn_DEF_RLCFailureIndication_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RLCFailureIndication_1, + 2, /* Elements count */ + &asn_SPC_RLCFailureIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/RLCFailureIndication.h b/src/du_app/F1AP/asn/RLCFailureIndication.h new file mode 100755 index 000000000..ad3bddc02 --- /dev/null +++ b/src/du_app/F1AP/asn/RLCFailureIndication.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RLCFailureIndication_H_ +#define _RLCFailureIndication_H_ + + +#include + +/* Including external dependencies */ +#include "LCID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* RLCFailureIndication */ +typedef struct RLCFailureIndication { + LCID_t assocatedLCID; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RLCFailureIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RLCFailureIndication; + +#ifdef __cplusplus +} +#endif + +#endif /* _RLCFailureIndication_H_ */ +#include diff --git a/src/du_app/F1AP/asn/RLCMode.c b/src/du_app/F1AP/asn/RLCMode.c new file mode 100755 index 000000000..79d5a382a --- /dev/null +++ b/src/du_app/F1AP/asn/RLCMode.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RLCMode.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RLCMode_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_RLCMode_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_RLCMode_value2enum_1[] = { + { 0, 6, "rlc-am" }, + { 1, 20, "rlc-um-bidirectional" }, + { 2, 24, "rlc-um-unidirectional-ul" }, + { 3, 24, "rlc-um-unidirectional-dl" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RLCMode_enum2value_1[] = { + 0, /* rlc-am(0) */ + 1, /* rlc-um-bidirectional(1) */ + 3, /* rlc-um-unidirectional-dl(3) */ + 2 /* rlc-um-unidirectional-ul(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_RLCMode_specs_1 = { + asn_MAP_RLCMode_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RLCMode_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_RLCMode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RLCMode = { + "RLCMode", + "RLCMode", + &asn_OP_NativeEnumerated, + asn_DEF_RLCMode_tags_1, + sizeof(asn_DEF_RLCMode_tags_1) + /sizeof(asn_DEF_RLCMode_tags_1[0]), /* 1 */ + asn_DEF_RLCMode_tags_1, /* Same as above */ + sizeof(asn_DEF_RLCMode_tags_1) + /sizeof(asn_DEF_RLCMode_tags_1[0]), /* 1 */ + { &asn_OER_type_RLCMode_constr_1, &asn_PER_type_RLCMode_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RLCMode_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/RLCMode.h b/src/du_app/F1AP/asn/RLCMode.h new file mode 100755 index 000000000..23449010d --- /dev/null +++ b/src/du_app/F1AP/asn/RLCMode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RLCMode_H_ +#define _RLCMode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RLCMode { + RLCMode_rlc_am = 0, + RLCMode_rlc_um_bidirectional = 1, + RLCMode_rlc_um_unidirectional_ul = 2, + RLCMode_rlc_um_unidirectional_dl = 3 + /* + * Enumeration is extensible + */ +} e_RLCMode; + +/* RLCMode */ +typedef long RLCMode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RLCMode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RLCMode; +extern const asn_INTEGER_specifics_t asn_SPC_RLCMode_specs_1; +asn_struct_free_f RLCMode_free; +asn_struct_print_f RLCMode_print; +asn_constr_check_f RLCMode_constraint; +ber_type_decoder_f RLCMode_decode_ber; +der_type_encoder_f RLCMode_encode_der; +xer_type_decoder_f RLCMode_decode_xer; +xer_type_encoder_f RLCMode_encode_xer; +oer_type_decoder_f RLCMode_decode_oer; +oer_type_encoder_f RLCMode_encode_oer; +per_type_decoder_f RLCMode_decode_uper; +per_type_encoder_f RLCMode_encode_uper; +per_type_decoder_f RLCMode_decode_aper; +per_type_encoder_f RLCMode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RLCMode_H_ */ +#include diff --git a/src/du_app/F1AP/asn/RRC-Version.c b/src/du_app/F1AP/asn/RRC-Version.c new file mode 100755 index 000000000..cec77bdff --- /dev/null +++ b/src/du_app/F1AP/asn/RRC-Version.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRC-Version.h" + +#include "ProtocolExtensionContainer.h" +static int +memb_latest_RRC_Version_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + printf ("Inside %s:%d \n", __FILE__, __LINE__); + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + printf ("Fail %d \n", __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 3)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + printf ("Fail %d \n", __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_latest_RRC_Version_constr_2 CC_NOTUSED = { + { 0, 0 }, + 3 /* (SIZE(3..3)) */}; +static asn_per_constraints_t asn_PER_memb_latest_RRC_Version_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_RRC_Version_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRC_Version, latest_RRC_Version), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_latest_RRC_Version_constr_2, &asn_PER_memb_latest_RRC_Version_constr_2, memb_latest_RRC_Version_constraint_1 }, + 0, 0, /* No default value */ + "latest-RRC-Version" + }, + { ATF_POINTER, 1, offsetof(struct RRC_Version, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P81, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_RRC_Version_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_RRC_Version_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RRC_Version_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* latest-RRC-Version */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RRC_Version_specs_1 = { + sizeof(struct RRC_Version), + offsetof(struct RRC_Version, _asn_ctx), + asn_MAP_RRC_Version_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RRC_Version_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RRC_Version = { + "RRC-Version", + "RRC-Version", + &asn_OP_SEQUENCE, + asn_DEF_RRC_Version_tags_1, + sizeof(asn_DEF_RRC_Version_tags_1) + /sizeof(asn_DEF_RRC_Version_tags_1[0]), /* 1 */ + asn_DEF_RRC_Version_tags_1, /* Same as above */ + sizeof(asn_DEF_RRC_Version_tags_1) + /sizeof(asn_DEF_RRC_Version_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRC_Version_1, + 2, /* Elements count */ + &asn_SPC_RRC_Version_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/RRC-Version.h b/src/du_app/F1AP/asn/RRC-Version.h new file mode 100755 index 000000000..e214345b2 --- /dev/null +++ b/src/du_app/F1AP/asn/RRC-Version.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRC_Version_H_ +#define _RRC_Version_H_ + + +#include +#include +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* RRC-Version */ +typedef struct RRC_Version { + BIT_STRING_t latest_RRC_Version; + ProtocolExtensionContainer_4624P81_t iE_Extensions; + //struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RRC_Version_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRC_Version; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRC_Version_H_ */ +#include diff --git a/src/du_app/F1AP/asn/RRCContainer.c b/src/du_app/F1AP/asn/RRCContainer.c new file mode 100755 index 000000000..50a844113 --- /dev/null +++ b/src/du_app/F1AP/asn/RRCContainer.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCContainer.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_RRCContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RRCContainer = { + "RRCContainer", + "RRCContainer", + &asn_OP_OCTET_STRING, + asn_DEF_RRCContainer_tags_1, + sizeof(asn_DEF_RRCContainer_tags_1) + /sizeof(asn_DEF_RRCContainer_tags_1[0]), /* 1 */ + asn_DEF_RRCContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCContainer_tags_1) + /sizeof(asn_DEF_RRCContainer_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/RRCContainer.h b/src/du_app/F1AP/asn/RRCContainer.h new file mode 100755 index 000000000..2aa604808 --- /dev/null +++ b/src/du_app/F1AP/asn/RRCContainer.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCContainer_H_ +#define _RRCContainer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RRCContainer */ +typedef OCTET_STRING_t RRCContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCContainer; +asn_struct_free_f RRCContainer_free; +asn_struct_print_f RRCContainer_print; +asn_constr_check_f RRCContainer_constraint; +ber_type_decoder_f RRCContainer_decode_ber; +der_type_encoder_f RRCContainer_encode_der; +xer_type_decoder_f RRCContainer_decode_xer; +xer_type_encoder_f RRCContainer_encode_xer; +oer_type_decoder_f RRCContainer_decode_oer; +oer_type_encoder_f RRCContainer_encode_oer; +per_type_decoder_f RRCContainer_decode_uper; +per_type_encoder_f RRCContainer_encode_uper; +per_type_decoder_f RRCContainer_decode_aper; +per_type_encoder_f RRCContainer_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCContainer_H_ */ +#include diff --git a/src/du_app/F1AP/asn/RRCDeliveryReport.c b/src/du_app/F1AP/asn/RRCDeliveryReport.c new file mode 100755 index 000000000..0de48d10e --- /dev/null +++ b/src/du_app/F1AP/asn/RRCDeliveryReport.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCDeliveryReport.h" + +asn_TYPE_member_t asn_MBR_RRCDeliveryReport_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCDeliveryReport, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P40, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RRCDeliveryReport_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RRCDeliveryReport_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RRCDeliveryReport_specs_1 = { + sizeof(struct RRCDeliveryReport), + offsetof(struct RRCDeliveryReport, _asn_ctx), + asn_MAP_RRCDeliveryReport_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_RRCDeliveryReport = { + "RRCDeliveryReport", + "RRCDeliveryReport", + &asn_OP_SEQUENCE, + asn_DEF_RRCDeliveryReport_tags_1, + sizeof(asn_DEF_RRCDeliveryReport_tags_1) + /sizeof(asn_DEF_RRCDeliveryReport_tags_1[0]), /* 1 */ + asn_DEF_RRCDeliveryReport_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCDeliveryReport_tags_1) + /sizeof(asn_DEF_RRCDeliveryReport_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCDeliveryReport_1, + 1, /* Elements count */ + &asn_SPC_RRCDeliveryReport_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/RRCDeliveryReport.h b/src/du_app/F1AP/asn/RRCDeliveryReport.h new file mode 100755 index 000000000..21bf5b2cf --- /dev/null +++ b/src/du_app/F1AP/asn/RRCDeliveryReport.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCDeliveryReport_H_ +#define _RRCDeliveryReport_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RRCDeliveryReport */ +typedef struct RRCDeliveryReport { + ProtocolIE_Container_4587P40_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RRCDeliveryReport_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCDeliveryReport; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCDeliveryReport_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCDeliveryReport_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCDeliveryReport_H_ */ +#include diff --git a/src/du_app/F1AP/asn/RRCDeliveryStatus.c b/src/du_app/F1AP/asn/RRCDeliveryStatus.c new file mode 100755 index 000000000..a537e429e --- /dev/null +++ b/src/du_app/F1AP/asn/RRCDeliveryStatus.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCDeliveryStatus.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_RRCDeliveryStatus_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCDeliveryStatus, delivery_status), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PDCP_SN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "delivery-status" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCDeliveryStatus, triggering_message), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PDCP_SN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "triggering-message" + }, + { ATF_POINTER, 1, offsetof(struct RRCDeliveryStatus, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P80, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_RRCDeliveryStatus_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_RRCDeliveryStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RRCDeliveryStatus_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* delivery-status */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* triggering-message */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RRCDeliveryStatus_specs_1 = { + sizeof(struct RRCDeliveryStatus), + offsetof(struct RRCDeliveryStatus, _asn_ctx), + asn_MAP_RRCDeliveryStatus_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_RRCDeliveryStatus_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RRCDeliveryStatus = { + "RRCDeliveryStatus", + "RRCDeliveryStatus", + &asn_OP_SEQUENCE, + asn_DEF_RRCDeliveryStatus_tags_1, + sizeof(asn_DEF_RRCDeliveryStatus_tags_1) + /sizeof(asn_DEF_RRCDeliveryStatus_tags_1[0]), /* 1 */ + asn_DEF_RRCDeliveryStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCDeliveryStatus_tags_1) + /sizeof(asn_DEF_RRCDeliveryStatus_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCDeliveryStatus_1, + 3, /* Elements count */ + &asn_SPC_RRCDeliveryStatus_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/RRCDeliveryStatus.h b/src/du_app/F1AP/asn/RRCDeliveryStatus.h new file mode 100755 index 000000000..07fbaeb1b --- /dev/null +++ b/src/du_app/F1AP/asn/RRCDeliveryStatus.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCDeliveryStatus_H_ +#define _RRCDeliveryStatus_H_ + + +#include + +/* Including external dependencies */ +#include "PDCP-SN.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* RRCDeliveryStatus */ +typedef struct RRCDeliveryStatus { + PDCP_SN_t delivery_status; + PDCP_SN_t triggering_message; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RRCDeliveryStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCDeliveryStatus; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCDeliveryStatus_H_ */ +#include diff --git a/src/du_app/F1AP/asn/RRCDeliveryStatusRequest.c b/src/du_app/F1AP/asn/RRCDeliveryStatusRequest.c new file mode 100755 index 000000000..9e2e75dd3 --- /dev/null +++ b/src/du_app/F1AP/asn/RRCDeliveryStatusRequest.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCDeliveryStatusRequest.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RRCDeliveryStatusRequest_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RRCDeliveryStatusRequest_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RRCDeliveryStatusRequest_value2enum_1[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RRCDeliveryStatusRequest_enum2value_1[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RRCDeliveryStatusRequest_specs_1 = { + asn_MAP_RRCDeliveryStatusRequest_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RRCDeliveryStatusRequest_enum2value_1, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RRCDeliveryStatusRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RRCDeliveryStatusRequest = { + "RRCDeliveryStatusRequest", + "RRCDeliveryStatusRequest", + &asn_OP_NativeEnumerated, + asn_DEF_RRCDeliveryStatusRequest_tags_1, + sizeof(asn_DEF_RRCDeliveryStatusRequest_tags_1) + /sizeof(asn_DEF_RRCDeliveryStatusRequest_tags_1[0]), /* 1 */ + asn_DEF_RRCDeliveryStatusRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCDeliveryStatusRequest_tags_1) + /sizeof(asn_DEF_RRCDeliveryStatusRequest_tags_1[0]), /* 1 */ + { &asn_OER_type_RRCDeliveryStatusRequest_constr_1, &asn_PER_type_RRCDeliveryStatusRequest_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RRCDeliveryStatusRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/RRCDeliveryStatusRequest.h b/src/du_app/F1AP/asn/RRCDeliveryStatusRequest.h new file mode 100755 index 000000000..93b84802c --- /dev/null +++ b/src/du_app/F1AP/asn/RRCDeliveryStatusRequest.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCDeliveryStatusRequest_H_ +#define _RRCDeliveryStatusRequest_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RRCDeliveryStatusRequest { + RRCDeliveryStatusRequest_true = 0 + /* + * Enumeration is extensible + */ +} e_RRCDeliveryStatusRequest; + +/* RRCDeliveryStatusRequest */ +typedef long RRCDeliveryStatusRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCDeliveryStatusRequest; +asn_struct_free_f RRCDeliveryStatusRequest_free; +asn_struct_print_f RRCDeliveryStatusRequest_print; +asn_constr_check_f RRCDeliveryStatusRequest_constraint; +ber_type_decoder_f RRCDeliveryStatusRequest_decode_ber; +der_type_encoder_f RRCDeliveryStatusRequest_encode_der; +xer_type_decoder_f RRCDeliveryStatusRequest_decode_xer; +xer_type_encoder_f RRCDeliveryStatusRequest_encode_xer; +oer_type_decoder_f RRCDeliveryStatusRequest_decode_oer; +oer_type_encoder_f RRCDeliveryStatusRequest_encode_oer; +per_type_decoder_f RRCDeliveryStatusRequest_decode_uper; +per_type_encoder_f RRCDeliveryStatusRequest_encode_uper; +per_type_decoder_f RRCDeliveryStatusRequest_decode_aper; +per_type_encoder_f RRCDeliveryStatusRequest_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCDeliveryStatusRequest_H_ */ +#include diff --git a/src/du_app/F1AP/asn/RRCReconfigurationCompleteIndicator.c b/src/du_app/F1AP/asn/RRCReconfigurationCompleteIndicator.c new file mode 100755 index 000000000..1a51c2a9a --- /dev/null +++ b/src/du_app/F1AP/asn/RRCReconfigurationCompleteIndicator.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCReconfigurationCompleteIndicator.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RRCReconfigurationCompleteIndicator_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RRCReconfigurationCompleteIndicator_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RRCReconfigurationCompleteIndicator_value2enum_1[] = { + { 0, 4, "true" }, + { 1, 7, "failure" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RRCReconfigurationCompleteIndicator_enum2value_1[] = { + 1, /* failure(1) */ + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RRCReconfigurationCompleteIndicator_specs_1 = { + asn_MAP_RRCReconfigurationCompleteIndicator_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RRCReconfigurationCompleteIndicator_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* 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_RRCReconfigurationCompleteIndicator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RRCReconfigurationCompleteIndicator = { + "RRCReconfigurationCompleteIndicator", + "RRCReconfigurationCompleteIndicator", + &asn_OP_NativeEnumerated, + asn_DEF_RRCReconfigurationCompleteIndicator_tags_1, + sizeof(asn_DEF_RRCReconfigurationCompleteIndicator_tags_1) + /sizeof(asn_DEF_RRCReconfigurationCompleteIndicator_tags_1[0]), /* 1 */ + asn_DEF_RRCReconfigurationCompleteIndicator_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCReconfigurationCompleteIndicator_tags_1) + /sizeof(asn_DEF_RRCReconfigurationCompleteIndicator_tags_1[0]), /* 1 */ + { &asn_OER_type_RRCReconfigurationCompleteIndicator_constr_1, &asn_PER_type_RRCReconfigurationCompleteIndicator_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RRCReconfigurationCompleteIndicator_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/RRCReconfigurationCompleteIndicator.h b/src/du_app/F1AP/asn/RRCReconfigurationCompleteIndicator.h new file mode 100755 index 000000000..afd76de0f --- /dev/null +++ b/src/du_app/F1AP/asn/RRCReconfigurationCompleteIndicator.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCReconfigurationCompleteIndicator_H_ +#define _RRCReconfigurationCompleteIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RRCReconfigurationCompleteIndicator { + RRCReconfigurationCompleteIndicator_true = 0, + /* + * Enumeration is extensible + */ + RRCReconfigurationCompleteIndicator_failure = 1 +} e_RRCReconfigurationCompleteIndicator; + +/* RRCReconfigurationCompleteIndicator */ +typedef long RRCReconfigurationCompleteIndicator_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCReconfigurationCompleteIndicator; +asn_struct_free_f RRCReconfigurationCompleteIndicator_free; +asn_struct_print_f RRCReconfigurationCompleteIndicator_print; +asn_constr_check_f RRCReconfigurationCompleteIndicator_constraint; +ber_type_decoder_f RRCReconfigurationCompleteIndicator_decode_ber; +der_type_encoder_f RRCReconfigurationCompleteIndicator_encode_der; +xer_type_decoder_f RRCReconfigurationCompleteIndicator_decode_xer; +xer_type_encoder_f RRCReconfigurationCompleteIndicator_encode_xer; +oer_type_decoder_f RRCReconfigurationCompleteIndicator_decode_oer; +oer_type_encoder_f RRCReconfigurationCompleteIndicator_encode_oer; +per_type_decoder_f RRCReconfigurationCompleteIndicator_decode_uper; +per_type_encoder_f RRCReconfigurationCompleteIndicator_encode_uper; +per_type_decoder_f RRCReconfigurationCompleteIndicator_decode_aper; +per_type_encoder_f RRCReconfigurationCompleteIndicator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCReconfigurationCompleteIndicator_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Reestablishment-Indication.c b/src/du_app/F1AP/asn/Reestablishment-Indication.c new file mode 100755 index 000000000..f16c0240b --- /dev/null +++ b/src/du_app/F1AP/asn/Reestablishment-Indication.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Reestablishment-Indication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Reestablishment_Indication_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_Reestablishment_Indication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_Reestablishment_Indication_value2enum_1[] = { + { 0, 13, "reestablished" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_Reestablishment_Indication_enum2value_1[] = { + 0 /* reestablished(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_Reestablishment_Indication_specs_1 = { + asn_MAP_Reestablishment_Indication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Reestablishment_Indication_enum2value_1, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_Reestablishment_Indication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Reestablishment_Indication = { + "Reestablishment-Indication", + "Reestablishment-Indication", + &asn_OP_NativeEnumerated, + asn_DEF_Reestablishment_Indication_tags_1, + sizeof(asn_DEF_Reestablishment_Indication_tags_1) + /sizeof(asn_DEF_Reestablishment_Indication_tags_1[0]), /* 1 */ + asn_DEF_Reestablishment_Indication_tags_1, /* Same as above */ + sizeof(asn_DEF_Reestablishment_Indication_tags_1) + /sizeof(asn_DEF_Reestablishment_Indication_tags_1[0]), /* 1 */ + { &asn_OER_type_Reestablishment_Indication_constr_1, &asn_PER_type_Reestablishment_Indication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Reestablishment_Indication_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Reestablishment-Indication.h b/src/du_app/F1AP/asn/Reestablishment-Indication.h new file mode 100755 index 000000000..753ed0229 --- /dev/null +++ b/src/du_app/F1AP/asn/Reestablishment-Indication.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Reestablishment_Indication_H_ +#define _Reestablishment_Indication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Reestablishment_Indication { + Reestablishment_Indication_reestablished = 0 + /* + * Enumeration is extensible + */ +} e_Reestablishment_Indication; + +/* Reestablishment-Indication */ +typedef long Reestablishment_Indication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Reestablishment_Indication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Reestablishment_Indication; +extern const asn_INTEGER_specifics_t asn_SPC_Reestablishment_Indication_specs_1; +asn_struct_free_f Reestablishment_Indication_free; +asn_struct_print_f Reestablishment_Indication_print; +asn_constr_check_f Reestablishment_Indication_constraint; +ber_type_decoder_f Reestablishment_Indication_decode_ber; +der_type_encoder_f Reestablishment_Indication_encode_der; +xer_type_decoder_f Reestablishment_Indication_decode_xer; +xer_type_encoder_f Reestablishment_Indication_encode_xer; +oer_type_decoder_f Reestablishment_Indication_decode_oer; +oer_type_encoder_f Reestablishment_Indication_encode_oer; +per_type_decoder_f Reestablishment_Indication_decode_uper; +per_type_encoder_f Reestablishment_Indication_encode_uper; +per_type_decoder_f Reestablishment_Indication_decode_aper; +per_type_encoder_f Reestablishment_Indication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Reestablishment_Indication_H_ */ +#include diff --git a/src/du_app/F1AP/asn/RepetitionPeriod.c b/src/du_app/F1AP/asn/RepetitionPeriod.c new file mode 100755 index 000000000..bb36995ec --- /dev/null +++ b/src/du_app/F1AP/asn/RepetitionPeriod.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RepetitionPeriod.h" + +int +RepetitionPeriod_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 <= 131071)) { + /* 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_RepetitionPeriod_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RepetitionPeriod_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 17, -1, 0, 131071 } /* (0..131071,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_RepetitionPeriod_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RepetitionPeriod = { + "RepetitionPeriod", + "RepetitionPeriod", + &asn_OP_NativeInteger, + asn_DEF_RepetitionPeriod_tags_1, + sizeof(asn_DEF_RepetitionPeriod_tags_1) + /sizeof(asn_DEF_RepetitionPeriod_tags_1[0]), /* 1 */ + asn_DEF_RepetitionPeriod_tags_1, /* Same as above */ + sizeof(asn_DEF_RepetitionPeriod_tags_1) + /sizeof(asn_DEF_RepetitionPeriod_tags_1[0]), /* 1 */ + { &asn_OER_type_RepetitionPeriod_constr_1, &asn_PER_type_RepetitionPeriod_constr_1, RepetitionPeriod_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/RepetitionPeriod.h b/src/du_app/F1AP/asn/RepetitionPeriod.h new file mode 100755 index 000000000..ba5fbc99a --- /dev/null +++ b/src/du_app/F1AP/asn/RepetitionPeriod.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RepetitionPeriod_H_ +#define _RepetitionPeriod_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RepetitionPeriod */ +typedef long RepetitionPeriod_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RepetitionPeriod; +asn_struct_free_f RepetitionPeriod_free; +asn_struct_print_f RepetitionPeriod_print; +asn_constr_check_f RepetitionPeriod_constraint; +ber_type_decoder_f RepetitionPeriod_decode_ber; +der_type_encoder_f RepetitionPeriod_encode_der; +xer_type_decoder_f RepetitionPeriod_decode_xer; +xer_type_encoder_f RepetitionPeriod_encode_xer; +oer_type_decoder_f RepetitionPeriod_decode_oer; +oer_type_encoder_f RepetitionPeriod_encode_oer; +per_type_decoder_f RepetitionPeriod_decode_uper; +per_type_encoder_f RepetitionPeriod_encode_uper; +per_type_decoder_f RepetitionPeriod_decode_aper; +per_type_encoder_f RepetitionPeriod_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RepetitionPeriod_H_ */ +#include diff --git a/src/du_app/F1AP/asn/RequestType.c b/src/du_app/F1AP/asn/RequestType.c new file mode 100755 index 000000000..6f7502914 --- /dev/null +++ b/src/du_app/F1AP/asn/RequestType.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RequestType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RequestType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_RequestType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_RequestType_value2enum_1[] = { + { 0, 5, "offer" }, + { 1, 9, "execution" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_RequestType_enum2value_1[] = { + 1, /* execution(1) */ + 0 /* offer(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_RequestType_specs_1 = { + asn_MAP_RequestType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_RequestType_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_RequestType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestType = { + "RequestType", + "RequestType", + &asn_OP_NativeEnumerated, + asn_DEF_RequestType_tags_1, + sizeof(asn_DEF_RequestType_tags_1) + /sizeof(asn_DEF_RequestType_tags_1[0]), /* 1 */ + asn_DEF_RequestType_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestType_tags_1) + /sizeof(asn_DEF_RequestType_tags_1[0]), /* 1 */ + { &asn_OER_type_RequestType_constr_1, &asn_PER_type_RequestType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RequestType_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/RequestType.h b/src/du_app/F1AP/asn/RequestType.h new file mode 100755 index 000000000..7e0d0ca63 --- /dev/null +++ b/src/du_app/F1AP/asn/RequestType.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RequestType_H_ +#define _RequestType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RequestType { + RequestType_offer = 0, + RequestType_execution = 1 + /* + * Enumeration is extensible + */ +} e_RequestType; + +/* RequestType */ +typedef long RequestType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestType; +asn_struct_free_f RequestType_free; +asn_struct_print_f RequestType_print; +asn_constr_check_f RequestType_constraint; +ber_type_decoder_f RequestType_decode_ber; +der_type_encoder_f RequestType_encode_der; +xer_type_decoder_f RequestType_decode_xer; +xer_type_encoder_f RequestType_encode_xer; +oer_type_decoder_f RequestType_decode_oer; +oer_type_encoder_f RequestType_encode_oer; +per_type_decoder_f RequestType_decode_uper; +per_type_encoder_f RequestType_encode_uper; +per_type_decoder_f RequestType_decode_aper; +per_type_encoder_f RequestType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestType_H_ */ +#include diff --git a/src/du_app/F1AP/asn/RequestedBandCombinationIndex.c b/src/du_app/F1AP/asn/RequestedBandCombinationIndex.c new file mode 100755 index 000000000..961b6bf70 --- /dev/null +++ b/src/du_app/F1AP/asn/RequestedBandCombinationIndex.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RequestedBandCombinationIndex.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_RequestedBandCombinationIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestedBandCombinationIndex = { + "RequestedBandCombinationIndex", + "RequestedBandCombinationIndex", + &asn_OP_OCTET_STRING, + asn_DEF_RequestedBandCombinationIndex_tags_1, + sizeof(asn_DEF_RequestedBandCombinationIndex_tags_1) + /sizeof(asn_DEF_RequestedBandCombinationIndex_tags_1[0]), /* 1 */ + asn_DEF_RequestedBandCombinationIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestedBandCombinationIndex_tags_1) + /sizeof(asn_DEF_RequestedBandCombinationIndex_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/RequestedBandCombinationIndex.h b/src/du_app/F1AP/asn/RequestedBandCombinationIndex.h new file mode 100755 index 000000000..04cc296a9 --- /dev/null +++ b/src/du_app/F1AP/asn/RequestedBandCombinationIndex.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RequestedBandCombinationIndex_H_ +#define _RequestedBandCombinationIndex_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RequestedBandCombinationIndex */ +typedef OCTET_STRING_t RequestedBandCombinationIndex_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestedBandCombinationIndex; +asn_struct_free_f RequestedBandCombinationIndex_free; +asn_struct_print_f RequestedBandCombinationIndex_print; +asn_constr_check_f RequestedBandCombinationIndex_constraint; +ber_type_decoder_f RequestedBandCombinationIndex_decode_ber; +der_type_encoder_f RequestedBandCombinationIndex_encode_der; +xer_type_decoder_f RequestedBandCombinationIndex_decode_xer; +xer_type_encoder_f RequestedBandCombinationIndex_encode_xer; +oer_type_decoder_f RequestedBandCombinationIndex_decode_oer; +oer_type_encoder_f RequestedBandCombinationIndex_encode_oer; +per_type_decoder_f RequestedBandCombinationIndex_decode_uper; +per_type_encoder_f RequestedBandCombinationIndex_encode_uper; +per_type_decoder_f RequestedBandCombinationIndex_decode_aper; +per_type_encoder_f RequestedBandCombinationIndex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestedBandCombinationIndex_H_ */ +#include diff --git a/src/du_app/F1AP/asn/RequestedFeatureSetEntryIndex.c b/src/du_app/F1AP/asn/RequestedFeatureSetEntryIndex.c new file mode 100755 index 000000000..be165f66a --- /dev/null +++ b/src/du_app/F1AP/asn/RequestedFeatureSetEntryIndex.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RequestedFeatureSetEntryIndex.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_RequestedFeatureSetEntryIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestedFeatureSetEntryIndex = { + "RequestedFeatureSetEntryIndex", + "RequestedFeatureSetEntryIndex", + &asn_OP_OCTET_STRING, + asn_DEF_RequestedFeatureSetEntryIndex_tags_1, + sizeof(asn_DEF_RequestedFeatureSetEntryIndex_tags_1) + /sizeof(asn_DEF_RequestedFeatureSetEntryIndex_tags_1[0]), /* 1 */ + asn_DEF_RequestedFeatureSetEntryIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestedFeatureSetEntryIndex_tags_1) + /sizeof(asn_DEF_RequestedFeatureSetEntryIndex_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/RequestedFeatureSetEntryIndex.h b/src/du_app/F1AP/asn/RequestedFeatureSetEntryIndex.h new file mode 100755 index 000000000..edc60fdf5 --- /dev/null +++ b/src/du_app/F1AP/asn/RequestedFeatureSetEntryIndex.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RequestedFeatureSetEntryIndex_H_ +#define _RequestedFeatureSetEntryIndex_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RequestedFeatureSetEntryIndex */ +typedef OCTET_STRING_t RequestedFeatureSetEntryIndex_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestedFeatureSetEntryIndex; +asn_struct_free_f RequestedFeatureSetEntryIndex_free; +asn_struct_print_f RequestedFeatureSetEntryIndex_print; +asn_constr_check_f RequestedFeatureSetEntryIndex_constraint; +ber_type_decoder_f RequestedFeatureSetEntryIndex_decode_ber; +der_type_encoder_f RequestedFeatureSetEntryIndex_encode_der; +xer_type_decoder_f RequestedFeatureSetEntryIndex_decode_xer; +xer_type_encoder_f RequestedFeatureSetEntryIndex_encode_xer; +oer_type_decoder_f RequestedFeatureSetEntryIndex_decode_oer; +oer_type_encoder_f RequestedFeatureSetEntryIndex_encode_oer; +per_type_decoder_f RequestedFeatureSetEntryIndex_decode_uper; +per_type_encoder_f RequestedFeatureSetEntryIndex_encode_uper; +per_type_decoder_f RequestedFeatureSetEntryIndex_decode_aper; +per_type_encoder_f RequestedFeatureSetEntryIndex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestedFeatureSetEntryIndex_H_ */ +#include diff --git a/src/du_app/F1AP/asn/RequestedP-MaxFR2.c b/src/du_app/F1AP/asn/RequestedP-MaxFR2.c new file mode 100755 index 000000000..8111b7a1a --- /dev/null +++ b/src/du_app/F1AP/asn/RequestedP-MaxFR2.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RequestedP-MaxFR2.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_RequestedP_MaxFR2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RequestedP_MaxFR2 = { + "RequestedP-MaxFR2", + "RequestedP-MaxFR2", + &asn_OP_OCTET_STRING, + asn_DEF_RequestedP_MaxFR2_tags_1, + sizeof(asn_DEF_RequestedP_MaxFR2_tags_1) + /sizeof(asn_DEF_RequestedP_MaxFR2_tags_1[0]), /* 1 */ + asn_DEF_RequestedP_MaxFR2_tags_1, /* Same as above */ + sizeof(asn_DEF_RequestedP_MaxFR2_tags_1) + /sizeof(asn_DEF_RequestedP_MaxFR2_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/RequestedP-MaxFR2.h b/src/du_app/F1AP/asn/RequestedP-MaxFR2.h new file mode 100755 index 000000000..ad8c6a8e9 --- /dev/null +++ b/src/du_app/F1AP/asn/RequestedP-MaxFR2.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RequestedP_MaxFR2_H_ +#define _RequestedP_MaxFR2_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RequestedP-MaxFR2 */ +typedef OCTET_STRING_t RequestedP_MaxFR2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RequestedP_MaxFR2; +asn_struct_free_f RequestedP_MaxFR2_free; +asn_struct_print_f RequestedP_MaxFR2_print; +asn_constr_check_f RequestedP_MaxFR2_constraint; +ber_type_decoder_f RequestedP_MaxFR2_decode_ber; +der_type_encoder_f RequestedP_MaxFR2_encode_der; +xer_type_decoder_f RequestedP_MaxFR2_decode_xer; +xer_type_encoder_f RequestedP_MaxFR2_encode_xer; +oer_type_decoder_f RequestedP_MaxFR2_decode_oer; +oer_type_encoder_f RequestedP_MaxFR2_encode_oer; +per_type_decoder_f RequestedP_MaxFR2_decode_uper; +per_type_encoder_f RequestedP_MaxFR2_encode_uper; +per_type_decoder_f RequestedP_MaxFR2_decode_aper; +per_type_encoder_f RequestedP_MaxFR2_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RequestedP_MaxFR2_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Reset.c b/src/du_app/F1AP/asn/Reset.c new file mode 100755 index 000000000..194404890 --- /dev/null +++ b/src/du_app/F1AP/asn/Reset.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Reset.h" + +asn_TYPE_member_t asn_MBR_Reset_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Reset, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P0, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_Reset_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Reset_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Reset_specs_1 = { + sizeof(struct Reset), + offsetof(struct Reset, _asn_ctx), + asn_MAP_Reset_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_Reset = { + "Reset", + "Reset", + &asn_OP_SEQUENCE, + asn_DEF_Reset_tags_1, + sizeof(asn_DEF_Reset_tags_1) + /sizeof(asn_DEF_Reset_tags_1[0]), /* 1 */ + asn_DEF_Reset_tags_1, /* Same as above */ + sizeof(asn_DEF_Reset_tags_1) + /sizeof(asn_DEF_Reset_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Reset_1, + 1, /* Elements count */ + &asn_SPC_Reset_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Reset.h b/src/du_app/F1AP/asn/Reset.h new file mode 100755 index 000000000..6585546f5 --- /dev/null +++ b/src/du_app/F1AP/asn/Reset.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Reset_H_ +#define _Reset_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Reset */ +typedef struct Reset { + ProtocolIE_Container_4587P0_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Reset_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Reset; +extern asn_SEQUENCE_specifics_t asn_SPC_Reset_specs_1; +extern asn_TYPE_member_t asn_MBR_Reset_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Reset_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ResetAcknowledge.c b/src/du_app/F1AP/asn/ResetAcknowledge.c new file mode 100755 index 000000000..d887864ab --- /dev/null +++ b/src/du_app/F1AP/asn/ResetAcknowledge.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ResetAcknowledge.h" + +asn_TYPE_member_t asn_MBR_ResetAcknowledge_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ResetAcknowledge, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ResetAcknowledge_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ResetAcknowledge_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ResetAcknowledge_specs_1 = { + sizeof(struct ResetAcknowledge), + offsetof(struct ResetAcknowledge, _asn_ctx), + asn_MAP_ResetAcknowledge_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_ResetAcknowledge = { + "ResetAcknowledge", + "ResetAcknowledge", + &asn_OP_SEQUENCE, + asn_DEF_ResetAcknowledge_tags_1, + sizeof(asn_DEF_ResetAcknowledge_tags_1) + /sizeof(asn_DEF_ResetAcknowledge_tags_1[0]), /* 1 */ + asn_DEF_ResetAcknowledge_tags_1, /* Same as above */ + sizeof(asn_DEF_ResetAcknowledge_tags_1) + /sizeof(asn_DEF_ResetAcknowledge_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ResetAcknowledge_1, + 1, /* Elements count */ + &asn_SPC_ResetAcknowledge_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/ResetAcknowledge.h b/src/du_app/F1AP/asn/ResetAcknowledge.h new file mode 100755 index 000000000..b4538eefc --- /dev/null +++ b/src/du_app/F1AP/asn/ResetAcknowledge.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ResetAcknowledge_H_ +#define _ResetAcknowledge_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ResetAcknowledge */ +typedef struct ResetAcknowledge { + ProtocolIE_Container_4587P1_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ResetAcknowledge_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ResetAcknowledge; +extern asn_SEQUENCE_specifics_t asn_SPC_ResetAcknowledge_specs_1; +extern asn_TYPE_member_t asn_MBR_ResetAcknowledge_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ResetAcknowledge_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ResetAll.c b/src/du_app/F1AP/asn/ResetAll.c new file mode 100755 index 000000000..bc952fe65 --- /dev/null +++ b/src/du_app/F1AP/asn/ResetAll.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ResetAll.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ResetAll_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ResetAll_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ResetAll_value2enum_1[] = { + { 0, 9, "reset-all" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ResetAll_enum2value_1[] = { + 0 /* reset-all(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ResetAll_specs_1 = { + asn_MAP_ResetAll_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ResetAll_enum2value_1, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ResetAll_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ResetAll = { + "ResetAll", + "ResetAll", + &asn_OP_NativeEnumerated, + asn_DEF_ResetAll_tags_1, + sizeof(asn_DEF_ResetAll_tags_1) + /sizeof(asn_DEF_ResetAll_tags_1[0]), /* 1 */ + asn_DEF_ResetAll_tags_1, /* Same as above */ + sizeof(asn_DEF_ResetAll_tags_1) + /sizeof(asn_DEF_ResetAll_tags_1[0]), /* 1 */ + { &asn_OER_type_ResetAll_constr_1, &asn_PER_type_ResetAll_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ResetAll_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/ResetAll.h b/src/du_app/F1AP/asn/ResetAll.h new file mode 100755 index 000000000..c7d577335 --- /dev/null +++ b/src/du_app/F1AP/asn/ResetAll.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ResetAll_H_ +#define _ResetAll_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ResetAll { + ResetAll_reset_all = 0 + /* + * Enumeration is extensible + */ +} e_ResetAll; + +/* ResetAll */ +typedef long ResetAll_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ResetAll_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ResetAll; +extern const asn_INTEGER_specifics_t asn_SPC_ResetAll_specs_1; +asn_struct_free_f ResetAll_free; +asn_struct_print_f ResetAll_print; +asn_constr_check_f ResetAll_constraint; +ber_type_decoder_f ResetAll_decode_ber; +der_type_encoder_f ResetAll_encode_der; +xer_type_decoder_f ResetAll_decode_xer; +xer_type_encoder_f ResetAll_encode_xer; +oer_type_decoder_f ResetAll_decode_oer; +oer_type_encoder_f ResetAll_encode_oer; +per_type_decoder_f ResetAll_decode_uper; +per_type_encoder_f ResetAll_encode_uper; +per_type_decoder_f ResetAll_decode_aper; +per_type_encoder_f ResetAll_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ResetAll_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ResetType.c b/src/du_app/F1AP/asn/ResetType.c new file mode 100755 index 000000000..f777a13d0 --- /dev/null +++ b/src/du_app/F1AP/asn/ResetType.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ResetType.h" + +#include "UE-associatedLogicalF1-ConnectionListRes.h" +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_ResetType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_ResetType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ResetType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ResetType, choice.f1_Interface), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ResetAll, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "f1-Interface" + }, + { ATF_POINTER, 0, offsetof(struct ResetType, choice.partOfF1_Interface), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UE_associatedLogicalF1_ConnectionListRes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "partOfF1-Interface" + }, + { ATF_POINTER, 0, offsetof(struct ResetType, choice.choice_extension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_SingleContainer_4590P1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-extension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ResetType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* f1-Interface */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* partOfF1-Interface */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-extension */ +}; +static asn_CHOICE_specifics_t asn_SPC_ResetType_specs_1 = { + sizeof(struct ResetType), + offsetof(struct ResetType, _asn_ctx), + offsetof(struct ResetType, present), + sizeof(((struct ResetType *)0)->present), + asn_MAP_ResetType_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ResetType = { + "ResetType", + "ResetType", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_ResetType_constr_1, &asn_PER_type_ResetType_constr_1, CHOICE_constraint }, + asn_MBR_ResetType_1, + 3, /* Elements count */ + &asn_SPC_ResetType_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/ResetType.h b/src/du_app/F1AP/asn/ResetType.h new file mode 100755 index 000000000..68875e476 --- /dev/null +++ b/src/du_app/F1AP/asn/ResetType.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ResetType_H_ +#define _ResetType_H_ + + +#include + +/* Including external dependencies */ +#include "ResetAll.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ResetType_PR { + ResetType_PR_NOTHING, /* No components present */ + ResetType_PR_f1_Interface, + ResetType_PR_partOfF1_Interface, + ResetType_PR_choice_extension +} ResetType_PR; + +/* Forward declarations */ +struct UE_associatedLogicalF1_ConnectionListRes; +struct ProtocolIE_SingleContainer; + +/* ResetType */ +typedef struct ResetType { + ResetType_PR present; + union ResetType_u { + ResetAll_t f1_Interface; + struct UE_associatedLogicalF1_ConnectionListRes *partOfF1_Interface; + struct ProtocolIE_SingleContainer *choice_extension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ResetType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ResetType; + +#ifdef __cplusplus +} +#endif + +#endif /* _ResetType_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ResourceCoordinationEUTRACellInfo.c b/src/du_app/F1AP/asn/ResourceCoordinationEUTRACellInfo.c new file mode 100755 index 000000000..04f2de919 --- /dev/null +++ b/src/du_app/F1AP/asn/ResourceCoordinationEUTRACellInfo.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ResourceCoordinationEUTRACellInfo.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ResourceCoordinationEUTRACellInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ResourceCoordinationEUTRACellInfo, eUTRA_Mode_Info), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_EUTRA_Coex_Mode_Info, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRA-Mode-Info" + }, + { ATF_NOFLAGS, 0, offsetof(struct ResourceCoordinationEUTRACellInfo, eUTRA_PRACH_Configuration), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_PRACH_Configuration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRA-PRACH-Configuration" + }, + { ATF_POINTER, 1, offsetof(struct ResourceCoordinationEUTRACellInfo, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P76, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ResourceCoordinationEUTRACellInfo_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ResourceCoordinationEUTRACellInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ResourceCoordinationEUTRACellInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eUTRA-Mode-Info */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eUTRA-PRACH-Configuration */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ResourceCoordinationEUTRACellInfo_specs_1 = { + sizeof(struct ResourceCoordinationEUTRACellInfo), + offsetof(struct ResourceCoordinationEUTRACellInfo, _asn_ctx), + asn_MAP_ResourceCoordinationEUTRACellInfo_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ResourceCoordinationEUTRACellInfo_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ResourceCoordinationEUTRACellInfo = { + "ResourceCoordinationEUTRACellInfo", + "ResourceCoordinationEUTRACellInfo", + &asn_OP_SEQUENCE, + asn_DEF_ResourceCoordinationEUTRACellInfo_tags_1, + sizeof(asn_DEF_ResourceCoordinationEUTRACellInfo_tags_1) + /sizeof(asn_DEF_ResourceCoordinationEUTRACellInfo_tags_1[0]), /* 1 */ + asn_DEF_ResourceCoordinationEUTRACellInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ResourceCoordinationEUTRACellInfo_tags_1) + /sizeof(asn_DEF_ResourceCoordinationEUTRACellInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ResourceCoordinationEUTRACellInfo_1, + 3, /* Elements count */ + &asn_SPC_ResourceCoordinationEUTRACellInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/ResourceCoordinationEUTRACellInfo.h b/src/du_app/F1AP/asn/ResourceCoordinationEUTRACellInfo.h new file mode 100755 index 000000000..8fbf951d0 --- /dev/null +++ b/src/du_app/F1AP/asn/ResourceCoordinationEUTRACellInfo.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ResourceCoordinationEUTRACellInfo_H_ +#define _ResourceCoordinationEUTRACellInfo_H_ + + +#include + +/* Including external dependencies */ +#include "EUTRA-Coex-Mode-Info.h" +#include "EUTRA-PRACH-Configuration.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* ResourceCoordinationEUTRACellInfo */ +typedef struct ResourceCoordinationEUTRACellInfo { + EUTRA_Coex_Mode_Info_t eUTRA_Mode_Info; + EUTRA_PRACH_Configuration_t eUTRA_PRACH_Configuration; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ResourceCoordinationEUTRACellInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ResourceCoordinationEUTRACellInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ResourceCoordinationEUTRACellInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ResourceCoordinationEUTRACellInfo_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ResourceCoordinationEUTRACellInfo_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ResourceCoordinationTransferContainer.c b/src/du_app/F1AP/asn/ResourceCoordinationTransferContainer.c new file mode 100755 index 000000000..9efb3a1a5 --- /dev/null +++ b/src/du_app/F1AP/asn/ResourceCoordinationTransferContainer.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ResourceCoordinationTransferContainer.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ResourceCoordinationTransferContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ResourceCoordinationTransferContainer = { + "ResourceCoordinationTransferContainer", + "ResourceCoordinationTransferContainer", + &asn_OP_OCTET_STRING, + asn_DEF_ResourceCoordinationTransferContainer_tags_1, + sizeof(asn_DEF_ResourceCoordinationTransferContainer_tags_1) + /sizeof(asn_DEF_ResourceCoordinationTransferContainer_tags_1[0]), /* 1 */ + asn_DEF_ResourceCoordinationTransferContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_ResourceCoordinationTransferContainer_tags_1) + /sizeof(asn_DEF_ResourceCoordinationTransferContainer_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/ResourceCoordinationTransferContainer.h b/src/du_app/F1AP/asn/ResourceCoordinationTransferContainer.h new file mode 100755 index 000000000..7835df7bf --- /dev/null +++ b/src/du_app/F1AP/asn/ResourceCoordinationTransferContainer.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ResourceCoordinationTransferContainer_H_ +#define _ResourceCoordinationTransferContainer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ResourceCoordinationTransferContainer */ +typedef OCTET_STRING_t ResourceCoordinationTransferContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ResourceCoordinationTransferContainer; +asn_struct_free_f ResourceCoordinationTransferContainer_free; +asn_struct_print_f ResourceCoordinationTransferContainer_print; +asn_constr_check_f ResourceCoordinationTransferContainer_constraint; +ber_type_decoder_f ResourceCoordinationTransferContainer_decode_ber; +der_type_encoder_f ResourceCoordinationTransferContainer_encode_der; +xer_type_decoder_f ResourceCoordinationTransferContainer_decode_xer; +xer_type_encoder_f ResourceCoordinationTransferContainer_encode_xer; +oer_type_decoder_f ResourceCoordinationTransferContainer_decode_oer; +oer_type_encoder_f ResourceCoordinationTransferContainer_encode_oer; +per_type_decoder_f ResourceCoordinationTransferContainer_decode_uper; +per_type_encoder_f ResourceCoordinationTransferContainer_encode_uper; +per_type_decoder_f ResourceCoordinationTransferContainer_decode_aper; +per_type_encoder_f ResourceCoordinationTransferContainer_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ResourceCoordinationTransferContainer_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ResourceCoordinationTransferInformation.c b/src/du_app/F1AP/asn/ResourceCoordinationTransferInformation.c new file mode 100755 index 000000000..3bff0f723 --- /dev/null +++ b/src/du_app/F1AP/asn/ResourceCoordinationTransferInformation.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ResourceCoordinationTransferInformation.h" + +#include "ResourceCoordinationEUTRACellInfo.h" +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ResourceCoordinationTransferInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ResourceCoordinationTransferInformation, meNB_Cell_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_Cell_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "meNB-Cell-ID" + }, + { ATF_POINTER, 2, offsetof(struct ResourceCoordinationTransferInformation, resourceCoordinationEUTRACellInfo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ResourceCoordinationEUTRACellInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceCoordinationEUTRACellInfo" + }, + { ATF_POINTER, 1, offsetof(struct ResourceCoordinationTransferInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P77, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ResourceCoordinationTransferInformation_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ResourceCoordinationTransferInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ResourceCoordinationTransferInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* meNB-Cell-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* resourceCoordinationEUTRACellInfo */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ResourceCoordinationTransferInformation_specs_1 = { + sizeof(struct ResourceCoordinationTransferInformation), + offsetof(struct ResourceCoordinationTransferInformation, _asn_ctx), + asn_MAP_ResourceCoordinationTransferInformation_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ResourceCoordinationTransferInformation_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ResourceCoordinationTransferInformation = { + "ResourceCoordinationTransferInformation", + "ResourceCoordinationTransferInformation", + &asn_OP_SEQUENCE, + asn_DEF_ResourceCoordinationTransferInformation_tags_1, + sizeof(asn_DEF_ResourceCoordinationTransferInformation_tags_1) + /sizeof(asn_DEF_ResourceCoordinationTransferInformation_tags_1[0]), /* 1 */ + asn_DEF_ResourceCoordinationTransferInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ResourceCoordinationTransferInformation_tags_1) + /sizeof(asn_DEF_ResourceCoordinationTransferInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ResourceCoordinationTransferInformation_1, + 3, /* Elements count */ + &asn_SPC_ResourceCoordinationTransferInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/ResourceCoordinationTransferInformation.h b/src/du_app/F1AP/asn/ResourceCoordinationTransferInformation.h new file mode 100755 index 000000000..fef179b3a --- /dev/null +++ b/src/du_app/F1AP/asn/ResourceCoordinationTransferInformation.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ResourceCoordinationTransferInformation_H_ +#define _ResourceCoordinationTransferInformation_H_ + + +#include + +/* Including external dependencies */ +#include "EUTRA-Cell-ID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ResourceCoordinationEUTRACellInfo; +struct ProtocolExtensionContainer; + +/* ResourceCoordinationTransferInformation */ +typedef struct ResourceCoordinationTransferInformation { + EUTRA_Cell_ID_t meNB_Cell_ID; + struct ResourceCoordinationEUTRACellInfo *resourceCoordinationEUTRACellInfo; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ResourceCoordinationTransferInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ResourceCoordinationTransferInformation; + +#ifdef __cplusplus +} +#endif + +#endif /* _ResourceCoordinationTransferInformation_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SCell-FailedtoSetup-Item.c b/src/du_app/F1AP/asn/SCell-FailedtoSetup-Item.c new file mode 100755 index 000000000..a778e29f3 --- /dev/null +++ b/src/du_app/F1AP/asn/SCell-FailedtoSetup-Item.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SCell-FailedtoSetup-Item.h" + +#include "Cause.h" +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_SCell_FailedtoSetup_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SCell_FailedtoSetup_Item, sCell_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRCGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sCell-ID" + }, + { ATF_POINTER, 2, offsetof(struct SCell_FailedtoSetup_Item, cause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 1, offsetof(struct SCell_FailedtoSetup_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P82, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_SCell_FailedtoSetup_Item_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_SCell_FailedtoSetup_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SCell_FailedtoSetup_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCell-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SCell_FailedtoSetup_Item_specs_1 = { + sizeof(struct SCell_FailedtoSetup_Item), + offsetof(struct SCell_FailedtoSetup_Item, _asn_ctx), + asn_MAP_SCell_FailedtoSetup_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_SCell_FailedtoSetup_Item_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SCell_FailedtoSetup_Item = { + "SCell-FailedtoSetup-Item", + "SCell-FailedtoSetup-Item", + &asn_OP_SEQUENCE, + asn_DEF_SCell_FailedtoSetup_Item_tags_1, + sizeof(asn_DEF_SCell_FailedtoSetup_Item_tags_1) + /sizeof(asn_DEF_SCell_FailedtoSetup_Item_tags_1[0]), /* 1 */ + asn_DEF_SCell_FailedtoSetup_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_SCell_FailedtoSetup_Item_tags_1) + /sizeof(asn_DEF_SCell_FailedtoSetup_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SCell_FailedtoSetup_Item_1, + 3, /* Elements count */ + &asn_SPC_SCell_FailedtoSetup_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SCell-FailedtoSetup-Item.h b/src/du_app/F1AP/asn/SCell-FailedtoSetup-Item.h new file mode 100755 index 000000000..0cc0daf4d --- /dev/null +++ b/src/du_app/F1AP/asn/SCell-FailedtoSetup-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SCell_FailedtoSetup_Item_H_ +#define _SCell_FailedtoSetup_Item_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Cause; +struct ProtocolExtensionContainer; + +/* SCell-FailedtoSetup-Item */ +typedef struct SCell_FailedtoSetup_Item { + NRCGI_t sCell_ID; + struct Cause *cause; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SCell_FailedtoSetup_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SCell_FailedtoSetup_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _SCell_FailedtoSetup_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SCell-FailedtoSetup-List.c b/src/du_app/F1AP/asn/SCell-FailedtoSetup-List.c new file mode 100755 index 000000000..8c3ea7775 --- /dev/null +++ b/src/du_app/F1AP/asn/SCell-FailedtoSetup-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SCell-FailedtoSetup-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_SCell_FailedtoSetup_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_SCell_FailedtoSetup_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_SCell_FailedtoSetup_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P27, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SCell_FailedtoSetup_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_SCell_FailedtoSetup_List_specs_1 = { + sizeof(struct SCell_FailedtoSetup_List), + offsetof(struct SCell_FailedtoSetup_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SCell_FailedtoSetup_List = { + "SCell-FailedtoSetup-List", + "SCell-FailedtoSetup-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_SCell_FailedtoSetup_List_tags_1, + sizeof(asn_DEF_SCell_FailedtoSetup_List_tags_1) + /sizeof(asn_DEF_SCell_FailedtoSetup_List_tags_1[0]), /* 1 */ + asn_DEF_SCell_FailedtoSetup_List_tags_1, /* Same as above */ + sizeof(asn_DEF_SCell_FailedtoSetup_List_tags_1) + /sizeof(asn_DEF_SCell_FailedtoSetup_List_tags_1[0]), /* 1 */ + { &asn_OER_type_SCell_FailedtoSetup_List_constr_1, &asn_PER_type_SCell_FailedtoSetup_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SCell_FailedtoSetup_List_1, + 1, /* Single element */ + &asn_SPC_SCell_FailedtoSetup_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SCell-FailedtoSetup-List.h b/src/du_app/F1AP/asn/SCell-FailedtoSetup-List.h new file mode 100755 index 000000000..1eaec39b7 --- /dev/null +++ b/src/du_app/F1AP/asn/SCell-FailedtoSetup-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SCell_FailedtoSetup_List_H_ +#define _SCell_FailedtoSetup_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* SCell-FailedtoSetup-List */ +typedef struct SCell_FailedtoSetup_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SCell_FailedtoSetup_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SCell_FailedtoSetup_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _SCell_FailedtoSetup_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SCell-FailedtoSetupMod-Item.c b/src/du_app/F1AP/asn/SCell-FailedtoSetupMod-Item.c new file mode 100755 index 000000000..e19c0636f --- /dev/null +++ b/src/du_app/F1AP/asn/SCell-FailedtoSetupMod-Item.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SCell-FailedtoSetupMod-Item.h" + +#include "Cause.h" +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_SCell_FailedtoSetupMod_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SCell_FailedtoSetupMod_Item, sCell_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRCGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sCell-ID" + }, + { ATF_POINTER, 2, offsetof(struct SCell_FailedtoSetupMod_Item, cause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 1, offsetof(struct SCell_FailedtoSetupMod_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P83, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_SCell_FailedtoSetupMod_Item_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_SCell_FailedtoSetupMod_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SCell_FailedtoSetupMod_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCell-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SCell_FailedtoSetupMod_Item_specs_1 = { + sizeof(struct SCell_FailedtoSetupMod_Item), + offsetof(struct SCell_FailedtoSetupMod_Item, _asn_ctx), + asn_MAP_SCell_FailedtoSetupMod_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_SCell_FailedtoSetupMod_Item_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SCell_FailedtoSetupMod_Item = { + "SCell-FailedtoSetupMod-Item", + "SCell-FailedtoSetupMod-Item", + &asn_OP_SEQUENCE, + asn_DEF_SCell_FailedtoSetupMod_Item_tags_1, + sizeof(asn_DEF_SCell_FailedtoSetupMod_Item_tags_1) + /sizeof(asn_DEF_SCell_FailedtoSetupMod_Item_tags_1[0]), /* 1 */ + asn_DEF_SCell_FailedtoSetupMod_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_SCell_FailedtoSetupMod_Item_tags_1) + /sizeof(asn_DEF_SCell_FailedtoSetupMod_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SCell_FailedtoSetupMod_Item_1, + 3, /* Elements count */ + &asn_SPC_SCell_FailedtoSetupMod_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SCell-FailedtoSetupMod-Item.h b/src/du_app/F1AP/asn/SCell-FailedtoSetupMod-Item.h new file mode 100755 index 000000000..e70a424dd --- /dev/null +++ b/src/du_app/F1AP/asn/SCell-FailedtoSetupMod-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SCell_FailedtoSetupMod_Item_H_ +#define _SCell_FailedtoSetupMod_Item_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Cause; +struct ProtocolExtensionContainer; + +/* SCell-FailedtoSetupMod-Item */ +typedef struct SCell_FailedtoSetupMod_Item { + NRCGI_t sCell_ID; + struct Cause *cause; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SCell_FailedtoSetupMod_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SCell_FailedtoSetupMod_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _SCell_FailedtoSetupMod_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SCell-FailedtoSetupMod-List.c b/src/du_app/F1AP/asn/SCell-FailedtoSetupMod-List.c new file mode 100755 index 000000000..fd6ff1cda --- /dev/null +++ b/src/du_app/F1AP/asn/SCell-FailedtoSetupMod-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SCell-FailedtoSetupMod-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_SCell_FailedtoSetupMod_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_SCell_FailedtoSetupMod_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_SCell_FailedtoSetupMod_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P44, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SCell_FailedtoSetupMod_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_SCell_FailedtoSetupMod_List_specs_1 = { + sizeof(struct SCell_FailedtoSetupMod_List), + offsetof(struct SCell_FailedtoSetupMod_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SCell_FailedtoSetupMod_List = { + "SCell-FailedtoSetupMod-List", + "SCell-FailedtoSetupMod-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_SCell_FailedtoSetupMod_List_tags_1, + sizeof(asn_DEF_SCell_FailedtoSetupMod_List_tags_1) + /sizeof(asn_DEF_SCell_FailedtoSetupMod_List_tags_1[0]), /* 1 */ + asn_DEF_SCell_FailedtoSetupMod_List_tags_1, /* Same as above */ + sizeof(asn_DEF_SCell_FailedtoSetupMod_List_tags_1) + /sizeof(asn_DEF_SCell_FailedtoSetupMod_List_tags_1[0]), /* 1 */ + { &asn_OER_type_SCell_FailedtoSetupMod_List_constr_1, &asn_PER_type_SCell_FailedtoSetupMod_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SCell_FailedtoSetupMod_List_1, + 1, /* Single element */ + &asn_SPC_SCell_FailedtoSetupMod_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SCell-FailedtoSetupMod-List.h b/src/du_app/F1AP/asn/SCell-FailedtoSetupMod-List.h new file mode 100755 index 000000000..621fe1851 --- /dev/null +++ b/src/du_app/F1AP/asn/SCell-FailedtoSetupMod-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SCell_FailedtoSetupMod_List_H_ +#define _SCell_FailedtoSetupMod_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* SCell-FailedtoSetupMod-List */ +typedef struct SCell_FailedtoSetupMod_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SCell_FailedtoSetupMod_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SCell_FailedtoSetupMod_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _SCell_FailedtoSetupMod_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SCell-ToBeRemoved-Item.c b/src/du_app/F1AP/asn/SCell-ToBeRemoved-Item.c new file mode 100755 index 000000000..703b6d506 --- /dev/null +++ b/src/du_app/F1AP/asn/SCell-ToBeRemoved-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SCell-ToBeRemoved-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_SCell_ToBeRemoved_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeRemoved_Item, sCell_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRCGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sCell-ID" + }, + { ATF_POINTER, 1, offsetof(struct SCell_ToBeRemoved_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P84, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_SCell_ToBeRemoved_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_SCell_ToBeRemoved_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SCell_ToBeRemoved_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCell-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SCell_ToBeRemoved_Item_specs_1 = { + sizeof(struct SCell_ToBeRemoved_Item), + offsetof(struct SCell_ToBeRemoved_Item, _asn_ctx), + asn_MAP_SCell_ToBeRemoved_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_SCell_ToBeRemoved_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SCell_ToBeRemoved_Item = { + "SCell-ToBeRemoved-Item", + "SCell-ToBeRemoved-Item", + &asn_OP_SEQUENCE, + asn_DEF_SCell_ToBeRemoved_Item_tags_1, + sizeof(asn_DEF_SCell_ToBeRemoved_Item_tags_1) + /sizeof(asn_DEF_SCell_ToBeRemoved_Item_tags_1[0]), /* 1 */ + asn_DEF_SCell_ToBeRemoved_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_SCell_ToBeRemoved_Item_tags_1) + /sizeof(asn_DEF_SCell_ToBeRemoved_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SCell_ToBeRemoved_Item_1, + 2, /* Elements count */ + &asn_SPC_SCell_ToBeRemoved_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SCell-ToBeRemoved-Item.h b/src/du_app/F1AP/asn/SCell-ToBeRemoved-Item.h new file mode 100755 index 000000000..1ef7a8fc7 --- /dev/null +++ b/src/du_app/F1AP/asn/SCell-ToBeRemoved-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SCell_ToBeRemoved_Item_H_ +#define _SCell_ToBeRemoved_Item_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* SCell-ToBeRemoved-Item */ +typedef struct SCell_ToBeRemoved_Item { + NRCGI_t sCell_ID; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SCell_ToBeRemoved_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SCell_ToBeRemoved_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _SCell_ToBeRemoved_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SCell-ToBeRemoved-List.c b/src/du_app/F1AP/asn/SCell-ToBeRemoved-List.c new file mode 100755 index 000000000..40004947e --- /dev/null +++ b/src/du_app/F1AP/asn/SCell-ToBeRemoved-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SCell-ToBeRemoved-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_SCell_ToBeRemoved_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_SCell_ToBeRemoved_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_SCell_ToBeRemoved_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P31, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SCell_ToBeRemoved_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_SCell_ToBeRemoved_List_specs_1 = { + sizeof(struct SCell_ToBeRemoved_List), + offsetof(struct SCell_ToBeRemoved_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SCell_ToBeRemoved_List = { + "SCell-ToBeRemoved-List", + "SCell-ToBeRemoved-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_SCell_ToBeRemoved_List_tags_1, + sizeof(asn_DEF_SCell_ToBeRemoved_List_tags_1) + /sizeof(asn_DEF_SCell_ToBeRemoved_List_tags_1[0]), /* 1 */ + asn_DEF_SCell_ToBeRemoved_List_tags_1, /* Same as above */ + sizeof(asn_DEF_SCell_ToBeRemoved_List_tags_1) + /sizeof(asn_DEF_SCell_ToBeRemoved_List_tags_1[0]), /* 1 */ + { &asn_OER_type_SCell_ToBeRemoved_List_constr_1, &asn_PER_type_SCell_ToBeRemoved_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SCell_ToBeRemoved_List_1, + 1, /* Single element */ + &asn_SPC_SCell_ToBeRemoved_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SCell-ToBeRemoved-List.h b/src/du_app/F1AP/asn/SCell-ToBeRemoved-List.h new file mode 100755 index 000000000..46789489d --- /dev/null +++ b/src/du_app/F1AP/asn/SCell-ToBeRemoved-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SCell_ToBeRemoved_List_H_ +#define _SCell_ToBeRemoved_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* SCell-ToBeRemoved-List */ +typedef struct SCell_ToBeRemoved_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SCell_ToBeRemoved_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SCell_ToBeRemoved_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _SCell_ToBeRemoved_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SCell-ToBeSetup-Item.c b/src/du_app/F1AP/asn/SCell-ToBeSetup-Item.c new file mode 100755 index 000000000..7b2646d49 --- /dev/null +++ b/src/du_app/F1AP/asn/SCell-ToBeSetup-Item.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SCell-ToBeSetup-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_SCell_ToBeSetup_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeSetup_Item, sCell_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRCGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sCell-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeSetup_Item, sCellIndex), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sCellIndex" + }, + { ATF_POINTER, 2, offsetof(struct SCell_ToBeSetup_Item, sCellULConfigured), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellULConfigured, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sCellULConfigured" + }, + { ATF_POINTER, 1, offsetof(struct SCell_ToBeSetup_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P85, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_SCell_ToBeSetup_Item_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_SCell_ToBeSetup_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SCell_ToBeSetup_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCell-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sCellIndex */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sCellULConfigured */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SCell_ToBeSetup_Item_specs_1 = { + sizeof(struct SCell_ToBeSetup_Item), + offsetof(struct SCell_ToBeSetup_Item, _asn_ctx), + asn_MAP_SCell_ToBeSetup_Item_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SCell_ToBeSetup_Item_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SCell_ToBeSetup_Item = { + "SCell-ToBeSetup-Item", + "SCell-ToBeSetup-Item", + &asn_OP_SEQUENCE, + asn_DEF_SCell_ToBeSetup_Item_tags_1, + sizeof(asn_DEF_SCell_ToBeSetup_Item_tags_1) + /sizeof(asn_DEF_SCell_ToBeSetup_Item_tags_1[0]), /* 1 */ + asn_DEF_SCell_ToBeSetup_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_SCell_ToBeSetup_Item_tags_1) + /sizeof(asn_DEF_SCell_ToBeSetup_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SCell_ToBeSetup_Item_1, + 4, /* Elements count */ + &asn_SPC_SCell_ToBeSetup_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SCell-ToBeSetup-Item.h b/src/du_app/F1AP/asn/SCell-ToBeSetup-Item.h new file mode 100755 index 000000000..26c78513d --- /dev/null +++ b/src/du_app/F1AP/asn/SCell-ToBeSetup-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SCell_ToBeSetup_Item_H_ +#define _SCell_ToBeSetup_Item_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include "SCellIndex.h" +#include "CellULConfigured.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* SCell-ToBeSetup-Item */ +typedef struct SCell_ToBeSetup_Item { + NRCGI_t sCell_ID; + SCellIndex_t sCellIndex; + CellULConfigured_t *sCellULConfigured; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SCell_ToBeSetup_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SCell_ToBeSetup_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _SCell_ToBeSetup_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SCell-ToBeSetup-List.c b/src/du_app/F1AP/asn/SCell-ToBeSetup-List.c new file mode 100755 index 000000000..a101970d9 --- /dev/null +++ b/src/du_app/F1AP/asn/SCell-ToBeSetup-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SCell-ToBeSetup-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_SCell_ToBeSetup_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_SCell_ToBeSetup_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_SCell_ToBeSetup_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SCell_ToBeSetup_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_SCell_ToBeSetup_List_specs_1 = { + sizeof(struct SCell_ToBeSetup_List), + offsetof(struct SCell_ToBeSetup_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SCell_ToBeSetup_List = { + "SCell-ToBeSetup-List", + "SCell-ToBeSetup-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_SCell_ToBeSetup_List_tags_1, + sizeof(asn_DEF_SCell_ToBeSetup_List_tags_1) + /sizeof(asn_DEF_SCell_ToBeSetup_List_tags_1[0]), /* 1 */ + asn_DEF_SCell_ToBeSetup_List_tags_1, /* Same as above */ + sizeof(asn_DEF_SCell_ToBeSetup_List_tags_1) + /sizeof(asn_DEF_SCell_ToBeSetup_List_tags_1[0]), /* 1 */ + { &asn_OER_type_SCell_ToBeSetup_List_constr_1, &asn_PER_type_SCell_ToBeSetup_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SCell_ToBeSetup_List_1, + 1, /* Single element */ + &asn_SPC_SCell_ToBeSetup_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SCell-ToBeSetup-List.h b/src/du_app/F1AP/asn/SCell-ToBeSetup-List.h new file mode 100755 index 000000000..c89dccfe3 --- /dev/null +++ b/src/du_app/F1AP/asn/SCell-ToBeSetup-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SCell_ToBeSetup_List_H_ +#define _SCell_ToBeSetup_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* SCell-ToBeSetup-List */ +typedef struct SCell_ToBeSetup_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SCell_ToBeSetup_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SCell_ToBeSetup_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _SCell_ToBeSetup_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SCell-ToBeSetupMod-Item.c b/src/du_app/F1AP/asn/SCell-ToBeSetupMod-Item.c new file mode 100755 index 000000000..4a8712e19 --- /dev/null +++ b/src/du_app/F1AP/asn/SCell-ToBeSetupMod-Item.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SCell-ToBeSetupMod-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_SCell_ToBeSetupMod_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeSetupMod_Item, sCell_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRCGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sCell-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct SCell_ToBeSetupMod_Item, sCellIndex), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sCellIndex" + }, + { ATF_POINTER, 2, offsetof(struct SCell_ToBeSetupMod_Item, sCellULConfigured), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellULConfigured, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sCellULConfigured" + }, + { ATF_POINTER, 1, offsetof(struct SCell_ToBeSetupMod_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P86, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_SCell_ToBeSetupMod_Item_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_SCell_ToBeSetupMod_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SCell_ToBeSetupMod_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCell-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sCellIndex */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sCellULConfigured */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SCell_ToBeSetupMod_Item_specs_1 = { + sizeof(struct SCell_ToBeSetupMod_Item), + offsetof(struct SCell_ToBeSetupMod_Item, _asn_ctx), + asn_MAP_SCell_ToBeSetupMod_Item_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SCell_ToBeSetupMod_Item_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SCell_ToBeSetupMod_Item = { + "SCell-ToBeSetupMod-Item", + "SCell-ToBeSetupMod-Item", + &asn_OP_SEQUENCE, + asn_DEF_SCell_ToBeSetupMod_Item_tags_1, + sizeof(asn_DEF_SCell_ToBeSetupMod_Item_tags_1) + /sizeof(asn_DEF_SCell_ToBeSetupMod_Item_tags_1[0]), /* 1 */ + asn_DEF_SCell_ToBeSetupMod_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_SCell_ToBeSetupMod_Item_tags_1) + /sizeof(asn_DEF_SCell_ToBeSetupMod_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SCell_ToBeSetupMod_Item_1, + 4, /* Elements count */ + &asn_SPC_SCell_ToBeSetupMod_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SCell-ToBeSetupMod-Item.h b/src/du_app/F1AP/asn/SCell-ToBeSetupMod-Item.h new file mode 100755 index 000000000..ee933996a --- /dev/null +++ b/src/du_app/F1AP/asn/SCell-ToBeSetupMod-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SCell_ToBeSetupMod_Item_H_ +#define _SCell_ToBeSetupMod_Item_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include "SCellIndex.h" +#include "CellULConfigured.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* SCell-ToBeSetupMod-Item */ +typedef struct SCell_ToBeSetupMod_Item { + NRCGI_t sCell_ID; + SCellIndex_t sCellIndex; + CellULConfigured_t *sCellULConfigured; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SCell_ToBeSetupMod_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SCell_ToBeSetupMod_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _SCell_ToBeSetupMod_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SCell-ToBeSetupMod-List.c b/src/du_app/F1AP/asn/SCell-ToBeSetupMod-List.c new file mode 100755 index 000000000..eaa5d978c --- /dev/null +++ b/src/du_app/F1AP/asn/SCell-ToBeSetupMod-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SCell-ToBeSetupMod-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_SCell_ToBeSetupMod_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_SCell_ToBeSetupMod_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_SCell_ToBeSetupMod_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P30, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SCell_ToBeSetupMod_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_SCell_ToBeSetupMod_List_specs_1 = { + sizeof(struct SCell_ToBeSetupMod_List), + offsetof(struct SCell_ToBeSetupMod_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SCell_ToBeSetupMod_List = { + "SCell-ToBeSetupMod-List", + "SCell-ToBeSetupMod-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_SCell_ToBeSetupMod_List_tags_1, + sizeof(asn_DEF_SCell_ToBeSetupMod_List_tags_1) + /sizeof(asn_DEF_SCell_ToBeSetupMod_List_tags_1[0]), /* 1 */ + asn_DEF_SCell_ToBeSetupMod_List_tags_1, /* Same as above */ + sizeof(asn_DEF_SCell_ToBeSetupMod_List_tags_1) + /sizeof(asn_DEF_SCell_ToBeSetupMod_List_tags_1[0]), /* 1 */ + { &asn_OER_type_SCell_ToBeSetupMod_List_constr_1, &asn_PER_type_SCell_ToBeSetupMod_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SCell_ToBeSetupMod_List_1, + 1, /* Single element */ + &asn_SPC_SCell_ToBeSetupMod_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SCell-ToBeSetupMod-List.h b/src/du_app/F1AP/asn/SCell-ToBeSetupMod-List.h new file mode 100755 index 000000000..ed191a1ff --- /dev/null +++ b/src/du_app/F1AP/asn/SCell-ToBeSetupMod-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SCell_ToBeSetupMod_List_H_ +#define _SCell_ToBeSetupMod_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* SCell-ToBeSetupMod-List */ +typedef struct SCell_ToBeSetupMod_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SCell_ToBeSetupMod_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SCell_ToBeSetupMod_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _SCell_ToBeSetupMod_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SCellIndex.c b/src/du_app/F1AP/asn/SCellIndex.c new file mode 100755 index 000000000..2d6f2ca35 --- /dev/null +++ b/src/du_app/F1AP/asn/SCellIndex.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SCellIndex.h" + +int +SCellIndex_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 <= 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_SCellIndex_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SCellIndex_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 1, 31 } /* (1..31,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SCellIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SCellIndex = { + "SCellIndex", + "SCellIndex", + &asn_OP_NativeInteger, + asn_DEF_SCellIndex_tags_1, + sizeof(asn_DEF_SCellIndex_tags_1) + /sizeof(asn_DEF_SCellIndex_tags_1[0]), /* 1 */ + asn_DEF_SCellIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_SCellIndex_tags_1) + /sizeof(asn_DEF_SCellIndex_tags_1[0]), /* 1 */ + { &asn_OER_type_SCellIndex_constr_1, &asn_PER_type_SCellIndex_constr_1, SCellIndex_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/SCellIndex.h b/src/du_app/F1AP/asn/SCellIndex.h new file mode 100755 index 000000000..7a3b3a563 --- /dev/null +++ b/src/du_app/F1AP/asn/SCellIndex.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SCellIndex_H_ +#define _SCellIndex_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SCellIndex */ +typedef long SCellIndex_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SCellIndex_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SCellIndex; +asn_struct_free_f SCellIndex_free; +asn_struct_print_f SCellIndex_print; +asn_constr_check_f SCellIndex_constraint; +ber_type_decoder_f SCellIndex_decode_ber; +der_type_encoder_f SCellIndex_encode_der; +xer_type_decoder_f SCellIndex_decode_xer; +xer_type_encoder_f SCellIndex_encode_xer; +oer_type_decoder_f SCellIndex_decode_oer; +oer_type_encoder_f SCellIndex_encode_oer; +per_type_decoder_f SCellIndex_decode_uper; +per_type_encoder_f SCellIndex_encode_uper; +per_type_decoder_f SCellIndex_decode_aper; +per_type_encoder_f SCellIndex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SCellIndex_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SIB1-message.c b/src/du_app/F1AP/asn/SIB1-message.c new file mode 100755 index 000000000..09d4ec13a --- /dev/null +++ b/src/du_app/F1AP/asn/SIB1-message.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SIB1-message.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_SIB1_message_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SIB1_message = { + "SIB1-message", + "SIB1-message", + &asn_OP_OCTET_STRING, + asn_DEF_SIB1_message_tags_1, + sizeof(asn_DEF_SIB1_message_tags_1) + /sizeof(asn_DEF_SIB1_message_tags_1[0]), /* 1 */ + asn_DEF_SIB1_message_tags_1, /* Same as above */ + sizeof(asn_DEF_SIB1_message_tags_1) + /sizeof(asn_DEF_SIB1_message_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SIB1-message.h b/src/du_app/F1AP/asn/SIB1-message.h new file mode 100755 index 000000000..c3c3545c4 --- /dev/null +++ b/src/du_app/F1AP/asn/SIB1-message.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SIB1_message_H_ +#define _SIB1_message_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SIB1-message */ +typedef OCTET_STRING_t SIB1_message_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SIB1_message; +asn_struct_free_f SIB1_message_free; +asn_struct_print_f SIB1_message_print; +asn_constr_check_f SIB1_message_constraint; +ber_type_decoder_f SIB1_message_decode_ber; +der_type_encoder_f SIB1_message_encode_der; +xer_type_decoder_f SIB1_message_decode_xer; +xer_type_encoder_f SIB1_message_encode_xer; +oer_type_decoder_f SIB1_message_decode_oer; +oer_type_encoder_f SIB1_message_encode_oer; +per_type_decoder_f SIB1_message_decode_uper; +per_type_encoder_f SIB1_message_encode_uper; +per_type_decoder_f SIB1_message_decode_aper; +per_type_encoder_f SIB1_message_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SIB1_message_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SIBType-PWS.c b/src/du_app/F1AP/asn/SIBType-PWS.c new file mode 100755 index 000000000..b3e4493c7 --- /dev/null +++ b/src/du_app/F1AP/asn/SIBType-PWS.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SIBType-PWS.h" + +int +SIBType_PWS_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 >= 6 && value <= 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 NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SIBType_PWS_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SIBType_PWS_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 6, 8 } /* (6..8,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SIBType_PWS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SIBType_PWS = { + "SIBType-PWS", + "SIBType-PWS", + &asn_OP_NativeInteger, + asn_DEF_SIBType_PWS_tags_1, + sizeof(asn_DEF_SIBType_PWS_tags_1) + /sizeof(asn_DEF_SIBType_PWS_tags_1[0]), /* 1 */ + asn_DEF_SIBType_PWS_tags_1, /* Same as above */ + sizeof(asn_DEF_SIBType_PWS_tags_1) + /sizeof(asn_DEF_SIBType_PWS_tags_1[0]), /* 1 */ + { &asn_OER_type_SIBType_PWS_constr_1, &asn_PER_type_SIBType_PWS_constr_1, SIBType_PWS_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/SIBType-PWS.h b/src/du_app/F1AP/asn/SIBType-PWS.h new file mode 100755 index 000000000..dadd9ac56 --- /dev/null +++ b/src/du_app/F1AP/asn/SIBType-PWS.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SIBType_PWS_H_ +#define _SIBType_PWS_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SIBType-PWS */ +typedef long SIBType_PWS_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SIBType_PWS_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SIBType_PWS; +asn_struct_free_f SIBType_PWS_free; +asn_struct_print_f SIBType_PWS_print; +asn_constr_check_f SIBType_PWS_constraint; +ber_type_decoder_f SIBType_PWS_decode_ber; +der_type_encoder_f SIBType_PWS_encode_der; +xer_type_decoder_f SIBType_PWS_decode_xer; +xer_type_encoder_f SIBType_PWS_encode_xer; +oer_type_decoder_f SIBType_PWS_decode_oer; +oer_type_encoder_f SIBType_PWS_encode_oer; +per_type_decoder_f SIBType_PWS_decode_uper; +per_type_encoder_f SIBType_PWS_encode_uper; +per_type_decoder_f SIBType_PWS_decode_aper; +per_type_encoder_f SIBType_PWS_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SIBType_PWS_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SItype-Item.c b/src/du_app/F1AP/asn/SItype-Item.c new file mode 100755 index 000000000..038f32644 --- /dev/null +++ b/src/du_app/F1AP/asn/SItype-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SItype-Item.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_SItype_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SItype_Item, sItype), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SItype, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sItype" + }, + { ATF_POINTER, 1, offsetof(struct SItype_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P93, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_SItype_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_SItype_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SItype_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sItype */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SItype_Item_specs_1 = { + sizeof(struct SItype_Item), + offsetof(struct SItype_Item, _asn_ctx), + asn_MAP_SItype_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_SItype_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SItype_Item = { + "SItype-Item", + "SItype-Item", + &asn_OP_SEQUENCE, + asn_DEF_SItype_Item_tags_1, + sizeof(asn_DEF_SItype_Item_tags_1) + /sizeof(asn_DEF_SItype_Item_tags_1[0]), /* 1 */ + asn_DEF_SItype_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_SItype_Item_tags_1) + /sizeof(asn_DEF_SItype_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SItype_Item_1, + 2, /* Elements count */ + &asn_SPC_SItype_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SItype-Item.h b/src/du_app/F1AP/asn/SItype-Item.h new file mode 100755 index 000000000..4992f39e8 --- /dev/null +++ b/src/du_app/F1AP/asn/SItype-Item.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SItype_Item_H_ +#define _SItype_Item_H_ + + +#include + +/* Including external dependencies */ +#include "SItype.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* SItype-Item */ +typedef struct SItype_Item { + SItype_t sItype; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SItype_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SItype_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_SItype_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_SItype_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SItype_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SItype-List.c b/src/du_app/F1AP/asn/SItype-List.c new file mode 100755 index 000000000..3fda69de8 --- /dev/null +++ b/src/du_app/F1AP/asn/SItype-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SItype-List.h" + +#include "SItype-Item.h" +static asn_oer_constraints_t asn_OER_type_SItype_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_SItype_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_SItype_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SItype_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SItype_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_SItype_List_specs_1 = { + sizeof(struct SItype_List), + offsetof(struct SItype_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SItype_List = { + "SItype-List", + "SItype-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_SItype_List_tags_1, + sizeof(asn_DEF_SItype_List_tags_1) + /sizeof(asn_DEF_SItype_List_tags_1[0]), /* 1 */ + asn_DEF_SItype_List_tags_1, /* Same as above */ + sizeof(asn_DEF_SItype_List_tags_1) + /sizeof(asn_DEF_SItype_List_tags_1[0]), /* 1 */ + { &asn_OER_type_SItype_List_constr_1, &asn_PER_type_SItype_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SItype_List_1, + 1, /* Single element */ + &asn_SPC_SItype_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SItype-List.h b/src/du_app/F1AP/asn/SItype-List.h new file mode 100755 index 000000000..a70b22acd --- /dev/null +++ b/src/du_app/F1AP/asn/SItype-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SItype_List_H_ +#define _SItype_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SItype_Item; + +/* SItype-List */ +typedef struct SItype_List { + A_SEQUENCE_OF(struct SItype_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SItype_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SItype_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _SItype_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SItype.c b/src/du_app/F1AP/asn/SItype.c new file mode 100755 index 000000000..7514b7917 --- /dev/null +++ b/src/du_app/F1AP/asn/SItype.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SItype.h" + +int +SItype_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 <= 32)) { + /* 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_SItype_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SItype_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 1, 32 } /* (1..32,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SItype_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SItype = { + "SItype", + "SItype", + &asn_OP_NativeInteger, + asn_DEF_SItype_tags_1, + sizeof(asn_DEF_SItype_tags_1) + /sizeof(asn_DEF_SItype_tags_1[0]), /* 1 */ + asn_DEF_SItype_tags_1, /* Same as above */ + sizeof(asn_DEF_SItype_tags_1) + /sizeof(asn_DEF_SItype_tags_1[0]), /* 1 */ + { &asn_OER_type_SItype_constr_1, &asn_PER_type_SItype_constr_1, SItype_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/SItype.h b/src/du_app/F1AP/asn/SItype.h new file mode 100755 index 000000000..a8627f053 --- /dev/null +++ b/src/du_app/F1AP/asn/SItype.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SItype_H_ +#define _SItype_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SItype */ +typedef long SItype_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SItype_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SItype; +asn_struct_free_f SItype_free; +asn_struct_print_f SItype_print; +asn_constr_check_f SItype_constraint; +ber_type_decoder_f SItype_decode_ber; +der_type_encoder_f SItype_encode_der; +xer_type_decoder_f SItype_decode_xer; +xer_type_encoder_f SItype_encode_xer; +oer_type_decoder_f SItype_decode_oer; +oer_type_encoder_f SItype_encode_oer; +per_type_decoder_f SItype_decode_uper; +per_type_encoder_f SItype_encode_uper; +per_type_decoder_f SItype_decode_aper; +per_type_encoder_f SItype_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SItype_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SNSSAI.c b/src/du_app/F1AP/asn/SNSSAI.c new file mode 100755 index 000000000..e377f0a82 --- /dev/null +++ b/src/du_app/F1AP/asn/SNSSAI.c @@ -0,0 +1,141 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SNSSAI.h" + +#include "ProtocolExtensionContainer.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, 2, 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" + }, + { ATF_POINTER, 1, offsetof(struct SNSSAI, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P96, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_SNSSAI_oms_1[] = { 1, 2 }; +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_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SNSSAI_specs_1 = { + sizeof(struct SNSSAI), + offsetof(struct SNSSAI, _asn_ctx), + asn_MAP_SNSSAI_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_SNSSAI_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SNSSAI = { + "SNSSAI", + "SNSSAI", + &asn_OP_SEQUENCE, + asn_DEF_SNSSAI_tags_1, + sizeof(asn_DEF_SNSSAI_tags_1) + /sizeof(asn_DEF_SNSSAI_tags_1[0]), /* 1 */ + asn_DEF_SNSSAI_tags_1, /* Same as above */ + sizeof(asn_DEF_SNSSAI_tags_1) + /sizeof(asn_DEF_SNSSAI_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SNSSAI_1, + 3, /* Elements count */ + &asn_SPC_SNSSAI_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SNSSAI.h b/src/du_app/F1AP/asn/SNSSAI.h new file mode 100755 index 000000000..8eba97a9b --- /dev/null +++ b/src/du_app/F1AP/asn/SNSSAI.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SNSSAI_H_ +#define _SNSSAI_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* SNSSAI */ +typedef struct SNSSAI { + OCTET_STRING_t sST; + OCTET_STRING_t *sD; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SNSSAI_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SNSSAI; +extern asn_SEQUENCE_specifics_t asn_SPC_SNSSAI_specs_1; +extern asn_TYPE_member_t asn_MBR_SNSSAI_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SNSSAI_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SRBID.c b/src/du_app/F1AP/asn/SRBID.c new file mode 100755 index 000000000..10faeca24 --- /dev/null +++ b/src/du_app/F1AP/asn/SRBID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRBID.h" + +int +SRBID_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 <= 3)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SRBID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SRBID_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 ber_tlv_tag_t asn_DEF_SRBID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SRBID = { + "SRBID", + "SRBID", + &asn_OP_NativeInteger, + asn_DEF_SRBID_tags_1, + sizeof(asn_DEF_SRBID_tags_1) + /sizeof(asn_DEF_SRBID_tags_1[0]), /* 1 */ + asn_DEF_SRBID_tags_1, /* Same as above */ + sizeof(asn_DEF_SRBID_tags_1) + /sizeof(asn_DEF_SRBID_tags_1[0]), /* 1 */ + { &asn_OER_type_SRBID_constr_1, &asn_PER_type_SRBID_constr_1, SRBID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/SRBID.h b/src/du_app/F1AP/asn/SRBID.h new file mode 100755 index 000000000..2c8d7ff03 --- /dev/null +++ b/src/du_app/F1AP/asn/SRBID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRBID_H_ +#define _SRBID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SRBID */ +typedef long SRBID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SRBID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SRBID; +asn_struct_free_f SRBID_free; +asn_struct_print_f SRBID_print; +asn_constr_check_f SRBID_constraint; +ber_type_decoder_f SRBID_decode_ber; +der_type_encoder_f SRBID_encode_der; +xer_type_decoder_f SRBID_decode_xer; +xer_type_encoder_f SRBID_encode_xer; +oer_type_decoder_f SRBID_decode_oer; +oer_type_encoder_f SRBID_encode_oer; +per_type_decoder_f SRBID_decode_uper; +per_type_encoder_f SRBID_encode_uper; +per_type_decoder_f SRBID_decode_aper; +per_type_encoder_f SRBID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRBID_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SRBs-FailedToBeSetup-Item.c b/src/du_app/F1AP/asn/SRBs-FailedToBeSetup-Item.c new file mode 100755 index 000000000..01df4da48 --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-FailedToBeSetup-Item.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRBs-FailedToBeSetup-Item.h" + +#include "Cause.h" +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_SRBs_FailedToBeSetup_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_FailedToBeSetup_Item, sRBID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sRBID" + }, + { ATF_POINTER, 2, offsetof(struct SRBs_FailedToBeSetup_Item, cause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 1, offsetof(struct SRBs_FailedToBeSetup_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P97, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_SRBs_FailedToBeSetup_Item_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_SRBs_FailedToBeSetup_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_FailedToBeSetup_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sRBID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SRBs_FailedToBeSetup_Item_specs_1 = { + sizeof(struct SRBs_FailedToBeSetup_Item), + offsetof(struct SRBs_FailedToBeSetup_Item, _asn_ctx), + asn_MAP_SRBs_FailedToBeSetup_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_SRBs_FailedToBeSetup_Item_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_FailedToBeSetup_Item = { + "SRBs-FailedToBeSetup-Item", + "SRBs-FailedToBeSetup-Item", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_FailedToBeSetup_Item_tags_1, + sizeof(asn_DEF_SRBs_FailedToBeSetup_Item_tags_1) + /sizeof(asn_DEF_SRBs_FailedToBeSetup_Item_tags_1[0]), /* 1 */ + asn_DEF_SRBs_FailedToBeSetup_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_SRBs_FailedToBeSetup_Item_tags_1) + /sizeof(asn_DEF_SRBs_FailedToBeSetup_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_FailedToBeSetup_Item_1, + 3, /* Elements count */ + &asn_SPC_SRBs_FailedToBeSetup_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SRBs-FailedToBeSetup-Item.h b/src/du_app/F1AP/asn/SRBs-FailedToBeSetup-Item.h new file mode 100755 index 000000000..a3bf30f2b --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-FailedToBeSetup-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRBs_FailedToBeSetup_Item_H_ +#define _SRBs_FailedToBeSetup_Item_H_ + + +#include + +/* Including external dependencies */ +#include "SRBID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Cause; +struct ProtocolExtensionContainer; + +/* SRBs-FailedToBeSetup-Item */ +typedef struct SRBs_FailedToBeSetup_Item { + SRBID_t sRBID; + struct Cause *cause; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_FailedToBeSetup_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SRBs_FailedToBeSetup_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRBs_FailedToBeSetup_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SRBs-FailedToBeSetup-List.c b/src/du_app/F1AP/asn/SRBs-FailedToBeSetup-List.c new file mode 100755 index 000000000..6035be5cd --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-FailedToBeSetup-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRBs-FailedToBeSetup-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_SRBs_FailedToBeSetup_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_type_SRBs_FailedToBeSetup_List_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 */ +}; +static asn_TYPE_member_t asn_MBR_SRBs_FailedToBeSetup_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P25, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_FailedToBeSetup_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_SRBs_FailedToBeSetup_List_specs_1 = { + sizeof(struct SRBs_FailedToBeSetup_List), + offsetof(struct SRBs_FailedToBeSetup_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_FailedToBeSetup_List = { + "SRBs-FailedToBeSetup-List", + "SRBs-FailedToBeSetup-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_SRBs_FailedToBeSetup_List_tags_1, + sizeof(asn_DEF_SRBs_FailedToBeSetup_List_tags_1) + /sizeof(asn_DEF_SRBs_FailedToBeSetup_List_tags_1[0]), /* 1 */ + asn_DEF_SRBs_FailedToBeSetup_List_tags_1, /* Same as above */ + sizeof(asn_DEF_SRBs_FailedToBeSetup_List_tags_1) + /sizeof(asn_DEF_SRBs_FailedToBeSetup_List_tags_1[0]), /* 1 */ + { &asn_OER_type_SRBs_FailedToBeSetup_List_constr_1, &asn_PER_type_SRBs_FailedToBeSetup_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SRBs_FailedToBeSetup_List_1, + 1, /* Single element */ + &asn_SPC_SRBs_FailedToBeSetup_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SRBs-FailedToBeSetup-List.h b/src/du_app/F1AP/asn/SRBs-FailedToBeSetup-List.h new file mode 100755 index 000000000..7791c8481 --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-FailedToBeSetup-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRBs_FailedToBeSetup_List_H_ +#define _SRBs_FailedToBeSetup_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* SRBs-FailedToBeSetup-List */ +typedef struct SRBs_FailedToBeSetup_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_FailedToBeSetup_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SRBs_FailedToBeSetup_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRBs_FailedToBeSetup_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SRBs-FailedToBeSetupMod-Item.c b/src/du_app/F1AP/asn/SRBs-FailedToBeSetupMod-Item.c new file mode 100755 index 000000000..187775974 --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-FailedToBeSetupMod-Item.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRBs-FailedToBeSetupMod-Item.h" + +#include "Cause.h" +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_SRBs_FailedToBeSetupMod_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_FailedToBeSetupMod_Item, sRBID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sRBID" + }, + { ATF_POINTER, 2, offsetof(struct SRBs_FailedToBeSetupMod_Item, cause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 1, offsetof(struct SRBs_FailedToBeSetupMod_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P98, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_SRBs_FailedToBeSetupMod_Item_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_SRBs_FailedToBeSetupMod_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_FailedToBeSetupMod_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sRBID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SRBs_FailedToBeSetupMod_Item_specs_1 = { + sizeof(struct SRBs_FailedToBeSetupMod_Item), + offsetof(struct SRBs_FailedToBeSetupMod_Item, _asn_ctx), + asn_MAP_SRBs_FailedToBeSetupMod_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_SRBs_FailedToBeSetupMod_Item_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_FailedToBeSetupMod_Item = { + "SRBs-FailedToBeSetupMod-Item", + "SRBs-FailedToBeSetupMod-Item", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_FailedToBeSetupMod_Item_tags_1, + sizeof(asn_DEF_SRBs_FailedToBeSetupMod_Item_tags_1) + /sizeof(asn_DEF_SRBs_FailedToBeSetupMod_Item_tags_1[0]), /* 1 */ + asn_DEF_SRBs_FailedToBeSetupMod_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_SRBs_FailedToBeSetupMod_Item_tags_1) + /sizeof(asn_DEF_SRBs_FailedToBeSetupMod_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_FailedToBeSetupMod_Item_1, + 3, /* Elements count */ + &asn_SPC_SRBs_FailedToBeSetupMod_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SRBs-FailedToBeSetupMod-Item.h b/src/du_app/F1AP/asn/SRBs-FailedToBeSetupMod-Item.h new file mode 100755 index 000000000..d64ce8355 --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-FailedToBeSetupMod-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRBs_FailedToBeSetupMod_Item_H_ +#define _SRBs_FailedToBeSetupMod_Item_H_ + + +#include + +/* Including external dependencies */ +#include "SRBID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Cause; +struct ProtocolExtensionContainer; + +/* SRBs-FailedToBeSetupMod-Item */ +typedef struct SRBs_FailedToBeSetupMod_Item { + SRBID_t sRBID; + struct Cause *cause; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_FailedToBeSetupMod_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SRBs_FailedToBeSetupMod_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRBs_FailedToBeSetupMod_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SRBs-FailedToBeSetupMod-List.c b/src/du_app/F1AP/asn/SRBs-FailedToBeSetupMod-List.c new file mode 100755 index 000000000..7c129f912 --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-FailedToBeSetupMod-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRBs-FailedToBeSetupMod-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_SRBs_FailedToBeSetupMod_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_type_SRBs_FailedToBeSetupMod_List_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 */ +}; +static asn_TYPE_member_t asn_MBR_SRBs_FailedToBeSetupMod_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P42, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_FailedToBeSetupMod_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_SRBs_FailedToBeSetupMod_List_specs_1 = { + sizeof(struct SRBs_FailedToBeSetupMod_List), + offsetof(struct SRBs_FailedToBeSetupMod_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_FailedToBeSetupMod_List = { + "SRBs-FailedToBeSetupMod-List", + "SRBs-FailedToBeSetupMod-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_SRBs_FailedToBeSetupMod_List_tags_1, + sizeof(asn_DEF_SRBs_FailedToBeSetupMod_List_tags_1) + /sizeof(asn_DEF_SRBs_FailedToBeSetupMod_List_tags_1[0]), /* 1 */ + asn_DEF_SRBs_FailedToBeSetupMod_List_tags_1, /* Same as above */ + sizeof(asn_DEF_SRBs_FailedToBeSetupMod_List_tags_1) + /sizeof(asn_DEF_SRBs_FailedToBeSetupMod_List_tags_1[0]), /* 1 */ + { &asn_OER_type_SRBs_FailedToBeSetupMod_List_constr_1, &asn_PER_type_SRBs_FailedToBeSetupMod_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SRBs_FailedToBeSetupMod_List_1, + 1, /* Single element */ + &asn_SPC_SRBs_FailedToBeSetupMod_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SRBs-FailedToBeSetupMod-List.h b/src/du_app/F1AP/asn/SRBs-FailedToBeSetupMod-List.h new file mode 100755 index 000000000..417c86140 --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-FailedToBeSetupMod-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRBs_FailedToBeSetupMod_List_H_ +#define _SRBs_FailedToBeSetupMod_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* SRBs-FailedToBeSetupMod-List */ +typedef struct SRBs_FailedToBeSetupMod_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_FailedToBeSetupMod_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SRBs_FailedToBeSetupMod_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRBs_FailedToBeSetupMod_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SRBs-Modified-Item.c b/src/du_app/F1AP/asn/SRBs-Modified-Item.c new file mode 100755 index 000000000..4178938a7 --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-Modified-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRBs-Modified-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_SRBs_Modified_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_Modified_Item, sRBID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sRBID" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRBs_Modified_Item, lCID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LCID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lCID" + }, + { ATF_POINTER, 1, offsetof(struct SRBs_Modified_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P99, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_SRBs_Modified_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_SRBs_Modified_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_Modified_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sRBID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lCID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SRBs_Modified_Item_specs_1 = { + sizeof(struct SRBs_Modified_Item), + offsetof(struct SRBs_Modified_Item, _asn_ctx), + asn_MAP_SRBs_Modified_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_SRBs_Modified_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_Modified_Item = { + "SRBs-Modified-Item", + "SRBs-Modified-Item", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_Modified_Item_tags_1, + sizeof(asn_DEF_SRBs_Modified_Item_tags_1) + /sizeof(asn_DEF_SRBs_Modified_Item_tags_1[0]), /* 1 */ + asn_DEF_SRBs_Modified_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_SRBs_Modified_Item_tags_1) + /sizeof(asn_DEF_SRBs_Modified_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_Modified_Item_1, + 3, /* Elements count */ + &asn_SPC_SRBs_Modified_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SRBs-Modified-Item.h b/src/du_app/F1AP/asn/SRBs-Modified-Item.h new file mode 100755 index 000000000..c7cd2a23a --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-Modified-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRBs_Modified_Item_H_ +#define _SRBs_Modified_Item_H_ + + +#include + +/* Including external dependencies */ +#include "SRBID.h" +#include "LCID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* SRBs-Modified-Item */ +typedef struct SRBs_Modified_Item { + SRBID_t sRBID; + LCID_t lCID; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_Modified_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SRBs_Modified_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRBs_Modified_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SRBs-Modified-List.c b/src/du_app/F1AP/asn/SRBs-Modified-List.c new file mode 100755 index 000000000..9ba148897 --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-Modified-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRBs-Modified-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_SRBs_Modified_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_type_SRBs_Modified_List_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 */ +}; +static asn_TYPE_member_t asn_MBR_SRBs_Modified_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P40, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_Modified_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_SRBs_Modified_List_specs_1 = { + sizeof(struct SRBs_Modified_List), + offsetof(struct SRBs_Modified_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_Modified_List = { + "SRBs-Modified-List", + "SRBs-Modified-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_SRBs_Modified_List_tags_1, + sizeof(asn_DEF_SRBs_Modified_List_tags_1) + /sizeof(asn_DEF_SRBs_Modified_List_tags_1[0]), /* 1 */ + asn_DEF_SRBs_Modified_List_tags_1, /* Same as above */ + sizeof(asn_DEF_SRBs_Modified_List_tags_1) + /sizeof(asn_DEF_SRBs_Modified_List_tags_1[0]), /* 1 */ + { &asn_OER_type_SRBs_Modified_List_constr_1, &asn_PER_type_SRBs_Modified_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SRBs_Modified_List_1, + 1, /* Single element */ + &asn_SPC_SRBs_Modified_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SRBs-Modified-List.h b/src/du_app/F1AP/asn/SRBs-Modified-List.h new file mode 100755 index 000000000..e0366e4bc --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-Modified-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRBs_Modified_List_H_ +#define _SRBs_Modified_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* SRBs-Modified-List */ +typedef struct SRBs_Modified_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_Modified_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SRBs_Modified_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRBs_Modified_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SRBs-Required-ToBeReleased-Item.c b/src/du_app/F1AP/asn/SRBs-Required-ToBeReleased-Item.c new file mode 100755 index 000000000..fee2d70dd --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-Required-ToBeReleased-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRBs-Required-ToBeReleased-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_SRBs_Required_ToBeReleased_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_Required_ToBeReleased_Item, sRBID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sRBID" + }, + { ATF_POINTER, 1, offsetof(struct SRBs_Required_ToBeReleased_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P100, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_SRBs_Required_ToBeReleased_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_SRBs_Required_ToBeReleased_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_Required_ToBeReleased_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sRBID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SRBs_Required_ToBeReleased_Item_specs_1 = { + sizeof(struct SRBs_Required_ToBeReleased_Item), + offsetof(struct SRBs_Required_ToBeReleased_Item, _asn_ctx), + asn_MAP_SRBs_Required_ToBeReleased_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_SRBs_Required_ToBeReleased_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_Required_ToBeReleased_Item = { + "SRBs-Required-ToBeReleased-Item", + "SRBs-Required-ToBeReleased-Item", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_Required_ToBeReleased_Item_tags_1, + sizeof(asn_DEF_SRBs_Required_ToBeReleased_Item_tags_1) + /sizeof(asn_DEF_SRBs_Required_ToBeReleased_Item_tags_1[0]), /* 1 */ + asn_DEF_SRBs_Required_ToBeReleased_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_SRBs_Required_ToBeReleased_Item_tags_1) + /sizeof(asn_DEF_SRBs_Required_ToBeReleased_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_Required_ToBeReleased_Item_1, + 2, /* Elements count */ + &asn_SPC_SRBs_Required_ToBeReleased_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SRBs-Required-ToBeReleased-Item.h b/src/du_app/F1AP/asn/SRBs-Required-ToBeReleased-Item.h new file mode 100755 index 000000000..cf34a617b --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-Required-ToBeReleased-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRBs_Required_ToBeReleased_Item_H_ +#define _SRBs_Required_ToBeReleased_Item_H_ + + +#include + +/* Including external dependencies */ +#include "SRBID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* SRBs-Required-ToBeReleased-Item */ +typedef struct SRBs_Required_ToBeReleased_Item { + SRBID_t sRBID; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_Required_ToBeReleased_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SRBs_Required_ToBeReleased_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRBs_Required_ToBeReleased_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SRBs-Required-ToBeReleased-List.c b/src/du_app/F1AP/asn/SRBs-Required-ToBeReleased-List.c new file mode 100755 index 000000000..b2330b1d7 --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-Required-ToBeReleased-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRBs-Required-ToBeReleased-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_SRBs_Required_ToBeReleased_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_type_SRBs_Required_ToBeReleased_List_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 */ +}; +static asn_TYPE_member_t asn_MBR_SRBs_Required_ToBeReleased_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P48, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_Required_ToBeReleased_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_SRBs_Required_ToBeReleased_List_specs_1 = { + sizeof(struct SRBs_Required_ToBeReleased_List), + offsetof(struct SRBs_Required_ToBeReleased_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_Required_ToBeReleased_List = { + "SRBs-Required-ToBeReleased-List", + "SRBs-Required-ToBeReleased-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_SRBs_Required_ToBeReleased_List_tags_1, + sizeof(asn_DEF_SRBs_Required_ToBeReleased_List_tags_1) + /sizeof(asn_DEF_SRBs_Required_ToBeReleased_List_tags_1[0]), /* 1 */ + asn_DEF_SRBs_Required_ToBeReleased_List_tags_1, /* Same as above */ + sizeof(asn_DEF_SRBs_Required_ToBeReleased_List_tags_1) + /sizeof(asn_DEF_SRBs_Required_ToBeReleased_List_tags_1[0]), /* 1 */ + { &asn_OER_type_SRBs_Required_ToBeReleased_List_constr_1, &asn_PER_type_SRBs_Required_ToBeReleased_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SRBs_Required_ToBeReleased_List_1, + 1, /* Single element */ + &asn_SPC_SRBs_Required_ToBeReleased_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SRBs-Required-ToBeReleased-List.h b/src/du_app/F1AP/asn/SRBs-Required-ToBeReleased-List.h new file mode 100755 index 000000000..b3abf6f60 --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-Required-ToBeReleased-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRBs_Required_ToBeReleased_List_H_ +#define _SRBs_Required_ToBeReleased_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* SRBs-Required-ToBeReleased-List */ +typedef struct SRBs_Required_ToBeReleased_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_Required_ToBeReleased_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SRBs_Required_ToBeReleased_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRBs_Required_ToBeReleased_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SRBs-Setup-Item.c b/src/du_app/F1AP/asn/SRBs-Setup-Item.c new file mode 100755 index 000000000..578adac99 --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-Setup-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRBs-Setup-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_SRBs_Setup_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_Setup_Item, sRBID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sRBID" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRBs_Setup_Item, lCID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LCID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lCID" + }, + { ATF_POINTER, 1, offsetof(struct SRBs_Setup_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P101, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_SRBs_Setup_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_SRBs_Setup_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_Setup_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sRBID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lCID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SRBs_Setup_Item_specs_1 = { + sizeof(struct SRBs_Setup_Item), + offsetof(struct SRBs_Setup_Item, _asn_ctx), + asn_MAP_SRBs_Setup_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_SRBs_Setup_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_Setup_Item = { + "SRBs-Setup-Item", + "SRBs-Setup-Item", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_Setup_Item_tags_1, + sizeof(asn_DEF_SRBs_Setup_Item_tags_1) + /sizeof(asn_DEF_SRBs_Setup_Item_tags_1[0]), /* 1 */ + asn_DEF_SRBs_Setup_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_SRBs_Setup_Item_tags_1) + /sizeof(asn_DEF_SRBs_Setup_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_Setup_Item_1, + 3, /* Elements count */ + &asn_SPC_SRBs_Setup_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SRBs-Setup-Item.h b/src/du_app/F1AP/asn/SRBs-Setup-Item.h new file mode 100755 index 000000000..7b774062c --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-Setup-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRBs_Setup_Item_H_ +#define _SRBs_Setup_Item_H_ + + +#include + +/* Including external dependencies */ +#include "SRBID.h" +#include "LCID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* SRBs-Setup-Item */ +typedef struct SRBs_Setup_Item { + SRBID_t sRBID; + LCID_t lCID; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_Setup_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SRBs_Setup_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRBs_Setup_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SRBs-Setup-List.c b/src/du_app/F1AP/asn/SRBs-Setup-List.c new file mode 100755 index 000000000..5c5639ddc --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-Setup-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRBs-Setup-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_SRBs_Setup_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_type_SRBs_Setup_List_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 */ +}; +static asn_TYPE_member_t asn_MBR_SRBs_Setup_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P28, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_Setup_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_SRBs_Setup_List_specs_1 = { + sizeof(struct SRBs_Setup_List), + offsetof(struct SRBs_Setup_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_Setup_List = { + "SRBs-Setup-List", + "SRBs-Setup-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_SRBs_Setup_List_tags_1, + sizeof(asn_DEF_SRBs_Setup_List_tags_1) + /sizeof(asn_DEF_SRBs_Setup_List_tags_1[0]), /* 1 */ + asn_DEF_SRBs_Setup_List_tags_1, /* Same as above */ + sizeof(asn_DEF_SRBs_Setup_List_tags_1) + /sizeof(asn_DEF_SRBs_Setup_List_tags_1[0]), /* 1 */ + { &asn_OER_type_SRBs_Setup_List_constr_1, &asn_PER_type_SRBs_Setup_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SRBs_Setup_List_1, + 1, /* Single element */ + &asn_SPC_SRBs_Setup_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SRBs-Setup-List.h b/src/du_app/F1AP/asn/SRBs-Setup-List.h new file mode 100755 index 000000000..44dad69ac --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-Setup-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRBs_Setup_List_H_ +#define _SRBs_Setup_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* SRBs-Setup-List */ +typedef struct SRBs_Setup_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_Setup_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SRBs_Setup_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRBs_Setup_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SRBs-SetupMod-Item.c b/src/du_app/F1AP/asn/SRBs-SetupMod-Item.c new file mode 100755 index 000000000..0a8ae82cf --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-SetupMod-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRBs-SetupMod-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_SRBs_SetupMod_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_SetupMod_Item, sRBID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sRBID" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRBs_SetupMod_Item, lCID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LCID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lCID" + }, + { ATF_POINTER, 1, offsetof(struct SRBs_SetupMod_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P102, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_SRBs_SetupMod_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_SRBs_SetupMod_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_SetupMod_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sRBID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lCID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SRBs_SetupMod_Item_specs_1 = { + sizeof(struct SRBs_SetupMod_Item), + offsetof(struct SRBs_SetupMod_Item, _asn_ctx), + asn_MAP_SRBs_SetupMod_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_SRBs_SetupMod_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_SetupMod_Item = { + "SRBs-SetupMod-Item", + "SRBs-SetupMod-Item", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_SetupMod_Item_tags_1, + sizeof(asn_DEF_SRBs_SetupMod_Item_tags_1) + /sizeof(asn_DEF_SRBs_SetupMod_Item_tags_1[0]), /* 1 */ + asn_DEF_SRBs_SetupMod_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_SRBs_SetupMod_Item_tags_1) + /sizeof(asn_DEF_SRBs_SetupMod_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_SetupMod_Item_1, + 3, /* Elements count */ + &asn_SPC_SRBs_SetupMod_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SRBs-SetupMod-Item.h b/src/du_app/F1AP/asn/SRBs-SetupMod-Item.h new file mode 100755 index 000000000..a778243dc --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-SetupMod-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRBs_SetupMod_Item_H_ +#define _SRBs_SetupMod_Item_H_ + + +#include + +/* Including external dependencies */ +#include "SRBID.h" +#include "LCID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* SRBs-SetupMod-Item */ +typedef struct SRBs_SetupMod_Item { + SRBID_t sRBID; + LCID_t lCID; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_SetupMod_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SRBs_SetupMod_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRBs_SetupMod_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SRBs-SetupMod-List.c b/src/du_app/F1AP/asn/SRBs-SetupMod-List.c new file mode 100755 index 000000000..00104380e --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-SetupMod-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRBs-SetupMod-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_SRBs_SetupMod_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_type_SRBs_SetupMod_List_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 */ +}; +static asn_TYPE_member_t asn_MBR_SRBs_SetupMod_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P39, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_SetupMod_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_SRBs_SetupMod_List_specs_1 = { + sizeof(struct SRBs_SetupMod_List), + offsetof(struct SRBs_SetupMod_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_SetupMod_List = { + "SRBs-SetupMod-List", + "SRBs-SetupMod-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_SRBs_SetupMod_List_tags_1, + sizeof(asn_DEF_SRBs_SetupMod_List_tags_1) + /sizeof(asn_DEF_SRBs_SetupMod_List_tags_1[0]), /* 1 */ + asn_DEF_SRBs_SetupMod_List_tags_1, /* Same as above */ + sizeof(asn_DEF_SRBs_SetupMod_List_tags_1) + /sizeof(asn_DEF_SRBs_SetupMod_List_tags_1[0]), /* 1 */ + { &asn_OER_type_SRBs_SetupMod_List_constr_1, &asn_PER_type_SRBs_SetupMod_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SRBs_SetupMod_List_1, + 1, /* Single element */ + &asn_SPC_SRBs_SetupMod_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SRBs-SetupMod-List.h b/src/du_app/F1AP/asn/SRBs-SetupMod-List.h new file mode 100755 index 000000000..59a67fe1a --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-SetupMod-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRBs_SetupMod_List_H_ +#define _SRBs_SetupMod_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* SRBs-SetupMod-List */ +typedef struct SRBs_SetupMod_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_SetupMod_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SRBs_SetupMod_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRBs_SetupMod_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SRBs-ToBeReleased-Item.c b/src/du_app/F1AP/asn/SRBs-ToBeReleased-Item.c new file mode 100755 index 000000000..889df3a3e --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-ToBeReleased-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRBs-ToBeReleased-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_SRBs_ToBeReleased_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_ToBeReleased_Item, sRBID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sRBID" + }, + { ATF_POINTER, 1, offsetof(struct SRBs_ToBeReleased_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P103, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_SRBs_ToBeReleased_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_SRBs_ToBeReleased_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_ToBeReleased_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sRBID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SRBs_ToBeReleased_Item_specs_1 = { + sizeof(struct SRBs_ToBeReleased_Item), + offsetof(struct SRBs_ToBeReleased_Item, _asn_ctx), + asn_MAP_SRBs_ToBeReleased_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_SRBs_ToBeReleased_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_ToBeReleased_Item = { + "SRBs-ToBeReleased-Item", + "SRBs-ToBeReleased-Item", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_ToBeReleased_Item_tags_1, + sizeof(asn_DEF_SRBs_ToBeReleased_Item_tags_1) + /sizeof(asn_DEF_SRBs_ToBeReleased_Item_tags_1[0]), /* 1 */ + asn_DEF_SRBs_ToBeReleased_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_SRBs_ToBeReleased_Item_tags_1) + /sizeof(asn_DEF_SRBs_ToBeReleased_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_ToBeReleased_Item_1, + 2, /* Elements count */ + &asn_SPC_SRBs_ToBeReleased_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SRBs-ToBeReleased-Item.h b/src/du_app/F1AP/asn/SRBs-ToBeReleased-Item.h new file mode 100755 index 000000000..cdd12f884 --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-ToBeReleased-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRBs_ToBeReleased_Item_H_ +#define _SRBs_ToBeReleased_Item_H_ + + +#include + +/* Including external dependencies */ +#include "SRBID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* SRBs-ToBeReleased-Item */ +typedef struct SRBs_ToBeReleased_Item { + SRBID_t sRBID; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_ToBeReleased_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SRBs_ToBeReleased_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRBs_ToBeReleased_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SRBs-ToBeReleased-List.c b/src/du_app/F1AP/asn/SRBs-ToBeReleased-List.c new file mode 100755 index 000000000..36040846c --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-ToBeReleased-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRBs-ToBeReleased-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_SRBs_ToBeReleased_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_type_SRBs_ToBeReleased_List_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 */ +}; +static asn_TYPE_member_t asn_MBR_SRBs_ToBeReleased_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P35, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_ToBeReleased_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_SRBs_ToBeReleased_List_specs_1 = { + sizeof(struct SRBs_ToBeReleased_List), + offsetof(struct SRBs_ToBeReleased_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_ToBeReleased_List = { + "SRBs-ToBeReleased-List", + "SRBs-ToBeReleased-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_SRBs_ToBeReleased_List_tags_1, + sizeof(asn_DEF_SRBs_ToBeReleased_List_tags_1) + /sizeof(asn_DEF_SRBs_ToBeReleased_List_tags_1[0]), /* 1 */ + asn_DEF_SRBs_ToBeReleased_List_tags_1, /* Same as above */ + sizeof(asn_DEF_SRBs_ToBeReleased_List_tags_1) + /sizeof(asn_DEF_SRBs_ToBeReleased_List_tags_1[0]), /* 1 */ + { &asn_OER_type_SRBs_ToBeReleased_List_constr_1, &asn_PER_type_SRBs_ToBeReleased_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SRBs_ToBeReleased_List_1, + 1, /* Single element */ + &asn_SPC_SRBs_ToBeReleased_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SRBs-ToBeReleased-List.h b/src/du_app/F1AP/asn/SRBs-ToBeReleased-List.h new file mode 100755 index 000000000..677391ab0 --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-ToBeReleased-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRBs_ToBeReleased_List_H_ +#define _SRBs_ToBeReleased_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* SRBs-ToBeReleased-List */ +typedef struct SRBs_ToBeReleased_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_ToBeReleased_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SRBs_ToBeReleased_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRBs_ToBeReleased_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SRBs-ToBeSetup-Item.c b/src/du_app/F1AP/asn/SRBs-ToBeSetup-Item.c new file mode 100755 index 000000000..6f801b621 --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-ToBeSetup-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRBs-ToBeSetup-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_SRBs_ToBeSetup_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_ToBeSetup_Item, sRBID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sRBID" + }, + { ATF_POINTER, 2, offsetof(struct SRBs_ToBeSetup_Item, duplicationIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DuplicationIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "duplicationIndication" + }, + { ATF_POINTER, 1, offsetof(struct SRBs_ToBeSetup_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P104, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_SRBs_ToBeSetup_Item_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_SRBs_ToBeSetup_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_ToBeSetup_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sRBID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* duplicationIndication */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SRBs_ToBeSetup_Item_specs_1 = { + sizeof(struct SRBs_ToBeSetup_Item), + offsetof(struct SRBs_ToBeSetup_Item, _asn_ctx), + asn_MAP_SRBs_ToBeSetup_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_SRBs_ToBeSetup_Item_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_ToBeSetup_Item = { + "SRBs-ToBeSetup-Item", + "SRBs-ToBeSetup-Item", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_ToBeSetup_Item_tags_1, + sizeof(asn_DEF_SRBs_ToBeSetup_Item_tags_1) + /sizeof(asn_DEF_SRBs_ToBeSetup_Item_tags_1[0]), /* 1 */ + asn_DEF_SRBs_ToBeSetup_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_SRBs_ToBeSetup_Item_tags_1) + /sizeof(asn_DEF_SRBs_ToBeSetup_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_ToBeSetup_Item_1, + 3, /* Elements count */ + &asn_SPC_SRBs_ToBeSetup_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SRBs-ToBeSetup-Item.h b/src/du_app/F1AP/asn/SRBs-ToBeSetup-Item.h new file mode 100755 index 000000000..1db74b788 --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-ToBeSetup-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRBs_ToBeSetup_Item_H_ +#define _SRBs_ToBeSetup_Item_H_ + + +#include + +/* Including external dependencies */ +#include "SRBID.h" +#include "DuplicationIndication.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* SRBs-ToBeSetup-Item */ +typedef struct SRBs_ToBeSetup_Item { + SRBID_t sRBID; + DuplicationIndication_t *duplicationIndication; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_ToBeSetup_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SRBs_ToBeSetup_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRBs_ToBeSetup_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SRBs-ToBeSetup-List.c b/src/du_app/F1AP/asn/SRBs-ToBeSetup-List.c new file mode 100755 index 000000000..77d64ebd1 --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-ToBeSetup-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRBs-ToBeSetup-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_SRBs_ToBeSetup_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_type_SRBs_ToBeSetup_List_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 */ +}; +static asn_TYPE_member_t asn_MBR_SRBs_ToBeSetup_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_ToBeSetup_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_SRBs_ToBeSetup_List_specs_1 = { + sizeof(struct SRBs_ToBeSetup_List), + offsetof(struct SRBs_ToBeSetup_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_ToBeSetup_List = { + "SRBs-ToBeSetup-List", + "SRBs-ToBeSetup-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_SRBs_ToBeSetup_List_tags_1, + sizeof(asn_DEF_SRBs_ToBeSetup_List_tags_1) + /sizeof(asn_DEF_SRBs_ToBeSetup_List_tags_1[0]), /* 1 */ + asn_DEF_SRBs_ToBeSetup_List_tags_1, /* Same as above */ + sizeof(asn_DEF_SRBs_ToBeSetup_List_tags_1) + /sizeof(asn_DEF_SRBs_ToBeSetup_List_tags_1[0]), /* 1 */ + { &asn_OER_type_SRBs_ToBeSetup_List_constr_1, &asn_PER_type_SRBs_ToBeSetup_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SRBs_ToBeSetup_List_1, + 1, /* Single element */ + &asn_SPC_SRBs_ToBeSetup_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SRBs-ToBeSetup-List.h b/src/du_app/F1AP/asn/SRBs-ToBeSetup-List.h new file mode 100755 index 000000000..4bdfb0eb2 --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-ToBeSetup-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRBs_ToBeSetup_List_H_ +#define _SRBs_ToBeSetup_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* SRBs-ToBeSetup-List */ +typedef struct SRBs_ToBeSetup_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_ToBeSetup_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SRBs_ToBeSetup_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRBs_ToBeSetup_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SRBs-ToBeSetupMod-Item.c b/src/du_app/F1AP/asn/SRBs-ToBeSetupMod-Item.c new file mode 100755 index 000000000..87f194dd3 --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-ToBeSetupMod-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRBs-ToBeSetupMod-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_SRBs_ToBeSetupMod_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRBs_ToBeSetupMod_Item, sRBID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SRBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sRBID" + }, + { ATF_POINTER, 2, offsetof(struct SRBs_ToBeSetupMod_Item, duplicationIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DuplicationIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "duplicationIndication" + }, + { ATF_POINTER, 1, offsetof(struct SRBs_ToBeSetupMod_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P105, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_SRBs_ToBeSetupMod_Item_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_SRBs_ToBeSetupMod_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRBs_ToBeSetupMod_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sRBID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* duplicationIndication */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_SRBs_ToBeSetupMod_Item_specs_1 = { + sizeof(struct SRBs_ToBeSetupMod_Item), + offsetof(struct SRBs_ToBeSetupMod_Item, _asn_ctx), + asn_MAP_SRBs_ToBeSetupMod_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_SRBs_ToBeSetupMod_Item_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_ToBeSetupMod_Item = { + "SRBs-ToBeSetupMod-Item", + "SRBs-ToBeSetupMod-Item", + &asn_OP_SEQUENCE, + asn_DEF_SRBs_ToBeSetupMod_Item_tags_1, + sizeof(asn_DEF_SRBs_ToBeSetupMod_Item_tags_1) + /sizeof(asn_DEF_SRBs_ToBeSetupMod_Item_tags_1[0]), /* 1 */ + asn_DEF_SRBs_ToBeSetupMod_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_SRBs_ToBeSetupMod_Item_tags_1) + /sizeof(asn_DEF_SRBs_ToBeSetupMod_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRBs_ToBeSetupMod_Item_1, + 3, /* Elements count */ + &asn_SPC_SRBs_ToBeSetupMod_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SRBs-ToBeSetupMod-Item.h b/src/du_app/F1AP/asn/SRBs-ToBeSetupMod-Item.h new file mode 100755 index 000000000..2b3674ffe --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-ToBeSetupMod-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRBs_ToBeSetupMod_Item_H_ +#define _SRBs_ToBeSetupMod_Item_H_ + + +#include + +/* Including external dependencies */ +#include "SRBID.h" +#include "DuplicationIndication.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* SRBs-ToBeSetupMod-Item */ +typedef struct SRBs_ToBeSetupMod_Item { + SRBID_t sRBID; + DuplicationIndication_t *duplicationIndication; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_ToBeSetupMod_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SRBs_ToBeSetupMod_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRBs_ToBeSetupMod_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SRBs-ToBeSetupMod-List.c b/src/du_app/F1AP/asn/SRBs-ToBeSetupMod-List.c new file mode 100755 index 000000000..d3c5e58b4 --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-ToBeSetupMod-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRBs-ToBeSetupMod-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_SRBs_ToBeSetupMod_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_type_SRBs_ToBeSetupMod_List_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 */ +}; +static asn_TYPE_member_t asn_MBR_SRBs_ToBeSetupMod_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P32, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRBs_ToBeSetupMod_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_SRBs_ToBeSetupMod_List_specs_1 = { + sizeof(struct SRBs_ToBeSetupMod_List), + offsetof(struct SRBs_ToBeSetupMod_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SRBs_ToBeSetupMod_List = { + "SRBs-ToBeSetupMod-List", + "SRBs-ToBeSetupMod-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_SRBs_ToBeSetupMod_List_tags_1, + sizeof(asn_DEF_SRBs_ToBeSetupMod_List_tags_1) + /sizeof(asn_DEF_SRBs_ToBeSetupMod_List_tags_1[0]), /* 1 */ + asn_DEF_SRBs_ToBeSetupMod_List_tags_1, /* Same as above */ + sizeof(asn_DEF_SRBs_ToBeSetupMod_List_tags_1) + /sizeof(asn_DEF_SRBs_ToBeSetupMod_List_tags_1[0]), /* 1 */ + { &asn_OER_type_SRBs_ToBeSetupMod_List_constr_1, &asn_PER_type_SRBs_ToBeSetupMod_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SRBs_ToBeSetupMod_List_1, + 1, /* Single element */ + &asn_SPC_SRBs_ToBeSetupMod_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SRBs-ToBeSetupMod-List.h b/src/du_app/F1AP/asn/SRBs-ToBeSetupMod-List.h new file mode 100755 index 000000000..b244c4707 --- /dev/null +++ b/src/du_app/F1AP/asn/SRBs-ToBeSetupMod-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRBs_ToBeSetupMod_List_H_ +#define _SRBs_ToBeSetupMod_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* SRBs-ToBeSetupMod-List */ +typedef struct SRBs_ToBeSetupMod_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRBs_ToBeSetupMod_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SRBs_ToBeSetupMod_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRBs_ToBeSetupMod_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SUL-Information.c b/src/du_app/F1AP/asn/SUL-Information.c new file mode 100755 index 000000000..7660552e7 --- /dev/null +++ b/src/du_app/F1AP/asn/SUL-Information.c @@ -0,0 +1,106 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SUL-Information.h" + +#include "ProtocolExtensionContainer.h" +static int +memb_sUL_NRARFCN_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 3279165)) { + /* Constraint 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_sUL_NRARFCN_constr_2 CC_NOTUSED = { + { 4, 1 } /* (0..3279165) */, + -1}; +static asn_per_constraints_t asn_PER_memb_sUL_NRARFCN_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 22, -1, 0, 3279165 } /* (0..3279165) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SUL_Information_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SUL_Information, sUL_NRARFCN), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sUL_NRARFCN_constr_2, &asn_PER_memb_sUL_NRARFCN_constr_2, memb_sUL_NRARFCN_constraint_1 }, + 0, 0, /* No default value */ + "sUL-NRARFCN" + }, + { ATF_NOFLAGS, 0, offsetof(struct SUL_Information, sUL_transmission_Bandwidth), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Transmission_Bandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sUL-transmission-Bandwidth" + }, + { ATF_POINTER, 1, offsetof(struct SUL_Information, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P106, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_SUL_Information_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_SUL_Information_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SUL_Information_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sUL-NRARFCN */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sUL-transmission-Bandwidth */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SUL_Information_specs_1 = { + sizeof(struct SUL_Information), + offsetof(struct SUL_Information, _asn_ctx), + asn_MAP_SUL_Information_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_SUL_Information_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SUL_Information = { + "SUL-Information", + "SUL-Information", + &asn_OP_SEQUENCE, + asn_DEF_SUL_Information_tags_1, + sizeof(asn_DEF_SUL_Information_tags_1) + /sizeof(asn_DEF_SUL_Information_tags_1[0]), /* 1 */ + asn_DEF_SUL_Information_tags_1, /* Same as above */ + sizeof(asn_DEF_SUL_Information_tags_1) + /sizeof(asn_DEF_SUL_Information_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SUL_Information_1, + 3, /* Elements count */ + &asn_SPC_SUL_Information_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SUL-Information.h b/src/du_app/F1AP/asn/SUL-Information.h new file mode 100755 index 000000000..74f10c124 --- /dev/null +++ b/src/du_app/F1AP/asn/SUL-Information.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SUL_Information_H_ +#define _SUL_Information_H_ + + +#include + +/* Including external dependencies */ +#include +#include "Transmission-Bandwidth.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* SUL-Information */ +typedef struct SUL_Information { + long sUL_NRARFCN; + Transmission_Bandwidth_t sUL_transmission_Bandwidth; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SUL_Information_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SUL_Information; +extern asn_SEQUENCE_specifics_t asn_SPC_SUL_Information_specs_1; +extern asn_TYPE_member_t asn_MBR_SUL_Information_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SUL_Information_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SULAccessIndication.c b/src/du_app/F1AP/asn/SULAccessIndication.c new file mode 100755 index 000000000..063c7b575 --- /dev/null +++ b/src/du_app/F1AP/asn/SULAccessIndication.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SULAccessIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SULAccessIndication_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_SULAccessIndication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_SULAccessIndication_value2enum_1[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_SULAccessIndication_enum2value_1[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_SULAccessIndication_specs_1 = { + asn_MAP_SULAccessIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_SULAccessIndication_enum2value_1, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_SULAccessIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SULAccessIndication = { + "SULAccessIndication", + "SULAccessIndication", + &asn_OP_NativeEnumerated, + asn_DEF_SULAccessIndication_tags_1, + sizeof(asn_DEF_SULAccessIndication_tags_1) + /sizeof(asn_DEF_SULAccessIndication_tags_1[0]), /* 1 */ + asn_DEF_SULAccessIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_SULAccessIndication_tags_1) + /sizeof(asn_DEF_SULAccessIndication_tags_1[0]), /* 1 */ + { &asn_OER_type_SULAccessIndication_constr_1, &asn_PER_type_SULAccessIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SULAccessIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SULAccessIndication.h b/src/du_app/F1AP/asn/SULAccessIndication.h new file mode 100755 index 000000000..c0741bd65 --- /dev/null +++ b/src/du_app/F1AP/asn/SULAccessIndication.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SULAccessIndication_H_ +#define _SULAccessIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SULAccessIndication { + SULAccessIndication_true = 0 + /* + * Enumeration is extensible + */ +} e_SULAccessIndication; + +/* SULAccessIndication */ +typedef long SULAccessIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SULAccessIndication; +asn_struct_free_f SULAccessIndication_free; +asn_struct_print_f SULAccessIndication_print; +asn_constr_check_f SULAccessIndication_constraint; +ber_type_decoder_f SULAccessIndication_decode_ber; +der_type_encoder_f SULAccessIndication_encode_der; +xer_type_decoder_f SULAccessIndication_decode_xer; +xer_type_encoder_f SULAccessIndication_encode_xer; +oer_type_decoder_f SULAccessIndication_decode_oer; +oer_type_encoder_f SULAccessIndication_encode_oer; +per_type_decoder_f SULAccessIndication_decode_uper; +per_type_encoder_f SULAccessIndication_encode_uper; +per_type_decoder_f SULAccessIndication_decode_aper; +per_type_encoder_f SULAccessIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SULAccessIndication_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SelectedBandCombinationIndex.c b/src/du_app/F1AP/asn/SelectedBandCombinationIndex.c new file mode 100755 index 000000000..93a458083 --- /dev/null +++ b/src/du_app/F1AP/asn/SelectedBandCombinationIndex.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SelectedBandCombinationIndex.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_SelectedBandCombinationIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SelectedBandCombinationIndex = { + "SelectedBandCombinationIndex", + "SelectedBandCombinationIndex", + &asn_OP_OCTET_STRING, + asn_DEF_SelectedBandCombinationIndex_tags_1, + sizeof(asn_DEF_SelectedBandCombinationIndex_tags_1) + /sizeof(asn_DEF_SelectedBandCombinationIndex_tags_1[0]), /* 1 */ + asn_DEF_SelectedBandCombinationIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_SelectedBandCombinationIndex_tags_1) + /sizeof(asn_DEF_SelectedBandCombinationIndex_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SelectedBandCombinationIndex.h b/src/du_app/F1AP/asn/SelectedBandCombinationIndex.h new file mode 100755 index 000000000..151240c25 --- /dev/null +++ b/src/du_app/F1AP/asn/SelectedBandCombinationIndex.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SelectedBandCombinationIndex_H_ +#define _SelectedBandCombinationIndex_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SelectedBandCombinationIndex */ +typedef OCTET_STRING_t SelectedBandCombinationIndex_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SelectedBandCombinationIndex; +asn_struct_free_f SelectedBandCombinationIndex_free; +asn_struct_print_f SelectedBandCombinationIndex_print; +asn_constr_check_f SelectedBandCombinationIndex_constraint; +ber_type_decoder_f SelectedBandCombinationIndex_decode_ber; +der_type_encoder_f SelectedBandCombinationIndex_encode_der; +xer_type_decoder_f SelectedBandCombinationIndex_decode_xer; +xer_type_encoder_f SelectedBandCombinationIndex_encode_xer; +oer_type_decoder_f SelectedBandCombinationIndex_decode_oer; +oer_type_encoder_f SelectedBandCombinationIndex_encode_oer; +per_type_decoder_f SelectedBandCombinationIndex_decode_uper; +per_type_encoder_f SelectedBandCombinationIndex_encode_uper; +per_type_decoder_f SelectedBandCombinationIndex_decode_aper; +per_type_encoder_f SelectedBandCombinationIndex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SelectedBandCombinationIndex_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SelectedFeatureSetEntryIndex.c b/src/du_app/F1AP/asn/SelectedFeatureSetEntryIndex.c new file mode 100755 index 000000000..84febb449 --- /dev/null +++ b/src/du_app/F1AP/asn/SelectedFeatureSetEntryIndex.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SelectedFeatureSetEntryIndex.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_SelectedFeatureSetEntryIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SelectedFeatureSetEntryIndex = { + "SelectedFeatureSetEntryIndex", + "SelectedFeatureSetEntryIndex", + &asn_OP_OCTET_STRING, + asn_DEF_SelectedFeatureSetEntryIndex_tags_1, + sizeof(asn_DEF_SelectedFeatureSetEntryIndex_tags_1) + /sizeof(asn_DEF_SelectedFeatureSetEntryIndex_tags_1[0]), /* 1 */ + asn_DEF_SelectedFeatureSetEntryIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_SelectedFeatureSetEntryIndex_tags_1) + /sizeof(asn_DEF_SelectedFeatureSetEntryIndex_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SelectedFeatureSetEntryIndex.h b/src/du_app/F1AP/asn/SelectedFeatureSetEntryIndex.h new file mode 100755 index 000000000..0e808a894 --- /dev/null +++ b/src/du_app/F1AP/asn/SelectedFeatureSetEntryIndex.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SelectedFeatureSetEntryIndex_H_ +#define _SelectedFeatureSetEntryIndex_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SelectedFeatureSetEntryIndex */ +typedef OCTET_STRING_t SelectedFeatureSetEntryIndex_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SelectedFeatureSetEntryIndex; +asn_struct_free_f SelectedFeatureSetEntryIndex_free; +asn_struct_print_f SelectedFeatureSetEntryIndex_print; +asn_constr_check_f SelectedFeatureSetEntryIndex_constraint; +ber_type_decoder_f SelectedFeatureSetEntryIndex_decode_ber; +der_type_encoder_f SelectedFeatureSetEntryIndex_encode_der; +xer_type_decoder_f SelectedFeatureSetEntryIndex_decode_xer; +xer_type_encoder_f SelectedFeatureSetEntryIndex_encode_xer; +oer_type_decoder_f SelectedFeatureSetEntryIndex_decode_oer; +oer_type_encoder_f SelectedFeatureSetEntryIndex_encode_oer; +per_type_decoder_f SelectedFeatureSetEntryIndex_decode_uper; +per_type_encoder_f SelectedFeatureSetEntryIndex_encode_uper; +per_type_decoder_f SelectedFeatureSetEntryIndex_decode_aper; +per_type_encoder_f SelectedFeatureSetEntryIndex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SelectedFeatureSetEntryIndex_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ServCellIndex.c b/src/du_app/F1AP/asn/ServCellIndex.c new file mode 100755 index 000000000..fab7ebf59 --- /dev/null +++ b/src/du_app/F1AP/asn/ServCellIndex.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#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 = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_ServCellIndex_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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/src/du_app/F1AP/asn/ServCellIndex.h b/src/du_app/F1AP/asn/ServCellIndex.h new file mode 100755 index 000000000..c69ec79bd --- /dev/null +++ b/src/du_app/F1AP/asn/ServCellIndex.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ServCellIndex_H_ +#define _ServCellIndex_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ServCellIndex */ +typedef long ServCellIndex_t; + +/* Implementation */ +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/src/du_app/F1AP/asn/Served-Cell-Information.c b/src/du_app/F1AP/asn/Served-Cell-Information.c new file mode 100755 index 000000000..3ab47b092 --- /dev/null +++ b/src/du_app/F1AP/asn/Served-Cell-Information.c @@ -0,0 +1,123 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Served-Cell-Information.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_Served_Cell_Information_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Served_Cell_Information, nRCGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRCGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nRCGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct Served_Cell_Information, nRPCI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRPCI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nRPCI" + }, + { ATF_POINTER, 2, offsetof(struct Served_Cell_Information, fiveGS_TAC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FiveGS_TAC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fiveGS-TAC" + }, + { ATF_POINTER, 1, offsetof(struct Served_Cell_Information, configured_EPS_TAC), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Configured_EPS_TAC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "configured-EPS-TAC" + }, + { ATF_NOFLAGS, 0, offsetof(struct Served_Cell_Information, servedPLMNs), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServedPLMNs_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servedPLMNs" + }, + { ATF_NOFLAGS, 0, offsetof(struct Served_Cell_Information, nR_Mode_Info), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_NR_Mode_Info, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nR-Mode-Info" + }, + { ATF_NOFLAGS, 0, offsetof(struct Served_Cell_Information, measurementTimingConfiguration), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measurementTimingConfiguration" + }, + { ATF_POINTER, 1, offsetof(struct Served_Cell_Information, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P87, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_Served_Cell_Information_oms_1[] = { 2, 3, 7 }; +static const ber_tlv_tag_t asn_DEF_Served_Cell_Information_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Served_Cell_Information_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nRPCI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* fiveGS-TAC */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* configured-EPS-TAC */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* servedPLMNs */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* nR-Mode-Info */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* measurementTimingConfiguration */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Served_Cell_Information_specs_1 = { + sizeof(struct Served_Cell_Information), + offsetof(struct Served_Cell_Information, _asn_ctx), + asn_MAP_Served_Cell_Information_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_Served_Cell_Information_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Served_Cell_Information = { + "Served-Cell-Information", + "Served-Cell-Information", + &asn_OP_SEQUENCE, + asn_DEF_Served_Cell_Information_tags_1, + sizeof(asn_DEF_Served_Cell_Information_tags_1) + /sizeof(asn_DEF_Served_Cell_Information_tags_1[0]), /* 1 */ + asn_DEF_Served_Cell_Information_tags_1, /* Same as above */ + sizeof(asn_DEF_Served_Cell_Information_tags_1) + /sizeof(asn_DEF_Served_Cell_Information_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Served_Cell_Information_1, + 8, /* Elements count */ + &asn_SPC_Served_Cell_Information_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Served-Cell-Information.h b/src/du_app/F1AP/asn/Served-Cell-Information.h new file mode 100755 index 000000000..b5b0b4579 --- /dev/null +++ b/src/du_app/F1AP/asn/Served-Cell-Information.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Served_Cell_Information_H_ +#define _Served_Cell_Information_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include "NRPCI.h" +#include "FiveGS-TAC.h" +#include "Configured-EPS-TAC.h" +#include "ServedPLMNs-List.h" +#include "NR-Mode-Info.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* Served-Cell-Information */ +typedef struct Served_Cell_Information { + NRCGI_t nRCGI; + NRPCI_t nRPCI; + FiveGS_TAC_t *fiveGS_TAC; /* OPTIONAL */ + Configured_EPS_TAC_t *configured_EPS_TAC; /* OPTIONAL */ + ServedPLMNs_List_t servedPLMNs; + NR_Mode_Info_t nR_Mode_Info; + OCTET_STRING_t measurementTimingConfiguration; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Served_Cell_Information_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Served_Cell_Information; +extern asn_SEQUENCE_specifics_t asn_SPC_Served_Cell_Information_specs_1; +extern asn_TYPE_member_t asn_MBR_Served_Cell_Information_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Served_Cell_Information_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Served-Cells-To-Add-Item.c b/src/du_app/F1AP/asn/Served-Cells-To-Add-Item.c new file mode 100755 index 000000000..124e9f1b8 --- /dev/null +++ b/src/du_app/F1AP/asn/Served-Cells-To-Add-Item.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Served-Cells-To-Add-Item.h" + +#include "GNB-DU-System-Information.h" +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_Served_Cells_To_Add_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Served_Cells_To_Add_Item, served_Cell_Information), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Served_Cell_Information, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "served-Cell-Information" + }, + { ATF_POINTER, 2, offsetof(struct Served_Cells_To_Add_Item, gNB_DU_System_Information), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNB_DU_System_Information, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gNB-DU-System-Information" + }, + { ATF_POINTER, 1, offsetof(struct Served_Cells_To_Add_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P88, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_Served_Cells_To_Add_Item_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_Served_Cells_To_Add_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Served_Cells_To_Add_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* served-Cell-Information */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gNB-DU-System-Information */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Served_Cells_To_Add_Item_specs_1 = { + sizeof(struct Served_Cells_To_Add_Item), + offsetof(struct Served_Cells_To_Add_Item, _asn_ctx), + asn_MAP_Served_Cells_To_Add_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Served_Cells_To_Add_Item_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Served_Cells_To_Add_Item = { + "Served-Cells-To-Add-Item", + "Served-Cells-To-Add-Item", + &asn_OP_SEQUENCE, + asn_DEF_Served_Cells_To_Add_Item_tags_1, + sizeof(asn_DEF_Served_Cells_To_Add_Item_tags_1) + /sizeof(asn_DEF_Served_Cells_To_Add_Item_tags_1[0]), /* 1 */ + asn_DEF_Served_Cells_To_Add_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_Served_Cells_To_Add_Item_tags_1) + /sizeof(asn_DEF_Served_Cells_To_Add_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Served_Cells_To_Add_Item_1, + 3, /* Elements count */ + &asn_SPC_Served_Cells_To_Add_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Served-Cells-To-Add-Item.h b/src/du_app/F1AP/asn/Served-Cells-To-Add-Item.h new file mode 100755 index 000000000..34cd8fcbf --- /dev/null +++ b/src/du_app/F1AP/asn/Served-Cells-To-Add-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Served_Cells_To_Add_Item_H_ +#define _Served_Cells_To_Add_Item_H_ + + +#include + +/* Including external dependencies */ +#include "Served-Cell-Information.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GNB_DU_System_Information; +struct ProtocolExtensionContainer; + +/* Served-Cells-To-Add-Item */ +typedef struct Served_Cells_To_Add_Item { + Served_Cell_Information_t served_Cell_Information; + struct GNB_DU_System_Information *gNB_DU_System_Information; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Served_Cells_To_Add_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Served_Cells_To_Add_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _Served_Cells_To_Add_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Served-Cells-To-Add-List.c b/src/du_app/F1AP/asn/Served-Cells-To-Add-List.c new file mode 100755 index 000000000..1845b80e4 --- /dev/null +++ b/src/du_app/F1AP/asn/Served-Cells-To-Add-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Served-Cells-To-Add-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_Served_Cells_To_Add_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..512)) */}; +static asn_per_constraints_t asn_PER_type_Served_Cells_To_Add_List_constr_1 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_Served_Cells_To_Add_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Served_Cells_To_Add_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Served_Cells_To_Add_List_specs_1 = { + sizeof(struct Served_Cells_To_Add_List), + offsetof(struct Served_Cells_To_Add_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Served_Cells_To_Add_List = { + "Served-Cells-To-Add-List", + "Served-Cells-To-Add-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_Served_Cells_To_Add_List_tags_1, + sizeof(asn_DEF_Served_Cells_To_Add_List_tags_1) + /sizeof(asn_DEF_Served_Cells_To_Add_List_tags_1[0]), /* 1 */ + asn_DEF_Served_Cells_To_Add_List_tags_1, /* Same as above */ + sizeof(asn_DEF_Served_Cells_To_Add_List_tags_1) + /sizeof(asn_DEF_Served_Cells_To_Add_List_tags_1[0]), /* 1 */ + { &asn_OER_type_Served_Cells_To_Add_List_constr_1, &asn_PER_type_Served_Cells_To_Add_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Served_Cells_To_Add_List_1, + 1, /* Single element */ + &asn_SPC_Served_Cells_To_Add_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Served-Cells-To-Add-List.h b/src/du_app/F1AP/asn/Served-Cells-To-Add-List.h new file mode 100755 index 000000000..2b93ebf05 --- /dev/null +++ b/src/du_app/F1AP/asn/Served-Cells-To-Add-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Served_Cells_To_Add_List_H_ +#define _Served_Cells_To_Add_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* Served-Cells-To-Add-List */ +typedef struct Served_Cells_To_Add_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Served_Cells_To_Add_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Served_Cells_To_Add_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _Served_Cells_To_Add_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Served-Cells-To-Delete-Item.c b/src/du_app/F1AP/asn/Served-Cells-To-Delete-Item.c new file mode 100755 index 000000000..eb5c7ee80 --- /dev/null +++ b/src/du_app/F1AP/asn/Served-Cells-To-Delete-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Served-Cells-To-Delete-Item.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_Served_Cells_To_Delete_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Served_Cells_To_Delete_Item, oldNRCGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRCGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "oldNRCGI" + }, + { ATF_POINTER, 1, offsetof(struct Served_Cells_To_Delete_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P89, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_Served_Cells_To_Delete_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_Served_Cells_To_Delete_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Served_Cells_To_Delete_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* oldNRCGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Served_Cells_To_Delete_Item_specs_1 = { + sizeof(struct Served_Cells_To_Delete_Item), + offsetof(struct Served_Cells_To_Delete_Item, _asn_ctx), + asn_MAP_Served_Cells_To_Delete_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_Served_Cells_To_Delete_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Served_Cells_To_Delete_Item = { + "Served-Cells-To-Delete-Item", + "Served-Cells-To-Delete-Item", + &asn_OP_SEQUENCE, + asn_DEF_Served_Cells_To_Delete_Item_tags_1, + sizeof(asn_DEF_Served_Cells_To_Delete_Item_tags_1) + /sizeof(asn_DEF_Served_Cells_To_Delete_Item_tags_1[0]), /* 1 */ + asn_DEF_Served_Cells_To_Delete_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_Served_Cells_To_Delete_Item_tags_1) + /sizeof(asn_DEF_Served_Cells_To_Delete_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Served_Cells_To_Delete_Item_1, + 2, /* Elements count */ + &asn_SPC_Served_Cells_To_Delete_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Served-Cells-To-Delete-Item.h b/src/du_app/F1AP/asn/Served-Cells-To-Delete-Item.h new file mode 100755 index 000000000..26859f102 --- /dev/null +++ b/src/du_app/F1AP/asn/Served-Cells-To-Delete-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Served_Cells_To_Delete_Item_H_ +#define _Served_Cells_To_Delete_Item_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* Served-Cells-To-Delete-Item */ +typedef struct Served_Cells_To_Delete_Item { + NRCGI_t oldNRCGI; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Served_Cells_To_Delete_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Served_Cells_To_Delete_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _Served_Cells_To_Delete_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Served-Cells-To-Delete-List.c b/src/du_app/F1AP/asn/Served-Cells-To-Delete-List.c new file mode 100755 index 000000000..99969a1d6 --- /dev/null +++ b/src/du_app/F1AP/asn/Served-Cells-To-Delete-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Served-Cells-To-Delete-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_Served_Cells_To_Delete_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..512)) */}; +static asn_per_constraints_t asn_PER_type_Served_Cells_To_Delete_List_constr_1 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_Served_Cells_To_Delete_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Served_Cells_To_Delete_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Served_Cells_To_Delete_List_specs_1 = { + sizeof(struct Served_Cells_To_Delete_List), + offsetof(struct Served_Cells_To_Delete_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Served_Cells_To_Delete_List = { + "Served-Cells-To-Delete-List", + "Served-Cells-To-Delete-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_Served_Cells_To_Delete_List_tags_1, + sizeof(asn_DEF_Served_Cells_To_Delete_List_tags_1) + /sizeof(asn_DEF_Served_Cells_To_Delete_List_tags_1[0]), /* 1 */ + asn_DEF_Served_Cells_To_Delete_List_tags_1, /* Same as above */ + sizeof(asn_DEF_Served_Cells_To_Delete_List_tags_1) + /sizeof(asn_DEF_Served_Cells_To_Delete_List_tags_1[0]), /* 1 */ + { &asn_OER_type_Served_Cells_To_Delete_List_constr_1, &asn_PER_type_Served_Cells_To_Delete_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Served_Cells_To_Delete_List_1, + 1, /* Single element */ + &asn_SPC_Served_Cells_To_Delete_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Served-Cells-To-Delete-List.h b/src/du_app/F1AP/asn/Served-Cells-To-Delete-List.h new file mode 100755 index 000000000..69bd5a3bc --- /dev/null +++ b/src/du_app/F1AP/asn/Served-Cells-To-Delete-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Served_Cells_To_Delete_List_H_ +#define _Served_Cells_To_Delete_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* Served-Cells-To-Delete-List */ +typedef struct Served_Cells_To_Delete_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Served_Cells_To_Delete_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Served_Cells_To_Delete_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _Served_Cells_To_Delete_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Served-Cells-To-Modify-Item.c b/src/du_app/F1AP/asn/Served-Cells-To-Modify-Item.c new file mode 100755 index 000000000..6ed78b858 --- /dev/null +++ b/src/du_app/F1AP/asn/Served-Cells-To-Modify-Item.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Served-Cells-To-Modify-Item.h" + +#include "GNB-DU-System-Information.h" +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_Served_Cells_To_Modify_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Served_Cells_To_Modify_Item, oldNRCGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRCGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "oldNRCGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct Served_Cells_To_Modify_Item, served_Cell_Information), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Served_Cell_Information, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "served-Cell-Information" + }, + { ATF_POINTER, 2, offsetof(struct Served_Cells_To_Modify_Item, gNB_DU_System_Information), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNB_DU_System_Information, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gNB-DU-System-Information" + }, + { ATF_POINTER, 1, offsetof(struct Served_Cells_To_Modify_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P90, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_Served_Cells_To_Modify_Item_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Served_Cells_To_Modify_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Served_Cells_To_Modify_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* oldNRCGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* served-Cell-Information */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* gNB-DU-System-Information */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Served_Cells_To_Modify_Item_specs_1 = { + sizeof(struct Served_Cells_To_Modify_Item), + offsetof(struct Served_Cells_To_Modify_Item, _asn_ctx), + asn_MAP_Served_Cells_To_Modify_Item_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Served_Cells_To_Modify_Item_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Served_Cells_To_Modify_Item = { + "Served-Cells-To-Modify-Item", + "Served-Cells-To-Modify-Item", + &asn_OP_SEQUENCE, + asn_DEF_Served_Cells_To_Modify_Item_tags_1, + sizeof(asn_DEF_Served_Cells_To_Modify_Item_tags_1) + /sizeof(asn_DEF_Served_Cells_To_Modify_Item_tags_1[0]), /* 1 */ + asn_DEF_Served_Cells_To_Modify_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_Served_Cells_To_Modify_Item_tags_1) + /sizeof(asn_DEF_Served_Cells_To_Modify_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Served_Cells_To_Modify_Item_1, + 4, /* Elements count */ + &asn_SPC_Served_Cells_To_Modify_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Served-Cells-To-Modify-Item.h b/src/du_app/F1AP/asn/Served-Cells-To-Modify-Item.h new file mode 100755 index 000000000..2bdc40734 --- /dev/null +++ b/src/du_app/F1AP/asn/Served-Cells-To-Modify-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Served_Cells_To_Modify_Item_H_ +#define _Served_Cells_To_Modify_Item_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include "Served-Cell-Information.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GNB_DU_System_Information; +struct ProtocolExtensionContainer; + +/* Served-Cells-To-Modify-Item */ +typedef struct Served_Cells_To_Modify_Item { + NRCGI_t oldNRCGI; + Served_Cell_Information_t served_Cell_Information; + struct GNB_DU_System_Information *gNB_DU_System_Information; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Served_Cells_To_Modify_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Served_Cells_To_Modify_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _Served_Cells_To_Modify_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Served-Cells-To-Modify-List.c b/src/du_app/F1AP/asn/Served-Cells-To-Modify-List.c new file mode 100755 index 000000000..904282a99 --- /dev/null +++ b/src/du_app/F1AP/asn/Served-Cells-To-Modify-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Served-Cells-To-Modify-List.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_Served_Cells_To_Modify_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..512)) */}; +static asn_per_constraints_t asn_PER_type_Served_Cells_To_Modify_List_constr_1 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_Served_Cells_To_Modify_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Served_Cells_To_Modify_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Served_Cells_To_Modify_List_specs_1 = { + sizeof(struct Served_Cells_To_Modify_List), + offsetof(struct Served_Cells_To_Modify_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Served_Cells_To_Modify_List = { + "Served-Cells-To-Modify-List", + "Served-Cells-To-Modify-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_Served_Cells_To_Modify_List_tags_1, + sizeof(asn_DEF_Served_Cells_To_Modify_List_tags_1) + /sizeof(asn_DEF_Served_Cells_To_Modify_List_tags_1[0]), /* 1 */ + asn_DEF_Served_Cells_To_Modify_List_tags_1, /* Same as above */ + sizeof(asn_DEF_Served_Cells_To_Modify_List_tags_1) + /sizeof(asn_DEF_Served_Cells_To_Modify_List_tags_1[0]), /* 1 */ + { &asn_OER_type_Served_Cells_To_Modify_List_constr_1, &asn_PER_type_Served_Cells_To_Modify_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_Served_Cells_To_Modify_List_1, + 1, /* Single element */ + &asn_SPC_Served_Cells_To_Modify_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Served-Cells-To-Modify-List.h b/src/du_app/F1AP/asn/Served-Cells-To-Modify-List.h new file mode 100755 index 000000000..d6b17c23d --- /dev/null +++ b/src/du_app/F1AP/asn/Served-Cells-To-Modify-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Served_Cells_To_Modify_List_H_ +#define _Served_Cells_To_Modify_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* Served-Cells-To-Modify-List */ +typedef struct Served_Cells_To_Modify_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Served_Cells_To_Modify_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Served_Cells_To_Modify_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _Served_Cells_To_Modify_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Served-EUTRA-Cells-Information.c b/src/du_app/F1AP/asn/Served-EUTRA-Cells-Information.c new file mode 100755 index 000000000..daaae1584 --- /dev/null +++ b/src/du_app/F1AP/asn/Served-EUTRA-Cells-Information.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Served-EUTRA-Cells-Information.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_Served_EUTRA_Cells_Information_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Served_EUTRA_Cells_Information, eUTRA_Mode_Info), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_EUTRA_Mode_Info, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRA-Mode-Info" + }, + { ATF_NOFLAGS, 0, offsetof(struct Served_EUTRA_Cells_Information, protectedEUTRAResourceIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtectedEUTRAResourceIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protectedEUTRAResourceIndication" + }, + { ATF_POINTER, 1, offsetof(struct Served_EUTRA_Cells_Information, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P91, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_Served_EUTRA_Cells_Information_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_Served_EUTRA_Cells_Information_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Served_EUTRA_Cells_Information_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eUTRA-Mode-Info */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* protectedEUTRAResourceIndication */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Served_EUTRA_Cells_Information_specs_1 = { + sizeof(struct Served_EUTRA_Cells_Information), + offsetof(struct Served_EUTRA_Cells_Information, _asn_ctx), + asn_MAP_Served_EUTRA_Cells_Information_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Served_EUTRA_Cells_Information_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Served_EUTRA_Cells_Information = { + "Served-EUTRA-Cells-Information", + "Served-EUTRA-Cells-Information", + &asn_OP_SEQUENCE, + asn_DEF_Served_EUTRA_Cells_Information_tags_1, + sizeof(asn_DEF_Served_EUTRA_Cells_Information_tags_1) + /sizeof(asn_DEF_Served_EUTRA_Cells_Information_tags_1[0]), /* 1 */ + asn_DEF_Served_EUTRA_Cells_Information_tags_1, /* Same as above */ + sizeof(asn_DEF_Served_EUTRA_Cells_Information_tags_1) + /sizeof(asn_DEF_Served_EUTRA_Cells_Information_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Served_EUTRA_Cells_Information_1, + 3, /* Elements count */ + &asn_SPC_Served_EUTRA_Cells_Information_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Served-EUTRA-Cells-Information.h b/src/du_app/F1AP/asn/Served-EUTRA-Cells-Information.h new file mode 100755 index 000000000..c0ed9b951 --- /dev/null +++ b/src/du_app/F1AP/asn/Served-EUTRA-Cells-Information.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Served_EUTRA_Cells_Information_H_ +#define _Served_EUTRA_Cells_Information_H_ + + +#include + +/* Including external dependencies */ +#include "EUTRA-Mode-Info.h" +#include "ProtectedEUTRAResourceIndication.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* Served-EUTRA-Cells-Information */ +typedef struct Served_EUTRA_Cells_Information { + EUTRA_Mode_Info_t eUTRA_Mode_Info; + ProtectedEUTRAResourceIndication_t protectedEUTRAResourceIndication; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Served_EUTRA_Cells_Information_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Served_EUTRA_Cells_Information; +extern asn_SEQUENCE_specifics_t asn_SPC_Served_EUTRA_Cells_Information_specs_1; +extern asn_TYPE_member_t asn_MBR_Served_EUTRA_Cells_Information_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Served_EUTRA_Cells_Information_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ServedPLMNs-Item.c b/src/du_app/F1AP/asn/ServedPLMNs-Item.c new file mode 100755 index 000000000..01818bca0 --- /dev/null +++ b/src/du_app/F1AP/asn/ServedPLMNs-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ServedPLMNs-Item.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ServedPLMNs_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ServedPLMNs_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, 1, offsetof(struct ServedPLMNs_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ServedPLMNs_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ServedPLMNs_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ServedPLMNs_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ServedPLMNs_Item_specs_1 = { + sizeof(struct ServedPLMNs_Item), + offsetof(struct ServedPLMNs_Item, _asn_ctx), + asn_MAP_ServedPLMNs_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ServedPLMNs_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ServedPLMNs_Item = { + "ServedPLMNs-Item", + "ServedPLMNs-Item", + &asn_OP_SEQUENCE, + asn_DEF_ServedPLMNs_Item_tags_1, + sizeof(asn_DEF_ServedPLMNs_Item_tags_1) + /sizeof(asn_DEF_ServedPLMNs_Item_tags_1[0]), /* 1 */ + asn_DEF_ServedPLMNs_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ServedPLMNs_Item_tags_1) + /sizeof(asn_DEF_ServedPLMNs_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ServedPLMNs_Item_1, + 2, /* Elements count */ + &asn_SPC_ServedPLMNs_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/ServedPLMNs-Item.h b/src/du_app/F1AP/asn/ServedPLMNs-Item.h new file mode 100755 index 000000000..053bacda6 --- /dev/null +++ b/src/du_app/F1AP/asn/ServedPLMNs-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ServedPLMNs_Item_H_ +#define _ServedPLMNs_Item_H_ + + +#include + +/* Including external dependencies */ +#include "PLMN-Identity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* ServedPLMNs-Item */ +typedef struct ServedPLMNs_Item { + PLMN_Identity_t pLMN_Identity; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ServedPLMNs_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ServedPLMNs_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ServedPLMNs_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ServedPLMNs_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ServedPLMNs_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ServedPLMNs-List.c b/src/du_app/F1AP/asn/ServedPLMNs-List.c new file mode 100755 index 000000000..94bece761 --- /dev/null +++ b/src/du_app/F1AP/asn/ServedPLMNs-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ServedPLMNs-List.h" + +#include "ServedPLMNs-Item.h" +static asn_oer_constraints_t asn_OER_type_ServedPLMNs_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..6)) */}; +asn_per_constraints_t asn_PER_type_ServedPLMNs_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 6 } /* (SIZE(1..6)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ServedPLMNs_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ServedPLMNs_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ServedPLMNs_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ServedPLMNs_List_specs_1 = { + sizeof(struct ServedPLMNs_List), + offsetof(struct ServedPLMNs_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ServedPLMNs_List = { + "ServedPLMNs-List", + "ServedPLMNs-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_ServedPLMNs_List_tags_1, + sizeof(asn_DEF_ServedPLMNs_List_tags_1) + /sizeof(asn_DEF_ServedPLMNs_List_tags_1[0]), /* 1 */ + asn_DEF_ServedPLMNs_List_tags_1, /* Same as above */ + sizeof(asn_DEF_ServedPLMNs_List_tags_1) + /sizeof(asn_DEF_ServedPLMNs_List_tags_1[0]), /* 1 */ + { &asn_OER_type_ServedPLMNs_List_constr_1, &asn_PER_type_ServedPLMNs_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ServedPLMNs_List_1, + 1, /* Single element */ + &asn_SPC_ServedPLMNs_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/ServedPLMNs-List.h b/src/du_app/F1AP/asn/ServedPLMNs-List.h new file mode 100755 index 000000000..943bb806a --- /dev/null +++ b/src/du_app/F1AP/asn/ServedPLMNs-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ServedPLMNs_List_H_ +#define _ServedPLMNs_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ServedPLMNs_Item; + +/* ServedPLMNs-List */ +typedef struct ServedPLMNs_List { + A_SEQUENCE_OF(struct ServedPLMNs_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ServedPLMNs_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ServedPLMNs_List; +extern asn_SET_OF_specifics_t asn_SPC_ServedPLMNs_List_specs_1; +extern asn_TYPE_member_t asn_MBR_ServedPLMNs_List_1[1]; +extern asn_per_constraints_t asn_PER_type_ServedPLMNs_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ServedPLMNs_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Service-State.c b/src/du_app/F1AP/asn/Service-State.c new file mode 100755 index 000000000..0a2f26f5a --- /dev/null +++ b/src/du_app/F1AP/asn/Service-State.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Service-State.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Service_State_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_Service_State_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_Service_State_value2enum_1[] = { + { 0, 10, "in-service" }, + { 1, 14, "out-of-service" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_Service_State_enum2value_1[] = { + 0, /* in-service(0) */ + 1 /* out-of-service(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_Service_State_specs_1 = { + asn_MAP_Service_State_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Service_State_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_Service_State_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Service_State = { + "Service-State", + "Service-State", + &asn_OP_NativeEnumerated, + asn_DEF_Service_State_tags_1, + sizeof(asn_DEF_Service_State_tags_1) + /sizeof(asn_DEF_Service_State_tags_1[0]), /* 1 */ + asn_DEF_Service_State_tags_1, /* Same as above */ + sizeof(asn_DEF_Service_State_tags_1) + /sizeof(asn_DEF_Service_State_tags_1[0]), /* 1 */ + { &asn_OER_type_Service_State_constr_1, &asn_PER_type_Service_State_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Service_State_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Service-State.h b/src/du_app/F1AP/asn/Service-State.h new file mode 100755 index 000000000..a070ae773 --- /dev/null +++ b/src/du_app/F1AP/asn/Service-State.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Service_State_H_ +#define _Service_State_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Service_State { + Service_State_in_service = 0, + Service_State_out_of_service = 1 + /* + * Enumeration is extensible + */ +} e_Service_State; + +/* Service-State */ +typedef long Service_State_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Service_State_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Service_State; +extern const asn_INTEGER_specifics_t asn_SPC_Service_State_specs_1; +asn_struct_free_f Service_State_free; +asn_struct_print_f Service_State_print; +asn_constr_check_f Service_State_constraint; +ber_type_decoder_f Service_State_decode_ber; +der_type_encoder_f Service_State_encode_der; +xer_type_decoder_f Service_State_decode_xer; +xer_type_encoder_f Service_State_encode_xer; +oer_type_decoder_f Service_State_decode_oer; +oer_type_encoder_f Service_State_encode_oer; +per_type_decoder_f Service_State_decode_uper; +per_type_encoder_f Service_State_encode_uper; +per_type_decoder_f Service_State_decode_aper; +per_type_encoder_f Service_State_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Service_State_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Service-Status.c b/src/du_app/F1AP/asn/Service-Status.c new file mode 100755 index 000000000..eb9bca9a9 --- /dev/null +++ b/src/du_app/F1AP/asn/Service-Status.c @@ -0,0 +1,122 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Service-Status.h" + +#include "ProtocolExtensionContainer.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_switchingOffOngoing_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_switchingOffOngoing_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 const asn_INTEGER_enum_map_t asn_MAP_switchingOffOngoing_value2enum_3[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_switchingOffOngoing_enum2value_3[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_switchingOffOngoing_specs_3 = { + asn_MAP_switchingOffOngoing_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_switchingOffOngoing_enum2value_3, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_switchingOffOngoing_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_switchingOffOngoing_3 = { + "switchingOffOngoing", + "switchingOffOngoing", + &asn_OP_NativeEnumerated, + asn_DEF_switchingOffOngoing_tags_3, + sizeof(asn_DEF_switchingOffOngoing_tags_3) + /sizeof(asn_DEF_switchingOffOngoing_tags_3[0]) - 1, /* 1 */ + asn_DEF_switchingOffOngoing_tags_3, /* Same as above */ + sizeof(asn_DEF_switchingOffOngoing_tags_3) + /sizeof(asn_DEF_switchingOffOngoing_tags_3[0]), /* 2 */ + { &asn_OER_type_switchingOffOngoing_constr_3, &asn_PER_type_switchingOffOngoing_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_switchingOffOngoing_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Service_Status_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Service_Status, service_state), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Service_State, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "service-state" + }, + { ATF_POINTER, 2, offsetof(struct Service_Status, switchingOffOngoing), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_switchingOffOngoing_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "switchingOffOngoing" + }, + { ATF_POINTER, 1, offsetof(struct Service_Status, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P92, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_Service_Status_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_Service_Status_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Service_Status_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* service-state */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* switchingOffOngoing */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Service_Status_specs_1 = { + sizeof(struct Service_Status), + offsetof(struct Service_Status, _asn_ctx), + asn_MAP_Service_Status_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Service_Status_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Service_Status = { + "Service-Status", + "Service-Status", + &asn_OP_SEQUENCE, + asn_DEF_Service_Status_tags_1, + sizeof(asn_DEF_Service_Status_tags_1) + /sizeof(asn_DEF_Service_Status_tags_1[0]), /* 1 */ + asn_DEF_Service_Status_tags_1, /* Same as above */ + sizeof(asn_DEF_Service_Status_tags_1) + /sizeof(asn_DEF_Service_Status_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Service_Status_1, + 3, /* Elements count */ + &asn_SPC_Service_Status_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Service-Status.h b/src/du_app/F1AP/asn/Service-Status.h new file mode 100755 index 000000000..79ce24542 --- /dev/null +++ b/src/du_app/F1AP/asn/Service-Status.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Service_Status_H_ +#define _Service_Status_H_ + + +#include + +/* Including external dependencies */ +#include "Service-State.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Service_Status__switchingOffOngoing { + Service_Status__switchingOffOngoing_true = 0 + /* + * Enumeration is extensible + */ +} e_Service_Status__switchingOffOngoing; + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* Service-Status */ +typedef struct Service_Status { + Service_State_t service_state; + long *switchingOffOngoing; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Service_Status_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_switchingOffOngoing_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_Service_Status; +extern asn_SEQUENCE_specifics_t asn_SPC_Service_Status_specs_1; +extern asn_TYPE_member_t asn_MBR_Service_Status_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Service_Status_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ServingCellMO.c b/src/du_app/F1AP/asn/ServingCellMO.c new file mode 100755 index 000000000..1425abb47 --- /dev/null +++ b/src/du_app/F1AP/asn/ServingCellMO.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ServingCellMO.h" + +int +ServingCellMO_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 <= 64)) { + /* 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_ServingCellMO_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_ServingCellMO_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 6, 6, 1, 64 } /* (1..64,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ServingCellMO_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ServingCellMO = { + "ServingCellMO", + "ServingCellMO", + &asn_OP_NativeInteger, + asn_DEF_ServingCellMO_tags_1, + sizeof(asn_DEF_ServingCellMO_tags_1) + /sizeof(asn_DEF_ServingCellMO_tags_1[0]), /* 1 */ + asn_DEF_ServingCellMO_tags_1, /* Same as above */ + sizeof(asn_DEF_ServingCellMO_tags_1) + /sizeof(asn_DEF_ServingCellMO_tags_1[0]), /* 1 */ + { &asn_OER_type_ServingCellMO_constr_1, &asn_PER_type_ServingCellMO_constr_1, ServingCellMO_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/ServingCellMO.h b/src/du_app/F1AP/asn/ServingCellMO.h new file mode 100755 index 000000000..0f55c01b5 --- /dev/null +++ b/src/du_app/F1AP/asn/ServingCellMO.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ServingCellMO_H_ +#define _ServingCellMO_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ServingCellMO */ +typedef long ServingCellMO_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ServingCellMO; +asn_struct_free_f ServingCellMO_free; +asn_struct_print_f ServingCellMO_print; +asn_constr_check_f ServingCellMO_constraint; +ber_type_decoder_f ServingCellMO_decode_ber; +der_type_encoder_f ServingCellMO_encode_der; +xer_type_decoder_f ServingCellMO_decode_xer; +xer_type_encoder_f ServingCellMO_encode_xer; +oer_type_decoder_f ServingCellMO_decode_oer; +oer_type_encoder_f ServingCellMO_encode_oer; +per_type_decoder_f ServingCellMO_decode_uper; +per_type_encoder_f ServingCellMO_encode_uper; +per_type_decoder_f ServingCellMO_decode_aper; +per_type_encoder_f ServingCellMO_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ServingCellMO_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ShortDRXCycleLength.c b/src/du_app/F1AP/asn/ShortDRXCycleLength.c new file mode 100755 index 000000000..ad707175c --- /dev/null +++ b/src/du_app/F1AP/asn/ShortDRXCycleLength.c @@ -0,0 +1,100 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ShortDRXCycleLength.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ShortDRXCycleLength_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ShortDRXCycleLength_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 22 } /* (0..22,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ShortDRXCycleLength_value2enum_1[] = { + { 0, 3, "ms2" }, + { 1, 3, "ms3" }, + { 2, 3, "ms4" }, + { 3, 3, "ms5" }, + { 4, 3, "ms6" }, + { 5, 3, "ms7" }, + { 6, 3, "ms8" }, + { 7, 4, "ms10" }, + { 8, 4, "ms14" }, + { 9, 4, "ms16" }, + { 10, 4, "ms20" }, + { 11, 4, "ms30" }, + { 12, 4, "ms32" }, + { 13, 4, "ms35" }, + { 14, 4, "ms40" }, + { 15, 4, "ms64" }, + { 16, 4, "ms80" }, + { 17, 5, "ms128" }, + { 18, 5, "ms160" }, + { 19, 5, "ms256" }, + { 20, 5, "ms320" }, + { 21, 5, "ms512" }, + { 22, 5, "ms640" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ShortDRXCycleLength_enum2value_1[] = { + 7, /* ms10(7) */ + 17, /* ms128(17) */ + 8, /* ms14(8) */ + 9, /* ms16(9) */ + 18, /* ms160(18) */ + 0, /* ms2(0) */ + 10, /* ms20(10) */ + 19, /* ms256(19) */ + 1, /* ms3(1) */ + 11, /* ms30(11) */ + 12, /* ms32(12) */ + 20, /* ms320(20) */ + 13, /* ms35(13) */ + 2, /* ms4(2) */ + 14, /* ms40(14) */ + 3, /* ms5(3) */ + 21, /* ms512(21) */ + 4, /* ms6(4) */ + 15, /* ms64(15) */ + 22, /* ms640(22) */ + 5, /* ms7(5) */ + 6, /* ms8(6) */ + 16 /* ms80(16) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ShortDRXCycleLength_specs_1 = { + asn_MAP_ShortDRXCycleLength_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ShortDRXCycleLength_enum2value_1, /* N => "tag"; sorted by N */ + 23, /* Number of elements in the maps */ + 24, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ShortDRXCycleLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ShortDRXCycleLength = { + "ShortDRXCycleLength", + "ShortDRXCycleLength", + &asn_OP_NativeEnumerated, + asn_DEF_ShortDRXCycleLength_tags_1, + sizeof(asn_DEF_ShortDRXCycleLength_tags_1) + /sizeof(asn_DEF_ShortDRXCycleLength_tags_1[0]), /* 1 */ + asn_DEF_ShortDRXCycleLength_tags_1, /* Same as above */ + sizeof(asn_DEF_ShortDRXCycleLength_tags_1) + /sizeof(asn_DEF_ShortDRXCycleLength_tags_1[0]), /* 1 */ + { &asn_OER_type_ShortDRXCycleLength_constr_1, &asn_PER_type_ShortDRXCycleLength_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ShortDRXCycleLength_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/ShortDRXCycleLength.h b/src/du_app/F1AP/asn/ShortDRXCycleLength.h new file mode 100755 index 000000000..739a2ca3e --- /dev/null +++ b/src/du_app/F1AP/asn/ShortDRXCycleLength.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ShortDRXCycleLength_H_ +#define _ShortDRXCycleLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ShortDRXCycleLength { + ShortDRXCycleLength_ms2 = 0, + ShortDRXCycleLength_ms3 = 1, + ShortDRXCycleLength_ms4 = 2, + ShortDRXCycleLength_ms5 = 3, + ShortDRXCycleLength_ms6 = 4, + ShortDRXCycleLength_ms7 = 5, + ShortDRXCycleLength_ms8 = 6, + ShortDRXCycleLength_ms10 = 7, + ShortDRXCycleLength_ms14 = 8, + ShortDRXCycleLength_ms16 = 9, + ShortDRXCycleLength_ms20 = 10, + ShortDRXCycleLength_ms30 = 11, + ShortDRXCycleLength_ms32 = 12, + ShortDRXCycleLength_ms35 = 13, + ShortDRXCycleLength_ms40 = 14, + ShortDRXCycleLength_ms64 = 15, + ShortDRXCycleLength_ms80 = 16, + ShortDRXCycleLength_ms128 = 17, + ShortDRXCycleLength_ms160 = 18, + ShortDRXCycleLength_ms256 = 19, + ShortDRXCycleLength_ms320 = 20, + ShortDRXCycleLength_ms512 = 21, + ShortDRXCycleLength_ms640 = 22 + /* + * Enumeration is extensible + */ +} e_ShortDRXCycleLength; + +/* ShortDRXCycleLength */ +typedef long ShortDRXCycleLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ShortDRXCycleLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ShortDRXCycleLength; +extern const asn_INTEGER_specifics_t asn_SPC_ShortDRXCycleLength_specs_1; +asn_struct_free_f ShortDRXCycleLength_free; +asn_struct_print_f ShortDRXCycleLength_print; +asn_constr_check_f ShortDRXCycleLength_constraint; +ber_type_decoder_f ShortDRXCycleLength_decode_ber; +der_type_encoder_f ShortDRXCycleLength_encode_der; +xer_type_decoder_f ShortDRXCycleLength_decode_xer; +xer_type_encoder_f ShortDRXCycleLength_encode_xer; +oer_type_decoder_f ShortDRXCycleLength_decode_oer; +oer_type_encoder_f ShortDRXCycleLength_encode_oer; +per_type_decoder_f ShortDRXCycleLength_decode_uper; +per_type_encoder_f ShortDRXCycleLength_encode_uper; +per_type_decoder_f ShortDRXCycleLength_decode_aper; +per_type_encoder_f ShortDRXCycleLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ShortDRXCycleLength_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ShortDRXCycleTimer.c b/src/du_app/F1AP/asn/ShortDRXCycleTimer.c new file mode 100755 index 000000000..8760395b0 --- /dev/null +++ b/src/du_app/F1AP/asn/ShortDRXCycleTimer.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ShortDRXCycleTimer.h" + +int +ShortDRXCycleTimer_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 <= 16)) { + /* 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_ShortDRXCycleTimer_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..16) */, + -1}; +asn_per_constraints_t asn_PER_type_ShortDRXCycleTimer_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (1..16) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ShortDRXCycleTimer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ShortDRXCycleTimer = { + "ShortDRXCycleTimer", + "ShortDRXCycleTimer", + &asn_OP_NativeInteger, + asn_DEF_ShortDRXCycleTimer_tags_1, + sizeof(asn_DEF_ShortDRXCycleTimer_tags_1) + /sizeof(asn_DEF_ShortDRXCycleTimer_tags_1[0]), /* 1 */ + asn_DEF_ShortDRXCycleTimer_tags_1, /* Same as above */ + sizeof(asn_DEF_ShortDRXCycleTimer_tags_1) + /sizeof(asn_DEF_ShortDRXCycleTimer_tags_1[0]), /* 1 */ + { &asn_OER_type_ShortDRXCycleTimer_constr_1, &asn_PER_type_ShortDRXCycleTimer_constr_1, ShortDRXCycleTimer_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/ShortDRXCycleTimer.h b/src/du_app/F1AP/asn/ShortDRXCycleTimer.h new file mode 100755 index 000000000..40dcc840a --- /dev/null +++ b/src/du_app/F1AP/asn/ShortDRXCycleTimer.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ShortDRXCycleTimer_H_ +#define _ShortDRXCycleTimer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ShortDRXCycleTimer */ +typedef long ShortDRXCycleTimer_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ShortDRXCycleTimer_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ShortDRXCycleTimer; +asn_struct_free_f ShortDRXCycleTimer_free; +asn_struct_print_f ShortDRXCycleTimer_print; +asn_constr_check_f ShortDRXCycleTimer_constraint; +ber_type_decoder_f ShortDRXCycleTimer_decode_ber; +der_type_encoder_f ShortDRXCycleTimer_encode_der; +xer_type_decoder_f ShortDRXCycleTimer_decode_xer; +xer_type_encoder_f ShortDRXCycleTimer_encode_xer; +oer_type_decoder_f ShortDRXCycleTimer_decode_oer; +oer_type_encoder_f ShortDRXCycleTimer_encode_oer; +per_type_decoder_f ShortDRXCycleTimer_decode_uper; +per_type_encoder_f ShortDRXCycleTimer_encode_uper; +per_type_decoder_f ShortDRXCycleTimer_decode_aper; +per_type_encoder_f ShortDRXCycleTimer_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ShortDRXCycleTimer_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SibtypetobeupdatedListItem.c b/src/du_app/F1AP/asn/SibtypetobeupdatedListItem.c new file mode 100755 index 000000000..cc1e3aef4 --- /dev/null +++ b/src/du_app/F1AP/asn/SibtypetobeupdatedListItem.c @@ -0,0 +1,149 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SibtypetobeupdatedListItem.h" + +#include "ProtocolExtensionContainer.h" +static int +memb_sIBtype_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 >= 2 && value <= 32)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_valueTag_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 <= 31)) { + /* Constraint 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_sIBtype_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_sIBtype_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 2, 32 } /* (2..32,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_valueTag_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_valueTag_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 31 } /* (0..31,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SibtypetobeupdatedListItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SibtypetobeupdatedListItem, sIBtype), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sIBtype_constr_2, &asn_PER_memb_sIBtype_constr_2, memb_sIBtype_constraint_1 }, + 0, 0, /* No default value */ + "sIBtype" + }, + { ATF_NOFLAGS, 0, offsetof(struct SibtypetobeupdatedListItem, sIBmessage), + (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 */ + "sIBmessage" + }, + { ATF_NOFLAGS, 0, offsetof(struct SibtypetobeupdatedListItem, valueTag), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_valueTag_constr_4, &asn_PER_memb_valueTag_constr_4, memb_valueTag_constraint_1 }, + 0, 0, /* No default value */ + "valueTag" + }, + { ATF_POINTER, 1, offsetof(struct SibtypetobeupdatedListItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P94, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_SibtypetobeupdatedListItem_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_SibtypetobeupdatedListItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SibtypetobeupdatedListItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sIBtype */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sIBmessage */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* valueTag */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SibtypetobeupdatedListItem_specs_1 = { + sizeof(struct SibtypetobeupdatedListItem), + offsetof(struct SibtypetobeupdatedListItem, _asn_ctx), + asn_MAP_SibtypetobeupdatedListItem_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SibtypetobeupdatedListItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SibtypetobeupdatedListItem = { + "SibtypetobeupdatedListItem", + "SibtypetobeupdatedListItem", + &asn_OP_SEQUENCE, + asn_DEF_SibtypetobeupdatedListItem_tags_1, + sizeof(asn_DEF_SibtypetobeupdatedListItem_tags_1) + /sizeof(asn_DEF_SibtypetobeupdatedListItem_tags_1[0]), /* 1 */ + asn_DEF_SibtypetobeupdatedListItem_tags_1, /* Same as above */ + sizeof(asn_DEF_SibtypetobeupdatedListItem_tags_1) + /sizeof(asn_DEF_SibtypetobeupdatedListItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SibtypetobeupdatedListItem_1, + 4, /* Elements count */ + &asn_SPC_SibtypetobeupdatedListItem_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SibtypetobeupdatedListItem.h b/src/du_app/F1AP/asn/SibtypetobeupdatedListItem.h new file mode 100755 index 000000000..9364e9e87 --- /dev/null +++ b/src/du_app/F1AP/asn/SibtypetobeupdatedListItem.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SibtypetobeupdatedListItem_H_ +#define _SibtypetobeupdatedListItem_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* SibtypetobeupdatedListItem */ +typedef struct SibtypetobeupdatedListItem { + long sIBtype; + OCTET_STRING_t sIBmessage; + long valueTag; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SibtypetobeupdatedListItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SibtypetobeupdatedListItem; +extern asn_SEQUENCE_specifics_t asn_SPC_SibtypetobeupdatedListItem_specs_1; +extern asn_TYPE_member_t asn_MBR_SibtypetobeupdatedListItem_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SibtypetobeupdatedListItem_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SliceSupportItem.c b/src/du_app/F1AP/asn/SliceSupportItem.c new file mode 100755 index 000000000..68a9b7e6e --- /dev/null +++ b/src/du_app/F1AP/asn/SliceSupportItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SliceSupportItem.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_SliceSupportItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SliceSupportItem, sNSSAI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SNSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sNSSAI" + }, + { ATF_POINTER, 1, offsetof(struct SliceSupportItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P95, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_SliceSupportItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_SliceSupportItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SliceSupportItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sNSSAI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SliceSupportItem_specs_1 = { + sizeof(struct SliceSupportItem), + offsetof(struct SliceSupportItem, _asn_ctx), + asn_MAP_SliceSupportItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_SliceSupportItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SliceSupportItem = { + "SliceSupportItem", + "SliceSupportItem", + &asn_OP_SEQUENCE, + asn_DEF_SliceSupportItem_tags_1, + sizeof(asn_DEF_SliceSupportItem_tags_1) + /sizeof(asn_DEF_SliceSupportItem_tags_1[0]), /* 1 */ + asn_DEF_SliceSupportItem_tags_1, /* Same as above */ + sizeof(asn_DEF_SliceSupportItem_tags_1) + /sizeof(asn_DEF_SliceSupportItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SliceSupportItem_1, + 2, /* Elements count */ + &asn_SPC_SliceSupportItem_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SliceSupportItem.h b/src/du_app/F1AP/asn/SliceSupportItem.h new file mode 100755 index 000000000..b5f2a3324 --- /dev/null +++ b/src/du_app/F1AP/asn/SliceSupportItem.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SliceSupportItem_H_ +#define _SliceSupportItem_H_ + + +#include + +/* Including external dependencies */ +#include "SNSSAI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* SliceSupportItem */ +typedef struct SliceSupportItem { + SNSSAI_t sNSSAI; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SliceSupportItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SliceSupportItem; +extern asn_SEQUENCE_specifics_t asn_SPC_SliceSupportItem_specs_1; +extern asn_TYPE_member_t asn_MBR_SliceSupportItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SliceSupportItem_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SliceSupportList.c b/src/du_app/F1AP/asn/SliceSupportList.c new file mode 100755 index 000000000..dcdc6b809 --- /dev/null +++ b/src/du_app/F1AP/asn/SliceSupportList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SliceSupportList.h" + +#include "SliceSupportItem.h" +static asn_oer_constraints_t asn_OER_type_SliceSupportList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +asn_per_constraints_t asn_PER_type_SliceSupportList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SliceSupportList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SliceSupportItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SliceSupportList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SliceSupportList_specs_1 = { + sizeof(struct SliceSupportList), + offsetof(struct SliceSupportList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SliceSupportList = { + "SliceSupportList", + "SliceSupportList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SliceSupportList_tags_1, + sizeof(asn_DEF_SliceSupportList_tags_1) + /sizeof(asn_DEF_SliceSupportList_tags_1[0]), /* 1 */ + asn_DEF_SliceSupportList_tags_1, /* Same as above */ + sizeof(asn_DEF_SliceSupportList_tags_1) + /sizeof(asn_DEF_SliceSupportList_tags_1[0]), /* 1 */ + { &asn_OER_type_SliceSupportList_constr_1, &asn_PER_type_SliceSupportList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SliceSupportList_1, + 1, /* Single element */ + &asn_SPC_SliceSupportList_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SliceSupportList.h b/src/du_app/F1AP/asn/SliceSupportList.h new file mode 100755 index 000000000..ad25c9b50 --- /dev/null +++ b/src/du_app/F1AP/asn/SliceSupportList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SliceSupportList_H_ +#define _SliceSupportList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SliceSupportItem; + +/* SliceSupportList */ +typedef struct SliceSupportList { + A_SEQUENCE_OF(struct SliceSupportItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SliceSupportList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SliceSupportList; +extern asn_SET_OF_specifics_t asn_SPC_SliceSupportList_specs_1; +extern asn_TYPE_member_t asn_MBR_SliceSupportList_1[1]; +extern asn_per_constraints_t asn_PER_type_SliceSupportList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SliceSupportList_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SpectrumSharingGroupID.c b/src/du_app/F1AP/asn/SpectrumSharingGroupID.c new file mode 100755 index 000000000..1d67c864d --- /dev/null +++ b/src/du_app/F1AP/asn/SpectrumSharingGroupID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SpectrumSharingGroupID.h" + +int +SpectrumSharingGroupID_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 <= 256)) { + /* 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_SpectrumSharingGroupID_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..256) */, + -1}; +asn_per_constraints_t asn_PER_type_SpectrumSharingGroupID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (1..256) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SpectrumSharingGroupID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SpectrumSharingGroupID = { + "SpectrumSharingGroupID", + "SpectrumSharingGroupID", + &asn_OP_NativeInteger, + asn_DEF_SpectrumSharingGroupID_tags_1, + sizeof(asn_DEF_SpectrumSharingGroupID_tags_1) + /sizeof(asn_DEF_SpectrumSharingGroupID_tags_1[0]), /* 1 */ + asn_DEF_SpectrumSharingGroupID_tags_1, /* Same as above */ + sizeof(asn_DEF_SpectrumSharingGroupID_tags_1) + /sizeof(asn_DEF_SpectrumSharingGroupID_tags_1[0]), /* 1 */ + { &asn_OER_type_SpectrumSharingGroupID_constr_1, &asn_PER_type_SpectrumSharingGroupID_constr_1, SpectrumSharingGroupID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/SpectrumSharingGroupID.h b/src/du_app/F1AP/asn/SpectrumSharingGroupID.h new file mode 100755 index 000000000..555d75f3f --- /dev/null +++ b/src/du_app/F1AP/asn/SpectrumSharingGroupID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SpectrumSharingGroupID_H_ +#define _SpectrumSharingGroupID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SpectrumSharingGroupID */ +typedef long SpectrumSharingGroupID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SpectrumSharingGroupID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SpectrumSharingGroupID; +asn_struct_free_f SpectrumSharingGroupID_free; +asn_struct_print_f SpectrumSharingGroupID_print; +asn_constr_check_f SpectrumSharingGroupID_constraint; +ber_type_decoder_f SpectrumSharingGroupID_decode_ber; +der_type_encoder_f SpectrumSharingGroupID_encode_der; +xer_type_decoder_f SpectrumSharingGroupID_decode_xer; +xer_type_encoder_f SpectrumSharingGroupID_encode_xer; +oer_type_decoder_f SpectrumSharingGroupID_decode_oer; +oer_type_encoder_f SpectrumSharingGroupID_encode_oer; +per_type_decoder_f SpectrumSharingGroupID_decode_uper; +per_type_encoder_f SpectrumSharingGroupID_encode_uper; +per_type_decoder_f SpectrumSharingGroupID_decode_aper; +per_type_encoder_f SpectrumSharingGroupID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpectrumSharingGroupID_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SubscriberProfileIDforRFP.c b/src/du_app/F1AP/asn/SubscriberProfileIDforRFP.c new file mode 100755 index 000000000..be8bf3570 --- /dev/null +++ b/src/du_app/F1AP/asn/SubscriberProfileIDforRFP.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SubscriberProfileIDforRFP.h" + +int +SubscriberProfileIDforRFP_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 256)) { + /* 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_SubscriberProfileIDforRFP_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_SubscriberProfileIDforRFP_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 256 } /* (1..256,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_SubscriberProfileIDforRFP_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SubscriberProfileIDforRFP = { + "SubscriberProfileIDforRFP", + "SubscriberProfileIDforRFP", + &asn_OP_NativeInteger, + asn_DEF_SubscriberProfileIDforRFP_tags_1, + sizeof(asn_DEF_SubscriberProfileIDforRFP_tags_1) + /sizeof(asn_DEF_SubscriberProfileIDforRFP_tags_1[0]), /* 1 */ + asn_DEF_SubscriberProfileIDforRFP_tags_1, /* Same as above */ + sizeof(asn_DEF_SubscriberProfileIDforRFP_tags_1) + /sizeof(asn_DEF_SubscriberProfileIDforRFP_tags_1[0]), /* 1 */ + { &asn_OER_type_SubscriberProfileIDforRFP_constr_1, &asn_PER_type_SubscriberProfileIDforRFP_constr_1, SubscriberProfileIDforRFP_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/SubscriberProfileIDforRFP.h b/src/du_app/F1AP/asn/SubscriberProfileIDforRFP.h new file mode 100755 index 000000000..8435743a0 --- /dev/null +++ b/src/du_app/F1AP/asn/SubscriberProfileIDforRFP.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SubscriberProfileIDforRFP_H_ +#define _SubscriberProfileIDforRFP_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SubscriberProfileIDforRFP */ +typedef long SubscriberProfileIDforRFP_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SubscriberProfileIDforRFP_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SubscriberProfileIDforRFP; +asn_struct_free_f SubscriberProfileIDforRFP_free; +asn_struct_print_f SubscriberProfileIDforRFP_print; +asn_constr_check_f SubscriberProfileIDforRFP_constraint; +ber_type_decoder_f SubscriberProfileIDforRFP_decode_ber; +der_type_encoder_f SubscriberProfileIDforRFP_encode_der; +xer_type_decoder_f SubscriberProfileIDforRFP_decode_xer; +xer_type_encoder_f SubscriberProfileIDforRFP_encode_xer; +oer_type_decoder_f SubscriberProfileIDforRFP_decode_oer; +oer_type_encoder_f SubscriberProfileIDforRFP_encode_oer; +per_type_decoder_f SubscriberProfileIDforRFP_decode_uper; +per_type_encoder_f SubscriberProfileIDforRFP_encode_uper; +per_type_decoder_f SubscriberProfileIDforRFP_decode_aper; +per_type_encoder_f SubscriberProfileIDforRFP_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SubscriberProfileIDforRFP_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SuccessfulOutcome.c b/src/du_app/F1AP/asn/SuccessfulOutcome.c new file mode 100755 index 000000000..e854c6ce0 --- /dev/null +++ b/src/du_app/F1AP/asn/SuccessfulOutcome.c @@ -0,0 +1,530 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Descriptions" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SuccessfulOutcome.h" + +static const long asn_VAL_1_id_Reset = 0; +static const long asn_VAL_1_reject = 0; +static const long asn_VAL_2_id_F1Setup = 1; +static const long asn_VAL_2_reject = 0; +static const long asn_VAL_3_id_gNBDUConfigurationUpdate = 3; +static const long asn_VAL_3_reject = 0; +static const long asn_VAL_4_id_gNBCUConfigurationUpdate = 4; +static const long asn_VAL_4_reject = 0; +static const long asn_VAL_5_id_UEContextSetup = 5; +static const long asn_VAL_5_reject = 0; +static const long asn_VAL_6_id_UEContextRelease = 6; +static const long asn_VAL_6_reject = 0; +static const long asn_VAL_7_id_UEContextModification = 7; +static const long asn_VAL_7_reject = 0; +static const long asn_VAL_8_id_UEContextModificationRequired = 8; +static const long asn_VAL_8_reject = 0; +static const long asn_VAL_9_id_WriteReplaceWarning = 20; +static const long asn_VAL_9_reject = 0; +static const long asn_VAL_10_id_PWSCancel = 21; +static const long asn_VAL_10_reject = 0; +static const long asn_VAL_11_id_GNBDUResourceCoordination = 16; +static const long asn_VAL_11_reject = 0; +static const long asn_VAL_12_id_ErrorIndication = 2; +static const long asn_VAL_12_ignore = 1; +static const long asn_VAL_13_id_UEContextReleaseRequest = 10; +static const long asn_VAL_13_ignore = 1; +static const long asn_VAL_14_id_DLRRCMessageTransfer = 12; +static const long asn_VAL_14_ignore = 1; +static const long asn_VAL_15_id_ULRRCMessageTransfer = 13; +static const long asn_VAL_15_ignore = 1; +static const long asn_VAL_16_id_UEInactivityNotification = 15; +static const long asn_VAL_16_ignore = 1; +static const long asn_VAL_17_id_privateMessage = 14; +static const long asn_VAL_17_ignore = 1; +static const long asn_VAL_18_id_InitialULRRCMessageTransfer = 11; +static const long asn_VAL_18_ignore = 1; +static const long asn_VAL_19_id_SystemInformationDeliveryCommand = 17; +static const long asn_VAL_19_ignore = 1; +static const long asn_VAL_20_id_Paging = 18; +static const long asn_VAL_20_ignore = 1; +static const long asn_VAL_21_id_Notify = 19; +static const long asn_VAL_21_ignore = 1; +static const long asn_VAL_22_id_PWSRestartIndication = 22; +static const long asn_VAL_22_ignore = 1; +static const long asn_VAL_23_id_PWSFailureIndication = 23; +static const long asn_VAL_23_ignore = 1; +static const long asn_VAL_24_id_GNBDUStatusIndication = 24; +static const long asn_VAL_24_ignore = 1; +static const long asn_VAL_25_id_RRCDeliveryReport = 25; +static const long asn_VAL_25_ignore = 1; +static const asn_ioc_cell_t asn_IOS_F1AP_ELEMENTARY_PROCEDURES_1_rows[] = { + { "&InitiatingMessage", aioc__type, &asn_DEF_Reset }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetAcknowledge }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_Reset }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_F1SetupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_F1SetupResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_F1SetupFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_F1Setup }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_GNBDUConfigurationUpdate }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_GNBDUConfigurationUpdateAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_GNBDUConfigurationUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_gNBDUConfigurationUpdate }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_GNBCUConfigurationUpdate }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_GNBCUConfigurationUpdateAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_GNBCUConfigurationUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_gNBCUConfigurationUpdate }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_UEContextSetupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_UEContextSetupResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_UEContextSetupFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_UEContextSetup }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_UEContextReleaseCommand }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_UEContextReleaseComplete }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_UEContextRelease }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_UEContextModificationRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_UEContextModificationResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_UEContextModificationFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_UEContextModification }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_UEContextModificationRequired }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_UEContextModificationConfirm }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_UEContextModificationRefuse }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_UEContextModificationRequired }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_WriteReplaceWarningRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_WriteReplaceWarningResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_WriteReplaceWarning }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_PWSCancelRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_PWSCancelResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_10_id_PWSCancel }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_GNBDUResourceCoordinationRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_GNBDUResourceCoordinationResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_GNBDUResourceCoordination }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_ErrorIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_UEContextReleaseRequest }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_13_id_UEContextReleaseRequest }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_DLRRCMessageTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_14_id_DLRRCMessageTransfer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ULRRCMessageTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_15_id_ULRRCMessageTransfer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_UEInactivityNotification }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_16_id_UEInactivityNotification }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_PrivateMessage }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_17_id_privateMessage }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_17_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_InitialULRRCMessageTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_18_id_InitialULRRCMessageTransfer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_18_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_SystemInformationDeliveryCommand }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_19_id_SystemInformationDeliveryCommand }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_19_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_Paging }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_20_id_Paging }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_20_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_Notify }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_21_id_Notify }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_21_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_PWSRestartIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_22_id_PWSRestartIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_22_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_PWSFailureIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_23_id_PWSFailureIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_GNBDUStatusIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_24_id_GNBDUStatusIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RRCDeliveryReport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_25_id_RRCDeliveryReport }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_25_ignore } +}; +static const asn_ioc_set_t asn_IOS_F1AP_ELEMENTARY_PROCEDURES_1[] = { + { 25, 5, asn_IOS_F1AP_ELEMENTARY_PROCEDURES_1_rows } +}; +static int +memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_SuccessfulOutcome_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_F1AP_ELEMENTARY_PROCEDURES_1; + size_t constraining_column = 3; /* &procedureCode */ + size_t for_column = 4; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SuccessfulOutcome, procedureCode)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_SuccessfulOutcome_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_F1AP_ELEMENTARY_PROCEDURES_1; + size_t constraining_column = 3; /* &procedureCode */ + size_t for_column = 1; /* &SuccessfulOutcome */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SuccessfulOutcome, procedureCode)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_oer_constraints_t asn_OER_memb_procedureCode_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_value_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.ResetAcknowledge), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ResetAcknowledge, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ResetAcknowledge" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.F1SetupResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_F1SetupResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "F1SetupResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.GNBDUConfigurationUpdateAcknowledge), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNBDUConfigurationUpdateAcknowledge, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNBDUConfigurationUpdateAcknowledge" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.GNBCUConfigurationUpdateAcknowledge), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNBCUConfigurationUpdateAcknowledge, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNBCUConfigurationUpdateAcknowledge" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.UEContextSetupResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEContextSetupResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEContextSetupResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.UEContextReleaseComplete), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEContextReleaseComplete, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEContextReleaseComplete" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.UEContextModificationResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEContextModificationResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEContextModificationResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.UEContextModificationConfirm), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEContextModificationConfirm, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEContextModificationConfirm" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.WriteReplaceWarningResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_WriteReplaceWarningResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "WriteReplaceWarningResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.PWSCancelResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PWSCancelResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PWSCancelResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.GNBDUResourceCoordinationResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNBDUResourceCoordinationResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNBDUResourceCoordinationResponse" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 10 }, /* ResetAcknowledge */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 9 }, /* F1SetupResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 8 }, /* GNBDUConfigurationUpdateAcknowledge */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 7 }, /* GNBCUConfigurationUpdateAcknowledge */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 6 }, /* UEContextSetupResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 5 }, /* UEContextReleaseComplete */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 4 }, /* UEContextModificationResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 3 }, /* UEContextModificationConfirm */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 2 }, /* WriteReplaceWarningResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -9, 1 }, /* PWSCancelResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -10, 0 } /* GNBDUResourceCoordinationResponse */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { + sizeof(struct SuccessfulOutcome__value), + offsetof(struct SuccessfulOutcome__value, _asn_ctx), + offsetof(struct SuccessfulOutcome__value, present), + sizeof(((struct SuccessfulOutcome__value *)0)->present), + asn_MAP_value_tag2el_4, + 11, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_4 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_4, + 11, /* Elements count */ + &asn_SPC_value_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, procedureCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProcedureCode, + 0, + { &asn_OER_memb_procedureCode_constr_2, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, + 0, 0, /* No default value */ + "procedureCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_SuccessfulOutcome_criticality_type, + { &asn_OER_memb_criticality_constr_3, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_4, + select_SuccessfulOutcome_value_type, + { &asn_OER_memb_value_constr_4, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_SuccessfulOutcome_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SuccessfulOutcome_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SuccessfulOutcome_specs_1 = { + sizeof(struct SuccessfulOutcome), + offsetof(struct SuccessfulOutcome, _asn_ctx), + asn_MAP_SuccessfulOutcome_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SuccessfulOutcome = { + "SuccessfulOutcome", + "SuccessfulOutcome", + &asn_OP_SEQUENCE, + asn_DEF_SuccessfulOutcome_tags_1, + sizeof(asn_DEF_SuccessfulOutcome_tags_1) + /sizeof(asn_DEF_SuccessfulOutcome_tags_1[0]), /* 1 */ + asn_DEF_SuccessfulOutcome_tags_1, /* Same as above */ + sizeof(asn_DEF_SuccessfulOutcome_tags_1) + /sizeof(asn_DEF_SuccessfulOutcome_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SuccessfulOutcome_1, + 3, /* Elements count */ + &asn_SPC_SuccessfulOutcome_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SuccessfulOutcome.h b/src/du_app/F1AP/asn/SuccessfulOutcome.h new file mode 100755 index 000000000..18f86c582 --- /dev/null +++ b/src/du_app/F1AP/asn/SuccessfulOutcome.h @@ -0,0 +1,123 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Descriptions" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SuccessfulOutcome_H_ +#define _SuccessfulOutcome_H_ + + +#include + +/* Including external dependencies */ +#include "ProcedureCode.h" +#include "Criticality.h" +#include +#include +#include "Reset.h" +#include "ResetAcknowledge.h" +#include "F1SetupRequest.h" +#include "F1SetupResponse.h" +#include "F1SetupFailure.h" +#include "GNBDUConfigurationUpdate.h" +#include "GNBDUConfigurationUpdateAcknowledge.h" +#include "GNBDUConfigurationUpdateFailure.h" +#include "GNBCUConfigurationUpdate.h" +#include "GNBCUConfigurationUpdateAcknowledge.h" +#include "GNBCUConfigurationUpdateFailure.h" +#include "UEContextSetupRequest.h" +#include "UEContextSetupResponse.h" +#include "UEContextSetupFailure.h" +#include "UEContextReleaseCommand.h" +#include "UEContextReleaseComplete.h" +#include "UEContextModificationRequest.h" +#include "UEContextModificationResponse.h" +#include "UEContextModificationFailure.h" +#include "UEContextModificationRequired.h" +#include "UEContextModificationConfirm.h" +#include "UEContextModificationRefuse.h" +#include "WriteReplaceWarningRequest.h" +#include "WriteReplaceWarningResponse.h" +#include "PWSCancelRequest.h" +#include "PWSCancelResponse.h" +#include "GNBDUResourceCoordinationRequest.h" +#include "GNBDUResourceCoordinationResponse.h" +#include "ErrorIndication.h" +#include "UEContextReleaseRequest.h" +#include "DLRRCMessageTransfer.h" +#include "ULRRCMessageTransfer.h" +#include "UEInactivityNotification.h" +#include "PrivateMessage.h" +#include "InitialULRRCMessageTransfer.h" +#include "SystemInformationDeliveryCommand.h" +#include "Paging.h" +#include "Notify.h" +#include "PWSRestartIndication.h" +#include "PWSFailureIndication.h" +#include "GNBDUStatusIndication.h" +#include "RRCDeliveryReport.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SuccessfulOutcome__value_PR { + SuccessfulOutcome__value_PR_NOTHING, /* No components present */ + SuccessfulOutcome__value_PR_ResetAcknowledge, + SuccessfulOutcome__value_PR_F1SetupResponse, + SuccessfulOutcome__value_PR_GNBDUConfigurationUpdateAcknowledge, + SuccessfulOutcome__value_PR_GNBCUConfigurationUpdateAcknowledge, + SuccessfulOutcome__value_PR_UEContextSetupResponse, + SuccessfulOutcome__value_PR_UEContextReleaseComplete, + SuccessfulOutcome__value_PR_UEContextModificationResponse, + SuccessfulOutcome__value_PR_UEContextModificationConfirm, + SuccessfulOutcome__value_PR_WriteReplaceWarningResponse, + SuccessfulOutcome__value_PR_PWSCancelResponse, + SuccessfulOutcome__value_PR_GNBDUResourceCoordinationResponse +} SuccessfulOutcome__value_PR; + +/* SuccessfulOutcome */ +typedef struct SuccessfulOutcome { + ProcedureCode_t procedureCode; + Criticality_t criticality; + struct SuccessfulOutcome__value { + SuccessfulOutcome__value_PR present; + union SuccessfulOutcome__value_u { + ResetAcknowledge_t ResetAcknowledge; + F1SetupResponse_t F1SetupResponse; + GNBDUConfigurationUpdateAcknowledge_t GNBDUConfigurationUpdateAcknowledge; + GNBCUConfigurationUpdateAcknowledge_t GNBCUConfigurationUpdateAcknowledge; + UEContextSetupResponse_t UEContextSetupResponse; + UEContextReleaseComplete_t UEContextReleaseComplete; + UEContextModificationResponse_t UEContextModificationResponse; + UEContextModificationConfirm_t UEContextModificationConfirm; + WriteReplaceWarningResponse_t WriteReplaceWarningResponse; + PWSCancelResponse_t PWSCancelResponse; + GNBDUResourceCoordinationResponse_t GNBDUResourceCoordinationResponse; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SuccessfulOutcome_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SuccessfulOutcome; +extern asn_SEQUENCE_specifics_t asn_SPC_SuccessfulOutcome_specs_1; +extern asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SuccessfulOutcome_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SupportedSULFreqBandItem.c b/src/du_app/F1AP/asn/SupportedSULFreqBandItem.c new file mode 100755 index 000000000..bc893b5ff --- /dev/null +++ b/src/du_app/F1AP/asn/SupportedSULFreqBandItem.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SupportedSULFreqBandItem.h" + +#include "ProtocolExtensionContainer.h" +static int +memb_freqBandIndicatorNr_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 1 && value <= 1024)) { + /* Constraint 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_freqBandIndicatorNr_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_freqBandIndicatorNr_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 10, 10, 1, 1024 } /* (1..1024,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_SupportedSULFreqBandItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SupportedSULFreqBandItem, freqBandIndicatorNr), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_freqBandIndicatorNr_constr_2, &asn_PER_memb_freqBandIndicatorNr_constr_2, memb_freqBandIndicatorNr_constraint_1 }, + 0, 0, /* No default value */ + "freqBandIndicatorNr" + }, + { ATF_POINTER, 1, offsetof(struct SupportedSULFreqBandItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P107, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_SupportedSULFreqBandItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_SupportedSULFreqBandItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SupportedSULFreqBandItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* freqBandIndicatorNr */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SupportedSULFreqBandItem_specs_1 = { + sizeof(struct SupportedSULFreqBandItem), + offsetof(struct SupportedSULFreqBandItem, _asn_ctx), + asn_MAP_SupportedSULFreqBandItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_SupportedSULFreqBandItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SupportedSULFreqBandItem = { + "SupportedSULFreqBandItem", + "SupportedSULFreqBandItem", + &asn_OP_SEQUENCE, + asn_DEF_SupportedSULFreqBandItem_tags_1, + sizeof(asn_DEF_SupportedSULFreqBandItem_tags_1) + /sizeof(asn_DEF_SupportedSULFreqBandItem_tags_1[0]), /* 1 */ + asn_DEF_SupportedSULFreqBandItem_tags_1, /* Same as above */ + sizeof(asn_DEF_SupportedSULFreqBandItem_tags_1) + /sizeof(asn_DEF_SupportedSULFreqBandItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SupportedSULFreqBandItem_1, + 2, /* Elements count */ + &asn_SPC_SupportedSULFreqBandItem_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SupportedSULFreqBandItem.h b/src/du_app/F1AP/asn/SupportedSULFreqBandItem.h new file mode 100755 index 000000000..4f10dece9 --- /dev/null +++ b/src/du_app/F1AP/asn/SupportedSULFreqBandItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SupportedSULFreqBandItem_H_ +#define _SupportedSULFreqBandItem_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* SupportedSULFreqBandItem */ +typedef struct SupportedSULFreqBandItem { + long freqBandIndicatorNr; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SupportedSULFreqBandItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SupportedSULFreqBandItem; +extern asn_SEQUENCE_specifics_t asn_SPC_SupportedSULFreqBandItem_specs_1; +extern asn_TYPE_member_t asn_MBR_SupportedSULFreqBandItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SupportedSULFreqBandItem_H_ */ +#include diff --git a/src/du_app/F1AP/asn/SystemInformationDeliveryCommand.c b/src/du_app/F1AP/asn/SystemInformationDeliveryCommand.c new file mode 100755 index 000000000..dc9b65692 --- /dev/null +++ b/src/du_app/F1AP/asn/SystemInformationDeliveryCommand.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SystemInformationDeliveryCommand.h" + +asn_TYPE_member_t asn_MBR_SystemInformationDeliveryCommand_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SystemInformationDeliveryCommand, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P34, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_SystemInformationDeliveryCommand_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SystemInformationDeliveryCommand_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SystemInformationDeliveryCommand_specs_1 = { + sizeof(struct SystemInformationDeliveryCommand), + offsetof(struct SystemInformationDeliveryCommand, _asn_ctx), + asn_MAP_SystemInformationDeliveryCommand_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_SystemInformationDeliveryCommand = { + "SystemInformationDeliveryCommand", + "SystemInformationDeliveryCommand", + &asn_OP_SEQUENCE, + asn_DEF_SystemInformationDeliveryCommand_tags_1, + sizeof(asn_DEF_SystemInformationDeliveryCommand_tags_1) + /sizeof(asn_DEF_SystemInformationDeliveryCommand_tags_1[0]), /* 1 */ + asn_DEF_SystemInformationDeliveryCommand_tags_1, /* Same as above */ + sizeof(asn_DEF_SystemInformationDeliveryCommand_tags_1) + /sizeof(asn_DEF_SystemInformationDeliveryCommand_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SystemInformationDeliveryCommand_1, + 1, /* Elements count */ + &asn_SPC_SystemInformationDeliveryCommand_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/SystemInformationDeliveryCommand.h b/src/du_app/F1AP/asn/SystemInformationDeliveryCommand.h new file mode 100755 index 000000000..fe577da01 --- /dev/null +++ b/src/du_app/F1AP/asn/SystemInformationDeliveryCommand.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SystemInformationDeliveryCommand_H_ +#define _SystemInformationDeliveryCommand_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SystemInformationDeliveryCommand */ +typedef struct SystemInformationDeliveryCommand { + ProtocolIE_Container_4587P34_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SystemInformationDeliveryCommand_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SystemInformationDeliveryCommand; +extern asn_SEQUENCE_specifics_t asn_SPC_SystemInformationDeliveryCommand_specs_1; +extern asn_TYPE_member_t asn_MBR_SystemInformationDeliveryCommand_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SystemInformationDeliveryCommand_H_ */ +#include diff --git a/src/du_app/F1AP/asn/TDD-Info.c b/src/du_app/F1AP/asn/TDD-Info.c new file mode 100755 index 000000000..a080e2b3f --- /dev/null +++ b/src/du_app/F1AP/asn/TDD-Info.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TDD-Info.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_TDD_Info_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TDD_Info, nRFreqInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRFreqInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nRFreqInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct TDD_Info, transmission_Bandwidth), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Transmission_Bandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transmission-Bandwidth" + }, + { ATF_POINTER, 1, offsetof(struct TDD_Info, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P108, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_TDD_Info_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_TDD_Info_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TDD_Info_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRFreqInfo */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transmission-Bandwidth */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TDD_Info_specs_1 = { + sizeof(struct TDD_Info), + offsetof(struct TDD_Info, _asn_ctx), + asn_MAP_TDD_Info_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_TDD_Info_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TDD_Info = { + "TDD-Info", + "TDD-Info", + &asn_OP_SEQUENCE, + asn_DEF_TDD_Info_tags_1, + sizeof(asn_DEF_TDD_Info_tags_1) + /sizeof(asn_DEF_TDD_Info_tags_1[0]), /* 1 */ + asn_DEF_TDD_Info_tags_1, /* Same as above */ + sizeof(asn_DEF_TDD_Info_tags_1) + /sizeof(asn_DEF_TDD_Info_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TDD_Info_1, + 3, /* Elements count */ + &asn_SPC_TDD_Info_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/TDD-Info.h b/src/du_app/F1AP/asn/TDD-Info.h new file mode 100755 index 000000000..b4e96f054 --- /dev/null +++ b/src/du_app/F1AP/asn/TDD-Info.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TDD_Info_H_ +#define _TDD_Info_H_ + + +#include + +/* Including external dependencies */ +#include "NRFreqInfo.h" +#include "Transmission-Bandwidth.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* TDD-Info */ +typedef struct TDD_Info { + NRFreqInfo_t nRFreqInfo; + Transmission_Bandwidth_t transmission_Bandwidth; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TDD_Info_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TDD_Info; +extern asn_SEQUENCE_specifics_t asn_SPC_TDD_Info_specs_1; +extern asn_TYPE_member_t asn_MBR_TDD_Info_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TDD_Info_H_ */ +#include diff --git a/src/du_app/F1AP/asn/TNLAssociationUsage.c b/src/du_app/F1AP/asn/TNLAssociationUsage.c new file mode 100755 index 000000000..7efc595ad --- /dev/null +++ b/src/du_app/F1AP/asn/TNLAssociationUsage.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TNLAssociationUsage.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TNLAssociationUsage_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TNLAssociationUsage_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_TNLAssociationUsage_value2enum_1[] = { + { 0, 2, "ue" }, + { 1, 6, "non-ue" }, + { 2, 4, "both" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_TNLAssociationUsage_enum2value_1[] = { + 2, /* both(2) */ + 1, /* non-ue(1) */ + 0 /* ue(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_TNLAssociationUsage_specs_1 = { + asn_MAP_TNLAssociationUsage_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TNLAssociationUsage_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_TNLAssociationUsage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TNLAssociationUsage = { + "TNLAssociationUsage", + "TNLAssociationUsage", + &asn_OP_NativeEnumerated, + asn_DEF_TNLAssociationUsage_tags_1, + sizeof(asn_DEF_TNLAssociationUsage_tags_1) + /sizeof(asn_DEF_TNLAssociationUsage_tags_1[0]), /* 1 */ + asn_DEF_TNLAssociationUsage_tags_1, /* Same as above */ + sizeof(asn_DEF_TNLAssociationUsage_tags_1) + /sizeof(asn_DEF_TNLAssociationUsage_tags_1[0]), /* 1 */ + { &asn_OER_type_TNLAssociationUsage_constr_1, &asn_PER_type_TNLAssociationUsage_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TNLAssociationUsage_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/TNLAssociationUsage.h b/src/du_app/F1AP/asn/TNLAssociationUsage.h new file mode 100755 index 000000000..f4348d2ca --- /dev/null +++ b/src/du_app/F1AP/asn/TNLAssociationUsage.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TNLAssociationUsage_H_ +#define _TNLAssociationUsage_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TNLAssociationUsage { + TNLAssociationUsage_ue = 0, + TNLAssociationUsage_non_ue = 1, + TNLAssociationUsage_both = 2 + /* + * Enumeration is extensible + */ +} e_TNLAssociationUsage; + +/* TNLAssociationUsage */ +typedef long TNLAssociationUsage_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TNLAssociationUsage_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TNLAssociationUsage; +extern const asn_INTEGER_specifics_t asn_SPC_TNLAssociationUsage_specs_1; +asn_struct_free_f TNLAssociationUsage_free; +asn_struct_print_f TNLAssociationUsage_print; +asn_constr_check_f TNLAssociationUsage_constraint; +ber_type_decoder_f TNLAssociationUsage_decode_ber; +der_type_encoder_f TNLAssociationUsage_encode_der; +xer_type_decoder_f TNLAssociationUsage_decode_xer; +xer_type_encoder_f TNLAssociationUsage_encode_xer; +oer_type_decoder_f TNLAssociationUsage_decode_oer; +oer_type_encoder_f TNLAssociationUsage_encode_oer; +per_type_decoder_f TNLAssociationUsage_decode_uper; +per_type_encoder_f TNLAssociationUsage_encode_uper; +per_type_decoder_f TNLAssociationUsage_decode_aper; +per_type_encoder_f TNLAssociationUsage_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TNLAssociationUsage_H_ */ +#include diff --git a/src/du_app/F1AP/asn/TimeToWait.c b/src/du_app/F1AP/asn/TimeToWait.c new file mode 100755 index 000000000..78a12fe09 --- /dev/null +++ b/src/du_app/F1AP/asn/TimeToWait.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TimeToWait.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeToWait_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_TimeToWait_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TimeToWait_value2enum_1[] = { + { 0, 3, "v1s" }, + { 1, 3, "v2s" }, + { 2, 3, "v5s" }, + { 3, 4, "v10s" }, + { 4, 4, "v20s" }, + { 5, 4, "v60s" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_TimeToWait_enum2value_1[] = { + 3, /* v10s(3) */ + 0, /* v1s(0) */ + 4, /* v20s(4) */ + 1, /* v2s(1) */ + 2, /* v5s(2) */ + 5 /* v60s(5) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_TimeToWait_specs_1 = { + asn_MAP_TimeToWait_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TimeToWait_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TimeToWait_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeToWait = { + "TimeToWait", + "TimeToWait", + &asn_OP_NativeEnumerated, + asn_DEF_TimeToWait_tags_1, + sizeof(asn_DEF_TimeToWait_tags_1) + /sizeof(asn_DEF_TimeToWait_tags_1[0]), /* 1 */ + asn_DEF_TimeToWait_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeToWait_tags_1) + /sizeof(asn_DEF_TimeToWait_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeToWait_constr_1, &asn_PER_type_TimeToWait_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TimeToWait_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/TimeToWait.h b/src/du_app/F1AP/asn/TimeToWait.h new file mode 100755 index 000000000..706879e8e --- /dev/null +++ b/src/du_app/F1AP/asn/TimeToWait.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TimeToWait_H_ +#define _TimeToWait_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimeToWait { + TimeToWait_v1s = 0, + TimeToWait_v2s = 1, + TimeToWait_v5s = 2, + TimeToWait_v10s = 3, + TimeToWait_v20s = 4, + TimeToWait_v60s = 5 + /* + * Enumeration is extensible + */ +} e_TimeToWait; + +/* TimeToWait */ +typedef long TimeToWait_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TimeToWait; +asn_struct_free_f TimeToWait_free; +asn_struct_print_f TimeToWait_print; +asn_constr_check_f TimeToWait_constraint; +ber_type_decoder_f TimeToWait_decode_ber; +der_type_encoder_f TimeToWait_encode_der; +xer_type_decoder_f TimeToWait_decode_xer; +xer_type_encoder_f TimeToWait_encode_xer; +oer_type_decoder_f TimeToWait_decode_oer; +oer_type_encoder_f TimeToWait_encode_oer; +per_type_decoder_f TimeToWait_decode_uper; +per_type_encoder_f TimeToWait_encode_uper; +per_type_decoder_f TimeToWait_decode_aper; +per_type_encoder_f TimeToWait_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeToWait_H_ */ +#include diff --git a/src/du_app/F1AP/asn/TransactionID.c b/src/du_app/F1AP/asn/TransactionID.c new file mode 100755 index 000000000..224e7a6a1 --- /dev/null +++ b/src/du_app/F1AP/asn/TransactionID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TransactionID.h" + +int +TransactionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransactionID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TransactionID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 0, 255 } /* (0..255,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TransactionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransactionID = { + "TransactionID", + "TransactionID", + &asn_OP_NativeInteger, + asn_DEF_TransactionID_tags_1, + sizeof(asn_DEF_TransactionID_tags_1) + /sizeof(asn_DEF_TransactionID_tags_1[0]), /* 1 */ + asn_DEF_TransactionID_tags_1, /* Same as above */ + sizeof(asn_DEF_TransactionID_tags_1) + /sizeof(asn_DEF_TransactionID_tags_1[0]), /* 1 */ + { &asn_OER_type_TransactionID_constr_1, &asn_PER_type_TransactionID_constr_1, TransactionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/du_app/F1AP/asn/TransactionID.h b/src/du_app/F1AP/asn/TransactionID.h new file mode 100755 index 000000000..a238f7e5c --- /dev/null +++ b/src/du_app/F1AP/asn/TransactionID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TransactionID_H_ +#define _TransactionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TransactionID */ +typedef long TransactionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransactionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransactionID; +asn_struct_free_f TransactionID_free; +asn_struct_print_f TransactionID_print; +asn_constr_check_f TransactionID_constraint; +ber_type_decoder_f TransactionID_decode_ber; +der_type_encoder_f TransactionID_encode_der; +xer_type_decoder_f TransactionID_decode_xer; +xer_type_encoder_f TransactionID_encode_xer; +oer_type_decoder_f TransactionID_decode_oer; +oer_type_encoder_f TransactionID_encode_oer; +per_type_decoder_f TransactionID_decode_uper; +per_type_encoder_f TransactionID_encode_uper; +per_type_decoder_f TransactionID_decode_aper; +per_type_encoder_f TransactionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransactionID_H_ */ +#include diff --git a/src/du_app/F1AP/asn/Transmission-Bandwidth.c b/src/du_app/F1AP/asn/Transmission-Bandwidth.c new file mode 100755 index 000000000..d56059eac --- /dev/null +++ b/src/du_app/F1AP/asn/Transmission-Bandwidth.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Transmission-Bandwidth.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_Transmission_Bandwidth_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Transmission_Bandwidth, nRSCS), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRSCS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nRSCS" + }, + { ATF_NOFLAGS, 0, offsetof(struct Transmission_Bandwidth, nRNRB), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NRNRB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nRNRB" + }, + { ATF_POINTER, 1, offsetof(struct Transmission_Bandwidth, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P109, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_Transmission_Bandwidth_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_Transmission_Bandwidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Transmission_Bandwidth_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRSCS */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nRNRB */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Transmission_Bandwidth_specs_1 = { + sizeof(struct Transmission_Bandwidth), + offsetof(struct Transmission_Bandwidth, _asn_ctx), + asn_MAP_Transmission_Bandwidth_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Transmission_Bandwidth_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Transmission_Bandwidth = { + "Transmission-Bandwidth", + "Transmission-Bandwidth", + &asn_OP_SEQUENCE, + asn_DEF_Transmission_Bandwidth_tags_1, + sizeof(asn_DEF_Transmission_Bandwidth_tags_1) + /sizeof(asn_DEF_Transmission_Bandwidth_tags_1[0]), /* 1 */ + asn_DEF_Transmission_Bandwidth_tags_1, /* Same as above */ + sizeof(asn_DEF_Transmission_Bandwidth_tags_1) + /sizeof(asn_DEF_Transmission_Bandwidth_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Transmission_Bandwidth_1, + 3, /* Elements count */ + &asn_SPC_Transmission_Bandwidth_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/Transmission-Bandwidth.h b/src/du_app/F1AP/asn/Transmission-Bandwidth.h new file mode 100755 index 000000000..247779183 --- /dev/null +++ b/src/du_app/F1AP/asn/Transmission-Bandwidth.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Transmission_Bandwidth_H_ +#define _Transmission_Bandwidth_H_ + + +#include + +/* Including external dependencies */ +#include "NRSCS.h" +#include "NRNRB.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* Transmission-Bandwidth */ +typedef struct Transmission_Bandwidth { + NRSCS_t nRSCS; + NRNRB_t nRNRB; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Transmission_Bandwidth_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Transmission_Bandwidth; +extern asn_SEQUENCE_specifics_t asn_SPC_Transmission_Bandwidth_specs_1; +extern asn_TYPE_member_t asn_MBR_Transmission_Bandwidth_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Transmission_Bandwidth_H_ */ +#include diff --git a/src/du_app/F1AP/asn/TransmissionActionIndicator.c b/src/du_app/F1AP/asn/TransmissionActionIndicator.c new file mode 100755 index 000000000..60500dfaa --- /dev/null +++ b/src/du_app/F1AP/asn/TransmissionActionIndicator.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TransmissionActionIndicator.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransmissionActionIndicator_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_TransmissionActionIndicator_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TransmissionActionIndicator_value2enum_1[] = { + { 0, 4, "stop" }, + { 1, 7, "restart" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_TransmissionActionIndicator_enum2value_1[] = { + 1, /* restart(1) */ + 0 /* stop(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_TransmissionActionIndicator_specs_1 = { + asn_MAP_TransmissionActionIndicator_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TransmissionActionIndicator_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* 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_TransmissionActionIndicator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransmissionActionIndicator = { + "TransmissionActionIndicator", + "TransmissionActionIndicator", + &asn_OP_NativeEnumerated, + asn_DEF_TransmissionActionIndicator_tags_1, + sizeof(asn_DEF_TransmissionActionIndicator_tags_1) + /sizeof(asn_DEF_TransmissionActionIndicator_tags_1[0]), /* 1 */ + asn_DEF_TransmissionActionIndicator_tags_1, /* Same as above */ + sizeof(asn_DEF_TransmissionActionIndicator_tags_1) + /sizeof(asn_DEF_TransmissionActionIndicator_tags_1[0]), /* 1 */ + { &asn_OER_type_TransmissionActionIndicator_constr_1, &asn_PER_type_TransmissionActionIndicator_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TransmissionActionIndicator_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/TransmissionActionIndicator.h b/src/du_app/F1AP/asn/TransmissionActionIndicator.h new file mode 100755 index 000000000..d362d6e47 --- /dev/null +++ b/src/du_app/F1AP/asn/TransmissionActionIndicator.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TransmissionActionIndicator_H_ +#define _TransmissionActionIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TransmissionActionIndicator { + TransmissionActionIndicator_stop = 0, + /* + * Enumeration is extensible + */ + TransmissionActionIndicator_restart = 1 +} e_TransmissionActionIndicator; + +/* TransmissionActionIndicator */ +typedef long TransmissionActionIndicator_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TransmissionActionIndicator; +asn_struct_free_f TransmissionActionIndicator_free; +asn_struct_print_f TransmissionActionIndicator_print; +asn_constr_check_f TransmissionActionIndicator_constraint; +ber_type_decoder_f TransmissionActionIndicator_decode_ber; +der_type_encoder_f TransmissionActionIndicator_encode_der; +xer_type_decoder_f TransmissionActionIndicator_decode_xer; +xer_type_encoder_f TransmissionActionIndicator_encode_xer; +oer_type_decoder_f TransmissionActionIndicator_decode_oer; +oer_type_encoder_f TransmissionActionIndicator_encode_oer; +per_type_decoder_f TransmissionActionIndicator_decode_uper; +per_type_encoder_f TransmissionActionIndicator_encode_uper; +per_type_decoder_f TransmissionActionIndicator_decode_aper; +per_type_encoder_f TransmissionActionIndicator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransmissionActionIndicator_H_ */ +#include diff --git a/src/du_app/F1AP/asn/TransportLayerAddress.c b/src/du_app/F1AP/asn/TransportLayerAddress.c new file mode 100755 index 000000000..c7e6e16d8 --- /dev/null +++ b/src/du_app/F1AP/asn/TransportLayerAddress.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TransportLayerAddress.h" + +int +TransportLayerAddress_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 >= 1 && size <= 160)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransportLayerAddress_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_TransportLayerAddress_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 160 } /* (SIZE(1..160,...)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TransportLayerAddress_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransportLayerAddress = { + "TransportLayerAddress", + "TransportLayerAddress", + &asn_OP_BIT_STRING, + asn_DEF_TransportLayerAddress_tags_1, + sizeof(asn_DEF_TransportLayerAddress_tags_1) + /sizeof(asn_DEF_TransportLayerAddress_tags_1[0]), /* 1 */ + asn_DEF_TransportLayerAddress_tags_1, /* Same as above */ + sizeof(asn_DEF_TransportLayerAddress_tags_1) + /sizeof(asn_DEF_TransportLayerAddress_tags_1[0]), /* 1 */ + { &asn_OER_type_TransportLayerAddress_constr_1, &asn_PER_type_TransportLayerAddress_constr_1, TransportLayerAddress_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/TransportLayerAddress.h b/src/du_app/F1AP/asn/TransportLayerAddress.h new file mode 100755 index 000000000..20891e532 --- /dev/null +++ b/src/du_app/F1AP/asn/TransportLayerAddress.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TransportLayerAddress_H_ +#define _TransportLayerAddress_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TransportLayerAddress */ +typedef BIT_STRING_t TransportLayerAddress_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TransportLayerAddress_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TransportLayerAddress; +asn_struct_free_f TransportLayerAddress_free; +asn_struct_print_f TransportLayerAddress_print; +asn_constr_check_f TransportLayerAddress_constraint; +ber_type_decoder_f TransportLayerAddress_decode_ber; +der_type_encoder_f TransportLayerAddress_encode_der; +xer_type_decoder_f TransportLayerAddress_decode_xer; +xer_type_encoder_f TransportLayerAddress_encode_xer; +oer_type_decoder_f TransportLayerAddress_decode_oer; +oer_type_encoder_f TransportLayerAddress_encode_oer; +per_type_decoder_f TransportLayerAddress_decode_uper; +per_type_encoder_f TransportLayerAddress_encode_uper; +per_type_decoder_f TransportLayerAddress_decode_aper; +per_type_encoder_f TransportLayerAddress_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransportLayerAddress_H_ */ +#include diff --git a/src/du_app/F1AP/asn/TriggeringMessage.c b/src/du_app/F1AP/asn/TriggeringMessage.c new file mode 100755 index 000000000..0f8c92bd8 --- /dev/null +++ b/src/du_app/F1AP/asn/TriggeringMessage.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-CommonDataTypes" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TriggeringMessage.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TriggeringMessage_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TriggeringMessage_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TriggeringMessage_value2enum_1[] = { + { 0, 18, "initiating-message" }, + { 1, 18, "successful-outcome" }, + { 2, 21, "unsuccessfull-outcome" } +}; +static const unsigned int asn_MAP_TriggeringMessage_enum2value_1[] = { + 0, /* initiating-message(0) */ + 1, /* successful-outcome(1) */ + 2 /* unsuccessfull-outcome(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_TriggeringMessage_specs_1 = { + asn_MAP_TriggeringMessage_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TriggeringMessage_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TriggeringMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TriggeringMessage = { + "TriggeringMessage", + "TriggeringMessage", + &asn_OP_NativeEnumerated, + asn_DEF_TriggeringMessage_tags_1, + sizeof(asn_DEF_TriggeringMessage_tags_1) + /sizeof(asn_DEF_TriggeringMessage_tags_1[0]), /* 1 */ + asn_DEF_TriggeringMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_TriggeringMessage_tags_1) + /sizeof(asn_DEF_TriggeringMessage_tags_1[0]), /* 1 */ + { &asn_OER_type_TriggeringMessage_constr_1, &asn_PER_type_TriggeringMessage_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TriggeringMessage_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/TriggeringMessage.h b/src/du_app/F1AP/asn/TriggeringMessage.h new file mode 100755 index 000000000..17348a6b1 --- /dev/null +++ b/src/du_app/F1AP/asn/TriggeringMessage.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-CommonDataTypes" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TriggeringMessage_H_ +#define _TriggeringMessage_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TriggeringMessage { + TriggeringMessage_initiating_message = 0, + TriggeringMessage_successful_outcome = 1, + TriggeringMessage_unsuccessfull_outcome = 2 +} e_TriggeringMessage; + +/* TriggeringMessage */ +typedef long TriggeringMessage_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TriggeringMessage_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TriggeringMessage; +extern const asn_INTEGER_specifics_t asn_SPC_TriggeringMessage_specs_1; +asn_struct_free_f TriggeringMessage_free; +asn_struct_print_f TriggeringMessage_print; +asn_constr_check_f TriggeringMessage_constraint; +ber_type_decoder_f TriggeringMessage_decode_ber; +der_type_encoder_f TriggeringMessage_encode_der; +xer_type_decoder_f TriggeringMessage_decode_xer; +xer_type_encoder_f TriggeringMessage_encode_xer; +oer_type_decoder_f TriggeringMessage_decode_oer; +oer_type_encoder_f TriggeringMessage_encode_oer; +per_type_decoder_f TriggeringMessage_decode_uper; +per_type_encoder_f TriggeringMessage_encode_uper; +per_type_decoder_f TriggeringMessage_decode_aper; +per_type_encoder_f TriggeringMessage_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TriggeringMessage_H_ */ +#include diff --git a/src/du_app/F1AP/asn/TypeOfError.c b/src/du_app/F1AP/asn/TypeOfError.c new file mode 100755 index 000000000..4f84589b3 --- /dev/null +++ b/src/du_app/F1AP/asn/TypeOfError.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TypeOfError.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TypeOfError_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TypeOfError_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TypeOfError_value2enum_1[] = { + { 0, 14, "not-understood" }, + { 1, 7, "missing" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_TypeOfError_enum2value_1[] = { + 1, /* missing(1) */ + 0 /* not-understood(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_TypeOfError_specs_1 = { + asn_MAP_TypeOfError_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TypeOfError_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TypeOfError_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TypeOfError = { + "TypeOfError", + "TypeOfError", + &asn_OP_NativeEnumerated, + asn_DEF_TypeOfError_tags_1, + sizeof(asn_DEF_TypeOfError_tags_1) + /sizeof(asn_DEF_TypeOfError_tags_1[0]), /* 1 */ + asn_DEF_TypeOfError_tags_1, /* Same as above */ + sizeof(asn_DEF_TypeOfError_tags_1) + /sizeof(asn_DEF_TypeOfError_tags_1[0]), /* 1 */ + { &asn_OER_type_TypeOfError_constr_1, &asn_PER_type_TypeOfError_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TypeOfError_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/TypeOfError.h b/src/du_app/F1AP/asn/TypeOfError.h new file mode 100755 index 000000000..b99f43528 --- /dev/null +++ b/src/du_app/F1AP/asn/TypeOfError.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TypeOfError_H_ +#define _TypeOfError_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TypeOfError { + TypeOfError_not_understood = 0, + TypeOfError_missing = 1 + /* + * Enumeration is extensible + */ +} e_TypeOfError; + +/* TypeOfError */ +typedef long TypeOfError_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TypeOfError_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TypeOfError; +extern const asn_INTEGER_specifics_t asn_SPC_TypeOfError_specs_1; +asn_struct_free_f TypeOfError_free; +asn_struct_print_f TypeOfError_print; +asn_constr_check_f TypeOfError_constraint; +ber_type_decoder_f TypeOfError_decode_ber; +der_type_encoder_f TypeOfError_encode_der; +xer_type_decoder_f TypeOfError_decode_xer; +xer_type_encoder_f TypeOfError_encode_xer; +oer_type_decoder_f TypeOfError_decode_oer; +oer_type_encoder_f TypeOfError_encode_oer; +per_type_decoder_f TypeOfError_decode_uper; +per_type_encoder_f TypeOfError_encode_uper; +per_type_decoder_f TypeOfError_decode_aper; +per_type_encoder_f TypeOfError_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TypeOfError_H_ */ +#include diff --git a/src/du_app/F1AP/asn/UE-CapabilityRAT-ContainerList.c b/src/du_app/F1AP/asn/UE-CapabilityRAT-ContainerList.c new file mode 100755 index 000000000..838984761 --- /dev/null +++ b/src/du_app/F1AP/asn/UE-CapabilityRAT-ContainerList.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UE-CapabilityRAT-ContainerList.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_UE_CapabilityRAT_ContainerList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_UE_CapabilityRAT_ContainerList = { + "UE-CapabilityRAT-ContainerList", + "UE-CapabilityRAT-ContainerList", + &asn_OP_OCTET_STRING, + asn_DEF_UE_CapabilityRAT_ContainerList_tags_1, + sizeof(asn_DEF_UE_CapabilityRAT_ContainerList_tags_1) + /sizeof(asn_DEF_UE_CapabilityRAT_ContainerList_tags_1[0]), /* 1 */ + asn_DEF_UE_CapabilityRAT_ContainerList_tags_1, /* Same as above */ + sizeof(asn_DEF_UE_CapabilityRAT_ContainerList_tags_1) + /sizeof(asn_DEF_UE_CapabilityRAT_ContainerList_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/UE-CapabilityRAT-ContainerList.h b/src/du_app/F1AP/asn/UE-CapabilityRAT-ContainerList.h new file mode 100755 index 000000000..9481a5ee3 --- /dev/null +++ b/src/du_app/F1AP/asn/UE-CapabilityRAT-ContainerList.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UE_CapabilityRAT_ContainerList_H_ +#define _UE_CapabilityRAT_ContainerList_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UE-CapabilityRAT-ContainerList */ +typedef OCTET_STRING_t UE_CapabilityRAT_ContainerList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UE_CapabilityRAT_ContainerList; +asn_struct_free_f UE_CapabilityRAT_ContainerList_free; +asn_struct_print_f UE_CapabilityRAT_ContainerList_print; +asn_constr_check_f UE_CapabilityRAT_ContainerList_constraint; +ber_type_decoder_f UE_CapabilityRAT_ContainerList_decode_ber; +der_type_encoder_f UE_CapabilityRAT_ContainerList_encode_der; +xer_type_decoder_f UE_CapabilityRAT_ContainerList_decode_xer; +xer_type_encoder_f UE_CapabilityRAT_ContainerList_encode_xer; +oer_type_decoder_f UE_CapabilityRAT_ContainerList_decode_oer; +oer_type_encoder_f UE_CapabilityRAT_ContainerList_encode_oer; +per_type_decoder_f UE_CapabilityRAT_ContainerList_decode_uper; +per_type_encoder_f UE_CapabilityRAT_ContainerList_encode_uper; +per_type_decoder_f UE_CapabilityRAT_ContainerList_decode_aper; +per_type_encoder_f UE_CapabilityRAT_ContainerList_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _UE_CapabilityRAT_ContainerList_H_ */ +#include diff --git a/src/du_app/F1AP/asn/UE-associatedLogicalF1-ConnectionItem.c b/src/du_app/F1AP/asn/UE-associatedLogicalF1-ConnectionItem.c new file mode 100755 index 000000000..e2b7084ad --- /dev/null +++ b/src/du_app/F1AP/asn/UE-associatedLogicalF1-ConnectionItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UE-associatedLogicalF1-ConnectionItem.h" + +#include "ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_UE_associatedLogicalF1_ConnectionItem_1[] = { + { ATF_POINTER, 3, offsetof(struct UE_associatedLogicalF1_ConnectionItem, gNB_CU_UE_F1AP_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNB_CU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gNB-CU-UE-F1AP-ID" + }, + { ATF_POINTER, 2, offsetof(struct UE_associatedLogicalF1_ConnectionItem, gNB_DU_UE_F1AP_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNB_DU_UE_F1AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gNB-DU-UE-F1AP-ID" + }, + { ATF_POINTER, 1, offsetof(struct UE_associatedLogicalF1_ConnectionItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P110, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_UE_associatedLogicalF1_ConnectionItem_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_UE_associatedLogicalF1_ConnectionItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UE_associatedLogicalF1_ConnectionItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB-CU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gNB-DU-UE-F1AP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_UE_associatedLogicalF1_ConnectionItem_specs_1 = { + sizeof(struct UE_associatedLogicalF1_ConnectionItem), + offsetof(struct UE_associatedLogicalF1_ConnectionItem, _asn_ctx), + asn_MAP_UE_associatedLogicalF1_ConnectionItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_UE_associatedLogicalF1_ConnectionItem_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UE_associatedLogicalF1_ConnectionItem = { + "UE-associatedLogicalF1-ConnectionItem", + "UE-associatedLogicalF1-ConnectionItem", + &asn_OP_SEQUENCE, + asn_DEF_UE_associatedLogicalF1_ConnectionItem_tags_1, + sizeof(asn_DEF_UE_associatedLogicalF1_ConnectionItem_tags_1) + /sizeof(asn_DEF_UE_associatedLogicalF1_ConnectionItem_tags_1[0]), /* 1 */ + asn_DEF_UE_associatedLogicalF1_ConnectionItem_tags_1, /* Same as above */ + sizeof(asn_DEF_UE_associatedLogicalF1_ConnectionItem_tags_1) + /sizeof(asn_DEF_UE_associatedLogicalF1_ConnectionItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UE_associatedLogicalF1_ConnectionItem_1, + 3, /* Elements count */ + &asn_SPC_UE_associatedLogicalF1_ConnectionItem_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/UE-associatedLogicalF1-ConnectionItem.h b/src/du_app/F1AP/asn/UE-associatedLogicalF1-ConnectionItem.h new file mode 100755 index 000000000..12fe7923a --- /dev/null +++ b/src/du_app/F1AP/asn/UE-associatedLogicalF1-ConnectionItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UE_associatedLogicalF1_ConnectionItem_H_ +#define _UE_associatedLogicalF1_ConnectionItem_H_ + + +#include + +/* Including external dependencies */ +#include "GNB-CU-UE-F1AP-ID.h" +#include "GNB-DU-UE-F1AP-ID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* UE-associatedLogicalF1-ConnectionItem */ +typedef struct UE_associatedLogicalF1_ConnectionItem { + GNB_CU_UE_F1AP_ID_t *gNB_CU_UE_F1AP_ID; /* OPTIONAL */ + GNB_DU_UE_F1AP_ID_t *gNB_DU_UE_F1AP_ID; /* OPTIONAL */ + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UE_associatedLogicalF1_ConnectionItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UE_associatedLogicalF1_ConnectionItem; + +#ifdef __cplusplus +} +#endif + +#endif /* _UE_associatedLogicalF1_ConnectionItem_H_ */ +#include diff --git a/src/du_app/F1AP/asn/UE-associatedLogicalF1-ConnectionListRes.c b/src/du_app/F1AP/asn/UE-associatedLogicalF1-ConnectionListRes.c new file mode 100755 index 000000000..835bb5153 --- /dev/null +++ b/src/du_app/F1AP/asn/UE-associatedLogicalF1-ConnectionListRes.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UE-associatedLogicalF1-ConnectionListRes.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_UE_associatedLogicalF1_ConnectionListRes_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65536)) */}; +asn_per_constraints_t asn_PER_type_UE_associatedLogicalF1_ConnectionListRes_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, -1, 1, 65536 } /* (SIZE(1..65536)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_UE_associatedLogicalF1_ConnectionListRes_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_UE_associatedLogicalF1_ConnectionListRes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_UE_associatedLogicalF1_ConnectionListRes_specs_1 = { + sizeof(struct UE_associatedLogicalF1_ConnectionListRes), + offsetof(struct UE_associatedLogicalF1_ConnectionListRes, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_UE_associatedLogicalF1_ConnectionListRes = { + "UE-associatedLogicalF1-ConnectionListRes", + "UE-associatedLogicalF1-ConnectionListRes", + &asn_OP_SEQUENCE_OF, + asn_DEF_UE_associatedLogicalF1_ConnectionListRes_tags_1, + sizeof(asn_DEF_UE_associatedLogicalF1_ConnectionListRes_tags_1) + /sizeof(asn_DEF_UE_associatedLogicalF1_ConnectionListRes_tags_1[0]), /* 1 */ + asn_DEF_UE_associatedLogicalF1_ConnectionListRes_tags_1, /* Same as above */ + sizeof(asn_DEF_UE_associatedLogicalF1_ConnectionListRes_tags_1) + /sizeof(asn_DEF_UE_associatedLogicalF1_ConnectionListRes_tags_1[0]), /* 1 */ + { &asn_OER_type_UE_associatedLogicalF1_ConnectionListRes_constr_1, &asn_PER_type_UE_associatedLogicalF1_ConnectionListRes_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_UE_associatedLogicalF1_ConnectionListRes_1, + 1, /* Single element */ + &asn_SPC_UE_associatedLogicalF1_ConnectionListRes_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/UE-associatedLogicalF1-ConnectionListRes.h b/src/du_app/F1AP/asn/UE-associatedLogicalF1-ConnectionListRes.h new file mode 100755 index 000000000..180f5647f --- /dev/null +++ b/src/du_app/F1AP/asn/UE-associatedLogicalF1-ConnectionListRes.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UE_associatedLogicalF1_ConnectionListRes_H_ +#define _UE_associatedLogicalF1_ConnectionListRes_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* UE-associatedLogicalF1-ConnectionListRes */ +typedef struct UE_associatedLogicalF1_ConnectionListRes { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UE_associatedLogicalF1_ConnectionListRes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UE_associatedLogicalF1_ConnectionListRes; +extern asn_SET_OF_specifics_t asn_SPC_UE_associatedLogicalF1_ConnectionListRes_specs_1; +extern asn_TYPE_member_t asn_MBR_UE_associatedLogicalF1_ConnectionListRes_1[1]; +extern asn_per_constraints_t asn_PER_type_UE_associatedLogicalF1_ConnectionListRes_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _UE_associatedLogicalF1_ConnectionListRes_H_ */ +#include diff --git a/src/du_app/F1AP/asn/UE-associatedLogicalF1-ConnectionListResAck.c b/src/du_app/F1AP/asn/UE-associatedLogicalF1-ConnectionListResAck.c new file mode 100755 index 000000000..e3a55bc40 --- /dev/null +++ b/src/du_app/F1AP/asn/UE-associatedLogicalF1-ConnectionListResAck.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UE-associatedLogicalF1-ConnectionListResAck.h" + +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_UE_associatedLogicalF1_ConnectionListResAck_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65536)) */}; +static asn_per_constraints_t asn_PER_type_UE_associatedLogicalF1_ConnectionListResAck_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, -1, 1, 65536 } /* (SIZE(1..65536)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_UE_associatedLogicalF1_ConnectionListResAck_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainer_4590P3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_UE_associatedLogicalF1_ConnectionListResAck_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_UE_associatedLogicalF1_ConnectionListResAck_specs_1 = { + sizeof(struct UE_associatedLogicalF1_ConnectionListResAck), + offsetof(struct UE_associatedLogicalF1_ConnectionListResAck, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_UE_associatedLogicalF1_ConnectionListResAck = { + "UE-associatedLogicalF1-ConnectionListResAck", + "UE-associatedLogicalF1-ConnectionListResAck", + &asn_OP_SEQUENCE_OF, + asn_DEF_UE_associatedLogicalF1_ConnectionListResAck_tags_1, + sizeof(asn_DEF_UE_associatedLogicalF1_ConnectionListResAck_tags_1) + /sizeof(asn_DEF_UE_associatedLogicalF1_ConnectionListResAck_tags_1[0]), /* 1 */ + asn_DEF_UE_associatedLogicalF1_ConnectionListResAck_tags_1, /* Same as above */ + sizeof(asn_DEF_UE_associatedLogicalF1_ConnectionListResAck_tags_1) + /sizeof(asn_DEF_UE_associatedLogicalF1_ConnectionListResAck_tags_1[0]), /* 1 */ + { &asn_OER_type_UE_associatedLogicalF1_ConnectionListResAck_constr_1, &asn_PER_type_UE_associatedLogicalF1_ConnectionListResAck_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_UE_associatedLogicalF1_ConnectionListResAck_1, + 1, /* Single element */ + &asn_SPC_UE_associatedLogicalF1_ConnectionListResAck_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/UE-associatedLogicalF1-ConnectionListResAck.h b/src/du_app/F1AP/asn/UE-associatedLogicalF1-ConnectionListResAck.h new file mode 100755 index 000000000..5555574c5 --- /dev/null +++ b/src/du_app/F1AP/asn/UE-associatedLogicalF1-ConnectionListResAck.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UE_associatedLogicalF1_ConnectionListResAck_H_ +#define _UE_associatedLogicalF1_ConnectionListResAck_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* UE-associatedLogicalF1-ConnectionListResAck */ +typedef struct UE_associatedLogicalF1_ConnectionListResAck { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UE_associatedLogicalF1_ConnectionListResAck_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UE_associatedLogicalF1_ConnectionListResAck; + +#ifdef __cplusplus +} +#endif + +#endif /* _UE_associatedLogicalF1_ConnectionListResAck_H_ */ +#include diff --git a/src/du_app/F1AP/asn/UEAssistanceInformation.c b/src/du_app/F1AP/asn/UEAssistanceInformation.c new file mode 100755 index 000000000..b668395f1 --- /dev/null +++ b/src/du_app/F1AP/asn/UEAssistanceInformation.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UEAssistanceInformation.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_UEAssistanceInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_UEAssistanceInformation = { + "UEAssistanceInformation", + "UEAssistanceInformation", + &asn_OP_OCTET_STRING, + asn_DEF_UEAssistanceInformation_tags_1, + sizeof(asn_DEF_UEAssistanceInformation_tags_1) + /sizeof(asn_DEF_UEAssistanceInformation_tags_1[0]), /* 1 */ + asn_DEF_UEAssistanceInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_UEAssistanceInformation_tags_1) + /sizeof(asn_DEF_UEAssistanceInformation_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/UEAssistanceInformation.h b/src/du_app/F1AP/asn/UEAssistanceInformation.h new file mode 100755 index 000000000..e077e6387 --- /dev/null +++ b/src/du_app/F1AP/asn/UEAssistanceInformation.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UEAssistanceInformation_H_ +#define _UEAssistanceInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UEAssistanceInformation */ +typedef OCTET_STRING_t UEAssistanceInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEAssistanceInformation; +asn_struct_free_f UEAssistanceInformation_free; +asn_struct_print_f UEAssistanceInformation_print; +asn_constr_check_f UEAssistanceInformation_constraint; +ber_type_decoder_f UEAssistanceInformation_decode_ber; +der_type_encoder_f UEAssistanceInformation_encode_der; +xer_type_decoder_f UEAssistanceInformation_decode_xer; +xer_type_encoder_f UEAssistanceInformation_encode_xer; +oer_type_decoder_f UEAssistanceInformation_decode_oer; +oer_type_encoder_f UEAssistanceInformation_encode_oer; +per_type_decoder_f UEAssistanceInformation_decode_uper; +per_type_encoder_f UEAssistanceInformation_encode_uper; +per_type_decoder_f UEAssistanceInformation_decode_aper; +per_type_encoder_f UEAssistanceInformation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEAssistanceInformation_H_ */ +#include diff --git a/src/du_app/F1AP/asn/UEContextModificationConfirm.c b/src/du_app/F1AP/asn/UEContextModificationConfirm.c new file mode 100755 index 000000000..886791490 --- /dev/null +++ b/src/du_app/F1AP/asn/UEContextModificationConfirm.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UEContextModificationConfirm.h" + +asn_TYPE_member_t asn_MBR_UEContextModificationConfirm_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationConfirm, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P24, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEContextModificationConfirm_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEContextModificationConfirm_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationConfirm_specs_1 = { + sizeof(struct UEContextModificationConfirm), + offsetof(struct UEContextModificationConfirm, _asn_ctx), + asn_MAP_UEContextModificationConfirm_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_UEContextModificationConfirm = { + "UEContextModificationConfirm", + "UEContextModificationConfirm", + &asn_OP_SEQUENCE, + asn_DEF_UEContextModificationConfirm_tags_1, + sizeof(asn_DEF_UEContextModificationConfirm_tags_1) + /sizeof(asn_DEF_UEContextModificationConfirm_tags_1[0]), /* 1 */ + asn_DEF_UEContextModificationConfirm_tags_1, /* Same as above */ + sizeof(asn_DEF_UEContextModificationConfirm_tags_1) + /sizeof(asn_DEF_UEContextModificationConfirm_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEContextModificationConfirm_1, + 1, /* Elements count */ + &asn_SPC_UEContextModificationConfirm_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/UEContextModificationConfirm.h b/src/du_app/F1AP/asn/UEContextModificationConfirm.h new file mode 100755 index 000000000..5e047fcc9 --- /dev/null +++ b/src/du_app/F1AP/asn/UEContextModificationConfirm.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UEContextModificationConfirm_H_ +#define _UEContextModificationConfirm_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UEContextModificationConfirm */ +typedef struct UEContextModificationConfirm { + ProtocolIE_Container_4587P24_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEContextModificationConfirm_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEContextModificationConfirm; +extern asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationConfirm_specs_1; +extern asn_TYPE_member_t asn_MBR_UEContextModificationConfirm_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEContextModificationConfirm_H_ */ +#include diff --git a/src/du_app/F1AP/asn/UEContextModificationFailure.c b/src/du_app/F1AP/asn/UEContextModificationFailure.c new file mode 100755 index 000000000..8a4040a5c --- /dev/null +++ b/src/du_app/F1AP/asn/UEContextModificationFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UEContextModificationFailure.h" + +asn_TYPE_member_t asn_MBR_UEContextModificationFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationFailure, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEContextModificationFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEContextModificationFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationFailure_specs_1 = { + sizeof(struct UEContextModificationFailure), + offsetof(struct UEContextModificationFailure, _asn_ctx), + asn_MAP_UEContextModificationFailure_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_UEContextModificationFailure = { + "UEContextModificationFailure", + "UEContextModificationFailure", + &asn_OP_SEQUENCE, + asn_DEF_UEContextModificationFailure_tags_1, + sizeof(asn_DEF_UEContextModificationFailure_tags_1) + /sizeof(asn_DEF_UEContextModificationFailure_tags_1[0]), /* 1 */ + asn_DEF_UEContextModificationFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_UEContextModificationFailure_tags_1) + /sizeof(asn_DEF_UEContextModificationFailure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEContextModificationFailure_1, + 1, /* Elements count */ + &asn_SPC_UEContextModificationFailure_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/UEContextModificationFailure.h b/src/du_app/F1AP/asn/UEContextModificationFailure.h new file mode 100755 index 000000000..285b6b68b --- /dev/null +++ b/src/du_app/F1AP/asn/UEContextModificationFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UEContextModificationFailure_H_ +#define _UEContextModificationFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UEContextModificationFailure */ +typedef struct UEContextModificationFailure { + ProtocolIE_Container_4587P22_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEContextModificationFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEContextModificationFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_UEContextModificationFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEContextModificationFailure_H_ */ +#include diff --git a/src/du_app/F1AP/asn/UEContextModificationRefuse.c b/src/du_app/F1AP/asn/UEContextModificationRefuse.c new file mode 100755 index 000000000..d8282ed13 --- /dev/null +++ b/src/du_app/F1AP/asn/UEContextModificationRefuse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UEContextModificationRefuse.h" + +asn_TYPE_member_t asn_MBR_UEContextModificationRefuse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRefuse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P25, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEContextModificationRefuse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEContextModificationRefuse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationRefuse_specs_1 = { + sizeof(struct UEContextModificationRefuse), + offsetof(struct UEContextModificationRefuse, _asn_ctx), + asn_MAP_UEContextModificationRefuse_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_UEContextModificationRefuse = { + "UEContextModificationRefuse", + "UEContextModificationRefuse", + &asn_OP_SEQUENCE, + asn_DEF_UEContextModificationRefuse_tags_1, + sizeof(asn_DEF_UEContextModificationRefuse_tags_1) + /sizeof(asn_DEF_UEContextModificationRefuse_tags_1[0]), /* 1 */ + asn_DEF_UEContextModificationRefuse_tags_1, /* Same as above */ + sizeof(asn_DEF_UEContextModificationRefuse_tags_1) + /sizeof(asn_DEF_UEContextModificationRefuse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEContextModificationRefuse_1, + 1, /* Elements count */ + &asn_SPC_UEContextModificationRefuse_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/UEContextModificationRefuse.h b/src/du_app/F1AP/asn/UEContextModificationRefuse.h new file mode 100755 index 000000000..219231d79 --- /dev/null +++ b/src/du_app/F1AP/asn/UEContextModificationRefuse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UEContextModificationRefuse_H_ +#define _UEContextModificationRefuse_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UEContextModificationRefuse */ +typedef struct UEContextModificationRefuse { + ProtocolIE_Container_4587P25_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEContextModificationRefuse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEContextModificationRefuse; +extern asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationRefuse_specs_1; +extern asn_TYPE_member_t asn_MBR_UEContextModificationRefuse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEContextModificationRefuse_H_ */ +#include diff --git a/src/du_app/F1AP/asn/UEContextModificationRequest.c b/src/du_app/F1AP/asn/UEContextModificationRequest.c new file mode 100755 index 000000000..b7618d49a --- /dev/null +++ b/src/du_app/F1AP/asn/UEContextModificationRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UEContextModificationRequest.h" + +asn_TYPE_member_t asn_MBR_UEContextModificationRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEContextModificationRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEContextModificationRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationRequest_specs_1 = { + sizeof(struct UEContextModificationRequest), + offsetof(struct UEContextModificationRequest, _asn_ctx), + asn_MAP_UEContextModificationRequest_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_UEContextModificationRequest = { + "UEContextModificationRequest", + "UEContextModificationRequest", + &asn_OP_SEQUENCE, + asn_DEF_UEContextModificationRequest_tags_1, + sizeof(asn_DEF_UEContextModificationRequest_tags_1) + /sizeof(asn_DEF_UEContextModificationRequest_tags_1[0]), /* 1 */ + asn_DEF_UEContextModificationRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_UEContextModificationRequest_tags_1) + /sizeof(asn_DEF_UEContextModificationRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEContextModificationRequest_1, + 1, /* Elements count */ + &asn_SPC_UEContextModificationRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/UEContextModificationRequest.h b/src/du_app/F1AP/asn/UEContextModificationRequest.h new file mode 100755 index 000000000..a10236f38 --- /dev/null +++ b/src/du_app/F1AP/asn/UEContextModificationRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UEContextModificationRequest_H_ +#define _UEContextModificationRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UEContextModificationRequest */ +typedef struct UEContextModificationRequest { + ProtocolIE_Container_4587P20_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEContextModificationRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEContextModificationRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_UEContextModificationRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEContextModificationRequest_H_ */ +#include diff --git a/src/du_app/F1AP/asn/UEContextModificationRequired.c b/src/du_app/F1AP/asn/UEContextModificationRequired.c new file mode 100755 index 000000000..f109b58fa --- /dev/null +++ b/src/du_app/F1AP/asn/UEContextModificationRequired.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UEContextModificationRequired.h" + +asn_TYPE_member_t asn_MBR_UEContextModificationRequired_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationRequired, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEContextModificationRequired_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEContextModificationRequired_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationRequired_specs_1 = { + sizeof(struct UEContextModificationRequired), + offsetof(struct UEContextModificationRequired, _asn_ctx), + asn_MAP_UEContextModificationRequired_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_UEContextModificationRequired = { + "UEContextModificationRequired", + "UEContextModificationRequired", + &asn_OP_SEQUENCE, + asn_DEF_UEContextModificationRequired_tags_1, + sizeof(asn_DEF_UEContextModificationRequired_tags_1) + /sizeof(asn_DEF_UEContextModificationRequired_tags_1[0]), /* 1 */ + asn_DEF_UEContextModificationRequired_tags_1, /* Same as above */ + sizeof(asn_DEF_UEContextModificationRequired_tags_1) + /sizeof(asn_DEF_UEContextModificationRequired_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEContextModificationRequired_1, + 1, /* Elements count */ + &asn_SPC_UEContextModificationRequired_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/UEContextModificationRequired.h b/src/du_app/F1AP/asn/UEContextModificationRequired.h new file mode 100755 index 000000000..734bfa58d --- /dev/null +++ b/src/du_app/F1AP/asn/UEContextModificationRequired.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UEContextModificationRequired_H_ +#define _UEContextModificationRequired_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UEContextModificationRequired */ +typedef struct UEContextModificationRequired { + ProtocolIE_Container_4587P23_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEContextModificationRequired_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEContextModificationRequired; +extern asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationRequired_specs_1; +extern asn_TYPE_member_t asn_MBR_UEContextModificationRequired_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEContextModificationRequired_H_ */ +#include diff --git a/src/du_app/F1AP/asn/UEContextModificationResponse.c b/src/du_app/F1AP/asn/UEContextModificationResponse.c new file mode 100755 index 000000000..d7fd4fd9c --- /dev/null +++ b/src/du_app/F1AP/asn/UEContextModificationResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UEContextModificationResponse.h" + +asn_TYPE_member_t asn_MBR_UEContextModificationResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextModificationResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEContextModificationResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEContextModificationResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationResponse_specs_1 = { + sizeof(struct UEContextModificationResponse), + offsetof(struct UEContextModificationResponse, _asn_ctx), + asn_MAP_UEContextModificationResponse_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_UEContextModificationResponse = { + "UEContextModificationResponse", + "UEContextModificationResponse", + &asn_OP_SEQUENCE, + asn_DEF_UEContextModificationResponse_tags_1, + sizeof(asn_DEF_UEContextModificationResponse_tags_1) + /sizeof(asn_DEF_UEContextModificationResponse_tags_1[0]), /* 1 */ + asn_DEF_UEContextModificationResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_UEContextModificationResponse_tags_1) + /sizeof(asn_DEF_UEContextModificationResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEContextModificationResponse_1, + 1, /* Elements count */ + &asn_SPC_UEContextModificationResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/UEContextModificationResponse.h b/src/du_app/F1AP/asn/UEContextModificationResponse.h new file mode 100755 index 000000000..b4de97c12 --- /dev/null +++ b/src/du_app/F1AP/asn/UEContextModificationResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UEContextModificationResponse_H_ +#define _UEContextModificationResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UEContextModificationResponse */ +typedef struct UEContextModificationResponse { + ProtocolIE_Container_4587P21_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEContextModificationResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEContextModificationResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_UEContextModificationResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEContextModificationResponse_H_ */ +#include diff --git a/src/du_app/F1AP/asn/UEContextReleaseCommand.c b/src/du_app/F1AP/asn/UEContextReleaseCommand.c new file mode 100755 index 000000000..a2e5f0f41 --- /dev/null +++ b/src/du_app/F1AP/asn/UEContextReleaseCommand.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UEContextReleaseCommand.h" + +asn_TYPE_member_t asn_MBR_UEContextReleaseCommand_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextReleaseCommand, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEContextReleaseCommand_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEContextReleaseCommand_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEContextReleaseCommand_specs_1 = { + sizeof(struct UEContextReleaseCommand), + offsetof(struct UEContextReleaseCommand, _asn_ctx), + asn_MAP_UEContextReleaseCommand_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_UEContextReleaseCommand = { + "UEContextReleaseCommand", + "UEContextReleaseCommand", + &asn_OP_SEQUENCE, + asn_DEF_UEContextReleaseCommand_tags_1, + sizeof(asn_DEF_UEContextReleaseCommand_tags_1) + /sizeof(asn_DEF_UEContextReleaseCommand_tags_1[0]), /* 1 */ + asn_DEF_UEContextReleaseCommand_tags_1, /* Same as above */ + sizeof(asn_DEF_UEContextReleaseCommand_tags_1) + /sizeof(asn_DEF_UEContextReleaseCommand_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEContextReleaseCommand_1, + 1, /* Elements count */ + &asn_SPC_UEContextReleaseCommand_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/UEContextReleaseCommand.h b/src/du_app/F1AP/asn/UEContextReleaseCommand.h new file mode 100755 index 000000000..07f7a5a24 --- /dev/null +++ b/src/du_app/F1AP/asn/UEContextReleaseCommand.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UEContextReleaseCommand_H_ +#define _UEContextReleaseCommand_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UEContextReleaseCommand */ +typedef struct UEContextReleaseCommand { + ProtocolIE_Container_4587P18_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEContextReleaseCommand_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEContextReleaseCommand; +extern asn_SEQUENCE_specifics_t asn_SPC_UEContextReleaseCommand_specs_1; +extern asn_TYPE_member_t asn_MBR_UEContextReleaseCommand_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEContextReleaseCommand_H_ */ +#include diff --git a/src/du_app/F1AP/asn/UEContextReleaseComplete.c b/src/du_app/F1AP/asn/UEContextReleaseComplete.c new file mode 100755 index 000000000..af754a8d6 --- /dev/null +++ b/src/du_app/F1AP/asn/UEContextReleaseComplete.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UEContextReleaseComplete.h" + +asn_TYPE_member_t asn_MBR_UEContextReleaseComplete_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextReleaseComplete, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEContextReleaseComplete_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEContextReleaseComplete_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEContextReleaseComplete_specs_1 = { + sizeof(struct UEContextReleaseComplete), + offsetof(struct UEContextReleaseComplete, _asn_ctx), + asn_MAP_UEContextReleaseComplete_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_UEContextReleaseComplete = { + "UEContextReleaseComplete", + "UEContextReleaseComplete", + &asn_OP_SEQUENCE, + asn_DEF_UEContextReleaseComplete_tags_1, + sizeof(asn_DEF_UEContextReleaseComplete_tags_1) + /sizeof(asn_DEF_UEContextReleaseComplete_tags_1[0]), /* 1 */ + asn_DEF_UEContextReleaseComplete_tags_1, /* Same as above */ + sizeof(asn_DEF_UEContextReleaseComplete_tags_1) + /sizeof(asn_DEF_UEContextReleaseComplete_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEContextReleaseComplete_1, + 1, /* Elements count */ + &asn_SPC_UEContextReleaseComplete_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/UEContextReleaseComplete.h b/src/du_app/F1AP/asn/UEContextReleaseComplete.h new file mode 100755 index 000000000..1a57d3b0f --- /dev/null +++ b/src/du_app/F1AP/asn/UEContextReleaseComplete.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UEContextReleaseComplete_H_ +#define _UEContextReleaseComplete_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UEContextReleaseComplete */ +typedef struct UEContextReleaseComplete { + ProtocolIE_Container_4587P19_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEContextReleaseComplete_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEContextReleaseComplete; +extern asn_SEQUENCE_specifics_t asn_SPC_UEContextReleaseComplete_specs_1; +extern asn_TYPE_member_t asn_MBR_UEContextReleaseComplete_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEContextReleaseComplete_H_ */ +#include diff --git a/src/du_app/F1AP/asn/UEContextReleaseRequest.c b/src/du_app/F1AP/asn/UEContextReleaseRequest.c new file mode 100755 index 000000000..721e13f96 --- /dev/null +++ b/src/du_app/F1AP/asn/UEContextReleaseRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UEContextReleaseRequest.h" + +asn_TYPE_member_t asn_MBR_UEContextReleaseRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextReleaseRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEContextReleaseRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEContextReleaseRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEContextReleaseRequest_specs_1 = { + sizeof(struct UEContextReleaseRequest), + offsetof(struct UEContextReleaseRequest, _asn_ctx), + asn_MAP_UEContextReleaseRequest_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_UEContextReleaseRequest = { + "UEContextReleaseRequest", + "UEContextReleaseRequest", + &asn_OP_SEQUENCE, + asn_DEF_UEContextReleaseRequest_tags_1, + sizeof(asn_DEF_UEContextReleaseRequest_tags_1) + /sizeof(asn_DEF_UEContextReleaseRequest_tags_1[0]), /* 1 */ + asn_DEF_UEContextReleaseRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_UEContextReleaseRequest_tags_1) + /sizeof(asn_DEF_UEContextReleaseRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEContextReleaseRequest_1, + 1, /* Elements count */ + &asn_SPC_UEContextReleaseRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/UEContextReleaseRequest.h b/src/du_app/F1AP/asn/UEContextReleaseRequest.h new file mode 100755 index 000000000..51e35027b --- /dev/null +++ b/src/du_app/F1AP/asn/UEContextReleaseRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UEContextReleaseRequest_H_ +#define _UEContextReleaseRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UEContextReleaseRequest */ +typedef struct UEContextReleaseRequest { + ProtocolIE_Container_4587P17_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEContextReleaseRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEContextReleaseRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_UEContextReleaseRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_UEContextReleaseRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEContextReleaseRequest_H_ */ +#include diff --git a/src/du_app/F1AP/asn/UEContextSetupFailure.c b/src/du_app/F1AP/asn/UEContextSetupFailure.c new file mode 100755 index 000000000..b071bec72 --- /dev/null +++ b/src/du_app/F1AP/asn/UEContextSetupFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UEContextSetupFailure.h" + +asn_TYPE_member_t asn_MBR_UEContextSetupFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupFailure, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEContextSetupFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEContextSetupFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEContextSetupFailure_specs_1 = { + sizeof(struct UEContextSetupFailure), + offsetof(struct UEContextSetupFailure, _asn_ctx), + asn_MAP_UEContextSetupFailure_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_UEContextSetupFailure = { + "UEContextSetupFailure", + "UEContextSetupFailure", + &asn_OP_SEQUENCE, + asn_DEF_UEContextSetupFailure_tags_1, + sizeof(asn_DEF_UEContextSetupFailure_tags_1) + /sizeof(asn_DEF_UEContextSetupFailure_tags_1[0]), /* 1 */ + asn_DEF_UEContextSetupFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_UEContextSetupFailure_tags_1) + /sizeof(asn_DEF_UEContextSetupFailure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEContextSetupFailure_1, + 1, /* Elements count */ + &asn_SPC_UEContextSetupFailure_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/UEContextSetupFailure.h b/src/du_app/F1AP/asn/UEContextSetupFailure.h new file mode 100755 index 000000000..36a5a45ac --- /dev/null +++ b/src/du_app/F1AP/asn/UEContextSetupFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UEContextSetupFailure_H_ +#define _UEContextSetupFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UEContextSetupFailure */ +typedef struct UEContextSetupFailure { + ProtocolIE_Container_4587P16_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEContextSetupFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEContextSetupFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_UEContextSetupFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_UEContextSetupFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEContextSetupFailure_H_ */ +#include diff --git a/src/du_app/F1AP/asn/UEContextSetupRequest.c b/src/du_app/F1AP/asn/UEContextSetupRequest.c new file mode 100755 index 000000000..56c67f7bf --- /dev/null +++ b/src/du_app/F1AP/asn/UEContextSetupRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UEContextSetupRequest.h" + +asn_TYPE_member_t asn_MBR_UEContextSetupRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEContextSetupRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEContextSetupRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEContextSetupRequest_specs_1 = { + sizeof(struct UEContextSetupRequest), + offsetof(struct UEContextSetupRequest, _asn_ctx), + asn_MAP_UEContextSetupRequest_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_UEContextSetupRequest = { + "UEContextSetupRequest", + "UEContextSetupRequest", + &asn_OP_SEQUENCE, + asn_DEF_UEContextSetupRequest_tags_1, + sizeof(asn_DEF_UEContextSetupRequest_tags_1) + /sizeof(asn_DEF_UEContextSetupRequest_tags_1[0]), /* 1 */ + asn_DEF_UEContextSetupRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_UEContextSetupRequest_tags_1) + /sizeof(asn_DEF_UEContextSetupRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEContextSetupRequest_1, + 1, /* Elements count */ + &asn_SPC_UEContextSetupRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/UEContextSetupRequest.h b/src/du_app/F1AP/asn/UEContextSetupRequest.h new file mode 100755 index 000000000..14da493f2 --- /dev/null +++ b/src/du_app/F1AP/asn/UEContextSetupRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UEContextSetupRequest_H_ +#define _UEContextSetupRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UEContextSetupRequest */ +typedef struct UEContextSetupRequest { + ProtocolIE_Container_4587P14_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEContextSetupRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEContextSetupRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_UEContextSetupRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_UEContextSetupRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEContextSetupRequest_H_ */ +#include diff --git a/src/du_app/F1AP/asn/UEContextSetupResponse.c b/src/du_app/F1AP/asn/UEContextSetupResponse.c new file mode 100755 index 000000000..21710f00d --- /dev/null +++ b/src/du_app/F1AP/asn/UEContextSetupResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UEContextSetupResponse.h" + +asn_TYPE_member_t asn_MBR_UEContextSetupResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEContextSetupResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEContextSetupResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEContextSetupResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEContextSetupResponse_specs_1 = { + sizeof(struct UEContextSetupResponse), + offsetof(struct UEContextSetupResponse, _asn_ctx), + asn_MAP_UEContextSetupResponse_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_UEContextSetupResponse = { + "UEContextSetupResponse", + "UEContextSetupResponse", + &asn_OP_SEQUENCE, + asn_DEF_UEContextSetupResponse_tags_1, + sizeof(asn_DEF_UEContextSetupResponse_tags_1) + /sizeof(asn_DEF_UEContextSetupResponse_tags_1[0]), /* 1 */ + asn_DEF_UEContextSetupResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_UEContextSetupResponse_tags_1) + /sizeof(asn_DEF_UEContextSetupResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEContextSetupResponse_1, + 1, /* Elements count */ + &asn_SPC_UEContextSetupResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/UEContextSetupResponse.h b/src/du_app/F1AP/asn/UEContextSetupResponse.h new file mode 100755 index 000000000..387810da2 --- /dev/null +++ b/src/du_app/F1AP/asn/UEContextSetupResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UEContextSetupResponse_H_ +#define _UEContextSetupResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UEContextSetupResponse */ +typedef struct UEContextSetupResponse { + ProtocolIE_Container_4587P15_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEContextSetupResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEContextSetupResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_UEContextSetupResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_UEContextSetupResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEContextSetupResponse_H_ */ +#include diff --git a/src/du_app/F1AP/asn/UEIdentityIndexValue.c b/src/du_app/F1AP/asn/UEIdentityIndexValue.c new file mode 100755 index 000000000..4a4e166b8 --- /dev/null +++ b/src/du_app/F1AP/asn/UEIdentityIndexValue.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UEIdentityIndexValue.h" + +#include "ProtocolIE-SingleContainer.h" +static int +memb_indexLength10_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 10)) { + /* Constraint 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_indexLength10_constr_2 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +static asn_per_constraints_t asn_PER_memb_indexLength10_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_UEIdentityIndexValue_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_UEIdentityIndexValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_UEIdentityIndexValue_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEIdentityIndexValue, choice.indexLength10), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_indexLength10_constr_2, &asn_PER_memb_indexLength10_constr_2, memb_indexLength10_constraint_1 }, + 0, 0, /* No default value */ + "indexLength10" + }, + { ATF_POINTER, 0, offsetof(struct UEIdentityIndexValue, choice.choice_extension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_SingleContainer_4590P68, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-extension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_UEIdentityIndexValue_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* indexLength10 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* choice-extension */ +}; +static asn_CHOICE_specifics_t asn_SPC_UEIdentityIndexValue_specs_1 = { + sizeof(struct UEIdentityIndexValue), + offsetof(struct UEIdentityIndexValue, _asn_ctx), + offsetof(struct UEIdentityIndexValue, present), + sizeof(((struct UEIdentityIndexValue *)0)->present), + asn_MAP_UEIdentityIndexValue_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_UEIdentityIndexValue = { + "UEIdentityIndexValue", + "UEIdentityIndexValue", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_UEIdentityIndexValue_constr_1, &asn_PER_type_UEIdentityIndexValue_constr_1, CHOICE_constraint }, + asn_MBR_UEIdentityIndexValue_1, + 2, /* Elements count */ + &asn_SPC_UEIdentityIndexValue_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/UEIdentityIndexValue.h b/src/du_app/F1AP/asn/UEIdentityIndexValue.h new file mode 100755 index 000000000..fd9a2231f --- /dev/null +++ b/src/du_app/F1AP/asn/UEIdentityIndexValue.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UEIdentityIndexValue_H_ +#define _UEIdentityIndexValue_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum UEIdentityIndexValue_PR { + UEIdentityIndexValue_PR_NOTHING, /* No components present */ + UEIdentityIndexValue_PR_indexLength10, + UEIdentityIndexValue_PR_choice_extension +} UEIdentityIndexValue_PR; + +/* Forward declarations */ +struct ProtocolIE_SingleContainer; + +/* UEIdentityIndexValue */ +typedef struct UEIdentityIndexValue { + UEIdentityIndexValue_PR present; + union UEIdentityIndexValue_u { + BIT_STRING_t indexLength10; + struct ProtocolIE_SingleContainer *choice_extension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEIdentityIndexValue_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEIdentityIndexValue; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEIdentityIndexValue_H_ */ +#include diff --git a/src/du_app/F1AP/asn/UEInactivityNotification.c b/src/du_app/F1AP/asn/UEInactivityNotification.c new file mode 100755 index 000000000..4ab499192 --- /dev/null +++ b/src/du_app/F1AP/asn/UEInactivityNotification.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UEInactivityNotification.h" + +asn_TYPE_member_t asn_MBR_UEInactivityNotification_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEInactivityNotification, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P30, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEInactivityNotification_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEInactivityNotification_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEInactivityNotification_specs_1 = { + sizeof(struct UEInactivityNotification), + offsetof(struct UEInactivityNotification, _asn_ctx), + asn_MAP_UEInactivityNotification_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_UEInactivityNotification = { + "UEInactivityNotification", + "UEInactivityNotification", + &asn_OP_SEQUENCE, + asn_DEF_UEInactivityNotification_tags_1, + sizeof(asn_DEF_UEInactivityNotification_tags_1) + /sizeof(asn_DEF_UEInactivityNotification_tags_1[0]), /* 1 */ + asn_DEF_UEInactivityNotification_tags_1, /* Same as above */ + sizeof(asn_DEF_UEInactivityNotification_tags_1) + /sizeof(asn_DEF_UEInactivityNotification_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEInactivityNotification_1, + 1, /* Elements count */ + &asn_SPC_UEInactivityNotification_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/UEInactivityNotification.h b/src/du_app/F1AP/asn/UEInactivityNotification.h new file mode 100755 index 000000000..67f9a8b35 --- /dev/null +++ b/src/du_app/F1AP/asn/UEInactivityNotification.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UEInactivityNotification_H_ +#define _UEInactivityNotification_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UEInactivityNotification */ +typedef struct UEInactivityNotification { + ProtocolIE_Container_4587P30_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEInactivityNotification_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEInactivityNotification; +extern asn_SEQUENCE_specifics_t asn_SPC_UEInactivityNotification_specs_1; +extern asn_TYPE_member_t asn_MBR_UEInactivityNotification_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEInactivityNotification_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ULConfiguration.c b/src/du_app/F1AP/asn/ULConfiguration.c new file mode 100755 index 000000000..4b3cf30b8 --- /dev/null +++ b/src/du_app/F1AP/asn/ULConfiguration.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ULConfiguration.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ULConfiguration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ULConfiguration, uLUEConfiguration), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ULUEConfiguration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uLUEConfiguration" + }, + { ATF_POINTER, 1, offsetof(struct ULConfiguration, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P111, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ULConfiguration_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ULConfiguration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ULConfiguration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uLUEConfiguration */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ULConfiguration_specs_1 = { + sizeof(struct ULConfiguration), + offsetof(struct ULConfiguration, _asn_ctx), + asn_MAP_ULConfiguration_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ULConfiguration_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ULConfiguration = { + "ULConfiguration", + "ULConfiguration", + &asn_OP_SEQUENCE, + asn_DEF_ULConfiguration_tags_1, + sizeof(asn_DEF_ULConfiguration_tags_1) + /sizeof(asn_DEF_ULConfiguration_tags_1[0]), /* 1 */ + asn_DEF_ULConfiguration_tags_1, /* Same as above */ + sizeof(asn_DEF_ULConfiguration_tags_1) + /sizeof(asn_DEF_ULConfiguration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ULConfiguration_1, + 2, /* Elements count */ + &asn_SPC_ULConfiguration_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/ULConfiguration.h b/src/du_app/F1AP/asn/ULConfiguration.h new file mode 100755 index 000000000..940b9df11 --- /dev/null +++ b/src/du_app/F1AP/asn/ULConfiguration.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ULConfiguration_H_ +#define _ULConfiguration_H_ + + +#include + +/* Including external dependencies */ +#include "ULUEConfiguration.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* ULConfiguration */ +typedef struct ULConfiguration { + ULUEConfiguration_t uLUEConfiguration; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ULConfiguration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ULConfiguration; +extern asn_SEQUENCE_specifics_t asn_SPC_ULConfiguration_specs_1; +extern asn_TYPE_member_t asn_MBR_ULConfiguration_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ULConfiguration_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ULRRCMessageTransfer.c b/src/du_app/F1AP/asn/ULRRCMessageTransfer.c new file mode 100755 index 000000000..022cf4451 --- /dev/null +++ b/src/du_app/F1AP/asn/ULRRCMessageTransfer.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ULRRCMessageTransfer.h" + +asn_TYPE_member_t asn_MBR_ULRRCMessageTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ULRRCMessageTransfer, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P33, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ULRRCMessageTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ULRRCMessageTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ULRRCMessageTransfer_specs_1 = { + sizeof(struct ULRRCMessageTransfer), + offsetof(struct ULRRCMessageTransfer, _asn_ctx), + asn_MAP_ULRRCMessageTransfer_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_ULRRCMessageTransfer = { + "ULRRCMessageTransfer", + "ULRRCMessageTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ULRRCMessageTransfer_tags_1, + sizeof(asn_DEF_ULRRCMessageTransfer_tags_1) + /sizeof(asn_DEF_ULRRCMessageTransfer_tags_1[0]), /* 1 */ + asn_DEF_ULRRCMessageTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ULRRCMessageTransfer_tags_1) + /sizeof(asn_DEF_ULRRCMessageTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ULRRCMessageTransfer_1, + 1, /* Elements count */ + &asn_SPC_ULRRCMessageTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/ULRRCMessageTransfer.h b/src/du_app/F1AP/asn/ULRRCMessageTransfer.h new file mode 100755 index 000000000..924997c87 --- /dev/null +++ b/src/du_app/F1AP/asn/ULRRCMessageTransfer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ULRRCMessageTransfer_H_ +#define _ULRRCMessageTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ULRRCMessageTransfer */ +typedef struct ULRRCMessageTransfer { + ProtocolIE_Container_4587P33_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ULRRCMessageTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ULRRCMessageTransfer; +extern asn_SEQUENCE_specifics_t asn_SPC_ULRRCMessageTransfer_specs_1; +extern asn_TYPE_member_t asn_MBR_ULRRCMessageTransfer_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ULRRCMessageTransfer_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ULUEConfiguration.c b/src/du_app/F1AP/asn/ULUEConfiguration.c new file mode 100755 index 000000000..641f0ce30 --- /dev/null +++ b/src/du_app/F1AP/asn/ULUEConfiguration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ULUEConfiguration.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ULUEConfiguration_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_ULUEConfiguration_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_ULUEConfiguration_value2enum_1[] = { + { 0, 7, "no-data" }, + { 1, 6, "shared" }, + { 2, 4, "only" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ULUEConfiguration_enum2value_1[] = { + 0, /* no-data(0) */ + 2, /* only(2) */ + 1 /* shared(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ULUEConfiguration_specs_1 = { + asn_MAP_ULUEConfiguration_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ULUEConfiguration_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_ULUEConfiguration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ULUEConfiguration = { + "ULUEConfiguration", + "ULUEConfiguration", + &asn_OP_NativeEnumerated, + asn_DEF_ULUEConfiguration_tags_1, + sizeof(asn_DEF_ULUEConfiguration_tags_1) + /sizeof(asn_DEF_ULUEConfiguration_tags_1[0]), /* 1 */ + asn_DEF_ULUEConfiguration_tags_1, /* Same as above */ + sizeof(asn_DEF_ULUEConfiguration_tags_1) + /sizeof(asn_DEF_ULUEConfiguration_tags_1[0]), /* 1 */ + { &asn_OER_type_ULUEConfiguration_constr_1, &asn_PER_type_ULUEConfiguration_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ULUEConfiguration_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/ULUEConfiguration.h b/src/du_app/F1AP/asn/ULUEConfiguration.h new file mode 100755 index 000000000..8dd6b45d5 --- /dev/null +++ b/src/du_app/F1AP/asn/ULUEConfiguration.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ULUEConfiguration_H_ +#define _ULUEConfiguration_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ULUEConfiguration { + ULUEConfiguration_no_data = 0, + ULUEConfiguration_shared = 1, + ULUEConfiguration_only = 2 + /* + * Enumeration is extensible + */ +} e_ULUEConfiguration; + +/* ULUEConfiguration */ +typedef long ULUEConfiguration_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ULUEConfiguration_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ULUEConfiguration; +extern const asn_INTEGER_specifics_t asn_SPC_ULUEConfiguration_specs_1; +asn_struct_free_f ULUEConfiguration_free; +asn_struct_print_f ULUEConfiguration_print; +asn_constr_check_f ULUEConfiguration_constraint; +ber_type_decoder_f ULUEConfiguration_decode_ber; +der_type_encoder_f ULUEConfiguration_encode_der; +xer_type_decoder_f ULUEConfiguration_decode_xer; +xer_type_encoder_f ULUEConfiguration_encode_xer; +oer_type_decoder_f ULUEConfiguration_decode_oer; +oer_type_encoder_f ULUEConfiguration_encode_oer; +per_type_decoder_f ULUEConfiguration_decode_uper; +per_type_encoder_f ULUEConfiguration_encode_uper; +per_type_decoder_f ULUEConfiguration_decode_aper; +per_type_encoder_f ULUEConfiguration_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ULUEConfiguration_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ULUPTNLInformation-ToBeSetup-Item.c b/src/du_app/F1AP/asn/ULUPTNLInformation-ToBeSetup-Item.c new file mode 100755 index 000000000..194e84f52 --- /dev/null +++ b/src/du_app/F1AP/asn/ULUPTNLInformation-ToBeSetup-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ULUPTNLInformation-ToBeSetup-Item.h" + +#include "ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ULUPTNLInformation_ToBeSetup_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ULUPTNLInformation_ToBeSetup_Item, uLUPTNLInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uLUPTNLInformation" + }, + { ATF_POINTER, 1, offsetof(struct ULUPTNLInformation_ToBeSetup_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolExtensionContainer_4624P112, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ULUPTNLInformation_ToBeSetup_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ULUPTNLInformation_ToBeSetup_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ULUPTNLInformation_ToBeSetup_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uLUPTNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ULUPTNLInformation_ToBeSetup_Item_specs_1 = { + sizeof(struct ULUPTNLInformation_ToBeSetup_Item), + offsetof(struct ULUPTNLInformation_ToBeSetup_Item, _asn_ctx), + asn_MAP_ULUPTNLInformation_ToBeSetup_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ULUPTNLInformation_ToBeSetup_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ULUPTNLInformation_ToBeSetup_Item = { + "ULUPTNLInformation-ToBeSetup-Item", + "ULUPTNLInformation-ToBeSetup-Item", + &asn_OP_SEQUENCE, + asn_DEF_ULUPTNLInformation_ToBeSetup_Item_tags_1, + sizeof(asn_DEF_ULUPTNLInformation_ToBeSetup_Item_tags_1) + /sizeof(asn_DEF_ULUPTNLInformation_ToBeSetup_Item_tags_1[0]), /* 1 */ + asn_DEF_ULUPTNLInformation_ToBeSetup_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ULUPTNLInformation_ToBeSetup_Item_tags_1) + /sizeof(asn_DEF_ULUPTNLInformation_ToBeSetup_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ULUPTNLInformation_ToBeSetup_Item_1, + 2, /* Elements count */ + &asn_SPC_ULUPTNLInformation_ToBeSetup_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/ULUPTNLInformation-ToBeSetup-Item.h b/src/du_app/F1AP/asn/ULUPTNLInformation-ToBeSetup-Item.h new file mode 100755 index 000000000..07da913e2 --- /dev/null +++ b/src/du_app/F1AP/asn/ULUPTNLInformation-ToBeSetup-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ULUPTNLInformation_ToBeSetup_Item_H_ +#define _ULUPTNLInformation_ToBeSetup_Item_H_ + + +#include + +/* Including external dependencies */ +#include "UPTransportLayerInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolExtensionContainer; + +/* ULUPTNLInformation-ToBeSetup-Item */ +typedef struct ULUPTNLInformation_ToBeSetup_Item { + UPTransportLayerInformation_t uLUPTNLInformation; + struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ULUPTNLInformation_ToBeSetup_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ULUPTNLInformation_ToBeSetup_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ULUPTNLInformation_ToBeSetup_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ULUPTNLInformation_ToBeSetup_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ULUPTNLInformation_ToBeSetup_Item_H_ */ +#include diff --git a/src/du_app/F1AP/asn/ULUPTNLInformation-ToBeSetup-List.c b/src/du_app/F1AP/asn/ULUPTNLInformation-ToBeSetup-List.c new file mode 100755 index 000000000..048d50beb --- /dev/null +++ b/src/du_app/F1AP/asn/ULUPTNLInformation-ToBeSetup-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ULUPTNLInformation-ToBeSetup-List.h" + +#include "ULUPTNLInformation-ToBeSetup-Item.h" +static asn_oer_constraints_t asn_OER_type_ULUPTNLInformation_ToBeSetup_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..2)) */}; +asn_per_constraints_t asn_PER_type_ULUPTNLInformation_ToBeSetup_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 1, 1, 1, 2 } /* (SIZE(1..2)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ULUPTNLInformation_ToBeSetup_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ULUPTNLInformation_ToBeSetup_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ULUPTNLInformation_ToBeSetup_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ULUPTNLInformation_ToBeSetup_List_specs_1 = { + sizeof(struct ULUPTNLInformation_ToBeSetup_List), + offsetof(struct ULUPTNLInformation_ToBeSetup_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ULUPTNLInformation_ToBeSetup_List = { + "ULUPTNLInformation-ToBeSetup-List", + "ULUPTNLInformation-ToBeSetup-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_ULUPTNLInformation_ToBeSetup_List_tags_1, + sizeof(asn_DEF_ULUPTNLInformation_ToBeSetup_List_tags_1) + /sizeof(asn_DEF_ULUPTNLInformation_ToBeSetup_List_tags_1[0]), /* 1 */ + asn_DEF_ULUPTNLInformation_ToBeSetup_List_tags_1, /* Same as above */ + sizeof(asn_DEF_ULUPTNLInformation_ToBeSetup_List_tags_1) + /sizeof(asn_DEF_ULUPTNLInformation_ToBeSetup_List_tags_1[0]), /* 1 */ + { &asn_OER_type_ULUPTNLInformation_ToBeSetup_List_constr_1, &asn_PER_type_ULUPTNLInformation_ToBeSetup_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ULUPTNLInformation_ToBeSetup_List_1, + 1, /* Single element */ + &asn_SPC_ULUPTNLInformation_ToBeSetup_List_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/ULUPTNLInformation-ToBeSetup-List.h b/src/du_app/F1AP/asn/ULUPTNLInformation-ToBeSetup-List.h new file mode 100755 index 000000000..434169e07 --- /dev/null +++ b/src/du_app/F1AP/asn/ULUPTNLInformation-ToBeSetup-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ULUPTNLInformation_ToBeSetup_List_H_ +#define _ULUPTNLInformation_ToBeSetup_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ULUPTNLInformation_ToBeSetup_Item; + +/* ULUPTNLInformation-ToBeSetup-List */ +typedef struct ULUPTNLInformation_ToBeSetup_List { + A_SEQUENCE_OF(struct ULUPTNLInformation_ToBeSetup_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ULUPTNLInformation_ToBeSetup_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ULUPTNLInformation_ToBeSetup_List; +extern asn_SET_OF_specifics_t asn_SPC_ULUPTNLInformation_ToBeSetup_List_specs_1; +extern asn_TYPE_member_t asn_MBR_ULUPTNLInformation_ToBeSetup_List_1[1]; +extern asn_per_constraints_t asn_PER_type_ULUPTNLInformation_ToBeSetup_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ULUPTNLInformation_ToBeSetup_List_H_ */ +#include diff --git a/src/du_app/F1AP/asn/UPTransportLayerInformation.c b/src/du_app/F1AP/asn/UPTransportLayerInformation.c new file mode 100755 index 000000000..8410dc2a7 --- /dev/null +++ b/src/du_app/F1AP/asn/UPTransportLayerInformation.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UPTransportLayerInformation.h" + +#include "GTPTunnel.h" +#include "ProtocolIE-SingleContainer.h" +static asn_oer_constraints_t asn_OER_type_UPTransportLayerInformation_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_UPTransportLayerInformation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_UPTransportLayerInformation_1[] = { + { ATF_POINTER, 0, offsetof(struct UPTransportLayerInformation, choice.gTPTunnel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GTPTunnel, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gTPTunnel" + }, + { ATF_POINTER, 0, offsetof(struct UPTransportLayerInformation, choice.choice_extension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_SingleContainer_4590P69, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-extension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_UPTransportLayerInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gTPTunnel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* choice-extension */ +}; +asn_CHOICE_specifics_t asn_SPC_UPTransportLayerInformation_specs_1 = { + sizeof(struct UPTransportLayerInformation), + offsetof(struct UPTransportLayerInformation, _asn_ctx), + offsetof(struct UPTransportLayerInformation, present), + sizeof(((struct UPTransportLayerInformation *)0)->present), + asn_MAP_UPTransportLayerInformation_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_UPTransportLayerInformation = { + "UPTransportLayerInformation", + "UPTransportLayerInformation", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_UPTransportLayerInformation_constr_1, &asn_PER_type_UPTransportLayerInformation_constr_1, CHOICE_constraint }, + asn_MBR_UPTransportLayerInformation_1, + 2, /* Elements count */ + &asn_SPC_UPTransportLayerInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/UPTransportLayerInformation.h b/src/du_app/F1AP/asn/UPTransportLayerInformation.h new file mode 100755 index 000000000..3d8b4865e --- /dev/null +++ b/src/du_app/F1AP/asn/UPTransportLayerInformation.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UPTransportLayerInformation_H_ +#define _UPTransportLayerInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum UPTransportLayerInformation_PR { + UPTransportLayerInformation_PR_NOTHING, /* No components present */ + UPTransportLayerInformation_PR_gTPTunnel, + UPTransportLayerInformation_PR_choice_extension +} UPTransportLayerInformation_PR; + +/* Forward declarations */ +struct GTPTunnel; +struct ProtocolIE_SingleContainer; + +/* UPTransportLayerInformation */ +typedef struct UPTransportLayerInformation { + UPTransportLayerInformation_PR present; + union UPTransportLayerInformation_u { + struct GTPTunnel *gTPTunnel; + struct ProtocolIE_SingleContainer *choice_extension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UPTransportLayerInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UPTransportLayerInformation; +extern asn_CHOICE_specifics_t asn_SPC_UPTransportLayerInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_UPTransportLayerInformation_1[2]; +extern asn_per_constraints_t asn_PER_type_UPTransportLayerInformation_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _UPTransportLayerInformation_H_ */ +#include diff --git a/src/du_app/F1AP/asn/UnsuccessfulOutcome.c b/src/du_app/F1AP/asn/UnsuccessfulOutcome.c new file mode 100755 index 000000000..9f1646232 --- /dev/null +++ b/src/du_app/F1AP/asn/UnsuccessfulOutcome.c @@ -0,0 +1,480 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Descriptions" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UnsuccessfulOutcome.h" + +static const long asn_VAL_1_id_Reset = 0; +static const long asn_VAL_1_reject = 0; +static const long asn_VAL_2_id_F1Setup = 1; +static const long asn_VAL_2_reject = 0; +static const long asn_VAL_3_id_gNBDUConfigurationUpdate = 3; +static const long asn_VAL_3_reject = 0; +static const long asn_VAL_4_id_gNBCUConfigurationUpdate = 4; +static const long asn_VAL_4_reject = 0; +static const long asn_VAL_5_id_UEContextSetup = 5; +static const long asn_VAL_5_reject = 0; +static const long asn_VAL_6_id_UEContextRelease = 6; +static const long asn_VAL_6_reject = 0; +static const long asn_VAL_7_id_UEContextModification = 7; +static const long asn_VAL_7_reject = 0; +static const long asn_VAL_8_id_UEContextModificationRequired = 8; +static const long asn_VAL_8_reject = 0; +static const long asn_VAL_9_id_WriteReplaceWarning = 20; +static const long asn_VAL_9_reject = 0; +static const long asn_VAL_10_id_PWSCancel = 21; +static const long asn_VAL_10_reject = 0; +static const long asn_VAL_11_id_GNBDUResourceCoordination = 16; +static const long asn_VAL_11_reject = 0; +static const long asn_VAL_12_id_ErrorIndication = 2; +static const long asn_VAL_12_ignore = 1; +static const long asn_VAL_13_id_UEContextReleaseRequest = 10; +static const long asn_VAL_13_ignore = 1; +static const long asn_VAL_14_id_DLRRCMessageTransfer = 12; +static const long asn_VAL_14_ignore = 1; +static const long asn_VAL_15_id_ULRRCMessageTransfer = 13; +static const long asn_VAL_15_ignore = 1; +static const long asn_VAL_16_id_UEInactivityNotification = 15; +static const long asn_VAL_16_ignore = 1; +static const long asn_VAL_17_id_privateMessage = 14; +static const long asn_VAL_17_ignore = 1; +static const long asn_VAL_18_id_InitialULRRCMessageTransfer = 11; +static const long asn_VAL_18_ignore = 1; +static const long asn_VAL_19_id_SystemInformationDeliveryCommand = 17; +static const long asn_VAL_19_ignore = 1; +static const long asn_VAL_20_id_Paging = 18; +static const long asn_VAL_20_ignore = 1; +static const long asn_VAL_21_id_Notify = 19; +static const long asn_VAL_21_ignore = 1; +static const long asn_VAL_22_id_PWSRestartIndication = 22; +static const long asn_VAL_22_ignore = 1; +static const long asn_VAL_23_id_PWSFailureIndication = 23; +static const long asn_VAL_23_ignore = 1; +static const long asn_VAL_24_id_GNBDUStatusIndication = 24; +static const long asn_VAL_24_ignore = 1; +static const long asn_VAL_25_id_RRCDeliveryReport = 25; +static const long asn_VAL_25_ignore = 1; +static const asn_ioc_cell_t asn_IOS_F1AP_ELEMENTARY_PROCEDURES_1_rows[] = { + { "&InitiatingMessage", aioc__type, &asn_DEF_Reset }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetAcknowledge }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_1_id_Reset }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_1_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_F1SetupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_F1SetupResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_F1SetupFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_F1Setup }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_GNBDUConfigurationUpdate }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_GNBDUConfigurationUpdateAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_GNBDUConfigurationUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_gNBDUConfigurationUpdate }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_GNBCUConfigurationUpdate }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_GNBCUConfigurationUpdateAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_GNBCUConfigurationUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_gNBCUConfigurationUpdate }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_UEContextSetupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_UEContextSetupResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_UEContextSetupFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_UEContextSetup }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_UEContextReleaseCommand }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_UEContextReleaseComplete }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_UEContextRelease }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_UEContextModificationRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_UEContextModificationResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_UEContextModificationFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_UEContextModification }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_UEContextModificationRequired }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_UEContextModificationConfirm }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_UEContextModificationRefuse }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_UEContextModificationRequired }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_WriteReplaceWarningRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_WriteReplaceWarningResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_WriteReplaceWarning }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_PWSCancelRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_PWSCancelResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_10_id_PWSCancel }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_GNBDUResourceCoordinationRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_GNBDUResourceCoordinationResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_GNBDUResourceCoordination }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_ErrorIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_UEContextReleaseRequest }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_13_id_UEContextReleaseRequest }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_DLRRCMessageTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_14_id_DLRRCMessageTransfer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ULRRCMessageTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_15_id_ULRRCMessageTransfer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_UEInactivityNotification }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_16_id_UEInactivityNotification }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_PrivateMessage }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_17_id_privateMessage }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_17_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_InitialULRRCMessageTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_18_id_InitialULRRCMessageTransfer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_18_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_SystemInformationDeliveryCommand }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_19_id_SystemInformationDeliveryCommand }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_19_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_Paging }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_20_id_Paging }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_20_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_Notify }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_21_id_Notify }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_21_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_PWSRestartIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_22_id_PWSRestartIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_22_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_PWSFailureIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_23_id_PWSFailureIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_GNBDUStatusIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_24_id_GNBDUStatusIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RRCDeliveryReport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_25_id_RRCDeliveryReport }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_25_ignore } +}; +static const asn_ioc_set_t asn_IOS_F1AP_ELEMENTARY_PROCEDURES_1[] = { + { 25, 5, asn_IOS_F1AP_ELEMENTARY_PROCEDURES_1_rows } +}; +static int +memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_UnsuccessfulOutcome_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_F1AP_ELEMENTARY_PROCEDURES_1; + size_t constraining_column = 3; /* &procedureCode */ + size_t for_column = 4; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UnsuccessfulOutcome, procedureCode)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_UnsuccessfulOutcome_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_F1AP_ELEMENTARY_PROCEDURES_1; + size_t constraining_column = 3; /* &procedureCode */ + size_t for_column = 2; /* &UnsuccessfulOutcome */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UnsuccessfulOutcome, procedureCode)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_value_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_oer_constraints_t asn_OER_memb_procedureCode_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_procedureCode_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_value_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.F1SetupFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_F1SetupFailure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "F1SetupFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.GNBDUConfigurationUpdateFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNBDUConfigurationUpdateFailure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNBDUConfigurationUpdateFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.GNBCUConfigurationUpdateFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNBCUConfigurationUpdateFailure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNBCUConfigurationUpdateFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.UEContextSetupFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEContextSetupFailure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEContextSetupFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.UEContextModificationFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEContextModificationFailure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEContextModificationFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.UEContextModificationRefuse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UEContextModificationRefuse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEContextModificationRefuse" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 5 }, /* F1SetupFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 4 }, /* GNBDUConfigurationUpdateFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 3 }, /* GNBCUConfigurationUpdateFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 2 }, /* UEContextSetupFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 1 }, /* UEContextModificationFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 0 } /* UEContextModificationRefuse */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { + sizeof(struct UnsuccessfulOutcome__value), + offsetof(struct UnsuccessfulOutcome__value, _asn_ctx), + offsetof(struct UnsuccessfulOutcome__value, present), + sizeof(((struct UnsuccessfulOutcome__value *)0)->present), + asn_MAP_value_tag2el_4, + 6, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_4 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_4, + 6, /* Elements count */ + &asn_SPC_value_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, procedureCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProcedureCode, + 0, + { &asn_OER_memb_procedureCode_constr_2, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, + 0, 0, /* No default value */ + "procedureCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_UnsuccessfulOutcome_criticality_type, + { &asn_OER_memb_criticality_constr_3, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_4, + select_UnsuccessfulOutcome_value_type, + { &asn_OER_memb_value_constr_4, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_UnsuccessfulOutcome_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UnsuccessfulOutcome_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UnsuccessfulOutcome_specs_1 = { + sizeof(struct UnsuccessfulOutcome), + offsetof(struct UnsuccessfulOutcome, _asn_ctx), + asn_MAP_UnsuccessfulOutcome_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UnsuccessfulOutcome = { + "UnsuccessfulOutcome", + "UnsuccessfulOutcome", + &asn_OP_SEQUENCE, + asn_DEF_UnsuccessfulOutcome_tags_1, + sizeof(asn_DEF_UnsuccessfulOutcome_tags_1) + /sizeof(asn_DEF_UnsuccessfulOutcome_tags_1[0]), /* 1 */ + asn_DEF_UnsuccessfulOutcome_tags_1, /* Same as above */ + sizeof(asn_DEF_UnsuccessfulOutcome_tags_1) + /sizeof(asn_DEF_UnsuccessfulOutcome_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UnsuccessfulOutcome_1, + 3, /* Elements count */ + &asn_SPC_UnsuccessfulOutcome_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/UnsuccessfulOutcome.h b/src/du_app/F1AP/asn/UnsuccessfulOutcome.h new file mode 100755 index 000000000..f9d36aeab --- /dev/null +++ b/src/du_app/F1AP/asn/UnsuccessfulOutcome.h @@ -0,0 +1,113 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Descriptions" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UnsuccessfulOutcome_H_ +#define _UnsuccessfulOutcome_H_ + + +#include + +/* Including external dependencies */ +#include "ProcedureCode.h" +#include "Criticality.h" +#include +#include +#include "Reset.h" +#include "ResetAcknowledge.h" +#include "F1SetupRequest.h" +#include "F1SetupResponse.h" +#include "F1SetupFailure.h" +#include "GNBDUConfigurationUpdate.h" +#include "GNBDUConfigurationUpdateAcknowledge.h" +#include "GNBDUConfigurationUpdateFailure.h" +#include "GNBCUConfigurationUpdate.h" +#include "GNBCUConfigurationUpdateAcknowledge.h" +#include "GNBCUConfigurationUpdateFailure.h" +#include "UEContextSetupRequest.h" +#include "UEContextSetupResponse.h" +#include "UEContextSetupFailure.h" +#include "UEContextReleaseCommand.h" +#include "UEContextReleaseComplete.h" +#include "UEContextModificationRequest.h" +#include "UEContextModificationResponse.h" +#include "UEContextModificationFailure.h" +#include "UEContextModificationRequired.h" +#include "UEContextModificationConfirm.h" +#include "UEContextModificationRefuse.h" +#include "WriteReplaceWarningRequest.h" +#include "WriteReplaceWarningResponse.h" +#include "PWSCancelRequest.h" +#include "PWSCancelResponse.h" +#include "GNBDUResourceCoordinationRequest.h" +#include "GNBDUResourceCoordinationResponse.h" +#include "ErrorIndication.h" +#include "UEContextReleaseRequest.h" +#include "DLRRCMessageTransfer.h" +#include "ULRRCMessageTransfer.h" +#include "UEInactivityNotification.h" +#include "PrivateMessage.h" +#include "InitialULRRCMessageTransfer.h" +#include "SystemInformationDeliveryCommand.h" +#include "Paging.h" +#include "Notify.h" +#include "PWSRestartIndication.h" +#include "PWSFailureIndication.h" +#include "GNBDUStatusIndication.h" +#include "RRCDeliveryReport.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum UnsuccessfulOutcome__value_PR { + UnsuccessfulOutcome__value_PR_NOTHING, /* No components present */ + UnsuccessfulOutcome__value_PR_F1SetupFailure, + UnsuccessfulOutcome__value_PR_GNBDUConfigurationUpdateFailure, + UnsuccessfulOutcome__value_PR_GNBCUConfigurationUpdateFailure, + UnsuccessfulOutcome__value_PR_UEContextSetupFailure, + UnsuccessfulOutcome__value_PR_UEContextModificationFailure, + UnsuccessfulOutcome__value_PR_UEContextModificationRefuse +} UnsuccessfulOutcome__value_PR; + +/* UnsuccessfulOutcome */ +typedef struct UnsuccessfulOutcome { + ProcedureCode_t procedureCode; + Criticality_t criticality; + struct UnsuccessfulOutcome__value { + UnsuccessfulOutcome__value_PR present; + union UnsuccessfulOutcome__value_u { + F1SetupFailure_t F1SetupFailure; + GNBDUConfigurationUpdateFailure_t GNBDUConfigurationUpdateFailure; + GNBCUConfigurationUpdateFailure_t GNBCUConfigurationUpdateFailure; + UEContextSetupFailure_t UEContextSetupFailure; + UEContextModificationFailure_t UEContextModificationFailure; + UEContextModificationRefuse_t UEContextModificationRefuse; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UnsuccessfulOutcome_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UnsuccessfulOutcome; +extern asn_SEQUENCE_specifics_t asn_SPC_UnsuccessfulOutcome_specs_1; +extern asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UnsuccessfulOutcome_H_ */ +#include diff --git a/src/du_app/F1AP/asn/UplinkTxDirectCurrentListInformation.c b/src/du_app/F1AP/asn/UplinkTxDirectCurrentListInformation.c new file mode 100755 index 000000000..bfffa3abe --- /dev/null +++ b/src/du_app/F1AP/asn/UplinkTxDirectCurrentListInformation.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UplinkTxDirectCurrentListInformation.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_UplinkTxDirectCurrentListInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_UplinkTxDirectCurrentListInformation = { + "UplinkTxDirectCurrentListInformation", + "UplinkTxDirectCurrentListInformation", + &asn_OP_OCTET_STRING, + asn_DEF_UplinkTxDirectCurrentListInformation_tags_1, + sizeof(asn_DEF_UplinkTxDirectCurrentListInformation_tags_1) + /sizeof(asn_DEF_UplinkTxDirectCurrentListInformation_tags_1[0]), /* 1 */ + asn_DEF_UplinkTxDirectCurrentListInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_UplinkTxDirectCurrentListInformation_tags_1) + /sizeof(asn_DEF_UplinkTxDirectCurrentListInformation_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/UplinkTxDirectCurrentListInformation.h b/src/du_app/F1AP/asn/UplinkTxDirectCurrentListInformation.h new file mode 100755 index 000000000..60acaf11b --- /dev/null +++ b/src/du_app/F1AP/asn/UplinkTxDirectCurrentListInformation.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-IEs" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UplinkTxDirectCurrentListInformation_H_ +#define _UplinkTxDirectCurrentListInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UplinkTxDirectCurrentListInformation */ +typedef OCTET_STRING_t UplinkTxDirectCurrentListInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UplinkTxDirectCurrentListInformation; +asn_struct_free_f UplinkTxDirectCurrentListInformation_free; +asn_struct_print_f UplinkTxDirectCurrentListInformation_print; +asn_constr_check_f UplinkTxDirectCurrentListInformation_constraint; +ber_type_decoder_f UplinkTxDirectCurrentListInformation_decode_ber; +der_type_encoder_f UplinkTxDirectCurrentListInformation_encode_der; +xer_type_decoder_f UplinkTxDirectCurrentListInformation_decode_xer; +xer_type_encoder_f UplinkTxDirectCurrentListInformation_encode_xer; +oer_type_decoder_f UplinkTxDirectCurrentListInformation_decode_oer; +oer_type_encoder_f UplinkTxDirectCurrentListInformation_encode_oer; +per_type_decoder_f UplinkTxDirectCurrentListInformation_decode_uper; +per_type_encoder_f UplinkTxDirectCurrentListInformation_encode_uper; +per_type_decoder_f UplinkTxDirectCurrentListInformation_decode_aper; +per_type_encoder_f UplinkTxDirectCurrentListInformation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _UplinkTxDirectCurrentListInformation_H_ */ +#include diff --git a/src/du_app/F1AP/asn/WriteReplaceWarningRequest.c b/src/du_app/F1AP/asn/WriteReplaceWarningRequest.c new file mode 100755 index 000000000..dce650629 --- /dev/null +++ b/src/du_app/F1AP/asn/WriteReplaceWarningRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "WriteReplaceWarningRequest.h" + +asn_TYPE_member_t asn_MBR_WriteReplaceWarningRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct WriteReplaceWarningRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P26, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_WriteReplaceWarningRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_WriteReplaceWarningRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_WriteReplaceWarningRequest_specs_1 = { + sizeof(struct WriteReplaceWarningRequest), + offsetof(struct WriteReplaceWarningRequest, _asn_ctx), + asn_MAP_WriteReplaceWarningRequest_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_WriteReplaceWarningRequest = { + "WriteReplaceWarningRequest", + "WriteReplaceWarningRequest", + &asn_OP_SEQUENCE, + asn_DEF_WriteReplaceWarningRequest_tags_1, + sizeof(asn_DEF_WriteReplaceWarningRequest_tags_1) + /sizeof(asn_DEF_WriteReplaceWarningRequest_tags_1[0]), /* 1 */ + asn_DEF_WriteReplaceWarningRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_WriteReplaceWarningRequest_tags_1) + /sizeof(asn_DEF_WriteReplaceWarningRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_WriteReplaceWarningRequest_1, + 1, /* Elements count */ + &asn_SPC_WriteReplaceWarningRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/WriteReplaceWarningRequest.h b/src/du_app/F1AP/asn/WriteReplaceWarningRequest.h new file mode 100755 index 000000000..a649f5863 --- /dev/null +++ b/src/du_app/F1AP/asn/WriteReplaceWarningRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _WriteReplaceWarningRequest_H_ +#define _WriteReplaceWarningRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* WriteReplaceWarningRequest */ +typedef struct WriteReplaceWarningRequest { + ProtocolIE_Container_4587P26_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} WriteReplaceWarningRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WriteReplaceWarningRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_WriteReplaceWarningRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_WriteReplaceWarningRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _WriteReplaceWarningRequest_H_ */ +#include diff --git a/src/du_app/F1AP/asn/WriteReplaceWarningResponse.c b/src/du_app/F1AP/asn/WriteReplaceWarningResponse.c new file mode 100755 index 000000000..1cff315a3 --- /dev/null +++ b/src/du_app/F1AP/asn/WriteReplaceWarningResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "WriteReplaceWarningResponse.h" + +asn_TYPE_member_t asn_MBR_WriteReplaceWarningResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct WriteReplaceWarningResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_Container_4587P27, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_WriteReplaceWarningResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_WriteReplaceWarningResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_WriteReplaceWarningResponse_specs_1 = { + sizeof(struct WriteReplaceWarningResponse), + offsetof(struct WriteReplaceWarningResponse, _asn_ctx), + asn_MAP_WriteReplaceWarningResponse_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_WriteReplaceWarningResponse = { + "WriteReplaceWarningResponse", + "WriteReplaceWarningResponse", + &asn_OP_SEQUENCE, + asn_DEF_WriteReplaceWarningResponse_tags_1, + sizeof(asn_DEF_WriteReplaceWarningResponse_tags_1) + /sizeof(asn_DEF_WriteReplaceWarningResponse_tags_1[0]), /* 1 */ + asn_DEF_WriteReplaceWarningResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_WriteReplaceWarningResponse_tags_1) + /sizeof(asn_DEF_WriteReplaceWarningResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_WriteReplaceWarningResponse_1, + 1, /* Elements count */ + &asn_SPC_WriteReplaceWarningResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/du_app/F1AP/asn/WriteReplaceWarningResponse.h b/src/du_app/F1AP/asn/WriteReplaceWarningResponse.h new file mode 100755 index 000000000..38b1354e3 --- /dev/null +++ b/src/du_app/F1AP/asn/WriteReplaceWarningResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "F1AP-PDU-Contents" + * found in "F1.asn1" + * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _WriteReplaceWarningResponse_H_ +#define _WriteReplaceWarningResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* WriteReplaceWarningResponse */ +typedef struct WriteReplaceWarningResponse { + ProtocolIE_Container_4587P27_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} WriteReplaceWarningResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_WriteReplaceWarningResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_WriteReplaceWarningResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_WriteReplaceWarningResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _WriteReplaceWarningResponse_H_ */ +#include diff --git a/src/du_app/F1AP/asn/asn_SEQUENCE_OF.c b/src/du_app/F1AP/asn/asn_SEQUENCE_OF.c new file mode 100755 index 000000000..ec952fc99 --- /dev/null +++ b/src/du_app/F1AP/asn/asn_SEQUENCE_OF.c @@ -0,0 +1,41 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +typedef A_SEQUENCE_OF(void) asn_sequence; + +void +asn_sequence_del(void *asn_sequence_of_x, int number, int _do_free) { + asn_sequence *as = (asn_sequence *)asn_sequence_of_x; + + if(as) { + void *ptr; + int n; + + if(number < 0 || number >= as->count) + return; /* Nothing to delete */ + + if(_do_free && as->free) { + ptr = as->array[number]; + } else { + ptr = 0; + } + + /* + * Shift all elements to the left to hide the gap. + */ + --as->count; + for(n = number; n < as->count; n++) + as->array[n] = as->array[n+1]; + + /* + * Invoke the third-party function only when the state + * of the parent structure is consistent. + */ + if(ptr) as->free(ptr); + } +} + diff --git a/src/du_app/F1AP/asn/asn_SEQUENCE_OF.h b/src/du_app/F1AP/asn/asn_SEQUENCE_OF.h new file mode 100755 index 000000000..e35bc447a --- /dev/null +++ b/src/du_app/F1AP/asn/asn_SEQUENCE_OF.h @@ -0,0 +1,52 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_SEQUENCE_OF_H +#define ASN_SEQUENCE_OF_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * SEQUENCE OF is the same as SET OF with a tiny difference: + * the delete operation preserves the initial order of elements + * and thus MAY operate in non-constant time. + */ +#define A_SEQUENCE_OF(type) A_SET_OF(type) + +#define ASN_SEQUENCE_ADD(headptr, ptr) \ + asn_sequence_add((headptr), (ptr)) + +/*********************************************** + * Implementation of the SEQUENCE OF structure. + */ + +#define asn_sequence_add asn_set_add +#define asn_sequence_empty asn_set_empty + +/* + * Delete the element from the set by its number (base 0). + * This is NOT a constant-time operation. + * The order of elements is preserved. + * If _do_free is given AND the (*free) is initialized, the element + * will be freed using the custom (*free) function as well. + */ +void asn_sequence_del(void *asn_sequence_of_x, int number, int _do_free); + +/* + * Cope with different conversions requirements to/from void in C and C++. + * This is mostly useful for support library. + */ +typedef A_SEQUENCE_OF(void) asn_anonymous_sequence_; +#define _A_SEQUENCE_FROM_VOID(ptr) ((asn_anonymous_sequence_ *)(ptr)) +#define _A_CSEQUENCE_FROM_VOID(ptr) ((const asn_anonymous_sequence_ *)(ptr)) + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_SEQUENCE_OF_H */ diff --git a/src/du_app/F1AP/asn/asn_SET_OF.c b/src/du_app/F1AP/asn/asn_SET_OF.c new file mode 100755 index 000000000..944f2cb8a --- /dev/null +++ b/src/du_app/F1AP/asn/asn_SET_OF.c @@ -0,0 +1,88 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Add another element into the set. + */ +int +asn_set_add(void *asn_set_of_x, void *ptr) { + asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); + + if(as == 0 || ptr == 0) { + errno = EINVAL; /* Invalid arguments */ + return -1; + } + + /* + * Make sure there's enough space to insert an element. + */ + if(as->count == as->size) { + int _newsize = as->size ? (as->size << 1) : 4; + void *_new_arr; + _new_arr = REALLOC(as->array, _newsize * sizeof(as->array[0])); + if(_new_arr) { + as->array = (void **)_new_arr; + as->size = _newsize; + } else { + /* ENOMEM */ + return -1; + } + } + + as->array[as->count++] = ptr; + + return 0; +} + +void +asn_set_del(void *asn_set_of_x, int number, int _do_free) { + asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); + + if(as) { + void *ptr; + if(number < 0 || number >= as->count) + return; + + if(_do_free && as->free) { + ptr = as->array[number]; + } else { + ptr = 0; + } + + as->array[number] = as->array[--as->count]; + + /* + * Invoke the third-party function only when the state + * of the parent structure is consistent. + */ + if(ptr) as->free(ptr); + } +} + +/* + * Free the contents of the set, do not free the set itself. + */ +void +asn_set_empty(void *asn_set_of_x) { + asn_anonymous_set_ *as = _A_SET_FROM_VOID(asn_set_of_x); + + if(as) { + if(as->array) { + if(as->free) { + while(as->count--) + as->free(as->array[as->count]); + } + FREEMEM(as->array); + as->array = 0; + } + as->count = 0; + as->size = 0; + } + +} + diff --git a/src/du_app/F1AP/asn/asn_SET_OF.h b/src/du_app/F1AP/asn/asn_SET_OF.h new file mode 100755 index 000000000..882e1a47d --- /dev/null +++ b/src/du_app/F1AP/asn/asn_SET_OF.h @@ -0,0 +1,72 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_SET_OF_H +#define ASN_SET_OF_H + +#ifdef __cplusplus +#define A_SET_OF(type) \ + struct { \ + type **array; \ + int count; /* Meaningful size */ \ + int size; /* Allocated size */ \ + void (*free)(decltype(*array)); \ + } +#else /* C */ +#define A_SET_OF(type) \ + struct { \ + type **array; \ + int count; /* Meaningful size */ \ + int size; /* Allocated size */ \ + void (*free)(type *); \ + } +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#define ASN_SET_ADD(headptr, ptr) \ + asn_set_add((headptr), (ptr)) + +/******************************************* + * Implementation of the SET OF structure. + */ + +/* + * Add another structure into the set by its pointer. + * RETURN VALUES: + * 0 for success and -1/errno for failure. + */ +int asn_set_add(void *asn_set_of_x, void *ptr); + +/* + * Delete the element from the set by its number (base 0). + * This is a constant-time operation. The order of elements before the + * deleted ones is guaranteed, the order of elements after the deleted + * one is NOT guaranteed. + * If _do_free is given AND the (*free) is initialized, the element + * will be freed using the custom (*free) function as well. + */ +void asn_set_del(void *asn_set_of_x, int number, int _do_free); + +/* + * Empty the contents of the set. Will free the elements, if (*free) is given. + * Will NOT free the set itself. + */ +void asn_set_empty(void *asn_set_of_x); + +/* + * Cope with different conversions requirements to/from void in C and C++. + * This is mostly useful for support library. + */ +typedef A_SET_OF(void) asn_anonymous_set_; +#define _A_SET_FROM_VOID(ptr) ((asn_anonymous_set_ *)(ptr)) +#define _A_CSET_FROM_VOID(ptr) ((const asn_anonymous_set_ *)(ptr)) + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_SET_OF_H */ diff --git a/src/du_app/F1AP/asn/asn_application.c b/src/du_app/F1AP/asn/asn_application.c new file mode 100755 index 000000000..2bff46064 --- /dev/null +++ b/src/du_app/F1AP/asn/asn_application.c @@ -0,0 +1,481 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +static asn_enc_rval_t asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, + const asn_TYPE_descriptor_t *td, + const void *sptr, + asn_app_consume_bytes_f *callback, + void *callback_key); + + +struct callback_count_bytes_key { + asn_app_consume_bytes_f *callback; + void *callback_key; + size_t computed_size; +}; + +/* + * Encoder which just counts bytes that come through it. + */ +static int +callback_count_bytes_cb(const void *data, size_t size, void *keyp) { + struct callback_count_bytes_key *key = keyp; + int ret; + + ret = key->callback(data, size, key->callback_key); + if(ret >= 0) { + key->computed_size += size; + } + + return ret; +} + +struct overrun_encoder_key { + void *buffer; + size_t buffer_size; + size_t computed_size; +}; + +struct dynamic_encoder_key { + void *buffer; + size_t buffer_size; + size_t computed_size; +}; + +struct callback_failure_catch_key { + asn_app_consume_bytes_f *callback; + void *callback_key; + int callback_failed; +}; + +/* + * Encoder which doesn't stop counting bytes + * even if it reaches the end of the buffer. + */ +static int +overrun_encoder_cb(const void *data, size_t size, void *keyp) { + struct overrun_encoder_key *key = keyp; + + if(key->computed_size + size > key->buffer_size) { + /* + * Avoid accident on the next call: + * stop adding bytes to the buffer. + */ + key->buffer_size = 0; + } else { + memcpy((char *)key->buffer + key->computed_size, data, size); + } + key->computed_size += size; + + return 0; +} + +/* + * Encoder which dynamically allocates output, and continues + * to count even if allocation failed. + */ +static int +dynamic_encoder_cb(const void *data, size_t size, void *keyp) { + struct dynamic_encoder_key *key = keyp; + + if(key->buffer) { + if(key->computed_size + size >= key->buffer_size) { + void *p; + size_t new_size = key->buffer_size; + + do { + new_size *= 2; + } while(new_size <= key->computed_size + size); + + p = REALLOC(key->buffer, new_size); + if(p) { + key->buffer = p; + key->buffer_size = new_size; + } else { + FREEMEM(key->buffer); + key->buffer = 0; + key->buffer_size = 0; + key->computed_size += size; + return 0; + } + } + memcpy((char *)key->buffer + key->computed_size, data, size); + } + + key->computed_size += size; + + return 0; +} + +/* + * Encoder which help convert the application level encoder failure into EIO. + */ +static int +callback_failure_catch_cb(const void *data, size_t size, void *keyp) { + struct callback_failure_catch_key *key = keyp; + int ret; + + ret = key->callback(data, size, key->callback_key); + if(ret < 0) { + key->callback_failed = 1; + } + + return ret; +} + +asn_enc_rval_t +asn_encode(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, const asn_TYPE_descriptor_t *td, + const void *sptr, asn_app_consume_bytes_f *callback, void *callback_key) { + struct callback_failure_catch_key cb_key; + asn_enc_rval_t er = {0,0,0}; + + if(!callback) { + errno = EINVAL; + ASN__ENCODE_FAILED; + } + + cb_key.callback = callback; + cb_key.callback_key = callback_key; + cb_key.callback_failed = 0; + + er = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, + callback_failure_catch_cb, &cb_key); + if(cb_key.callback_failed) { + assert(er.encoded == -1); + assert(errno == EBADF); + errno = EIO; + } + + return er; +} + +asn_enc_rval_t +asn_encode_to_buffer(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, + const asn_TYPE_descriptor_t *td, const void *sptr, + void *buffer, size_t buffer_size) { + struct overrun_encoder_key buf_key; + asn_enc_rval_t er = {0,0,0}; + + if(buffer_size > 0 && !buffer) { + errno = EINVAL; + ASN__ENCODE_FAILED; + } + + buf_key.buffer = buffer; + buf_key.buffer_size = buffer_size; + buf_key.computed_size = 0; + + er = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, + overrun_encoder_cb, &buf_key); + + if(er.encoded >= 0 && (size_t)er.encoded != buf_key.computed_size) { + ASN_DEBUG("asn_encode() returned %" ASN_PRI_SSIZE + " yet produced %" ASN_PRI_SIZE " bytes", + er.encoded, buf_key.computed_size); + assert(er.encoded < 0 || (size_t)er.encoded == buf_key.computed_size); + } + + return er; +} + +asn_encode_to_new_buffer_result_t +asn_encode_to_new_buffer(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, + const asn_TYPE_descriptor_t *td, const void *sptr) { + struct dynamic_encoder_key buf_key; + asn_encode_to_new_buffer_result_t res; + + buf_key.buffer_size = 16; + buf_key.buffer = MALLOC(buf_key.buffer_size); + buf_key.computed_size = 0; + + res.result = asn_encode_internal(opt_codec_ctx, syntax, td, sptr, + dynamic_encoder_cb, &buf_key); + + if(res.result.encoded >= 0 + && (size_t)res.result.encoded != buf_key.computed_size) { + ASN_DEBUG("asn_encode() returned %" ASN_PRI_SSIZE + " yet produced %" ASN_PRI_SIZE " bytes", + res.result.encoded, buf_key.computed_size); + assert(res.result.encoded < 0 + || (size_t)res.result.encoded == buf_key.computed_size); + } + + res.buffer = buf_key.buffer; + + /* 0-terminate just in case. */ + if(res.buffer) { + assert(buf_key.computed_size < buf_key.buffer_size); + ((char *)res.buffer)[buf_key.computed_size] = '\0'; + } + + return res; +} + +static asn_enc_rval_t +asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, + const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *callback, void *callback_key) { + asn_enc_rval_t er = {0,0,0}; + enum xer_encoder_flags_e xer_flags = XER_F_CANONICAL; + + (void)opt_codec_ctx; /* Parameters are not checked on encode yet. */ + + if(!td || !sptr) { + errno = EINVAL; + ASN__ENCODE_FAILED; + } + + switch(syntax) { + case ATS_NONSTANDARD_PLAINTEXT: + if(td->op->print_struct) { + struct callback_count_bytes_key cb_key; + cb_key.callback = callback; + cb_key.callback_key = callback_key; + cb_key.computed_size = 0; + if(td->op->print_struct(td, sptr, 1, callback_count_bytes_cb, + &cb_key) + < 0 + || callback_count_bytes_cb("\n", 1, &cb_key) < 0) { + errno = EBADF; /* Structure has incorrect form. */ + er.encoded = -1; + er.failed_type = td; + er.structure_ptr = sptr; + } else { + er.encoded = cb_key.computed_size; + er.failed_type = 0; + er.structure_ptr = 0; + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; + + case ATS_RANDOM: + errno = ENOENT; /* Randomization doesn't make sense on output. */ + ASN__ENCODE_FAILED; + + case ATS_BER: + /* BER is a superset of DER. */ + /* Fall through. */ + case ATS_DER: + if(td->op->der_encoder) { + er = der_encode(td, sptr, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->der_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* DER is not defined for this type. */ + } + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; + case ATS_CER: + errno = ENOENT; /* Transfer syntax is not defined for any type. */ + ASN__ENCODE_FAILED; + +#ifdef ASN_DISABLE_OER_SUPPORT + case ATS_BASIC_OER: + case ATS_CANONICAL_OER: + errno = ENOENT; /* PER is not defined. */ + ASN__ENCODE_FAILED; + break; +#else /* ASN_DISABLE_OER_SUPPORT */ + case ATS_BASIC_OER: + /* CANONICAL-OER is a superset of BASIC-OER. */ + /* Fall through. */ + case ATS_CANONICAL_OER: + if(td->op->oer_encoder) { + er = oer_encode(td, sptr, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->oer_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* OER is not defined for this type. */ + } + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; +#endif /* ASN_DISABLE_OER_SUPPORT */ + +#ifdef ASN_DISABLE_PER_SUPPORT + case ATS_UNALIGNED_BASIC_PER: + case ATS_UNALIGNED_CANONICAL_PER: + case ATS_ALIGNED_BASIC_PER: + case ATS_ALIGNED_CANONICAL_PER: + errno = ENOENT; /* PER is not defined. */ + ASN__ENCODE_FAILED; + break; +#else /* ASN_DISABLE_PER_SUPPORT */ + case ATS_UNALIGNED_BASIC_PER: + /* CANONICAL-UPER is a superset of BASIC-UPER. */ + /* Fall through. */ + case ATS_UNALIGNED_CANONICAL_PER: + if(td->op->uper_encoder) { + er = uper_encode(td, 0, sptr, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->uper_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* UPER is not defined for this type. */ + } + } else { + ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); + if(er.encoded == 0) { + /* Enforce "Complete Encoding" of X.691 #11.1 */ + if(callback("\0", 1, callback_key) < 0) { + errno = EBADF; + ASN__ENCODE_FAILED; + } + er.encoded = 8; /* Exactly 8 zero bits is added. */ + } + /* Convert bits into bytes */ + er.encoded = (er.encoded + 7) >> 3; + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; + case ATS_ALIGNED_BASIC_PER: + /* CANONICAL-APER is a superset of BASIC-APER. */ + /* Fall through. */ + case ATS_ALIGNED_CANONICAL_PER: + if(td->op->aper_encoder) { + er = aper_encode(td, 0, sptr, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->aper_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* APER is not defined for this type. */ + } + } else { + ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); + if(er.encoded == 0) { + /* Enforce "Complete Encoding" of X.691 #11.1 */ + if(callback("\0", 1, callback_key) < 0) { + errno = EBADF; + ASN__ENCODE_FAILED; + } + er.encoded = 8; /* Exactly 8 zero bits is added. */ + } + /* Convert bits into bytes */ + er.encoded = (er.encoded + 7) >> 3; + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; +#endif /* ASN_DISABLE_PER_SUPPORT */ + + case ATS_BASIC_XER: + /* CANONICAL-XER is a superset of BASIC-XER. */ + xer_flags &= ~XER_F_CANONICAL; + xer_flags |= XER_F_BASIC; + /* Fall through. */ + case ATS_CANONICAL_XER: + if(td->op->xer_encoder) { + er = xer_encode(td, sptr, xer_flags, callback, callback_key); + if(er.encoded == -1) { + if(er.failed_type && er.failed_type->op->xer_encoder) { + errno = EBADF; /* Structure has incorrect form. */ + } else { + errno = ENOENT; /* XER is not defined for this type. */ + } + } + } else { + errno = ENOENT; /* Transfer syntax is not defined for this type. */ + ASN__ENCODE_FAILED; + } + break; + + default: + errno = ENOENT; + ASN__ENCODE_FAILED; + } + + return er; +} + +asn_dec_rval_t +asn_decode(const asn_codec_ctx_t *opt_codec_ctx, + enum asn_transfer_syntax syntax, const asn_TYPE_descriptor_t *td, + void **sptr, const void *buffer, size_t size) { + if(!td || !td->op || !sptr || (size && !buffer)) { + ASN__DECODE_FAILED; + } + + switch(syntax) { + case ATS_CER: + case ATS_NONSTANDARD_PLAINTEXT: + default: + errno = ENOENT; + ASN__DECODE_FAILED; + + case ATS_RANDOM: + if(!td->op->random_fill) { + ASN__DECODE_FAILED; + } else { + if(asn_random_fill(td, sptr, 16000) == 0) { + asn_dec_rval_t ret = {RC_OK, 0}; + return ret; + } else { + ASN__DECODE_FAILED; + } + } + break; + + case ATS_DER: + case ATS_BER: + return ber_decode(opt_codec_ctx, td, sptr, buffer, size); + + case ATS_BASIC_OER: + case ATS_CANONICAL_OER: +#ifdef ASN_DISABLE_OER_SUPPORT + errno = ENOENT; + ASN__DECODE_FAILED; +#else + return oer_decode(opt_codec_ctx, td, sptr, buffer, size); +#endif + + case ATS_UNALIGNED_BASIC_PER: + case ATS_UNALIGNED_CANONICAL_PER: +#ifdef ASN_DISABLE_PER_SUPPORT + errno = ENOENT; + ASN__DECODE_FAILED; +#else + return uper_decode_complete(opt_codec_ctx, td, sptr, buffer, size); +#endif + + case ATS_ALIGNED_BASIC_PER: + case ATS_ALIGNED_CANONICAL_PER: +#ifdef ASN_DISABLE_PER_SUPPORT + errno = ENOENT; + ASN__DECODE_FAILED; +#else + return aper_decode_complete(opt_codec_ctx, td, sptr, buffer, size); +#endif + + case ATS_BASIC_XER: + case ATS_CANONICAL_XER: + return xer_decode(opt_codec_ctx, td, sptr, buffer, size); + } +} + diff --git a/src/du_app/F1AP/asn/asn_application.h b/src/du_app/F1AP/asn/asn_application.h new file mode 100755 index 000000000..034f64612 --- /dev/null +++ b/src/du_app/F1AP/asn/asn_application.h @@ -0,0 +1,171 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Application-level ASN.1 callbacks. + */ +#ifndef ASN_APPLICATION_H +#define ASN_APPLICATION_H + +#include "asn_system.h" /* for platform-dependent types */ +#include "asn_codecs.h" /* for ASN.1 codecs specifics */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * A selection of ASN.1 Transfer Syntaxes to use with generalized + * encoders and decoders declared further in this .h file. + */ +enum asn_transfer_syntax { + /* Avoid appearance of a default transfer syntax. */ + ATS_INVALID = 0, + /* Plaintext output (not conforming to any standard), for debugging. */ + ATS_NONSTANDARD_PLAINTEXT, + /* Returns a randomly generated structure. */ + ATS_RANDOM, + /* + * X.690: + * BER: Basic Encoding Rules. + * DER: Distinguished Encoding Rules. + * CER: Canonical Encoding Rules. + * DER and CER are more strict variants of BER. + */ + ATS_BER, + ATS_DER, + ATS_CER, /* Only decoding is supported */ + /* + * X.696: + * OER: Octet Encoding Rules. + * CANONICAL-OER is a more strict variant of BASIC-OER. + */ + ATS_BASIC_OER, + ATS_CANONICAL_OER, + /* + * X.691: + * PER: Packed Encoding Rules. + * CANONICAL-PER is a more strict variant of BASIC-PER. + * NOTE: Produces or consumes a complete encoding (X.691 (08/2015) #11.1). + */ + ATS_UNALIGNED_BASIC_PER, + ATS_UNALIGNED_CANONICAL_PER, + ATS_ALIGNED_BASIC_PER, + ATS_ALIGNED_CANONICAL_PER, + /* + * X.693: + * XER: XML Encoding Rules. + * CANONICAL-XER is a more strict variant of BASIC-XER. + */ + ATS_BASIC_XER, + ATS_CANONICAL_XER +}; + +/* + * A generic encoder for any supported transfer syntax. + * RETURN VALUES: + * The (.encoded) field of the return value is REDEFINED to mean the following: + * >=0: The computed size of the encoded data. Can exceed the (buffer_size). + * -1: Error encoding the structure. See the error code in (errno): + * EINVAL: Incorrect parameters to the function, such as NULLs. + * ENOENT: Encoding transfer syntax is not defined (for this type). + * EBADF: The structure has invalid form or content constraint failed. + * The (.failed_type) and (.structure_ptr) MIGHT be set to the appropriate + * values at the place of failure, if at all possible. + * WARNING: The (.encoded) field of the return value can exceed the buffer_size. + * This is similar to snprintf(3) contract which might return values + * greater than the buffer size. + */ +asn_enc_rval_t asn_encode_to_buffer( + const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ + enum asn_transfer_syntax, + const struct asn_TYPE_descriptor_s *type_to_encode, + const void *structure_to_encode, void *buffer, size_t buffer_size); + +/* + * A variant of asn_encode_to_buffer() with automatically allocated buffer. + * RETURN VALUES: + * On success, returns a newly allocated (.buffer) containing the whole message. + * The message size is returned in (.result.encoded). + * On failure: + * (.buffer) is NULL, + * (.result.encoded) as in asn_encode_to_buffer(), + * The errno codes as in asn_encode_to_buffer(), plus the following: + * ENOMEM: Memory allocation failed due to system or internal limits. + * The user is responsible for freeing the (.buffer). + */ +typedef struct asn_encode_to_new_buffer_result_s { + void *buffer; /* NULL if failed to encode. */ + asn_enc_rval_t result; +} asn_encode_to_new_buffer_result_t; +asn_encode_to_new_buffer_result_t asn_encode_to_new_buffer( + const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ + enum asn_transfer_syntax, + const struct asn_TYPE_descriptor_s *type_to_encode, + const void *structure_to_encode); + + +/* + * Generic type of an application-defined callback to return various + * types of data to the application. + * EXPECTED RETURN VALUES: + * -1: Failed to consume bytes. Abort the mission. + * Non-negative return values indicate success, and ignored. + */ +typedef int(asn_app_consume_bytes_f)(const void *buffer, size_t size, + void *application_specific_key); + + +/* + * A generic encoder for any supported transfer syntax. + * Returns the comprehensive encoding result descriptor (see asn_codecs.h). + * RETURN VALUES: + * The negative (.encoded) field of the return values is accompanied with the + * following error codes (errno): + * EINVAL: Incorrect parameters to the function, such as NULLs. + * ENOENT: Encoding transfer syntax is not defined (for this type). + * EBADF: The structure has invalid form or content constraint failed. + * EIO: The (callback) has returned negative value during encoding. + */ +asn_enc_rval_t asn_encode( + const asn_codec_ctx_t *opt_codec_parameters, /* See asn_codecs.h */ + enum asn_transfer_syntax, + const struct asn_TYPE_descriptor_s *type_to_encode, + const void *structure_to_encode, + asn_app_consume_bytes_f *callback, void *callback_key); + + +/* + * A generic decoder for any supported transfer syntax. + */ +asn_dec_rval_t asn_decode( + const asn_codec_ctx_t *opt_codec_parameters, enum asn_transfer_syntax, + const struct asn_TYPE_descriptor_s *type_to_decode, + void **structure_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size /* Size of that buffer */ +); + + +/* + * A callback of this type is called whenever constraint validation fails + * on some ASN.1 type. See "constraints.h" for more details on constraint + * validation. + * This callback specifies a descriptor of the ASN.1 type which failed + * the constraint check, as well as human readable message on what + * particular constraint has failed. + */ +typedef void (asn_app_constraint_failed_f)(void *application_specific_key, + const struct asn_TYPE_descriptor_s *type_descriptor_which_failed, + const void *structure_which_failed_ptr, + const char *error_message_format, ...) CC_PRINTFLIKE(4, 5); + + +#ifdef __cplusplus +} +#endif + +#include "constr_TYPE.h" /* for asn_TYPE_descriptor_t */ + +#endif /* ASN_APPLICATION_H */ diff --git a/src/du_app/F1AP/asn/asn_bit_data.c b/src/du_app/F1AP/asn/asn_bit_data.c new file mode 100755 index 000000000..fe4b89ba7 --- /dev/null +++ b/src/du_app/F1AP/asn/asn_bit_data.c @@ -0,0 +1,333 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Create a contiguous non-refillable bit data structure. + * Can be freed by FREEMEM(). + */ +asn_bit_data_t * +asn_bit_data_new_contiguous(const void *data, size_t size_bits) { + size_t size_bytes = (size_bits + 7) / 8; + asn_bit_data_t *pd; + uint8_t *bytes; + + /* Get the extensions map */ + pd = CALLOC(1, sizeof(*pd) + size_bytes + 1); + if(!pd) { + return NULL; + } + bytes = (void *)(((char *)pd) + sizeof(*pd)); + memcpy(bytes, data, size_bytes); + bytes[size_bytes] = 0; + pd->buffer = bytes; + pd->nboff = 0; + pd->nbits = size_bits; + + return pd; +} + + +char * +asn_bit_data_string(asn_bit_data_t *pd) { + static char buf[2][32]; + static int n; + n = (n+1) % 2; + snprintf(buf[n], sizeof(buf[n]), + "{m=%" ASN_PRI_SIZE " span %" ASN_PRI_SIZE "[%" ASN_PRI_SIZE + "..%" ASN_PRI_SIZE "] (%" ASN_PRI_SIZE ")}", + pd->moved, ((uintptr_t)(pd->buffer) & 0xf), pd->nboff, pd->nbits, + pd->nbits - pd->nboff); + return buf[n]; +} + +void +asn_get_undo(asn_bit_data_t *pd, int nbits) { + if((ssize_t)pd->nboff < nbits) { + assert((ssize_t)pd->nboff < nbits); + } else { + pd->nboff -= nbits; + pd->moved -= nbits; + } +} + +/* + * Extract a small number of bits (<= 31) from the specified PER data pointer. + */ +int32_t +asn_get_few_bits(asn_bit_data_t *pd, int nbits) { + size_t off; /* Next after last bit offset */ + ssize_t nleft; /* Number of bits left in this stream */ + uint32_t accum; + const uint8_t *buf; + + if(nbits < 0) + return -1; + + nleft = pd->nbits - pd->nboff; + if(nbits > nleft) { + int32_t tailv, vhead; + if(!pd->refill || nbits > 31) return -1; + /* Accumulate unused bytes before refill */ + ASN_DEBUG("Obtain the rest %d bits (want %d)", + (int)nleft, (int)nbits); + tailv = asn_get_few_bits(pd, nleft); + if(tailv < 0) return -1; + /* Refill (replace pd contents with new data) */ + if(pd->refill(pd)) + return -1; + nbits -= nleft; + vhead = asn_get_few_bits(pd, nbits); + /* Combine the rest of previous pd with the head of new one */ + tailv = (tailv << nbits) | vhead; /* Could == -1 */ + return tailv; + } + + /* + * Normalize position indicator. + */ + if(pd->nboff >= 8) { + pd->buffer += (pd->nboff >> 3); + pd->nbits -= (pd->nboff & ~0x07); + pd->nboff &= 0x07; + } + pd->moved += nbits; + pd->nboff += nbits; + off = pd->nboff; + buf = pd->buffer; + + /* + * Extract specified number of bits. + */ + if(off <= 8) + accum = nbits ? (buf[0]) >> (8 - off) : 0; + else if(off <= 16) + accum = ((buf[0] << 8) + buf[1]) >> (16 - off); + else if(off <= 24) + accum = ((buf[0] << 16) + (buf[1] << 8) + buf[2]) >> (24 - off); + else if(off <= 31) + accum = (((uint32_t)buf[0] << 24) + (buf[1] << 16) + + (buf[2] << 8) + (buf[3])) >> (32 - off); + else if(nbits <= 31) { + asn_bit_data_t tpd = *pd; + /* Here are we with our 31-bits limit plus 1..7 bits offset. */ + asn_get_undo(&tpd, nbits); + /* The number of available bits in the stream allow + * for the following operations to take place without + * invoking the ->refill() function */ + accum = asn_get_few_bits(&tpd, nbits - 24) << 24; + accum |= asn_get_few_bits(&tpd, 24); + } else { + asn_get_undo(pd, nbits); + return -1; + } + + accum &= (((uint32_t)1 << nbits) - 1); + + ASN_DEBUG(" [PER got %2d<=%2d bits => span %d %+ld[%d..%d]:%02x (%d) => 0x%x]", + (int)nbits, (int)nleft, + (int)pd->moved, + (((long)pd->buffer) & 0xf), + (int)pd->nboff, (int)pd->nbits, + ((pd->buffer != NULL)?pd->buffer[0]:0), + (int)(pd->nbits - pd->nboff), + (int)accum); + + return accum; +} + +/* + * Extract a large number of bits from the specified PER data pointer. + */ +int +asn_get_many_bits(asn_bit_data_t *pd, uint8_t *dst, int alright, int nbits) { + int32_t value; + + if(alright && (nbits & 7)) { + /* Perform right alignment of a first few bits */ + value = asn_get_few_bits(pd, nbits & 0x07); + if(value < 0) return -1; + *dst++ = value; /* value is already right-aligned */ + nbits &= ~7; + } + + while(nbits) { + if(nbits >= 24) { + value = asn_get_few_bits(pd, 24); + if(value < 0) return -1; + *(dst++) = value >> 16; + *(dst++) = value >> 8; + *(dst++) = value; + nbits -= 24; + } else { + value = asn_get_few_bits(pd, nbits); + if(value < 0) return -1; + if(nbits & 7) { /* implies left alignment */ + value <<= 8 - (nbits & 7), + nbits += 8 - (nbits & 7); + if(nbits > 24) + *dst++ = value >> 24; + } + if(nbits > 16) + *dst++ = value >> 16; + if(nbits > 8) + *dst++ = value >> 8; + *dst++ = value; + break; + } + } + + return 0; +} + +/* + * Put a small number of bits (<= 31). + */ +int +asn_put_few_bits(asn_bit_outp_t *po, uint32_t bits, int obits) { + size_t off; /* Next after last bit offset */ + size_t omsk; /* Existing last byte meaningful bits mask */ + uint8_t *buf; + + if(obits <= 0 || obits >= 32) return obits ? -1 : 0; + + ASN_DEBUG("[PER put %d bits %x to %p+%d bits]", + obits, (int)bits, (void *)po->buffer, (int)po->nboff); + + /* + * Normalize position indicator. + */ + if(po->nboff >= 8) { + po->buffer += (po->nboff >> 3); + po->nbits -= (po->nboff & ~0x07); + po->nboff &= 0x07; + } + + /* + * Flush whole-bytes output, if necessary. + */ + if(po->nboff + obits > po->nbits) { + size_t complete_bytes; + if(!po->buffer) po->buffer = po->tmpspace; + complete_bytes = (po->buffer - po->tmpspace); + ASN_DEBUG("[PER output %ld complete + %ld]", + (long)complete_bytes, (long)po->flushed_bytes); + if(po->output(po->tmpspace, complete_bytes, po->op_key) < 0) + return -1; + if(po->nboff) + po->tmpspace[0] = po->buffer[0]; + po->buffer = po->tmpspace; + po->nbits = 8 * sizeof(po->tmpspace); + po->flushed_bytes += complete_bytes; + } + + /* + * Now, due to sizeof(tmpspace), we are guaranteed large enough space. + */ + buf = po->buffer; + omsk = ~((1 << (8 - po->nboff)) - 1); + off = (po->nboff + obits); + + /* Clear data of debris before meaningful bits */ + bits &= (((uint32_t)1 << obits) - 1); + + ASN_DEBUG("[PER out %d %u/%x (t=%d,o=%d) %x&%x=%x]", obits, + (int)bits, (int)bits, + (int)po->nboff, (int)off, + buf[0], (int)(omsk&0xff), + (int)(buf[0] & omsk)); + + if(off <= 8) /* Completely within 1 byte */ + po->nboff = off, + bits <<= (8 - off), + buf[0] = (buf[0] & omsk) | bits; + else if(off <= 16) + po->nboff = off, + bits <<= (16 - off), + buf[0] = (buf[0] & omsk) | (bits >> 8), + buf[1] = bits; + else if(off <= 24) + po->nboff = off, + bits <<= (24 - off), + buf[0] = (buf[0] & omsk) | (bits >> 16), + buf[1] = bits >> 8, + buf[2] = bits; + else if(off <= 31) + po->nboff = off, + bits <<= (32 - off), + buf[0] = (buf[0] & omsk) | (bits >> 24), + buf[1] = bits >> 16, + buf[2] = bits >> 8, + buf[3] = bits; + else { + if(asn_put_few_bits(po, bits >> (obits - 24), 24)) return -1; + if(asn_put_few_bits(po, bits, obits - 24)) return -1; + } + + ASN_DEBUG("[PER out %u/%x => %02x buf+%ld]", + (int)bits, (int)bits, buf[0], + (long)(po->buffer - po->tmpspace)); + + return 0; +} + + +/* + * Output a large number of bits. + */ +int +asn_put_many_bits(asn_bit_outp_t *po, const uint8_t *src, int nbits) { + + while(nbits) { + uint32_t value; + + if(nbits >= 24) { + value = (src[0] << 16) | (src[1] << 8) | src[2]; + src += 3; + nbits -= 24; + if(asn_put_few_bits(po, value, 24)) + return -1; + } else { + value = src[0]; + if(nbits > 8) + value = (value << 8) | src[1]; + if(nbits > 16) + value = (value << 8) | src[2]; + if(nbits & 0x07) + value >>= (8 - (nbits & 0x07)); + if(asn_put_few_bits(po, value, nbits)) + return -1; + break; + } + } + + return 0; +} + + +int +asn_put_aligned_flush(asn_bit_outp_t *po) { + uint32_t unused_bits = (0x7 & (8 - (po->nboff & 0x07))); + size_t complete_bytes = + (po->buffer ? po->buffer - po->tmpspace : 0) + ((po->nboff + 7) >> 3); + + if(unused_bits) { + po->buffer[po->nboff >> 3] &= ~0u << unused_bits; + } + + if(po->output(po->tmpspace, complete_bytes, po->op_key) < 0) { + return -1; + } else { + po->buffer = po->tmpspace; + po->nboff = 0; + po->nbits = 8 * sizeof(po->tmpspace); + po->flushed_bytes += complete_bytes; + return 0; + } +} + diff --git a/src/du_app/F1AP/asn/asn_bit_data.h b/src/du_app/F1AP/asn/asn_bit_data.h new file mode 100755 index 000000000..59de7af5f --- /dev/null +++ b/src/du_app/F1AP/asn/asn_bit_data.h @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_BIT_DATA +#define ASN_BIT_DATA + +#include /* Platform-specific types */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * This structure describes a position inside an incoming PER bit stream. + */ +typedef struct asn_bit_data_s { + const uint8_t *buffer; /* Pointer to the octet stream */ + size_t nboff; /* Bit offset to the meaningful bit */ + size_t nbits; /* Number of bits in the stream */ + size_t moved; /* Number of bits moved through this bit stream */ + int (*refill)(struct asn_bit_data_s *); + void *refill_key; +} asn_bit_data_t; + +/* + * Create a contiguous non-refillable bit data structure. + * Can be freed by FREEMEM(). + */ +asn_bit_data_t *asn_bit_data_new_contiguous(const void *data, size_t size_bits); + +/* + * Extract a small number of bits (<= 31) from the specified PER data pointer. + * This function returns -1 if the specified number of bits could not be + * extracted due to EOD or other conditions. + */ +int32_t asn_get_few_bits(asn_bit_data_t *, int get_nbits); + +/* Undo the immediately preceeding "get_few_bits" operation */ +void asn_get_undo(asn_bit_data_t *, int get_nbits); + +/* + * Extract a large number of bits from the specified PER data pointer. + * This function returns -1 if the specified number of bits could not be + * extracted due to EOD or other conditions. + */ +int asn_get_many_bits(asn_bit_data_t *, uint8_t *dst, int right_align, + int get_nbits); + +/* Non-thread-safe debugging function, don't use it */ +char *asn_bit_data_string(asn_bit_data_t *); + +/* + * This structure supports forming bit output. + */ +typedef struct asn_bit_outp_s { + uint8_t *buffer; /* Pointer into the (tmpspace) */ + size_t nboff; /* Bit offset to the meaningful bit */ + size_t nbits; /* Number of bits left in (tmpspace) */ + uint8_t tmpspace[32]; /* Preliminary storage to hold data */ + int (*output)(const void *data, size_t size, void *op_key); + void *op_key; /* Key for (output) data callback */ + size_t flushed_bytes; /* Bytes already flushed through (output) */ +} asn_bit_outp_t; + +/* Output a small number of bits (<= 31) */ +int asn_put_few_bits(asn_bit_outp_t *, uint32_t bits, int obits); + +/* Output a large number of bits */ +int asn_put_many_bits(asn_bit_outp_t *, const uint8_t *src, int put_nbits); + +/* + * Flush whole bytes (0 or more) through (outper) member. + * The least significant bits which are not used are guaranteed to be set to 0. + * Returns -1 if callback returns -1. Otherwise, 0. + */ +int asn_put_aligned_flush(asn_bit_outp_t *); + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_BIT_DATA */ diff --git a/src/du_app/F1AP/asn/asn_codecs.h b/src/du_app/F1AP/asn/asn_codecs.h new file mode 100755 index 000000000..e75c2709c --- /dev/null +++ b/src/du_app/F1AP/asn/asn_codecs.h @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_CODECS_H +#define ASN_CODECS_H + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * This structure defines a set of parameters that may be passed + * to every ASN.1 encoder or decoder function. + * WARNING: if max_stack_size member is set, and you are calling the + * function pointers of the asn_TYPE_descriptor_t directly, + * this structure must be ALLOCATED ON THE STACK! + * If you can't always satisfy this requirement, use ber_decode(), + * xer_decode() and uper_decode() functions instead. + */ +typedef struct asn_codec_ctx_s { + /* + * Limit the decoder routines to use no (much) more stack than a given + * number of bytes. Most of decoders are stack-based, and this + * would protect against stack overflows if the number of nested + * encodings is high. + * The OCTET STRING, BIT STRING and ANY BER decoders are heap-based, + * and are safe from this kind of overflow. + * A value from getrlimit(RLIMIT_STACK) may be used to initialize + * this variable. Be careful in multithreaded environments, as the + * stack size is rather limited. + */ + size_t max_stack_size; /* 0 disables stack bounds checking */ +} asn_codec_ctx_t; + +/* + * Type of the return value of the encoding functions (der_encode, xer_encode). + */ +typedef struct asn_enc_rval_s { + /* + * Number of bytes encoded. + * -1 indicates failure to encode the structure. + * In this case, the members below this one are meaningful. + */ + ssize_t encoded; + + /* + * Members meaningful when (encoded == -1), for post mortem analysis. + */ + + /* Type which cannot be encoded */ + const struct asn_TYPE_descriptor_s *failed_type; + + /* Pointer to the structure of that type */ + const void *structure_ptr; +} asn_enc_rval_t; +#define ASN__ENCODE_FAILED do { \ + asn_enc_rval_t tmp_error; \ + tmp_error.encoded = -1; \ + tmp_error.failed_type = td; \ + tmp_error.structure_ptr = sptr; \ + ASN_DEBUG("Failed to encode element %s", td ? td->name : ""); \ + return tmp_error; \ +} while(0) +#define ASN__ENCODED_OK(rval) do { \ + rval.structure_ptr = 0; \ + rval.failed_type = 0; \ + return rval; \ +} while(0) + +/* + * Type of the return value of the decoding functions (ber_decode, xer_decode) + * + * Please note that the number of consumed bytes is ALWAYS meaningful, + * even if code==RC_FAIL. This is to indicate the number of successfully + * decoded bytes, hence providing a possibility to fail with more diagnostics + * (i.e., print the offending remainder of the buffer). + */ +enum asn_dec_rval_code_e { + RC_OK, /* Decoded successfully */ + RC_WMORE, /* More data expected, call again */ + RC_FAIL /* Failure to decode data */ +}; +typedef struct asn_dec_rval_s { + enum asn_dec_rval_code_e code; /* Result code */ + size_t consumed; /* Number of bytes consumed */ +} asn_dec_rval_t; +#define ASN__DECODE_FAILED do { \ + asn_dec_rval_t tmp_error; \ + tmp_error.code = RC_FAIL; \ + tmp_error.consumed = 0; \ + ASN_DEBUG("Failed to decode element %s", td ? td->name : ""); \ + return tmp_error; \ +} while(0) +#define ASN__DECODE_STARVED do { \ + asn_dec_rval_t tmp_error; \ + tmp_error.code = RC_WMORE; \ + tmp_error.consumed = 0; \ + return tmp_error; \ +} while(0) + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_CODECS_H */ diff --git a/src/du_app/F1AP/asn/asn_codecs_prim.c b/src/du_app/F1AP/asn/asn_codecs_prim.c new file mode 100755 index 000000000..fc2424773 --- /dev/null +++ b/src/du_app/F1AP/asn/asn_codecs_prim.c @@ -0,0 +1,317 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Decode an always-primitive type. + */ +asn_dec_rval_t +ber_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const void *buf_ptr, size_t size, int tag_mode) { + ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)*sptr; + asn_dec_rval_t rval; + ber_tlv_len_t length = 0; /* =0 to avoid [incorrect] warning. */ + + /* + * If the structure is not there, allocate it. + */ + if(st == NULL) { + st = (ASN__PRIMITIVE_TYPE_t *)CALLOC(1, sizeof(*st)); + if(st == NULL) ASN__DECODE_FAILED; + *sptr = (void *)st; + } + + ASN_DEBUG("Decoding %s as plain primitive (tm=%d)", + td->name, tag_mode); + + /* + * Check tags and extract value length. + */ + rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size, + tag_mode, 0, &length, 0); + if(rval.code != RC_OK) + return rval; + + ASN_DEBUG("%s length is %d bytes", td->name, (int)length); + + /* + * Make sure we have this length. + */ + buf_ptr = ((const char *)buf_ptr) + rval.consumed; + size -= rval.consumed; + if(length > (ber_tlv_len_t)size) { + rval.code = RC_WMORE; + rval.consumed = 0; + return rval; + } + + st->size = (int)length; + /* The following better be optimized away. */ + if(sizeof(st->size) != sizeof(length) + && (ber_tlv_len_t)st->size != length) { + st->size = 0; + ASN__DECODE_FAILED; + } + + st->buf = (uint8_t *)MALLOC(length + 1); + if(!st->buf) { + st->size = 0; + ASN__DECODE_FAILED; + } + + memcpy(st->buf, buf_ptr, length); + st->buf[length] = '\0'; /* Just in case */ + + rval.code = RC_OK; + rval.consumed += length; + + ASN_DEBUG("Took %ld/%ld bytes to encode %s", + (long)rval.consumed, + (long)length, td->name); + + return rval; +} + +/* + * Encode an always-primitive type using DER. + */ +asn_enc_rval_t +der_encode_primitive(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t erval = {0,0,0}; + const ASN__PRIMITIVE_TYPE_t *st = (const ASN__PRIMITIVE_TYPE_t *)sptr; + + ASN_DEBUG("%s %s as a primitive type (tm=%d)", + cb?"Encoding":"Estimating", td->name, tag_mode); + + erval.encoded = der_write_tags(td, st->size, tag_mode, 0, tag, + cb, app_key); + ASN_DEBUG("%s wrote tags %d", td->name, (int)erval.encoded); + if(erval.encoded == -1) { + erval.failed_type = td; + erval.structure_ptr = sptr; + return erval; + } + + if(cb && st->buf) { + if(cb(st->buf, st->size, app_key) < 0) { + erval.encoded = -1; + erval.failed_type = td; + erval.structure_ptr = sptr; + return erval; + } + } else { + assert(st->buf || st->size == 0); + } + + erval.encoded += st->size; + ASN__ENCODED_OK(erval); +} + +void +ASN__PRIMITIVE_TYPE_free(const asn_TYPE_descriptor_t *td, void *sptr, + enum asn_struct_free_method method) { + ASN__PRIMITIVE_TYPE_t *st = (ASN__PRIMITIVE_TYPE_t *)sptr; + + if(!td || !sptr) + return; + + ASN_DEBUG("Freeing %s as a primitive type", td->name); + + if(st->buf) + FREEMEM(st->buf); + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(sptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(sptr, 0, sizeof(ASN__PRIMITIVE_TYPE_t)); + break; + } +} + + +/* + * Local internal type passed around as an argument. + */ +struct xdp_arg_s { + const asn_TYPE_descriptor_t *type_descriptor; + void *struct_key; + xer_primitive_body_decoder_f *prim_body_decoder; + int decoded_something; + int want_more; +}; + +/* + * Since some kinds of primitive values can be encoded using value-specific + * tags (, , etc), the primitive decoder must + * be supplied with such tags to parse them as needed. + */ +static int +xer_decode__unexpected_tag(void *key, const void *chunk_buf, size_t chunk_size) { + struct xdp_arg_s *arg = (struct xdp_arg_s *)key; + enum xer_pbd_rval bret; + + /* + * The chunk_buf is guaranteed to start at '<'. + */ + assert(chunk_size && ((const char *)chunk_buf)[0] == 0x3c); + + /* + * Decoding was performed once already. Prohibit doing it again. + */ + if(arg->decoded_something) + return -1; + + bret = arg->prim_body_decoder(arg->type_descriptor, + arg->struct_key, chunk_buf, chunk_size); + switch(bret) { + case XPBD_SYSTEM_FAILURE: + case XPBD_DECODER_LIMIT: + case XPBD_BROKEN_ENCODING: + break; + case XPBD_BODY_CONSUMED: + /* Tag decoded successfully */ + arg->decoded_something = 1; + /* Fall through */ + case XPBD_NOT_BODY_IGNORE: /* Safe to proceed further */ + return 0; + } + + return -1; +} + +static ssize_t +xer_decode__primitive_body(void *key, const void *chunk_buf, size_t chunk_size, int have_more) { + struct xdp_arg_s *arg = (struct xdp_arg_s *)key; + enum xer_pbd_rval bret; + size_t lead_wsp_size; + + if(arg->decoded_something) { + if(xer_whitespace_span(chunk_buf, chunk_size) == chunk_size) { + /* + * Example: + * "123 " + * ^- chunk_buf position. + */ + return chunk_size; + } + /* + * Decoding was done once already. Prohibit doing it again. + */ + return -1; + } + + if(!have_more) { + /* + * If we've received something like "1", we can't really + * tell whether it is really `1` or `123`, until we know + * that there is no more data coming. + * The have_more argument will be set to 1 once something + * like this is available to the caller of this callback: + * "1want_more = 1; + return -1; + } + + lead_wsp_size = xer_whitespace_span(chunk_buf, chunk_size); + chunk_buf = (const char *)chunk_buf + lead_wsp_size; + chunk_size -= lead_wsp_size; + + bret = arg->prim_body_decoder(arg->type_descriptor, + arg->struct_key, chunk_buf, chunk_size); + switch(bret) { + case XPBD_SYSTEM_FAILURE: + case XPBD_DECODER_LIMIT: + case XPBD_BROKEN_ENCODING: + break; + case XPBD_BODY_CONSUMED: + /* Tag decoded successfully */ + arg->decoded_something = 1; + /* Fall through */ + case XPBD_NOT_BODY_IGNORE: /* Safe to proceed further */ + return lead_wsp_size + chunk_size; + } + + return -1; +} + + +asn_dec_rval_t +xer_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + size_t struct_size, const char *opt_mname, + const void *buf_ptr, size_t size, + xer_primitive_body_decoder_f *prim_body_decoder) { + const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; + asn_struct_ctx_t s_ctx; + struct xdp_arg_s s_arg; + asn_dec_rval_t rc; + + /* + * Create the structure if does not exist. + */ + if(!*sptr) { + *sptr = CALLOC(1, struct_size); + if(!*sptr) ASN__DECODE_FAILED; + } + + memset(&s_ctx, 0, sizeof(s_ctx)); + s_arg.type_descriptor = td; + s_arg.struct_key = *sptr; + s_arg.prim_body_decoder = prim_body_decoder; + s_arg.decoded_something = 0; + s_arg.want_more = 0; + + rc = xer_decode_general(opt_codec_ctx, &s_ctx, &s_arg, + xml_tag, buf_ptr, size, + xer_decode__unexpected_tag, xer_decode__primitive_body); + switch(rc.code) { + case RC_OK: + if(!s_arg.decoded_something) { + char ch; + ASN_DEBUG("Primitive body is not recognized, " + "supplying empty one"); + /* + * Decoding opportunity has come and gone. + * Where's the result? + * Try to feed with empty body, see if it eats it. + */ + if(prim_body_decoder(s_arg.type_descriptor, + s_arg.struct_key, &ch, 0) + != XPBD_BODY_CONSUMED) { + /* + * This decoder does not like empty stuff. + */ + ASN__DECODE_FAILED; + } + } + break; + case RC_WMORE: + /* + * Redo the whole thing later. + * We don't have a context to save intermediate parsing state. + */ + rc.consumed = 0; + break; + case RC_FAIL: + rc.consumed = 0; + if(s_arg.want_more) + rc.code = RC_WMORE; + else + ASN__DECODE_FAILED; + break; + } + return rc; +} + diff --git a/src/du_app/F1AP/asn/asn_codecs_prim.h b/src/du_app/F1AP/asn/asn_codecs_prim.h new file mode 100755 index 000000000..fbc557648 --- /dev/null +++ b/src/du_app/F1AP/asn/asn_codecs_prim.h @@ -0,0 +1,51 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_CODECS_PRIM_H +#define ASN_CODECS_PRIM_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct ASN__PRIMITIVE_TYPE_s { + uint8_t *buf; /* Buffer with consecutive primitive encoding bytes */ + size_t size; /* Size of the buffer */ +} ASN__PRIMITIVE_TYPE_t; /* Do not use this type directly! */ + +asn_struct_free_f ASN__PRIMITIVE_TYPE_free; +ber_type_decoder_f ber_decode_primitive; +der_type_encoder_f der_encode_primitive; + +/* + * A callback specification for the xer_decode_primitive() function below. + */ +enum xer_pbd_rval { + XPBD_SYSTEM_FAILURE, /* System failure (memory shortage, etc) */ + XPBD_DECODER_LIMIT, /* Hit some decoder limitation or deficiency */ + XPBD_BROKEN_ENCODING, /* Encoding of a primitive body is broken */ + XPBD_NOT_BODY_IGNORE, /* Not a body format, but safe to ignore */ + XPBD_BODY_CONSUMED /* Body is recognized and consumed */ +}; +typedef enum xer_pbd_rval(xer_primitive_body_decoder_f)( + const asn_TYPE_descriptor_t *td, void *struct_ptr, const void *chunk_buf, + size_t chunk_size); + +/* + * Specific function to decode simple primitive types. + * Also see xer_decode_general() in xer_decoder.h + */ +asn_dec_rval_t xer_decode_primitive( + const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, + size_t struct_size, const char *opt_mname, const void *buf_ptr, size_t size, + xer_primitive_body_decoder_f *prim_body_decoder); + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_CODECS_PRIM_H */ diff --git a/src/du_app/F1AP/asn/asn_constant.h b/src/du_app/F1AP/asn/asn_constant.h new file mode 100755 index 000000000..018d1aa48 --- /dev/null +++ b/src/du_app/F1AP/asn/asn_constant.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _ASN_CONSTANT_H +#define _ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define maxPrivateIEs (65535) +#define maxProtocolExtensions (65535) +#define maxProtocolIEs (65535) +#define maxNRARFCN (3279165) +#define maxnoofErrors (256) +#define maxnoofIndividualF1ConnectionsToReset (65536) +#define maxCellingNBDU (512) +#define maxnoofSCells (32) +#define maxnoofSRBs (8) +#define maxnoofDRBs (64) +#define maxnoofULUPTNLInformation (2) +#define maxnoofDLUPTNLInformation (2) +#define maxnoofBPLMNs (6) +#define maxnoofCandidateSpCells (64) +#define maxnoofPotentialSpCells (64) +#define maxnoofNrCellBands (32) +#define maxnoofSIBTypes (32) +#define maxnoofSITypes (32) +#define maxnoofPagingCells (512) +#define maxnoofTNLAssociations (32) +#define maxnoofQoSFlows (64) +#define maxnoofSliceItems (1024) +#define maxCellineNB (256) +#define maxnoofExtendedBPLMNs (6) +#define maxnoofUEIDs (65536) + + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_CONSTANT_H */ diff --git a/src/du_app/F1AP/asn/asn_internal.c b/src/du_app/F1AP/asn/asn_internal.c new file mode 100755 index 000000000..1aff95f80 --- /dev/null +++ b/src/du_app/F1AP/asn/asn_internal.c @@ -0,0 +1,48 @@ +#include + +ssize_t +asn__format_to_callback(int (*cb)(const void *, size_t, void *key), void *key, + const char *fmt, ...) { + char scratch[64]; + char *buf = scratch; + size_t buf_size = sizeof(scratch); + int wrote; + int cb_ret; + + do { + va_list args; + va_start(args, fmt); + + wrote = vsnprintf(buf, buf_size, fmt, args); + if(wrote < (ssize_t)buf_size) { + if(wrote < 0) { + if(buf != scratch) FREEMEM(buf); + va_end(args); + return -1; + } + break; + } + + buf_size <<= 1; + if(buf == scratch) { + buf = MALLOC(buf_size); + if(!buf) return -1; + } else { + void *p = REALLOC(buf, buf_size); + if(!p) { + FREEMEM(buf); + return -1; + } + buf = p; + } + } while(1); + + cb_ret = cb(buf, wrote, key); + if(buf != scratch) FREEMEM(buf); + if(cb_ret < 0) { + return -1; + } + + return wrote; +} + diff --git a/src/du_app/F1AP/asn/asn_internal.h b/src/du_app/F1AP/asn/asn_internal.h new file mode 100755 index 000000000..c4105ad51 --- /dev/null +++ b/src/du_app/F1AP/asn/asn_internal.h @@ -0,0 +1,159 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Declarations internally useful for the ASN.1 support code. + */ +#ifndef ASN_INTERNAL_H +#define ASN_INTERNAL_H +#define __EXTENSIONS__ /* for Sun */ + +#include "asn_application.h" /* Application-visible API */ + +#ifndef __NO_ASSERT_H__ /* Include assert.h only for internal use. */ +#include /* for assert() macro */ +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* Environment version might be used to avoid running with the old library */ +#define ASN1C_ENVIRONMENT_VERSION 923 /* Compile-time version */ +int get_asn1c_environment_version(void); /* Run-time version */ + +#define CALLOC(nmemb, size) calloc(nmemb, size) +#define MALLOC(size) malloc(size) +#define REALLOC(oldptr, size) realloc(oldptr, size) +#define FREEMEM(ptr) free(ptr) + +#define asn_debug_indent 0 +#define ASN_DEBUG_INDENT_ADD(i) do{}while(0) + +#ifdef EMIT_ASN_DEBUG +#warning "Use ASN_EMIT_DEBUG instead of EMIT_ASN_DEBUG" +#define ASN_EMIT_DEBUG EMIT_ASN_DEBUG +#endif + +/* + * A macro for debugging the ASN.1 internals. + * You may enable or override it. + */ +#ifndef ASN_DEBUG /* If debugging code is not defined elsewhere... */ +#if ASN_EMIT_DEBUG == 1 /* And it was asked to emit this code... */ +#if !defined(BELL_LABS) /* Bell Labs */ + //#if __STDC_VERSION__ >= 199901L +#ifdef ASN_THREAD_SAFE +/* Thread safety requires sacrifice in output indentation: + * Retain empty definition of ASN_DEBUG_INDENT_ADD. */ +#else /* !ASN_THREAD_SAFE */ +#undef ASN_DEBUG_INDENT_ADD +#undef asn_debug_indent +int asn_debug_indent; +#define ASN_DEBUG_INDENT_ADD(i) do { asn_debug_indent += i; } while(0) +#endif /* ASN_THREAD_SAFE */ +#if defined(BELL_LABS) /* Bell Labs version */ +extern int logAsn1c(const char *filename, int linenumber, const char *format, ...); +#define ASN_DEBUG(fmt, args...) do { \ + (void) logAsn1c(__FILE__, __LINE__, fmt, ##args); \ + } while(0) +#else +#define ASN_DEBUG(fmt, args...) do { \ + int adi = asn_debug_indent; \ + while(adi--) fprintf(stderr, " "); \ + fprintf(stderr, fmt, ##args); \ + fprintf(stderr, " (%s:%d)\n", \ + __FILE__, __LINE__); \ + } while(0) +#endif /* BELL_LABS */ +#else /* !C99 */ +void CC_PRINTFLIKE(1, 2) ASN_DEBUG_f(const char *fmt, ...); +#define ASN_DEBUG ASN_DEBUG_f +#endif /* C99 */ +#else /* ASN_EMIT_DEBUG != 1 */ +#if __STDC_VERSION__ >= 199901L +#define ASN_DEBUG(...) do{}while(0) +#else /* not C99 */ +static void CC_PRINTFLIKE(1, 2) ASN_DEBUG(const char *fmt, ...) { (void)fmt; } +#endif /* C99 or better */ +#endif /* ASN_EMIT_DEBUG */ +#endif /* ASN_DEBUG */ + +/* + * Print to a callback. + * The callback is expected to return negative values on error. + * 0 and positive values are treated as success. + * RETURN VALUES: + * -1: Failed to format or invoke the callback. + * >0: Size of the data that got delivered to the callback. + */ +ssize_t CC_PRINTFLIKE(3, 4) +asn__format_to_callback( + int (*callback)(const void *, size_t, void *key), void *key, + const char *fmt, ...); + +/* + * Invoke the application-supplied callback and fail, if something is wrong. + */ +#define ASN__E_cbc(buf, size) (cb((buf), (size), app_key) < 0) +#define ASN__E_CALLBACK(size, foo) \ + do { \ + if(foo) goto cb_failed; \ + er.encoded += (size); \ + } while(0) +#define ASN__CALLBACK(buf, size) ASN__E_CALLBACK(size, ASN__E_cbc(buf, size)) +#define ASN__CALLBACK2(buf1, size1, buf2, size2) \ + ASN__E_CALLBACK((size1) + (size2), \ + ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2)) +#define ASN__CALLBACK3(buf1, size1, buf2, size2, buf3, size3) \ + ASN__E_CALLBACK((size1) + (size2) + (size3), \ + ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2) \ + || ASN__E_cbc(buf3, size3)) + +#define ASN__TEXT_INDENT(nl, level) \ + do { \ + int tmp_level = (level); \ + int tmp_nl = ((nl) != 0); \ + int tmp_i; \ + if(tmp_nl) ASN__CALLBACK("\n", 1); \ + if(tmp_level < 0) tmp_level = 0; \ + for(tmp_i = 0; tmp_i < tmp_level; tmp_i++) ASN__CALLBACK(" ", 4); \ + } while(0) + +#define _i_INDENT(nl) do { \ + int tmp_i; \ + if((nl) && cb("\n", 1, app_key) < 0) \ + return -1; \ + for(tmp_i = 0; tmp_i < ilevel; tmp_i++) \ + if(cb(" ", 4, app_key) < 0) \ + return -1; \ + } while(0) + +/* + * Check stack against overflow, if limit is set. + */ +#define ASN__DEFAULT_STACK_MAX (30000) +static int CC_NOTUSED +ASN__STACK_OVERFLOW_CHECK(const asn_codec_ctx_t *ctx) { + if(ctx && ctx->max_stack_size) { + + /* ctx MUST be allocated on the stack */ + ptrdiff_t usedstack = ((const char *)ctx - (const char *)&ctx); + if(usedstack > 0) usedstack = -usedstack; /* grows up! */ + + /* double negative required to avoid int wrap-around */ + if(usedstack < -(ptrdiff_t)ctx->max_stack_size) { + ASN_DEBUG("Stack limit %ld reached", + (long)ctx->max_stack_size); + return -1; + } + } + return 0; +} + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_INTERNAL_H */ diff --git a/src/du_app/F1AP/asn/asn_ioc.h b/src/du_app/F1AP/asn/asn_ioc.h new file mode 100755 index 000000000..7de210ee0 --- /dev/null +++ b/src/du_app/F1AP/asn/asn_ioc.h @@ -0,0 +1,51 @@ +/* + * Run-time support for Information Object Classes. + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_IOC_H +#define ASN_IOC_H + +#include /* Platform-specific types */ + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; +struct asn_ioc_cell_s; + +/* + * X.681, #13 + */ +typedef struct asn_ioc_set_s { + size_t rows_count; + size_t columns_count; + const struct asn_ioc_cell_s *rows; +} asn_ioc_set_t; + + +typedef struct asn_ioc_cell_s { + const char *field_name; /* Is equal to corresponding column_name */ + enum { + aioc__undefined = 0, + aioc__value, + aioc__type, + aioc__open_type, + } cell_kind; + struct asn_TYPE_descriptor_s *type_descriptor; + const void *value_sptr; + struct { + size_t types_count; + struct { + unsigned choice_position; + } *types; + } open_type; +} asn_ioc_cell_t; + + +#ifdef __cplusplus +} +#endif + +#endif /* ASN_IOC_H */ diff --git a/src/du_app/F1AP/asn/asn_random_fill.c b/src/du_app/F1AP/asn/asn_random_fill.c new file mode 100755 index 000000000..819cf700e --- /dev/null +++ b/src/du_app/F1AP/asn/asn_random_fill.c @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +int +asn_random_fill(const struct asn_TYPE_descriptor_s *td, void **struct_ptr, + size_t length) { + + if(td && td->op->random_fill) { + asn_random_fill_result_t res = + td->op->random_fill(td, struct_ptr, 0, length); + return (res.code == ARFILL_OK) ? 0 : -1; + } else { + return -1; + } +} + +static uintmax_t +asn__intmax_range(intmax_t lb, intmax_t ub) { + assert(lb <= ub); + if((ub < 0) == (lb < 0)) { + return ub - lb; + } else if(lb < 0) { + return 1 + ((uintmax_t)ub + (uintmax_t)-(lb + 1)); + } else { + assert(!"Unreachable"); + return 0; + } +} + +intmax_t +asn_random_between(intmax_t lb, intmax_t rb) { + if(lb == rb) { + return lb; + } else { + const uintmax_t intmax_max = ((~(uintmax_t)0) >> 1); + uintmax_t range = asn__intmax_range(lb, rb); + uintmax_t value = 0; + uintmax_t got_entropy = 0; + + assert(RAND_MAX > 0xffffff); /* Seen 7ffffffd! */ + assert(range < intmax_max); + + for(; got_entropy < range;) { + got_entropy = (got_entropy << 24) | 0xffffff; + value = (value << 24) | (random() % 0xffffff); + } + + return lb + (intmax_t)(value % (range + 1)); + } +} diff --git a/src/du_app/F1AP/asn/asn_random_fill.h b/src/du_app/F1AP/asn/asn_random_fill.h new file mode 100755 index 000000000..47f9b8af0 --- /dev/null +++ b/src/du_app/F1AP/asn/asn_random_fill.h @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_RANDOM_FILL +#define ASN_RANDOM_FILL + +/* Forward declarations */ +struct asn_TYPE_descriptor_s; +struct asn_encoding_constraints_s; + +/* + * Initialize a structure with random data according to the type specification + * and optional member constraints. + * ARGUMENTS: + * (max_length) - See (approx_max_length_limit). + * (memb_constraints) - Member constraints, if exist. + * The type can be constrained differently according + * to PER and OER specifications, so we find a value + * at the intersection of these constraints. + * In case the return differs from ARFILL_OK, the (struct_ptr) contents + * and (current_length) value remain in their original state. + */ +typedef struct asn_random_fill_result_s { + enum { + ARFILL_FAILED = -1, /* System error (memory?) */ + ARFILL_OK = 0, /* Initialization succeeded */ + ARFILL_SKIPPED = 1 /* Not done due to (length?) constraint */ + } code; + size_t length; /* Approximate number of bytes created. */ +} asn_random_fill_result_t; +typedef asn_random_fill_result_t(asn_random_fill_f)( + const struct asn_TYPE_descriptor_s *td, void **struct_ptr, + const struct asn_encoding_constraints_s *memb_constraints, + size_t max_length); + +/* + * Returns 0 if the structure was properly initialized, -1 otherwise. + * The (approx_max_length_limit) specifies the approximate limit of the + * resulting structure in units closely resembling bytes. The actual result + * might be several times larger or smaller than the length limit. + */ +int asn_random_fill(const struct asn_TYPE_descriptor_s *td, void **struct_ptr, + size_t approx_max_length_limit); + +/* + * Returns a random number between min and max. + */ +intmax_t asn_random_between(intmax_t min, intmax_t max); + +#endif /* ASN_RANDOM_FILL */ diff --git a/src/du_app/F1AP/asn/asn_system.h b/src/du_app/F1AP/asn/asn_system.h new file mode 100755 index 000000000..fa8cf1165 --- /dev/null +++ b/src/du_app/F1AP/asn/asn_system.h @@ -0,0 +1,150 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * Miscellaneous system-dependent types. + */ +#ifndef ASN_SYSTEM_H +#define ASN_SYSTEM_H + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifndef _DEFAULT_SOURCE +#define _DEFAULT_SOURCE 1 +#endif + +#ifndef _BSD_SOURCE +#define _BSD_SOURCE /* for snprintf() on some linux systems */ +#endif + +#include /* For snprintf(3) */ +#include /* For *alloc(3) */ +#include /* For memcpy(3) */ +#include /* For size_t */ +#include /* For LONG_MAX */ +#include /* For va_start */ +#include /* for offsetof and ptrdiff_t */ + +#ifdef _WIN32 + +#include +#define snprintf _snprintf +#define vsnprintf _vsnprintf + +/* To avoid linking with ws2_32.lib, here's the definition of ntohl() */ +#define sys_ntohl(l) ((((l) << 24) & 0xff000000) \ + | (((l) << 8) & 0xff0000) \ + | (((l) >> 8) & 0xff00) \ + | ((l >> 24) & 0xff)) + +#ifdef _MSC_VER /* MSVS.Net */ +#ifndef __cplusplus +#define inline __inline +#endif +#ifndef ASSUMESTDTYPES /* Standard types have been defined elsewhere */ +#define ssize_t SSIZE_T +#if _MSC_VER < 1600 +typedef char int8_t; +typedef short int16_t; +typedef int int32_t; +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +typedef unsigned int uint32_t; +#else /* _MSC_VER >= 1600 */ +#include +#endif /* _MSC_VER < 1600 */ +#endif /* ASSUMESTDTYPES */ +#define WIN32_LEAN_AND_MEAN +#include +#include +#define isnan _isnan +#define finite _finite +#define copysign _copysign +#define ilogb _logb +#else /* !_MSC_VER */ +#include +#endif /* _MSC_VER */ + +#else /* !_WIN32 */ + +#if defined(__vxworks) +#include +#else /* !defined(__vxworks) */ + +#include /* C99 specifies this file */ +#include /* for ntohl() */ +#define sys_ntohl(foo) ntohl(foo) +#endif /* defined(__vxworks) */ + +#endif /* _WIN32 */ + +#if __GNUC__ >= 3 || defined(__clang__) +#define CC_ATTRIBUTE(attr) __attribute__((attr)) +#else +#define CC_ATTRIBUTE(attr) +#endif +#define CC_PRINTFLIKE(fmt, var) CC_ATTRIBUTE(format(printf, fmt, var)) +#define CC_NOTUSED CC_ATTRIBUTE(unused) +#ifndef CC_ATTR_NO_SANITIZE +#define CC_ATTR_NO_SANITIZE(what) CC_ATTRIBUTE(no_sanitize(what)) +#endif + +/* Figure out if thread safety is requested */ +#if !defined(ASN_THREAD_SAFE) && (defined(THREAD_SAFE) || defined(_REENTRANT)) +#define ASN_THREAD_SAFE +#endif /* Thread safety */ + +#ifndef offsetof /* If not defined by */ +#define offsetof(s, m) ((ptrdiff_t)&(((s *)0)->m) - (ptrdiff_t)((s *)0)) +#endif /* offsetof */ + +#ifndef MIN /* Suitable for comparing primitive types (integers) */ +#if defined(__GNUC__) +#define MIN(a,b) ({ __typeof a _a = a; __typeof b _b = b; \ + ((_a)<(_b)?(_a):(_b)); }) +#else /* !__GNUC__ */ +#define MIN(a,b) ((a)<(b)?(a):(b)) /* Unsafe variant */ +#endif /* __GNUC__ */ +#endif /* MIN */ + +#if __STDC_VERSION__ >= 199901L +#ifndef SIZE_MAX +#define SIZE_MAX ((~((size_t)0)) >> 1) +#endif + +#ifndef RSIZE_MAX /* C11, Annex K */ +#define RSIZE_MAX (SIZE_MAX >> 1) +#endif +#ifndef RSSIZE_MAX /* Halve signed size even further than unsigned */ +#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1)) +#endif +#else /* Old compiler */ +#undef SIZE_MAX +#undef RSIZE_MAX +#undef RSSIZE_MAX +#define SIZE_MAX ((~((size_t)0)) >> 1) +#define RSIZE_MAX (SIZE_MAX >> 1) +#define RSSIZE_MAX ((ssize_t)(RSIZE_MAX >> 1)) +#endif + +#if __STDC_VERSION__ >= 199901L +#define ASN_PRI_SIZE "zu" +#define ASN_PRI_SSIZE "zd" +#define ASN_PRIuMAX PRIuMAX +#define ASN_PRIdMAX PRIdMAX +#else +#define ASN_PRI_SIZE "lu" +#define ASN_PRI_SSIZE "ld" +#if LLONG_MAX > LONG_MAX +#define ASN_PRIuMAX "llu" +#define ASN_PRIdMAX "lld" +#else +#define ASN_PRIuMAX "lu" +#define ASN_PRIdMAX "ld" +#endif +#endif + +#endif /* ASN_SYSTEM_H */ diff --git a/src/du_app/F1AP/asn/ber_decoder.c b/src/du_app/F1AP/asn/ber_decoder.c new file mode 100755 index 000000000..75d601695 --- /dev/null +++ b/src/du_app/F1AP/asn/ber_decoder.c @@ -0,0 +1,283 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include + +#undef ADVANCE +#define ADVANCE(num_bytes) do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num; \ + size -= num; \ + consumed_myself += num; \ + } while(0) +#undef RETURN +#define RETURN(_code) do { \ + asn_dec_rval_t rval; \ + rval.code = _code; \ + if(opt_ctx) opt_ctx->step = step; /* Save context */ \ + if(_code == RC_OK || opt_ctx) \ + rval.consumed = consumed_myself; \ + else \ + rval.consumed = 0; /* Context-free */ \ + return rval; \ + } while(0) + +/* + * The BER decoder of any type. + */ +asn_dec_rval_t +ber_decode(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, + const void *ptr, size_t size) { + asn_codec_ctx_t s_codec_ctx; + + /* + * Stack checker requires that the codec context + * must be allocated on the stack. + */ + if(opt_codec_ctx) { + if(opt_codec_ctx->max_stack_size) { + s_codec_ctx = *opt_codec_ctx; + opt_codec_ctx = &s_codec_ctx; + } + } else { + /* If context is not given, be security-conscious anyway */ + memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); + s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; + opt_codec_ctx = &s_codec_ctx; + } + + /* + * Invoke type-specific decoder. + */ + return type_descriptor->op->ber_decoder(opt_codec_ctx, type_descriptor, + struct_ptr, /* Pointer to the destination structure */ + ptr, size, /* Buffer and its size */ + 0 /* Default tag mode is 0 */ + ); +} + +/* + * Check the set of >> tags matches the definition. + */ +asn_dec_rval_t +ber_check_tags(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, asn_struct_ctx_t *opt_ctx, + const void *ptr, size_t size, int tag_mode, int last_tag_form, + ber_tlv_len_t *last_length, int *opt_tlv_form) { + ssize_t consumed_myself = 0; + ssize_t tag_len; + ssize_t len_len; + ber_tlv_tag_t tlv_tag; + ber_tlv_len_t tlv_len; + ber_tlv_len_t limit_len = -1; + int expect_00_terminators = 0; + int tlv_constr = -1; /* If CHOICE, opt_tlv_form is not given */ + int step = opt_ctx ? opt_ctx->step : 0; /* Where we left previously */ + int tagno; + + /* + * Make sure we didn't exceed the maximum stack size. + */ + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + RETURN(RC_FAIL); + + /* + * So what does all this implicit skip stuff mean? + * Imagine two types, + * A ::= [5] IMPLICIT T + * B ::= [2] EXPLICIT T + * Where T is defined as + * T ::= [4] IMPLICIT SEQUENCE { ... } + * + * Let's say, we are starting to decode type A, given the + * following TLV stream: <5> <0>. What does this mean? + * It means that the type A contains type T which is, + * in turn, empty. + * Remember though, that we are still in A. We cannot + * just pass control to the type T decoder. Why? Because + * the type T decoder expects <4> <0>, not <5> <0>. + * So, we must make sure we are going to receive <5> while + * still in A, then pass control to the T decoder, indicating + * that the tag <4> was implicitly skipped. The decoder of T + * hence will be prepared to treat <4> as valid tag, and decode + * it appropriately. + */ + + tagno = step /* Continuing where left previously */ + + (tag_mode==1?-1:0) + ; + ASN_DEBUG("ber_check_tags(%s, size=%ld, tm=%d, step=%d, tagno=%d)", + td->name, (long)size, tag_mode, step, tagno); + /* assert(td->tags_count >= 1) May not be the case for CHOICE or ANY */ + + if(tag_mode == 0 && tagno == (int)td->tags_count) { + /* + * This must be the _untagged_ ANY type, + * which outermost tag isn't known in advance. + * Fetch the tag and length separately. + */ + tag_len = ber_fetch_tag(ptr, size, &tlv_tag); + switch(tag_len) { + case -1: RETURN(RC_FAIL); + case 0: RETURN(RC_WMORE); + } + tlv_constr = BER_TLV_CONSTRUCTED(ptr); + len_len = ber_fetch_length(tlv_constr, + (const char *)ptr + tag_len, size - tag_len, &tlv_len); + switch(len_len) { + case -1: RETURN(RC_FAIL); + case 0: RETURN(RC_WMORE); + } + ASN_DEBUG("Advancing %ld in ANY case", + (long)(tag_len + len_len)); + ADVANCE(tag_len + len_len); + } else { + assert(tagno < (int)td->tags_count); /* At least one loop */ + } + for((void)tagno; tagno < (int)td->tags_count; tagno++, step++) { + + /* + * Fetch and process T from TLV. + */ + tag_len = ber_fetch_tag(ptr, size, &tlv_tag); + ASN_DEBUG("Fetching tag from {%p,%ld}: " + "len %ld, step %d, tagno %d got %s", + ptr, (long)size, + (long)tag_len, step, tagno, + ber_tlv_tag_string(tlv_tag)); + switch(tag_len) { + case -1: RETURN(RC_FAIL); + case 0: RETURN(RC_WMORE); + } + + tlv_constr = BER_TLV_CONSTRUCTED(ptr); + + /* + * If {I}, don't check anything. + * If {I,B,C}, check B and C unless we're at I. + */ + if(tag_mode != 0 && step == 0) { + /* + * We don't expect tag to match here. + * It's just because we don't know how the tag + * is supposed to look like. + */ + } else { + assert(tagno >= 0); /* Guaranteed by the code above */ + if(tlv_tag != td->tags[tagno]) { + /* + * Unexpected tag. Too bad. + */ + ASN_DEBUG("Expected: %s, " + "expectation failed (tn=%d, tm=%d)", + ber_tlv_tag_string(td->tags[tagno]), + tagno, tag_mode + ); + RETURN(RC_FAIL); + } + } + + /* + * Attention: if there are more tags expected, + * ensure that the current tag is presented + * in constructed form (it contains other tags!). + * If this one is the last one, check that the tag form + * matches the one given in descriptor. + */ + if(tagno < ((int)td->tags_count - 1)) { + if(tlv_constr == 0) { + ASN_DEBUG("tlv_constr = %d, expfail", + tlv_constr); + RETURN(RC_FAIL); + } + } else { + if(last_tag_form != tlv_constr + && last_tag_form != -1) { + ASN_DEBUG("last_tag_form %d != %d", + last_tag_form, tlv_constr); + RETURN(RC_FAIL); + } + } + + /* + * Fetch and process L from TLV. + */ + len_len = ber_fetch_length(tlv_constr, + (const char *)ptr + tag_len, size - tag_len, &tlv_len); + ASN_DEBUG("Fetching len = %ld", (long)len_len); + switch(len_len) { + case -1: RETURN(RC_FAIL); + case 0: RETURN(RC_WMORE); + } + + /* + * FIXME + * As of today, the chain of tags + * must either contain several indefinite length TLVs, + * or several definite length ones. + * No mixing is allowed. + */ + if(tlv_len == -1) { + /* + * Indefinite length. + */ + if(limit_len == -1) { + expect_00_terminators++; + } else { + ASN_DEBUG("Unexpected indefinite length " + "in a chain of definite lengths"); + RETURN(RC_FAIL); + } + ADVANCE(tag_len + len_len); + continue; + } else { + if(expect_00_terminators) { + ASN_DEBUG("Unexpected definite length " + "in a chain of indefinite lengths"); + RETURN(RC_FAIL); + } + } + + /* + * Check that multiple TLVs specify ever decreasing length, + * which is consistent. + */ + if(limit_len == -1) { + limit_len = tlv_len + tag_len + len_len; + if(limit_len < 0) { + /* Too great tlv_len value? */ + RETURN(RC_FAIL); + } + } else if(limit_len != tlv_len + tag_len + len_len) { + /* + * Inner TLV specifies length which is inconsistent + * with the outer TLV's length value. + */ + ASN_DEBUG("Outer TLV is %ld and inner is %ld", + (long)limit_len, (long)tlv_len); + RETURN(RC_FAIL); + } + + ADVANCE(tag_len + len_len); + + limit_len -= (tag_len + len_len); + if((ssize_t)size > limit_len) { + /* + * Make sure that we won't consume more bytes + * from the parent frame than the inferred limit. + */ + size = limit_len; + } + } + + if(opt_tlv_form) + *opt_tlv_form = tlv_constr; + if(expect_00_terminators) + *last_length = -expect_00_terminators; + else + *last_length = tlv_len; + + RETURN(RC_OK); +} diff --git a/src/du_app/F1AP/asn/ber_decoder.h b/src/du_app/F1AP/asn/ber_decoder.h new file mode 100755 index 000000000..1ac2a5ef0 --- /dev/null +++ b/src/du_app/F1AP/asn/ber_decoder.h @@ -0,0 +1,66 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _BER_DECODER_H_ +#define _BER_DECODER_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ +struct asn_codec_ctx_s; /* Forward declaration */ + +/* + * The BER decoder of any type. + * This function may be invoked directly from the application. + * Decodes BER, DER and CER data (DER and CER are different subsets of BER). + * + * NOTE: Use the der_encode() function (der_encoder.h) to produce encoding + * which is compliant with ber_decode(). + */ +asn_dec_rval_t ber_decode( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size /* Size of that buffer */ +); + +/* + * Type of generic function which decodes the byte stream into the structure. + */ +typedef asn_dec_rval_t(ber_type_decoder_f)( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, void **struct_ptr, + const void *buf_ptr, size_t size, int tag_mode); + +/******************************* + * INTERNALLY USEFUL FUNCTIONS * + *******************************/ + +/* + * Check that all tags correspond to the type definition (as given in head). + * On return, last_length would contain either a non-negative length of the + * value part of the last TLV, or the negative number of expected + * "end of content" sequences. The number may only be negative if the + * head->last_tag_form is non-zero. + */ +asn_dec_rval_t ber_check_tags( + const struct asn_codec_ctx_s *opt_codec_ctx, /* codec options */ + const struct asn_TYPE_descriptor_s *type_descriptor, + asn_struct_ctx_t *opt_ctx, /* saved decoding context */ + const void *ptr, size_t size, + int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ + int last_tag_form, /* {-1,0:1}: any, primitive, constr */ + ber_tlv_len_t *last_length, int *opt_tlv_form /* optional tag form */ +); + +#ifdef __cplusplus +} +#endif + +#endif /* _BER_DECODER_H_ */ diff --git a/src/du_app/F1AP/asn/ber_tlv_length.c b/src/du_app/F1AP/asn/ber_tlv_length.c new file mode 100755 index 000000000..0a0deec1a --- /dev/null +++ b/src/du_app/F1AP/asn/ber_tlv_length.c @@ -0,0 +1,168 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +ssize_t +ber_fetch_length(int _is_constructed, const void *bufptr, size_t size, + ber_tlv_len_t *len_r) { + const uint8_t *buf = (const uint8_t *)bufptr; + unsigned oct; + + if(size == 0) + return 0; /* Want more */ + + oct = *(const uint8_t *)buf; + if((oct & 0x80) == 0) { + /* + * Short definite length. + */ + *len_r = oct; /* & 0x7F */ + return 1; + } else { + ber_tlv_len_t len; + size_t skipped; + + if(_is_constructed && oct == 0x80) { + *len_r = -1; /* Indefinite length */ + return 1; + } + + if(oct == 0xff) { + /* Reserved in standard for future use. */ + return -1; + } + + oct &= 0x7F; /* Leave only the 7 LS bits */ + for(len = 0, buf++, skipped = 1; + oct && (++skipped <= size); buf++, oct--) { + + /* Verify that we won't overflow. */ + if(!(len >> ((8 * sizeof(len)) - (8+1)))) { + len = (len << 8) | *buf; + } else { + /* Too large length value. */ + return -1; + } + } + + if(oct == 0) { + if(len < 0 || len > RSSIZE_MAX) { + /* Length value out of sane range. */ + return -1; + } + + *len_r = len; + return skipped; + } + + return 0; /* Want more */ + } + +} + +ssize_t +ber_skip_length(const asn_codec_ctx_t *opt_codec_ctx, + int _is_constructed, const void *ptr, size_t size) { + ber_tlv_len_t vlen; /* Length of V in TLV */ + ssize_t tl; /* Length of L in TLV */ + ssize_t ll; /* Length of L in TLV */ + size_t skip; + + /* + * Make sure we didn't exceed the maximum stack size. + */ + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + return -1; + + /* + * Determine the size of L in TLV. + */ + ll = ber_fetch_length(_is_constructed, ptr, size, &vlen); + if(ll <= 0) return ll; + + /* + * Definite length. + */ + if(vlen >= 0) { + skip = ll + vlen; + if(skip > size) + return 0; /* Want more */ + return skip; + } + + /* + * Indefinite length! + */ + ASN_DEBUG("Skipping indefinite length"); + for(skip = ll, ptr = ((const char *)ptr) + ll, size -= ll;;) { + ber_tlv_tag_t tag; + + /* Fetch the tag */ + tl = ber_fetch_tag(ptr, size, &tag); + if(tl <= 0) return tl; + + ll = ber_skip_length(opt_codec_ctx, + BER_TLV_CONSTRUCTED(ptr), + ((const char *)ptr) + tl, size - tl); + if(ll <= 0) return ll; + + skip += tl + ll; + + /* + * This may be the end of the indefinite length structure, + * two consecutive 0 octets. + * Check if it is true. + */ + if(((const uint8_t *)ptr)[0] == 0 + && ((const uint8_t *)ptr)[1] == 0) + return skip; + + ptr = ((const char *)ptr) + tl + ll; + size -= tl + ll; + } + + /* UNREACHABLE */ +} + +size_t +der_tlv_length_serialize(ber_tlv_len_t len, void *bufp, size_t size) { + size_t required_size; /* Size of len encoding */ + uint8_t *buf = (uint8_t *)bufp; + uint8_t *end; + int i; + + if(len <= 127) { + /* Encoded in 1 octet */ + if(size) *buf = (uint8_t)len; + return 1; + } + + /* + * Compute the size of the subsequent bytes. + */ + for(required_size = 1, i = 8; i < 8 * (int)sizeof(len); i += 8) { + if(len >> i) + required_size++; + else + break; + } + + if(size <= required_size) + return required_size + 1; + + *buf++ = (uint8_t)(0x80 | required_size); /* Length of the encoding */ + + /* + * Produce the len encoding, space permitting. + */ + end = buf + required_size; + for(i -= 8; buf < end; i -= 8, buf++) + *buf = (uint8_t)(len >> i); + + return required_size + 1; +} + diff --git a/src/du_app/F1AP/asn/ber_tlv_length.h b/src/du_app/F1AP/asn/ber_tlv_length.h new file mode 100755 index 000000000..d1e4d48dd --- /dev/null +++ b/src/du_app/F1AP/asn/ber_tlv_length.h @@ -0,0 +1,50 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _BER_TLV_LENGTH_H_ +#define _BER_TLV_LENGTH_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef ssize_t ber_tlv_len_t; + +/* + * This function tries to fetch the length of the BER TLV value and place it + * in *len_r. + * RETURN VALUES: + * 0: More data expected than bufptr contains. + * -1: Fatal error deciphering length. + * >0: Number of bytes used from bufptr. + * On return with >0, len_r is constrained as -1..MAX, where -1 mean + * that the value is of indefinite length. + */ +ssize_t ber_fetch_length(int _is_constructed, const void *bufptr, size_t size, + ber_tlv_len_t *len_r); + +/* + * This function expects bufptr to be positioned over L in TLV. + * It returns number of bytes occupied by L and V together, suitable + * for skipping. The function properly handles indefinite length. + * RETURN VALUES: + * Standard {-1,0,>0} convention. + */ +ssize_t ber_skip_length( + const struct asn_codec_ctx_s *opt_codec_ctx, /* optional context */ + int _is_constructed, const void *bufptr, size_t size); + +/* + * This function serializes the length (L from TLV) in DER format. + * It always returns number of bytes necessary to represent the length, + * it is a caller's responsibility to check the return value + * against the supplied buffer's size. + */ +size_t der_tlv_length_serialize(ber_tlv_len_t len, void *bufptr, size_t size); + +#ifdef __cplusplus +} +#endif + +#endif /* _BER_TLV_LENGTH_H_ */ diff --git a/src/du_app/F1AP/asn/ber_tlv_tag.c b/src/du_app/F1AP/asn/ber_tlv_tag.c new file mode 100755 index 000000000..4a7d732f8 --- /dev/null +++ b/src/du_app/F1AP/asn/ber_tlv_tag.c @@ -0,0 +1,144 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +ssize_t +ber_fetch_tag(const void *ptr, size_t size, ber_tlv_tag_t *tag_r) { + ber_tlv_tag_t val; + ber_tlv_tag_t tclass; + size_t skipped; + + if(size == 0) + return 0; + + val = *(const uint8_t *)ptr; + tclass = (val >> 6); + if((val &= 0x1F) != 0x1F) { + /* + * Simple form: everything encoded in a single octet. + * Tag Class is encoded using two least significant bits. + */ + *tag_r = (val << 2) | tclass; + return 1; + } + + /* + * Each octet contains 7 bits of useful information. + * The MSB is 0 if it is the last octet of the tag. + */ + for(val = 0, ptr = ((const char *)ptr) + 1, skipped = 2; + skipped <= size; + ptr = ((const char *)ptr) + 1, skipped++) { + unsigned int oct = *(const uint8_t *)ptr; + if(oct & 0x80) { + val = (val << 7) | (oct & 0x7F); + /* + * Make sure there are at least 9 bits spare + * at the MS side of a value. + */ + if(val >> ((8 * sizeof(val)) - 9)) { + /* + * We would not be able to accomodate + * any more tag bits. + */ + return -1; + } + } else { + val = (val << 7) | oct; + *tag_r = (val << 2) | tclass; + return skipped; + } + } + + return 0; /* Want more */ +} + + +ssize_t +ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *f) { + char buf[sizeof("[APPLICATION ]") + 32]; + ssize_t ret; + + ret = ber_tlv_tag_snprint(tag, buf, sizeof(buf)); + if(ret >= (ssize_t)sizeof(buf) || ret < 2) { + errno = EPERM; + return -1; + } + + return fwrite(buf, 1, ret, f); +} + +ssize_t +ber_tlv_tag_snprint(ber_tlv_tag_t tag, char *buf, size_t size) { + const char *type = 0; + int ret; + + switch(tag & 0x3) { + case ASN_TAG_CLASS_UNIVERSAL: type = "UNIVERSAL "; break; + case ASN_TAG_CLASS_APPLICATION: type = "APPLICATION "; break; + case ASN_TAG_CLASS_CONTEXT: type = ""; break; + case ASN_TAG_CLASS_PRIVATE: type = "PRIVATE "; break; + } + + ret = snprintf(buf, size, "[%s%u]", type, ((unsigned)tag) >> 2); + if(ret <= 0 && size) buf[0] = '\0'; /* against broken libc's */ + + return ret; +} + +char * +ber_tlv_tag_string(ber_tlv_tag_t tag) { + static char buf[sizeof("[APPLICATION ]") + 32]; + + (void)ber_tlv_tag_snprint(tag, buf, sizeof(buf)); + + return buf; +} + + +size_t +ber_tlv_tag_serialize(ber_tlv_tag_t tag, void *bufp, size_t size) { + int tclass = BER_TAG_CLASS(tag); + ber_tlv_tag_t tval = BER_TAG_VALUE(tag); + uint8_t *buf = (uint8_t *)bufp; + uint8_t *end; + size_t required_size; + size_t i; + + if(tval <= 30) { + /* Encoded in 1 octet */ + if(size) buf[0] = (tclass << 6) | tval; + return 1; + } else if(size) { + *buf++ = (tclass << 6) | 0x1F; + size--; + } + + /* + * Compute the size of the subsequent bytes. + */ + for(required_size = 1, i = 7; i < 8 * sizeof(tval); i += 7) { + if(tval >> i) + required_size++; + else + break; + } + + if(size < required_size) + return required_size + 1; + + /* + * Fill in the buffer, space permitting. + */ + end = buf + required_size - 1; + for(i -= 7; buf < end; i -= 7, buf++) + *buf = 0x80 | ((tval >> i) & 0x7F); + *buf = (tval & 0x7F); /* Last octet without high bit */ + + return required_size + 1; +} + diff --git a/src/du_app/F1AP/asn/ber_tlv_tag.h b/src/du_app/F1AP/asn/ber_tlv_tag.h new file mode 100755 index 000000000..ce227add6 --- /dev/null +++ b/src/du_app/F1AP/asn/ber_tlv_tag.h @@ -0,0 +1,60 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _BER_TLV_TAG_H_ +#define _BER_TLV_TAG_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +enum asn_tag_class { + ASN_TAG_CLASS_UNIVERSAL = 0, /* 0b00 */ + ASN_TAG_CLASS_APPLICATION = 1, /* 0b01 */ + ASN_TAG_CLASS_CONTEXT = 2, /* 0b10 */ + ASN_TAG_CLASS_PRIVATE = 3 /* 0b11 */ +}; +typedef unsigned ber_tlv_tag_t; /* BER TAG from Tag-Length-Value */ + +/* + * Tag class is encoded together with tag value for optimization purposes. + */ +#define BER_TAG_CLASS(tag) ((tag) & 0x3) +#define BER_TAG_VALUE(tag) ((tag) >> 2) +#define BER_TLV_CONSTRUCTED(tagptr) (((*(const uint8_t *)tagptr)&0x20)?1:0) + +#define BER_TAGS_EQUAL(tag1, tag2) ((tag1) == (tag2)) + +/* + * Several functions for printing the TAG in the canonical form + * (i.e. "[PRIVATE 0]"). + * Return values correspond to their libc counterparts (if any). + */ +ssize_t ber_tlv_tag_snprint(ber_tlv_tag_t tag, char *buf, size_t buflen); +ssize_t ber_tlv_tag_fwrite(ber_tlv_tag_t tag, FILE *); +char *ber_tlv_tag_string(ber_tlv_tag_t tag); + + +/* + * This function tries to fetch the tag from the input stream. + * RETURN VALUES: + * 0: More data expected than bufptr contains. + * -1: Fatal error deciphering tag. + * >0: Number of bytes used from bufptr. tag_r will contain the tag. + */ +ssize_t ber_fetch_tag(const void *bufptr, size_t size, ber_tlv_tag_t *tag_r); + +/* + * This function serializes the tag (T from TLV) in BER format. + * It always returns number of bytes necessary to represent the tag, + * it is a caller's responsibility to check the return value + * against the supplied buffer's size. + */ +size_t ber_tlv_tag_serialize(ber_tlv_tag_t tag, void *bufptr, size_t size); + +#ifdef __cplusplus +} +#endif + +#endif /* _BER_TLV_TAG_H_ */ diff --git a/src/du_app/F1AP/asn/constr_CHOICE.c b/src/du_app/F1AP/asn/constr_CHOICE.c new file mode 100755 index 000000000..86dcbb030 --- /dev/null +++ b/src/du_app/F1AP/asn/constr_CHOICE.c @@ -0,0 +1,1533 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Number of bytes left for this structure. + * (ctx->left) indicates the number of bytes _transferred_ for the structure. + * (size) contains the number of bytes in the buffer passed. + */ +#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) + +/* + * If the subprocessor function returns with an indication that it wants + * more data, it may well be a fatal decoding problem, because the + * size is constrained by the 's L, even if the buffer size allows + * reading more data. + * For example, consider the buffer containing the following TLVs: + * ... + * The TLV length clearly indicates that one byte is expected in V, but + * if the V processor returns with "want more data" even if the buffer + * contains way more data than the V processor have seen. + */ +#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) + +/* + * This macro "eats" the part of the buffer which is definitely "consumed", + * i.e. was correctly converted into local representation or rightfully skipped. + */ +#undef ADVANCE +#define ADVANCE(num_bytes) do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num;\ + size -= num; \ + if(ctx->left >= 0) \ + ctx->left -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Switch to the next phase of parsing. + */ +#undef NEXT_PHASE +#define NEXT_PHASE(ctx) do { \ + ctx->phase++; \ + ctx->step = 0; \ + } while(0) + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) do { \ + rval.code = _code; \ + rval.consumed = consumed_myself;\ + return rval; \ + } while(0) + +/* + * See the definitions. + */ +static unsigned _fetch_present_idx(const void *struct_ptr, unsigned off, + unsigned size); +static void _set_present_idx(void *sptr, unsigned offset, unsigned size, + unsigned pres); +static const void *_get_member_ptr(const asn_TYPE_descriptor_t *, + const void *sptr, asn_TYPE_member_t **elm, + unsigned *present); + +/* + * Tags are canonically sorted in the tag to member table. + */ +static int +_search4tag(const void *ap, const void *bp) { + const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; + const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; + + int a_class = BER_TAG_CLASS(a->el_tag); + int b_class = BER_TAG_CLASS(b->el_tag); + + if(a_class == b_class) { + ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); + ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); + + if(a_value == b_value) + return 0; + else if(a_value < b_value) + return -1; + else + return 1; + } else if(a_class < b_class) { + return -1; + } else { + return 1; + } +} + +/* + * The decoder of the CHOICE type. + */ +asn_dec_rval_t +CHOICE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const void *ptr, size_t size, int tag_mode) { + /* + * Bring closer parts of structure description. + */ + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + asn_TYPE_member_t *elements = td->elements; + + /* + * Parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + ber_tlv_tag_t tlv_tag; /* T from TLV */ + ssize_t tag_len; /* Length of TLV's T */ + asn_dec_rval_t rval; /* Return code from subparsers */ + + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + + ASN_DEBUG("Decoding %s as CHOICE", td->name); + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) { + RETURN(RC_FAIL); + } + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + /* + * Start to parse where left previously + */ + switch(ctx->phase) { + case 0: + /* + * PHASE 0. + * Check that the set of tags associated with given structure + * perfectly fits our expectations. + */ + + if(tag_mode || td->tags_count) { + rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, + tag_mode, -1, &ctx->left, 0); + if(rval.code != RC_OK) { + ASN_DEBUG("%s tagging check failed: %d", + td->name, rval.code); + return rval; + } + + if(ctx->left >= 0) { + /* ?Substracted below! */ + ctx->left += rval.consumed; + } + ADVANCE(rval.consumed); + } else { + ctx->left = -1; + } + + NEXT_PHASE(ctx); + + ASN_DEBUG("Structure consumes %ld bytes, buffer %ld", + (long)ctx->left, (long)size); + + /* Fall through */ + case 1: + /* + * Fetch the T from TLV. + */ + tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); + ASN_DEBUG("In %s CHOICE tag length %d", td->name, (int)tag_len); + switch(tag_len) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + do { + const asn_TYPE_tag2member_t *t2m; + asn_TYPE_tag2member_t key; + + key.el_tag = tlv_tag; + t2m = (const asn_TYPE_tag2member_t *)bsearch(&key, + specs->tag2el, specs->tag2el_count, + sizeof(specs->tag2el[0]), _search4tag); + if(t2m) { + /* + * Found the element corresponding to the tag. + */ + NEXT_PHASE(ctx); + ctx->step = t2m->el_no; + break; + } else if(specs->ext_start == -1) { + ASN_DEBUG("Unexpected tag %s " + "in non-extensible CHOICE %s", + ber_tlv_tag_string(tlv_tag), td->name); + RETURN(RC_FAIL); + } else { + /* Skip this tag */ + ssize_t skip; + + ASN_DEBUG("Skipping unknown tag %s", + ber_tlv_tag_string(tlv_tag)); + + skip = ber_skip_length(opt_codec_ctx, + BER_TLV_CONSTRUCTED(ptr), + (const char *)ptr + tag_len, + LEFT - tag_len); + + switch(skip) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + ADVANCE(skip + tag_len); + RETURN(RC_OK); + } + } while(0); + + case 2: + /* + * PHASE 2. + * Read in the element. + */ + do { + asn_TYPE_member_t *elm;/* CHOICE's element */ + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + + elm = &elements[ctx->step]; + + /* + * Compute the position of the member inside a structure, + * and also a type of containment (it may be contained + * as pointer or using inline inclusion). + */ + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + /* + * A pointer to a pointer + * holding the start of the structure + */ + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + /* Set presence to be able to free it properly at any time */ + _set_present_idx(st, specs->pres_offset, + specs->pres_size, ctx->step + 1); + /* + * Invoke the member fetch routine according to member's type + */ + rval = elm->type->op->ber_decoder(opt_codec_ctx, elm->type, + memb_ptr2, ptr, LEFT, elm->tag_mode); + switch(rval.code) { + case RC_OK: + break; + case RC_WMORE: /* More data expected */ + if(!SIZE_VIOLATION) { + ADVANCE(rval.consumed); + RETURN(RC_WMORE); + } + RETURN(RC_FAIL); + case RC_FAIL: /* Fatal error */ + RETURN(rval.code); + } /* switch(rval) */ + + ADVANCE(rval.consumed); + } while(0); + + NEXT_PHASE(ctx); + + /* Fall through */ + case 3: + ASN_DEBUG("CHOICE %s Leftover: %ld, size = %ld, tm=%d, tc=%d", + td->name, (long)ctx->left, (long)size, + tag_mode, td->tags_count); + + if(ctx->left > 0) { + /* + * The type must be fully decoded + * by the CHOICE member-specific decoder. + */ + RETURN(RC_FAIL); + } + + if(ctx->left == -1 + && !(tag_mode || td->tags_count)) { + /* + * This is an untagged CHOICE. + * It doesn't contain nothing + * except for the member itself, including all its tags. + * The decoding is completed. + */ + NEXT_PHASE(ctx); + break; + } + + /* + * Read in the "end of data chunks"'s. + */ + while(ctx->left < 0) { + ssize_t tl; + + tl = ber_fetch_tag(ptr, LEFT, &tlv_tag); + switch(tl) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + /* + * Expected <0><0>... + */ + if(((const uint8_t *)ptr)[0] == 0) { + if(LEFT < 2) { + if(SIZE_VIOLATION) + RETURN(RC_FAIL); + else + RETURN(RC_WMORE); + } else if(((const uint8_t *)ptr)[1] == 0) { + /* + * Correctly finished with <0><0>. + */ + ADVANCE(2); + ctx->left++; + continue; + } + } else { + ASN_DEBUG("Unexpected continuation in %s", + td->name); + RETURN(RC_FAIL); + } + + /* UNREACHABLE */ + } + + NEXT_PHASE(ctx); + case 4: + /* No meaningful work here */ + break; + } + + RETURN(RC_OK); +} + +asn_enc_rval_t +CHOICE_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, + void *app_key) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + asn_TYPE_member_t *elm; /* CHOICE element */ + asn_enc_rval_t erval = {0,0,0}; + const void *memb_ptr; + size_t computed_size = 0; + unsigned present; + + if(!sptr) ASN__ENCODE_FAILED; + + ASN_DEBUG("%s %s as CHOICE", + cb?"Encoding":"Estimating", td->name); + + present = _fetch_present_idx(sptr, + specs->pres_offset, specs->pres_size); + + /* + * If the structure was not initialized, it cannot be encoded: + * can't deduce what to encode in the choice type. + */ + if(present == 0 || present > td->elements_count) { + if(present == 0 && td->elements_count == 0) { + /* The CHOICE is empty?! */ + erval.encoded = 0; + ASN__ENCODED_OK(erval); + } + ASN__ENCODE_FAILED; + } + + /* + * Seek over the present member of the structure. + */ + elm = &td->elements[present-1]; + if(elm->flags & ATF_POINTER) { + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(memb_ptr == 0) { + if(elm->optional) { + erval.encoded = 0; + ASN__ENCODED_OK(erval); + } + /* Mandatory element absent */ + ASN__ENCODE_FAILED; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + /* + * If the CHOICE itself is tagged EXPLICIT: + * T ::= [2] EXPLICIT CHOICE { ... } + * Then emit the appropriate tags. + */ + if(tag_mode == 1 || td->tags_count) { + /* + * For this, we need to pre-compute the member. + */ + ssize_t ret; + + /* Encode member with its tag */ + erval = elm->type->op->der_encoder(elm->type, memb_ptr, + elm->tag_mode, elm->tag, 0, 0); + if(erval.encoded == -1) + return erval; + + /* Encode CHOICE with parent or my own tag */ + ret = der_write_tags(td, erval.encoded, tag_mode, 1, tag, + cb, app_key); + if(ret == -1) + ASN__ENCODE_FAILED; + computed_size += ret; + } + + /* + * Encode the single underlying member. + */ + erval = elm->type->op->der_encoder(elm->type, memb_ptr, + elm->tag_mode, elm->tag, cb, app_key); + if(erval.encoded == -1) + return erval; + + ASN_DEBUG("Encoded CHOICE member in %ld bytes (+%ld)", + (long)erval.encoded, (long)computed_size); + + erval.encoded += computed_size; + + return erval; +} + +ber_tlv_tag_t +CHOICE_outmost_tag(const asn_TYPE_descriptor_t *td, const void *ptr, int tag_mode, ber_tlv_tag_t tag) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + unsigned present; + + assert(tag_mode == 0); (void)tag_mode; + assert(tag == 0); (void)tag; + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size); + + if(present > 0 && present <= td->elements_count) { + const asn_TYPE_member_t *elm = &td->elements[present-1]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *) + ((const char *)ptr + elm->memb_offset); + } else { + memb_ptr = (const void *) + ((const char *)ptr + elm->memb_offset); + } + + return asn_TYPE_outmost_tag(elm->type, memb_ptr, + elm->tag_mode, elm->tag); + } else { + return (ber_tlv_tag_t)-1; + } +} + +int +CHOICE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + unsigned present; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); + if(present > 0 && present <= td->elements_count) { + asn_TYPE_member_t *elm = &td->elements[present-1]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) { + if(elm->optional) + return 0; + ASN__CTFAIL(app_key, td, sptr, + "%s: mandatory CHOICE element %s absent (%s:%d)", + td->name, elm->name, __FILE__, __LINE__); + return -1; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + if(elm->encoding_constraints.general_constraints) { + return elm->encoding_constraints.general_constraints(elm->type, memb_ptr, + ctfailcb, app_key); + } else { + return elm->type->encoding_constraints.general_constraints(elm->type, + memb_ptr, ctfailcb, app_key); + } + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: no CHOICE element given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +#undef XER_ADVANCE +#define XER_ADVANCE(num_bytes) do { \ + size_t num = num_bytes; \ + buf_ptr = (const void *)(((const char *)buf_ptr) + num); \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Decode the XER (XML) data. + */ +asn_dec_rval_t +CHOICE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const char *opt_mname, const void *buf_ptr, size_t size) { + /* + * Bring closer parts of structure description. + */ + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; + + /* + * Parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + asn_dec_rval_t rval; /* Return value of a decoder */ + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + size_t edx; /* Element index */ + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) RETURN(RC_FAIL); + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + if(ctx->phase == 0 && !*xml_tag) + ctx->phase = 1; /* Skip the outer tag checking phase */ + + /* + * Phases of XER/XML processing: + * Phase 0: Check that the opening tag matches our expectations. + * Phase 1: Processing body and reacting on closing tag. + * Phase 2: Processing inner type. + * Phase 3: Only waiting for closing tag. + * Phase 4: Skipping unknown extensions. + * Phase 5: PHASED OUT + */ + for(edx = ctx->step; ctx->phase <= 4;) { + pxer_chunk_type_e ch_type; /* XER chunk type */ + ssize_t ch_size; /* Chunk size */ + xer_check_tag_e tcv; /* Tag check value */ + asn_TYPE_member_t *elm; + + /* + * Go inside the member. + */ + if(ctx->phase == 2) { + asn_dec_rval_t tmprval; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + unsigned old_present; + + elm = &td->elements[edx]; + + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + + /* Start/Continue decoding the inner member */ + tmprval = elm->type->op->xer_decoder(opt_codec_ctx, + elm->type, memb_ptr2, elm->name, + buf_ptr, size); + XER_ADVANCE(tmprval.consumed); + ASN_DEBUG("XER/CHOICE: itdf: [%s] code=%d", + elm->type->name, tmprval.code); + old_present = _fetch_present_idx(st, + specs->pres_offset, specs->pres_size); + assert(old_present == 0 || old_present == edx + 1); + /* Record what we've got */ + _set_present_idx(st, + specs->pres_offset, specs->pres_size, edx + 1); + if(tmprval.code != RC_OK) + RETURN(tmprval.code); + ctx->phase = 3; + /* Fall through */ + } + + /* No need to wait for closing tag; special mode. */ + if(ctx->phase == 3 && !*xml_tag) { + ctx->phase = 5; /* Phase out */ + RETURN(RC_OK); + } + + /* + * Get the next part of the XML stream. + */ + ch_size = xer_next_token(&ctx->context, buf_ptr, size, &ch_type); + if(ch_size == -1) { + RETURN(RC_FAIL); + } else { + switch(ch_type) { + case PXER_WMORE: + RETURN(RC_WMORE); + case PXER_COMMENT: /* Got XML comment */ + case PXER_TEXT: /* Ignore free-standing text */ + XER_ADVANCE(ch_size); /* Skip silently */ + continue; + case PXER_TAG: + break; /* Check the rest down there */ + } + } + + tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); + ASN_DEBUG("XER/CHOICE checked [%c%c%c%c] vs [%s], tcv=%d", + ch_size>0?((const uint8_t *)buf_ptr)[0]:'?', + ch_size>1?((const uint8_t *)buf_ptr)[1]:'?', + ch_size>2?((const uint8_t *)buf_ptr)[2]:'?', + ch_size>3?((const uint8_t *)buf_ptr)[3]:'?', + xml_tag, tcv); + + /* Skip the extensions section */ + if(ctx->phase == 4) { + ASN_DEBUG("skip_unknown(%d, %ld)", + tcv, (long)ctx->left); + switch(xer_skip_unknown(tcv, &ctx->left)) { + case -1: + ctx->phase = 5; + RETURN(RC_FAIL); + case 1: + ctx->phase = 3; + /* Fall through */ + case 0: + XER_ADVANCE(ch_size); + continue; + case 2: + ctx->phase = 3; + break; + } + } + + switch(tcv) { + case XCT_BOTH: + break; /* No CHOICE? */ + case XCT_CLOSING: + if(ctx->phase != 3) + break; + XER_ADVANCE(ch_size); + ctx->phase = 5; /* Phase out */ + RETURN(RC_OK); + case XCT_OPENING: + if(ctx->phase == 0) { + XER_ADVANCE(ch_size); + ctx->phase = 1; /* Processing body phase */ + continue; + } + /* Fall through */ + case XCT_UNKNOWN_OP: + case XCT_UNKNOWN_BO: + + if(ctx->phase != 1) + break; /* Really unexpected */ + + /* + * Search which inner member corresponds to this tag. + */ + for(edx = 0; edx < td->elements_count; edx++) { + elm = &td->elements[edx]; + tcv = xer_check_tag(buf_ptr,ch_size,elm->name); + switch(tcv) { + case XCT_BOTH: + case XCT_OPENING: + /* + * Process this member. + */ + ctx->step = edx; + ctx->phase = 2; + break; + case XCT_UNKNOWN_OP: + case XCT_UNKNOWN_BO: + continue; + default: + edx = td->elements_count; + break; /* Phase out */ + } + break; + } + if(edx != td->elements_count) + continue; + + /* It is expected extension */ + if(specs->ext_start != -1) { + ASN_DEBUG("Got anticipated extension"); + /* + * Check for (XCT_BOTH or XCT_UNKNOWN_BO) + * By using a mask. Only record a pure + * tags. + */ + if(tcv & XCT_CLOSING) { + /* Found without body */ + ctx->phase = 3; /* Terminating */ + } else { + ctx->left = 1; + ctx->phase = 4; /* Skip ...'s */ + } + XER_ADVANCE(ch_size); + continue; + } + + /* Fall through */ + default: + break; + } + + ASN_DEBUG("Unexpected XML tag [%c%c%c%c] in CHOICE [%s]" + " (ph=%d, tag=%s)", + ch_size>0?((const uint8_t *)buf_ptr)[0]:'?', + ch_size>1?((const uint8_t *)buf_ptr)[1]:'?', + ch_size>2?((const uint8_t *)buf_ptr)[2]:'?', + ch_size>3?((const uint8_t *)buf_ptr)[3]:'?', + td->name, ctx->phase, xml_tag); + break; + } + + ctx->phase = 5; /* Phase out, just in case */ + RETURN(RC_FAIL); +} + + +asn_enc_rval_t +CHOICE_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, + void *app_key) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + unsigned present = 0; + + if(!sptr) + ASN__ENCODE_FAILED; + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); + + if(present == 0 || present > td->elements_count) { + ASN__ENCODE_FAILED; + } else { + asn_enc_rval_t tmper = {0,0,0}; + asn_TYPE_member_t *elm = &td->elements[present-1]; + const void *memb_ptr = NULL; + const char *mname = elm->name; + unsigned int mlen = strlen(mname); + + if(elm->flags & ATF_POINTER) { + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) ASN__ENCODE_FAILED; + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + er.encoded = 0; + + if(!(flags & XER_F_CANONICAL)) ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); + + tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, + ilevel + 1, flags, cb, app_key); + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + + ASN__CALLBACK3("", 1); + } + + if(!(flags & XER_F_CANONICAL)) ASN__TEXT_INDENT(1, ilevel - 1); + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} + +asn_dec_rval_t +CHOICE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + asn_dec_rval_t rv; + const asn_per_constraint_t *ct; + asn_TYPE_member_t *elm; /* CHOICE's element */ + void *memb_ptr; + void **memb_ptr2; + void *st = *sptr; + int value; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + /* + * Create the target structure if it is not present already. + */ + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) ct = &td->encoding_constraints.per_constraints->value; + else ct = 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + value = per_get_few_bits(pd, 1); + if(value < 0) ASN__DECODE_STARVED; + if(value) ct = 0; /* Not restricted */ + } + + if(ct && ct->range_bits >= 0) { + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + ASN_DEBUG("CHOICE %s got index %d in range %d", + td->name, value, ct->range_bits); + if(value > ct->upper_bound) + ASN__DECODE_FAILED; + } else { + if(specs->ext_start == -1) + ASN__DECODE_FAILED; + value = uper_get_nsnnwn(pd); + if(value < 0) ASN__DECODE_STARVED; + value += specs->ext_start; + if((unsigned)value >= td->elements_count) + ASN__DECODE_FAILED; + } + + /* Adjust if canonical order is different from natural order */ + if(specs->from_canonical_order) { + ASN_DEBUG("CHOICE presence from wire %d", value); + value = specs->from_canonical_order[value]; + ASN_DEBUG("CHOICE presence index effective %d", value); + } + + /* Set presence to be able to free it later */ + _set_present_idx(st, specs->pres_offset, specs->pres_size, value + 1); + + elm = &td->elements[value]; + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + ASN_DEBUG("Discovered CHOICE %s encodes %s", td->name, elm->name); + + if(ct && ct->range_bits >= 0) { + rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, memb_ptr2, pd); + } else { + rv = uper_open_type_get(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, memb_ptr2, pd); + } + + if(rv.code != RC_OK) + ASN_DEBUG("Failed to decode %s in %s (CHOICE) %d", + elm->name, td->name, rv.code); + return rv; +} + +asn_enc_rval_t +CHOICE_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + asn_TYPE_member_t *elm; /* CHOICE's element */ + const asn_per_constraint_t *ct; + const void *memb_ptr; + unsigned present; + int present_enc; + + if(!sptr) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %s as CHOICE", td->name); + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ct = 0; + + present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); + + /* + * If the structure was not initialized properly, it cannot be encoded: + * can't deduce what to encode in the choice type. + */ + if(present == 0 || present > td->elements_count) + ASN__ENCODE_FAILED; + else + present--; + + ASN_DEBUG("Encoding %s CHOICE element %d", td->name, present); + + /* Adjust if canonical order is different from natural order */ + if(specs->to_canonical_order) + present_enc = specs->to_canonical_order[present]; + else + present_enc = present; + + if(ct && ct->range_bits >= 0) { + if(present_enc < ct->lower_bound + || present_enc > ct->upper_bound) { + if(ct->flags & APC_EXTENSIBLE) { + ASN_DEBUG( + "CHOICE member %d (enc %d) is an extension (%ld..%ld)", + present, present_enc, ct->lower_bound, ct->upper_bound); + if(per_put_few_bits(po, 1, 1)) + ASN__ENCODE_FAILED; + } else { + ASN__ENCODE_FAILED; + } + ct = 0; + } + } + if(ct && ct->flags & APC_EXTENSIBLE) { + ASN_DEBUG("CHOICE member %d (enc %d) is not an extension (%ld..%ld)", + present, present_enc, ct->lower_bound, ct->upper_bound); + if(per_put_few_bits(po, 0, 1)) + ASN__ENCODE_FAILED; + } + + + elm = &td->elements[present]; + ASN_DEBUG("CHOICE member \"%s\" %d (as %d)", elm->name, present, + present_enc); + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) ASN__ENCODE_FAILED; + } else { + memb_ptr = (const char *)sptr + elm->memb_offset; + } + + if(ct && ct->range_bits >= 0) { + if(per_put_few_bits(po, present_enc, ct->range_bits)) + ASN__ENCODE_FAILED; + + return elm->type->op->uper_encoder( + elm->type, elm->encoding_constraints.per_constraints, memb_ptr, po); + } else { + asn_enc_rval_t rval = {0,0,0}; + if(specs->ext_start == -1) ASN__ENCODE_FAILED; + if(uper_put_nsnnwn(po, present_enc - specs->ext_start)) + ASN__ENCODE_FAILED; + if(uper_open_type_put(elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr, po)) + ASN__ENCODE_FAILED; + rval.encoded = 0; + ASN__ENCODED_OK(rval); + } +} + +asn_dec_rval_t +CHOICE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + asn_dec_rval_t rv; + const asn_per_constraint_t *ct; + const asn_per_constraint_t *ext_ct = NULL; + asn_TYPE_member_t *elm; /* CHOICE's element */ + void *memb_ptr; + void **memb_ptr2; + void *st = *sptr; + int value; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + /* + * Create the target structure if it is not present already. + */ + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ct = 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + value = per_get_few_bits(pd, 1); + if(value < 0) ASN__DECODE_STARVED; + if(value) { + ext_ct = ct; + ct = 0; /* Not restricted */ + } + } + + + if(ct && ct->range_bits >= 0) { + value = per_get_few_bits(pd, ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + ASN_DEBUG("CHOICE %s got index %d in range %d", + td->name, value, ct->range_bits); + if(value > ct->upper_bound) + ASN__DECODE_FAILED; + } else { + if(specs->ext_start == -1) + ASN__DECODE_FAILED; + value = aper_get_nsnnwn(pd, ext_ct->range_bits); + if(value < 0) ASN__DECODE_STARVED; + value += specs->ext_start; + if((unsigned)value >= td->elements_count) + ASN__DECODE_FAILED; + } + + /* Adjust if canonical order is different from natural order */ + if(specs->from_canonical_order) + value = specs->from_canonical_order[value]; + + /* Set presence to be able to free it later */ + _set_present_idx(st, specs->pres_offset, specs->pres_size, value + 1); + + elm = &td->elements[value]; + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + ASN_DEBUG("Discovered CHOICE %s encodes %s", td->name, elm->name); + + if(ct && ct->range_bits >= 0) { + rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, memb_ptr2, pd); + } else { + rv = aper_open_type_get(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, memb_ptr2, pd); + } + + if(rv.code != RC_OK) + ASN_DEBUG("Failed to decode %s in %s (CHOICE) %d", + elm->name, td->name, rv.code); + return rv; +} + +asn_enc_rval_t +CHOICE_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm; /* CHOICE's element */ + const asn_per_constraint_t *ct = NULL; + const asn_per_constraint_t *ext_ct = NULL; + const void *memb_ptr; + unsigned present; + int present_enc; + + if(!sptr) ASN__ENCODE_FAILED; + + ASN_DEBUG("Encoding %s as CHOICE using ALIGNED PER", td->name); + + if(constraints) ct = &constraints->value; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->value; + else ct = NULL; + + present = _fetch_present_idx(sptr, + specs->pres_offset, specs->pres_size); + + /* + * If the structure was not initialized properly, it cannot be encoded: + * can't deduce what to encode in the choice type. + */ + if(present <= 0 || (unsigned)present > td->elements_count) + ASN__ENCODE_FAILED; + else + present--; + + /* Adjust if canonical order is different from natural order */ + if(specs->to_canonical_order) + present_enc = specs->to_canonical_order[present]; + else + present_enc = present; + + ASN_DEBUG("Encoding %s CHOICE element %d", td->name, present); + + if(ct && (ct->range_bits >= 0)) { + // Value is not within the range of the primary values ? + if(present < ct->lower_bound || present > ct->upper_bound) { + if(ct->flags & APC_EXTENSIBLE) { + ASN_DEBUG("CHOICE member %d (enc %d) is an extension (%ld..%ld)", + present, present_enc, ct->lower_bound, ct->upper_bound); + // X691/23.5 Extension marker = 1 + if(per_put_few_bits(po, 1, 1)) { + ASN__ENCODE_FAILED; + } + } else { + ASN__ENCODE_FAILED; + } + // no more need of constraint. + ext_ct = ct; + ct = NULL; + } + } + + if(ct && (ct->flags & APC_EXTENSIBLE)) { + ASN_DEBUG("CHOICE member %d (enc %d) is not an extension (%ld..%ld)", + present, present, ct->lower_bound, ct->upper_bound); + // X691.23.5 Extension marker = 0 + if(per_put_few_bits(po, 0, 1)) { + ASN__ENCODE_FAILED; + } + } + + elm = &td->elements[present]; + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr = *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) ASN__ENCODE_FAILED; + } else { + memb_ptr = (const char *)sptr + elm->memb_offset; + } + + if(ct && (ct->range_bits >= 0)) { + // By construction (ct != 0), the alternative value is a non extended one. + // X691/23.7 X691/23.6 alternative value encoded as a range_bits bits value. + if(per_put_few_bits(po, present_enc, ct->range_bits)) + ASN__ENCODE_FAILED; + + return elm->type->op->aper_encoder(elm->type, elm->encoding_constraints.per_constraints, + memb_ptr, po); + } else { + asn_enc_rval_t rval = {0,0,0}; + if(specs->ext_start == -1) + ASN__ENCODE_FAILED; + // X691/23.8 normally encoded as a small non negative whole number + + if(ext_ct && aper_put_nsnnwn(po, ext_ct->range_bits, present_enc - specs->ext_start)) + ASN__ENCODE_FAILED; + if(aper_open_type_put(elm->type, elm->encoding_constraints.per_constraints, + memb_ptr, po)) + ASN__ENCODE_FAILED; + rval.encoded = 0; + ASN__ENCODED_OK(rval); + } +} + +int +CHOICE_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const asn_CHOICE_specifics_t *specs = (const asn_CHOICE_specifics_t *)td->specifics; + unsigned present; + + if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(sptr, specs->pres_offset,specs->pres_size); + + /* + * Print that element. + */ + if(present > 0 && present <= td->elements_count) { + asn_TYPE_member_t *elm = &td->elements[present-1]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) return (cb("", 8, app_key) < 0) ? -1 : 0; + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + /* Print member's name and stuff */ + if(0) { + if(cb(elm->name, strlen(elm->name), app_key) < 0 + || cb(": ", 2, app_key) < 0) + return -1; + } + + return elm->type->op->print_struct(elm->type, memb_ptr, ilevel, + cb, app_key); + } else { + return (cb("", 8, app_key) < 0) ? -1 : 0; + } +} + +void +CHOICE_free(const asn_TYPE_descriptor_t *td, void *ptr, + enum asn_struct_free_method method) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + unsigned present; + + if(!td || !ptr) + return; + + ASN_DEBUG("Freeing %s as CHOICE", td->name); + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(ptr, specs->pres_offset, specs->pres_size); + + /* + * Free that element. + */ + if(present > 0 && present <= td->elements_count) { + asn_TYPE_member_t *elm = &td->elements[present-1]; + void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(void **)((char *)ptr + elm->memb_offset); + if(memb_ptr) + ASN_STRUCT_FREE(*elm->type, memb_ptr); + } else { + memb_ptr = (void *)((char *)ptr + elm->memb_offset); + ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr); + } + } + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(ptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(ptr, 0, specs->struct_size); + break; + } +} + + +/* + * The following functions functions offer protection against -fshort-enums, + * compatible with little- and big-endian machines. + * If assertion is triggered, either disable -fshort-enums, or add an entry + * here with the ->pres_size of your target stracture. + * Unless the target structure is packed, the ".present" member + * is guaranteed to be aligned properly. ASN.1 compiler itself does not + * produce packed code. + */ +static unsigned +_fetch_present_idx(const void *struct_ptr, unsigned pres_offset, + unsigned pres_size) { + const void *present_ptr; + unsigned present; + + present_ptr = ((const char *)struct_ptr) + pres_offset; + + switch(pres_size) { + case sizeof(int): present = *(const unsigned int *)present_ptr; break; + case sizeof(short): present = *(const unsigned short *)present_ptr; break; + case sizeof(char): present = *(const unsigned char *)present_ptr; break; + default: + /* ANSI C mandates enum to be equivalent to integer */ + assert(pres_size != sizeof(int)); + return 0; /* If not aborted, pass back safe value */ + } + + return present; +} + +static void +_set_present_idx(void *struct_ptr, unsigned pres_offset, unsigned pres_size, + unsigned present) { + void *present_ptr; + present_ptr = ((char *)struct_ptr) + pres_offset; + + switch(pres_size) { + case sizeof(int): *(unsigned int *)present_ptr = present; break; + case sizeof(short): *(unsigned short *)present_ptr = present; break; + case sizeof(char): *(unsigned char *)present_ptr = present; break; + default: + /* ANSI C mandates enum to be equivalent to integer */ + assert(pres_size != sizeof(int)); + } +} + +static const void * +_get_member_ptr(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_TYPE_member_t **elm_ptr, unsigned *present_out) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + unsigned present; + + if(!sptr) { + *elm_ptr = NULL; + *present_out = 0; + return NULL; + } + + /* + * Figure out which CHOICE element is encoded. + */ + present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); + *present_out = present; + + /* + * The presence index is intentionally 1-based to avoid + * treating zeroed structure as a valid one. + */ + if(present > 0 && present <= td->elements_count) { + asn_TYPE_member_t *const elm = &td->elements[present - 1]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + *elm_ptr = elm; + return memb_ptr; + } else { + *elm_ptr = NULL; + return NULL; + } + +} + +int +CHOICE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) { + asn_TYPE_member_t *aelm; + asn_TYPE_member_t *belm; + unsigned apresent = 0; + unsigned bpresent = 0; + const void *amember = _get_member_ptr(td, aptr, &aelm, &apresent); + const void *bmember = _get_member_ptr(td, bptr, &belm, &bpresent); + + if(amember && bmember) { + if(apresent == bpresent) { + assert(aelm == belm); + return aelm->type->op->compare_struct(aelm->type, amember, bmember); + } else if(apresent < bpresent) { + return -1; + } else { + return 1; + } + } else if(!amember) { + return -1; + } else { + return 1; + } +} + +/* + * Return the 1-based choice variant presence index. + * Returns 0 in case of error. + */ +unsigned +CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, const void *sptr) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + return _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); +} + +/* + * Sets or resets the 1-based choice variant presence index. + * In case a previous index is not zero, the currently selected structure + * member is freed and zeroed-out first. + * Returns 0 on success and -1 on error. + */ +int +CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, void *sptr, + unsigned present) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + unsigned old_present; + + if(!sptr) { + return -1; + } + + if(present > td->elements_count) + return -1; + + old_present = + _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size); + if(present == old_present) + return 0; + + if(old_present != 0) { + assert(old_present <= td->elements_count); + ASN_STRUCT_RESET(*td, sptr); + } + + _set_present_idx(sptr, specs->pres_offset, specs->pres_size, present); + + return 0; +} + + +asn_random_fill_result_t +CHOICE_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constr, + size_t max_length) { + const asn_CHOICE_specifics_t *specs = + (const asn_CHOICE_specifics_t *)td->specifics; + asn_random_fill_result_t res; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + const asn_TYPE_member_t *elm; + unsigned present; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + void *st = *sptr; + + if(max_length == 0) return result_skipped; + + (void)constr; + + if(st == NULL) { + st = CALLOC(1, specs->struct_size); + if(st == NULL) { + return result_failed; + } + } + + present = asn_random_between(1, td->elements_count); + elm = &td->elements[present - 1]; + + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + + res = elm->type->op->random_fill(elm->type, memb_ptr2, + &elm->encoding_constraints, max_length); + _set_present_idx(st, specs->pres_offset, specs->pres_size, present); + if(res.code == ARFILL_OK) { + *sptr = st; + } else { + if(st == *sptr) { + ASN_STRUCT_RESET(*td, st); + } else { + ASN_STRUCT_FREE(*td, st); + } + } + + return res; +} + + +asn_TYPE_operation_t asn_OP_CHOICE = { + CHOICE_free, + CHOICE_print, + CHOICE_compare, + CHOICE_decode_ber, + CHOICE_encode_der, + CHOICE_decode_xer, + CHOICE_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + CHOICE_decode_oer, + CHOICE_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + CHOICE_decode_uper, + CHOICE_encode_uper, + CHOICE_decode_aper, + CHOICE_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + CHOICE_random_fill, + CHOICE_outmost_tag +}; diff --git a/src/du_app/F1AP/asn/constr_CHOICE.h b/src/du_app/F1AP/asn/constr_CHOICE.h new file mode 100755 index 000000000..a1999edc4 --- /dev/null +++ b/src/du_app/F1AP/asn/constr_CHOICE.h @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _CONSTR_CHOICE_H_ +#define _CONSTR_CHOICE_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct asn_CHOICE_specifics_s { + /* + * Target structure description. + */ + unsigned struct_size; /* Size of the target structure. */ + unsigned ctx_offset; /* Offset of the asn_codec_ctx_t member */ + unsigned pres_offset; /* Identifier of the present member */ + unsigned pres_size; /* Size of the identifier (enum) */ + + /* + * Tags to members mapping table. + */ + const asn_TYPE_tag2member_t *tag2el; + unsigned tag2el_count; + + /* Canonical ordering of CHOICE elements, for PER */ + const unsigned *to_canonical_order; + const unsigned *from_canonical_order; + + /* + * Extensions-related stuff. + */ + signed ext_start; /* First member of extensions, or -1 */ +} asn_CHOICE_specifics_t; + +/* + * A set specialized functions dealing with the CHOICE type. + */ +asn_struct_free_f CHOICE_free; +asn_struct_print_f CHOICE_print; +asn_struct_compare_f CHOICE_compare; +asn_constr_check_f CHOICE_constraint; +ber_type_decoder_f CHOICE_decode_ber; +der_type_encoder_f CHOICE_encode_der; +xer_type_decoder_f CHOICE_decode_xer; +xer_type_encoder_f CHOICE_encode_xer; +oer_type_decoder_f CHOICE_decode_oer; +oer_type_encoder_f CHOICE_encode_oer; +per_type_decoder_f CHOICE_decode_uper; +per_type_encoder_f CHOICE_encode_uper; +per_type_decoder_f CHOICE_decode_aper; +per_type_encoder_f CHOICE_encode_aper; +asn_outmost_tag_f CHOICE_outmost_tag; +asn_random_fill_f CHOICE_random_fill; +extern asn_TYPE_operation_t asn_OP_CHOICE; + +/* + * Return the 1-based choice variant presence index. + * Returns 0 in case of error. + */ +unsigned CHOICE_variant_get_presence(const asn_TYPE_descriptor_t *td, + const void *structure_ptr); + +/* + * Sets or resets the 1-based choice variant presence index. + * In case a previous index is not zero, the currently selected structure + * member is freed and zeroed-out first. + * Returns 0 on success and -1 on error. + */ +int CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td, + void *structure_ptr, unsigned present); + +#ifdef __cplusplus +} +#endif + +#endif /* _CONSTR_CHOICE_H_ */ diff --git a/src/du_app/F1AP/asn/constr_CHOICE_oer.c b/src/du_app/F1AP/asn/constr_CHOICE_oer.c new file mode 100755 index 000000000..a4c591c8e --- /dev/null +++ b/src/du_app/F1AP/asn/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/src/du_app/F1AP/asn/constr_SEQUENCE.c b/src/du_app/F1AP/asn/constr_SEQUENCE.c new file mode 100755 index 000000000..43dcac70b --- /dev/null +++ b/src/du_app/F1AP/asn/constr_SEQUENCE.c @@ -0,0 +1,2059 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +/* + * Number of bytes left for this structure. + * (ctx->left) indicates the number of bytes _transferred_ for the structure. + * (size) contains the number of bytes in the buffer passed. + */ +#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) + +/* + * If the subprocessor function returns with an indication that it wants + * more data, it may well be a fatal decoding problem, because the + * size is constrained by the 's L, even if the buffer size allows + * reading more data. + * For example, consider the buffer containing the following TLVs: + * ... + * The TLV length clearly indicates that one byte is expected in V, but + * if the V processor returns with "want more data" even if the buffer + * contains way more data than the V processor have seen. + */ +#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) + +/* + * This macro "eats" the part of the buffer which is definitely "consumed", + * i.e. was correctly converted into local representation or rightfully skipped. + */ +#undef ADVANCE +#define ADVANCE(num_bytes) do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num; \ + size -= num; \ + if(ctx->left >= 0) \ + ctx->left -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Switch to the next phase of parsing. + */ +#undef NEXT_PHASE +#undef PHASE_OUT +#define NEXT_PHASE(ctx) do { \ + ctx->phase++; \ + ctx->step = 0; \ + } while(0) +#define PHASE_OUT(ctx) do { ctx->phase = 10; } while(0) + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) do { \ + rval.code = _code; \ + rval.consumed = consumed_myself;\ + return rval; \ + } while(0) + +/* + * Check whether we are inside the extensions group. + */ +#define IN_EXTENSION_GROUP(specs, memb_idx) \ + ((specs)->first_extension >= 0 \ + && (unsigned)(specs)->first_extension <= (memb_idx)) + +/* + * Tags are canonically sorted in the tag2element map. + */ +static int +_t2e_cmp(const void *ap, const void *bp) { + const asn_TYPE_tag2member_t *a = (const asn_TYPE_tag2member_t *)ap; + const asn_TYPE_tag2member_t *b = (const asn_TYPE_tag2member_t *)bp; + + int a_class = BER_TAG_CLASS(a->el_tag); + int b_class = BER_TAG_CLASS(b->el_tag); + + if(a_class == b_class) { + ber_tlv_tag_t a_value = BER_TAG_VALUE(a->el_tag); + ber_tlv_tag_t b_value = BER_TAG_VALUE(b->el_tag); + + if(a_value == b_value) { + if(a->el_no > b->el_no) + return 1; + /* + * Important: we do not check + * for a->el_no <= b->el_no! + */ + return 0; + } else if(a_value < b_value) + return -1; + else + return 1; + } else if(a_class < b_class) { + return -1; + } else { + return 1; + } +} + + +/* + * The decoder of the SEQUENCE type. + */ +asn_dec_rval_t +SEQUENCE_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const void *ptr, size_t size, int tag_mode) { + /* + * Bring closer parts of structure description. + */ + const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; + const asn_TYPE_member_t *elements = td->elements; + + /* + * Parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + ber_tlv_tag_t tlv_tag; /* T from TLV */ + asn_dec_rval_t rval; /* Return code from subparsers */ + + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + size_t edx; /* SEQUENCE element's index */ + + ASN_DEBUG("Decoding %s as SEQUENCE", td->name); + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) { + RETURN(RC_FAIL); + } + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + /* + * Start to parse where left previously + */ + switch(ctx->phase) { + case 0: + /* + * PHASE 0. + * Check that the set of tags associated with given structure + * perfectly fits our expectations. + */ + + rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, + tag_mode, 1, &ctx->left, 0); + if(rval.code != RC_OK) { + ASN_DEBUG("%s tagging check failed: %d", + td->name, rval.code); + return rval; + } + + if(ctx->left >= 0) + ctx->left += rval.consumed; /* ?Substracted below! */ + ADVANCE(rval.consumed); + + NEXT_PHASE(ctx); + + ASN_DEBUG("Structure consumes %ld bytes, buffer %ld", + (long)ctx->left, (long)size); + + /* Fall through */ + case 1: + /* + * PHASE 1. + * From the place where we've left it previously, + * try to decode the next member from the list of + * this structure's elements. + * (ctx->step) stores the member being processed + * between invocations and the microphase {0,1} of parsing + * that member: + * step = ( * 2 + ). + */ + for(edx = ((size_t)ctx->step >> 1); edx < td->elements_count; + edx++, ctx->step = (ctx->step & ~1) + 2) { + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + ssize_t tag_len; /* Length of TLV's T */ + size_t opt_edx_end; /* Next non-optional element */ + size_t n; + int use_bsearch; + + if(ctx->step & 1) + goto microphase2; + + /* + * MICROPHASE 1: Synchronize decoding. + */ + ASN_DEBUG("In %s SEQUENCE left %d, edx=%" ASN_PRI_SIZE " flags=%d" + " opt=%d ec=%d", + td->name, (int)ctx->left, edx, + elements[edx].flags, elements[edx].optional, + td->elements_count); + + if(ctx->left == 0 /* No more stuff is expected */ + && ( + /* Explicit OPTIONAL specification reaches the end */ + (edx + elements[edx].optional == td->elements_count) || + /* All extensions are optional */ + IN_EXTENSION_GROUP(specs, edx))) { + ASN_DEBUG("End of SEQUENCE %s", td->name); + /* + * Found the legitimate end of the structure. + */ + PHASE_OUT(ctx); + RETURN(RC_OK); + } + + /* + * Fetch the T from TLV. + */ + tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); + ASN_DEBUG("Current tag in %s SEQUENCE for element %" ASN_PRI_SIZE " " + "(%s) is %s encoded in %d bytes, of frame %ld", + td->name, edx, elements[edx].name, + ber_tlv_tag_string(tlv_tag), (int)tag_len, (long)LEFT); + switch(tag_len) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) { + if(LEFT < 2) { + if(SIZE_VIOLATION) { + RETURN(RC_FAIL); + } else { + RETURN(RC_WMORE); + } + } else if(((const uint8_t *)ptr)[1] == 0) { + ASN_DEBUG("edx = %" ASN_PRI_SIZE ", opt = %d, ec=%d", edx, + elements[edx].optional, td->elements_count); + if((edx + elements[edx].optional == td->elements_count) + || IN_EXTENSION_GROUP(specs, edx)) { + /* + * Yeah, baby! Found the terminator + * of the indefinite length structure. + */ + /* + * Proceed to the canonical + * finalization function. + * No advancing is necessary. + */ + goto phase3; + } + } + } + + /* + * Find the next available type with this tag. + */ + use_bsearch = 0; + opt_edx_end = edx + elements[edx].optional + 1; + if(opt_edx_end > td->elements_count) + opt_edx_end = td->elements_count; /* Cap */ + else if(opt_edx_end - edx > 8) { + /* Limit the scope of linear search... */ + opt_edx_end = edx + 8; + use_bsearch = 1; + /* ... and resort to bsearch() */ + } + for(n = edx; n < opt_edx_end; n++) { + if(BER_TAGS_EQUAL(tlv_tag, elements[n].tag)) { + /* + * Found element corresponding to the tag + * being looked at. + * Reposition over the right element. + */ + edx = n; + ctx->step = 1 + 2 * edx; /* Remember! */ + goto microphase2; + } else if(elements[n].flags & ATF_ANY_TYPE) { + /* + * This is the ANY type, which may bear + * any flag whatsoever. + */ + edx = n; + ctx->step = 1 + 2 * edx; /* Remember! */ + goto microphase2; + } else if(elements[n].tag == (ber_tlv_tag_t)-1) { + use_bsearch = 1; + break; + } + } + if(use_bsearch) { + /* + * Resort to a binary search over + * sorted array of tags. + */ + const asn_TYPE_tag2member_t *t2m; + asn_TYPE_tag2member_t key = {0, 0, 0, 0}; + key.el_tag = tlv_tag; + key.el_no = edx; + t2m = (const asn_TYPE_tag2member_t *)bsearch(&key, + specs->tag2el, specs->tag2el_count, + sizeof(specs->tag2el[0]), _t2e_cmp); + if(t2m) { + const asn_TYPE_tag2member_t *best = 0; + const asn_TYPE_tag2member_t *t2m_f, *t2m_l; + size_t edx_max = edx + elements[edx].optional; + /* + * Rewind to the first element with that tag, + * `cause bsearch() does not guarantee order. + */ + t2m_f = t2m + t2m->toff_first; + t2m_l = t2m + t2m->toff_last; + for(t2m = t2m_f; t2m <= t2m_l; t2m++) { + if(t2m->el_no > edx_max) break; + if(t2m->el_no < edx) continue; + best = t2m; + } + if(best) { + edx = best->el_no; + ctx->step = 1 + 2 * edx; + goto microphase2; + } + } + n = opt_edx_end; + } + if(n == opt_edx_end) { + /* + * If tag is unknown, it may be either + * an unknown (thus, incorrect) tag, + * or an extension (...), + * or an end of the indefinite-length structure. + */ + if(!IN_EXTENSION_GROUP(specs, + edx + elements[edx].optional)) { + ASN_DEBUG("Unexpected tag %s (at %" ASN_PRI_SIZE ")", + ber_tlv_tag_string(tlv_tag), edx); + ASN_DEBUG("Expected tag %s (%s)%s", + ber_tlv_tag_string(elements[edx].tag), + elements[edx].name, + elements[edx].optional + ?" or alternatives":""); + RETURN(RC_FAIL); + } else { + /* Skip this tag */ + ssize_t skip; + edx += elements[edx].optional; + + ASN_DEBUG("Skipping unexpected %s (at %" ASN_PRI_SIZE ")", + ber_tlv_tag_string(tlv_tag), edx); + skip = ber_skip_length(opt_codec_ctx, + BER_TLV_CONSTRUCTED(ptr), + (const char *)ptr + tag_len, + LEFT - tag_len); + ASN_DEBUG("Skip length %d in %s", + (int)skip, td->name); + switch(skip) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + ADVANCE(skip + tag_len); + ctx->step -= 2; + edx--; + continue; /* Try again with the next tag */ + } + } + + /* + * MICROPHASE 2: Invoke the member-specific decoder. + */ + ctx->step |= 1; /* Confirm entering next microphase */ + microphase2: + ASN_DEBUG("Inside SEQUENCE %s MF2", td->name); + + /* + * Compute the position of the member inside a structure, + * and also a type of containment (it may be contained + * as pointer or using inline inclusion). + */ + if(elements[edx].flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elements[edx].memb_offset); + } else { + /* + * A pointer to a pointer + * holding the start of the structure + */ + memb_ptr = (char *)st + elements[edx].memb_offset; + memb_ptr2 = &memb_ptr; + } + /* + * Invoke the member fetch routine according to member's type + */ + if(elements[edx].flags & ATF_OPEN_TYPE) { + rval = OPEN_TYPE_ber_get(opt_codec_ctx, td, st, &elements[edx], ptr, LEFT); + } else { + rval = elements[edx].type->op->ber_decoder(opt_codec_ctx, + elements[edx].type, + memb_ptr2, ptr, LEFT, + elements[edx].tag_mode); + } + ASN_DEBUG("In %s SEQUENCE decoded %" ASN_PRI_SIZE " %s of %d " + "in %d bytes rval.code %d, size=%d", + td->name, edx, elements[edx].type->name, + (int)LEFT, (int)rval.consumed, rval.code, (int)size); + switch(rval.code) { + case RC_OK: + break; + case RC_WMORE: /* More data expected */ + if(!SIZE_VIOLATION) { + ADVANCE(rval.consumed); + RETURN(RC_WMORE); + } + ASN_DEBUG("Size violation (c->l=%ld <= s=%ld)", + (long)ctx->left, (long)size); + /* Fall through */ + case RC_FAIL: /* Fatal error */ + RETURN(RC_FAIL); + } /* switch(rval) */ + + ADVANCE(rval.consumed); + } /* for(all structure members) */ + + phase3: + ctx->phase = 3; + /* Fall through */ + case 3: /* 00 and other tags expected */ + case 4: /* only 00's expected */ + + ASN_DEBUG("SEQUENCE %s Leftover: %ld, size = %ld", + td->name, (long)ctx->left, (long)size); + + /* + * Skip everything until the end of the SEQUENCE. + */ + while(ctx->left) { + ssize_t tl, ll; + + tl = ber_fetch_tag(ptr, LEFT, &tlv_tag); + switch(tl) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + /* + * If expected <0><0>... + */ + if(ctx->left < 0 + && ((const uint8_t *)ptr)[0] == 0) { + if(LEFT < 2) { + if(SIZE_VIOLATION) + RETURN(RC_FAIL); + else + RETURN(RC_WMORE); + } else if(((const uint8_t *)ptr)[1] == 0) { + /* + * Correctly finished with <0><0>. + */ + ADVANCE(2); + ctx->left++; + ctx->phase = 4; + continue; + } + } + + if(!IN_EXTENSION_GROUP(specs, td->elements_count) + || ctx->phase == 4) { + ASN_DEBUG("Unexpected continuation " + "of a non-extensible type " + "%s (SEQUENCE): %s", + td->name, + ber_tlv_tag_string(tlv_tag)); + RETURN(RC_FAIL); + } + + ll = ber_skip_length(opt_codec_ctx, + BER_TLV_CONSTRUCTED(ptr), + (const char *)ptr + tl, LEFT - tl); + switch(ll) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + ADVANCE(tl + ll); + } + + PHASE_OUT(ctx); + } + + RETURN(RC_OK); +} + + +/* + * The DER encoder of the SEQUENCE type. + */ +asn_enc_rval_t +SEQUENCE_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + size_t computed_size = 0; + asn_enc_rval_t erval = {0,0,0}; + ssize_t ret; + size_t edx; + + ASN_DEBUG("%s %s as SEQUENCE", + cb?"Encoding":"Estimating", td->name); + + /* + * Gather the length of the underlying members sequence. + */ + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + + const void *memb_ptr; /* Pointer to the member */ + const void *const *memb_ptr2; /* Pointer to that pointer */ + + if(elm->flags & ATF_POINTER) { + memb_ptr2 = + (const void *const *)((const char *)sptr + elm->memb_offset); + if(!*memb_ptr2) { + ASN_DEBUG("Element %s %" ASN_PRI_SIZE " not present", + elm->name, edx); + if(elm->optional) + continue; + /* Mandatory element is missing */ + ASN__ENCODE_FAILED; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + /* Eliminate default values */ + if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) + continue; + + erval = elm->type->op->der_encoder(elm->type, *memb_ptr2, + elm->tag_mode, elm->tag, + 0, 0); + if(erval.encoded == -1) + return erval; + computed_size += erval.encoded; + ASN_DEBUG("Member %" ASN_PRI_SIZE " %s estimated %ld bytes", + edx, elm->name, (long)erval.encoded); + } + + /* + * Encode the TLV for the sequence itself. + */ + ret = der_write_tags(td, computed_size, tag_mode, 1, tag, cb, app_key); + ASN_DEBUG("Wrote tags: %ld (+%ld)", (long)ret, (long)computed_size); + if(ret == -1) + ASN__ENCODE_FAILED; + erval.encoded = computed_size + ret; + + if(!cb) ASN__ENCODED_OK(erval); + + /* + * Encode all members. + */ + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + asn_enc_rval_t tmperval = {0,0,0}; + const void *memb_ptr; /* Pointer to the member */ + const void *const *memb_ptr2; /* Pointer to that pointer */ + + if(elm->flags & ATF_POINTER) { + memb_ptr2 = + (const void *const *)((const char *)sptr + elm->memb_offset); + if(!*memb_ptr2) continue; + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + /* Eliminate default values */ + if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) + continue; + + tmperval = elm->type->op->der_encoder(elm->type, *memb_ptr2, + elm->tag_mode, elm->tag, cb, app_key); + if(tmperval.encoded == -1) + return tmperval; + computed_size -= tmperval.encoded; + ASN_DEBUG("Member %" ASN_PRI_SIZE " %s of SEQUENCE %s encoded in %ld bytes", + edx, elm->name, td->name, (long)tmperval.encoded); + } + + if(computed_size != 0) + /* + * Encoded size is not equal to the computed size. + */ + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(erval); +} + + +#undef XER_ADVANCE +#define XER_ADVANCE(num_bytes) \ + do { \ + size_t num = (num_bytes); \ + ptr = ((const char *)ptr) + num; \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Decode the XER (XML) data. + */ +asn_dec_rval_t +SEQUENCE_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const char *opt_mname, const void *ptr, size_t size) { + /* + * Bring closer parts of structure description. + */ + const asn_SEQUENCE_specifics_t *specs + = (const asn_SEQUENCE_specifics_t *)td->specifics; + asn_TYPE_member_t *elements = td->elements; + const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; + + /* + * ... and parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + asn_dec_rval_t rval; /* Return value from a decoder */ + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + size_t edx; /* Element index */ + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) RETURN(RC_FAIL); + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + + /* + * Phases of XER/XML processing: + * Phase 0: Check that the opening tag matches our expectations. + * Phase 1: Processing body and reacting on closing tag. + * Phase 2: Processing inner type. + * Phase 3: Skipping unknown extensions. + * Phase 4: PHASED OUT + */ + for(edx = ctx->step; ctx->phase <= 3;) { + pxer_chunk_type_e ch_type; /* XER chunk type */ + ssize_t ch_size; /* Chunk size */ + xer_check_tag_e tcv; /* Tag check value */ + asn_TYPE_member_t *elm; + + /* + * Go inside the inner member of a sequence. + */ + if(ctx->phase == 2) { + asn_dec_rval_t tmprval; + void *memb_ptr_dontuse; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + + elm = &td->elements[edx]; + + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr_dontuse = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr_dontuse; /* Only use of memb_ptr_dontuse */ + } + + if(elm->flags & ATF_OPEN_TYPE) { + tmprval = OPEN_TYPE_xer_get(opt_codec_ctx, td, st, elm, ptr, size); + } else { + /* Invoke the inner type decoder, m.b. multiple times */ + tmprval = elm->type->op->xer_decoder(opt_codec_ctx, + elm->type, memb_ptr2, elm->name, + ptr, size); + } + XER_ADVANCE(tmprval.consumed); + if(tmprval.code != RC_OK) + RETURN(tmprval.code); + ctx->phase = 1; /* Back to body processing */ + ctx->step = ++edx; + ASN_DEBUG("XER/SEQUENCE phase => %d, step => %d", + ctx->phase, ctx->step); + /* Fall through */ + } + + /* + * Get the next part of the XML stream. + */ + ch_size = xer_next_token(&ctx->context, ptr, size, + &ch_type); + if(ch_size == -1) { + RETURN(RC_FAIL); + } else { + switch(ch_type) { + case PXER_WMORE: + RETURN(RC_WMORE); + case PXER_COMMENT: /* Got XML comment */ + case PXER_TEXT: /* Ignore free-standing text */ + XER_ADVANCE(ch_size); /* Skip silently */ + continue; + case PXER_TAG: + break; /* Check the rest down there */ + } + } + + tcv = xer_check_tag(ptr, ch_size, xml_tag); + ASN_DEBUG("XER/SEQUENCE: tcv = %d, ph=%d [%s]", + tcv, ctx->phase, xml_tag); + + /* Skip the extensions section */ + if(ctx->phase == 3) { + switch(xer_skip_unknown(tcv, &ctx->left)) { + case -1: + ctx->phase = 4; + RETURN(RC_FAIL); + case 0: + XER_ADVANCE(ch_size); + continue; + case 1: + XER_ADVANCE(ch_size); + ctx->phase = 1; + continue; + case 2: + ctx->phase = 1; + break; + } + } + + switch(tcv) { + case XCT_CLOSING: + if(ctx->phase == 0) break; + ctx->phase = 0; + /* Fall through */ + case XCT_BOTH: + if(ctx->phase == 0) { + if(edx >= td->elements_count || + /* Explicit OPTIONAL specs reaches the end */ + (edx + elements[edx].optional == td->elements_count) || + /* All extensions are optional */ + IN_EXTENSION_GROUP(specs, edx)) { + XER_ADVANCE(ch_size); + ctx->phase = 4; /* Phase out */ + RETURN(RC_OK); + } else { + ASN_DEBUG("Premature end of XER SEQUENCE"); + RETURN(RC_FAIL); + } + } + /* Fall through */ + case XCT_OPENING: + if(ctx->phase == 0) { + XER_ADVANCE(ch_size); + ctx->phase = 1; /* Processing body phase */ + continue; + } + /* Fall through */ + case XCT_UNKNOWN_OP: + case XCT_UNKNOWN_BO: + + ASN_DEBUG("XER/SEQUENCE: tcv=%d, ph=%d, edx=%" ASN_PRI_SIZE "", + tcv, ctx->phase, edx); + if(ctx->phase != 1) { + break; /* Really unexpected */ + } + + if(edx < td->elements_count) { + /* + * Search which member corresponds to this tag. + */ + size_t n; + size_t edx_end = edx + elements[edx].optional + 1; + if(edx_end > td->elements_count) + edx_end = td->elements_count; + for(n = edx; n < edx_end; n++) { + elm = &td->elements[n]; + tcv = xer_check_tag(ptr, ch_size, elm->name); + switch(tcv) { + case XCT_BOTH: + case XCT_OPENING: + /* + * Process this member. + */ + ctx->step = edx = n; + ctx->phase = 2; + break; + case XCT_UNKNOWN_OP: + case XCT_UNKNOWN_BO: + continue; + default: + n = edx_end; + break; /* Phase out */ + } + break; + } + if(n != edx_end) + continue; + } else { + ASN_DEBUG("Out of defined members: %" ASN_PRI_SIZE "/%u", + edx, td->elements_count); + } + + /* It is expected extension */ + if(IN_EXTENSION_GROUP(specs, + edx + (edx < td->elements_count + ? elements[edx].optional : 0))) { + ASN_DEBUG("Got anticipated extension at %" ASN_PRI_SIZE "", + edx); + /* + * Check for (XCT_BOTH or XCT_UNKNOWN_BO) + * By using a mask. Only record a pure + * tags. + */ + if(tcv & XCT_CLOSING) { + /* Found without body */ + } else { + ctx->left = 1; + ctx->phase = 3; /* Skip ...'s */ + } + XER_ADVANCE(ch_size); + continue; + } + + /* Fall through */ + default: + break; + } + + ASN_DEBUG("Unexpected XML tag in SEQUENCE [%c%c%c%c%c%c]", + size>0?((const char *)ptr)[0]:'.', + size>1?((const char *)ptr)[1]:'.', + size>2?((const char *)ptr)[2]:'.', + size>3?((const char *)ptr)[3]:'.', + size>4?((const char *)ptr)[4]:'.', + size>5?((const char *)ptr)[5]:'.'); + break; + } + + ctx->phase = 4; /* "Phase out" on hard failure */ + RETURN(RC_FAIL); +} + +asn_enc_rval_t +SEQUENCE_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t er = {0,0,0}; + int xcan = (flags & XER_F_CANONICAL); + asn_TYPE_descriptor_t *tmp_def_val_td = 0; + void *tmp_def_val = 0; + size_t edx; + + if(!sptr) ASN__ENCODE_FAILED; + + er.encoded = 0; + + for(edx = 0; edx < td->elements_count; edx++) { + asn_enc_rval_t tmper = {0,0,0}; + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; + const char *mname = elm->name; + unsigned int mlen = strlen(mname); + + if(elm->flags & ATF_POINTER) { + memb_ptr = + *(const void *const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) { + assert(tmp_def_val == 0); + if(elm->default_value_set) { + if(elm->default_value_set(&tmp_def_val)) { + ASN__ENCODE_FAILED; + } else { + memb_ptr = tmp_def_val; + tmp_def_val_td = elm->type; + } + } else if(elm->optional) { + continue; + } else { + /* Mandatory element is missing */ + ASN__ENCODE_FAILED; + } + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); + + /* Print the member itself */ + tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, ilevel + 1, + flags, cb, app_key); + if(tmp_def_val) { + ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val); + tmp_def_val = 0; + } + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + + ASN__CALLBACK3("", 1); + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); + + ASN__ENCODED_OK(er); +cb_failed: + if(tmp_def_val) ASN_STRUCT_FREE(*tmp_def_val_td, tmp_def_val); + ASN__ENCODE_FAILED; +} + +int +SEQUENCE_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + size_t edx; + int ret; + + if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* Dump preamble */ + if(cb(td->name, strlen(td->name), app_key) < 0 + || cb(" ::= {", 6, app_key) < 0) + return -1; + + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) { + if(elm->optional) continue; + /* Print line */ + /* Fall through */ + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + /* Indentation */ + _i_INDENT(1); + + /* Print the member's name and stuff */ + if(cb(elm->name, strlen(elm->name), app_key) < 0 + || cb(": ", 2, app_key) < 0) + return -1; + + /* Print the member itself */ + ret = elm->type->op->print_struct(elm->type, memb_ptr, ilevel + 1, + cb, app_key); + if(ret) return ret; + } + + ilevel--; + _i_INDENT(1); + + return (cb("}", 1, app_key) < 0) ? -1 : 0; +} + +void +SEQUENCE_free(const asn_TYPE_descriptor_t *td, void *sptr, + enum asn_struct_free_method method) { + size_t edx; + const asn_SEQUENCE_specifics_t *specs = + (const asn_SEQUENCE_specifics_t *)td->specifics; + asn_struct_ctx_t *ctx; /* Decoder context */ + + if(!td || !sptr) + return; + + ASN_DEBUG("Freeing %s as SEQUENCE", td->name); + + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; + if(elm->flags & ATF_POINTER) { + memb_ptr = *(void **)((char *)sptr + elm->memb_offset); + if(memb_ptr) + ASN_STRUCT_FREE(*elm->type, memb_ptr); + } else { + memb_ptr = (void *)((char *)sptr + elm->memb_offset); + ASN_STRUCT_FREE_CONTENTS_ONLY(*elm->type, memb_ptr); + } + } + + /* Clean parsing context */ + ctx = (asn_struct_ctx_t *)((char *)sptr + specs->ctx_offset); + FREEMEM(ctx->ptr); + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(sptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset( + sptr, 0, + ((const asn_SEQUENCE_specifics_t *)(td->specifics))->struct_size); + break; + } +} + +int +SEQUENCE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + size_t edx; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + /* + * Iterate over structure members and check their validity. + */ + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; + + if(elm->flags & ATF_POINTER) { + memb_ptr = *(const void * const *)((const char *)sptr + elm->memb_offset); + if(!memb_ptr) { + if(elm->optional) + continue; + ASN__CTFAIL(app_key, td, sptr, + "%s: mandatory element %s absent (%s:%d)", + td->name, elm->name, __FILE__, __LINE__); + return -1; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + } + + if(elm->encoding_constraints.general_constraints) { + int ret = elm->encoding_constraints.general_constraints(elm->type, memb_ptr, + ctfailcb, app_key); + if(ret) return ret; + } else { + return elm->type->encoding_constraints.general_constraints(elm->type, + memb_ptr, ctfailcb, app_key); + } + } + + return 0; +} + +#ifndef ASN_DISABLE_PER_SUPPORT + +asn_dec_rval_t +SEQUENCE_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; + void *st = *sptr; /* Target structure. */ + int extpresent; /* Extension additions are present */ + uint8_t *opres; /* Presence of optional root members */ + asn_per_data_t opmd; + asn_dec_rval_t rv; + size_t edx; + + (void)constraints; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + + ASN_DEBUG("Decoding %s as SEQUENCE (UPER)", td->name); + + /* Handle extensions */ + if(specs->first_extension < 0) { + extpresent = 0; + } else { + extpresent = per_get_few_bits(pd, 1); + if(extpresent < 0) ASN__DECODE_STARVED; + } + + /* Prepare a place and read-in the presence bitmap */ + memset(&opmd, 0, sizeof(opmd)); + if(specs->roms_count) { + opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1); + if(!opres) ASN__DECODE_FAILED; + /* Get the presence map */ + if(per_get_many_bits(pd, opres, 0, specs->roms_count)) { + FREEMEM(opres); + ASN__DECODE_STARVED; + } + opmd.buffer = opres; + opmd.nbits = specs->roms_count; + ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)", + td->name, specs->roms_count, *opres); + } else { + opres = 0; + } + + /* + * Get the sequence ROOT elements. + */ + for(edx = 0; + edx < (specs->first_extension < 0 ? td->elements_count + : (size_t)specs->first_extension); + edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + + assert(!IN_EXTENSION_GROUP(specs, edx)); + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + + /* Deal with optionality */ + if(elm->optional) { + int present = per_get_few_bits(&opmd, 1); + ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)", + td->name, elm->name, present, + (int)opmd.nboff, (int)opmd.nbits); + if(present == 0) { + /* This element is not present */ + if(elm->default_value_set) { + /* Fill-in DEFAULT */ + if(elm->default_value_set(memb_ptr2)) { + FREEMEM(opres); + ASN__DECODE_FAILED; + } + ASN_DEBUG("Filled-in default"); + } + /* The member is just not present */ + continue; + } + /* Fall through */ + } + + /* Fetch the member from the stream */ + ASN_DEBUG("Decoding member \"%s\" in %s", elm->name, td->name); + + if(elm->flags & ATF_OPEN_TYPE) { + rv = OPEN_TYPE_uper_get(opt_codec_ctx, td, st, elm, pd); + } else { + rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, memb_ptr2, pd); + } + if(rv.code != RC_OK) { + ASN_DEBUG("Failed decode %s in %s", + elm->name, td->name); + FREEMEM(opres); + return rv; + } + } + + /* Optionality map is not needed anymore */ + FREEMEM(opres); + + /* + * Deal with extensions. + */ + if(extpresent) { + ssize_t bmlength; + uint8_t *epres; /* Presence of extension members */ + asn_per_data_t epmd; + + bmlength = uper_get_nslength(pd); + if(bmlength < 0) ASN__DECODE_STARVED; + + ASN_DEBUG("Extensions %" ASN_PRI_SSIZE " present in %s", bmlength, td->name); + + epres = (uint8_t *)MALLOC((bmlength + 15) >> 3); + if(!epres) ASN__DECODE_STARVED; + + /* Get the extensions map */ + if(per_get_many_bits(pd, epres, 0, bmlength)) { + FREEMEM(epres); + ASN__DECODE_STARVED; + } + + memset(&epmd, 0, sizeof(epmd)); + epmd.buffer = epres; + epmd.nbits = bmlength; + ASN_DEBUG("Read in extensions bitmap for %s of %ld bits (%x..)", + td->name, (long)bmlength, *epres); + + /* Go over extensions and read them in */ + for(edx = specs->first_extension; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + int present; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (void *)((char *)st + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + present = per_get_few_bits(&epmd, 1); + if(present <= 0) { + if(present < 0) break; /* No more extensions */ + continue; + } + + ASN_DEBUG("Decoding member %s in %s %p", elm->name, td->name, + *memb_ptr2); + rv = uper_open_type_get(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr2, pd); + if(rv.code != RC_OK) { + FREEMEM(epres); + return rv; + } + } + + /* Skip over overflow extensions which aren't present + * in this system's version of the protocol */ + for(;;) { + ASN_DEBUG("Getting overflow extensions"); + switch(per_get_few_bits(&epmd, 1)) { + case -1: break; + case 0: continue; + default: + if(uper_open_type_skip(opt_codec_ctx, pd)) { + FREEMEM(epres); + ASN__DECODE_STARVED; + } + ASN_DEBUG("Skipped overflow extension"); + continue; + } + break; + } + + FREEMEM(epres); + } + + if(specs->first_extension >= 0) { + unsigned i; + /* Fill DEFAULT members in extensions */ + for(i = specs->roms_count; i < specs->roms_count + specs->aoms_count; + i++) { + asn_TYPE_member_t *elm; + void **memb_ptr2; /* Pointer to member pointer */ + + edx = specs->oms[i]; + elm = &td->elements[edx]; + + if(!elm->default_value_set) continue; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + if(*memb_ptr2) continue; + } else { + continue; /* Extensions are all optionals */ + } + + /* Set default value */ + if(elm->default_value_set(memb_ptr2)) { + ASN__DECODE_FAILED; + } + } + } + + rv.consumed = 0; + rv.code = RC_OK; + return rv; +} + +static int +SEQUENCE__handle_extensions(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_per_outp_t *po1, asn_per_outp_t *po2) { + const asn_SEQUENCE_specifics_t *specs = + (const asn_SEQUENCE_specifics_t *)td->specifics; + int exts_present = 0; + int exts_count = 0; + size_t edx; + + if(specs->first_extension < 0) { + return 0; + } + + /* Find out which extensions are present */ + for(edx = specs->first_extension; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; /* Pointer to the member */ + const void *const *memb_ptr2; /* Pointer to that pointer */ + int present; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = + (const void *const *)((const char *)sptr + elm->memb_offset); + present = (*memb_ptr2 != 0); + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + present = 1; + } + + ASN_DEBUG("checking %s:%s (@%" ASN_PRI_SIZE ") present => %d", elm->name, + elm->type->name, edx, present); + exts_count++; + exts_present += present; + + /* Encode as presence marker */ + if(po1 && per_put_few_bits(po1, present, 1)) { + return -1; + } + /* Encode as open type field */ + if(po2 && present + && uper_open_type_put(elm->type, + elm->encoding_constraints.per_constraints, + *memb_ptr2, po2)) + return -1; + } + + return exts_present ? exts_count : 0; +} + +asn_enc_rval_t +SEQUENCE_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const asn_SEQUENCE_specifics_t *specs + = (const asn_SEQUENCE_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + int n_extensions; + size_t edx; + size_t i; + + (void)constraints; + + if(!sptr) + ASN__ENCODE_FAILED; + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SEQUENCE (UPER)", td->name); + + /* + * X.691#18.1 Whether structure is extensible + * and whether to encode extensions + */ + if(specs->first_extension < 0) { + n_extensions = 0; /* There are no extensions to encode */ + } else { + n_extensions = SEQUENCE__handle_extensions(td, sptr, 0, 0); + if(n_extensions < 0) ASN__ENCODE_FAILED; + if(per_put_few_bits(po, n_extensions ? 1 : 0, 1)) { + ASN__ENCODE_FAILED; + } + } + + /* Encode a presence bitmap */ + for(i = 0; i < specs->roms_count; i++) { + asn_TYPE_member_t *elm; + const void *memb_ptr; /* Pointer to the member */ + const void *const *memb_ptr2; /* Pointer to that pointer */ + int present; + + edx = specs->oms[i]; + elm = &td->elements[edx]; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = + (const void *const *)((const char *)sptr + elm->memb_offset); + present = (*memb_ptr2 != 0); + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + present = 1; + } + + /* Eliminate default values */ + if(present && elm->default_value_cmp + && elm->default_value_cmp(*memb_ptr2) == 0) + present = 0; + + ASN_DEBUG("Element %s %s %s->%s is %s", + elm->flags & ATF_POINTER ? "ptr" : "inline", + elm->default_value_cmp ? "def" : "wtv", + td->name, elm->name, present ? "present" : "absent"); + if(per_put_few_bits(po, present, 1)) + ASN__ENCODE_FAILED; + } + + /* + * Encode the sequence ROOT elements. + */ + ASN_DEBUG("first_extension = %d, elements = %d", specs->first_extension, + td->elements_count); + for(edx = 0; + edx < ((specs->first_extension < 0) ? td->elements_count + : (size_t)specs->first_extension); + edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; /* Pointer to the member */ + const void *const *memb_ptr2; /* Pointer to that pointer */ + + ASN_DEBUG("About to encode %s", elm->type->name); + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = + (const void *const *)((const char *)sptr + elm->memb_offset); + if(!*memb_ptr2) { + ASN_DEBUG("Element %s %" ASN_PRI_SIZE " not present", + elm->name, edx); + if(elm->optional) + continue; + /* Mandatory element is missing */ + ASN__ENCODE_FAILED; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + /* Eliminate default values */ + if(elm->default_value_cmp && elm->default_value_cmp(*memb_ptr2) == 0) + continue; + + ASN_DEBUG("Encoding %s->%s:%s", td->name, elm->name, elm->type->name); + er = elm->type->op->uper_encoder( + elm->type, elm->encoding_constraints.per_constraints, *memb_ptr2, + po); + if(er.encoded == -1) return er; + } + + /* No extensions to encode */ + if(!n_extensions) ASN__ENCODED_OK(er); + + ASN_DEBUG("Length of extensions %d bit-map", n_extensions); + /* #18.8. Write down the presence bit-map length. */ + if(uper_put_nslength(po, n_extensions)) + ASN__ENCODE_FAILED; + + ASN_DEBUG("Bit-map of %d elements", n_extensions); + /* #18.7. Encoding the extensions presence bit-map. */ + /* TODO: act upon NOTE in #18.7 for canonical PER */ + if(SEQUENCE__handle_extensions(td, sptr, po, 0) != n_extensions) + ASN__ENCODE_FAILED; + + ASN_DEBUG("Writing %d extensions", n_extensions); + /* #18.9. Encode extensions as open type fields. */ + if(SEQUENCE__handle_extensions(td, sptr, 0, po) != n_extensions) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} + +asn_dec_rval_t +SEQUENCE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + const asn_SEQUENCE_specifics_t *specs = (const asn_SEQUENCE_specifics_t *)td->specifics; + void *st = *sptr; /* Target structure. */ + int extpresent; /* Extension additions are present */ + uint8_t *opres; /* Presence of optional root members */ + asn_per_data_t opmd; + asn_dec_rval_t rv; + size_t edx; + + (void)constraints; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + + ASN_DEBUG("Decoding %s as SEQUENCE (APER)", td->name); + + /* Handle extensions */ + if(specs->first_extension < 0) { + extpresent = 0; + } else { + extpresent = per_get_few_bits(pd, 1); + if(extpresent < 0) ASN__DECODE_STARVED; + } + + /* Prepare a place and read-in the presence bitmap */ + memset(&opmd, 0, sizeof(opmd)); + if(specs->roms_count) { + opres = (uint8_t *)MALLOC(((specs->roms_count + 7) >> 3) + 1); + if(!opres) ASN__DECODE_FAILED; + /* Get the presence map */ + if(per_get_many_bits(pd, opres, 0, specs->roms_count)) { + FREEMEM(opres); + ASN__DECODE_STARVED; + } + opmd.buffer = opres; + opmd.nbits = specs->roms_count; + ASN_DEBUG("Read in presence bitmap for %s of %d bits (%x..)", + td->name, specs->roms_count, *opres); + } else { + opres = 0; + } + + /* + * Get the sequence ROOT elements. + */ + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ +#if 0 + int padding; +#endif + + if(IN_EXTENSION_GROUP(specs, edx)) + continue; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } +#if 0 + /* Get Padding */ + padding = (8 - (pd->moved % 8)) % 8; + if(padding > 0) + ASN_DEBUG("For element %s,offset= %ld Padding bits = %d", td->name, pd->moved, padding); +#if 0 /* old way of removing padding */ + per_get_few_bits(pd, padding); +#else /* Experimental fix proposed by @mhanna123 */ + if(edx != (td->elements_count-1)) + per_get_few_bits(pd, padding); + else { + if(specs->roms_count && (padding > 0)) + ASN_DEBUG(">>>>> not skipping padding of %d bits for element:%ld out of %d", padding, edx, td->elements_count); + else + per_get_few_bits(pd, padding); + } +#endif /* dealing with padding */ +#endif + /* Deal with optionality */ + if(elm->optional) { + int present = per_get_few_bits(&opmd, 1); + ASN_DEBUG("Member %s->%s is optional, p=%d (%d->%d)", + td->name, elm->name, present, + (int)opmd.nboff, (int)opmd.nbits); + if(present == 0) { + /* This element is not present */ + if(elm->default_value_set) { + /* Fill-in DEFAULT */ + if(elm->default_value_set(memb_ptr2)) { + FREEMEM(opres); + ASN__DECODE_FAILED; + } + ASN_DEBUG("Filled-in default"); + } + /* The member is just not present */ + continue; + } + /* Fall through */ + } + + /* Fetch the member from the stream */ + ASN_DEBUG("Decoding member \"%s\" in %s", elm->name, td->name); + + if(elm->flags & ATF_OPEN_TYPE) { + rv = OPEN_TYPE_aper_get(opt_codec_ctx, td, st, elm, pd); + } else { + rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, memb_ptr2, pd); + } + if(rv.code != RC_OK) { + ASN_DEBUG("Failed decode %s in %s", + elm->name, td->name); + FREEMEM(opres); + return rv; + } + } + + /* Optionality map is not needed anymore */ + FREEMEM(opres); + + /* + * Deal with extensions. + */ + if(extpresent) { + ssize_t bmlength; + uint8_t *epres; /* Presence of extension members */ + asn_per_data_t epmd; + + bmlength = aper_get_nslength(pd); + if(bmlength < 0) ASN__DECODE_STARVED; + + ASN_DEBUG("Extensions %" ASN_PRI_SSIZE " present in %s", bmlength, td->name); + + epres = (uint8_t *)MALLOC((bmlength + 15) >> 3); + if(!epres) ASN__DECODE_STARVED; + + /* Get the extensions map */ + if(per_get_many_bits(pd, epres, 0, bmlength)) + ASN__DECODE_STARVED; + + memset(&epmd, 0, sizeof(epmd)); + epmd.buffer = epres; + epmd.nbits = bmlength; + ASN_DEBUG("Read in extensions bitmap for %s of %ld bits (%x..)", + td->name, bmlength, *epres); + + /* Go over extensions and read them in */ + for(edx = specs->first_extension; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + int present; + + if(!IN_EXTENSION_GROUP(specs, edx)) { + ASN_DEBUG("%ld is not extension", edx); + continue; + } + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (void *)((char *)st + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + present = per_get_few_bits(&epmd, 1); + if(present <= 0) { + if(present < 0) break; /* No more extensions */ + continue; + } + + ASN_DEBUG("Decoding member %s in %s %p", elm->name, td->name, *memb_ptr2); + rv = aper_open_type_get(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, memb_ptr2, pd); + if(rv.code != RC_OK) { + FREEMEM(epres); + return rv; + } + } + + /* Skip over overflow extensions which aren't present + * in this system's version of the protocol */ + for(;;) { + ASN_DEBUG("Getting overflow extensions"); + switch(per_get_few_bits(&epmd, 1)) { + case -1: + break; + case 0: + continue; + default: + if(aper_open_type_skip(opt_codec_ctx, pd)) { + FREEMEM(epres); + ASN__DECODE_STARVED; + } + } + break; + } + + FREEMEM(epres); + } + + /* Fill DEFAULT members in extensions */ + for(edx = specs->roms_count; edx < specs->roms_count + + specs->aoms_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + void **memb_ptr2; /* Pointer to member pointer */ + + if(!elm->default_value_set) continue; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (void **)((char *)st + + elm->memb_offset); + if(*memb_ptr2) continue; + } else { + continue; /* Extensions are all optionals */ + } + + /* Set default value */ + if(elm->default_value_set(memb_ptr2)) { + ASN__DECODE_FAILED; + } + } + + rv.consumed = 0; + rv.code = RC_OK; + return rv; +} + +static int +SEQUENCE_handle_extensions_aper(const asn_TYPE_descriptor_t *td, + const void *sptr, + asn_per_outp_t *po1, asn_per_outp_t *po2) { + const asn_SEQUENCE_specifics_t *specs + = (const asn_SEQUENCE_specifics_t *)td->specifics; + int exts_present = 0; + int exts_count = 0; + size_t edx; + + if(specs->first_extension < 0) { + return 0; + } + + /* Find out which extensions are present */ + for(edx = specs->first_extension; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; /* Pointer to the member */ + const void * const *memb_ptr2; /* Pointer to that pointer */ + int present; + + if(!IN_EXTENSION_GROUP(specs, edx)) { + ASN_DEBUG("%s (@%ld) is not extension", elm->type->name, edx); + continue; + } + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); + present = (*memb_ptr2 != 0); + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + present = 1; + } + + ASN_DEBUG("checking %s (@%ld) present => %d", + elm->type->name, edx, present); + exts_count++; + exts_present += present; + + /* Encode as presence marker */ + if(po1 && per_put_few_bits(po1, present, 1)) + return -1; + /* Encode as open type field */ + if(po2 && present && aper_open_type_put(elm->type, + elm->encoding_constraints.per_constraints, *memb_ptr2, po2)) + return -1; + + } + + return exts_present ? exts_count : 0; +} + +asn_enc_rval_t +SEQUENCE_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_SEQUENCE_specifics_t *specs + = (const asn_SEQUENCE_specifics_t *)td->specifics; + asn_enc_rval_t er = {0,0,0}; + int n_extensions; + size_t edx; + size_t i; + + (void)constraints; + + if(!sptr) + ASN__ENCODE_FAILED; + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SEQUENCE (APER)", td->name); + + /* + * X.691#18.1 Whether structure is extensible + * and whether to encode extensions + */ + if(specs->first_extension < 0) { + n_extensions = 0; /* There are no extensions to encode */ + } else { + n_extensions = SEQUENCE_handle_extensions_aper(td, sptr, 0, 0); + if(n_extensions < 0) ASN__ENCODE_FAILED; + if(per_put_few_bits(po, n_extensions ? 1 : 0, 1)) { + ASN__ENCODE_FAILED; + } + } + + /* Encode a presence bitmap */ + for(i = 0; i < specs->roms_count; i++) { + asn_TYPE_member_t *elm; + const void *memb_ptr; /* Pointer to the member */ + const void * const *memb_ptr2; /* Pointer to that pointer */ + int present; + + edx = specs->oms[i]; + elm = &td->elements[edx]; + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); + present = (*memb_ptr2 != 0); + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + present = 1; + } + + /* Eliminate default values */ + if(present && elm->default_value_cmp + && elm->default_value_cmp(memb_ptr2) == 1) + present = 0; + + ASN_DEBUG("Element %s %s %s->%s is %s", + elm->flags & ATF_POINTER ? "ptr" : "inline", + elm->default_value_cmp ? "def" : "wtv", + td->name, elm->name, present ? "present" : "absent"); + if(per_put_few_bits(po, present, 1)) + ASN__ENCODE_FAILED; + } + + /* + * Encode the sequence ROOT elements. + */ + ASN_DEBUG("first_extension = %d, elements = %d", specs->first_extension, + td->elements_count); + for(edx = 0; + edx < ((specs->first_extension < 0) ? td->elements_count + : (size_t)specs->first_extension); + edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *memb_ptr; /* Pointer to the member */ + const void * const *memb_ptr2; /* Pointer to that pointer */ + + if(IN_EXTENSION_GROUP(specs, edx)) + continue; + + ASN_DEBUG("About to encode %s", elm->type->name); + + /* Fetch the pointer to this member */ + if(elm->flags & ATF_POINTER) { + memb_ptr2 = (const void * const *)((const char *)sptr + elm->memb_offset); + if(!*memb_ptr2) { + ASN_DEBUG("Element %s %ld not present", + elm->name, edx); + if(elm->optional) + continue; + /* Mandatory element is missing */ + ASN__ENCODE_FAILED; + } + } else { + memb_ptr = (const void *)((const char *)sptr + elm->memb_offset); + memb_ptr2 = &memb_ptr; + } + + /* Eliminate default values */ + if(elm->default_value_cmp && elm->default_value_cmp(memb_ptr2) == 1) + continue; + + ASN_DEBUG("Encoding %s->%s", td->name, elm->name); + er = elm->type->op->aper_encoder(elm->type, elm->encoding_constraints.per_constraints, + *memb_ptr2, po); + if(er.encoded == -1) + return er; + } + + /* No extensions to encode */ + if(!n_extensions) ASN__ENCODED_OK(er); + + ASN_DEBUG("Length of %d bit-map", n_extensions); + /* #18.8. Write down the presence bit-map length. */ + if(aper_put_nslength(po, n_extensions)) + ASN__ENCODE_FAILED; + + ASN_DEBUG("Bit-map of %d elements", n_extensions); + /* #18.7. Encoding the extensions presence bit-map. */ + /* TODO: act upon NOTE in #18.7 for canonical PER */ + if(SEQUENCE_handle_extensions_aper(td, sptr, po, 0) != n_extensions) + ASN__ENCODE_FAILED; + + ASN_DEBUG("Writing %d extensions", n_extensions); + /* #18.9. Encode extensions as open type fields. */ + if(SEQUENCE_handle_extensions_aper(td, sptr, 0, po) != n_extensions) + ASN__ENCODE_FAILED; + + ASN__ENCODED_OK(er); +} + +#endif /* ASN_DISABLE_PER_SUPPORT */ + +int +SEQUENCE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + size_t edx; + + for(edx = 0; edx < td->elements_count; edx++) { + asn_TYPE_member_t *elm = &td->elements[edx]; + const void *amemb; + const void *bmemb; + int ret; + + if(elm->flags & ATF_POINTER) { + amemb = + *(const void *const *)((const char *)aptr + elm->memb_offset); + bmemb = + *(const void *const *)((const char *)bptr + elm->memb_offset); + if(!amemb) { + if(!bmemb) continue; + if(elm->default_value_cmp + && elm->default_value_cmp(bmemb) == 0) { + /* A is absent, but B is present and equal to DEFAULT */ + continue; + } + return -1; + } else if(!bmemb) { + if(elm->default_value_cmp + && elm->default_value_cmp(amemb) == 0) { + /* B is absent, but A is present and equal to DEFAULT */ + continue; + } + return 1; + } + } else { + amemb = (const void *)((const char *)aptr + elm->memb_offset); + bmemb = (const void *)((const char *)bptr + elm->memb_offset); + } + + ret = elm->type->op->compare_struct(elm->type, amemb, bmemb); + if(ret != 0) return ret; + } + + return 0; +} + +asn_TYPE_operation_t asn_OP_SEQUENCE = { + SEQUENCE_free, + SEQUENCE_print, + SEQUENCE_compare, + SEQUENCE_decode_ber, + SEQUENCE_encode_der, + SEQUENCE_decode_xer, + SEQUENCE_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + SEQUENCE_decode_oer, + SEQUENCE_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + SEQUENCE_decode_uper, + SEQUENCE_encode_uper, + SEQUENCE_decode_aper, + SEQUENCE_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + SEQUENCE_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; + + +asn_random_fill_result_t +SEQUENCE_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constr, + size_t max_length) { + const asn_SEQUENCE_specifics_t *specs = + (const asn_SEQUENCE_specifics_t *)td->specifics; + asn_random_fill_result_t result_ok = {ARFILL_OK, 0}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + void *st = *sptr; + size_t edx; + + if(max_length == 0) return result_skipped; + + (void)constr; + + if(st == NULL) { + st = CALLOC(1, specs->struct_size); + if(st == NULL) { + return result_failed; + } + } + + for(edx = 0; edx < td->elements_count; edx++) { + const asn_TYPE_member_t *elm = &td->elements[edx]; + void *memb_ptr; /* Pointer to the member */ + void **memb_ptr2; /* Pointer to that pointer */ + asn_random_fill_result_t tmpres; + + if(elm->optional && asn_random_between(0, 4) == 2) { + /* Sometimes decide not to fill the optional value */ + continue; + } + + if(elm->flags & ATF_POINTER) { + /* Member is a pointer to another structure */ + memb_ptr2 = (void **)((char *)st + elm->memb_offset); + } else { + memb_ptr = (char *)st + elm->memb_offset; + memb_ptr2 = &memb_ptr; + } + + tmpres = elm->type->op->random_fill( + elm->type, memb_ptr2, &elm->encoding_constraints, + max_length > result_ok.length ? max_length - result_ok.length : 0); + switch(tmpres.code) { + case ARFILL_OK: + result_ok.length += tmpres.length; + continue; + case ARFILL_SKIPPED: + assert(!(elm->flags & ATF_POINTER) || *memb_ptr2 == NULL); + continue; + case ARFILL_FAILED: + if(st == *sptr) { + ASN_STRUCT_RESET(*td, st); + } else { + ASN_STRUCT_FREE(*td, st); + } + return tmpres; + } + } + + *sptr = st; + + return result_ok; +} + diff --git a/src/du_app/F1AP/asn/constr_SEQUENCE.h b/src/du_app/F1AP/asn/constr_SEQUENCE.h new file mode 100755 index 000000000..a22ed3a27 --- /dev/null +++ b/src/du_app/F1AP/asn/constr_SEQUENCE.h @@ -0,0 +1,68 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _CONSTR_SEQUENCE_H_ +#define _CONSTR_SEQUENCE_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct asn_SEQUENCE_specifics_s { + /* + * Target structure description. + */ + unsigned struct_size; /* Size of the target structure. */ + unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ + + /* + * Tags to members mapping table (sorted). + */ + const asn_TYPE_tag2member_t *tag2el; + unsigned tag2el_count; + + /* + * Optional members of the extensions root (roms) or additions (aoms). + * Meaningful for PER. + */ + const int *oms; /* Optional MemberS */ + unsigned roms_count; /* Root optional members count */ + unsigned aoms_count; /* Additions optional members count */ + + /* + * Description of an extensions group. + * Root components are clustered at the beginning of the structure, + * whereas extensions are clustered at the end. -1 means not extensible. + */ + signed first_extension; /* First extension addition */ +} asn_SEQUENCE_specifics_t; + + +/* + * A set specialized functions dealing with the SEQUENCE type. + */ +asn_struct_free_f SEQUENCE_free; +asn_struct_print_f SEQUENCE_print; +asn_struct_compare_f SEQUENCE_compare; +asn_constr_check_f SEQUENCE_constraint; +ber_type_decoder_f SEQUENCE_decode_ber; +der_type_encoder_f SEQUENCE_encode_der; +xer_type_decoder_f SEQUENCE_decode_xer; +xer_type_encoder_f SEQUENCE_encode_xer; +oer_type_decoder_f SEQUENCE_decode_oer; +oer_type_encoder_f SEQUENCE_encode_oer; +per_type_decoder_f SEQUENCE_decode_uper; +per_type_encoder_f SEQUENCE_encode_uper; +per_type_decoder_f SEQUENCE_decode_aper; +per_type_encoder_f SEQUENCE_encode_aper; +asn_random_fill_f SEQUENCE_random_fill; +extern asn_TYPE_operation_t asn_OP_SEQUENCE; + +#ifdef __cplusplus +} +#endif + +#endif /* _CONSTR_SEQUENCE_H_ */ diff --git a/src/du_app/F1AP/asn/constr_SEQUENCE_OF.c b/src/du_app/F1AP/asn/constr_SEQUENCE_OF.c new file mode 100755 index 000000000..10f18cf46 --- /dev/null +++ b/src/du_app/F1AP/asn/constr_SEQUENCE_OF.c @@ -0,0 +1,358 @@ +/*- + * Copyright (c) 2003, 2004, 2006 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * The DER encoder of the SEQUENCE OF type. + */ +asn_enc_rval_t +SEQUENCE_OF_encode_der(const asn_TYPE_descriptor_t *td, const void *ptr, + int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_TYPE_member_t *elm = td->elements; + const asn_anonymous_sequence_ *list = _A_CSEQUENCE_FROM_VOID(ptr); + size_t computed_size = 0; + ssize_t encoding_size = 0; + asn_enc_rval_t erval = {0,0,0}; + int edx; + + ASN_DEBUG("Estimating size of SEQUENCE OF %s", td->name); + + /* + * Gather the length of the underlying members sequence. + */ + for(edx = 0; edx < list->count; edx++) { + void *memb_ptr = list->array[edx]; + if(!memb_ptr) continue; + erval = elm->type->op->der_encoder(elm->type, memb_ptr, + 0, elm->tag, + 0, 0); + if(erval.encoded == -1) + return erval; + computed_size += erval.encoded; + } + + /* + * Encode the TLV for the sequence itself. + */ + encoding_size = der_write_tags(td, computed_size, tag_mode, 1, tag, + cb, app_key); + if(encoding_size == -1) { + erval.encoded = -1; + erval.failed_type = td; + erval.structure_ptr = ptr; + return erval; + } + + computed_size += encoding_size; + if(!cb) { + erval.encoded = computed_size; + ASN__ENCODED_OK(erval); + } + + ASN_DEBUG("Encoding members of SEQUENCE OF %s", td->name); + + /* + * Encode all members. + */ + for(edx = 0; edx < list->count; edx++) { + void *memb_ptr = list->array[edx]; + if(!memb_ptr) continue; + erval = elm->type->op->der_encoder(elm->type, memb_ptr, + 0, elm->tag, + cb, app_key); + if(erval.encoded == -1) + return erval; + encoding_size += erval.encoded; + } + + if(computed_size != (size_t)encoding_size) { + /* + * Encoded size is not equal to the computed size. + */ + erval.encoded = -1; + erval.failed_type = td; + erval.structure_ptr = ptr; + } else { + erval.encoded = computed_size; + erval.structure_ptr = 0; + erval.failed_type = 0; + } + + return erval; +} + +asn_enc_rval_t +SEQUENCE_OF_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_enc_rval_t er = {0,0,0}; + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm = td->elements; + const asn_anonymous_sequence_ *list = _A_CSEQUENCE_FROM_VOID(sptr); + const char *mname = specs->as_XMLValueList + ? 0 + : ((*elm->name) ? elm->name : elm->type->xml_tag); + size_t mlen = mname ? strlen(mname) : 0; + int xcan = (flags & XER_F_CANONICAL); + int i; + + if(!sptr) ASN__ENCODE_FAILED; + + er.encoded = 0; + + for(i = 0; i < list->count; i++) { + asn_enc_rval_t tmper = {0,0,0}; + void *memb_ptr = list->array[i]; + if(!memb_ptr) continue; + + if(mname) { + if(!xcan) ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); + } + + tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, ilevel + 1, + flags, cb, app_key); + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + if(tmper.encoded == 0 && specs->as_XMLValueList) { + const char *name = elm->type->xml_tag; + size_t len = strlen(name); + if(!xcan) ASN__TEXT_INDENT(1, ilevel + 1); + ASN__CALLBACK3("<", 1, name, len, "/>", 2); + } + + if(mname) { + ASN__CALLBACK3("", 1); + } + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} + +#ifndef ASN_DISABLE_PER_SUPPORT + +asn_enc_rval_t +SEQUENCE_OF_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_anonymous_sequence_ *list; + const asn_per_constraint_t *ct; + asn_enc_rval_t er = {0,0,0}; + const asn_TYPE_member_t *elm = td->elements; + size_t encoded_edx; + + if(!sptr) ASN__ENCODE_FAILED; + list = _A_CSEQUENCE_FROM_VOID(sptr); + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SEQUENCE OF (%d)", td->name, list->count); + + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + /* If extensible constraint, check if size is in root */ + if(ct) { + int not_in_root = + (list->count < ct->lower_bound || list->count > ct->upper_bound); + ASN_DEBUG("lb %ld ub %ld %s", ct->lower_bound, ct->upper_bound, + ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); + if(ct->flags & APC_EXTENSIBLE) { + /* Declare whether size is in extension root */ + if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; + if(not_in_root) ct = 0; + } else if(not_in_root && ct->effective_bits >= 0) { + ASN__ENCODE_FAILED; + } + + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ + if(per_put_few_bits(po, list->count - ct->lower_bound, + ct->effective_bits)) + ASN__ENCODE_FAILED; + } else if(list->count == 0) { + /* When the list is empty add only the length determinant + * X.691, #20.6 and #11.9.4.1 + */ + if (uper_put_length(po, 0, 0)) { + ASN__ENCODE_FAILED; + } + ASN__ENCODED_OK(er); + } + + for(encoded_edx = 0; (ssize_t)encoded_edx < list->count;) { + ssize_t may_encode; + size_t edx; + int need_eom = 0; + + if(ct && ct->effective_bits >= 0) { + may_encode = list->count; + } else { + may_encode = + uper_put_length(po, list->count - encoded_edx, &need_eom); + if(may_encode < 0) ASN__ENCODE_FAILED; + } + + for(edx = encoded_edx; edx < encoded_edx + may_encode; edx++) { + void *memb_ptr = list->array[edx]; + if(!memb_ptr) ASN__ENCODE_FAILED; + er = elm->type->op->uper_encoder( + elm->type, elm->encoding_constraints.per_constraints, memb_ptr, + po); + if(er.encoded == -1) ASN__ENCODE_FAILED; + } + + if(need_eom && uper_put_length(po, 0, 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + + encoded_edx += may_encode; + } + + ASN__ENCODED_OK(er); +} + +asn_enc_rval_t +SEQUENCE_OF_encode_aper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + const asn_anonymous_sequence_ *list; + const asn_per_constraint_t *ct; + asn_enc_rval_t er = {0,0,0}; + asn_TYPE_member_t *elm = td->elements; + int seq; + + if(!sptr) ASN__ENCODE_FAILED; + list = _A_CSEQUENCE_FROM_VOID(sptr); + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SEQUENCE OF size (%d) using ALIGNED PER", td->name, list->count); + + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + /* If extensible constraint, check if size is in root */ + if(ct) { + int not_in_root = (list->count < ct->lower_bound + || list->count > ct->upper_bound); + ASN_DEBUG("lb %ld ub %ld %s", + ct->lower_bound, ct->upper_bound, + ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); + if(ct->flags & APC_EXTENSIBLE) { + /* Declare whether size is in extension root */ + if(per_put_few_bits(po, not_in_root, 1)) + ASN__ENCODE_FAILED; + if(not_in_root) ct = 0; + } else if(not_in_root && ct->effective_bits >= 0) + ASN__ENCODE_FAILED; + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ +/* if(per_put_few_bits(po, list->count - ct->lower_bound, + ct->effective_bits)) + ASN__ENCODE_FAILED; +*/ + if (aper_put_length(po, ct->upper_bound - ct->lower_bound + 1, list->count - ct->lower_bound) < 0) + ASN__ENCODE_FAILED; + } + + for(seq = -1; seq < list->count;) { + ssize_t mayEncode; + if(seq < 0) seq = 0; + if(ct && ct->effective_bits >= 0) { + mayEncode = list->count; + } else { + mayEncode = aper_put_length(po, -1, list->count - seq); + if(mayEncode < 0) ASN__ENCODE_FAILED; + } + + while(mayEncode--) { + void *memb_ptr = list->array[seq++]; + if(!memb_ptr) ASN__ENCODE_FAILED; + er = elm->type->op->aper_encoder(elm->type, + elm->encoding_constraints.per_constraints, memb_ptr, po); + if(er.encoded == -1) + ASN__ENCODE_FAILED; + } + } + + ASN__ENCODED_OK(er); +} +#endif /* ASN_DISABLE_PER_SUPPORT */ + +int +SEQUENCE_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const asn_anonymous_sequence_ *a = _A_CSEQUENCE_FROM_VOID(aptr); + const asn_anonymous_sequence_ *b = _A_CSEQUENCE_FROM_VOID(bptr); + ssize_t idx; + + if(a && b) { + ssize_t common_length = (a->count < b->count ? a->count : b->count); + for(idx = 0; idx < common_length; idx++) { + int ret = td->elements->type->op->compare_struct( + td->elements->type, a->array[idx], b->array[idx]); + if(ret) return ret; + } + + if(idx < b->count) /* more elements in b */ + return -1; /* a is shorter, so put it first */ + if(idx < a->count) return 1; + + } else if(!a) { + return -1; + } else if(!b) { + return 1; + } + + return 0; +} + + +asn_TYPE_operation_t asn_OP_SEQUENCE_OF = { + SEQUENCE_OF_free, + SEQUENCE_OF_print, + SEQUENCE_OF_compare, + SEQUENCE_OF_decode_ber, + SEQUENCE_OF_encode_der, + SEQUENCE_OF_decode_xer, + SEQUENCE_OF_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + SEQUENCE_OF_decode_oer, /* Same as SET OF decoder. */ + SEQUENCE_OF_encode_oer, /* Same as SET OF encoder */ +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + SEQUENCE_OF_decode_uper, /* Same as SET OF decoder */ + SEQUENCE_OF_encode_uper, + SEQUENCE_OF_decode_aper, + SEQUENCE_OF_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + SEQUENCE_OF_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; + diff --git a/src/du_app/F1AP/asn/constr_SEQUENCE_OF.h b/src/du_app/F1AP/asn/constr_SEQUENCE_OF.h new file mode 100755 index 000000000..6857f0f0c --- /dev/null +++ b/src/du_app/F1AP/asn/constr_SEQUENCE_OF.h @@ -0,0 +1,41 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _CONSTR_SEQUENCE_OF_H_ +#define _CONSTR_SEQUENCE_OF_H_ + +#include +#include /* Implemented using SET OF */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * A set specialized functions dealing with the SEQUENCE OF type. + * Generally implemented using SET OF. + */ +asn_struct_compare_f SEQUENCE_OF_compare; +der_type_encoder_f SEQUENCE_OF_encode_der; +xer_type_encoder_f SEQUENCE_OF_encode_xer; +per_type_encoder_f SEQUENCE_OF_encode_uper; +per_type_encoder_f SEQUENCE_OF_encode_aper; +extern asn_TYPE_operation_t asn_OP_SEQUENCE_OF; + +#define SEQUENCE_OF_free SET_OF_free +#define SEQUENCE_OF_print SET_OF_print +#define SEQUENCE_OF_constraint SET_OF_constraint +#define SEQUENCE_OF_decode_ber SET_OF_decode_ber +#define SEQUENCE_OF_decode_xer SET_OF_decode_xer +#define SEQUENCE_OF_decode_oer SET_OF_decode_oer +#define SEQUENCE_OF_encode_oer SET_OF_encode_oer +#define SEQUENCE_OF_decode_uper SET_OF_decode_uper +#define SEQUENCE_OF_decode_aper SET_OF_decode_aper +#define SEQUENCE_OF_random_fill SET_OF_random_fill + +#ifdef __cplusplus +} +#endif + +#endif /* _CONSTR_SET_OF_H_ */ diff --git a/src/du_app/F1AP/asn/constr_SEQUENCE_oer.c b/src/du_app/F1AP/asn/constr_SEQUENCE_oer.c new file mode 100755 index 000000000..ecb589cc3 --- /dev/null +++ b/src/du_app/F1AP/asn/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/src/du_app/F1AP/asn/constr_SET_OF.c b/src/du_app/F1AP/asn/constr_SET_OF.c new file mode 100755 index 000000000..bf1dc2776 --- /dev/null +++ b/src/du_app/F1AP/asn/constr_SET_OF.c @@ -0,0 +1,1441 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Number of bytes left for this structure. + * (ctx->left) indicates the number of bytes _transferred_ for the structure. + * (size) contains the number of bytes in the buffer passed. + */ +#define LEFT ((size<(size_t)ctx->left)?size:(size_t)ctx->left) + +/* + * If the subprocessor function returns with an indication that it wants + * more data, it may well be a fatal decoding problem, because the + * size is constrained by the 's L, even if the buffer size allows + * reading more data. + * For example, consider the buffer containing the following TLVs: + * ... + * The TLV length clearly indicates that one byte is expected in V, but + * if the V processor returns with "want more data" even if the buffer + * contains way more data than the V processor have seen. + */ +#define SIZE_VIOLATION (ctx->left >= 0 && (size_t)ctx->left <= size) + +/* + * This macro "eats" the part of the buffer which is definitely "consumed", + * i.e. was correctly converted into local representation or rightfully skipped. + */ +#undef ADVANCE +#define ADVANCE(num_bytes) do { \ + size_t num = num_bytes; \ + ptr = ((const char *)ptr) + num;\ + size -= num; \ + if(ctx->left >= 0) \ + ctx->left -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Switch to the next phase of parsing. + */ +#undef NEXT_PHASE +#undef PHASE_OUT +#define NEXT_PHASE(ctx) do { \ + ctx->phase++; \ + ctx->step = 0; \ + } while(0) +#define PHASE_OUT(ctx) do { ctx->phase = 10; } while(0) + +/* + * Return a standardized complex structure. + */ +#undef RETURN +#define RETURN(_code) do { \ + rval.code = _code; \ + rval.consumed = consumed_myself;\ + return rval; \ + } while(0) + +/* + * The decoder of the SET OF type. + */ +asn_dec_rval_t +SET_OF_decode_ber(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const void *ptr, size_t size, int tag_mode) { + /* + * Bring closer parts of structure description. + */ + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm = td->elements; /* Single one */ + + /* + * Parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + ber_tlv_tag_t tlv_tag; /* T from TLV */ + asn_dec_rval_t rval; /* Return code from subparsers */ + + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + + ASN_DEBUG("Decoding %s as SET OF", td->name); + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) { + RETURN(RC_FAIL); + } + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + /* + * Start to parse where left previously + */ + switch(ctx->phase) { + case 0: + /* + * PHASE 0. + * Check that the set of tags associated with given structure + * perfectly fits our expectations. + */ + + rval = ber_check_tags(opt_codec_ctx, td, ctx, ptr, size, + tag_mode, 1, &ctx->left, 0); + if(rval.code != RC_OK) { + ASN_DEBUG("%s tagging check failed: %d", + td->name, rval.code); + return rval; + } + + if(ctx->left >= 0) + ctx->left += rval.consumed; /* ?Substracted below! */ + ADVANCE(rval.consumed); + + ASN_DEBUG("Structure consumes %ld bytes, " + "buffer %ld", (long)ctx->left, (long)size); + + NEXT_PHASE(ctx); + /* Fall through */ + case 1: + /* + * PHASE 1. + * From the place where we've left it previously, + * try to decode the next item. + */ + for(;; ctx->step = 0) { + ssize_t tag_len; /* Length of TLV's T */ + + if(ctx->step & 1) + goto microphase2; + + /* + * MICROPHASE 1: Synchronize decoding. + */ + + if(ctx->left == 0) { + ASN_DEBUG("End of SET OF %s", td->name); + /* + * No more things to decode. + * Exit out of here. + */ + PHASE_OUT(ctx); + RETURN(RC_OK); + } + + /* + * Fetch the T from TLV. + */ + tag_len = ber_fetch_tag(ptr, LEFT, &tlv_tag); + switch(tag_len) { + case 0: if(!SIZE_VIOLATION) RETURN(RC_WMORE); + /* Fall through */ + case -1: RETURN(RC_FAIL); + } + + if(ctx->left < 0 && ((const uint8_t *)ptr)[0] == 0) { + if(LEFT < 2) { + if(SIZE_VIOLATION) + RETURN(RC_FAIL); + else + RETURN(RC_WMORE); + } else if(((const uint8_t *)ptr)[1] == 0) { + /* + * Found the terminator of the + * indefinite length structure. + */ + break; + } + } + + /* Outmost tag may be unknown and cannot be fetched/compared */ + if(elm->tag != (ber_tlv_tag_t)-1) { + if(BER_TAGS_EQUAL(tlv_tag, elm->tag)) { + /* + * The new list member of expected type has arrived. + */ + } else { + ASN_DEBUG("Unexpected tag %s fixed SET OF %s", + ber_tlv_tag_string(tlv_tag), td->name); + ASN_DEBUG("%s SET OF has tag %s", + td->name, ber_tlv_tag_string(elm->tag)); + RETURN(RC_FAIL); + } + } + + /* + * MICROPHASE 2: Invoke the member-specific decoder. + */ + ctx->step |= 1; /* Confirm entering next microphase */ + microphase2: + + /* + * Invoke the member fetch routine according to member's type + */ + rval = elm->type->op->ber_decoder(opt_codec_ctx, + elm->type, &ctx->ptr, ptr, LEFT, 0); + ASN_DEBUG("In %s SET OF %s code %d consumed %d", + td->name, elm->type->name, + rval.code, (int)rval.consumed); + switch(rval.code) { + case RC_OK: + { + asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); + if(ASN_SET_ADD(list, ctx->ptr) != 0) + RETURN(RC_FAIL); + else + ctx->ptr = 0; + } + break; + case RC_WMORE: /* More data expected */ + if(!SIZE_VIOLATION) { + ADVANCE(rval.consumed); + RETURN(RC_WMORE); + } + /* Fall through */ + case RC_FAIL: /* Fatal error */ + ASN_STRUCT_FREE(*elm->type, ctx->ptr); + ctx->ptr = 0; + RETURN(RC_FAIL); + } /* switch(rval) */ + + ADVANCE(rval.consumed); + } /* for(all list members) */ + + NEXT_PHASE(ctx); + case 2: + /* + * Read in all "end of content" TLVs. + */ + while(ctx->left < 0) { + if(LEFT < 2) { + if(LEFT > 0 && ((const char *)ptr)[0] != 0) { + /* Unexpected tag */ + RETURN(RC_FAIL); + } else { + RETURN(RC_WMORE); + } + } + if(((const char *)ptr)[0] == 0 + && ((const char *)ptr)[1] == 0) { + ADVANCE(2); + ctx->left++; + } else { + RETURN(RC_FAIL); + } + } + + PHASE_OUT(ctx); + } + + RETURN(RC_OK); +} + +/* + * Internally visible buffer holding a single encoded element. + */ +struct _el_buffer { + uint8_t *buf; + size_t length; + size_t allocated_size; + unsigned bits_unused; +}; +/* Append bytes to the above structure */ +static int _el_addbytes(const void *buffer, size_t size, void *el_buf_ptr) { + struct _el_buffer *el_buf = (struct _el_buffer *)el_buf_ptr; + + if(el_buf->length + size > el_buf->allocated_size) { + size_t new_size = el_buf->allocated_size ? el_buf->allocated_size : 8; + void *p; + + do { + new_size <<= 2; + } while(el_buf->length + size > new_size); + + p = REALLOC(el_buf->buf, new_size); + if(p) { + el_buf->buf = p; + el_buf->allocated_size = new_size; + } else { + return -1; + } + } + + memcpy(el_buf->buf + el_buf->length, buffer, size); + + el_buf->length += size; + return 0; +} + +static void assert_unused_bits(const struct _el_buffer* p) { + if(p->length) { + assert((p->buf[p->length-1] & ~(0xff << p->bits_unused)) == 0); + } else { + assert(p->bits_unused == 0); + } +} + +static int _el_buf_cmp(const void *ap, const void *bp) { + const struct _el_buffer *a = (const struct _el_buffer *)ap; + const struct _el_buffer *b = (const struct _el_buffer *)bp; + size_t common_len; + int ret = 0; + + if(a->length < b->length) + common_len = a->length; + else + common_len = b->length; + + if (a->buf && b->buf) { + ret = memcmp(a->buf, b->buf, common_len); + } + if(ret == 0) { + if(a->length < b->length) + ret = -1; + else if(a->length > b->length) + ret = 1; + /* Ignore unused bits. */ + assert_unused_bits(a); + assert_unused_bits(b); + } + + return ret; +} + +static void +SET_OF__encode_sorted_free(struct _el_buffer *el_buf, size_t count) { + size_t i; + + for(i = 0; i < count; i++) { + FREEMEM(el_buf[i].buf); + } + + FREEMEM(el_buf); +} + +enum SET_OF__encode_method { + SOES_DER, /* Distinguished Encoding Rules */ + SOES_CUPER /* Canonical Unaligned Packed Encoding Rules */ +}; + +static struct _el_buffer * +SET_OF__encode_sorted(const asn_TYPE_member_t *elm, + const asn_anonymous_set_ *list, + enum SET_OF__encode_method method) { + struct _el_buffer *encoded_els; + int edx; + + encoded_els = + (struct _el_buffer *)CALLOC(list->count, sizeof(encoded_els[0])); + if(encoded_els == NULL) { + return NULL; + } + + /* + * Encode all members. + */ + for(edx = 0; edx < list->count; edx++) { + const void *memb_ptr = list->array[edx]; + struct _el_buffer *encoding_el = &encoded_els[edx]; + asn_enc_rval_t erval = {0,0,0}; + + if(!memb_ptr) break; + + /* + * Encode the member into the prepared space. + */ + switch(method) { + case SOES_DER: + erval = elm->type->op->der_encoder(elm->type, memb_ptr, 0, elm->tag, + _el_addbytes, encoding_el); + break; + case SOES_CUPER: + erval = uper_encode(elm->type, + elm->encoding_constraints.per_constraints, + memb_ptr, _el_addbytes, encoding_el); + if(erval.encoded != -1) { + size_t extra_bits = erval.encoded % 8; + assert(encoding_el->length == (size_t)(erval.encoded + 7) / 8); + encoding_el->bits_unused = (8 - extra_bits) & 0x7; + } + break; + default: + assert(!"Unreachable"); + break; + } + if(erval.encoded < 0) break; + } + + if(edx == list->count) { + /* + * Sort the encoded elements according to their encoding. + */ + qsort(encoded_els, list->count, sizeof(encoded_els[0]), _el_buf_cmp); + + return encoded_els; + } else { + SET_OF__encode_sorted_free(encoded_els, edx); + return NULL; + } +} + + +/* + * The DER encoder of the SET OF type. + */ +asn_enc_rval_t +SET_OF_encode_der(const asn_TYPE_descriptor_t *td, const void *sptr, + int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, + void *app_key) { + const asn_TYPE_member_t *elm = td->elements; + const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); + size_t computed_size = 0; + ssize_t encoding_size = 0; + struct _el_buffer *encoded_els; + int edx; + + ASN_DEBUG("Estimating size for SET OF %s", td->name); + + /* + * Gather the length of the underlying members sequence. + */ + for(edx = 0; edx < list->count; edx++) { + void *memb_ptr = list->array[edx]; + asn_enc_rval_t erval = {0,0,0}; + + if(!memb_ptr) ASN__ENCODE_FAILED; + + erval = + elm->type->op->der_encoder(elm->type, memb_ptr, 0, elm->tag, 0, 0); + if(erval.encoded == -1) return erval; + computed_size += erval.encoded; + } + + + /* + * Encode the TLV for the sequence itself. + */ + encoding_size = + der_write_tags(td, computed_size, tag_mode, 1, tag, cb, app_key); + if(encoding_size < 0) { + ASN__ENCODE_FAILED; + } + computed_size += encoding_size; + + if(!cb || list->count == 0) { + asn_enc_rval_t erval = {0,0,0}; + erval.encoded = computed_size; + ASN__ENCODED_OK(erval); + } + + ASN_DEBUG("Encoding members of %s SET OF", td->name); + + /* + * DER mandates dynamic sorting of the SET OF elements + * according to their encodings. Build an array of the + * encoded elements. + */ + encoded_els = SET_OF__encode_sorted(elm, list, SOES_DER); + + /* + * Report encoded elements to the application. + * Dispose of temporary sorted members table. + */ + for(edx = 0; edx < list->count; edx++) { + struct _el_buffer *encoded_el = &encoded_els[edx]; + /* Report encoded chunks to the application */ + if(cb(encoded_el->buf, encoded_el->length, app_key) < 0) { + break; + } else { + encoding_size += encoded_el->length; + } + } + + SET_OF__encode_sorted_free(encoded_els, list->count); + + if(edx == list->count) { + asn_enc_rval_t erval = {0,0,0}; + assert(computed_size == (size_t)encoding_size); + erval.encoded = computed_size; + ASN__ENCODED_OK(erval); + } else { + ASN__ENCODE_FAILED; + } +} + +#undef XER_ADVANCE +#define XER_ADVANCE(num_bytes) do { \ + size_t num = num_bytes; \ + buf_ptr = ((const char *)buf_ptr) + num;\ + size -= num; \ + consumed_myself += num; \ + } while(0) + +/* + * Decode the XER (XML) data. + */ +asn_dec_rval_t +SET_OF_decode_xer(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const char *opt_mname, const void *buf_ptr, size_t size) { + /* + * Bring closer parts of structure description. + */ + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *element = td->elements; + const char *elm_tag; + const char *xml_tag = opt_mname ? opt_mname : td->xml_tag; + + /* + * ... and parts of the structure being constructed. + */ + void *st = *struct_ptr; /* Target structure. */ + asn_struct_ctx_t *ctx; /* Decoder context */ + + asn_dec_rval_t rval = {RC_OK, 0};/* Return value from a decoder */ + ssize_t consumed_myself = 0; /* Consumed bytes from ptr */ + + /* + * Create the target structure if it is not present already. + */ + if(st == 0) { + st = *struct_ptr = CALLOC(1, specs->struct_size); + if(st == 0) RETURN(RC_FAIL); + } + + /* Which tag is expected for the downstream */ + if(specs->as_XMLValueList) { + elm_tag = (specs->as_XMLValueList == 1) ? 0 : ""; + } else { + elm_tag = (*element->name) + ? element->name : element->type->xml_tag; + } + + /* + * Restore parsing context. + */ + ctx = (asn_struct_ctx_t *)((char *)st + specs->ctx_offset); + + /* + * Phases of XER/XML processing: + * Phase 0: Check that the opening tag matches our expectations. + * Phase 1: Processing body and reacting on closing tag. + * Phase 2: Processing inner type. + */ + for(; ctx->phase <= 2;) { + pxer_chunk_type_e ch_type; /* XER chunk type */ + ssize_t ch_size; /* Chunk size */ + xer_check_tag_e tcv; /* Tag check value */ + + /* + * Go inside the inner member of a set. + */ + if(ctx->phase == 2) { + asn_dec_rval_t tmprval = {RC_OK, 0}; + + /* Invoke the inner type decoder, m.b. multiple times */ + ASN_DEBUG("XER/SET OF element [%s]", elm_tag); + tmprval = element->type->op->xer_decoder(opt_codec_ctx, + element->type, &ctx->ptr, elm_tag, + buf_ptr, size); + if(tmprval.code == RC_OK) { + asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); + if(ASN_SET_ADD(list, ctx->ptr) != 0) + RETURN(RC_FAIL); + ctx->ptr = 0; + XER_ADVANCE(tmprval.consumed); + } else { + XER_ADVANCE(tmprval.consumed); + RETURN(tmprval.code); + } + ctx->phase = 1; /* Back to body processing */ + ASN_DEBUG("XER/SET OF phase => %d", ctx->phase); + /* Fall through */ + } + + /* + * Get the next part of the XML stream. + */ + ch_size = xer_next_token(&ctx->context, + buf_ptr, size, &ch_type); + if(ch_size == -1) { + RETURN(RC_FAIL); + } else { + switch(ch_type) { + case PXER_WMORE: + RETURN(RC_WMORE); + case PXER_COMMENT: /* Got XML comment */ + case PXER_TEXT: /* Ignore free-standing text */ + XER_ADVANCE(ch_size); /* Skip silently */ + continue; + case PXER_TAG: + break; /* Check the rest down there */ + } + } + + tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); + ASN_DEBUG("XER/SET OF: tcv = %d, ph=%d t=%s", + tcv, ctx->phase, xml_tag); + switch(tcv) { + case XCT_CLOSING: + if(ctx->phase == 0) break; + ctx->phase = 0; + /* Fall through */ + case XCT_BOTH: + if(ctx->phase == 0) { + /* No more things to decode */ + XER_ADVANCE(ch_size); + ctx->phase = 3; /* Phase out */ + RETURN(RC_OK); + } + /* Fall through */ + case XCT_OPENING: + if(ctx->phase == 0) { + XER_ADVANCE(ch_size); + ctx->phase = 1; /* Processing body phase */ + continue; + } + /* Fall through */ + case XCT_UNKNOWN_OP: + case XCT_UNKNOWN_BO: + + ASN_DEBUG("XER/SET OF: tcv=%d, ph=%d", tcv, ctx->phase); + if(ctx->phase == 1) { + /* + * Process a single possible member. + */ + ctx->phase = 2; + continue; + } + /* Fall through */ + default: + break; + } + + ASN_DEBUG("Unexpected XML tag in SET OF"); + break; + } + + ctx->phase = 3; /* "Phase out" on hard failure */ + RETURN(RC_FAIL); +} + + + +typedef struct xer_tmp_enc_s { + void *buffer; + size_t offset; + size_t size; +} xer_tmp_enc_t; +static int +SET_OF_encode_xer_callback(const void *buffer, size_t size, void *key) { + xer_tmp_enc_t *t = (xer_tmp_enc_t *)key; + if(t->offset + size >= t->size) { + size_t newsize = (t->size << 2) + size; + void *p = REALLOC(t->buffer, newsize); + if(!p) return -1; + t->buffer = p; + t->size = newsize; + } + memcpy((char *)t->buffer + t->offset, buffer, size); + t->offset += size; + return 0; +} +static int +SET_OF_xer_order(const void *aptr, const void *bptr) { + const xer_tmp_enc_t *a = (const xer_tmp_enc_t *)aptr; + const xer_tmp_enc_t *b = (const xer_tmp_enc_t *)bptr; + size_t minlen = a->offset; + int ret; + if(b->offset < minlen) minlen = b->offset; + /* Well-formed UTF-8 has this nice lexicographical property... */ + ret = memcmp(a->buffer, b->buffer, minlen); + if(ret != 0) return ret; + if(a->offset == b->offset) + return 0; + if(a->offset == minlen) + return -1; + return 1; +} + + +asn_enc_rval_t +SET_OF_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, + void *app_key) { + asn_enc_rval_t er = {0,0,0}; + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm = td->elements; + const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); + const char *mname = specs->as_XMLValueList + ? 0 : ((*elm->name) ? elm->name : elm->type->xml_tag); + size_t mlen = mname ? strlen(mname) : 0; + int xcan = (flags & XER_F_CANONICAL); + xer_tmp_enc_t *encs = 0; + size_t encs_count = 0; + void *original_app_key = app_key; + asn_app_consume_bytes_f *original_cb = cb; + int i; + + if(!sptr) ASN__ENCODE_FAILED; + + if(xcan) { + encs = (xer_tmp_enc_t *)MALLOC(list->count * sizeof(encs[0])); + if(!encs) ASN__ENCODE_FAILED; + cb = SET_OF_encode_xer_callback; + } + + er.encoded = 0; + + for(i = 0; i < list->count; i++) { + asn_enc_rval_t tmper = {0,0,0}; + + void *memb_ptr = list->array[i]; + if(!memb_ptr) continue; + + if(encs) { + memset(&encs[encs_count], 0, sizeof(encs[0])); + app_key = &encs[encs_count]; + encs_count++; + } + + if(mname) { + if(!xcan) ASN__TEXT_INDENT(1, ilevel); + ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); + } + + if(!xcan && specs->as_XMLValueList == 1) + ASN__TEXT_INDENT(1, ilevel + 1); + tmper = elm->type->op->xer_encoder(elm->type, memb_ptr, + ilevel + (specs->as_XMLValueList != 2), + flags, cb, app_key); + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + if(tmper.encoded == 0 && specs->as_XMLValueList) { + const char *name = elm->type->xml_tag; + size_t len = strlen(name); + ASN__CALLBACK3("<", 1, name, len, "/>", 2); + } + + if(mname) { + ASN__CALLBACK3("", 1); + } + + } + + if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1); + + if(encs) { + xer_tmp_enc_t *enc = encs; + xer_tmp_enc_t *end = encs + encs_count; + ssize_t control_size = 0; + + er.encoded = 0; + cb = original_cb; + app_key = original_app_key; + qsort(encs, encs_count, sizeof(encs[0]), SET_OF_xer_order); + + for(; enc < end; enc++) { + ASN__CALLBACK(enc->buffer, enc->offset); + FREEMEM(enc->buffer); + enc->buffer = 0; + control_size += enc->offset; + } + assert(control_size == er.encoded); + } + + goto cleanup; +cb_failed: + ASN__ENCODE_FAILED; +cleanup: + if(encs) { + size_t n; + for(n = 0; n < encs_count; n++) { + FREEMEM(encs[n].buffer); + } + FREEMEM(encs); + } + ASN__ENCODED_OK(er); +} + +int +SET_OF_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_TYPE_member_t *elm = td->elements; + const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); + int ret; + int i; + + if(!sptr) return (cb("", 8, app_key) < 0) ? -1 : 0; + + /* Dump preamble */ + if(cb(td->name, strlen(td->name), app_key) < 0 + || cb(" ::= {", 6, app_key) < 0) + return -1; + + for(i = 0; i < list->count; i++) { + const void *memb_ptr = list->array[i]; + if(!memb_ptr) continue; + + _i_INDENT(1); + + ret = elm->type->op->print_struct(elm->type, memb_ptr, + ilevel + 1, cb, app_key); + if(ret) return ret; + } + + ilevel--; + _i_INDENT(1); + + return (cb("}", 1, app_key) < 0) ? -1 : 0; +} + +void +SET_OF_free(const asn_TYPE_descriptor_t *td, void *ptr, + enum asn_struct_free_method method) { + if(td && ptr) { + const asn_SET_OF_specifics_t *specs; + asn_TYPE_member_t *elm = td->elements; + asn_anonymous_set_ *list = _A_SET_FROM_VOID(ptr); + asn_struct_ctx_t *ctx; /* Decoder context */ + int i; + + /* + * Could not use set_of_empty() because of (*free) + * incompatibility. + */ + for(i = 0; i < list->count; i++) { + void *memb_ptr = list->array[i]; + if(memb_ptr) + ASN_STRUCT_FREE(*elm->type, memb_ptr); + } + list->count = 0; /* No meaningful elements left */ + + asn_set_empty(list); /* Remove (list->array) */ + + specs = (const asn_SET_OF_specifics_t *)td->specifics; + ctx = (asn_struct_ctx_t *)((char *)ptr + specs->ctx_offset); + if(ctx->ptr) { + ASN_STRUCT_FREE(*elm->type, ctx->ptr); + ctx->ptr = 0; + } + + switch(method) { + case ASFM_FREE_EVERYTHING: + FREEMEM(ptr); + break; + case ASFM_FREE_UNDERLYING: + break; + case ASFM_FREE_UNDERLYING_AND_RESET: + memset(ptr, 0, specs->struct_size); + break; + } + } +} + +int +SET_OF_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const asn_TYPE_member_t *elm = td->elements; + asn_constr_check_f *constr; + const asn_anonymous_set_ *list = _A_CSET_FROM_VOID(sptr); + int i; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + constr = elm->encoding_constraints.general_constraints; + if(!constr) constr = elm->type->encoding_constraints.general_constraints; + + /* + * Iterate over the members of an array. + * Validate each in turn, until one fails. + */ + for(i = 0; i < list->count; i++) { + const void *memb_ptr = list->array[i]; + int ret; + + if(!memb_ptr) continue; + + ret = constr(elm->type, memb_ptr, ctfailcb, app_key); + if(ret) return ret; + } + + return 0; +} + +#ifndef ASN_DISABLE_PER_SUPPORT + +asn_dec_rval_t +SET_OF_decode_uper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rv = {RC_OK, 0}; + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm = td->elements; /* Single one */ + void *st = *sptr; + asn_anonymous_set_ *list; + const asn_per_constraint_t *ct; + int repeat = 0; + ssize_t nelems; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + /* + * Create the target structure if it is not present already. + */ + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + list = _A_SET_FROM_VOID(st); + + /* Figure out which constraints to use */ + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + int value = per_get_few_bits(pd, 1); + if(value < 0) ASN__DECODE_STARVED; + if(value) ct = 0; /* Not restricted! */ + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ + nelems = per_get_few_bits(pd, ct->effective_bits); + ASN_DEBUG("Preparing to fetch %ld+%ld elements from %s", + (long)nelems, ct->lower_bound, td->name); + if(nelems < 0) ASN__DECODE_STARVED; + nelems += ct->lower_bound; + } else { + nelems = -1; + } + + do { + int i; + if(nelems < 0) { + nelems = uper_get_length(pd, -1, 0, &repeat); + ASN_DEBUG("Got to decode %" ASN_PRI_SSIZE " elements (eff %d)", + nelems, (int)(ct ? ct->effective_bits : -1)); + if(nelems < 0) ASN__DECODE_STARVED; + } + + for(i = 0; i < nelems; i++) { + void *ptr = 0; + ASN_DEBUG("SET OF %s decoding", elm->type->name); + rv = elm->type->op->uper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, &ptr, pd); + ASN_DEBUG("%s SET OF %s decoded %d, %p", + td->name, elm->type->name, rv.code, ptr); + if(rv.code == RC_OK) { + if(ASN_SET_ADD(list, ptr) == 0) { + if(rv.consumed == 0 && nelems > 200) { + /* Protect from SET OF NULL compression bombs. */ + ASN__DECODE_FAILED; + } + continue; + } + ASN_DEBUG("Failed to add element into %s", + td->name); + /* Fall through */ + rv.code = RC_FAIL; + } else { + ASN_DEBUG("Failed decoding %s of %s (SET OF)", + elm->type->name, td->name); + } + if(ptr) ASN_STRUCT_FREE(*elm->type, ptr); + return rv; + } + + nelems = -1; /* Allow uper_get_length() */ + } while(repeat); + + ASN_DEBUG("Decoded %s as SET OF", td->name); + + rv.code = RC_OK; + rv.consumed = 0; + return rv; +} + +asn_enc_rval_t +SET_OF_encode_uper(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + const asn_anonymous_set_ *list; + const asn_per_constraint_t *ct; + const asn_TYPE_member_t *elm = td->elements; + struct _el_buffer *encoded_els; + asn_enc_rval_t er = {0,0,0}; + size_t encoded_edx; + + if(!sptr) ASN__ENCODE_FAILED; + + list = _A_CSET_FROM_VOID(sptr); + + er.encoded = 0; + + ASN_DEBUG("Encoding %s as SEQUENCE OF (%d)", td->name, list->count); + + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + /* If extensible constraint, check if size is in root */ + if(ct) { + int not_in_root = + (list->count < ct->lower_bound || list->count > ct->upper_bound); + ASN_DEBUG("lb %ld ub %ld %s", ct->lower_bound, ct->upper_bound, + ct->flags & APC_EXTENSIBLE ? "ext" : "fix"); + if(ct->flags & APC_EXTENSIBLE) { + /* Declare whether size is in extension root */ + if(per_put_few_bits(po, not_in_root, 1)) ASN__ENCODE_FAILED; + if(not_in_root) ct = 0; + } else if(not_in_root && ct->effective_bits >= 0) { + ASN__ENCODE_FAILED; + } + + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ + if(per_put_few_bits(po, list->count - ct->lower_bound, + ct->effective_bits)) + ASN__ENCODE_FAILED; + } else if(list->count == 0) { + /* When the list is empty add only the length determinant + * X.691, #20.6 and #11.9.4.1 + */ + if (uper_put_length(po, 0, 0)) { + ASN__ENCODE_FAILED; + } + ASN__ENCODED_OK(er); + } + + + /* + * Canonical UPER #22.1 mandates dynamic sorting of the SET OF elements + * according to their encodings. Build an array of the encoded elements. + */ + encoded_els = SET_OF__encode_sorted(elm, list, SOES_CUPER); + + for(encoded_edx = 0; (ssize_t)encoded_edx < list->count;) { + ssize_t may_encode; + size_t edx; + int need_eom = 0; + + if(ct && ct->effective_bits >= 0) { + may_encode = list->count; + } else { + may_encode = + uper_put_length(po, list->count - encoded_edx, &need_eom); + if(may_encode < 0) ASN__ENCODE_FAILED; + } + + for(edx = encoded_edx; edx < encoded_edx + may_encode; edx++) { + const struct _el_buffer *el = &encoded_els[edx]; + if(asn_put_many_bits(po, el->buf, + (8 * el->length) - el->bits_unused) < 0) { + break; + } + } + + if(need_eom && uper_put_length(po, 0, 0)) + ASN__ENCODE_FAILED; /* End of Message length */ + + encoded_edx += may_encode; + } + + SET_OF__encode_sorted_free(encoded_els, list->count); + + if((ssize_t)encoded_edx == list->count) { + ASN__ENCODED_OK(er); + } else { + ASN__ENCODE_FAILED; + } +} + +asn_dec_rval_t +SET_OF_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + asn_dec_rval_t rv = {RC_OK, 0}; + const asn_SET_OF_specifics_t *specs = (const asn_SET_OF_specifics_t *)td->specifics; + const asn_TYPE_member_t *elm = td->elements; /* Single one */ + void *st = *sptr; + asn_anonymous_set_ *list; + const asn_per_constraint_t *ct; + int repeat = 0; + ssize_t nelems; + + if(ASN__STACK_OVERFLOW_CHECK(opt_codec_ctx)) + ASN__DECODE_FAILED; + + /* + * Create the target structure if it is not present already. + */ + if(!st) { + st = *sptr = CALLOC(1, specs->struct_size); + if(!st) ASN__DECODE_FAILED; + } + list = _A_SET_FROM_VOID(st); + + /* Figure out which constraints to use */ + if(constraints) ct = &constraints->size; + else if(td->encoding_constraints.per_constraints) + ct = &td->encoding_constraints.per_constraints->size; + else ct = 0; + + if(ct && ct->flags & APC_EXTENSIBLE) { + int value = per_get_few_bits(pd, 1); + if(value < 0) ASN__DECODE_STARVED; + if(value) ct = 0; /* Not restricted! */ + } + + if(ct && ct->effective_bits >= 0) { + /* X.691, #19.5: No length determinant */ + nelems = aper_get_nsnnwn(pd, ct->upper_bound - ct->lower_bound + 1); + ASN_DEBUG("Preparing to fetch %ld+%ld elements from %s", + (long)nelems, ct->lower_bound, td->name); + if(nelems < 0) ASN__DECODE_STARVED; + nelems += ct->lower_bound; + } else { + nelems = -1; + } + + do { + int i; + if(nelems < 0) { + nelems = aper_get_length(pd, ct ? ct->upper_bound - ct->lower_bound + 1 : -1, + ct ? ct->effective_bits : -1, &repeat); + ASN_DEBUG("Got to decode %d elements (eff %d)", + (int)nelems, (int)(ct ? ct->effective_bits : -1)); + if(nelems < 0) ASN__DECODE_STARVED; + } + + for(i = 0; i < nelems; i++) { + void *ptr = 0; + ASN_DEBUG("SET OF %s decoding", elm->type->name); + rv = elm->type->op->aper_decoder(opt_codec_ctx, elm->type, + elm->encoding_constraints.per_constraints, &ptr, pd); + ASN_DEBUG("%s SET OF %s decoded %d, %p", + td->name, elm->type->name, rv.code, ptr); + if(rv.code == RC_OK) { + if(ASN_SET_ADD(list, ptr) == 0) + continue; + ASN_DEBUG("Failed to add element into %s", + td->name); + /* Fall through */ + rv.code = RC_FAIL; + } else { + ASN_DEBUG("Failed decoding %s of %s (SET OF)", + elm->type->name, td->name); + } + if(ptr) ASN_STRUCT_FREE(*elm->type, ptr); + return rv; + } + + nelems = -1; /* Allow uper_get_length() */ + } while(repeat); + + ASN_DEBUG("Decoded %s as SET OF", td->name); + + rv.code = RC_OK; + rv.consumed = 0; + return rv; +} + +#endif /* ASN_DISABLE_PER_SUPPORT */ + +struct comparable_ptr { + const asn_TYPE_descriptor_t *td; + const void *sptr; +}; + +static int +SET_OF__compare_cb(const void *aptr, const void *bptr) { + const struct comparable_ptr *a = aptr; + const struct comparable_ptr *b = bptr; + assert(a->td == b->td); + return a->td->op->compare_struct(a->td, a->sptr, b->sptr); +} + +int +SET_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr, + const void *bptr) { + const asn_anonymous_set_ *a = _A_CSET_FROM_VOID(aptr); + const asn_anonymous_set_ *b = _A_CSET_FROM_VOID(bptr); + + if(a && b) { + struct comparable_ptr *asorted; + struct comparable_ptr *bsorted; + ssize_t common_length; + ssize_t idx; + + if(a->count == 0) { + if(b->count) return -1; + return 0; + } else if(b->count == 0) { + return 1; + } + + asorted = MALLOC(a->count * sizeof(asorted[0])); + bsorted = MALLOC(b->count * sizeof(bsorted[0])); + if(!asorted || !bsorted) { + FREEMEM(asorted); + FREEMEM(bsorted); + return -1; + } + + for(idx = 0; idx < a->count; idx++) { + asorted[idx].td = td->elements->type; + asorted[idx].sptr = a->array[idx]; + } + + for(idx = 0; idx < b->count; idx++) { + bsorted[idx].td = td->elements->type; + bsorted[idx].sptr = b->array[idx]; + } + + qsort(asorted, a->count, sizeof(asorted[0]), SET_OF__compare_cb); + qsort(bsorted, b->count, sizeof(bsorted[0]), SET_OF__compare_cb); + + common_length = (a->count < b->count ? a->count : b->count); + for(idx = 0; idx < common_length; idx++) { + int ret = td->elements->type->op->compare_struct( + td->elements->type, asorted[idx].sptr, bsorted[idx].sptr); + if(ret) { + FREEMEM(asorted); + FREEMEM(bsorted); + return ret; + } + } + + FREEMEM(asorted); + FREEMEM(bsorted); + + if(idx < b->count) /* more elements in b */ + return -1; /* a is shorter, so put it first */ + if(idx < a->count) return 1; + } else if(!a) { + return -1; + } else if(!b) { + return 1; + } + + return 0; +} + + +asn_TYPE_operation_t asn_OP_SET_OF = { + SET_OF_free, + SET_OF_print, + SET_OF_compare, + SET_OF_decode_ber, + SET_OF_encode_der, + SET_OF_decode_xer, + SET_OF_encode_xer, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + SET_OF_decode_oer, + SET_OF_encode_oer, +#endif +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + SET_OF_decode_uper, + SET_OF_encode_uper, + SET_OF_decode_aper, + 0, /* SET_OF_encode_aper */ +#endif /* ASN_DISABLE_PER_SUPPORT */ + SET_OF_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; + + +asn_random_fill_result_t +SET_OF_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, + const asn_encoding_constraints_t *constraints, + size_t max_length) { + const asn_SET_OF_specifics_t *specs = + (const asn_SET_OF_specifics_t *)td->specifics; + asn_random_fill_result_t res_ok = {ARFILL_OK, 0}; + asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; + asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; + const asn_TYPE_member_t *elm = td->elements; + void *st = *sptr; + long max_elements = 5; + long slb = 0; /* Lower size bound */ + long sub = 0; /* Upper size bound */ + size_t rnd_len; + + if(max_length == 0) return result_skipped; + + if(st == NULL) { + st = (*sptr = CALLOC(1, specs->struct_size)); + if(st == NULL) { + return result_failed; + } + } + + switch(asn_random_between(0, 6)) { + case 0: max_elements = 0; break; + case 1: max_elements = 1; break; + case 2: max_elements = 5; break; + case 3: max_elements = max_length; break; + case 4: max_elements = max_length / 2; break; + case 5: max_elements = max_length / 4; break; + default: break; + } + sub = slb + max_elements; + + if(!constraints || !constraints->per_constraints) + constraints = &td->encoding_constraints; + if(constraints->per_constraints) { + const asn_per_constraint_t *pc = &constraints->per_constraints->size; + if(pc->flags & APC_SEMI_CONSTRAINED) { + slb = pc->lower_bound; + sub = pc->lower_bound + max_elements; + } else if(pc->flags & APC_CONSTRAINED) { + slb = pc->lower_bound; + sub = pc->upper_bound; + if(sub - slb > max_elements) sub = slb + max_elements; + } + } + + /* Bias towards edges of allowed space */ + switch(asn_random_between(-1, 4)) { + default: + case -1: + /* Prepare lengths somewhat outside of constrained range. */ + if(constraints->per_constraints + && (constraints->per_constraints->size.flags & APC_EXTENSIBLE)) { + switch(asn_random_between(0, 5)) { + default: + case 0: + rnd_len = 0; + break; + case 1: + if(slb > 0) { + rnd_len = slb - 1; + } else { + rnd_len = 0; + } + break; + case 2: + rnd_len = asn_random_between(0, slb); + break; + case 3: + if(sub < (ssize_t)max_length) { + rnd_len = sub + 1; + } else { + rnd_len = max_length; + } + break; + case 4: + if(sub < (ssize_t)max_length) { + rnd_len = asn_random_between(sub + 1, max_length); + } else { + rnd_len = max_length; + } + break; + case 5: + rnd_len = max_length; + break; + } + break; + } + /* Fall through */ + case 0: + rnd_len = asn_random_between(slb, sub); + break; + case 1: + if(slb < sub) { + rnd_len = asn_random_between(slb + 1, sub); + break; + } + /* Fall through */ + case 2: + rnd_len = asn_random_between(slb, slb); + break; + case 3: + if(slb < sub) { + rnd_len = asn_random_between(slb, sub - 1); + break; + } + /* Fall through */ + case 4: + rnd_len = asn_random_between(sub, sub); + break; + } + + for(; rnd_len > 0; rnd_len--) { + asn_anonymous_set_ *list = _A_SET_FROM_VOID(st); + void *ptr = 0; + asn_random_fill_result_t tmpres = elm->type->op->random_fill( + elm->type, &ptr, &elm->encoding_constraints, + (max_length > res_ok.length ? max_length - res_ok.length : 0) + / rnd_len); + switch(tmpres.code) { + case ARFILL_OK: + ASN_SET_ADD(list, ptr); + res_ok.length += tmpres.length; + break; + case ARFILL_SKIPPED: + break; + case ARFILL_FAILED: + assert(ptr == 0); + return tmpres; + } + } + + return res_ok; +} + diff --git a/src/du_app/F1AP/asn/constr_SET_OF.h b/src/du_app/F1AP/asn/constr_SET_OF.h new file mode 100755 index 000000000..768106271 --- /dev/null +++ b/src/du_app/F1AP/asn/constr_SET_OF.h @@ -0,0 +1,49 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef CONSTR_SET_OF_H +#define CONSTR_SET_OF_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct asn_SET_OF_specifics_s { + /* + * Target structure description. + */ + unsigned struct_size; /* Size of the target structure. */ + unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */ + + /* XER-specific stuff */ + int as_XMLValueList; /* The member type must be encoded like this */ +} asn_SET_OF_specifics_t; + +/* + * A set specialized functions dealing with the SET OF type. + */ +asn_struct_free_f SET_OF_free; +asn_struct_print_f SET_OF_print; +asn_struct_compare_f SET_OF_compare; +asn_constr_check_f SET_OF_constraint; +ber_type_decoder_f SET_OF_decode_ber; +der_type_encoder_f SET_OF_encode_der; +xer_type_decoder_f SET_OF_decode_xer; +xer_type_encoder_f SET_OF_encode_xer; +oer_type_decoder_f SET_OF_decode_oer; +oer_type_encoder_f SET_OF_encode_oer; +per_type_decoder_f SET_OF_decode_uper; +per_type_encoder_f SET_OF_encode_uper; +per_type_decoder_f SET_OF_decode_aper; +per_type_encoder_f SET_OF_encode_aper; +asn_random_fill_f SET_OF_random_fill; +extern asn_TYPE_operation_t asn_OP_SET_OF; + +#ifdef __cplusplus +} +#endif + +#endif /* CONSTR_SET_OF_H */ diff --git a/src/du_app/F1AP/asn/constr_SET_OF_oer.c b/src/du_app/F1AP/asn/constr_SET_OF_oer.c new file mode 100755 index 000000000..520051811 --- /dev/null +++ b/src/du_app/F1AP/asn/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/src/du_app/F1AP/asn/constr_TYPE.c b/src/du_app/F1AP/asn/constr_TYPE.c new file mode 100755 index 000000000..aefaefdb7 --- /dev/null +++ b/src/du_app/F1AP/asn/constr_TYPE.c @@ -0,0 +1,80 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * Version of the ASN.1 infrastructure shipped with compiler. + */ +int get_asn1c_environment_version() { return ASN1C_ENVIRONMENT_VERSION; } + +static asn_app_consume_bytes_f _print2fp; + +/* + * Return the outmost tag of the type. + */ +ber_tlv_tag_t +asn_TYPE_outmost_tag(const asn_TYPE_descriptor_t *type_descriptor, + const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag) { + + if(tag_mode) + return tag; + + if(type_descriptor->tags_count) + return type_descriptor->tags[0]; + + return type_descriptor->op->outmost_tag(type_descriptor, struct_ptr, 0, 0); +} + +/* + * Print the target language's structure in human readable form. + */ +int +asn_fprint(FILE *stream, const asn_TYPE_descriptor_t *td, + const void *struct_ptr) { + if(!stream) stream = stdout; + if(!td || !struct_ptr) { + errno = EINVAL; + return -1; + } + + /* Invoke type-specific printer */ + if(td->op->print_struct(td, struct_ptr, 1, _print2fp, stream)) { + return -1; + } + + /* Terminate the output */ + if(_print2fp("\n", 1, stream)) { + return -1; + } + + return fflush(stream); +} + +/* Dump the data into the specified stdio stream */ +static int +_print2fp(const void *buffer, size_t size, void *app_key) { + FILE *stream = (FILE *)app_key; + + if(fwrite(buffer, 1, size, stream) != size) + return -1; + + return 0; +} + + +/* + * Some compilers do not support variable args macros. + * This function is a replacement of ASN_DEBUG() macro. + */ +void ASN_DEBUG_f(const char *fmt, ...); +void ASN_DEBUG_f(const char *fmt, ...) { + va_list ap; + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + fprintf(stderr, "\n"); + va_end(ap); +} diff --git a/src/du_app/F1AP/asn/constr_TYPE.h b/src/du_app/F1AP/asn/constr_TYPE.h new file mode 100755 index 000000000..d80dea5a3 --- /dev/null +++ b/src/du_app/F1AP/asn/constr_TYPE.h @@ -0,0 +1,262 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +/* + * This file contains the declaration structure called "ASN.1 Type Definition", + * which holds all information necessary for encoding and decoding routines. + * This structure even contains pointer to these encoding and decoding routines + * for each defined ASN.1 type. + */ +#ifndef _CONSTR_TYPE_H_ +#define _CONSTR_TYPE_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ +struct asn_TYPE_member_s; /* Forward declaration */ + +/* + * This type provides the context information for various ASN.1 routines, + * primarily ones doing decoding. A member _asn_ctx of this type must be + * included into certain target language's structures, such as compound types. + */ +typedef struct asn_struct_ctx_s { + short phase; /* Decoding phase */ + short step; /* Elementary step of a phase */ + int context; /* Other context information */ + void *ptr; /* Decoder-specific stuff (stack elements) */ + ber_tlv_len_t left; /* Number of bytes left, -1 for indefinite */ +} asn_struct_ctx_t; + +#include /* Basic Encoding Rules decoder */ +#include /* Distinguished Encoding Rules encoder */ +#include /* Decoder of XER (XML, text) */ +#include /* Encoder into XER (XML, text) */ +#include /* Packet Encoding Rules decoder */ +#include /* Packet Encoding Rules encoder */ +#include /* Subtype constraints support */ +#include /* Random structures support */ + +#ifdef ASN_DISABLE_OER_SUPPORT +typedef void (oer_type_decoder_f)(void); +typedef void (oer_type_encoder_f)(void); +typedef void asn_oer_constraints_t; +#else +#include /* Octet Encoding Rules encoder */ +#include /* Octet Encoding Rules encoder */ +#endif + +/* + * Free the structure according to its specification. + * Use one of ASN_STRUCT_{FREE,RESET,CONTENTS_ONLY} macros instead. + * Do not use directly. + */ +enum asn_struct_free_method { + ASFM_FREE_EVERYTHING, /* free(struct_ptr) and underlying members */ + ASFM_FREE_UNDERLYING, /* free underlying members */ + ASFM_FREE_UNDERLYING_AND_RESET /* FREE_UNDERLYING + memset(0) */ +}; +typedef void (asn_struct_free_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + void *struct_ptr, enum asn_struct_free_method); + +/* + * Free the structure including freeing the memory pointed to by ptr itself. + */ +#define ASN_STRUCT_FREE(asn_DEF, ptr) \ + (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_EVERYTHING) + +/* + * Free the memory used by the members of the structure without freeing the + * the structure pointer itself. + * ZERO-OUT the structure to the safe clean state. + * (Retaining the pointer may be useful in case the structure is allocated + * statically or arranged on the stack, yet its elements are dynamic.) + */ +#define ASN_STRUCT_RESET(asn_DEF, ptr) \ + (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING_AND_RESET) + +/* + * Free memory used by the members of the structure without freeing + * the structure pointer itself. + * (Retaining the pointer may be useful in case the structure is allocated + * statically or arranged on the stack, yet its elements are dynamic.) + * AVOID using it in the application code; + * Use a safer ASN_STRUCT_RESET() instead. + */ +#define ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF, ptr) \ + (asn_DEF).op->free_struct(&(asn_DEF), (ptr), ASFM_FREE_UNDERLYING) + +/* + * Print the structure according to its specification. + */ +typedef int(asn_struct_print_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, + int level, /* Indentation level */ + asn_app_consume_bytes_f *callback, void *app_key); + +/* + * Compare two structs between each other. + * Returns <0 if struct_A is "smaller" than struct_B, >0 if "greater", + * and =0 if "equal to", for some type-specific, stable definition of + * "smaller", "greater" and "equal to". + */ +typedef int (asn_struct_compare_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_A, + const void *struct_B); + +/* + * Return the outmost tag of the type. + * If the type is untagged CHOICE, the dynamic operation is performed. + * NOTE: This function pointer type is only useful internally. + * Do not use it in your application. + */ +typedef ber_tlv_tag_t (asn_outmost_tag_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, int tag_mode, ber_tlv_tag_t tag); +/* The instance of the above function type; used internally. */ +asn_outmost_tag_f asn_TYPE_outmost_tag; + +/* + * Fetch the desired type of the Open Type based on the + * Information Object Set driven constraints. + */ +typedef struct asn_type_selector_result_s { + const struct asn_TYPE_descriptor_s *type_descriptor; /* Type encoded. */ + unsigned presence_index; /* Associated choice variant. */ +} asn_type_selector_result_t; +typedef asn_type_selector_result_t(asn_type_selector_f)( + const struct asn_TYPE_descriptor_s *parent_type_descriptor, + const void *parent_structure_ptr); + +/* + * Generalized functions for dealing with the speciic type. + * May be directly invoked by applications. + */ +typedef struct asn_TYPE_operation_s { + asn_struct_free_f *free_struct; /* Free the structure */ + asn_struct_print_f *print_struct; /* Human readable output */ + asn_struct_compare_f *compare_struct; /* Compare two structures */ + ber_type_decoder_f *ber_decoder; /* Generic BER decoder */ + der_type_encoder_f *der_encoder; /* Canonical DER encoder */ + xer_type_decoder_f *xer_decoder; /* Generic XER decoder */ + xer_type_encoder_f *xer_encoder; /* [Canonical] XER encoder */ + oer_type_decoder_f *oer_decoder; /* Generic OER decoder */ + oer_type_encoder_f *oer_encoder; /* Canonical OER encoder */ + per_type_decoder_f *uper_decoder; /* Unaligned PER decoder */ + per_type_encoder_f *uper_encoder; /* Unaligned PER encoder */ + per_type_decoder_f *aper_decoder; /* Aligned PER decoder */ + per_type_encoder_f *aper_encoder; /* Aligned PER encoder */ + asn_random_fill_f *random_fill; /* Initialize with a random value */ + asn_outmost_tag_f *outmost_tag; /* */ +} asn_TYPE_operation_t; + +/* + * A constraints tuple specifying both the OER and PER constraints. + */ +typedef struct asn_encoding_constraints_s { + const struct asn_oer_constraints_s *oer_constraints; + const struct asn_per_constraints_s *per_constraints; + asn_constr_check_f *general_constraints; +} asn_encoding_constraints_t; + +/* + * The definitive description of the destination language's structure. + */ +typedef struct asn_TYPE_descriptor_s { + const char *name; /* A name of the ASN.1 type. "" in some cases. */ + const char *xml_tag; /* Name used in XML tag */ + + /* + * Generalized functions for dealing with the specific type. + * May be directly invoked by applications. + */ + asn_TYPE_operation_t *op; + + /*********************************************************************** + * Internally useful members. Not to be used by applications directly. * + **********************************************************************/ + + /* + * Tags that are expected to occur. + */ + const ber_tlv_tag_t *tags; /* Effective tags sequence for this type */ + unsigned tags_count; /* Number of tags which are expected */ + const ber_tlv_tag_t *all_tags; /* Every tag for BER/containment */ + unsigned all_tags_count; /* Number of tags */ + + /* OER, PER, and general constraints */ + asn_encoding_constraints_t encoding_constraints; + + /* + * An ASN.1 production type members (members of SEQUENCE, SET, CHOICE). + */ + struct asn_TYPE_member_s *elements; + unsigned elements_count; + + /* + * Additional information describing the type, used by appropriate + * functions above. + */ + const void *specifics; +} asn_TYPE_descriptor_t; + +/* + * This type describes an element of the constructed type, + * i.e. SEQUENCE, SET, CHOICE, etc. + */ + enum asn_TYPE_flags_e { + ATF_NOFLAGS, + ATF_POINTER = 0x01, /* Represented by the pointer */ + ATF_OPEN_TYPE = 0x02, /* Open Type */ + ATF_ANY_TYPE = 0x04 /* ANY type (deprecated!) */ + }; +typedef struct asn_TYPE_member_s { + enum asn_TYPE_flags_e flags; /* Element's presentation flags */ + unsigned optional; /* Following optional members, including current */ + unsigned memb_offset; /* Offset of the element */ + ber_tlv_tag_t tag; /* Outmost (most immediate) tag */ + int tag_mode; /* IMPLICIT/no/EXPLICIT tag at current level */ + asn_TYPE_descriptor_t *type; /* Member type descriptor */ + asn_type_selector_f *type_selector; /* IoS runtime type selector */ + asn_encoding_constraints_t encoding_constraints; + int (*default_value_cmp)(const void *sptr); /* Compare DEFAULT */ + int (*default_value_set)(void **sptr); /* Set DEFAULT */ + const char *name; /* ASN.1 identifier of the element */ +} asn_TYPE_member_t; + +/* + * BER tag to element number mapping. + */ +typedef struct asn_TYPE_tag2member_s { + ber_tlv_tag_t el_tag; /* Outmost tag of the member */ + unsigned el_no; /* Index of the associated member, base 0 */ + int toff_first; /* First occurence of the el_tag, relative */ + int toff_last; /* Last occurence of the el_tag, relative */ +} asn_TYPE_tag2member_t; + +/* + * This function prints out the contents of the target language's structure + * (struct_ptr) into the file pointer (stream) in human readable form. + * RETURN VALUES: + * 0: The structure is printed. + * -1: Problem dumping the structure. + * (See also xer_fprint() in xer_encoder.h) + */ +int asn_fprint(FILE *stream, /* Destination stream descriptor */ + const asn_TYPE_descriptor_t *td, /* ASN.1 type descriptor */ + const void *struct_ptr); /* Structure to be printed */ + +#ifdef __cplusplus +} +#endif + +#endif /* _CONSTR_TYPE_H_ */ diff --git a/src/du_app/F1AP/asn/constraints.c b/src/du_app/F1AP/asn/constraints.c new file mode 100755 index 000000000..df3c6c194 --- /dev/null +++ b/src/du_app/F1AP/asn/constraints.c @@ -0,0 +1,93 @@ +#include +#include + +int +asn_generic_no_constraint(const asn_TYPE_descriptor_t *type_descriptor, + const void *struct_ptr, + asn_app_constraint_failed_f *cb, void *key) { + (void)type_descriptor; /* Unused argument */ + (void)struct_ptr; /* Unused argument */ + (void)cb; /* Unused argument */ + (void)key; /* Unused argument */ + + /* Nothing to check */ + return 0; +} + +int +asn_generic_unknown_constraint(const asn_TYPE_descriptor_t *type_descriptor, + const void *struct_ptr, + asn_app_constraint_failed_f *cb, void *key) { + (void)type_descriptor; /* Unused argument */ + (void)struct_ptr; /* Unused argument */ + (void)cb; /* Unused argument */ + (void)key; /* Unused argument */ + + /* Unknown how to check */ + return 0; +} + +struct errbufDesc { + const asn_TYPE_descriptor_t *failed_type; + const void *failed_struct_ptr; + char *errbuf; + size_t errlen; +}; + +static void +_asn_i_ctfailcb(void *key, const asn_TYPE_descriptor_t *td, const void *sptr, + const char *fmt, ...) { + struct errbufDesc *arg = key; + va_list ap; + ssize_t vlen; + ssize_t maxlen; + + arg->failed_type = td; + arg->failed_struct_ptr = sptr; + + maxlen = arg->errlen; + if(maxlen <= 0) + return; + + va_start(ap, fmt); + vlen = vsnprintf(arg->errbuf, maxlen, fmt, ap); + va_end(ap); + if(vlen >= maxlen) { + arg->errbuf[maxlen-1] = '\0'; /* Ensuring libc correctness */ + arg->errlen = maxlen - 1; /* Not counting termination */ + return; + } else if(vlen >= 0) { + arg->errbuf[vlen] = '\0'; /* Ensuring libc correctness */ + arg->errlen = vlen; /* Not counting termination */ + } else { + /* + * The libc on this system is broken. + */ + vlen = sizeof("") - 1; + maxlen--; + arg->errlen = vlen < maxlen ? vlen : maxlen; + memcpy(arg->errbuf, "", arg->errlen); + arg->errbuf[arg->errlen] = 0; + } + + return; +} + +int +asn_check_constraints(const asn_TYPE_descriptor_t *type_descriptor, + const void *struct_ptr, char *errbuf, size_t *errlen) { + struct errbufDesc arg; + int ret; + + arg.failed_type = 0; + arg.failed_struct_ptr = 0; + arg.errbuf = errbuf; + arg.errlen = errlen ? *errlen : 0; + + ret = type_descriptor->encoding_constraints.general_constraints( + type_descriptor, struct_ptr, _asn_i_ctfailcb, &arg); + if(ret == -1 && errlen) *errlen = arg.errlen; + + return ret; +} + diff --git a/src/du_app/F1AP/asn/constraints.h b/src/du_app/F1AP/asn/constraints.h new file mode 100755 index 000000000..0bd86a96b --- /dev/null +++ b/src/du_app/F1AP/asn/constraints.h @@ -0,0 +1,62 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN1_CONSTRAINTS_VALIDATOR_H +#define ASN1_CONSTRAINTS_VALIDATOR_H + +#include /* Platform-dependent types */ + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Validate the structure according to the ASN.1 constraints. + * If errbuf and errlen are given, they shall be pointing to the appropriate + * buffer space and its length before calling this function. Alternatively, + * they could be passed as NULL's. If constraints validation fails, + * errlen will contain the actual number of bytes taken from the errbuf + * to encode an error message (properly 0-terminated). + * + * RETURN VALUES: + * This function returns 0 in case all ASN.1 constraints are met + * and -1 if one or more constraints were failed. + */ +int asn_check_constraints( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Target language's structure */ + char *errbuf, /* Returned error description */ + size_t *errlen /* Length of the error description */ +); + + +/* + * Generic type for constraint checking callback, + * associated with every type descriptor. + */ +typedef int(asn_constr_check_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct_ptr, + asn_app_constraint_failed_f *optional_callback, /* Log the error */ + void *optional_app_key /* Opaque key passed to a callback */ +); + +/******************************* + * INTERNALLY USEFUL FUNCTIONS * + *******************************/ + +asn_constr_check_f asn_generic_no_constraint; /* No constraint whatsoever */ +asn_constr_check_f asn_generic_unknown_constraint; /* Not fully supported */ + +/* + * Invoke the callback with a complete error message. + */ +#define ASN__CTFAIL if(ctfailcb) ctfailcb + +#ifdef __cplusplus +} +#endif + +#endif /* ASN1_CONSTRAINTS_VALIDATOR_H */ diff --git a/src/du_app/F1AP/asn/der_encoder.c b/src/du_app/F1AP/asn/der_encoder.c new file mode 100755 index 000000000..2c6a6f769 --- /dev/null +++ b/src/du_app/F1AP/asn/der_encoder.c @@ -0,0 +1,194 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +static ssize_t der_write_TL(ber_tlv_tag_t tag, ber_tlv_len_t len, + asn_app_consume_bytes_f *cb, void *app_key, int constructed); + +/* + * The DER encoder of any type. + */ +asn_enc_rval_t +der_encode(const asn_TYPE_descriptor_t *type_descriptor, const void *struct_ptr, + asn_app_consume_bytes_f *consume_bytes, void *app_key) { + ASN_DEBUG("DER encoder invoked for %s", + type_descriptor->name); + + /* + * Invoke type-specific encoder. + */ + return type_descriptor->op->der_encoder( + type_descriptor, struct_ptr, /* Pointer to the destination structure */ + 0, 0, consume_bytes, app_key); +} + +/* + * Argument type and callback necessary for der_encode_to_buffer(). + */ +typedef struct enc_to_buf_arg { + void *buffer; + size_t left; +} enc_to_buf_arg; +static int encode_to_buffer_cb(const void *buffer, size_t size, void *key) { + enc_to_buf_arg *arg = (enc_to_buf_arg *)key; + + if(arg->left < size) + return -1; /* Data exceeds the available buffer size */ + + memcpy(arg->buffer, buffer, size); + arg->buffer = ((char *)arg->buffer) + size; + arg->left -= size; + + return 0; +} + +/* + * A variant of the der_encode() which encodes the data into the provided buffer + */ +asn_enc_rval_t +der_encode_to_buffer(const asn_TYPE_descriptor_t *type_descriptor, + const void *struct_ptr, void *buffer, size_t buffer_size) { + enc_to_buf_arg arg; + asn_enc_rval_t ec; + + arg.buffer = buffer; + arg.left = buffer_size; + + ec = type_descriptor->op->der_encoder(type_descriptor, + struct_ptr, /* Pointer to the destination structure */ + 0, 0, encode_to_buffer_cb, &arg); + if(ec.encoded != -1) { + assert(ec.encoded == (ssize_t)(buffer_size - arg.left)); + /* Return the encoded contents size */ + } + return ec; +} + + +/* + * Write out leading TL[v] sequence according to the type definition. + */ +ssize_t +der_write_tags(const asn_TYPE_descriptor_t *sd, size_t struct_length, + int tag_mode, int last_tag_form, + ber_tlv_tag_t tag, /* EXPLICIT or IMPLICIT tag */ + asn_app_consume_bytes_f *cb, void *app_key) { +#define ASN1_DER_MAX_TAGS_COUNT 4 + ber_tlv_tag_t + tags_buf_scratch[ASN1_DER_MAX_TAGS_COUNT * sizeof(ber_tlv_tag_t)]; + ssize_t lens[ASN1_DER_MAX_TAGS_COUNT * sizeof(ssize_t)]; + const ber_tlv_tag_t *tags; /* Copy of tags stream */ + int tags_count; /* Number of tags */ + size_t overall_length; + int i; + + ASN_DEBUG("Writing tags (%s, tm=%d, tc=%d, tag=%s, mtc=%d)", + sd->name, tag_mode, sd->tags_count, + ber_tlv_tag_string(tag), + tag_mode + ?(sd->tags_count+1 + -((tag_mode == -1) && sd->tags_count)) + :sd->tags_count + ); + + if(sd->tags_count + 1 > ASN1_DER_MAX_TAGS_COUNT) { + ASN_DEBUG("System limit %d on tags count", ASN1_DER_MAX_TAGS_COUNT); + return -1; + } + + if(tag_mode) { + /* + * Instead of doing shaman dance like we do in ber_check_tags(), + * allocate a small array on the stack + * and initialize it appropriately. + */ + int stag_offset; + ber_tlv_tag_t *tags_buf = tags_buf_scratch; + tags_count = sd->tags_count + + 1 /* EXPLICIT or IMPLICIT tag is given */ + - ((tag_mode == -1) && sd->tags_count); + /* Copy tags over */ + tags_buf[0] = tag; + stag_offset = -1 + ((tag_mode == -1) && sd->tags_count); + for(i = 1; i < tags_count; i++) + tags_buf[i] = sd->tags[i + stag_offset]; + tags = tags_buf; + } else { + tags = sd->tags; + tags_count = sd->tags_count; + } + + /* No tags to write */ + if(tags_count == 0) + return 0; + + /* + * Array of tags is initialized. + * Now, compute the size of the TLV pairs, from right to left. + */ + overall_length = struct_length; + for(i = tags_count - 1; i >= 0; --i) { + lens[i] = der_write_TL(tags[i], overall_length, 0, 0, 0); + if(lens[i] == -1) return -1; + overall_length += lens[i]; + lens[i] = overall_length - lens[i]; + } + + if(!cb) return overall_length - struct_length; + + ASN_DEBUG("Encoding %s TL sequence (%d elements)", sd->name, + tags_count); + + /* + * Encode the TL sequence for real. + */ + for(i = 0; i < tags_count; i++) { + ssize_t len; + int _constr; + + /* Check if this tag happens to be constructed */ + _constr = (last_tag_form || i < (tags_count - 1)); + + len = der_write_TL(tags[i], lens[i], cb, app_key, _constr); + if(len == -1) return -1; + } + + return overall_length - struct_length; +} + +static ssize_t +der_write_TL(ber_tlv_tag_t tag, ber_tlv_len_t len, + asn_app_consume_bytes_f *cb, void *app_key, + int constructed) { + uint8_t buf[32]; + size_t size = 0; + int buf_size = cb?sizeof(buf):0; + ssize_t tmp; + + /* Serialize tag (T from TLV) into possibly zero-length buffer */ + tmp = ber_tlv_tag_serialize(tag, buf, buf_size); + if(tmp == -1 || tmp > (ssize_t)sizeof(buf)) return -1; + size += tmp; + + /* Serialize length (L from TLV) into possibly zero-length buffer */ + tmp = der_tlv_length_serialize(len, buf+size, buf_size?buf_size-size:0); + if(tmp == -1) return -1; + size += tmp; + + if(size > sizeof(buf)) + return -1; + + /* + * If callback is specified, invoke it, and check its return value. + */ + if(cb) { + if(constructed) *buf |= 0x20; + if(cb(buf, size, app_key) < 0) + return -1; + } + + return size; +} diff --git a/src/du_app/F1AP/asn/der_encoder.h b/src/du_app/F1AP/asn/der_encoder.h new file mode 100755 index 000000000..e93944edc --- /dev/null +++ b/src/du_app/F1AP/asn/der_encoder.h @@ -0,0 +1,68 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _DER_ENCODER_H_ +#define _DER_ENCODER_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * The DER encoder of any type. May be invoked by the application. + * Produces DER- and BER-compliant encoding. (DER is a subset of BER). + * + * NOTE: Use the ber_decode() function (ber_decoder.h) to decode data + * produced by der_encode(). + */ +asn_enc_rval_t der_encode(const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Structure to be encoded */ + asn_app_consume_bytes_f *consume_bytes_cb, + void *app_key /* Arbitrary callback argument */ +); + +/* A variant of der_encode() which encodes data into the pre-allocated buffer */ +asn_enc_rval_t der_encode_to_buffer( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Structure to be encoded */ + void *buffer, /* Pre-allocated buffer */ + size_t buffer_size /* Initial buffer size (maximum) */ +); + +/* + * Type of the generic DER encoder. + */ +typedef asn_enc_rval_t(der_type_encoder_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Structure to be encoded */ + int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ + ber_tlv_tag_t tag, asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ + void *app_key /* Arbitrary callback argument */ +); + + +/******************************* + * INTERNALLY USEFUL FUNCTIONS * + *******************************/ + +/* + * Write out leading TL[v] sequence according to the type definition. + */ +ssize_t der_write_tags(const struct asn_TYPE_descriptor_s *type_descriptor, + size_t struct_length, + int tag_mode, /* {-1,0,1}: IMPLICIT, no, EXPLICIT */ + int last_tag_form, /* {0,!0}: prim, constructed */ + ber_tlv_tag_t tag, + asn_app_consume_bytes_f *consume_bytes_cb, + void *app_key); + +#ifdef __cplusplus +} +#endif + +#endif /* _DER_ENCODER_H_ */ diff --git a/src/du_app/F1AP/asn/oer_decoder.c b/src/du_app/F1AP/asn/oer_decoder.c new file mode 100755 index 000000000..070173826 --- /dev/null +++ b/src/du_app/F1AP/asn/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/src/du_app/F1AP/asn/oer_decoder.h b/src/du_app/F1AP/asn/oer_decoder.h new file mode 100755 index 000000000..40992e948 --- /dev/null +++ b/src/du_app/F1AP/asn/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/src/du_app/F1AP/asn/oer_encoder.c b/src/du_app/F1AP/asn/oer_encoder.c new file mode 100755 index 000000000..a284cc2f3 --- /dev/null +++ b/src/du_app/F1AP/asn/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/src/du_app/F1AP/asn/oer_encoder.h b/src/du_app/F1AP/asn/oer_encoder.h new file mode 100755 index 000000000..6a7b68125 --- /dev/null +++ b/src/du_app/F1AP/asn/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/src/du_app/F1AP/asn/oer_support.c b/src/du_app/F1AP/asn/oer_support.c new file mode 100755 index 000000000..b15a3bc93 --- /dev/null +++ b/src/du_app/F1AP/asn/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/src/du_app/F1AP/asn/oer_support.h b/src/du_app/F1AP/asn/oer_support.h new file mode 100755 index 000000000..dbc9b5fcf --- /dev/null +++ b/src/du_app/F1AP/asn/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/src/du_app/F1AP/asn/per_decoder.c b/src/du_app/F1AP/asn/per_decoder.c new file mode 100755 index 000000000..8a3e39df8 --- /dev/null +++ b/src/du_app/F1AP/asn/per_decoder.c @@ -0,0 +1,185 @@ +#include +#include +#include + +/* + * Decode a "Production of a complete encoding", X.691#10.1. + * The complete encoding contains at least one byte, and is an integral + * multiple of 8 bytes. + */ +asn_dec_rval_t +uper_decode_complete(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const void *buffer, size_t size) { + asn_dec_rval_t rval; + + rval = uper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0); + if(rval.consumed) { + /* + * We've always given 8-aligned data, + * so convert bits to integral bytes. + */ + rval.consumed += 7; + rval.consumed >>= 3; + } else if(rval.code == RC_OK) { + if(size) { + if(((const uint8_t *)buffer)[0] == 0) { + rval.consumed = 1; /* 1 byte */ + } else { + ASN_DEBUG("Expecting single zeroed byte"); + rval.code = RC_FAIL; + } + } else { + /* Must contain at least 8 bits. */ + rval.code = RC_WMORE; + } + } + + return rval; +} + +asn_dec_rval_t +uper_decode(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, const void *buffer, + size_t size, int skip_bits, int unused_bits) { + asn_codec_ctx_t s_codec_ctx; + asn_dec_rval_t rval; + asn_per_data_t pd; + + if(skip_bits < 0 || skip_bits > 7 + || unused_bits < 0 || unused_bits > 7 + || (unused_bits > 0 && !size)) + ASN__DECODE_FAILED; + + /* + * Stack checker requires that the codec context + * must be allocated on the stack. + */ + if(opt_codec_ctx) { + if(opt_codec_ctx->max_stack_size) { + s_codec_ctx = *opt_codec_ctx; + opt_codec_ctx = &s_codec_ctx; + } + } else { + /* If context is not given, be security-conscious anyway */ + memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); + s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; + opt_codec_ctx = &s_codec_ctx; + } + + /* Fill in the position indicator */ + memset(&pd, 0, sizeof(pd)); + pd.buffer = (const uint8_t *)buffer; + pd.nboff = skip_bits; + pd.nbits = 8 * size - unused_bits; /* 8 is CHAR_BIT from */ + if(pd.nboff > pd.nbits) + ASN__DECODE_FAILED; + + /* + * Invoke type-specific decoder. + */ + if(!td->op->uper_decoder) + ASN__DECODE_FAILED; /* PER is not compiled in */ + rval = td->op->uper_decoder(opt_codec_ctx, td, 0, sptr, &pd); + if(rval.code == RC_OK) { + /* Return the number of consumed bits */ + rval.consumed = ((pd.buffer - (const uint8_t *)buffer) << 3) + + pd.nboff - skip_bits; + ASN_DEBUG("PER decoding consumed %ld, counted %ld", + (long)rval.consumed, (long)pd.moved); + assert(rval.consumed == pd.moved); + } else { + /* PER codec is not a restartable */ + rval.consumed = 0; + } + return rval; +} + +asn_dec_rval_t +aper_decode_complete(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, + const void *buffer, size_t size) { + asn_dec_rval_t rval; + + rval = aper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0); + if(rval.consumed) { + /* + * We've always given 8-aligned data, + * so convert bits to integral bytes. + */ + rval.consumed += 7; + rval.consumed >>= 3; + } else if(rval.code == RC_OK) { + if(size) { + if(((const uint8_t *)buffer)[0] == 0) { + rval.consumed = 1; /* 1 byte */ + } else { + ASN_DEBUG("Expecting single zeroed byte"); + rval.code = RC_FAIL; + } + } else { + /* Must contain at least 8 bits. */ + rval.code = RC_WMORE; + } + } + + return rval; +} + +asn_dec_rval_t +aper_decode(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **sptr, const void *buffer, + size_t size, int skip_bits, int unused_bits) { + asn_codec_ctx_t s_codec_ctx; + asn_dec_rval_t rval; + asn_per_data_t pd; + + if(skip_bits < 0 || skip_bits > 7 + || unused_bits < 0 || unused_bits > 7 + || (unused_bits > 0 && !size)) + ASN__DECODE_FAILED; + + /* + * Stack checker requires that the codec context + * must be allocated on the stack. + */ + if(opt_codec_ctx) { + if(opt_codec_ctx->max_stack_size) { + s_codec_ctx = *opt_codec_ctx; + opt_codec_ctx = &s_codec_ctx; + } + } else { + /* If context is not given, be security-conscious anyway */ + memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); + s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; + opt_codec_ctx = &s_codec_ctx; + } + + /* Fill in the position indicator */ + memset(&pd, 0, sizeof(pd)); + pd.buffer = (const uint8_t *)buffer; + pd.nboff = skip_bits; + pd.nbits = 8 * size - unused_bits; /* 8 is CHAR_BIT from */ + if(pd.nboff > pd.nbits) + ASN__DECODE_FAILED; + + /* + * Invoke type-specific decoder. + */ + if(!td->op->aper_decoder) + ASN__DECODE_FAILED; /* PER is not compiled in */ + rval = td->op->aper_decoder(opt_codec_ctx, td, 0, sptr, &pd); + if(rval.code == RC_OK) { + /* Return the number of consumed bits */ + rval.consumed = ((pd.buffer - (const uint8_t *)buffer) << 3) + + pd.nboff - skip_bits; + ASN_DEBUG("PER decoding consumed %zu, counted %zu", + rval.consumed, pd.moved); + assert(rval.consumed == pd.moved); + } else { + /* PER codec is not a restartable */ + rval.consumed = 0; + } + return rval; +} + diff --git a/src/du_app/F1AP/asn/per_decoder.h b/src/du_app/F1AP/asn/per_decoder.h new file mode 100755 index 000000000..eea474a9e --- /dev/null +++ b/src/du_app/F1AP/asn/per_decoder.h @@ -0,0 +1,82 @@ +/*- + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PER_DECODER_H_ +#define _PER_DECODER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Unaligned PER decoder of a "complete encoding" as per X.691 (08/2015) #11.1. + * On success, this call always returns (.consumed >= 1), as per #11.1.3. + */ +asn_dec_rval_t uper_decode_complete( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size /* Size of data buffer */ +); + +/* + * Unaligned PER decoder of any ASN.1 type. May be invoked by the application. + * WARNING: This call returns the number of BITS read from the stream. Beware. + */ +asn_dec_rval_t uper_decode( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size, /* Size of the input data buffer, in bytes */ + int skip_bits, /* Number of unused leading bits, 0..7 */ + int unused_bits /* Number of unused tailing bits, 0..7 */ +); + +/* + * Aligned PER decoder of a "complete encoding" as per X.691#10.1. + * On success, this call always returns (.consumed >= 1), in BITS, as per X.691#10.1.3. + */ +asn_dec_rval_t aper_decode_complete( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size /* Size of data buffer */ + ); + +/* + * Aligned PER decoder of any ASN.1 type. May be invoked by the application. + * WARNING: This call returns the number of BITS read from the stream. Beware. + */ +asn_dec_rval_t aper_decode( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, /* Type to decode */ + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size, /* Size of data buffer */ + int skip_bits, /* Number of unused leading bits, 0..7 */ + int unused_bits /* Number of unused tailing bits, 0..7 */ + ); + +/* + * Type of the type-specific PER decoder function. + */ +typedef asn_dec_rval_t(per_type_decoder_f)( + const asn_codec_ctx_t *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, void **struct_ptr, + asn_per_data_t *per_data); + +#ifdef __cplusplus +} +#endif + +#endif /* _PER_DECODER_H_ */ diff --git a/src/du_app/F1AP/asn/per_encoder.c b/src/du_app/F1AP/asn/per_encoder.c new file mode 100755 index 000000000..3455236db --- /dev/null +++ b/src/du_app/F1AP/asn/per_encoder.c @@ -0,0 +1,269 @@ +#include +#include +#include + +static int _uper_encode_flush_outp(asn_per_outp_t *po); + +static int +ignore_output(const void *data, size_t size, void *app_key) { + (void)data; + (void)size; + (void)app_key; + return 0; +} + +asn_enc_rval_t +uper_encode(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_app_consume_bytes_f *cb, void *app_key) { + asn_per_outp_t po; + asn_enc_rval_t er = {0,0,0}; + + /* + * Invoke type-specific encoder. + */ + if(!td || !td->op->uper_encoder) + ASN__ENCODE_FAILED; /* PER is not compiled in */ + + po.buffer = po.tmpspace; + po.nboff = 0; + po.nbits = 8 * sizeof(po.tmpspace); + po.output = cb ? cb : ignore_output; + po.op_key = app_key; + po.flushed_bytes = 0; + + er = td->op->uper_encoder(td, constraints, sptr, &po); + if(er.encoded != -1) { + size_t bits_to_flush; + + bits_to_flush = ((po.buffer - po.tmpspace) << 3) + po.nboff; + + /* Set number of bits encoded to a firm value */ + er.encoded = (po.flushed_bytes << 3) + bits_to_flush; + + if(_uper_encode_flush_outp(&po)) ASN__ENCODE_FAILED; + } + else + { + printf("else return val er.encoded %u, er.failed_type->name '%s'\n", er.encoded, er.failed_type->name); + } + + return er; +} + +/* + * Argument type and callback necessary for uper_encode_to_buffer(). + */ +typedef struct enc_to_buf_arg { + void *buffer; + size_t left; +} enc_to_buf_arg; +static int encode_to_buffer_cb(const void *buffer, size_t size, void *key) { + enc_to_buf_arg *arg = (enc_to_buf_arg *)key; + + if(arg->left < size) + return -1; /* Data exceeds the available buffer size */ + + memcpy(arg->buffer, buffer, size); + arg->buffer = ((char *)arg->buffer) + size; + arg->left -= size; + + return 0; +} + +asn_enc_rval_t +uper_encode_to_buffer(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, void *buffer, size_t buffer_size) { + enc_to_buf_arg key; + + key.buffer = buffer; + key.left = buffer_size; + + if(td) ASN_DEBUG("Encoding \"%s\" using UNALIGNED PER", td->name); + + return uper_encode(td, constraints, sptr, encode_to_buffer_cb, &key); +} + +typedef struct enc_dyn_arg { + void *buffer; + size_t length; + size_t allocated; +} enc_dyn_arg; +static int +encode_dyn_cb(const void *buffer, size_t size, void *key) { + enc_dyn_arg *arg = key; + if(arg->length + size >= arg->allocated) { + size_t new_size = arg->allocated ? arg->allocated : 8; + void *p; + + do { + new_size <<= 2; + } while(arg->length + size >= new_size); + + p = REALLOC(arg->buffer, new_size); + if(!p) { + FREEMEM(arg->buffer); + memset(arg, 0, sizeof(*arg)); + return -1; + } + arg->buffer = p; + arg->allocated = new_size; + } + memcpy(((char *)arg->buffer) + arg->length, buffer, size); + arg->length += size; + return 0; +} +ssize_t +uper_encode_to_new_buffer(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, void **buffer_r) { + asn_enc_rval_t er = {0,0,0}; + enc_dyn_arg key; + + memset(&key, 0, sizeof(key)); + + er = uper_encode(td, constraints, sptr, encode_dyn_cb, &key); + switch(er.encoded) { + case -1: + FREEMEM(key.buffer); + return -1; + case 0: + FREEMEM(key.buffer); + key.buffer = MALLOC(1); + if(key.buffer) { + *(char *)key.buffer = '\0'; + *buffer_r = key.buffer; + return 1; + } else { + return -1; + } + default: + *buffer_r = key.buffer; + ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); + return ((er.encoded + 7) >> 3); + } +} + +/* + * Internally useful functions. + */ + +/* Flush partially filled buffer */ +static int +_uper_encode_flush_outp(asn_per_outp_t *po) { + uint8_t *buf; + + if(po->nboff == 0 && po->buffer == po->tmpspace) + return 0; + + buf = po->buffer + (po->nboff >> 3); + /* Make sure we account for the last, partially filled */ + if(po->nboff & 0x07) { + buf[0] &= 0xff << (8 - (po->nboff & 0x07)); + buf++; + } + + return po->output(po->tmpspace, buf - po->tmpspace, po->op_key); +} + +asn_enc_rval_t +aper_encode_to_buffer(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, void *buffer, size_t buffer_size) { + enc_to_buf_arg key; + + key.buffer = buffer; + key.left = buffer_size; + + if(td) ASN_DEBUG("Encoding \"%s\" using ALIGNED PER", td->name); + + return aper_encode(td, constraints, sptr, encode_to_buffer_cb, &key); +} + +ssize_t +aper_encode_to_new_buffer(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, void **buffer_r) { + asn_enc_rval_t er = {0,0,0}; + enc_dyn_arg key; + + memset(&key, 0, sizeof(key)); + + er = aper_encode(td, constraints, sptr, encode_dyn_cb, &key); + switch(er.encoded) { + case -1: + FREEMEM(key.buffer); + return -1; + case 0: + FREEMEM(key.buffer); + key.buffer = MALLOC(1); + if(key.buffer) { + *(char *)key.buffer = '\0'; + *buffer_r = key.buffer; + return 1; + } else { + return -1; + } + default: + *buffer_r = key.buffer; + ASN_DEBUG("Complete encoded in %ld bits", (long)er.encoded); + return ((er.encoded + 7) >> 3); + } +} + +static int +_aper_encode_flush_outp(asn_per_outp_t *po) { + uint8_t *buf; + + if(po->nboff == 0 && po->buffer == po->tmpspace) + return 0; + + buf = po->buffer + (po->nboff >> 3); + /* Make sure we account for the last, partially filled */ + if(po->nboff & 0x07) { + buf[0] &= 0xff << (8 - (po->nboff & 0x07)); + buf++; + } + + if (po->output) { + return po->output(po->tmpspace, buf - po->tmpspace, po->op_key); + } + return 0; +} + +asn_enc_rval_t +aper_encode(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_app_consume_bytes_f *cb, void *app_key) { + asn_per_outp_t po; + asn_enc_rval_t er = {0,0,0}; + + /* + * Invoke type-specific encoder. + */ + if(!td || !td->op->aper_encoder) + ASN__ENCODE_FAILED; /* PER is not compiled in */ + + po.buffer = po.tmpspace; + po.nboff = 0; + po.nbits = 8 * sizeof(po.tmpspace); + po.output = cb; + po.op_key = app_key; + po.flushed_bytes = 0; + + er = td->op->aper_encoder(td, constraints, sptr, &po); + if(er.encoded != -1) { + size_t bits_to_flush; + + bits_to_flush = ((po.buffer - po.tmpspace) << 3) + po.nboff; + + /* Set number of bits encoded to a firm value */ + er.encoded = (po.flushed_bytes << 3) + bits_to_flush; + + if(_aper_encode_flush_outp(&po)) + ASN__ENCODE_FAILED; + } + + return er; +} diff --git a/src/du_app/F1AP/asn/per_encoder.h b/src/du_app/F1AP/asn/per_encoder.h new file mode 100755 index 000000000..b615ef028 --- /dev/null +++ b/src/du_app/F1AP/asn/per_encoder.h @@ -0,0 +1,93 @@ +/*- + * Copyright (c) 2006-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PER_ENCODER_H_ +#define _PER_ENCODER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * Unaligned PER encoder of any ASN.1 type. May be invoked by the application. + * WARNING: This function returns the number of encoded bits in the .encoded + * field of the return value. Use the following formula to convert to bytes: + * bytes = ((.encoded + 7) / 8) + */ +asn_enc_rval_t uper_encode( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + asn_app_consume_bytes_f *consume_bytes_cb, /* Data collector */ + void *app_key /* Arbitrary callback argument */ +); + +asn_enc_rval_t aper_encode( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + asn_app_consume_bytes_f *consume_bytes_cb, /* Data collector */ + void *app_key /* Arbitrary callback argument */ +); + +/* + * A variant of uper_encode() which encodes data into the existing buffer + * WARNING: This function returns the number of encoded bits in the .encoded + * field of the return value. + */ +asn_enc_rval_t uper_encode_to_buffer( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + void *buffer, /* Pre-allocated buffer */ + size_t buffer_size /* Initial buffer size (max) */ +); + +asn_enc_rval_t aper_encode_to_buffer( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + void *buffer, /* Pre-allocated buffer */ + size_t buffer_size /* Initial buffer size (max) */ +); +/* + * A variant of uper_encode_to_buffer() which allocates buffer itself. + * Returns the number of bytes in the buffer or -1 in case of failure. + * WARNING: This function produces a "Production of the complete encoding", + * with length of at least one octet. Contrast this to precise bit-packing + * encoding of uper_encode() and uper_encode_to_buffer(). + */ +ssize_t uper_encode_to_new_buffer( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, + const void *struct_ptr, /* Structure to be encoded */ + void **buffer_r /* Buffer allocated and returned */ +); + +ssize_t +aper_encode_to_new_buffer( + const struct asn_TYPE_descriptor_s *td, + const asn_per_constraints_t *constraints, + const void *sptr, + void **buffer_r +); + +/* + * Type of the generic PER encoder function. + */ +typedef asn_enc_rval_t(per_type_encoder_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const asn_per_constraints_t *constraints, const void *struct_ptr, + asn_per_outp_t *per_output); + +#ifdef __cplusplus +} +#endif + +#endif /* _PER_ENCODER_H_ */ diff --git a/src/du_app/F1AP/asn/per_opentype.c b/src/du_app/F1AP/asn/per_opentype.c new file mode 100755 index 000000000..28f3cb67d --- /dev/null +++ b/src/du_app/F1AP/asn/per_opentype.c @@ -0,0 +1,533 @@ +/* + * Copyright (c) 2007 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +typedef struct uper_ugot_key { + asn_per_data_t oldpd; /* Old per data source */ + size_t unclaimed; + size_t ot_moved; /* Number of bits moved by OT processing */ + int repeat; +} uper_ugot_key; + +static int uper_ugot_refill(asn_per_data_t *pd); +static int per_skip_bits(asn_per_data_t *pd, int skip_nbits); +static asn_dec_rval_t uper_sot_suck(const asn_codec_ctx_t *, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd); + +/* + * Encode an "open type field". + * #10.1, #10.2 + */ +int +uper_open_type_put(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, const void *sptr, + asn_per_outp_t *po) { + void *buf; + void *bptr; + ssize_t size; + + ASN_DEBUG("Open type put %s ...", td->name); + + size = uper_encode_to_new_buffer(td, constraints, sptr, &buf); + if(size <= 0) return -1; + + ASN_DEBUG("Open type put %s of length %" ASN_PRI_SSIZE " + overhead (1byte?)", td->name, + size); + + bptr = buf; + do { + int need_eom = 0; + ssize_t may_save = uper_put_length(po, size, &need_eom); + ASN_DEBUG("Prepending length %" ASN_PRI_SSIZE + " to %s and allowing to save %" ASN_PRI_SSIZE, + size, td->name, may_save); + if(may_save < 0) break; + if(per_put_many_bits(po, bptr, may_save * 8)) break; + bptr = (char *)bptr + may_save; + size -= may_save; + if(need_eom && uper_put_length(po, 0, 0)) { + FREEMEM(buf); + return -1; + } + } while(size); + + FREEMEM(buf); + if(size) return -1; + + return 0; +} + +static asn_dec_rval_t +uper_open_type_get_simple(const asn_codec_ctx_t *ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rv; + ssize_t chunk_bytes; + int repeat; + uint8_t *buf = 0; + size_t bufLen = 0; + size_t bufSize = 0; + asn_per_data_t spd; + size_t padding; + + ASN__STACK_OVERFLOW_CHECK(ctx); + + ASN_DEBUG("Getting open type %s...", td->name); + + do { + chunk_bytes = uper_get_length(pd, -1, 0, &repeat); + if(chunk_bytes < 0) { + FREEMEM(buf); + ASN__DECODE_STARVED; + } + if(bufLen + chunk_bytes > bufSize) { + void *ptr; + bufSize = chunk_bytes + (bufSize << 2); + ptr = REALLOC(buf, bufSize); + if(!ptr) { + FREEMEM(buf); + ASN__DECODE_FAILED; + } + buf = ptr; + } + if(per_get_many_bits(pd, buf + bufLen, 0, chunk_bytes << 3)) { + FREEMEM(buf); + ASN__DECODE_STARVED; + } + bufLen += chunk_bytes; + } while(repeat); + + ASN_DEBUG("Getting open type %s encoded in %ld bytes", td->name, + (long)bufLen); + + memset(&spd, 0, sizeof(spd)); + spd.buffer = buf; + spd.nbits = bufLen << 3; + + ASN_DEBUG_INDENT_ADD(+4); + rv = td->op->uper_decoder(ctx, td, constraints, sptr, &spd); + ASN_DEBUG_INDENT_ADD(-4); + + if(rv.code == RC_OK) { + /* Check padding validity */ + padding = spd.nbits - spd.nboff; + if (((padding > 0 && padding < 8) || + /* X.691#10.1.3 */ + (spd.nboff == 0 && spd.nbits == 8 && spd.buffer == buf)) && + per_get_few_bits(&spd, padding) == 0) { + /* Everything is cool */ + FREEMEM(buf); + return rv; + } + FREEMEM(buf); + if(padding >= 8) { + ASN_DEBUG("Too large padding %d in open type", (int)padding); + ASN__DECODE_FAILED; + } else { + ASN_DEBUG("No padding"); + } + } else { + FREEMEM(buf); + /* rv.code could be RC_WMORE, nonsense in this context */ + rv.code = RC_FAIL; /* Noone would give us more */ + } + + return rv; +} + +static asn_dec_rval_t CC_NOTUSED +uper_open_type_get_complex(const asn_codec_ctx_t *ctx, + const asn_TYPE_descriptor_t *td, + asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + uper_ugot_key arg; + asn_dec_rval_t rv; + ssize_t padding; + + ASN__STACK_OVERFLOW_CHECK(ctx); + + ASN_DEBUG("Getting open type %s from %s", td->name, + asn_bit_data_string(pd)); + arg.oldpd = *pd; + arg.unclaimed = 0; + arg.ot_moved = 0; + arg.repeat = 1; + pd->refill = uper_ugot_refill; + pd->refill_key = &arg; + pd->nbits = pd->nboff; /* 0 good bits at this point, will refill */ + pd->moved = 0; /* This now counts the open type size in bits */ + + ASN_DEBUG_INDENT_ADD(+4); + rv = td->op->uper_decoder(ctx, td, constraints, sptr, pd); + ASN_DEBUG_INDENT_ADD(-4); + +#define UPDRESTOREPD do { \ + /* buffer and nboff are valid, preserve them. */ \ + pd->nbits = arg.oldpd.nbits - (pd->moved - arg.ot_moved); \ + pd->moved = arg.oldpd.moved + (pd->moved - arg.ot_moved); \ + pd->refill = arg.oldpd.refill; \ + pd->refill_key = arg.oldpd.refill_key; \ + } while(0) + + if(rv.code != RC_OK) { + UPDRESTOREPD; + return rv; + } + + ASN_DEBUG("OpenType %s pd%s old%s unclaimed=%d, repeat=%d", td->name, + asn_bit_data_string(pd), + asn_bit_data_string(&arg.oldpd), + (int)arg.unclaimed, (int)arg.repeat); + + padding = pd->moved % 8; + if(padding) { + int32_t pvalue; + if(padding > 7) { + ASN_DEBUG("Too large padding %d in open type", + (int)padding); + rv.code = RC_FAIL; + UPDRESTOREPD; + return rv; + } + padding = 8 - padding; + ASN_DEBUG("Getting padding of %d bits", (int)padding); + pvalue = per_get_few_bits(pd, padding); + switch(pvalue) { + case -1: + ASN_DEBUG("Padding skip failed"); + UPDRESTOREPD; + ASN__DECODE_STARVED; + case 0: break; + default: + ASN_DEBUG("Non-blank padding (%d bits 0x%02x)", + (int)padding, (int)pvalue); + UPDRESTOREPD; + ASN__DECODE_FAILED; + } + } + if(pd->nboff != pd->nbits) { + ASN_DEBUG("Open type %s overhead pd%s old%s", td->name, + asn_bit_data_string(pd), asn_bit_data_string(&arg.oldpd)); + if(1) { + UPDRESTOREPD; + ASN__DECODE_FAILED; + } else { + arg.unclaimed += pd->nbits - pd->nboff; + } + } + + /* Adjust pd back so it points to original data */ + UPDRESTOREPD; + + /* Skip data not consumed by the decoder */ + if(arg.unclaimed) { + ASN_DEBUG("Getting unclaimed %d", (int)arg.unclaimed); + switch(per_skip_bits(pd, arg.unclaimed)) { + case -1: + ASN_DEBUG("Claim of %d failed", (int)arg.unclaimed); + ASN__DECODE_STARVED; + case 0: + ASN_DEBUG("Got claim of %d", (int)arg.unclaimed); + break; + default: + /* Padding must be blank */ + ASN_DEBUG("Non-blank unconsumed padding"); + ASN__DECODE_FAILED; + } + arg.unclaimed = 0; + } + + if(arg.repeat) { + ASN_DEBUG("Not consumed the whole thing"); + rv.code = RC_FAIL; + return rv; + } + + return rv; +} + + +asn_dec_rval_t +uper_open_type_get(const asn_codec_ctx_t *ctx, const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + return uper_open_type_get_simple(ctx, td, constraints, sptr, pd); +} + +int +uper_open_type_skip(const asn_codec_ctx_t *ctx, asn_per_data_t *pd) { + asn_TYPE_descriptor_t s_td; + asn_TYPE_operation_t s_op; + asn_dec_rval_t rv; + + s_td.name = ""; + s_td.op = &s_op; + s_op.uper_decoder = uper_sot_suck; + + rv = uper_open_type_get(ctx, &s_td, 0, 0, pd); + if(rv.code != RC_OK) + return -1; + else + return 0; +} + +/* + * Internal functions. + */ + +static asn_dec_rval_t +uper_sot_suck(const asn_codec_ctx_t *ctx, const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, + asn_per_data_t *pd) { + asn_dec_rval_t rv; + + (void)ctx; + (void)td; + (void)constraints; + (void)sptr; + + while(per_get_few_bits(pd, 1) >= 0); + + rv.code = RC_OK; + rv.consumed = pd->moved; + + return rv; +} + +static int +uper_ugot_refill(asn_per_data_t *pd) { + uper_ugot_key *arg = pd->refill_key; + ssize_t next_chunk_bytes, next_chunk_bits; + ssize_t avail; + + asn_per_data_t *oldpd = &arg->oldpd; + + ASN_DEBUG("REFILLING pd->moved=%ld, oldpd->moved=%ld", + (long)pd->moved, (long)oldpd->moved); + + /* Advance our position to where pd is */ + oldpd->buffer = pd->buffer; + oldpd->nboff = pd->nboff; + oldpd->nbits -= pd->moved - arg->ot_moved; + oldpd->moved += pd->moved - arg->ot_moved; + arg->ot_moved = pd->moved; + + if(arg->unclaimed) { + /* Refill the container */ + if(per_get_few_bits(oldpd, 1)) + return -1; + if(oldpd->nboff == 0) { + assert(0); + return -1; + } + pd->buffer = oldpd->buffer; + pd->nboff = oldpd->nboff - 1; + pd->nbits = oldpd->nbits; + ASN_DEBUG("UNCLAIMED <- return from (pd->moved=%ld)", + (long)pd->moved); + return 0; + } + + if(!arg->repeat) { + ASN_DEBUG("Want more but refill doesn't have it"); + return -1; + } + + next_chunk_bytes = uper_get_length(oldpd, -1, 0, &arg->repeat); + ASN_DEBUG("Open type LENGTH %ld bytes at off %ld, repeat %ld", + (long)next_chunk_bytes, (long)oldpd->moved, (long)arg->repeat); + if(next_chunk_bytes < 0) return -1; + if(next_chunk_bytes == 0) { + pd->refill = 0; /* No more refills, naturally */ + assert(!arg->repeat); /* Implementation guarantee */ + } + next_chunk_bits = next_chunk_bytes << 3; + avail = oldpd->nbits - oldpd->nboff; + if(avail >= next_chunk_bits) { + pd->nbits = oldpd->nboff + next_chunk_bits; + arg->unclaimed = 0; + ASN_DEBUG("!+Parent frame %ld bits, alloting %ld [%ld..%ld] (%ld)", + (long)next_chunk_bits, (long)oldpd->moved, + (long)oldpd->nboff, (long)oldpd->nbits, + (long)(oldpd->nbits - oldpd->nboff)); + } else { + pd->nbits = oldpd->nbits; + arg->unclaimed = next_chunk_bits - avail; + ASN_DEBUG("!-Parent frame %ld, require %ld, will claim %ld", + (long)avail, (long)next_chunk_bits, + (long)arg->unclaimed); + } + pd->buffer = oldpd->buffer; + pd->nboff = oldpd->nboff; + ASN_DEBUG("Refilled pd%s old%s", + asn_bit_data_string(pd), asn_bit_data_string(oldpd)); + return 0; +} + +static int +per_skip_bits(asn_per_data_t *pd, int skip_nbits) { + int hasNonZeroBits = 0; + while(skip_nbits > 0) { + int skip; + + /* per_get_few_bits() is more efficient when nbits <= 24 */ + if(skip_nbits < 24) + skip = skip_nbits; + else + skip = 24; + skip_nbits -= skip; + + switch(per_get_few_bits(pd, skip)) { + case -1: return -1; /* Starving */ + case 0: continue; /* Skipped empty space */ + default: hasNonZeroBits = 1; continue; + } + } + return hasNonZeroBits; +} + +static asn_dec_rval_t +aper_open_type_get_simple(const asn_codec_ctx_t *ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) { + asn_dec_rval_t rv; + ssize_t chunk_bytes; + int repeat; + uint8_t *buf = 0; + size_t bufLen = 0; + size_t bufSize = 0; + asn_per_data_t spd; + size_t padding; + + ASN__STACK_OVERFLOW_CHECK(ctx); + + ASN_DEBUG("Getting open type %s...", td->name); + + do { + chunk_bytes = aper_get_length(pd, -1, -1, &repeat); + if(chunk_bytes < 0) { + FREEMEM(buf); + ASN__DECODE_STARVED; + } + if(bufLen + chunk_bytes > bufSize) { + void *ptr; + bufSize = chunk_bytes + (bufSize << 2); + ptr = REALLOC(buf, bufSize); + if(!ptr) { + FREEMEM(buf); + ASN__DECODE_FAILED; + } + buf = ptr; + } + if(per_get_many_bits(pd, buf + bufLen, 0, chunk_bytes << 3)) { + FREEMEM(buf); + ASN__DECODE_STARVED; + } + bufLen += chunk_bytes; + } while(repeat); + + ASN_DEBUG("Getting open type %s encoded in %ld bytes", td->name, + (long)bufLen); + + memset(&spd, 0, sizeof(spd)); + spd.buffer = buf; + spd.nbits = bufLen << 3; + + ASN_DEBUG_INDENT_ADD(+4); + rv = td->op->aper_decoder(ctx, td, constraints, sptr, &spd); + ASN_DEBUG_INDENT_ADD(-4); + + if(rv.code == RC_OK) { + /* Check padding validity */ + padding = spd.nbits - spd.nboff; + if (((padding > 0 && padding < 8) || + /* X.691#10.1.3 */ + (spd.nboff == 0 && spd.nbits == 8 && spd.buffer == buf)) && + per_get_few_bits(&spd, padding) == 0) { + /* Everything is cool */ + FREEMEM(buf); + return rv; + } + FREEMEM(buf); + if(padding >= 8) { + ASN_DEBUG("Too large padding %d in open type", (int)padding); + ASN__DECODE_FAILED; + } else { + ASN_DEBUG("No padding"); + } + } else { + FREEMEM(buf); + /* rv.code could be RC_WMORE, nonsense in this context */ + rv.code = RC_FAIL; /* Noone would give us more */ + } + + return rv; +} + +int +aper_open_type_put(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po) { + void *buf; + void *bptr; + ssize_t size; + size_t toGo; + + ASN_DEBUG("Open type put %s ...", td->name); + + size = aper_encode_to_new_buffer(td, constraints, sptr, &buf); + if(size <= 0) return -1; + + for(bptr = buf, toGo = size; toGo;) { + ssize_t maySave = aper_put_length(po, -1, toGo); + if(maySave < 0) break; + if(per_put_many_bits(po, bptr, maySave * 8)) break; + bptr = (char *)bptr + maySave; + toGo -= maySave; + } + + FREEMEM(buf); + if(toGo) return -1; + + ASN_DEBUG("Open type put %s of length %ld + overhead (1byte?)", + td->name, size); + + return 0; +} + +asn_dec_rval_t +aper_open_type_get(const asn_codec_ctx_t *ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd) { + + return aper_open_type_get_simple(ctx, td, constraints, sptr, pd); +} + +int +aper_open_type_skip(const asn_codec_ctx_t *ctx, asn_per_data_t *pd) { + asn_TYPE_descriptor_t s_td; + asn_dec_rval_t rv; + asn_TYPE_operation_t op_t; + + memset(&op_t, 0, sizeof(op_t)); + s_td.name = ""; + s_td.op = &op_t; + s_td.op->aper_decoder = uper_sot_suck; + + rv = aper_open_type_get(ctx, &s_td, 0, 0, pd); + if(rv.code != RC_OK) + return -1; + else + return 0; +} + + diff --git a/src/du_app/F1AP/asn/per_opentype.h b/src/du_app/F1AP/asn/per_opentype.h new file mode 100755 index 000000000..1493b2d8e --- /dev/null +++ b/src/du_app/F1AP/asn/per_opentype.h @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2007-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PER_OPENTYPE_H_ +#define _PER_OPENTYPE_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +asn_dec_rval_t uper_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd); + +int uper_open_type_skip(const asn_codec_ctx_t *opt_codec_ctx, + asn_per_data_t *pd); + +/* + * X.691 (2015/08), #11.2 + * Returns -1 if error is encountered. 0 if all OK. + */ +int uper_open_type_put(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po); + +asn_dec_rval_t aper_open_type_get(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + void **sptr, asn_per_data_t *pd); + + +int aper_open_type_skip(const asn_codec_ctx_t *opt_codec_ctx, asn_per_data_t *pd); + +int aper_open_type_put(const asn_TYPE_descriptor_t *td, + const asn_per_constraints_t *constraints, + const void *sptr, asn_per_outp_t *po); + +#ifdef __cplusplus +} +#endif + +#endif /* _PER_OPENTYPE_H_ */ diff --git a/src/du_app/F1AP/asn/per_support.c b/src/du_app/F1AP/asn/per_support.c new file mode 100755 index 000000000..228567760 --- /dev/null +++ b/src/du_app/F1AP/asn/per_support.c @@ -0,0 +1,489 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * X.691-201508 #10.9 General rules for encoding a length determinant. + * Get the optionally constrained length "n" from the stream. + */ +ssize_t +uper_get_length(asn_per_data_t *pd, int ebits, size_t lower_bound, + int *repeat) { + ssize_t value; + + *repeat = 0; + + /* #11.9.4.1 Encoding if constrained (according to effective bits) */ + if(ebits >= 0 && ebits <= 16) { + value = per_get_few_bits(pd, ebits); + if(value >= 0) value += lower_bound; + return value; + } + + value = per_get_few_bits(pd, 8); + if((value & 0x80) == 0) { /* #11.9.3.6 */ + return (value & 0x7F); + } else if((value & 0x40) == 0) { /* #11.9.3.7 */ + /* bit 8 ... set to 1 and bit 7 ... set to zero */ + value = ((value & 0x3f) << 8) | per_get_few_bits(pd, 8); + return value; /* potential -1 from per_get_few_bits passes through. */ + } else if(value < 0) { + ASN_DEBUG("END of stream reached for PER"); + return -1; + } + value &= 0x3f; /* this is "m" from X.691, #11.9.3.8 */ + if(value < 1 || value > 4) { + return -1; /* Prohibited by #11.9.3.8 */ + } + *repeat = 1; + return (16384 * value); +} + +/* + * Get the normally small length "n". + * This procedure used to decode length of extensions bit-maps + * for SET and SEQUENCE types. + */ +ssize_t +uper_get_nslength(asn_per_data_t *pd) { + ssize_t length; + + ASN_DEBUG("Getting normally small length"); + + if(per_get_few_bits(pd, 1) == 0) { + length = per_get_few_bits(pd, 6) + 1; + if(length <= 0) return -1; + ASN_DEBUG("l=%d", (int)length); + return length; + } else { + int repeat; + length = uper_get_length(pd, -1, 0, &repeat); + if(length >= 0 && !repeat) return length; + return -1; /* Error, or do not support >16K extensions */ + } +} + +/* + * Get the normally small non-negative whole number. + * X.691, #10.6 + */ +ssize_t +uper_get_nsnnwn(asn_per_data_t *pd) { + ssize_t value; + + value = per_get_few_bits(pd, 7); + if(value & 64) { /* implicit (value < 0) */ + value &= 63; + value <<= 2; + value |= per_get_few_bits(pd, 2); + if(value & 128) /* implicit (value < 0) */ + return -1; + if(value == 0) + return 0; + if(value >= 3) + return -1; + value = per_get_few_bits(pd, 8 * value); + return value; + } + + return value; +} + +/* + * X.691-11/2008, #11.6 + * Encoding of a normally small non-negative whole number + */ +int +uper_put_nsnnwn(asn_per_outp_t *po, int n) { + int bytes; + + if(n <= 63) { + if(n < 0) return -1; + return per_put_few_bits(po, n, 7); + } + if(n < 256) + bytes = 1; + else if(n < 65536) + bytes = 2; + else if(n < 256 * 65536) + bytes = 3; + else + return -1; /* This is not a "normally small" value */ + if(per_put_few_bits(po, bytes, 8)) + return -1; + + return per_put_few_bits(po, n, 8 * bytes); +} + + +/* X.691-2008/11, #11.5.6 -> #11.3 */ +int uper_get_constrained_whole_number(asn_per_data_t *pd, unsigned long *out_value, int nbits) { + unsigned long lhalf; /* Lower half of the number*/ + long half; + + if(nbits <= 31) { + half = per_get_few_bits(pd, nbits); + if(half < 0) return -1; + *out_value = half; + return 0; + } + + if((size_t)nbits > 8 * sizeof(*out_value)) + return -1; /* RANGE */ + + half = per_get_few_bits(pd, 31); + if(half < 0) return -1; + + if(uper_get_constrained_whole_number(pd, &lhalf, nbits - 31)) + return -1; + + *out_value = ((unsigned long)half << (nbits - 31)) | lhalf; + return 0; +} + + +/* X.691-2008/11, #11.5.6 -> #11.3 */ +int +uper_put_constrained_whole_number_u(asn_per_outp_t *po, unsigned long v, + int nbits) { + if(nbits <= 31) { + return per_put_few_bits(po, v, nbits); + } else { + /* Put higher portion first, followed by lower 31-bit */ + if(uper_put_constrained_whole_number_u(po, v >> 31, nbits - 31)) + return -1; + return per_put_few_bits(po, v, 31); + } +} + +/* + * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" + * Put the length "n" (or part of it) into the stream. + */ +ssize_t +uper_put_length(asn_per_outp_t *po, size_t length, int *need_eom) { + int dummy = 0; + if(!need_eom) need_eom = &dummy; + + if(length <= 127) { /* #11.9.3.6 */ + *need_eom = 0; + return per_put_few_bits(po, length, 8) + ? -1 : (ssize_t)length; + } else if(length < 16384) { /* #10.9.3.7 */ + *need_eom = 0; + return per_put_few_bits(po, length|0x8000, 16) + ? -1 : (ssize_t)length; + } + + *need_eom = 0 == (length & 16383); + length >>= 14; + if(length > 4) { + *need_eom = 0; + length = 4; + } + + return per_put_few_bits(po, 0xC0 | length, 8) + ? -1 : (ssize_t)(length << 14); + +} + + +/* + * Put the normally small length "n" into the stream. + * This procedure used to encode length of extensions bit-maps + * for SET and SEQUENCE types. + */ +int +uper_put_nslength(asn_per_outp_t *po, size_t length) { + if(length <= 64) { + /* #11.9.3.4 */ + if(length == 0) return -1; + return per_put_few_bits(po, length - 1, 7) ? -1 : 0; + } else { + int need_eom = 0; + if(uper_put_length(po, length, &need_eom) != (ssize_t)length + || need_eom) { + /* This might happen in case of >16K extensions */ + return -1; + } + } + + return 0; +} + +static int +per__long_range(long lb, long ub, unsigned long *range_r) { + unsigned long bounds_range; + if((ub < 0) == (lb < 0)) { + bounds_range = ub - lb; + } else if(lb < 0) { + assert(ub >= 0); + bounds_range = 1 + ((unsigned long)ub + (unsigned long)-(lb + 1)); + } else { + assert(!"Unreachable"); + return -1; + } + *range_r = bounds_range; + return 0; +} + +int +per_long_range_rebase(long v, long lb, long ub, unsigned long *output) { + unsigned long range; + + assert(lb <= ub); + + if(v < lb || v > ub || per__long_range(lb, ub, &range) < 0) { + /* Range error. */ + return -1; + } + + /* + * Fundamentally what we're doing is returning (v-lb). + * However, this triggers undefined behavior when the word width + * of signed (v) is the same as the size of unsigned (*output). + * In practice, it triggers the UndefinedSanitizer. Therefore we shall + * compute the ranges accurately to avoid C's undefined behavior. + */ + if((v < 0) == (lb < 0)) { + *output = v-lb; + return 0; + } else if(v < 0) { + unsigned long rebased = 1 + (unsigned long)-(v+1) + (unsigned long)lb; + assert(rebased <= range); /* By construction */ + *output = rebased; + return 0; + } else if(lb < 0) { + unsigned long rebased = 1 + (unsigned long)-(lb+1) + (unsigned long)v; + assert(rebased <= range); /* By construction */ + *output = rebased; + return 0; + } else { + assert(!"Unreachable"); + return -1; + } +} + +int +per_long_range_unrebase(unsigned long inp, long lb, long ub, long *outp) { + unsigned long range; + + if(per__long_range(lb, ub, &range) != 0) { + return -1; + } + + if(inp > range) { + /* + * We can encode something in the given number of bits that technically + * exceeds the range. This is an avenue for security errors, + * so we don't allow that. + */ + return -1; + } + + if(inp <= LONG_MAX) { + *outp = (long)inp + lb; + } else { + *outp = (lb + LONG_MAX + 1) + (long)((inp - LONG_MAX) - 1); + } + + return 0; +} + +int32_t +aper_get_align(asn_per_data_t *pd) { + + if(pd->nboff & 0x7) { + ASN_DEBUG("Aligning %ld bits", 8 - ((unsigned long)pd->nboff & 0x7)); + return per_get_few_bits(pd, 8 - (pd->nboff & 0x7)); + } + return 0; +} + +ssize_t +aper_get_length(asn_per_data_t *pd, int range, int ebits, int *repeat) { + ssize_t value; + + *repeat = 0; + + if (range <= 65536 && range >= 0) + return aper_get_nsnnwn(pd, range); + + if (aper_get_align(pd) < 0) + return -1; + + if(ebits >= 0) return per_get_few_bits(pd, ebits); + + value = per_get_few_bits(pd, 8); + if(value < 0) return -1; + if((value & 128) == 0) /* #10.9.3.6 */ + return (value & 0x7F); + if((value & 64) == 0) { /* #10.9.3.7 */ + value = ((value & 63) << 8) | per_get_few_bits(pd, 8); + if(value < 0) return -1; + return value; + } + value &= 63; /* this is "m" from X.691, #10.9.3.8 */ + if(value < 1 || value > 4) + return -1; + *repeat = 1; + return (16384 * value); +} + +ssize_t +aper_get_nslength(asn_per_data_t *pd) { + ssize_t length; + + ASN_DEBUG("Getting normally small length"); + + if(per_get_few_bits(pd, 1) == 0) { + length = per_get_few_bits(pd, 6) + 1; + if(length <= 0) return -1; + ASN_DEBUG("l=%ld", length); + return length; + } else { + int repeat; + length = aper_get_length(pd, -1, -1, &repeat); + if(length >= 0 && !repeat) return length; + return -1; /* Error, or do not support >16K extensions */ + } +} + +ssize_t +aper_get_nsnnwn(asn_per_data_t *pd, int range) { + ssize_t value; + int bytes = 0; + + ASN_DEBUG("getting nsnnwn with range %d", range); + + if(range <= 255) { + int i; + + if (range < 0) return -1; + /* 1 -> 8 bits */ + for (i = 1; i <= 8; i++) { + int upper = 1 << i; + if (upper >= range) + break; + } + value = per_get_few_bits(pd, i); + return value; + } else if (range == 256){ + /* 1 byte */ + bytes = 1; + } else if (range <= 65536) { + /* 2 bytes */ + bytes = 2; + } else { + return -1; + } + if (aper_get_align(pd) < 0) + return -1; + value = per_get_few_bits(pd, 8 * bytes); + return value; +} + +int aper_put_align(asn_per_outp_t *po) { + + if(po->nboff & 0x7) { + ASN_DEBUG("Aligning %ld bits", 8 - ((unsigned long)po->nboff & 0x7)); + if(per_put_few_bits(po, 0x00, (8 - (po->nboff & 0x7)))) + return -1; + } + return 0; +} + +ssize_t +aper_put_length(asn_per_outp_t *po, int range, size_t length) { + + ASN_DEBUG("APER put length %zu with range %d", length, range); + + /* 10.9 X.691 Note 2 */ + if (range <= 65536 && range >= 0) + return aper_put_nsnnwn(po, range, length); + + if (aper_put_align(po) < 0) + return -1; + + if(length <= 127) /* #10.9.3.6 */{ + return per_put_few_bits(po, length, 8) + ? -1 : (ssize_t)length; + } + else if(length < 16384) /* #10.9.3.7 */ + return per_put_few_bits(po, length|0x8000, 16) + ? -1 : (ssize_t)length; + + length >>= 14; + if(length > 4) length = 4; + + return per_put_few_bits(po, 0xC0 | length, 8) + ? -1 : (ssize_t)(length << 14); +} + + +int +aper_put_nslength(asn_per_outp_t *po, size_t length) { + + if(length <= 64) { + /* #10.9.3.4 */ + if(length == 0) return -1; + return per_put_few_bits(po, length-1, 7) ? -1 : 0; + } else { + if(aper_put_length(po, -1, length) != (ssize_t)length) { + /* This might happen in case of >16K extensions */ + return -1; + } + } + + return 0; +} + +int +aper_put_nsnnwn(asn_per_outp_t *po, int range, int number) { + int bytes; + + ASN_DEBUG("aper put nsnnwn %d with range %d", number, range); + /* 10.5.7.1 X.691 */ + if(range < 0) { + int i; + for (i = 1; ; i++) { + int bits = 1 << (8 * i); + if (number <= bits) + break; + } + bytes = i; + assert(i <= 4); + } + if(range <= 255) { + int i; + for (i = 1; i <= 8; i++) { + int bits = 1 << i; + if (range <= bits) + break; + } + return per_put_few_bits(po, number, i); + } else if(range == 256) { + bytes = 1; + } else if(range <= 65536) { + bytes = 2; + } else { /* Ranges > 64K */ + int i; + for (i = 1; ; i++) { + int bits = 1 << (8 * i); + if (range <= bits) + break; + } + assert(i <= 4); + bytes = i; + } + if(aper_put_align(po) < 0) /* Aligning on octet */ + return -1; +/* if(per_put_few_bits(po, bytes, 8)) + return -1; +*/ + return per_put_few_bits(po, number, 8 * bytes); +} diff --git a/src/du_app/F1AP/asn/per_support.h b/src/du_app/F1AP/asn/per_support.h new file mode 100755 index 000000000..23079c94f --- /dev/null +++ b/src/du_app/F1AP/asn/per_support.h @@ -0,0 +1,127 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PER_SUPPORT_H_ +#define _PER_SUPPORT_H_ + +#include /* Platform-specific types */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Pre-computed PER constraints. + */ +typedef struct asn_per_constraint_s { + enum asn_per_constraint_flags { + APC_UNCONSTRAINED = 0x0, /* No PER visible constraints */ + APC_SEMI_CONSTRAINED = 0x1, /* Constrained at "lb" */ + APC_CONSTRAINED = 0x2, /* Fully constrained */ + APC_EXTENSIBLE = 0x4 /* May have extension */ + } flags; + int range_bits; /* Full number of bits in the range */ + int effective_bits; /* Effective bits */ + long lower_bound; /* "lb" value */ + long upper_bound; /* "ub" value */ +} asn_per_constraint_t; +typedef struct asn_per_constraints_s { + asn_per_constraint_t value; + asn_per_constraint_t size; + int (*value2code)(unsigned int value); + int (*code2value)(unsigned int code); +} asn_per_constraints_t; + +/* Temporary compatibility layer. Will get removed. */ +typedef struct asn_bit_data_s asn_per_data_t; +#define per_get_few_bits(data, bits) asn_get_few_bits(data, bits) +#define per_get_undo(data, bits) asn_get_undo(data, bits) +#define per_get_many_bits(data, dst, align, bits) \ + asn_get_many_bits(data, dst, align, bits) + +/* + * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" + * Get the length "n" from the Unaligned PER stream. + */ +ssize_t uper_get_length(asn_per_data_t *pd, int effective_bound_bits, + size_t lower_bound, int *repeat); + +ssize_t aper_get_length(asn_per_data_t *pd, int range, + int effective_bound_bits, int *repeat); + +/* + * Get the normally small length "n". + */ +ssize_t uper_get_nslength(asn_per_data_t *pd); +ssize_t aper_get_nslength(asn_per_data_t *pd); + +/* + * Get the normally small non-negative whole number. + */ +ssize_t uper_get_nsnnwn(asn_per_data_t *pd); +ssize_t aper_get_nsnnwn(asn_per_data_t *pd, int range); + +/* X.691-2008/11, #11.5.6 */ +int uper_get_constrained_whole_number(asn_per_data_t *pd, unsigned long *v, int nbits); + + +/* Temporary compatibility layer. Will get removed. */ +typedef struct asn_bit_outp_s asn_per_outp_t; +#define per_put_few_bits(out, bits, obits) asn_put_few_bits(out, bits, obits) +#define per_put_many_bits(out, src, nbits) asn_put_many_bits(out, src, nbits) +#define per_put_aligned_flush(out) asn_put_aligned_flush(out) + + +/* + * Rebase the given value as an offset into the range specified by the + * lower bound (lb) and upper bound (ub). + * RETURN VALUES: + * -1: Conversion failed due to range problems. + * 0: Conversion was successful. + */ +int per_long_range_rebase(long v, long lb, long ub, unsigned long *output); +/* The inverse operation: restores the value by the offset and its bounds. */ +int per_long_range_unrebase(unsigned long inp, long lb, long ub, long *outp); + +/* X.691-2008/11, #11.5 */ +int uper_put_constrained_whole_number_u(asn_per_outp_t *po, unsigned long v, int nbits); + +/* + * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" + * Put the length "whole_length" to the Unaligned PER stream. + * If (opt_need_eom) is given, it will be set to 1 if final 0-length is needed. + * In that case, invoke uper_put_length(po, 0, 0) after encoding the last block. + * This function returns the number of units which may be flushed + * in the next units saving iteration. + */ +ssize_t uper_put_length(asn_per_outp_t *po, size_t whole_length, + int *opt_need_eom); + +ssize_t aper_put_length(asn_per_outp_t *po, int range, size_t length); + +/* Align the current bit position to octet bundary */ +int aper_put_align(asn_per_outp_t *po); +int32_t aper_get_align(asn_per_data_t *pd); + +/* + * Put the normally small length "n" to the Unaligned PER stream. + * Returns 0 or -1. + */ +int uper_put_nslength(asn_per_outp_t *po, size_t length); + +int aper_put_nslength(asn_per_outp_t *po, size_t length); + +/* + * Put the normally small non-negative whole number. + */ +int uper_put_nsnnwn(asn_per_outp_t *po, int n); + +int aper_put_nsnnwn(asn_per_outp_t *po, int range, int number); + +#ifdef __cplusplus +} +#endif + +#endif /* _PER_SUPPORT_H_ */ diff --git a/src/du_app/F1AP/asn/xer_decoder.c b/src/du_app/F1AP/asn/xer_decoder.c new file mode 100755 index 000000000..5b87703a3 --- /dev/null +++ b/src/du_app/F1AP/asn/xer_decoder.c @@ -0,0 +1,369 @@ +/* + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include /* XER/XML parsing support */ + + +/* + * Decode the XER encoding of a given type. + */ +asn_dec_rval_t +xer_decode(const asn_codec_ctx_t *opt_codec_ctx, + const asn_TYPE_descriptor_t *td, void **struct_ptr, + const void *buffer, size_t size) { + asn_codec_ctx_t s_codec_ctx; + + /* + * Stack checker requires that the codec context + * must be allocated on the stack. + */ + if(opt_codec_ctx) { + if(opt_codec_ctx->max_stack_size) { + s_codec_ctx = *opt_codec_ctx; + opt_codec_ctx = &s_codec_ctx; + } + } else { + /* If context is not given, be security-conscious anyway */ + memset(&s_codec_ctx, 0, sizeof(s_codec_ctx)); + s_codec_ctx.max_stack_size = ASN__DEFAULT_STACK_MAX; + opt_codec_ctx = &s_codec_ctx; + } + + /* + * Invoke type-specific decoder. + */ + return td->op->xer_decoder(opt_codec_ctx, td, struct_ptr, 0, buffer, size); +} + + + +struct xer__cb_arg { + pxml_chunk_type_e chunk_type; + size_t chunk_size; + const void *chunk_buf; + int callback_not_invoked; +}; + +static int +xer__token_cb(pxml_chunk_type_e type, const void *_chunk_data, size_t _chunk_size, void *key) { + struct xer__cb_arg *arg = (struct xer__cb_arg *)key; + arg->chunk_type = type; + arg->chunk_size = _chunk_size; + arg->chunk_buf = _chunk_data; + arg->callback_not_invoked = 0; + return -1; /* Terminate the XML parsing */ +} + +/* + * Fetch the next token from the XER/XML stream. + */ +ssize_t +xer_next_token(int *stateContext, const void *buffer, size_t size, pxer_chunk_type_e *ch_type) { + struct xer__cb_arg arg; + int new_stateContext = *stateContext; + ssize_t ret; + + arg.callback_not_invoked = 1; + ret = pxml_parse(&new_stateContext, buffer, size, xer__token_cb, &arg); + if(ret < 0) return -1; + if(arg.callback_not_invoked) { + assert(ret == 0); /* No data was consumed */ + *ch_type = PXER_WMORE; + return 0; /* Try again with more data */ + } else { + assert(arg.chunk_size); + assert(arg.chunk_buf == buffer); + } + + /* + * Translate the XML chunk types into more convenient ones. + */ + switch(arg.chunk_type) { + case PXML_TEXT: + *ch_type = PXER_TEXT; + break; + case PXML_TAG: + *ch_type = PXER_WMORE; + return 0; /* Want more */ + case PXML_TAG_END: + *ch_type = PXER_TAG; + break; + case PXML_COMMENT: + case PXML_COMMENT_END: + *ch_type = PXER_COMMENT; + break; + } + + *stateContext = new_stateContext; + return arg.chunk_size; +} + +#define CSLASH 0x2f /* '/' */ +#define LANGLE 0x3c /* '<' */ +#define RANGLE 0x3e /* '>' */ + +xer_check_tag_e +xer_check_tag(const void *buf_ptr, int size, const char *need_tag) { + const char *buf = (const char *)buf_ptr; + const char *end; + xer_check_tag_e ct = XCT_OPENING; + + if(size < 2 || buf[0] != LANGLE || buf[size-1] != RANGLE) { + if(size >= 2) + ASN_DEBUG("Broken XML tag: \"%c...%c\"", + buf[0], buf[size - 1]); + return XCT_BROKEN; + } + + /* + * Determine the tag class. + */ + if(buf[1] == CSLASH) { + buf += 2; /* advance past "" */ + ct = XCT_CLOSING; + if(size > 0 && buf[size-1] == CSLASH) + return XCT_BROKEN; /* */ + } else { + buf++; /* advance past "<" */ + size -= 2; /* strip "<" and ">" */ + if(size > 0 && buf[size-1] == CSLASH) { + ct = XCT_BOTH; + size--; /* One more, for "/" */ + } + } + + /* Sometimes we don't care about the tag */ + if(!need_tag || !*need_tag) + return (xer_check_tag_e)(XCT__UNK__MASK | ct); + + /* + * Determine the tag name. + */ + for(end = buf + size; buf < end; buf++, need_tag++) { + int b = *buf, n = *need_tag; + if(b != n) { + if(n == 0) { + switch(b) { + case 0x09: case 0x0a: case 0x0c: case 0x0d: + case 0x20: + /* "": whitespace is normal */ + return ct; + } + } + return (xer_check_tag_e)(XCT__UNK__MASK | ct); + } + if(b == 0) + return XCT_BROKEN; /* Embedded 0 in buf?! */ + } + if(*need_tag) + return (xer_check_tag_e)(XCT__UNK__MASK | ct); + + return ct; +} + + +#undef ADVANCE +#define ADVANCE(num_bytes) do { \ + size_t num = (num_bytes); \ + buf_ptr = ((const char *)buf_ptr) + num; \ + size -= num; \ + consumed_myself += num; \ + } while(0) + +#undef RETURN +#define RETURN(_code) do { \ + rval.code = _code; \ + rval.consumed = consumed_myself; \ + if(rval.code != RC_OK) \ + ASN_DEBUG("Failed with %d", rval.code); \ + return rval; \ + } while(0) + +#define XER_GOT_BODY(chunk_buf, chunk_size, size) do { \ + ssize_t converted_size = body_receiver \ + (struct_key, chunk_buf, chunk_size, \ + (size_t)chunk_size < size); \ + if(converted_size == -1) RETURN(RC_FAIL); \ + if(converted_size == 0 \ + && size == (size_t)chunk_size) \ + RETURN(RC_WMORE); \ + chunk_size = converted_size; \ + } while(0) +#define XER_GOT_EMPTY() do { \ + if(body_receiver(struct_key, 0, 0, size > 0) == -1) \ + RETURN(RC_FAIL); \ + } while(0) + +/* + * Generalized function for decoding the primitive values. + */ +asn_dec_rval_t +xer_decode_general(const asn_codec_ctx_t *opt_codec_ctx, + asn_struct_ctx_t *ctx, /* Type decoder context */ + void *struct_key, + const char *xml_tag, /* Expected XML tag */ + const void *buf_ptr, size_t size, + int (*opt_unexpected_tag_decoder) + (void *struct_key, const void *chunk_buf, size_t chunk_size), + ssize_t (*body_receiver) + (void *struct_key, const void *chunk_buf, size_t chunk_size, + int have_more) + ) { + + asn_dec_rval_t rval; + ssize_t consumed_myself = 0; + + (void)opt_codec_ctx; + + /* + * Phases of XER/XML processing: + * Phase 0: Check that the opening tag matches our expectations. + * Phase 1: Processing body and reacting on closing tag. + */ + if(ctx->phase > 1) RETURN(RC_FAIL); + for(;;) { + pxer_chunk_type_e ch_type; /* XER chunk type */ + ssize_t ch_size; /* Chunk size */ + xer_check_tag_e tcv; /* Tag check value */ + + /* + * Get the next part of the XML stream. + */ + ch_size = xer_next_token(&ctx->context, buf_ptr, size, + &ch_type); + if(ch_size == -1) { + RETURN(RC_FAIL); + } else { + switch(ch_type) { + case PXER_WMORE: + RETURN(RC_WMORE); + case PXER_COMMENT: /* Got XML comment */ + ADVANCE(ch_size); /* Skip silently */ + continue; + case PXER_TEXT: + if(ctx->phase == 0) { + /* + * We have to ignore whitespace here, + * but in order to be forward compatible + * with EXTENDED-XER (EMBED-VALUES, #25) + * any text is just ignored here. + */ + } else { + XER_GOT_BODY(buf_ptr, ch_size, size); + } + ADVANCE(ch_size); + continue; + case PXER_TAG: + break; /* Check the rest down there */ + } + } + + assert(ch_type == PXER_TAG && size); + + tcv = xer_check_tag(buf_ptr, ch_size, xml_tag); + /* + * Phase 0: + * Expecting the opening tag + * for the type being processed. + * Phase 1: + * Waiting for the closing XML tag. + */ + switch(tcv) { + case XCT_BOTH: + if(ctx->phase) break; + /* Finished decoding of an empty element */ + XER_GOT_EMPTY(); + ADVANCE(ch_size); + ctx->phase = 2; /* Phase out */ + RETURN(RC_OK); + case XCT_OPENING: + if(ctx->phase) break; + ADVANCE(ch_size); + ctx->phase = 1; /* Processing body phase */ + continue; + case XCT_CLOSING: + if(!ctx->phase) break; + ADVANCE(ch_size); + ctx->phase = 2; /* Phase out */ + RETURN(RC_OK); + case XCT_UNKNOWN_BO: + /* + * Certain tags in the body may be expected. + */ + if(opt_unexpected_tag_decoder + && opt_unexpected_tag_decoder(struct_key, + buf_ptr, ch_size) >= 0) { + /* Tag's processed fine */ + ADVANCE(ch_size); + if(!ctx->phase) { + /* We are not expecting + * the closing tag anymore. */ + ctx->phase = 2; /* Phase out */ + RETURN(RC_OK); + } + continue; + } + /* Fall through */ + default: + break; /* Unexpected tag */ + } + + ASN_DEBUG("Unexpected XML tag (expected \"%s\")", xml_tag); + break; /* Dark and mysterious things have just happened */ + } + + RETURN(RC_FAIL); +} + + +size_t +xer_whitespace_span(const void *chunk_buf, size_t chunk_size) { + const char *p = (const char *)chunk_buf; + const char *pend = p + chunk_size; + + for(; p < pend; p++) { + switch(*p) { + /* X.693, #8.1.4 + * HORISONTAL TAB (9) + * LINE FEED (10) + * CARRIAGE RETURN (13) + * SPACE (32) + */ + case 0x09: case 0x0a: case 0x0d: case 0x20: + continue; + default: + break; + } + break; + } + return (p - (const char *)chunk_buf); +} + +/* + * This is a vastly simplified, non-validating XML tree skipper. + */ +int +xer_skip_unknown(xer_check_tag_e tcv, ber_tlv_len_t *depth) { + assert(*depth > 0); + switch(tcv) { + case XCT_BOTH: + case XCT_UNKNOWN_BO: + /* These negate each other. */ + return 0; + case XCT_OPENING: + case XCT_UNKNOWN_OP: + ++(*depth); + return 0; + case XCT_CLOSING: + case XCT_UNKNOWN_CL: + if(--(*depth) == 0) + return (tcv == XCT_CLOSING) ? 2 : 1; + return 0; + default: + return -1; + } +} diff --git a/src/du_app/F1AP/asn/xer_decoder.h b/src/du_app/F1AP/asn/xer_decoder.h new file mode 100755 index 000000000..b951c41d1 --- /dev/null +++ b/src/du_app/F1AP/asn/xer_decoder.h @@ -0,0 +1,106 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _XER_DECODER_H_ +#define _XER_DECODER_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * The XER decoder of any ASN.1 type. May be invoked by the application. + * Decodes CANONICAL-XER and BASIC-XER. + */ +asn_dec_rval_t xer_decode( + const struct asn_codec_ctx_s *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size /* Size of data buffer */ +); + +/* + * Type of the type-specific XER decoder function. + */ +typedef asn_dec_rval_t(xer_type_decoder_f)( + const asn_codec_ctx_t *opt_codec_ctx, + const struct asn_TYPE_descriptor_s *type_descriptor, void **struct_ptr, + const char *opt_mname, /* Member name */ + const void *buf_ptr, size_t size); + +/******************************* + * INTERNALLY USEFUL FUNCTIONS * + *******************************/ + +/* + * Generalized function for decoding the primitive values. + * Used by more specialized functions, such as OCTET_STRING_decode_xer_utf8 + * and others. This function should not be used by applications, as its API + * is subject to changes. + */ +asn_dec_rval_t xer_decode_general( + const asn_codec_ctx_t *opt_codec_ctx, + asn_struct_ctx_t *ctx, /* Type decoder context */ + void *struct_key, /* Treated as opaque pointer */ + const char *xml_tag, /* Expected XML tag name */ + const void *buf_ptr, size_t size, + int (*opt_unexpected_tag_decoder)(void *struct_key, const void *chunk_buf, + size_t chunk_size), + ssize_t (*body_receiver)(void *struct_key, const void *chunk_buf, + size_t chunk_size, int have_more)); + + +/* + * Fetch the next XER (XML) token from the stream. + * The function returns the number of bytes occupied by the chunk type, + * returned in the _ch_type. The _ch_type is only set (and valid) when + * the return value is >= 0. + */ + typedef enum pxer_chunk_type { + PXER_WMORE, /* Chunk type is not clear, more data expected. */ + PXER_TAG, /* Complete XER tag */ + PXER_TEXT, /* Plain text between XER tags */ + PXER_COMMENT /* A comment, may be part of */ + } pxer_chunk_type_e; +ssize_t xer_next_token(int *stateContext, + const void *buffer, size_t size, pxer_chunk_type_e *_ch_type); + +/* + * This function checks the buffer against the tag name is expected to occur. + */ + typedef enum xer_check_tag { + XCT_BROKEN = 0, /* The tag is broken */ + XCT_OPENING = 1, /* This is the tag */ + XCT_CLOSING = 2, /* This is the tag */ + XCT_BOTH = 3, /* This is the tag */ + XCT__UNK__MASK = 4, /* Mask of everything unexpected */ + XCT_UNKNOWN_OP = 5, /* Unexpected tag */ + XCT_UNKNOWN_CL = 6, /* Unexpected tag */ + XCT_UNKNOWN_BO = 7 /* Unexpected tag */ + } xer_check_tag_e; +xer_check_tag_e xer_check_tag(const void *buf_ptr, int size, + const char *need_tag); + +/* + * Get the number of bytes consisting entirely of XER whitespace characters. + * RETURN VALUES: + * >=0: Number of whitespace characters in the string. + */ +size_t xer_whitespace_span(const void *chunk_buf, size_t chunk_size); + +/* + * Skip the series of anticipated extensions. + */ +int xer_skip_unknown(xer_check_tag_e tcv, ber_tlv_len_t *depth); + +#ifdef __cplusplus +} +#endif + +#endif /* _XER_DECODER_H_ */ diff --git a/src/du_app/F1AP/asn/xer_encoder.c b/src/du_app/F1AP/asn/xer_encoder.c new file mode 100755 index 000000000..4177ede5c --- /dev/null +++ b/src/du_app/F1AP/asn/xer_encoder.c @@ -0,0 +1,237 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * The XER encoder of any type. May be invoked by the application. + */ +asn_enc_rval_t +xer_encode(const asn_TYPE_descriptor_t *td, const void *sptr, + enum xer_encoder_flags_e xer_flags, asn_app_consume_bytes_f *cb, + void *app_key) { + asn_enc_rval_t er = {0, 0, 0}; + asn_enc_rval_t tmper; + const char *mname; + size_t mlen; + int xcan = (xer_flags & XER_F_CANONICAL) ? 1 : 2; + + if(!td || !sptr) goto cb_failed; + + mname = td->xml_tag; + mlen = strlen(mname); + + ASN__CALLBACK3("<", 1, mname, mlen, ">", 1); + + tmper = td->op->xer_encoder(td, sptr, 1, xer_flags, cb, app_key); + if(tmper.encoded == -1) return tmper; + er.encoded += tmper.encoded; + + ASN__CALLBACK3("\n", xcan); + + ASN__ENCODED_OK(er); +cb_failed: + ASN__ENCODE_FAILED; +} + +/* + * This is a helper function for xer_fprint, which directs all incoming data + * into the provided file descriptor. + */ +static int +xer__print2fp(const void *buffer, size_t size, void *app_key) { + FILE *stream = (FILE *)app_key; + + if(fwrite(buffer, 1, size, stream) != size) + return -1; + + return 0; +} + +int +xer_fprint(FILE *stream, const asn_TYPE_descriptor_t *td, const void *sptr) { + asn_enc_rval_t er = {0,0,0}; + + if(!stream) stream = stdout; + if(!td || !sptr) + return -1; + + er = xer_encode(td, sptr, XER_F_BASIC, xer__print2fp, stream); + if(er.encoded == -1) + return -1; + + return fflush(stream); +} + +struct xer_buffer { + char *buffer; + size_t buffer_size; + size_t allocated_size; +}; + +static int +xer__buffer_append(const void *buffer, size_t size, void *app_key) { + struct xer_buffer *xb = app_key; + + while(xb->buffer_size + size + 1 > xb->allocated_size) { + size_t new_size = 2 * (xb->allocated_size ? xb->allocated_size : 64); + char *new_buf = MALLOC(new_size); + if(!new_buf) return -1; + if (xb->buffer) { + memcpy(new_buf, xb->buffer, xb->buffer_size); + } + FREEMEM(xb->buffer); + xb->buffer = new_buf; + xb->allocated_size = new_size; + } + + memcpy(xb->buffer + xb->buffer_size, buffer, size); + xb->buffer_size += size; + xb->buffer[xb->buffer_size] = '\0'; + return 0; +} + +enum xer_equivalence_e +xer_equivalent(const struct asn_TYPE_descriptor_s *td, const void *struct1, + const void *struct2, FILE *opt_debug_stream) { + struct xer_buffer xb1 = {0, 0, 0}; + struct xer_buffer xb2 = {0, 0, 0}; + asn_enc_rval_t e1, e2; + asn_dec_rval_t rval; + void *sptr = NULL; + + if(!td || !struct1 || !struct2) { + if(opt_debug_stream) { + if(!td) fprintf(opt_debug_stream, "Type descriptor missing\n"); + if(!struct1) fprintf(opt_debug_stream, "Structure 1 missing\n"); + if(!struct2) fprintf(opt_debug_stream, "Structure 2 missing\n"); + } + return XEQ_FAILURE; + } + + e1 = xer_encode(td, struct1, XER_F_BASIC, xer__buffer_append, &xb1); + if(e1.encoded == -1) { + if(opt_debug_stream) { + fprintf(stderr, "XER Encoding of %s failed\n", td->name); + } + FREEMEM(xb1.buffer); + return XEQ_ENCODE1_FAILED; + } + + e2 = xer_encode(td, struct2, XER_F_BASIC, xer__buffer_append, &xb2); + if(e2.encoded == -1) { + if(opt_debug_stream) { + fprintf(stderr, "XER Encoding of %s failed\n", td->name); + } + FREEMEM(xb1.buffer); + FREEMEM(xb2.buffer); + return XEQ_ENCODE1_FAILED; + } + + if(xb1.buffer_size != xb2.buffer_size + || memcmp(xb1.buffer, xb2.buffer, xb1.buffer_size) != 0) { + if(opt_debug_stream) { + fprintf(opt_debug_stream, + "Structures XER-encoded into different byte streams:\n=== " + "Structure 1 ===\n%s\n=== Structure 2 ===\n%s\n", + xb1.buffer, xb2.buffer); + } + FREEMEM(xb1.buffer); + FREEMEM(xb2.buffer); + return XEQ_DIFFERENT; + } else { + if(opt_debug_stream) { + fprintf(opt_debug_stream, + "Both structures encoded into the same XER byte stream " + "of size %" ASN_PRI_SIZE ":\n%s", + xb1.buffer_size, xb1.buffer); + } + } + + rval = xer_decode(NULL, td, (void **)&sptr, xb1.buffer, + xb1.buffer_size); + switch(rval.code) { + case RC_OK: + break; + case RC_WMORE: + if(opt_debug_stream) { + fprintf(opt_debug_stream, + "Structure %s XER decode unexpectedly requires " + "more data:\n%s\n", + td->name, xb1.buffer); + } + /* Fall through */ + case RC_FAIL: + default: + if(opt_debug_stream) { + fprintf(opt_debug_stream, + "Structure %s XER decoding resulted in failure.\n", + td->name); + } + ASN_STRUCT_FREE(*td, sptr); + FREEMEM(xb1.buffer); + FREEMEM(xb2.buffer); + return XEQ_DECODE_FAILED; + } + + if(rval.consumed != xb1.buffer_size + && ((rval.consumed > xb1.buffer_size) + || xer_whitespace_span(xb1.buffer + rval.consumed, + xb1.buffer_size - rval.consumed) + != (xb1.buffer_size - rval.consumed))) { + if(opt_debug_stream) { + fprintf(opt_debug_stream, + "Round-trip decode of %s required less bytes (%" ASN_PRI_SIZE ") than " + "encoded (%" ASN_PRI_SIZE ")\n", + td->name, rval.consumed, xb1.buffer_size); + } + ASN_STRUCT_FREE(*td, sptr); + FREEMEM(xb1.buffer); + FREEMEM(xb2.buffer); + return XEQ_ROUND_TRIP_FAILED; + } + + /* + * Reuse xb2 to encode newly decoded structure. + */ + FREEMEM(xb2.buffer); + memset(&xb2, 0, sizeof(xb2)); + + e2 = xer_encode(td, sptr, XER_F_BASIC, xer__buffer_append, &xb2); + if(e2.encoded == -1) { + if(opt_debug_stream) { + fprintf(stderr, "XER Encoding of round-trip decode of %s failed\n", + td->name); + } + ASN_STRUCT_FREE(*td, sptr); + FREEMEM(xb1.buffer); + FREEMEM(xb2.buffer); + return XEQ_ROUND_TRIP_FAILED; + } + + ASN_STRUCT_FREE(*td, sptr); + sptr = 0; + + if(xb1.buffer_size != xb2.buffer_size + || memcmp(xb1.buffer, xb2.buffer, xb1.buffer_size) != 0) { + if(opt_debug_stream) { + fprintf(opt_debug_stream, + "XER Encoding of round-trip decode of %s resulted in " + "different byte stream:\n" + "=== Original ===\n%s\n" + "=== Round-tripped ===\n%s\n", + xb1.buffer, xb2.buffer, td->name); + } + FREEMEM(xb1.buffer); + FREEMEM(xb2.buffer); + return XEQ_ROUND_TRIP_FAILED; + } + + FREEMEM(xb1.buffer); + FREEMEM(xb2.buffer); + return XEQ_SUCCESS; +} + diff --git a/src/du_app/F1AP/asn/xer_encoder.h b/src/du_app/F1AP/asn/xer_encoder.h new file mode 100755 index 000000000..9d75922c5 --- /dev/null +++ b/src/du_app/F1AP/asn/xer_encoder.h @@ -0,0 +1,83 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _XER_ENCODER_H_ +#define _XER_ENCODER_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* Flags used by the xer_encode() and (*xer_type_encoder_f), defined below */ +enum xer_encoder_flags_e { + /* Mode of encoding */ + XER_F_BASIC = 0x01, /* BASIC-XER (pretty-printing) */ + XER_F_CANONICAL = 0x02 /* Canonical XER (strict rules) */ +}; + +/* + * The XER encoder of any type. May be invoked by the application. + * Produces CANONICAL-XER and BASIC-XER depending on the (xer_flags). + */ +asn_enc_rval_t xer_encode(const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Structure to be encoded */ + enum xer_encoder_flags_e xer_flags, + asn_app_consume_bytes_f *consume_bytes_cb, + void *app_key /* Arbitrary callback argument */ +); + +/* + * The variant of the above function which dumps the BASIC-XER (XER_F_BASIC) + * output into the chosen file pointer. + * RETURN VALUES: + * 0: The structure is printed. + * -1: Problem printing the structure. + * WARNING: No sensible errno value is returned. + */ +int xer_fprint(FILE *stream, const struct asn_TYPE_descriptor_s *td, + const void *struct_ptr); + +/* + * A helper function that uses XER encoding/decoding to verify that: + * - Both structures encode into the same BASIC XER. + * - Both resulting XER byte streams can be decoded back. + * - Both decoded structures encode into the same BASIC XER (round-trip). + * All of this verifies equivalence between structures and a round-trip. + * ARGUMENTS: + * (opt_debug_stream) - If specified, prints ongoing details. + */ +enum xer_equivalence_e { + XEQ_SUCCESS, /* The only completely positive return value */ + XEQ_FAILURE, /* General failure */ + XEQ_ENCODE1_FAILED, /* First sructure XER encoding failed */ + XEQ_ENCODE2_FAILED, /* Second structure XER encoding failed */ + XEQ_DIFFERENT, /* Structures encoded into different XER */ + XEQ_DECODE_FAILED, /* Decode of the XER data failed */ + XEQ_ROUND_TRIP_FAILED /* Bad round-trip */ +}; +enum xer_equivalence_e xer_equivalent( + const struct asn_TYPE_descriptor_s *type_descriptor, const void *struct1, + const void *struct2, FILE *opt_debug_stream); + +/* + * Type of the generic XER encoder. + */ +typedef asn_enc_rval_t(xer_type_encoder_f)( + const struct asn_TYPE_descriptor_s *type_descriptor, + const void *struct_ptr, /* Structure to be encoded */ + int ilevel, /* Level of indentation */ + enum xer_encoder_flags_e xer_flags, + asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ + void *app_key /* Arbitrary callback argument */ +); + +#ifdef __cplusplus +} +#endif + +#endif /* _XER_ENCODER_H_ */ diff --git a/src/du_app/F1AP/asn/xer_support.c b/src/du_app/F1AP/asn/xer_support.c new file mode 100755 index 000000000..36b4bfbfc --- /dev/null +++ b/src/du_app/F1AP/asn/xer_support.c @@ -0,0 +1,227 @@ +/* + * Copyright (c) 2003, 2004 X/IO Labs, xiolabs.com. + * Copyright (c) 2003, 2004, 2005 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* Parser states */ +typedef enum { + ST_TEXT, + ST_TAG_START, + ST_TAG_BODY, + ST_TAG_QUOTE_WAIT, + ST_TAG_QUOTED_STRING, + ST_TAG_UNQUOTED_STRING, + ST_COMMENT_WAIT_DASH1, /* ""[0] */ + ST_COMMENT_CLO_RT /* "-->"[1] */ +} pstate_e; + +static const int +_charclass[256] = { + 0,0,0,0,0,0,0,0, 0,1,1,0,1,1,0,0, + 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, + 1,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, + 2,2,2,2,2,2,2,2, 2,2,0,0,0,0,0,0, /* 01234567 89 */ + 0,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3, /* ABCDEFG HIJKLMNO */ + 3,3,3,3,3,3,3,3, 3,3,3,0,0,0,0,0, /* PQRSTUVW XYZ */ + 0,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3, /* abcdefg hijklmno */ + 3,3,3,3,3,3,3,3, 3,3,3,0,0,0,0,0 /* pqrstuvw xyz */ +}; +#define WHITESPACE(c) (_charclass[(unsigned char)(c)] == 1) +#define ALNUM(c) (_charclass[(unsigned char)(c)] >= 2) +#define ALPHA(c) (_charclass[(unsigned char)(c)] == 3) + +/* Aliases for characters, ASCII/UTF-8 */ +#define EXCLAM 0x21 /* '!' */ +#define CQUOTE 0x22 /* '"' */ +#define CDASH 0x2d /* '-' */ +#define CSLASH 0x2f /* '/' */ +#define LANGLE 0x3c /* '<' */ +#define CEQUAL 0x3d /* '=' */ +#define RANGLE 0x3e /* '>' */ +#define CQUEST 0x3f /* '?' */ + +/* Invoke token callback */ +#define TOKEN_CB_CALL(type, _ns, _current_too, _final) do { \ + int _ret; \ + pstate_e ns = _ns; \ + ssize_t _sz = (p - chunk_start) + _current_too; \ + if (!_sz) { \ + /* Shortcut */ \ + state = _ns; \ + break; \ + } \ + _ret = cb(type, chunk_start, _sz, key); \ + if(_ret < _sz) { \ + if(_current_too && _ret == -1) \ + state = ns; \ + goto finish; \ + } \ + chunk_start = p + _current_too; \ + state = ns; \ + } while(0) + +#define TOKEN_CB(_type, _ns, _current_too) \ + TOKEN_CB_CALL(_type, _ns, _current_too, 0) + +#define PXML_TAG_FINAL_CHUNK_TYPE PXML_TAG_END +#define PXML_COMMENT_FINAL_CHUNK_TYPE PXML_COMMENT_END + +#define TOKEN_CB_FINAL(_type, _ns, _current_too) \ + TOKEN_CB_CALL( _type ## _FINAL_CHUNK_TYPE , _ns, _current_too, 1) + +/* + * Parser itself + */ +ssize_t pxml_parse(int *stateContext, const void *xmlbuf, size_t size, pxml_callback_f *cb, void *key) { + pstate_e state = (pstate_e)*stateContext; + const char *chunk_start = (const char *)xmlbuf; + const char *p = chunk_start; + const char *end = p + size; + + for(; p < end; p++) { + int C = *(const unsigned char *)p; + switch(state) { + case ST_TEXT: + /* + * Initial state: we're in the middle of some text, + * or just have started. + */ + if (C == LANGLE) + /* We're now in the tag, probably */ + TOKEN_CB(PXML_TEXT, ST_TAG_START, 0); + break; + case ST_TAG_START: + if (ALPHA(C) || (C == CSLASH)) + state = ST_TAG_BODY; + else if (C == EXCLAM) + state = ST_COMMENT_WAIT_DASH1; + else + /* + * Not characters and not whitespace. + * Must be something like "3 < 4". + */ + TOKEN_CB(PXML_TEXT, ST_TEXT, 1);/* Flush as data */ + break; + case ST_TAG_BODY: + switch(C) { + case RANGLE: + /* End of the tag */ + TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); + break; + case LANGLE: + /* + * The previous tag wasn't completed, but still + * recognized as valid. (Mozilla-compatible) + */ + TOKEN_CB_FINAL(PXML_TAG, ST_TAG_START, 0); + break; + case CEQUAL: + state = ST_TAG_QUOTE_WAIT; + break; + } + break; + case ST_TAG_QUOTE_WAIT: + /* + * State after the equal sign ("=") in the tag. + */ + switch(C) { + case CQUOTE: + state = ST_TAG_QUOTED_STRING; + break; + case RANGLE: + /* End of the tag */ + TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); + break; + default: + if(!WHITESPACE(C)) + /* Unquoted string value */ + state = ST_TAG_UNQUOTED_STRING; + } + break; + case ST_TAG_QUOTED_STRING: + /* + * Tag attribute's string value in quotes. + */ + if(C == CQUOTE) { + /* Return back to the tag state */ + state = ST_TAG_BODY; + } + break; + case ST_TAG_UNQUOTED_STRING: + if(C == RANGLE) { + /* End of the tag */ + TOKEN_CB_FINAL(PXML_TAG, ST_TEXT, 1); + } else if(WHITESPACE(C)) { + /* Return back to the tag state */ + state = ST_TAG_BODY; + } + break; + case ST_COMMENT_WAIT_DASH1: + if(C == CDASH) { + state = ST_COMMENT_WAIT_DASH2; + } else { + /* Some ordinary tag. */ + state = ST_TAG_BODY; + } + break; + case ST_COMMENT_WAIT_DASH2: + if(C == CDASH) { + /* Seen "<--" */ + state = ST_COMMENT; + } else { + /* Some ordinary tag */ + state = ST_TAG_BODY; + } + break; + case ST_COMMENT: + if(C == CDASH) { + state = ST_COMMENT_CLO_DASH2; + } + break; + case ST_COMMENT_CLO_DASH2: + if(C == CDASH) { + state = ST_COMMENT_CLO_RT; + } else { + /* This is not an end of a comment */ + state = ST_COMMENT; + } + break; + case ST_COMMENT_CLO_RT: + if(C == RANGLE) { + TOKEN_CB_FINAL(PXML_COMMENT, ST_TEXT, 1); + } else if(C == CDASH) { + /* Maintain current state, still waiting for '>' */ + } else { + state = ST_COMMENT; + } + break; + } /* switch(*ptr) */ + } /* for() */ + + /* + * Flush the partially processed chunk, state permitting. + */ + if(p - chunk_start) { + switch (state) { + case ST_COMMENT: + TOKEN_CB(PXML_COMMENT, state, 0); + break; + case ST_TEXT: + TOKEN_CB(PXML_TEXT, state, 0); + break; + default: break; /* a no-op */ + } + } + +finish: + *stateContext = (int)state; + return chunk_start - (const char *)xmlbuf; +} + diff --git a/src/du_app/F1AP/asn/xer_support.h b/src/du_app/F1AP/asn/xer_support.h new file mode 100755 index 000000000..c3a36e720 --- /dev/null +++ b/src/du_app/F1AP/asn/xer_support.h @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2003, 2004 X/IO Labs, xiolabs.com. + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _XER_SUPPORT_H_ +#define _XER_SUPPORT_H_ + +#include /* Platform-specific types */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Types of data transferred to the application. + */ +typedef enum { + PXML_TEXT, /* Plain text between XML tags. */ + PXML_TAG, /* A tag, starting with '<'. */ + PXML_COMMENT, /* An XML comment, including "". */ + /* + * The following chunk types are reported if the chunk + * terminates the specified XML element. + */ + PXML_TAG_END, /* Tag ended */ + PXML_COMMENT_END /* Comment ended */ +} pxml_chunk_type_e; + +/* + * Callback function that is called by the parser when parsed data is + * available. The _opaque is the pointer to a field containing opaque user + * data specified in pxml_create() call. The chunk type is _type and the text + * data is the piece of buffer identified by _bufid (as supplied to + * pxml_feed() call) starting at offset _offset and of _size bytes size. + * The chunk is NOT '\0'-terminated. + */ +typedef int (pxml_callback_f)(pxml_chunk_type_e _type, + const void *_chunk_data, size_t _chunk_size, void *_key); + +/* + * Parse the given buffer as it were a chunk of XML data. + * Invoke the specified callback each time the meaninful data is found. + * This function returns number of bytes consumed from the bufer. + * It will always be lesser than or equal to the specified _size. + * The next invocation of this function must account the difference. + */ +ssize_t pxml_parse(int *_stateContext, const void *_buf, size_t _size, + pxml_callback_f *cb, void *_key); + +#ifdef __cplusplus +} +#endif + +#endif /* _XER_SUPPORT_H_ */ diff --git a/src/du_app/F1AP/f1ap_msg_hdl.c b/src/du_app/F1AP/f1ap_msg_hdl.c index 8cf5b05de..d123ef668 100644 --- a/src/du_app/F1AP/f1ap_msg_hdl.c +++ b/src/du_app/F1AP/f1ap_msg_hdl.c @@ -18,50 +18,845 @@ /* This file contains F1AP message handler functions */ -#include "du_mgr.h" -/*************************************************************************** +#include "du_mgr_main.h" +#include "cu_stub_sctp.h" +#include "f1ap_msg_hdl.h" + +char encBuf[ENC_BUF_MAX_LEN]; + +/******************************************************************* + * + * @brief Writes the encoded chunks into a buffer * + * @details * + * Function : write_out * + * Functionality:Fills the encoded buffer + * + * @params[in] void *buffer,initial encoded data + * @params[in] size_t size,size of buffer + * @params[in] void *app_key,final buffer + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +static int PrepFinalEncBuf(const void *buffer, size_t size, void *encodedBuf) +{ + memcpy(encodedBuf + encBufSize, buffer, size); + encBufSize += size; + return 0; +} + +/******************************************************************* * + * @brief Builds the F1SetupRequest * + * @details * + * Function : BuildF1SetupReq * + * Functionality:Fills the F1SetupRequest * + * @return ROK - success + * RFAILED - failure * - * ************************************************************************/ + ******************************************************************/ +S16 BuildF1SetupReq() +{ + S16 ret; + U8 idx; + U8 elementCnt; + F1AP_PDU_t *f1apMsg = NULL; + F1SetupRequest_t *f1SetupReq; + asn_enc_rval_t encRetVal; /* Encoder return value */ + + printf("\nBuilding F1 Setup Request\n"); + + ret = SGetSBuf(DU_APP_MEM_REGION, DU_POOL, (Data **)&f1apMsg, (Size)sizeof(F1AP_PDU_t)); + if(ret != ROK) + { + printf("Memory allocation for F1AP-PDU failed"); + RETVALUE(ret); + } + + f1apMsg->present = F1AP_PDU_PR_initiatingMessage; + ret = SGetSBuf(DU_APP_MEM_REGION, DU_POOL, (Data **)&(f1apMsg->choice.initiatingMessage),\ + (Size)sizeof(InitiatingMessage_t)); + if(ret != ROK) + { + printf("Memory allocation for F1AP-PDU failed"); + SPutSBuf(DU_APP_MEM_REGION,DU_POOL,(Data *)&f1apMsg,(Size)sizeof(F1AP_PDU_t)); + RETVALUE(ret); + } + + f1apMsg->choice.initiatingMessage->procedureCode = ProcedureCode_id_F1Setup; + f1apMsg->choice.initiatingMessage->criticality = Criticality_reject; + f1apMsg->choice.initiatingMessage->value.present = InitiatingMessage__value_PR_F1SetupRequest; + + f1SetupReq = &f1apMsg->choice.initiatingMessage->value.choice.F1SetupRequest; + + elementCnt = 3; + f1SetupReq->protocolIEs.list.count = elementCnt; + f1SetupReq->protocolIEs.list.size = elementCnt * sizeof(F1SetupRequestIEs_t *); + + /* Initialize the F1Setup members */ + ret = SGetSBuf(DU_APP_MEM_REGION, DU_POOL,(Data **)&(f1SetupReq->protocolIEs.list.array),\ + (Size)elementCnt * sizeof(F1SetupRequestIEs_t *)); + if(ret != ROK) + { + printf("Memory allocation for F1RequestIEs failed"); + SPutSBuf(DU_APP_MEM_REGION, DU_POOL, (Data *)&(f1apMsg->choice.initiatingMessage),\ + (Size)sizeof(InitiatingMessage_t)); + SPutSBuf(DU_APP_MEM_REGION, DU_POOL, (Data *)&f1apMsg,(Size)sizeof(F1AP_PDU_t)); + RETVALUE(ret); + } + + for(idx=0; idxprotocolIEs.list.array[idx]),\ + (Size)sizeof(F1SetupRequestIEs_t)); + if(ret != ROK) + { + SPutSBuf(DU_APP_MEM_REGION, DU_POOL, (Data *)&(f1SetupReq->protocolIEs.list.array),\ + (Size)elementCnt * sizeof(F1SetupRequestIEs_t *)); + SPutSBuf(DU_APP_MEM_REGION, DU_POOL, (Data *)&(f1apMsg->choice.initiatingMessage),\ + (Size)sizeof(InitiatingMessage_t)); + SPutSBuf(DU_APP_MEM_REGION, DU_POOL, (Data *)&f1apMsg,(Size)sizeof(F1AP_PDU_t)); + RETVALUE(ret); + } + } + + /*TransactionID*/ + f1SetupReq->protocolIEs.list.array[0]->id = ProtocolIE_ID_id_TransactionID ; + f1SetupReq->protocolIEs.list.array[0]->criticality = Criticality_reject; + f1SetupReq->protocolIEs.list.array[0]->value.present = F1SetupRequestIEs__value_PR_TransactionID; + f1SetupReq->protocolIEs.list.array[0]->value.choice.TransactionID = TRANS_ID; + + /*DU ID*/ + f1SetupReq->protocolIEs.list.array[1]->id = ProtocolIE_ID_id_gNB_DU_ID; + f1SetupReq->protocolIEs.list.array[1]->criticality = Criticality_reject; + f1SetupReq->protocolIEs.list.array[1]->value.present = \ + F1SetupRequestIEs__value_PR_GNB_DU_ID; + f1SetupReq->protocolIEs.list.array[1]->value.choice.GNB_DU_ID.size = sizeof(U8); + ret = SGetSBuf(DU_APP_MEM_REGION, DU_POOL,\ + (Data **)&(f1SetupReq->protocolIEs.list.array[1]->value.choice.GNB_DU_ID.buf),\ + (Size)sizeof(uint8_t)); + + if(ret != ROK) + { + SPutSBuf(DU_APP_MEM_REGION, DU_POOL, (Data *)&(f1SetupReq->protocolIEs.list.array),\ + (Size)elementCnt * sizeof(F1SetupRequestIEs_t *)); + SPutSBuf(DU_APP_MEM_REGION, DU_POOL, (Data *)&(f1apMsg->choice.initiatingMessage),\ + (Size)sizeof(InitiatingMessage_t)); + SPutSBuf(DU_APP_MEM_REGION, DU_POOL, (Data *)&f1apMsg,(Size)sizeof(F1AP_PDU_t)); + RETVALUE(ret); + } + f1SetupReq->protocolIEs.list.array[1]->value.choice.GNB_DU_ID.buf[0] = duCfgParam.duId; + + /*DU Name*/ + f1SetupReq->protocolIEs.list.array[2]->id = ProtocolIE_ID_id_gNB_DU_Name ; + f1SetupReq->protocolIEs.list.array[2]->criticality = Criticality_ignore; + f1SetupReq->protocolIEs.list.array[2]->value.present = \ + F1SetupRequestIEs__value_PR_GNB_DU_Name; + f1SetupReq->protocolIEs.list.array[2]->value.choice.GNB_DU_Name.size = \ + sizeof(duCfgParam.duName); + ret = SGetSBuf(DU_APP_MEM_REGION, DU_POOL,\ + (Data **)&(f1SetupReq->protocolIEs.list.array[2]->value.choice.GNB_DU_Name.buf),\ + (Size)sizeof(duCfgParam.duName)); + if(ret != ROK) + { + SPutSBuf(DU_APP_MEM_REGION, DU_POOL,(Data *)&(f1SetupReq->protocolIEs.list.array[1]->value.choice.GNB_DU_ID.buf),\ + (Size)sizeof(uint8_t)); + SPutSBuf(DU_APP_MEM_REGION, DU_POOL,(Data *)&(f1SetupReq->protocolIEs.list.array),\ + (Size)elementCnt * sizeof(F1SetupRequestIEs_t *)); + SPutSBuf(DU_APP_MEM_REGION, DU_POOL,(Data *)&(f1apMsg->choice.initiatingMessage),\ + (Size)sizeof(InitiatingMessage_t)); + SPutSBuf(DU_APP_MEM_REGION, DU_POOL,(Data *)&f1apMsg,(Size)sizeof(F1AP_PDU_t)); + RETVALUE(ret); + } + + strcpy((char*)f1SetupReq->protocolIEs.list.array[2]->value.choice.GNB_DU_Name.buf, + (char*)&duCfgParam.duName); + + xer_fprint(stdout, &asn_DEF_F1AP_PDU, f1apMsg); + + /* Encode the F1SetupRequest type as UPER */ + cmMemset((U8 *)encBuf, 0, ENC_BUF_MAX_LEN); + encBufSize = 0; + encRetVal = aper_encode(&asn_DEF_F1AP_PDU, 0, f1apMsg, PrepFinalEncBuf, encBuf); -S16 BuildAndSendF1SetupReq() + if(encRetVal.encoded == ENCODE_FAIL) + { + printf( "\nCould not encode F1SetupRequest structure (at %s)\n",\ + encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); + RETVALUE(RFAILED); + } + else + { + printf("\nCreated APER encoded buffer for F1SetupRequest\n"); + for(int i=0; i< encBufSize; i++) + { + printf("%x",encBuf[i]); + } + } + RETVALUE(ROK); +}/* End of BuildF1SetupReq */ + +/******************************************************************* + * + * @brief Builds and sends the F1SetupResponse + * + * @details + * + * Function : ExtractSendF1SetupRsp + * + * Functionality: Constructs the F1SetupResponse message and sends + * it back to the DU through SCTP. + * + * @params[in] void **buf,Buffer to which encoded pattern is written into + * @params[in] int *size,size of buffer + * + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +S16 BuildF1SetupRsp() { - S16 ret = ROK; + S16 ret; + U8 idx; + U8 elementCnt; + F1AP_PDU_t *f1apMsg = NULL; + F1SetupResponse_t *f1SetupRsp; + GNB_CU_Name_t *cuName; + RRC_Version_t *rrc_Ver; + asn_enc_rval_t encRetVal; + + printf("\nBuilding F1 Setup Response\n"); + + /* Allocate the memory for F1SetupRequest_t */ + ret = SGetSBuf(DU_APP_MEM_REGION, DU_POOL, (Data **)&f1apMsg, (Size)sizeof(F1AP_PDU_t)); + if(ret != ROK) + { + printf("Memory allocation for F1AP-PDU failed"); + RETVALUE(ret); + } + f1apMsg->present = F1AP_PDU_PR_successfulOutcome; + + ret = SGetSBuf(DU_APP_MEM_REGION,DU_POOL,(Data **)&(f1apMsg->choice.successfulOutcome),\ + (Size)sizeof(SuccessfulOutcome_t)); + if(ret != ROK) + { + printf("Memory allocation for F1AP-PDU failed"); + SPutSBuf(DU_APP_MEM_REGION,DU_POOL,(Data *)&f1apMsg,(Size)sizeof(F1AP_PDU_t)); + RETVALUE(ret); + } + + f1apMsg->choice.successfulOutcome->procedureCode = ProcedureCode_id_F1Setup; + f1apMsg->choice.successfulOutcome->criticality = Criticality_reject; + f1apMsg->choice.successfulOutcome->value.present = \ + SuccessfulOutcome__value_PR_F1SetupResponse; + f1SetupRsp = &f1apMsg->choice.successfulOutcome->value.choice.F1SetupResponse; -//in case of any failure, assign RFAILED to ret + elementCnt = 3; + f1SetupRsp->protocolIEs.list.count = elementCnt; + f1SetupRsp->protocolIEs.list.size = elementCnt*sizeof(F1SetupResponseIEs_t *); + ret = SGetSBuf(DU_APP_MEM_REGION,DU_POOL,(Data **)&(f1SetupRsp->protocolIEs.list.array),\ + (Size)elementCnt * sizeof(F1SetupResponseIEs_t *)); + if(ret != ROK) + { + printf("Memory allocation for F1ResponseIEs failed"); + SPutSBuf(DU_APP_MEM_REGION,DU_POOL,(Data *)&(f1apMsg->choice.successfulOutcome),\ + (Size)sizeof(SuccessfulOutcome_t)); + SPutSBuf(DU_APP_MEM_REGION,DU_POOL,(Data *)&f1apMsg,(Size)sizeof(F1AP_PDU_t)); + RETVALUE(ret); + } + for(idx=0; idxprotocolIEs.list.array[idx]),\ + (Size)sizeof(F1SetupResponseIEs_t)); + if(ret != ROK) + { + SPutSBuf(DU_APP_MEM_REGION,DU_POOL,(Data *)&(f1SetupRsp->protocolIEs.list.array),\ + (Size)elementCnt * sizeof(F1SetupResponseIEs_t *)); + SPutSBuf(DU_APP_MEM_REGION,DU_POOL,(Data *)&(f1apMsg->choice.successfulOutcome),\ + (Size)sizeof(SuccessfulOutcome_t)); + SPutSBuf(DU_APP_MEM_REGION,DU_POOL,(Data *)&f1apMsg,(Size)sizeof(F1AP_PDU_t)); + RETVALUE(ret); + } + } + + /*TransactionID*/ + f1SetupRsp->protocolIEs.list.array[0]->id = ProtocolIE_ID_id_TransactionID ; + f1SetupRsp->protocolIEs.list.array[0]->criticality = Criticality_reject; + f1SetupRsp->protocolIEs.list.array[0]->value.present = \ + F1SetupResponseIEs__value_PR_TransactionID; + f1SetupRsp->protocolIEs.list.array[0]->value.choice.TransactionID = TRANS_ID; + + /*CU Name*/ + f1SetupRsp->protocolIEs.list.array[1]->id = ProtocolIE_ID_id_gNB_CU_Name; + f1SetupRsp->protocolIEs.list.array[1]->criticality = Criticality_ignore; + f1SetupRsp->protocolIEs.list.array[1]->value.present = \ + F1SetupResponseIEs__value_PR_GNB_CU_Name; + cuName = &f1SetupRsp->protocolIEs.list.array[1]->value.choice.GNB_CU_Name; + cuName->size = sizeof(cuCfgParams.cuName); + + ret = SGetSBuf(DU_APP_MEM_REGION,DU_POOL, (Data **)&(cuName->buf),\ + (Size)sizeof(cuName->size)); + if(ret != ROK) + { + SPutSBuf(DU_APP_MEM_REGION,DU_POOL,(Data *)&(f1SetupRsp->protocolIEs.list.array),\ + (Size)elementCnt * sizeof(F1SetupResponseIEs_t *)); + SPutSBuf(DU_APP_MEM_REGION,DU_POOL,(Data *)&(f1apMsg->choice.successfulOutcome),\ + (Size)sizeof(SuccessfulOutcome_t)); + SPutSBuf(DU_APP_MEM_REGION,DU_POOL,(Data *)&f1apMsg,(Size)sizeof(F1AP_PDU_t)); + RETVALUE(ret); + } + strcpy((char*)cuName->buf, (char*)cuCfgParams.cuName); + + /* RRC Version */ + f1SetupRsp->protocolIEs.list.array[2]->id = ProtocolIE_ID_id_GNB_CU_RRC_Version; + f1SetupRsp->protocolIEs.list.array[2]->criticality = Criticality_reject; + f1SetupRsp->protocolIEs.list.array[2]->value.present = \ + F1SetupResponseIEs__value_PR_RRC_Version; + rrc_Ver = &f1SetupRsp->protocolIEs.list.array[2]->value.choice.RRC_Version; + rrc_Ver->latest_RRC_Version.size = RRC_SIZE; + + ret = SGetSBuf(DU_APP_MEM_REGION,DU_POOL,\ + (Data **)&(rrc_Ver->latest_RRC_Version.buf), sizeof(U8)); + if(ret != ROK) + { + SPutSBuf(DU_APP_MEM_REGION,DU_POOL,(Data *)&(cuName->buf),(Size)sizeof(cuName->size)); + SPutSBuf(DU_APP_MEM_REGION,DU_POOL,(Data *)&(f1SetupRsp->protocolIEs.list.array),\ + (Size)elementCnt * sizeof(F1SetupResponseIEs_t *)); + SPutSBuf(DU_APP_MEM_REGION,DU_POOL,(Data *)&(f1apMsg->choice.successfulOutcome),\ + (Size)sizeof(SuccessfulOutcome_t)); + SPutSBuf(DU_APP_MEM_REGION,DU_POOL,(Data *)&f1apMsg,(Size)sizeof(F1AP_PDU_t)); + RETVALUE(ret); + } + + /* Need to check RRC Version */ + rrc_Ver->latest_RRC_Version.buf[0] = cuCfgParams.rrcVersion.rrcVer; + rrc_Ver->latest_RRC_Version.bits_unused = 5; //TODO: pick from cuCfgParam. If not present, add it + + xer_fprint(stdout, &asn_DEF_F1AP_PDU, f1apMsg); + + /* Encode the F1SetupRequest type as UPER */ + cmMemset((U8 *)encBuf, 0, ENC_BUF_MAX_LEN); + encBufSize = 0; + encRetVal = aper_encode(&asn_DEF_F1AP_PDU, 0, f1apMsg, PrepFinalEncBuf, encBuf); + + if(encRetVal.encoded == ENCODE_FAIL) + { + printf("Could not encode F1SetupResponse structure (at %s)\n",\ + encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); + ret = RFAILED; + } + else + { + printf("\nCreated APER encoded buffer for F1SetupResponse\n"); + for(int i=0; i< encBufSize; i++) + { + printf("%x",encBuf[i]); + } + } return ret; -} +}/* End of BuildF1SetupRsp */ -/*************************************************************************** +/******************************************************************* + * + * @brief Builds and sends the DUConfigUpdate * + * @details * + * Function : BuildDUConfigUpdate * + * Functionality: Constructs the DU Update message and sends + * it to the CU through SCTP. * + * @params[in] void **buf,Buffer to which encoded pattern is written into + * @params[in] int *size,size of buffer * + * @return ROK - success + * RFAILED - failure * + * ****************************************************************/ + +S16 BuildDUConfigUpdate() +{ + S16 ret; + U8 idx; + U8 elementCnt; + asn_enc_rval_t encRetVal; /* Encoder return value */ + F1AP_PDU_t *f1apDuCfg = NULL; + GNBDUConfigurationUpdate_t *duCfgUpdate; + + printf("\nBuilding DU config update\n"); + + /* Allocate the memory for F1DuCfg */ + ret = SGetSBuf(DU_APP_MEM_REGION, DU_POOL, (Data **)&f1apDuCfg, (Size)sizeof(F1AP_PDU_t)); + if(ret != ROK) + { + printf("Memory allocation for F1AP-PDU failed"); + RETVALUE(ret); + } + + f1apDuCfg->present = F1AP_PDU_PR_initiatingMessage; + ret = SGetSBuf(DU_APP_MEM_REGION, DU_POOL, (Data **)&(f1apDuCfg->choice.initiatingMessage),\ + (Size)sizeof(InitiatingMessage_t)); + if(ret != ROK) + { + printf("Memory allocation for F1AP-PDU failed"); + SPutSBuf(DU_APP_MEM_REGION, DU_POOL, (Data *)&f1apDuCfg, (Size)sizeof(F1AP_PDU_t)); + RETVALUE(ret); + } + + f1apDuCfg->choice.initiatingMessage->procedureCode = ProcedureCode_id_gNBDUConfigurationUpdate; + f1apDuCfg->choice.initiatingMessage->criticality = Criticality_reject; + f1apDuCfg->choice.initiatingMessage->value.present = InitiatingMessage__value_PR_GNBDUConfigurationUpdate; + duCfgUpdate = &f1apDuCfg->choice.initiatingMessage->value.choice.GNBDUConfigurationUpdate; + + elementCnt = 1; + duCfgUpdate->protocolIEs.list.count = elementCnt; + duCfgUpdate->protocolIEs.list.size = elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *); + + /* Initialize the F1Setup members */ + ret = SGetSBuf(DU_APP_MEM_REGION, DU_POOL, (Data **)&(duCfgUpdate->protocolIEs.list.array),\ + (Size)elementCnt*sizeof(GNBDUConfigurationUpdateIEs_t *)); + if(ret != ROK) + { + printf("Memory allocation for F1RequestIEs failed"); + SPutSBuf(DU_APP_MEM_REGION, DU_POOL, (Data *)&(f1apDuCfg->choice.initiatingMessage),\ + (Size)sizeof(InitiatingMessage_t)); + SPutSBuf(DU_APP_MEM_REGION, DU_POOL, (Data *)&f1apDuCfg, (Size)sizeof(F1AP_PDU_t)); + RETVALUE(ret); + } + + for(idx=0;idxprotocolIEs.list.array[idx]),\ + (Size)sizeof(GNBDUConfigurationUpdateIEs_t)); + if(ret != ROK) + { + SPutSBuf(DU_APP_MEM_REGION, DU_POOL, (Data *)&(duCfgUpdate->protocolIEs.list.array),\ + (Size)elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *)); + SPutSBuf(DU_APP_MEM_REGION, DU_POOL, (Data *)&(f1apDuCfg->choice.initiatingMessage), (Size)sizeof(InitiatingMessage_t)); + SPutSBuf(DU_APP_MEM_REGION,DU_POOL,(Data *)&f1apDuCfg,(Size)sizeof(F1AP_PDU_t)); + RETVALUE(ret); + } + } + + /*TransactionID*/ + duCfgUpdate->protocolIEs.list.array[0]->id = ProtocolIE_ID_id_TransactionID ; + duCfgUpdate->protocolIEs.list.array[0]->criticality = Criticality_reject; + duCfgUpdate->protocolIEs.list.array[0]->value.present = GNBDUConfigurationUpdateIEs__value_PR_TransactionID; + duCfgUpdate->protocolIEs.list.array[0]->value.choice.TransactionID = TRANS_ID; + + xer_fprint(stdout, &asn_DEF_F1AP_PDU, f1apDuCfg); + + /* Encode the DU Config Update type as APER */ + cmMemset((U8 *)encBuf, 0, ENC_BUF_MAX_LEN); + encBufSize = 0; + encRetVal = aper_encode(&asn_DEF_F1AP_PDU, 0, f1apDuCfg, PrepFinalEncBuf, encBuf); + if(encRetVal.encoded == ENCODE_FAIL) + { + printf("Could not encode DUConfigUpdate structure (at %s)\n",encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); + RETVALUE(RFAILED); + } + else + { + printf("\nCreated APER encoded buffer for DUConfigUpdate\n"); + for(int i=0; i< encBufSize; i++) + { + printf("%x",encBuf[i]); + } + } + RETVALUE(ROK); +}/* End of BuildDUConfigUpdate */ + +/******************************************************************* + * + * @brief Builds and sends the DUUpdateAcknowledge + * + * @details * + * Function : BuildDUUpdateAck * + * Functionality: Constructs the DU Update Acknowledge message and sends + * it to the DU through SCTP. * - * ************************************************************************/ + * @params[in] void **buf,Buffer to which encoded pattern is written into + * @params[in] int *size,size of buffer + * + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ -S16 ExtractSendF1SetupRsp() +S16 BuildDUUpdateAck() { - S16 ret = ROK; + S16 ret; + U8 idx; + U8 elementCnt; + F1AP_PDU_t *f1apMsg = NULL; + GNBDUConfigurationUpdateAcknowledge_t *gNBDuCfgAck; + asn_enc_rval_t enRetVal; /* Encoder return value */ -//in case of any failure, assign RFAILED to ret + printf("\nBuilding GNB-DU Config Update Ack\n"); + /* Allocate the memory for F1SetupRequest_t */ + ret = SGetSBuf(DU_APP_MEM_REGION, DU_POOL, (Data **)&f1apMsg, (Size)sizeof(F1AP_PDU_t)); + if(ret != ROK) + { + printf("Memory allocation for F1AP-PDU failed"); + RETVALUE(ret); + } - return ret; -} + f1apMsg->present = F1AP_PDU_PR_successfulOutcome; + + ret = SGetSBuf(DU_APP_MEM_REGION,DU_POOL,(Data **)&(f1apMsg->choice.successfulOutcome),\ + (Size)sizeof(SuccessfulOutcome_t)); + if(ret != ROK) + { + printf("Memory allocation for F1AP-PDU failed"); + SPutSBuf(DU_APP_MEM_REGION,DU_POOL,(Data *)&f1apMsg,(Size)sizeof(F1AP_PDU_t)); + RETVALUE(ret); + } + + f1apMsg->choice.successfulOutcome->procedureCode = ProcedureCode_id_gNBDUConfigurationUpdate; + f1apMsg->choice.successfulOutcome->criticality = Criticality_reject; + f1apMsg->choice.successfulOutcome->value.present = SuccessfulOutcome__value_PR_GNBDUConfigurationUpdateAcknowledge; + gNBDuCfgAck = &f1apMsg->choice.successfulOutcome->value.choice.GNBDUConfigurationUpdateAcknowledge; + + elementCnt = 1; + gNBDuCfgAck->protocolIEs.list.count = elementCnt; + gNBDuCfgAck->protocolIEs.list.size = elementCnt*sizeof(GNBDUConfigurationUpdateAcknowledgeIEs_t); + + /* Initialize the F1Setup members */ + ret = SGetSBuf(DU_APP_MEM_REGION,DU_POOL,(Data **)&(gNBDuCfgAck->protocolIEs.list.array),\ + (Size)elementCnt * sizeof(GNBDUConfigurationUpdateAcknowledgeIEs_t *)); + if(ret != ROK) + { + printf("Memory allocation for DuUpdateAcknowledgeIEs failed"); + SPutSBuf(DU_APP_MEM_REGION,DU_POOL,(Data *)&(f1apMsg->choice.successfulOutcome),\ + (Size)sizeof(SuccessfulOutcome_t)); + SPutSBuf(DU_APP_MEM_REGION,DU_POOL,(Data *)&f1apMsg,(Size)sizeof(F1AP_PDU_t)); + RETVALUE(ret); + } + + for(idx=0; idxprotocolIEs.list.array[idx]),\ + (Size)sizeof(GNBDUConfigurationUpdateAcknowledgeIEs_t)); + if(ret != ROK) + { + SPutSBuf(DU_APP_MEM_REGION,DU_POOL,(Data *)&(gNBDuCfgAck->protocolIEs.list.array),\ + (Size)elementCnt * sizeof(GNBDUConfigurationUpdateAcknowledgeIEs_t *)); + SPutSBuf(DU_APP_MEM_REGION,DU_POOL,(Data *)&(f1apMsg->choice.successfulOutcome),\ + (Size)sizeof(SuccessfulOutcome_t)); + + SPutSBuf(DU_APP_MEM_REGION,DU_POOL,(Data *)&f1apMsg,(Size)sizeof(F1AP_PDU_t)); + RETVALUE(ret); + } + } + + /*TransactionID*/ + gNBDuCfgAck->protocolIEs.list.array[0]->id = ProtocolIE_ID_id_TransactionID ; + gNBDuCfgAck->protocolIEs.list.array[0]->criticality = Criticality_reject; + gNBDuCfgAck->protocolIEs.list.array[0]->value.present = GNBDUConfigurationUpdateAcknowledgeIEs__value_PR_TransactionID; + gNBDuCfgAck->protocolIEs.list.array[0]->value.choice.TransactionID = TRANS_ID; + + xer_fprint(stdout, &asn_DEF_F1AP_PDU, f1apMsg); + + /* Encode the F1SetupRequest type as UPER */ + cmMemset((U8 *)encBuf, 0, ENC_BUF_MAX_LEN); + encBufSize = 0; + enRetVal = aper_encode(&asn_DEF_F1AP_PDU, 0, f1apMsg, PrepFinalEncBuf, encBuf); + if(enRetVal.encoded == ENCODE_FAIL) + { + printf("\nCould not encode DUConfigUpdateAcknowledge structure (at %s)",enRetVal.failed_type ? enRetVal.failed_type->name : "unknown"); + RETVALUE(RFAILED); + } + else + { + printf("\nCreated APER encoded buffer for DuConfigUpdateAcknowledge\n"); + for(int i=0; i< encBufSize; i++) + { + printf("%x",encBuf[i]); + } + } + RETVALUE(ROK); + +}/* End of BuildDUUpdateAck*/ + +/******************************************************************* +* +* @brief Handles received F1AP message and sends back response +* +* @details +* +* Function : F1InmsgHdlr +* +* Functionality: +* - Decodes received F1AP control message +* - Prepares response message, encodes and sends to SCTP +* +* @params[in] +* @return ROK - success +* RFAILED - failure +* +* ****************************************************************/ +void F1InmsgHdlr(Buffer *mBuf) +{ + int i,j; + char *recvBuf; + char *finalBuf; + MsgLen copyCnt; + MsgLen recvBufLen; + F1AP_PDU_t *f1apmsg; + asn_dec_rval_t rval; /* Decoder return value */ + F1AP_PDU_t f1apasnmsg ; + Buffer *respBuf; + + printf("\nReceived F1AP message buffer"); + SPrntMsg(mBuf, 0,0); + + /* Copy mBuf into char array to decode it */ + SFndLenMsg(mBuf, &recvBufLen); + if(SGetSBuf(1, 1, (Data **)&recvBuf, (Size)recvBufLen) != ROK) + { + printf("Memory allocation failed"); + return; + } + if(SCpyMsgFix(mBuf, 0, recvBufLen, (Data *)recvBuf, ©Cnt) != ROK) + { + printf("\nFailed while copying %d", copyCnt); + return; + } + + printf("\nReceived flat buffer to be decoded : "); + for(i=0; i< recvBufLen; i++) + { + printf("%x",recvBuf[i]); + } + + /* Decoding flat buffer into F1AP messsage */ + f1apmsg = &f1apasnmsg; + memset(f1apmsg, 0, sizeof(F1AP_PDU_t)); + + rval = aper_decode(0, &asn_DEF_F1AP_PDU, (void **)&f1apmsg, recvBuf, recvBufLen, 0, 0); + SPutSBuf(1, 1, (Data *)recvBuf, (Size)recvBufLen); + if(rval.code == RC_FAIL || rval.code == RC_WMORE) + { + printf("\nASN decode failed"); + return; + } + printf("\n"); + xer_fprint(stdout, &asn_DEF_F1AP_PDU, f1apmsg); + + switch(f1apmsg->present) + { + case F1AP_PDU_PR_initiatingMessage: + { + switch(f1apmsg->choice.initiatingMessage->value.present) + { + case InitiatingMessage__value_PR_F1SetupRequest: + { + printf("\nF1 setup request received"); + + BuildF1SetupRsp(); + + /* Reversing the encoded string */ + if(SGetSBuf(1, 1, (Data **)&finalBuf, (Size)encBufSize) != ROK) + { + printf("Memory allocation failed"); + return; + } + for(i = 0, j = encBufSize-1; ichoice.initiatingMessage->value.present); + return; + } + }/* End of switch(initiatingMessage) */ + break; + } + + case F1AP_PDU_PR_successfulOutcome: + { + switch(f1apmsg->choice.successfulOutcome->value.present) + { + case SuccessfulOutcome__value_PR_F1SetupResponse: + { + F1SetupResponse_t *f1SetRspMsg; + F1SetupRsp f1SetRspDb; + GNB_CU_Name_t *cuName; + RRC_Version_t *rrc_Ver; + + printf("\nF1 Setup Response"); + + /* Store the received info in local database */ + f1SetRspMsg = &f1apmsg->choice.successfulOutcome->value.choice.F1SetupResponse; + cuName = &f1SetRspMsg->protocolIEs.list.array[1]->value.choice.GNB_CU_Name; + rrc_Ver = &f1SetRspMsg->protocolIEs.list.array[2]->value.choice.RRC_Version; + + f1SetRspDb.transId = f1SetRspMsg->protocolIEs.list.array[0]->value.choice.TransactionID; + strcpy(f1SetRspDb.cuName, cuName->buf); + //strcpy(f1SetRspDb.rrcVersion.rrcVer, rrc_Ver->latest_RRC_Version.buf[0]); + + /* TODO :Check the deallocation */ +#if 0 + SPutSBuf(DU_APP_MEM_REGION, DU_POOL,(Data *)&(f1SetupRsp->protocolIEs.list.array),\ + (Size)elementCnt * sizeof(F1SetupResponseIEs_t *)); + SPutSBuf(DU_APP_MEM_REGION, DU_POOL,(Data *)&(f1apMsg->choice.successfulOutcome),\ + (Size)sizeof(SuccessfulOutcome_t)); + SPutSBuf(DU_APP_MEM_REGION, DU_POOL,(Data *)&f1apMsg,(Size)sizeof(F1AP_PDU_t)); +#endif + + /* Build and send GNB-DU config update */ + BuildDUConfigUpdate(); + + /* Reversing the encoded string */ + if(SGetSBuf(1, 1, (Data **)&finalBuf, (Size)encBufSize) != ROK) + { + printf("Memory allocation failed"); + return; + } + for(i = 0, j = encBufSize-1; ichoice.successfulOutcome->value.choice.GNBDUConfigurationUpdateAcknowledge; + duCfgUpdAckDb.transId = gnbDuCfgUpdAckMsg->protocolIEs.list.array[0]->value.choice.TransactionID; + + /* TODO :Check the deallocation */ +#if 0 + SPutSBuf(DU_APP_MEM_REGION,DU_POOL,(Data *)&(gNBDuCfgAck->protocolIEs.list.array),\ + (Size)elementCnt * sizeof(GNBDUConfigurationUpdateAcknowledgeIEs_t *)); + SPutSBuf(DU_APP_MEM_REGION,DU_POOL,(Data *)&(f1apMsg->choice.successfulOutcome),\ + (Size)sizeof(SuccessfulOutcome_t)); + SPutSBuf(DU_APP_MEM_REGION,DU_POOL,(Data *)&f1apMsg,(Size)sizeof(F1AP_PDU_t)); +#endif + break; + } + + default: + { + printf("\nInvalid type of successful outcome [%d]", f1apmsg->choice.successfulOutcome->value.present); + return; + } + }/* End of switch(successfulOutcome) */ + break; + } + + default: + { + printf("\nInvalie type of f1apMsg->present [%d]",f1apmsg->present); + return; + } + + }/* End of switch(f1apmsg->present) */ + +} /* End of F1InmsgHdlr */ + /********************************************************************** End of file diff --git a/src/cu_app/cu_mgr_main.h b/src/du_app/F1AP/f1ap_msg_hdl.h similarity index 75% rename from src/cu_app/cu_mgr_main.h rename to src/du_app/F1AP/f1ap_msg_hdl.h index 15ac29be8..c2d16c369 100644 --- a/src/cu_app/cu_mgr_main.h +++ b/src/du_app/F1AP/f1ap_msg_hdl.h @@ -16,34 +16,40 @@ ################################################################################ *******************************************************************************/ -#ifndef __CU_MGR_MAIN_H__ -#define __CU_MGR_MAIN_H__ +/* This file contains all F1AP message handler related functionality */ +#include +#include +#include +#include +#include "ProtocolExtensionField.h" +#include "F1AP-PDU.h" - -#include "stdio.h" -#include "stdlib.h" -#include "string.h" -#include "ctype.h" -#include "stdbool.h" #include "envopt.h" /* Environment options */ #include "envdep.h" /* Environment dependent */ #include "envind.h" /* Environment independent */ - #include "gen.h" /* General */ #include "ssi.h" /* System services */ - -#include "cu_common.h" +#include "ss_queue.h" +#include "ss_task.h" +#include "ss_msg.h" #include "gen.x" /* General */ -#include "ssi.x" /* System services */ -#include "cm_lib.x" +#include "ssi.x" /* System services */ +#include "ss_queue.x" +#include "ss_task.x" +#include "ss_msg.x" + +#define ENC_BUF_MAX_LEN 100 -CuCfgParams cuCfgParams; //global variable to hold all configs +extern char encBuf[ENC_BUF_MAX_LEN]; +int encBufSize; -void readCuCfg(); -void cuAppInmsgHdlr(char *recvBuf,U8 len); +S16 BuildF1SetupReq(); +void F1InmsgHdlr(Buffer *mBuf); -#endif +#define ENCODE_FAIL -1 +#define TRANS_ID 1 +#define RRC_SIZE 1 /********************************************************************** End of file diff --git a/src/cu_app/cu_mgr_main.c b/src/du_app/du_app_sctp_intf.c similarity index 57% rename from src/cu_app/cu_mgr_main.c rename to src/du_app/du_app_sctp_intf.c index ee878d01a..165998b3b 100644 --- a/src/cu_app/cu_mgr_main.c +++ b/src/du_app/du_app_sctp_intf.c @@ -16,23 +16,57 @@ ################################################################################ *******************************************************************************/ -/* This functions contains main() for cu_app */ +/* This file contains handler for DU APP and SCTP interface functions */ -#include "cu_mgr_main.h" -#include "cu_sctp.h" +#include "du_sctp.h" /******************************************************************* * - * @brief Main function of CU APP + * @brief Packs SCTP notification * * @details * - * Function : main + * Function : cmPkSctpNtfy * * Functionality: - * - Reads CU related configurations - * - Initialize SCTP Parameters - * - Start SCTP receiver thread + * Packs SCTP notification + * + * @params[in] Notification + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ + +S16 cmPkSctpNtfy(CmInetSctpNotification *ntfy) +{ + Buffer *mBuf; + + if(SGetMsg(DU_APP_MEM_REGION, DU_POOL, &mBuf) != ROK) + { + printf("\nFailed to allocate memory"); + RETVALUE(RFAILED); + } + + if(ntfy->header.nType == CM_INET_SCTP_ASSOC_CHANGE) + { + SPkU16(ntfy->u.assocChange.state, mBuf); + } + SPkU16(ntfy->header.nType, mBuf); + + sendToDuApp(mBuf, EVTSCTPNTFY); + RETVALUE(ROK); +} + +/******************************************************************* + * + * @brief Unpacks SCTP notification + * + * @details + * + * Function : cmUnpkSctpNtfy + * + * Functionality: + * Unpacks SCTP notification * * @params[in] * @return ROK - success @@ -40,18 +74,18 @@ * * ****************************************************************/ -void main() +S16 cmUnpkSctpNtfy(SctpNtfy func, Pst *pst, Buffer *mBuf) { - printf("\nStarting cu_app"); - - /* Read CU configurations */ - readCuCfg(); - - /* Initializing SCTP global parameters */ - sctpActvInit(0, 0, 0, 0); - - /* Start CU-SCTP to listen on incoming connection */ - sctpStartReq(); + CmInetSctpNotification ntfy; + cmMemset((U8*)&ntfy, 0, sizeof(CmInetSctpNotification)); + + SUnpkU16(&(ntfy.header.nType), mBuf); + if(ntfy.header.nType == CM_INET_SCTP_ASSOC_CHANGE) + { + SUnpkU16(&(ntfy.u.assocChange.state), mBuf); + } + + RETVALUE((*func)(mBuf, &ntfy)); } /********************************************************************** diff --git a/src/du_app/du_common.h b/src/du_app/du_common.h index 3c46e85e3..9c5f2dcff 100644 --- a/src/du_app/du_common.h +++ b/src/du_app/du_common.h @@ -23,7 +23,11 @@ #include "lcl.h" #define DU_PROC 0 +#define DU_INST 0 #define DU_POOL 1 + +#define SCTP_INST 0 + /* Events */ #define EVTCFG 0 @@ -34,14 +38,14 @@ /* Macro definitions for F1 procedures */ -#define CU_DU_NAME_LEN_MAX 150 /* Max length of CU/DU name string */ +#define CU_DU_NAME_LEN_MAX 30 /* Max length of CU/DU name string */ #define MAX_F1_CONNECTIONS 65536 /* Max num of F1 connections */ -#define MAXCELLINGNBDU 512 /* Max num of cells served by gNB-DU */ -#define MAXNUMOFBPLMN 6 /* Max num of broadcast PLMN ids */ +#define MAXCELLINGNBDU 2 /* Max num of cells served by gNB-DU */ +#define MAXNUMOFBPLMN 1 /* Max num of broadcast PLMN ids */ #define MAXNRARFCN 3279165 /* Maximum values of NRAFCN */ -#define MAXNRCELLBANDS 32 /* Maximum number of frequency bands */ +#define MAXNRCELLBANDS 2 /* Maximum number of frequency bands */ #define MAXNUMOFSLICEITEMS 1024 /* Maximum number of signalled slice support items */ -#define MAXBPLMNNRMINUS1 11 /* Maximum number of PLMN Ids broadcast in an NR cell minus 1 */ +#define MAXBPLMNNRMINUS1 1 /* Maximum number of PLMN Ids broadcast in an NR cell minus 1 */ #define MAXNUMOFSIBTYPES 32 /* Maximum number of SIB types */ #define MAX_UEID 512 /* Maximum number of UE Ids */ #define MAXNUMOFTNLASSOCS 32 /* Max num of TNL Assoc between CU and DU */ @@ -50,15 +54,9 @@ #define MAXNUMOFUACPLMN 12 /* Maximum number of PLMN ids*/ #define MAXNUMOFUACPERPLMN 64 /* Maximum number of signalled categories per PLMN */ -#define MAX_IPV4_LEN 16 /* Max lenght of IPV4 Address */ -#define MAX_IPV6_LEN 40 /* Max lenght of IPV6 Address */ +#define MAX_IPV6_LEN 16 /* Max lenght of IPV6 Address */ -typedef enum -{ - F1_DOWN, - F1_UP -}F1Status; typedef enum { @@ -315,13 +313,8 @@ typedef struct f1ResetType typedef struct f1PLMN { -//<<<<<<< HEAD U8 mcc[3]; U8 mnc[3]; -//======= - //char mcc[3]; - //char mnc[3]; -//>>>>>>> 0fec7aba84be690775c36e49eb31082dc2180f38 }F1Plmn; typedef struct nrEcgi @@ -774,9 +767,9 @@ typedef struct f1NwkAccessRateRed typedef struct f1Ipaddr { Bool ipV4Pres; - char ipV4Addr[MAX_IPV4_LEN]; + U32 ipV4Addr; Bool ipV6Pres; - char ipV6Addr[MAX_IPV6_LEN]; + U8 ipV6Addr[MAX_IPV6_LEN]; }F1IpAddr; typedef struct f1SctpParams @@ -790,23 +783,15 @@ typedef struct f1SctpParams typedef struct duCfgParams { F1SctpParams sctpParams; /* SCTP Params */ + U32 maxUe; U32 duId; - char duName[CU_DU_NAME_LEN_MAX]; + U8 duName[CU_DU_NAME_LEN_MAX]; F1DuSrvdCellInfo srvdCellLst[MAXCELLINGNBDU]; /* Serving cell list */ F1RrcVersion rrcVersion; /* RRC version */ ClCellCfg clCellCfg; /* CL cell configuration */ }DuCfgParams; -extern DuCfgParams ducfgparam; - -typedef struct cuCfgParams -{ - U32 cuId; - char cuName[CU_DU_NAME_LEN_MAX]; - -}CuCfgParams; - #endif /* __DU_COMMON_H__ */ /********************************************************************** diff --git a/src/du_app/du_mgr.h b/src/du_app/du_mgr.h index bdd843657..8e5c68ca7 100644 --- a/src/du_app/du_mgr.h +++ b/src/du_app/du_mgr.h @@ -54,29 +54,110 @@ #include "lrg.x" #define DU_PROC 0 +/* Memory related configs */ +#define DU_APP_MEM_REGION 1 +#define RLC_UL_MEM_REGION 1 +#define RLC_DL_MEM_REGION 4 +#define RG_MEM_REGION 4 + #define DU_POOL 1 +#define RLC_POOL 1 +#define RG_POOL 1 + /* Events */ #define EVTCFG 0 -#define EVTSCTPUP 1 +#define EVTSCTPSTRT 1 +#define EVTSCTPDATA 2 +#define EVTSCTPNTFY 3 /* Selector */ #define DU_SELECTOR_LC 0 #define DU_SELECTOR_TC 1 #define DU_SELECTOR_LWLC 2 +/* SAP IDs */ +#define DU_RG_SUID 0 +#define DU_RG_SPID 0 + +/* Instance */ +#define RLC_UL_INST 0 +#define RLC_DL_INST 1 + +#define DU_ZERO_VAL 0 + +/* Macros */ +#define DEFAULT_CELLS 1 + +#define RLC_GEN_CFG 1 +#define RLC_MAC_SAP_CFG 2 +#define RLC_UDX_SAP_CFG 4 + +#define MAC_GEN_CFG 1 +#define MAC_SAP_CFG 2 +#define MAX_MAC_SAP 2 + +#define DU_RLC_UL_CONFIGURED (RLC_GEN_CFG | \ + RLC_MAC_SAP_CFG | RLC_UDX_SAP_CFG) +#define DU_RLC_DL_CONFIGURED DU_RLC_UL_CONFIGURED + +#define MAC_CONFIGURED (MAC_GEN_CFG | MAC_SAP_CFG) + +#define DU_SET_ZERO(_buf, _size) \ + cmMemset((U8 *)(_buf), 0, _size); + + /* DU APP DB */ -typedef struct duDb +typedef struct duCb { - F1Status f1Status; + Mem mem; + TskInit init; + Bool sctpStatus; + Bool f1Status; + Bool duStatus; -}DuDb; +}DuCb; +typedef struct duLSapCfg +{ + SuId suId; + SpId spId; + Ent srcEnt; + Inst srcInst; + ProcId dstProcId; + Ent dstEnt; + Inst dstInst; + Priority dstPrior; + Route dstRoute; + Selector dstSel; + Mem mem; + U8 maxBndRetry; + TmrCfg bndTmr; + TmrCfg connTmr; +}DuLSapCfg; + +/* global variables */ +DuCb duCb; +DuCfgParams duCfgParam; /* DU Cell Functions */ S16 duActvInit(Ent entity, Inst inst, Region region, Reason reason); S16 duActvTsk(Pst *pst, Buffer *mBuf); -S16 duProcCfgComplete(); - +S16 duSendRlcUlCfg(); +S16 duSendRlcDlCfg(); +S16 duBuildRlcCfg(Inst inst); +S16 duBuildRlcLsapCfg(Ent ent, Inst inst, U8 lsapInst); +S16 duBuildRlcUsapCfg(U8 elemId, Ent ent, Inst inst); +S16 duHdlRlcCfgComplete(Pst *pst, KwMngmt *cfm); +S16 duHdlRlcCntrlCfgComplete(Pst *pst, KwMngmt *cfm); +S16 duProcRlcUlCfgComplete(Pst *pst, KwMngmt *cfm); +S16 duProcRlcDlCfgComplete(Pst *pst, KwMngmt *cfm); +S16 duSendMacCfg(); +S16 duBuildMacGenCfg(); +S16 duBuildMacUsapCfg(SpId sapId); +S16 duHdlMacCfgComplete(Pst *pst, RgMngmt *cfm); +S16 duBindUnbindRlcToMacSap(U8 inst, U8 action); +S16 duSctpStartReq(); +S16 duSctpNtfyHdl(Buffer *mBuf, CmInetSctpNotification *ntfy); #endif /********************************************************************** diff --git a/src/du_app/du_mgr_ex_ms.c b/src/du_app/du_mgr_ex_ms.c index 663583283..44a83ccfc 100644 --- a/src/du_app/du_mgr_ex_ms.c +++ b/src/du_app/du_mgr_ex_ms.c @@ -18,7 +18,12 @@ /* This file contains message handling functionality for DU cell management */ -#include "du_mgr.h" +#include "du_sctp.h" +#include "f1ap_msg_hdl.h" + +extern S16 cmUnpkLkwCfgCfm(LkwCfgCfm func,Pst *pst, Buffer *mBuf); +extern S16 cmUnpkLkwCntrlCfm(LkwCntrlCfm func,Pst *pst, Buffer *mBuf); +extern S16 cmUnpkLrgCfgCfm(LrgCfgCfm func,Pst *pst, Buffer *mBuf); /************************************************************************** * @brief Task Initiation callback function. @@ -42,7 +47,24 @@ ***************************************************************************/ S16 duActvInit(Ent entity, Inst inst, Region region, Reason reason) { -//TODO: TBD + duCb.init.procId = SFndProcId(); + duCb.init.ent = entity; + duCb.init.inst = inst; + duCb.init.region = region; + duCb.init.reason = reason; + duCb.init.cfgDone = FALSE; + duCb.init.pool = DU_POOL; + duCb.init.acnt = FALSE; + duCb.init.trc = FALSE; + duCb.init.usta = TRUE; + duCb.mem.region = DFLT_REGION; + duCb.mem.pool = DU_POOL; + + duCb.sctpStatus = FALSE; + duCb.f1Status = FALSE; + duCb.duStatus = FALSE; + + SSetProcId(DU_PROC); return ROK; @@ -80,7 +102,7 @@ S16 duActvTsk(Pst *pst, Buffer *mBuf) { case EVTCFG: { - duProcCfgComplete(); + duSendRlcUlCfg(); SPutMsg(mBuf); break; } @@ -94,22 +116,53 @@ S16 duActvTsk(Pst *pst, Buffer *mBuf) break; } - case ENTF1AP: + case ENTKW: { - + switch(pst->event) + { + case LKW_EVT_CFG_CFM: + { + ret = cmUnpkLkwCfgCfm(duHdlRlcCfgComplete, pst, mBuf); + break; + } + case LKW_EVT_CNTRL_CFM: + { + ret = cmUnpkLkwCntrlCfm(duHdlRlcCntrlCfgComplete, pst, mBuf); + break; + } + case LKW_EVT_STA_IND: + { + break; + } + default: + { + printf("\nInvalid event %d received at duActvTsk from ENTKW", \ + pst->event); + SPutMsg(mBuf); + ret = RFAILED; + } + } break; } - case ENTRG: //TODO: Layer cfg for RLC UL, DL and MAC must be done + case ENTRG: { switch(pst->event) { //Config complete case EVTCFG: { - //TODO: Implement duEstablishSctpToCu(); SPutMsg(mBuf); break; } + case EVTLRGCFGCFM: + { + ret = cmUnpkLrgCfgCfm(duHdlMacCfgComplete, pst, mBuf); + break; + } + case EVTLRGCNTRLCFM: + { + break; + } default: { printf("\nInvalid event received at duActvTsk from ENTRG"); @@ -124,20 +177,25 @@ S16 duActvTsk(Pst *pst, Buffer *mBuf) { switch(pst->event) { - case EVTSCTPUP: + case EVTSCTPDATA: + { + F1InmsgHdlr(mBuf); + break; + } + case EVTSCTPNTFY: { - //Setup F1-C - SPutMsg(mBuf); + ret = cmUnpkSctpNtfy(duSctpNtfyHdl, pst, mBuf); break; } default: { printf("\nInvalid event received at duActvTsk from ENTRG"); - SPutMsg(mBuf); ret = RFAILED; } } + SPutMsg(mBuf); + break; } default: { @@ -147,35 +205,10 @@ S16 duActvTsk(Pst *pst, Buffer *mBuf) } } - SExitTsk(); return ret; } -/************************************************************************** - * @brief Function to invoke DU Layer Configs - * - * @details - * - * Function : duProcCfgComplete - * - * Functionality: - * Initiates Configs towards layers of DU - * - * @param[in] void - * @return ROK - success - * RFAILED - failure - * - ***************************************************************************/ -S16 duProcCfgComplete() -{ -//TBD: invoke SCTP/layer config - -// duHdlRlcUlCfgEvent(); - - return ROK; -} - /********************************************************************** End of file **********************************************************************/ diff --git a/src/du_app/du_mgr_main.c b/src/du_app/du_mgr_main.c index 576177db1..ceca4ebde 100644 --- a/src/du_app/du_mgr_main.c +++ b/src/du_app/du_mgr_main.c @@ -28,9 +28,6 @@ extern S16 kwDlActvInit (Ent, Inst, Region, Reason); extern S16 rgActvTsk (Pst *, Buffer *); extern S16 rgActvInit (Ent, Inst, Region, Reason); -DuCfgParams ducfgparam; //global variable to hold all configs - - /******************************************************************* * * @brief Initializes DU APP @@ -51,7 +48,7 @@ DuCfgParams ducfgparam; //global variable to hold all configs S16 duAppInit(SSTskId sysTskId) { /* Register DU APP TAPA Task for DU */ - if(SRegTTsk((Ent)ENTDUAPP, (Inst)0, (Ttype)TTNORM, (Prior)PRIOR0, + if(SRegTTsk((Ent)ENTDUAPP, (Inst)DU_INST, (Ttype)TTNORM, (Prior)PRIOR0, duActvInit, (ActvTsk)duActvTsk) != ROK) { return RFAILED; @@ -66,7 +63,6 @@ S16 duAppInit(SSTskId sysTskId) to %d sys task\n", sysTskId); return ROK; } - /******************************************************************* * * @brief Initializes SCTP task @@ -92,7 +88,7 @@ S16 sctpInit(SSTskId sysTskId) return RFAILED; } /* Attach SCTP TAPA Task */ - if (SAttachTTsk((Ent)ENTSCTP, (Inst)0, sysTskId)!= ROK) + if (SAttachTTsk((Ent)ENTSCTP, (Inst)SCTP_INST, sysTskId)!= ROK) { return RFAILED; } @@ -101,7 +97,6 @@ S16 sctpInit(SSTskId sysTskId) sysTskId); return ROK; } - /******************************************************************* * * @brief Initializes RLC DL, MAC TAPA task @@ -207,25 +202,20 @@ S16 commonInit() pthread_attr_t attr; SSetProcId(DU_PROC); - //TODO: check regarding cores and add info here /* system task for DU APP */ SCreateSTsk(PRIOR0, &du_app_stsk); - //TODO: check core info to pin the above task to whcih core /* system task for RLC_DL and MAC */ SCreateSTsk(PRIOR0, &rlc_mac_cl_stsk); pthread_attr_init(&attr); pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); - //TODO: check core info to pin the above task to whcih core /* system task for RLC UL */ SCreateSTsk(PRIOR1, &rlc_ul_stsk); - //TODO: check core info to pin the above task to whcih core /* system task for SCTP receiver thread */ - SCreateSTsk(PRIOR3, &sctp_stsk); - //TODO: check core info to pin the above task to whcih core + SCreateSTsk(PRIOR0, &sctp_stsk); /* Create TAPA tasks */ if(duAppInit(du_app_stsk) != ROK) diff --git a/src/du_app/du_mgr_main.h b/src/du_app/du_mgr_main.h index 7661a51b7..6ed9a214a 100644 --- a/src/du_app/du_mgr_main.h +++ b/src/du_app/du_mgr_main.h @@ -23,8 +23,8 @@ /* Function declarations */ S16 duReadCfg(); -void readCfg(); -void readClCfg(); +S16 readCfg(); +S16 readClCfg(); void fillSlotConfig(); S16 duAppInit(SSTskId sysTskId); S16 sctpInit(SSTskId sysTskId); diff --git a/src/du_app/du_msg_hdl.c b/src/du_app/du_msg_hdl.c new file mode 100644 index 000000000..2bc0f6f45 --- /dev/null +++ b/src/du_app/du_msg_hdl.c @@ -0,0 +1,940 @@ +/******************************************************************************* +################################################################################ +# Copyright (c) [2017-2019] [Radisys] # +# # +# 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. # +################################################################################ +*******************************************************************************/ + +/* This file contains message handling functionality for DU cell management */ + +#include "du_sctp.h" +#include "f1ap_msg_hdl.h" + +U8 rlcDlCfg = 0; +U8 numRlcDlSaps = 0; +U8 rlcUlCfg = 0; +U8 numRlcMacSaps = 0; +U8 macCfg = 0; +U8 macCfgInst = 0; + +extern S16 cmPkLkwCfgReq(Pst *pst, KwMngmt *cfg); +extern S16 cmPkLkwCntrlReq(Pst *pst, KwMngmt *cfg); +extern S16 cmPkLrgCfgReq(Pst *pst, RgMngmt *cfg); + +/************************************************************************** + * @brief Function to fill configs required by RLC + * + * @details + * + * Function : duBuildRlcCfg + * + * Functionality: + * Initiates general Configs towards RLC + * + * @param[in] Inst Specifies if RLC UL or RLC DL instance + * @return ROK - success + * RFAILED - failure + * + ***************************************************************************/ +S16 duBuildRlcCfg(Inst inst) +{ + KwMngmt kwMngmt; + KwGenCfg *genCfg = NULLP; + Pst pst; + + DU_SET_ZERO(&kwMngmt, sizeof(KwMngmt)); + DU_SET_ZERO(&pst, sizeof(Pst)); + + genCfg = &(kwMngmt.t.cfg.s.gen); + + /*----------- Fill General Configuration Parameters ---------*/ + genCfg->maxUe = duCfgParam.maxUe; + genCfg->maxKwuSaps = 2; + genCfg->maxUdxSaps = 1; + genCfg->rlcMode = (inst == RLC_UL_INST) ? + LKW_RLC_MODE_UL : LKW_RLC_MODE_DL; + genCfg->timeRes = 1; + genCfg->maxRguSaps = DEFAULT_CELLS; + + /*----------- Fill lmPst + * Parameters ---------*/ + genCfg->lmPst.dstProcId = DU_PROC; + genCfg->lmPst.srcProcId = DU_PROC; + genCfg->lmPst.dstEnt = ENTDUAPP; + genCfg->lmPst.dstInst = DU_INST; + genCfg->lmPst.srcEnt = ENTKW; + genCfg->lmPst.srcInst = inst; + genCfg->lmPst.prior = PRIOR0; + genCfg->lmPst.route = RTESPEC; + genCfg->lmPst.region = (inst == RLC_UL_INST) ? + RLC_UL_MEM_REGION:RLC_DL_MEM_REGION; + genCfg->lmPst.pool = RLC_POOL; + genCfg->lmPst.selector = DU_SELECTOR_LC; + + /* Fill Header */ + kwMngmt.hdr.msgType = TCFG; + kwMngmt.hdr.msgLen = 0; + kwMngmt.hdr.entId.ent = ENTKW; + kwMngmt.hdr.entId.inst = (Inst)0; + kwMngmt.hdr.elmId.elmnt = STGEN; + kwMngmt.hdr.seqNmb = 0; + kwMngmt.hdr.version = 0; + kwMngmt.hdr.transId = 0; + kwMngmt.hdr.response.prior = PRIOR0; + kwMngmt.hdr.response.route = RTESPEC; + kwMngmt.hdr.response.mem.region = (inst == RLC_UL_INST) ? + RLC_UL_MEM_REGION:RLC_DL_MEM_REGION; + kwMngmt.hdr.response.mem.pool = DU_POOL; + kwMngmt.hdr.response.selector = DU_SELECTOR_LC; + + /* Fill Pst */ + pst.selector = DU_SELECTOR_LC; + pst.srcEnt = ENTDUAPP; + pst.dstEnt = ENTKW; + pst.dstInst = inst; + pst.dstProcId = DU_PROC; + pst.srcProcId = DU_PROC; + pst.region = duCb.init.region; + + printf("\nRLC Gen Cfg Req sent for inst %d", inst); + + /* Send the request to RLC */ + cmPkLkwCfgReq(&pst, &kwMngmt); + + return ROK; +} + +/************************************************************************** + * @brief Function to fill configs required by RLC + * + * @details + * + * Function : duBuildRlcLsapCfg + * + * Functionality: + * Initiates general Configs towards RLC + * + * @param[in] Inst Specifies if RLC UL or RLC DL instance + * @return ROK - success + * RFAILED - failure + * + ***************************************************************************/ +S16 duBuildRlcLsapCfg(Ent ent, Inst inst, U8 lsapInst) +{ + + KwMngmt kwMngmt; + KwSapCfg *lSap = NULLP; + Pst pst; + + DU_SET_ZERO(&kwMngmt, sizeof(KwMngmt)); + DU_SET_ZERO(&pst, sizeof(Pst)); + + /* Fill Header */ + kwMngmt.hdr.msgType = TCFG; + kwMngmt.hdr.entId.ent = ENTKW; + kwMngmt.hdr.response.mem.region = (inst == RLC_UL_INST) ? + RLC_UL_MEM_REGION:RLC_DL_MEM_REGION; + + kwMngmt.hdr.response.mem.pool = RLC_POOL; + + /* Fill Pst */ + pst.selector = DU_SELECTOR_LC; + pst.srcEnt = ENTDUAPP; + pst.dstEnt = ENTKW; + pst.dstProcId = DU_PROC; + pst.dstInst = inst; + pst.srcProcId = DU_PROC; + pst.region = duCb.init.region; + lSap = &(kwMngmt.t.cfg.s.sap); + + lSap->mem.region = (inst == RLC_UL_INST) ? + RLC_UL_MEM_REGION:RLC_DL_MEM_REGION; + lSap->mem.pool = RLC_POOL; + lSap->mem.spare = 0; + lSap->bndTmrIntvl = 10; + lSap->priority = PRIOR0; + lSap->route = RTESPEC; + if (ent == ENTRG) + { + lSap->procId = DU_PROC; + lSap->ent = ENTRG; + lSap->inst = lsapInst; + lSap->sapId = lsapInst; /* SapId will be stored as suId in MAC */ + lSap->selector = (inst == RLC_UL_INST) ? DU_SELECTOR_LWLC : DU_SELECTOR_TC; + kwMngmt.hdr.elmId.elmnt = STRGUSAP; + printf("\nRLC MAC Lower Sap Cfg Req sent for inst %d", inst); + + } + else + { + lSap->procId = DU_PROC; + lSap->ent = ENTKW; + lSap->inst = (inst == RLC_UL_INST) ? + RLC_DL_INST : RLC_UL_INST; + lSap->sapId = 0; + lSap->selector = DU_SELECTOR_LC; + kwMngmt.hdr.elmId.elmnt = STUDXSAP; + printf("\nRLC DL/UL Lower Sap Cfg Req sent for inst %d", inst); + } + + cmPkLkwCfgReq(&pst, &kwMngmt); + return ROK; +} + +/************************************************************************** + * @brief Function to fill configs required by RLC + * + * @details + * + * Function : duBuildRlcUsapCfg + * + * Functionality: + * Initiates general Configs towards RLC + * + * @param[in] Inst Specifies if RLC UL or RLC DL instance + * @return ROK - success + * RFAILED - failure + * + ***************************************************************************/ +S16 duBuildRlcUsapCfg(U8 elemId, Ent ent, Inst inst) +{ + KwMngmt kwMngmt; + KwSapCfg *uSap = NULLP; + Pst pst; + + DU_SET_ZERO(&kwMngmt, sizeof(KwMngmt)); + DU_SET_ZERO(&pst, sizeof(Pst)); + + uSap = &(kwMngmt.t.cfg.s.sap); + + uSap->selector = DU_SELECTOR_LC; + uSap->mem.region = (inst == RLC_UL_INST) ? + RLC_UL_MEM_REGION:RLC_DL_MEM_REGION; + uSap->mem.pool = RLC_POOL; + uSap->mem.spare = 0; + + uSap->procId = DU_PROC; + uSap->ent = ENTKW; + uSap->sapId = 0; + + uSap->inst = (inst == RLC_UL_INST) ? + RLC_DL_INST : RLC_UL_INST; + uSap->bndTmrIntvl = 1000; + uSap->priority = PRIOR0; + uSap->route = RTESPEC; + + /* Fill Header */ + kwMngmt.hdr.msgType = TCFG; + kwMngmt.hdr.entId.ent = ENTKW; + kwMngmt.hdr.elmId.elmnt = STUDXSAP; + kwMngmt.hdr.response.mem.region = (inst == RLC_UL_INST) ? + RLC_UL_MEM_REGION:RLC_DL_MEM_REGION; + + kwMngmt.hdr.response.mem.pool = RLC_POOL; + + /* Fill Pst */ + pst.selector = DU_SELECTOR_LC; + pst.srcEnt = ENTDUAPP; + pst.dstEnt = ENTKW; + pst.dstProcId = DU_PROC; + pst.dstInst = inst; + pst.srcProcId = DU_PROC; + pst.region = duCb.init.region; + + printf("\nRLC Kwu Upper Sap Cfg Req sent for inst %d", inst); + cmPkLkwCfgReq(&pst, &kwMngmt); + + return ROK; +} +/************************************************************************** + * @brief Function to invoke DU Layer Configs + * + * @details + * + * Function : duSendRlcUlCfg + * + * Functionality: + * Initiates Configs towards layers of DU + * + * @param[in] void + * @return ROK - success + * RFAILED - failure + * + ***************************************************************************/ +S16 duSendRlcUlCfg() +{ + U8 cellIdx; + + duBuildRlcCfg((Inst)RLC_UL_INST); + for(cellIdx = 0; cellIdx < DEFAULT_CELLS; cellIdx++) + { + duBuildRlcLsapCfg(ENTRG, (Inst)RLC_UL_INST, cellIdx); + } + duBuildRlcLsapCfg(ENTKW, (Inst)RLC_UL_INST, 0); + + return ROK; +} + +/************************************************************************** + * @brief Function to invoke DU Layer Configs + * + * @details + * + * Function : duSendRlcDlCfg + * + * Functionality: + * Initiates Configs towards layers of DU + * + * @param[in] void + * @return ROK - success + * RFAILED - failure + * + ***************************************************************************/ +S16 duSendRlcDlCfg() +{ + U8 cellIdx; + + duBuildRlcCfg((Inst)RLC_DL_INST); + duBuildRlcUsapCfg(STUDXSAP, ENTKW, (Inst)RLC_DL_INST); + for(cellIdx = 0; cellIdx < DEFAULT_CELLS; cellIdx++) + { + duBuildRlcLsapCfg(ENTRG, (Inst)RLC_DL_INST, cellIdx); + } + + return ROK; +} +/************************************************************************** + * @brief Function to handle Config Confirm from RLC + * + * @details + * + * Function : duHdlRlcCfgComplete + * + * Functionality: + * Handles Gen Config Confirm from RLC + * + * @param[in] Pst *pst, Post structure of the primitive. + * @param[in] KwMngmt *cfm, Unpacked primitive info received from RLC + * @return ROK - success + * RFAILED - failure + * + ***************************************************************************/ +S16 duHdlRlcCfgComplete(Pst *pst, KwMngmt *cfm) +{ + S16 ret = ROK; + if (pst->srcInst == RLC_UL_INST) + { + ret = duProcRlcUlCfgComplete(pst, cfm); + } + else + { + ret = duProcRlcDlCfgComplete(pst, cfm); + } + return ret; +} + +/************************************************************************** + * @brief Function to handle Control Config Confirm from RLC + * + * @details + * + * Function : duHdlRlcCntrlCfgComplete + * + * Functionality: + * Handles Control Config Confirm from RLC + * + * @param[in] Pst *pst, Post structure of the primitive. + * @param[in] KwMngmt *cfm, Unpacked primitive info received from RLC + * @return ROK - success + * RFAILED - failure + * + ***************************************************************************/ +S16 duHdlRlcCntrlCfgComplete(Pst *pst, KwMngmt *cntrl) +{ + S16 ret = ROK; + + if (cntrl->cfm.status == LCM_PRIM_OK) + { + switch (cntrl->hdr.elmId.elmnt) + { + case STRGUSAP: + { + if (pst->srcInst == RLC_DL_INST) + { + printf("\nBIND OF RLC DL TO MAC (RGU) SAP SUCCESSFUL"); + macCfgInst++; + if(macCfgInst < DEFAULT_CELLS) + { + macCfgInst = 0; + duBindUnbindRlcToMacSap((Inst) RLC_DL_INST, ABND); + } + else + { + duBindUnbindRlcToMacSap((Inst) RLC_UL_INST, ABND); + } + } + else + { + printf("\nBIND OF RLC UL TO MAC (RGU) SAP SUCCESSFUL"); + macCfgInst++; + if(macCfgInst < DEFAULT_CELLS) + { + duBindUnbindRlcToMacSap((Inst) RLC_UL_INST, ABND); + } + else + { + duSctpStartReq(); + } + + break; + } + } + + } + } + return ret; +} +/************************************************************************** + * @brief Function to handle Config Confirm from RLC UL + * + * @details + * + * Function : duHdlRlcUlCfgComplete + * + * Functionality: + * Handles Config Confirm from RLC UL + * + * @param[in] Pst *pst, Post structure of the primitive. + * @param[in] KwMngmt *cfm, Unpacked primitive info received from RLC UL + * @return ROK - success + * RFAILED - failure + * + ***************************************************************************/ +S16 duProcRlcUlCfgComplete(Pst *pst, KwMngmt *cfm) +{ + S16 ret; + + printf("\nRLC UL Cfg Status %d", cfm->cfm.status); + if (cfm->cfm.status == LCM_PRIM_OK) + { + switch(cfm->hdr.elmId.elmnt) + { + case STGEN: + { + rlcUlCfg |= RLC_GEN_CFG; + break; + } + case STRGUSAP: + { + numRlcMacSaps++; + if(numRlcMacSaps == DEFAULT_CELLS) + { + rlcUlCfg |= RLC_MAC_SAP_CFG; + numRlcMacSaps = 0; + } + break; + } + case STUDXSAP: + { + rlcUlCfg |= RLC_UDX_SAP_CFG; + break; + + } + default: + break; + } + printf("\n RLC UL Cfg Cfm received for the element %d ",cfm->hdr.elmId.elmnt); + if(rlcUlCfg == DU_RLC_UL_CONFIGURED) + { + rlcUlCfg = 0; + numRlcMacSaps = 0; + //Start configuration of RLC DL + duSendRlcDlCfg(); + + } + } + else + { + printf("\nConfig confirm NOK from RLC UL"); + ret = RFAILED; + } + return ret; +} + +/************************************************************************** + * @brief Function to handle Config Confirm from RLC DL + * + * @details + * + * Function : duHdlRlcDlCfgComplete + * + * Functionality: + * Handles Config Confirm from RLC DL + * + * @param[in] Pst *pst, Post structure of the primitive. + * @param[in] KwMngmt *cfm, Unpacked primitive info received from RLC DL + * @return ROK - success + * RFAILED - failure + * + ***************************************************************************/ +S16 duProcRlcDlCfgComplete(Pst *pst, KwMngmt *cfm) +{ + printf("\nRLC DL Cfg Status %d", cfm->cfm.status); + if (cfm->cfm.status == LCM_PRIM_OK) + { + switch(cfm->hdr.elmId.elmnt) + { + case STGEN: + { + rlcDlCfg |= RLC_GEN_CFG; + break; + } + case STRGUSAP: + { + numRlcMacSaps++; + if(numRlcMacSaps == DEFAULT_CELLS) + { + rlcDlCfg |= RLC_MAC_SAP_CFG; + numRlcMacSaps = 0; + } + break; + } + case STUDXSAP: + { + rlcDlCfg |= RLC_UDX_SAP_CFG; + break; + + } + default: + break; + + } + printf("\n RLC DL Cfg Cfm received for the element %d ",cfm->hdr.elmId.elmnt); + if(rlcDlCfg == DU_RLC_DL_CONFIGURED) + { + rlcDlCfg = 0; + //Start configuration of MAC + duSendMacCfg(); + + } + } + else + { + printf("\nConfig confirm NOK from RLC DL"); + } + return ROK; +} + +/************************************************************************** + * @brief Function to send configs to MAC + * + * @details + * + * Function : duSendMacCfg + * + * Functionality: + * Initiates Configs towards MAC layer + * + * @param[in] void + * @return ROK - success + * RFAILED - failure + * + ***************************************************************************/ +S16 duSendMacCfg() +{ + duBuildMacGenCfg(); + duBuildMacUsapCfg(RLC_UL_INST); + duBuildMacUsapCfg(RLC_DL_INST); + + return ROK; +} + +/************************************************************************** + * @brief Function to fill gen config required by MAC + * + * @details + * + * Function : duBuildMacGenCfg + * + * Functionality: + * Initiates general Configs towards MAC + * + * @param[in] void + * @return ROK - success + * RFAILED - failure + * + ***************************************************************************/ +S16 duBuildMacGenCfg() +{ + RgMngmt rgMngmt; + RgGenCfg *genCfg=NULLP; + Pst pst; + + DU_SET_ZERO(&pst, sizeof(Pst)); + DU_SET_ZERO(&rgMngmt, sizeof(RgMngmt)); + + genCfg = &(rgMngmt.t.cfg.s.genCfg); + + /*----------- Fill General Configuration Parameters ---------*/ + genCfg->mem.region = RG_MEM_REGION; + genCfg->mem.pool = RG_POOL; + genCfg->tmrRes = 10; + genCfg->numRguSaps = 2; + + genCfg->lmPst.dstProcId = DU_PROC; + genCfg->lmPst.srcProcId = DU_PROC; + genCfg->lmPst.dstEnt = ENTDUAPP; + genCfg->lmPst.dstInst = 0; + genCfg->lmPst.srcEnt = ENTRG; + genCfg->lmPst.srcInst = macCfgInst; + genCfg->lmPst.prior = PRIOR0; + genCfg->lmPst.route = RTESPEC; + genCfg->lmPst.region = RG_MEM_REGION; + genCfg->lmPst.pool = RG_POOL; + genCfg->lmPst.selector = DU_SELECTOR_LC; + + /* Fill Header */ + rgMngmt.hdr.msgType = TCFG; + rgMngmt.hdr.msgLen = 0; + rgMngmt.hdr.entId.ent = ENTRG; + rgMngmt.hdr.entId.inst = (Inst)0; + rgMngmt.hdr.elmId.elmnt = STGEN; + rgMngmt.hdr.seqNmb = 0; + rgMngmt.hdr.version = 0; + rgMngmt.hdr.transId = 0; + + rgMngmt.hdr.response.prior = PRIOR0; + rgMngmt.hdr.response.route = RTESPEC; + rgMngmt.hdr.response.mem.region = RG_MEM_REGION; + rgMngmt.hdr.response.mem.pool = RG_POOL; + rgMngmt.hdr.response.selector = DU_SELECTOR_LC; + + /* Fill Pst */ + pst.selector = DU_SELECTOR_LC; + pst.srcEnt = ENTDUAPP; + pst.dstEnt = ENTRG; + pst.dstInst = macCfgInst; + pst.dstProcId = DU_PROC; + pst.srcProcId = DU_PROC; + pst.region = duCb.init.region; + + printf("\nMAC Gen Cfg Req sent"); + + /* Send the request to MAC */ + cmPkLrgCfgReq(&pst, &rgMngmt); + + return ROK; +} + +/************************************************************************** + * @brief Function to fill USAP config required by MAC + * + * @details + * + * Function : duBuildMacUsapCfg + * + * Functionality: + * Initiates USAP Configs towards MAC + * + * @param[in] SpId Specifies if RLC UL or RLC DL instance + * @return ROK - success + * RFAILED - failure + * + ***************************************************************************/ +S16 duBuildMacUsapCfg(SpId sapId) +{ + RgMngmt rgMngmt; + RgUpSapCfg *uSap = NULLP; + Pst pst; + + DU_SET_ZERO(&pst, sizeof(Pst)); + DU_SET_ZERO(&rgMngmt, sizeof(RgMngmt)); + + uSap = &(rgMngmt.t.cfg.s.rguSap); + + uSap->mem.region = RG_MEM_REGION; + uSap->mem.pool = RG_POOL; + uSap->suId = 0; + uSap->spId = sapId; + uSap->procId = DU_PROC; + uSap->ent = ENTKW; + uSap->inst = sapId; + uSap->prior = PRIOR0; + uSap->route = RTESPEC; + uSap->selector = DU_SELECTOR_LC ; + + /* fill header */ + rgMngmt.hdr.msgType = TCFG; + rgMngmt.hdr.entId.ent = ENTRG; + rgMngmt.hdr.entId.inst = (Inst)0; + rgMngmt.hdr.elmId.elmnt = STRGUSAP; + rgMngmt.hdr.response.mem.region = RG_MEM_REGION; + rgMngmt.hdr.response.mem.pool = RG_POOL; + + /* fill pst */ + pst.selector = DU_SELECTOR_LC; + pst.srcEnt = ENTDUAPP; + pst.dstEnt = ENTRG; + pst.dstInst = macCfgInst; + pst.dstProcId = DU_PROC; + pst.srcProcId = DU_PROC; + pst.region = duCb.init.region; + + printf("\nMAC Rgu USap Cfg Req sent"); + + /* Send the request to MAC */ + cmPkLrgCfgReq(&pst, &rgMngmt); + + return ROK; +} + +/************************************************************************** + * @brief Function to handle Config Confirm from MAC + * + * @details + * + * Function : duHdlMacCfgComplete + * + * Functionality: + * Handles Gen Config Confirm from MAC + * + * @param[in] Pst *pst, Post structure of the primitive. + * @param[in] RgMngmt *cfm, Unpacked primitive info received from MAC + * @return ROK - success + * RFAILED - failure + * + ***************************************************************************/ +S16 duHdlMacCfgComplete(Pst *pst, RgMngmt *cfm) +{ + S16 ret = ROK; + + if (cfm->cfm.status == LCM_PRIM_OK) + { + switch (cfm->hdr.elmId.elmnt) + { + case STGEN: + { + macCfg |= MAC_GEN_CFG; + break; + } + case STRGUSAP: + { + macCfg |= MAC_SAP_CFG; + numRlcMacSaps++; + break; + } + default: + break; + } + printf("\n MAC Cfg Cfm received for the element %d ",cfm->hdr.elmId.elmnt); + if(macCfg == MAC_CONFIGURED && numRlcMacSaps == MAX_MAC_SAP) + { + macCfg = 0; + printf("\n Completed sending Configs"); + macCfgInst = 0; + duBindUnbindRlcToMacSap(RLC_DL_INST, ABND); + } + + } + else + { + printf("\nConfig confirm NOK from MAC"); + ret = RFAILED; + } + return ret; +} + +/************************************************************************** + * @brief Function to bind/unbind RLC to MAC SAP + * + * @details + * + * Function : duBindUnbindRlcToMacSap + * + * Functionality: + * Initiates Bind/Unbind from RLC to MAC + * + * @param[in] Inst Specifies if RLC UL or RLC DL instance + * @param[in] action Specifies if action is bind or unbind + * @return ROK - success + * RFAILED - failure + * + ***************************************************************************/ +S16 duBindUnbindRlcToMacSap(U8 inst, U8 action) +{ + KwCntrl *cntrl = NULLP; + KwMngmt kwMngmt; + Pst pst; + + TRC2(smBindKwToRguSap) + + DU_SET_ZERO(&kwMngmt, sizeof(KwMngmt)); + DU_SET_ZERO(&pst, sizeof(Pst)); + + if (action == ABND) + { + printf("\nCntrl Req to RLC inst %d to bind MAC sap", inst); + } + else + { + printf("\nCntrl Req to RLC inst %d to unbind MAC sap", inst); + } + cntrl = &(kwMngmt.t.cntrl); + + cntrl->action = action; + cntrl->subAction = DU_ZERO_VAL; + cntrl->s.sapCntrl.suId = macCfgInst; + cntrl->s.sapCntrl.spId = inst; + + /* Fill header */ + kwMngmt.hdr.msgType = TCNTRL; + kwMngmt.hdr.entId.ent = ENTKW; + kwMngmt.hdr.entId.inst = inst; + kwMngmt.hdr.elmId.elmnt = 186; /* ambiguous defines in lkw.h and lrg.h so direct hardcoded*/ + kwMngmt.hdr.response.mem.region = (inst == RLC_UL_INST) ? + RLC_UL_MEM_REGION:RLC_DL_MEM_REGION; + kwMngmt.hdr.response.mem.pool = RLC_POOL; + + /* Fill pst */ + pst.selector = DU_SELECTOR_LC; + pst.srcEnt = ENTDUAPP; + pst.dstEnt = ENTKW; + pst.dstProcId = DU_PROC; + pst.dstInst = inst; + pst.srcProcId = DU_PROC; + pst.region = duCb.init.region; + + cmPkLkwCntrlReq(&pst, &kwMngmt); + + return ROK; +} +/******************************************************************* + * + * @brief Function to start SCTP + * + * @details + * + * Function : duSctpStartReq + * + * Functionality: + * Function to start SCTP + * + * @params[in] + * @return void + * + * ****************************************************************/ +S16 duSctpStartReq() +{ + Pst pst; + Buffer *mBuf; + + cmMemset((U8 *)&(pst), 0, sizeof(Pst)); + pst.srcEnt = (Ent)ENTDUAPP; + pst.srcInst = (Inst)DU_INST; + pst.srcProcId = DU_PROC; + pst.dstEnt = (Ent)ENTSCTP; + pst.dstInst = (Inst)SCTP_INST; + pst.dstProcId = pst.srcProcId; + pst.event = EVTSCTPSTRT; + pst.selector = DU_SELECTOR_LC; + pst.pool= DU_POOL; + if(SGetMsg(DFLT_REGION, DU_POOL, &mBuf) != ROK) + { + printf("\nMemory allocation failed in duReadCfg"); + return RFAILED; + } + SPstTsk(&pst, mBuf); + + RETVALUE(ROK); +} + +/******************************************************************* + * + * @brief Handles SCTP notifications + * + * @details + * + * Function : duSctpNtfyHdl + * + * Functionality: + * Handles SCTP notification + * + * @params[in] Message Buffer + * SCTP notification + * + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ + +S16 duSctpNtfyHdl(Buffer *mBuf, CmInetSctpNotification *ntfy) +{ + char *finalBuf; + int i,j; + + switch(ntfy->header.nType) + { + case CM_INET_SCTP_ASSOC_CHANGE: + switch(ntfy->u.assocChange.state) + { + case CM_INET_SCTP_COMM_UP: + { + printf("\nSCTP communication UP"); + duCb.sctpStatus = TRUE; + //Setup F1-C + if(!duCb.f1Status) + { + /* Build and send F1 Setup response */ + Buffer *f1SetupReq; + MsgLen copyCnt; + + BuildF1SetupReq(); + /* Reversing the encoded string */ + if(SGetSBuf(1, 1, (Data **)&finalBuf, (Size)encBufSize) != ROK) + { + printf("Memory allocation failed"); + RETVALUE(RFAILED); + } + for(i = 0, j = encBufSize-1; i -#include -#include -#include -#include -#include -#include - #include "du_sctp.h" #include "du_common.h" /* Global variable declaration */ -S8 sockFd; /* Socket file descriptor */ +CmInetFd sockFd; /* Socket file descriptor */ U8 socket_type; /* Socket type */ Bool nonblocking; /* Blocking/Non-blocking socket */ Bool connUp; /* Is connection up */ int assocId; /* Assoc Id of connected assoc */ -sockaddr_storage_t local_addr; /* Local Address */ -sockaddr_storage_t remote_addr; /* Remote Address */ -U8 la_len; /* Local Address length */ -U8 ra_len; /* Remote Address length */ +CmInetNetAddrLst localAddrLst; +CmInetNetAddrLst remoteAddrLst; + F1SctpParams *sctpCfg; /* SCTP configurations at DU */ +S16 sctpOutMsgSend(Buffer *mBuf); /************************************************************************** * @brief Task Initiation callback function. @@ -64,11 +57,11 @@ F1SctpParams *sctpCfg; /* SCTP configurations at DU */ ***************************************************************************/ S16 sctpActvInit(Ent entity, Inst inst, Region region, Reason reason) { - sockFd = 0; + SSetProcId(DU_PROC); connUp = FALSE; assocId = 0; nonblocking = FALSE; - sctpCfg = &(ducfgparam.sctpParams); + sctpCfg = &(duCfgParam.sctpParams); return ROK; } @@ -94,150 +87,179 @@ S16 sctpActvInit(Ent entity, Inst inst, Region region, Reason reason) ***************************************************************************/ S16 sctpActvTsk(Pst *pst, Buffer *mBuf) { - -//TODO: TBD + switch(pst->srcEnt) + { + case ENTDUAPP: + { + switch(pst->event) + { + case EVTSCTPSTRT: + { + SPutMsg(mBuf); + sctpAssocReq(); + break; + } + } + break; + } + } + SExitTsk(); return ROK; } /******************************************************************* * - * @brief Converts internet address to sockaddr type + * @brief Opens a non-blocking socket and binds to local address * * @details * - * Function : getSockAddr + * Function : openSctpEndp * * Functionality: - * Converts internet address to sockaddr type + * Opens a non-blocking socket and binds to local address * * @params[in] * @return ROK - success * RFAILED - failure * * ****************************************************************/ - -S16 getSockAddr(char *hostIp, U16 portNum, Bool ipv4Pres, Bool local) +S16 openSctpEndp() { - sockaddr_storage_t address; - struct hostent *host; - void *la_raw; + U8 ret; + U8 numRetry = 0; - /* Getting the transport address for local host name */ - if(ipv4Pres) - { - host = gethostbyname(hostIp); - if (host == NULL || host->h_length < 1) + /* Opening a non-blocking SCTP socket */ + socket_type = CM_INET_STREAM; + + do{ + ret = cmInetSocket(socket_type, &sockFd, IPPROTO_SCTP,(sctpCfg->duIpAddr.ipV4Pres ? CM_INET_IPV4_DOMAIN : CM_INET_IPV6_DOMAIN)); + if (ret != ROK) { - printf("\nBad hostname: %s", hostIp); - RETVALUE(NULLP); + numRetry++; + if(numRetry >= MAX_RETRY) + { + printf("\nAll attempts to open socket failed."); + /* Send indication to du_app */ + RETVALUE(RFAILED); + } + else + { + printf("\nRetrying socket opening"); + } } - la_raw = &address.v4.sin_addr; - address.v4.sin_family = AF_INET; - address.v4.sin_port = htons(portNum); - } - else - { - host = gethostbyname2(hostIp, AF_INET6); - if (host == NULL || host->h_length < 1) + else { - printf("\n Bad hostname: %s", hostIp); - RETVALUE(RFAILED); + printf("\nSocket[%d] opened successfully",sockFd.fd); + break; } - la_raw = &address.v6.sin6_addr; - address.v6.sin6_family = AF_INET6; - address.v6.sin6_port = htons(portNum); - address.v6.sin6_scope_id = 0; - } + }while(numRetry < MAX_RETRY); - memcpy((U8 *)la_raw, (U8 *)host->h_addr_list[0], host->h_length); - - if(local) + RETVALUE(ROK); +} /* End of openSctpEndp */ + + +/******************************************************************* + * + * @brief Bind socket to local Ip address and port + * + * @details + * + * Function : bindSctpEndp + * + * Functionality: + * -Bind socket to local Ip address and port + * + * @params[in] + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +S16 bindSctpEndp() +{ + + U8 ret; + U8 numRetry = 0; + + /* Binding the socket with local address */ + localAddrLst.count = 1; + if(sctpCfg->duIpAddr.ipV4Pres) { - local_addr = address; + localAddrLst.addrs[0].type = CM_INET_IPV4ADDR_TYPE; + localAddrLst.addrs[0].u.ipv4NetAddr = CM_INET_NTOH_U32(sctpCfg->duIpAddr.ipV4Addr); } - else + else if(sctpCfg->duIpAddr.ipV6Pres) { - remote_addr = address; + localAddrLst.addrs[0].type = CM_INET_IPV6ADDR_TYPE; + // CM_INET_COPY_IPV6ADDR(&(localAddrLst.addrs[0].u.ipv6NetAddr),&(sctpCfg->duIpAddr.ipV6Addr); } + else + { + localAddrLst.addrs[0].type = CM_INET_IPV4ADDR_TYPE; + localAddrLst.addrs[0].u.ipv4NetAddr = 0; + } - RETVALUE(ROK); -} /* End of getSockAddr() */ + do{ + ret = cmInetSctpBindx(&sockFd, &localAddrLst, sctpCfg->duPort); + if (ret != ROK) + { + numRetry++; + if(numRetry >= MAX_RETRY) + { + printf("\nAll attempts to bind socket failed."); + cmInetClose(&sockFd); + /* Send indication to du_app */ + RETVALUE(RFAILED); + } + else + { + printf("\nRetrying socket binding"); + } + } + else + { + printf("\nSocket bind successful"); + break; + } + }while(numRetry < MAX_RETRY); + + RETVALUE(ROK); + +} /* End of bindSctpEndp() */ /******************************************************************* * - * @brief Opens a non-blocking socket and binds to local address + * @brief Sets socket options as per requirement * * @details * - * Function : openSctpEndp + * Function : sctpSetSockOpts * - * Functionality: - * Opens a non-blocking socket and binds to local address + * Functionality: + * Sets socket options as per requirement * * @params[in] * @return ROK - success * RFAILED - failure * * ****************************************************************/ -S16 openSctpEndp() +S16 sctpSetSockOpts() { - sa_family_t la_family; - U8 error; - - - /* Getting the transport address for local host name */ - if(sctpCfg->duIpAddr.ipV4Pres) - { - if(getSockAddr(sctpCfg->duIpAddr.ipV4Addr, sctpCfg->duPort, TRUE, TRUE) != ROK ) - { - printf("\nUnable to get local address"); - RETVALUE(RFAILED); - } - la_family = AF_INET; - } - else - { - if(getSockAddr(sctpCfg->duIpAddr.ipV6Addr, sctpCfg->duPort, FALSE, TRUE) != ROK ) - { - printf("\nUnable to get local address"); - RETVALUE(RFAILED); - } - la_family = AF_INET6; - } - - socket_type = SOCK_STREAM; - - /* Creating new end point */ - sockFd = socket(la_family, socket_type, IPPROTO_SCTP); - if (sockFd < 0) - { - printf("\n Failed to create socket %s", strerror(errno)); - RETVALUE(RFAILED); - } - - /* Binding socket to local address and port */ - error = bind(sockFd, &local_addr.sa, la_len); - if(error != 0) - { - printf("\n Failed to bind to socket. Error [%s]", strerror(errno)); - RETVALUE(RFAILED); - } - - /* Setting socket as non-blocking*/ - error = fcntl(sockFd, F_SETFL, O_NONBLOCK); - if (error != 0) - { - printf("\n Failed to set socket as non blocking. Error [%s]", strerror(errno)); - RETVALUE(RFAILED); - } - else - { - nonblocking = TRUE; - } - - RETVALUE(ROK); + CmSctpEvent sctpEvent; + + sctpEvent.dataIoEvent = TRUE; + sctpEvent.associationEvent = TRUE; + sctpEvent.addressEvent = TRUE; + sctpEvent.sendFailureEvent = TRUE; + sctpEvent.peerErrorEvent = TRUE; + sctpEvent.shutdownEvent = TRUE; + sctpEvent.partialDeliveryEvent = TRUE; + sctpEvent.adaptationLayerEvent = TRUE; + + cmInetSetOpt(&sockFd, CM_SOCKOPT_LEVEL_SCTP, CM_SOCKOPT_OPT_SCTP_EVENTS, &sctpEvent); + RETVALUE(ROK); -} /* End of openSctpEndp() */ + RETVALUE(ROK); +} /******************************************************************* * @@ -258,170 +280,202 @@ S16 openSctpEndp() * ****************************************************************/ S16 sctpConnect() { - U8 error; U8 ret; + U8 numRetry = 0; + CmInetNetAddr primDstAddr; /* primary destination address */ - /* Getting the transport address for remote host name */ + /* Filling primary destination address */ if(sctpCfg->cuIpAddr.ipV4Pres) { - ret = getSockAddr(sctpCfg->cuIpAddr.ipV4Addr, sctpCfg->cuPort, TRUE, FALSE); + primDstAddr.type = CM_INET_IPV4ADDR_TYPE; + primDstAddr.u.ipv4NetAddr = CM_INET_NTOH_U32(sctpCfg->cuIpAddr.ipV4Addr); } - else + else if(sctpCfg->cuIpAddr.ipV6Pres) { - ret = getSockAddr(sctpCfg->cuIpAddr.ipV6Addr, sctpCfg->cuPort, FALSE, FALSE); + primDstAddr.type = CM_INET_IPV6ADDR_TYPE; + //CM_INET_COPY_IPV6ADDR(&(primDstAddr.u.ipv6NetAddr),&(sctpCfg->cuIpAddr.ipV6Addr); } - if(ret != ROK) + else { - printf("\nUnable to get remote address"); - RETVALUE(RFAILED); + primDstAddr.type = CM_INET_IPV4ADDR_TYPE; + primDstAddr.u.ipv4NetAddr = 0; } - /* Initiating connection establishment with remote */ - if(!connUp) + /* Filling destination address list */ + remoteAddrLst.count = 1; + if(sctpCfg->cuIpAddr.ipV4Pres) + { + remoteAddrLst.addrs[0].type = CM_INET_IPV4ADDR_TYPE; + remoteAddrLst.addrs[0].u.ipv4NetAddr = CM_INET_NTOH_U32(sctpCfg->cuIpAddr.ipV4Addr); + } + else if(sctpCfg->cuIpAddr.ipV6Pres) + { + remoteAddrLst.addrs[0].type = CM_INET_IPV6ADDR_TYPE; + //CM_INET_COPY_IPV6ADDR(&(remoteAddrLst.addrs[0].u.ipv6NetAddr),&(sctpCfg->cuIpAddr.ipV6Addr); + } + else { - error = sctp_connectx(sockFd, &remote_addr.sa, 1, &assocId); - if(error != 0) + remoteAddrLst.addrs[0].type = CM_INET_IPV4ADDR_TYPE; + remoteAddrLst.addrs[0].u.ipv4NetAddr = 0; + } + + /* Sending connect request to remote */ + do{ + ret = cmInetSctpConnectx(&sockFd, &primDstAddr, &remoteAddrLst, sctpCfg->cuPort); + if (ret == RFAILED || ret == ROKDNA || ret == RCLOSED) + { + numRetry++; + if(numRetry >= MAX_RETRY) + { + printf("\nAll attempts to connect failed."); + cmInetClose(&sockFd); + /* Send indication to du_app */ + RETVALUE(RFAILED); + } + else + { + printf("\nRetrying connection"); + } + } + else if(ret == RINPROGRESS) { - printf("\nError connecting to peer. Error[%s]", strerror(errno)); - RETVALUE(RFAILED); + printf("\nConnection in progess"); + break; } else { - /* Mark SCTP connection UP */ connUp = TRUE; + printf("\nSCTP connect successful"); + break; } - } + }while(numRetry < MAX_RETRY); RETVALUE(ROK); }/* End of sctpConnect() */ /******************************************************************* * - * @brief Handles an incoming message + * @brief Post received data/notification to DU APP * * @details * - * Function : sctpInmsgHdlr + * Function : sendToDuApp * * Functionality: - * Handles an incoming message + * Post received data/notification to DU APP * - * @params[in] Socket file descriptor - * Incoming message header - * Message Length + * @params[in] Message buffer + * Message event * * @return ROK - success * RFAILED - failure * * ****************************************************************/ -S16 sctpInmsgHdlr(struct msghdr *msg, size_t msgLen) +void sendToDuApp(Buffer *mBuf, Event event) { - sctp_cmsg_data_t *data; - struct cmsghdr *cmsg; - union sctp_notification *sn; - Buffer *mBuf; - Pst *pst; - - for (cmsg = CMSG_FIRSTHDR(msg); cmsg != NULL; cmsg = CMSG_NXTHDR(msg, cmsg)) + Pst pst; + printf("\nForwarding received message to duApp"); + SPrntMsg(mBuf, 0, 0); + + + cmMemset((U8 *)&(pst), 0, sizeof(Pst)); + pst.srcEnt = (Ent)ENTSCTP; + pst.srcInst = (Inst)SCTP_INST; + pst.srcProcId = DU_PROC; + pst.dstEnt = (Ent)ENTDUAPP; + pst.dstInst = (Inst)DU_INST; + pst.dstProcId = pst.srcProcId; + pst.event = event; + pst.selector = DU_SELECTOR_LC; + pst.pool= DU_POOL; + pst.region = DFLT_REGION; + + if (SPstTsk(&pst, mBuf) != ROK) { - data = (sctp_cmsg_data_t *)CMSG_DATA(cmsg); + printf("\nSPstTsk failed in duReadCfg"); + // return RFAILED; } +} - printf("\nReceived Message"); +/******************************************************************* + * + * @brief Handles an SCTP notification message + * + * @Sending * + * Function : sctpNtfyHdlr + * + * Functionality: + * Handles an SCTP notification message + * + * @params[in] Notify message + * + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +S16 sctpNtfyHdlr(CmInetSctpNotification *ntfy) +{ - /* if incoming message is data */ - if (!(MSG_NOTIFICATION & msg->msg_flags)) + switch(ntfy->header.nType) { - /* Extract message */ - U8 index = 0; - char *recvBuf; - char *temp = recvBuf; - U8 len = msgLen; - U8 temp_len; - U8 i; - - while( msgLen > 0) - { - temp = msg->msg_iov[index].iov_base; - temp_len = msg->msg_iov[index].iov_len; - - if(temp_len > msgLen) + case CM_INET_SCTP_ASSOC_CHANGE : + switch(ntfy->u.assocChange.state) { - temp[(temp_len = msgLen) - 1] = '\0'; - } - - if((msgLen -= temp_len) > 0) - { - index++; - } - for (i = 0; i < temp_len-1 ; ++i) - { - if (!isprint(temp[i])) - temp[i] = '.'; - } - printf("\nPrinting temp %s", temp); - temp = temp + temp_len; - index++; - } - recvBuf[len - 1] = '\0'; - printf("\n Message: %s temp %s", recvBuf, temp); - - /* Post received message to du_App */ - if(SGetMsg(0, 0, &mBuf) == ROK ) - { - if(SAddPstMsgMult((Data *)recvBuf, len, mBuf) == ROK) - { - pst->dstProcId; - pst->srcProcId; - pst->dstEnt = ENTDUAPP; - pst->dstInst = 0; - pst->srcEnt = ENTSCTP; - pst->srcInst = 0; - pst->prior; - pst->route; - pst->event = EVTSCTPUP; - pst->region = 0; - pst->pool = 0; - pst->selector = 0; - pst->intfVer; - - SPstTsk(pst, mBuf); + case CM_INET_SCTP_COMM_UP: + printf("\nSCTP notify assocchange(comm up) received"); + connUp = TRUE; + break; + case CM_INET_SCTP_COMM_LOST: + printf("\nSCTP notify assocchange(comm lost) received"); + connUp = FALSE; + break; + case CM_INET_SCTP_RESTART: + printf("\nSCTP notify assocchange(sctp restart) received"); + connUp = FALSE; + break; + case CM_INET_SCTP_SHUTDOWN_COMP: /* association gracefully shutdown */ + printf("\nSCTP notify assocchange(shutdown complete) received\n"); + connUp = FALSE; + break; + case CM_INET_SCTP_CANT_STR_ASSOC: + printf("\nSCTP notify assocchange(cant str assoc) received\n"); + connUp = FALSE; + break; + default: + printf("\nInvalid event"); + break; } - } - - + break; + case CM_INET_SCTP_PEER_ADDR_CHANGE : + printf("\nSCTP notify peer addr change received"); + /* Need to add handler */ + break; + case CM_INET_SCTP_REMOTE_ERROR : + printf("\nSCTP notify remote error received"); + break; + case CM_INET_SCTP_SEND_FAILED : + printf("\nSCTP notify send failed received\n"); + break; + case CM_INET_SCTP_SHUTDOWN_EVENT : /* peer socket gracefully closed */ + printf("\nSCTP notify shutdown event received\n"); + connUp = FALSE; + break; + case CM_INET_SCTP_ADAPTATION_INDICATION : + printf("\nSCTP notify adaptation indication received\n"); + break; + case CM_INET_SCTP_PARTIAL_DELIVERY_EVENT: + printf("\nSCTP notify partial delivery received\n"); + break; + default: + printf("\nInvalid sctp notification type\n"); + break; } - else /* If the incoming message is notification */ - { - /* Extract and perform necessary action - Change the connUp state accordingly */ - union sctp_notification *notify; - notify = (union sctp_notification *)msg->msg_iov->iov_base; - - if (SCTP_ASSOC_CHANGE != notify->sn_header.sn_type) - { - printf("\nReceived unexpected notification: %d", notify->sn_header.sn_type); - RETVALUE(RFAILED); - } - switch(notify->sn_assoc_change.sac_state) - { - case SCTP_COMM_UP: - printf("Received SCTP_COMM_UP\n"); - break; - case SCTP_COMM_LOST: - printf("Received SCTP_COMM_LOST\n"); - break; - case SCTP_RESTART: - printf("Received SCTP_RESTART\n"); - break; - case SCTP_SHUTDOWN_COMP: - printf("Received SCTP_SHUTDOWN_COMP\n"); - break; - case SCTP_CANT_STR_ASSOC: - printf("Received SCTP_CANT_STR_ASSOC\n"); - break; - } + /* Pack notification and send to APP */ + if(cmPkSctpNtfy(ntfy) != ROK) + { + printf("\nFailed to pack SCTP notification"); + RETVALUE(RFAILED); } RETVALUE(ROK); } @@ -444,64 +498,70 @@ S16 sctpInmsgHdlr(struct msghdr *msg, size_t msgLen) * ****************************************************************/ S16 sctpSockPoll() { - U8 error; - struct msghdr inmessage; - struct iovec iov; - char incmsg[CMSG_SPACE(sizeof(_sctp_cmsg_data_t))]; - sockaddr_storage_t msgname; - - /* Initialize inmessage with enough space for DATA... */ - memset(&inmessage, 0, sizeof(inmessage)); - if ((iov.iov_base = malloc(REALLY_BIG)) == NULL) + U8 ret; + S16 numFds; + CmInetFdSet readFd; + U16 port; + U32 timeout; /* timeout for cmInetSelect() */ + U32 *timeoutPtr; /* pointer to timeout */ + U32 flag; + Buffer *mBuf; + MsgLen bufLen; + CmInetMemInfo memInfo; /* buffer allocation info */ + CmInetNetAddr addr; + CmInetSctpSndRcvInfo info; + CmInetSctpNotification ntfy; + + if (sockFd.blocking) { - printf("\n malloc not enough memory!!!"); - close(sockFd); - connUp = FALSE; - RETVALUE(RFAILED); + /* blocking */ + timeoutPtr = NULLP; } - iov.iov_len = REALLY_BIG; - inmessage.msg_iov = &iov; - inmessage.msg_iovlen = 1; - /* or a control message. */ - inmessage.msg_control = incmsg; - inmessage.msg_controllen = sizeof(incmsg); - inmessage.msg_name = &msgname; - inmessage.msg_namelen = sizeof(msgname); - - while (connUp) + else { - error = recvmsg(sockFd, &inmessage, MSG_WAITALL); - if (error < 0) + /* non-blocking */ + timeout = 0; + timeoutPtr = &timeout; + } + memInfo.region = DU_APP_MEM_REGION; + memInfo.pool = DU_POOL; + CM_INET_FD_ZERO(&readFd); + + while(1) + { + CM_INET_FD_SET(&sockFd, &readFd); + ret = cmInetSelect(&readFd, NULLP, timeoutPtr, &numFds); + if (CM_INET_FD_ISSET(&sockFd, &readFd)) { - if (nonblocking && (EAGAIN == errno)) + CM_INET_FD_CLR(&sockFd, &readFd); + ret = cmInetSctpRecvMsg(&sockFd, &addr, &port, &memInfo, &mBuf, &bufLen, &info, &flag, &ntfy); + if (connUp && ret != ROK) { - error = 0; - continue; + printf("\nFailed to receive sctp msg\n"); } - if (socket_type == SOCK_STREAM) + else { - if (ENOTCONN != errno) + /* If SCTP notification received */ + if ((flag & CM_INET_SCTP_MSG_NOTIFICATION) != 0) { - break; + ret = sctpNtfyHdlr(&ntfy); + if(ret != ROK) + { + printf("\nFailed to process sctp notify msg\n"); + } + } + else if(connUp) /* If data received */ + { + sendToDuApp(mBuf, EVTSCTPDATA); + } + else + { + SPutMsg(mBuf); } - printf("No association is present now!!\n"); - close(sockFd); - sockFd = 0; - connUp = FALSE; - } - break; + } } - - sctpInmsgHdlr(&inmessage, error); - - inmessage.msg_control = incmsg; - inmessage.msg_controllen = sizeof(incmsg); - inmessage.msg_name = &msgname; - inmessage.msg_namelen = sizeof(msgname); - iov.iov_len = REALLY_BIG; + }; - }/* End of while(connUp) */ - RETVALUE(ROK); }/* End of sctpSockPoll() */ @@ -521,49 +581,43 @@ S16 sctpSockPoll() * RFAILED - failure * * ****************************************************************/ -S16 sctpOutMsgSend(char *message, U8 msglen) +S16 sctpOutMsgSend(Buffer *mBuf) { - struct msghdr outmsg; - struct iovec iov; - int error = 0; - - do{ - if(connUp && msglen != 0) - { - iov.iov_base = message; - iov.iov_len = msglen; + U8 ret; + MsgLen len; /* number of actually sent octets */ + CmInetNetAddr peerAddr; /* destination port address */ + CmInetNetAddr *dstAddr; + CmInetMemInfo memInfo; - outmsg.msg_iov = &iov; - outmsg.msg_iovlen = 1; - outmsg.msg_control = NULL; - outmsg.msg_controllen = 0; - outmsg.msg_name = &remote_addr; - outmsg.msg_namelen = ra_len; - outmsg.msg_flags = 0; - - error = sendmsg(sockFd, &outmsg, 0); - } - - if(error != msglen) - { - if(nonblocking && EAGAIN == errno) - { - continue; - } - else - { - printf("\n Error [%s] while sending message on SCTP assoc", strerror(errno)); - RETVALUE(RFAILED); - } - } - else - { - break; - } - }while(error != msglen); + memInfo.region = DU_APP_MEM_REGION; + memInfo.pool = DU_POOL; - RETVALUE(ROK); + if(sctpCfg->cuIpAddr.ipV4Pres) + { + peerAddr.type = CM_INET_IPV4ADDR_TYPE; + peerAddr.u.ipv4NetAddr = CM_INET_NTOH_U32(sctpCfg->cuIpAddr.ipV4Addr); + dstAddr = &peerAddr; + } + else if(sctpCfg->cuIpAddr.ipV6Pres) + { + peerAddr.type = CM_INET_IPV6ADDR_TYPE; + //CM_INET_COPY_IPV6ADDR(&(primDstAddr.u.ipv6NetAddr),&(sctpCfg->cuIpAddr.ipV6Addr); + dstAddr = &peerAddr; + } + else + { + dstAddr = NULLP; + } + + ret = cmInetSctpSendMsg(&sockFd, dstAddr, sctpCfg->cuPort, &memInfo, mBuf, &len, 0, FALSE, 0, 0/*SCT_PROTID_NONE*/, RWOULDBLOCK); + if(ret != ROK && ret != RWOULDBLOCK) + { + printf("\nFailed sending the message"); + RETVALUE(RFAILED); + } + + RETVALUE(ROK); } /* End of sctpOutMsgSend */ /******************************************************************* @@ -583,37 +637,27 @@ S16 sctpOutMsgSend(char *message, U8 msglen) * RFAILED - failure * * ****************************************************************/ - void sctpAssocReq() -{ - /* Open SCTP socket and bind to local address */ +{ if(openSctpEndp() != ROK) { - printf("\nFailed while opening SCTP endpoint"); - if(sockFd > 0 ) - { - close(sockFd); - sockFd = 0; - } - /* TODO : Send Assoc establishment failure to du_app if needed*/ + printf("\nFailed while opening socket"); + } + else if(bindSctpEndp() != ROK) + { + printf("\nFailed while binding socket"); } - else if(sctpConnect() != ROK) /* send connection request */ + else if(sctpSetSockOpts() != ROK) + { + printf("\nFailed while setting socket options"); + } + else if(sctpConnect() != ROK) { printf("\nFailed while connecting to peer"); - close(sockFd); - sockFd = 0; - assocId = 0; - nonblocking = FALSE; - /* TODO : Send Assoc establishment failure to du_app */ } - else + else if(sctpSockPoll() != ROK) { - /* Send AssocCfm to du_app */ - if(sctpSockPoll() != ROK) - { - printf("\nFailed while polling"); - /* Send failure to du_app */ - } + printf("\nFailed while polling"); } } /* End of sctpAssocReq */ diff --git a/src/du_app/du_sctp.h b/src/du_app/du_sctp.h index efdffc36b..f9efaf50f 100644 --- a/src/du_app/du_sctp.h +++ b/src/du_app/du_sctp.h @@ -21,32 +21,24 @@ #ifndef __DU_SCTP_H__ #define __DU_SCTP_H__ -#include -#include #include "du_mgr.h" +#include "cm_inet.h" +#include "cm_tpt.h" + +#include "cm_inet.x" +#include "cm_tpt.x" S16 sctpActvInit(Ent entity, Inst inst, Region region, Reason reason); S16 sctpActvTsk(Pst *pst, Buffer *mBuf); +void sctpAssocReq(); +void sendToDuApp(Buffer *mBuf, Event event); +S16 sctpOutMsgSend(Buffer *mBuf); +typedef S16 (*SctpNtfy) ARGS((Buffer *mBuf, CmInetSctpNotification *ntfy)); + +S16 cmPkSctpNtfy(CmInetSctpNotification *ntfy); +S16 cmUnpkSctpNtfy(SctpNtfy func, Pst *pst, Buffer *mBuf); -#define REALLY_BIG 65536 - -/* Convenience structure to determine space needed for cmsg. */ -typedef union -{ - struct sctp_initmsg init; - struct sctp_sndrcvinfo sndrcvinfo; -}_sctp_cmsg_data_t; - -#define CMSG_SPACE_INITMSG (CMSG_SPACE(sizeof(struct sctp_initmsg))) -#define CMSG_SPACE_SNDRCV (CMSG_SPACE(sizeof(struct sctp_sndrcvinfo))) - -typedef union -{ - struct sockaddr_storage ss; - struct sockaddr_in v4; - struct sockaddr_in6 v6; - struct sockaddr sa; -} sockaddr_storage_t; +#define MAX_RETRY 5 #endif diff --git a/src/du_app/du_utils.c b/src/du_app/du_utils.c index da5a29b02..3d8b86349 100644 --- a/src/du_app/du_utils.c +++ b/src/du_app/du_utils.c @@ -28,14 +28,14 @@ #define DU_INST 0 #define DU_ID 1 -#define DU_IP_V4_ADDR "168.168.31.12" -#define CU_IP_V4_ADDR "168.168.31.57" +#define DU_IP_V4_ADDR "10.0.2.20" +#define CU_IP_V4_ADDR "10.0.2.25" #define DU_IP_V6_ADDR "0000:0000:0000:0000:0000:0000:0000:0001" #define DU_PORT 38472 #define CU_PORT 38472 #define NR_PCI 1 #define NR_CELL_ID 1 -#define DU_NAME "Oran_OAM_DU" +#define DU_NAME "ORAN_OAM_DU" #define CELL_DIR UL_DL #define CELL_TYPE SMALL #define DUPLEX_MODE DUP_MODE_TDD @@ -80,9 +80,6 @@ #define TDD_PERIODICITY TX_PRDCTY_MS_2P5 #define RSS_MEASUREMENT_UNIT DONT_REPORT_RSSI -extern DuCfgParams ducfgparam; - - /* Filling Slot configuration as : * Slot Sym 0 Sym 1 Sym 2 Sym 3 Sym 4 Sym 5 Sym 6 Sym 7 Sym 8 Sym 9 Sym10 Sym11 Sym12 Sym13 * 0 DL DL DL DL DL DL DL DL DL DL DL DL DL DL @@ -107,8 +104,6 @@ extern DuCfgParams ducfgparam; * RFAILED - failure * * ****************************************************************/ - - void fillSlotConfig() { U8 slot; @@ -117,19 +112,19 @@ void fillSlotConfig() for(slot = 0; slot <= 3; slot++) { for(symbol = 0; symbol < MAX_SYMB_PER_SLOT; symbol++) - ducfgparam.clCellCfg.tddCfg.slotCfg[slot][symbol] = DL_SLOT; + duCfgParam.clCellCfg.tddCfg.slotCfg[slot][symbol] = DL_SLOT; } - ducfgparam.clCellCfg.tddCfg.slotCfg[3][10] = GUARD_SLOT; - ducfgparam.clCellCfg.tddCfg.slotCfg[3][11] = GUARD_SLOT; - ducfgparam.clCellCfg.tddCfg.slotCfg[3][12] = GUARD_SLOT; - ducfgparam.clCellCfg.tddCfg.slotCfg[3][13] = UL_SLOT; + duCfgParam.clCellCfg.tddCfg.slotCfg[3][10] = GUARD_SLOT; + duCfgParam.clCellCfg.tddCfg.slotCfg[3][11] = GUARD_SLOT; + duCfgParam.clCellCfg.tddCfg.slotCfg[3][12] = GUARD_SLOT; + duCfgParam.clCellCfg.tddCfg.slotCfg[3][13] = UL_SLOT; for(symbol = 0; symbol < MAX_SYMB_PER_SLOT; symbol++) - ducfgparam.clCellCfg.tddCfg.slotCfg[4][symbol] = UL_SLOT; + duCfgParam.clCellCfg.tddCfg.slotCfg[4][symbol] = UL_SLOT; } - + /******************************************************************* * * @brief Reads the CL Configuration. @@ -150,91 +145,97 @@ void fillSlotConfig() /* This function is used to fill up the cell configuration for CL */ -void readClCfg() +S16 readClCfg() { - ducfgparam.clCellCfg.carrierId = CARRIER_IDX; + duCfgParam.clCellCfg.carrierId = CARRIER_IDX; /* Cell configuration */ - ducfgparam.clCellCfg.cellId = NR_CELL_ID; - ducfgparam.clCellCfg.phyCellId = NR_PCI; - ducfgparam.clCellCfg.dupType = DUPLEX_MODE; + duCfgParam.clCellCfg.cellId = NR_CELL_ID; + duCfgParam.clCellCfg.phyCellId = NR_PCI; + duCfgParam.clCellCfg.dupType = DUPLEX_MODE; /* DL carrier configuration */ - ducfgparam.clCellCfg.dlCarrCfg.pres = TRUE; - ducfgparam.clCellCfg.dlCarrCfg.bw = SUL_ARFCN; - ducfgparam.clCellCfg.dlCarrCfg.freq = NR_ARFCN; - ducfgparam.clCellCfg.dlCarrCfg.k0[0] = 1; - ducfgparam.clCellCfg.dlCarrCfg.k0[1] = 1; - ducfgparam.clCellCfg.dlCarrCfg.k0[2] = 1; - ducfgparam.clCellCfg.dlCarrCfg.k0[3] = 1; - ducfgparam.clCellCfg.dlCarrCfg.k0[4] = 1; - ducfgparam.clCellCfg.dlCarrCfg.gridSize[0] = 1; - ducfgparam.clCellCfg.dlCarrCfg.gridSize[1] = 1; - ducfgparam.clCellCfg.dlCarrCfg.gridSize[2] = 1; - ducfgparam.clCellCfg.dlCarrCfg.gridSize[3] = 1; - ducfgparam.clCellCfg.dlCarrCfg.gridSize[4] = 1; - ducfgparam.clCellCfg.dlCarrCfg.numAnt = NUM_TX_ANT; + duCfgParam.clCellCfg.dlCarrCfg.pres = TRUE; + duCfgParam.clCellCfg.dlCarrCfg.bw = SUL_ARFCN; + duCfgParam.clCellCfg.dlCarrCfg.freq = NR_ARFCN; + duCfgParam.clCellCfg.dlCarrCfg.k0[0] = 1; + duCfgParam.clCellCfg.dlCarrCfg.k0[1] = 1; + duCfgParam.clCellCfg.dlCarrCfg.k0[2] = 1; + duCfgParam.clCellCfg.dlCarrCfg.k0[3] = 1; + duCfgParam.clCellCfg.dlCarrCfg.k0[4] = 1; + duCfgParam.clCellCfg.dlCarrCfg.gridSize[0] = 1; + duCfgParam.clCellCfg.dlCarrCfg.gridSize[1] = 1; + duCfgParam.clCellCfg.dlCarrCfg.gridSize[2] = 1; + duCfgParam.clCellCfg.dlCarrCfg.gridSize[3] = 1; + duCfgParam.clCellCfg.dlCarrCfg.gridSize[4] = 1; + duCfgParam.clCellCfg.dlCarrCfg.numAnt = NUM_TX_ANT; /* UL Carrier configuration */ - ducfgparam.clCellCfg.ulCarrCfg.pres = TRUE; - ducfgparam.clCellCfg.ulCarrCfg.bw = SUL_ARFCN; - ducfgparam.clCellCfg.ulCarrCfg.freq = NR_ARFCN; - ducfgparam.clCellCfg.ulCarrCfg.k0[0] = 1; - ducfgparam.clCellCfg.ulCarrCfg.k0[1] = 1; - ducfgparam.clCellCfg.ulCarrCfg.k0[2] = 1; - ducfgparam.clCellCfg.ulCarrCfg.k0[3] = 1; - ducfgparam.clCellCfg.ulCarrCfg.k0[4] = 1; - ducfgparam.clCellCfg.ulCarrCfg.gridSize[0] = 1; - ducfgparam.clCellCfg.ulCarrCfg.gridSize[1] = 1; - ducfgparam.clCellCfg.ulCarrCfg.gridSize[2] = 1; - ducfgparam.clCellCfg.ulCarrCfg.gridSize[3] = 1; - ducfgparam.clCellCfg.ulCarrCfg.gridSize[4] = 1; - ducfgparam.clCellCfg.ulCarrCfg.numAnt = NUM_RX_ANT; - - ducfgparam.clCellCfg.freqShft = FREQ_SHIFT_7P5KHZ; + duCfgParam.clCellCfg.ulCarrCfg.pres = TRUE; + duCfgParam.clCellCfg.ulCarrCfg.bw = SUL_ARFCN; + duCfgParam.clCellCfg.ulCarrCfg.freq = NR_ARFCN; + duCfgParam.clCellCfg.ulCarrCfg.k0[0] = 1; + duCfgParam.clCellCfg.ulCarrCfg.k0[1] = 1; + duCfgParam.clCellCfg.ulCarrCfg.k0[2] = 1; + duCfgParam.clCellCfg.ulCarrCfg.k0[3] = 1; + duCfgParam.clCellCfg.ulCarrCfg.k0[4] = 1; + duCfgParam.clCellCfg.ulCarrCfg.gridSize[0] = 1; + duCfgParam.clCellCfg.ulCarrCfg.gridSize[1] = 1; + duCfgParam.clCellCfg.ulCarrCfg.gridSize[2] = 1; + duCfgParam.clCellCfg.ulCarrCfg.gridSize[3] = 1; + duCfgParam.clCellCfg.ulCarrCfg.gridSize[4] = 1; + duCfgParam.clCellCfg.ulCarrCfg.numAnt = NUM_RX_ANT; + + duCfgParam.clCellCfg.freqShft = FREQ_SHIFT_7P5KHZ; /* SSB configuration */ - ducfgparam.clCellCfg.ssbCfg.ssbPbchPwr = SSB_PBCH_PWR; - ducfgparam.clCellCfg.ssbCfg.bchPayload = BCH_PAYLOAD; - ducfgparam.clCellCfg.ssbCfg.scsCmn = SUBCARRIER_SPACING; - ducfgparam.clCellCfg.ssbCfg.ssbPrbOffset = PRB_OFFSET; - ducfgparam.clCellCfg.ssbCfg.betaPss = BETA_PSS; - ducfgparam.clCellCfg.ssbCfg.ssbPeriod = SSB_PERIODICITTY; - ducfgparam.clCellCfg.ssbCfg.ssbSubcOffset = SSB_SUBCARRIER_OFFSET; - ducfgparam.clCellCfg.ssbCfg.mibPdu = 104; - ducfgparam.clCellCfg.ssbCfg.nSSBMask[0] = 2162721; - ducfgparam.clCellCfg.ssbCfg.nSSBMask[1] = 0; - ducfgparam.clCellCfg.ssbCfg.multCarrBand = SSB_MULT_CARRIER_BAND; - ducfgparam.clCellCfg.ssbCfg.multCellCarr = MULT_CELL_CARRIER; + duCfgParam.clCellCfg.ssbCfg.ssbPbchPwr = SSB_PBCH_PWR; + duCfgParam.clCellCfg.ssbCfg.bchPayload = BCH_PAYLOAD; + duCfgParam.clCellCfg.ssbCfg.scsCmn = SUBCARRIER_SPACING; + duCfgParam.clCellCfg.ssbCfg.ssbPrbOffset = PRB_OFFSET; + duCfgParam.clCellCfg.ssbCfg.betaPss = BETA_PSS; + duCfgParam.clCellCfg.ssbCfg.ssbPeriod = SSB_PERIODICITTY; + duCfgParam.clCellCfg.ssbCfg.ssbSubcOffset = SSB_SUBCARRIER_OFFSET; + duCfgParam.clCellCfg.ssbCfg.mibPdu = 104; + duCfgParam.clCellCfg.ssbCfg.nSSBMask[0] = 2162721; + duCfgParam.clCellCfg.ssbCfg.nSSBMask[1] = 0; + duCfgParam.clCellCfg.ssbCfg.multCarrBand = SSB_MULT_CARRIER_BAND; + duCfgParam.clCellCfg.ssbCfg.multCellCarr = MULT_CELL_CARRIER; /* PRACH configuration */ - ducfgparam.clCellCfg.prachCfg.pres = TRUE; - ducfgparam.clCellCfg.prachCfg.prachSeqLen = PRACH_SEQ_LEN; - ducfgparam.clCellCfg.prachCfg.prachSubcSpacing = PRACH_SUBCARRIER_SPACING; - ducfgparam.clCellCfg.prachCfg.prachRstSetCfg = PRACH_RESTRICTED_SET_CFG; - ducfgparam.clCellCfg.prachCfg.prachFdm = NUM_PRACH_FDM; - ducfgparam.clCellCfg.prachCfg.fdm[0].rootSeqIdx = ROOT_SEQ_IDX; - ducfgparam.clCellCfg.prachCfg.fdm[0].numRootSeq = NUM_ROOT_SEQ; - ducfgparam.clCellCfg.prachCfg.fdm[0].k1 = 1; - ducfgparam.clCellCfg.prachCfg.fdm[0].zeroCorrZoneCfg = ZERO_CORRELATION_ZONE_CFG; - ducfgparam.clCellCfg.prachCfg.fdm[0].numUnusedRootSeq = NUM_UNUSED_ROOT_SEQ; - *(ducfgparam.clCellCfg.prachCfg.fdm[0].unsuedRootSeq) = UNUSED_ROOT_SEQ; - ducfgparam.clCellCfg.prachCfg.ssbPerRach = SSB_PER_RACH; - ducfgparam.clCellCfg.prachCfg.prachMultCarrBand = PRACH_MULT_CARRIER_BAND; + duCfgParam.clCellCfg.prachCfg.pres = TRUE; + duCfgParam.clCellCfg.prachCfg.prachSeqLen = PRACH_SEQ_LEN; + duCfgParam.clCellCfg.prachCfg.prachSubcSpacing = PRACH_SUBCARRIER_SPACING; + duCfgParam.clCellCfg.prachCfg.prachRstSetCfg = PRACH_RESTRICTED_SET_CFG; + duCfgParam.clCellCfg.prachCfg.prachFdm = NUM_PRACH_FDM; + duCfgParam.clCellCfg.prachCfg.fdm[0].rootSeqIdx = ROOT_SEQ_IDX; + duCfgParam.clCellCfg.prachCfg.fdm[0].numRootSeq = NUM_ROOT_SEQ; + duCfgParam.clCellCfg.prachCfg.fdm[0].k1 = 1; + duCfgParam.clCellCfg.prachCfg.fdm[0].zeroCorrZoneCfg = ZERO_CORRELATION_ZONE_CFG; + duCfgParam.clCellCfg.prachCfg.fdm[0].numUnusedRootSeq = NUM_UNUSED_ROOT_SEQ; + if(SGetSBuf(DU_APP_MEM_REGION, DU_POOL, (Data **)&(duCfgParam.clCellCfg.prachCfg.fdm[0].unsuedRootSeq), NUM_UNUSED_ROOT_SEQ * sizeof(U8))) + { + printf("\nMemory allocation failed"); + RETVALUE(RFAILED); + } + *(duCfgParam.clCellCfg.prachCfg.fdm[0].unsuedRootSeq) = UNUSED_ROOT_SEQ; + duCfgParam.clCellCfg.prachCfg.ssbPerRach = SSB_PER_RACH; + duCfgParam.clCellCfg.prachCfg.prachMultCarrBand = PRACH_MULT_CARRIER_BAND; /* TDD configuration */ - ducfgparam.clCellCfg.tddCfg.pres = TRUE; - ducfgparam.clCellCfg.tddCfg.tddPeriod = TDD_PERIODICITY; + duCfgParam.clCellCfg.tddCfg.pres = TRUE; + duCfgParam.clCellCfg.tddCfg.tddPeriod = TDD_PERIODICITY; fillSlotConfig(); /* RSSI Measurement configuration */ - ducfgparam.clCellCfg.rssiUnit = RSS_MEASUREMENT_UNIT; + duCfgParam.clCellCfg.rssiUnit = RSS_MEASUREMENT_UNIT; /* This should be calculated based on - (number of mandatory parameters) + (number of otional parameters being filled) */ - ducfgparam.clCellCfg.numTlv = 39; + (number of mandatory parameters) + (number of otional parameters being filled) */ + duCfgParam.clCellCfg.numTlv = 39; + RETVALUE(ROK); } /******************************************************************* * @@ -254,134 +255,145 @@ void readClCfg() * * ****************************************************************/ -void readCfg() +S16 readCfg() { U8 i,j,k; - + U32 ipv4_du, ipv4_cu; + + cmInetAddr((S8*)DU_IP_V4_ADDR, &ipv4_du); + cmInetAddr((S8*)CU_IP_V4_ADDR, &ipv4_cu); + //U32 ipv6_int = inet_addr(DU_IP_V6_ADDR); + /* F1 DU IP Address and Port*/ - ducfgparam.sctpParams.duIpAddr.ipV4Pres = TRUE; - strcpy(ducfgparam.sctpParams.duIpAddr.ipV4Addr, (char*)DU_IP_V4_ADDR); - ducfgparam.sctpParams.duIpAddr.ipV6Pres = FALSE; - strcpy(ducfgparam.sctpParams.duIpAddr.ipV6Addr, (char*)DU_IP_V6_ADDR); - ducfgparam.sctpParams.duPort = DU_PORT; - + duCfgParam.sctpParams.duIpAddr.ipV4Pres = TRUE; + duCfgParam.sctpParams.duIpAddr.ipV4Addr = ipv4_du; + duCfgParam.sctpParams.duIpAddr.ipV6Pres = FALSE; + //strcpy(duCfgParam.sctpParams.duIpAddr.ipV6Addr, (char*)DU_IP_V6_ADDR); + duCfgParam.sctpParams.duPort = DU_PORT; + /* F1 CU IP Address and Port*/ - ducfgparam.sctpParams.cuIpAddr.ipV4Pres = TRUE; - strcpy(ducfgparam.sctpParams.cuIpAddr.ipV4Addr, (char*)CU_IP_V4_ADDR); - ducfgparam.sctpParams.cuIpAddr.ipV6Pres = FALSE; - strcpy(ducfgparam.sctpParams.cuIpAddr.ipV6Addr, DU_IP_V6_ADDR); - ducfgparam.sctpParams.cuPort = CU_PORT; - + duCfgParam.sctpParams.cuIpAddr.ipV4Pres = TRUE; + duCfgParam.sctpParams.cuIpAddr.ipV4Addr = ipv4_cu; + duCfgParam.sctpParams.cuIpAddr.ipV6Pres = FALSE; + //strcpy(duCfgParam.sctpParams.cuIpAddr.ipV6Addr, DU_IP_V6_ADDR); + duCfgParam.sctpParams.cuPort = CU_PORT; + + duCfgParam.maxUe = 32; //TODO: Check /* DU Info */ - ducfgparam.duId = DU_ID; - strcpy(ducfgparam.duName,DU_NAME); - + duCfgParam.duId = DU_ID; + strcpy((char*)duCfgParam.duName,DU_NAME); + for(i=0;i