MME2 changes - Propped commits from openmme/paging branch. Added scripts
for code gen
Change-Id: Ie55032217232214ac8544ca76ea34335205329e4
diff --git a/src/s1ap/Makefile b/src/s1ap/Makefile
new file mode 100644
index 0000000..33d1916
--- /dev/null
+++ b/src/s1ap/Makefile
@@ -0,0 +1,75 @@
+#
+# Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2019, Infosys Ltd.
+#
+# 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.
+#
+
+#SRCDIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
+include ../../Makefile.common
+
+LIB_PATH +=-L../common/ -L./asn1c/asnGenFiles
+
+SRCDIR := .
+TARGET := $(BINDIR)/s1ap-app
+S1AP_CONF = s1ap.json
+
+SRCEXT := c
+SOURCES := $(shell find $(SRCDIR) -type f -name '*.$(SRCEXT)')
+OBJECTS := $(patsubst $(SRCDIR)/%,$(OBJDIR)/s1ap/%,$(SOURCES:.$(SRCEXT)=.o))
+
+CFLAGS += -Wall
+
+ifeq ($(DEBUG),true)
+ CFLAGS += -g
+endif
+
+ifeq ($(DEBUG),false)
+ CFLAGS += -O3
+endif
+
+INCS := $(INC_DIRS)
+
+LIBS := -lpthread \
+ -lsctp \
+ -linterface \
+ -llog \
+ -lthreadpool \
+ -ljson \
+ -lasncodec \
+ -lsecutil
+
+$(TARGET): $(OBJECTS)
+ @echo " Linking..."
+ -@mkdir -p $(BINDIR)
+ $(CC) $(LFLAGS) $^ -o $(TARGET) $(LIB_PATH) $(LIBS)
+
+$(OBJDIR)/s1ap/%.o: $(SRCDIR)/%.$(SRCEXT)
+ @mkdir -p $(OBJDIR)/s1ap/handlers
+ $(CC) $(CFLAGS) $(INCS) -c -o $@ $<
+
+all:$(TARGET)
+
+clean:
+ @echo " Cleaning...";
+ @rm -rf $(OBJDIR)/s1ap $(TARGET)
+
+install:
+ mkdir -p $(TARGET_DIR)/bin/
+ cp $(TARGET) $(TARGET_DIR)/bin/
+ cp conf/$(S1AP_CONF) $(TARGET_DIR)/conf/
+
+
+.PHONY: clean
+
diff --git a/src/s1ap/asn1c/asn1c b/src/s1ap/asn1c/asn1c
new file mode 100644
index 0000000..16425d5
--- /dev/null
+++ b/src/s1ap/asn1c/asn1c
Binary files differ
diff --git a/src/s1ap/asn1c/asnGenFiles/ANY.h b/src/s1ap/asn1c/asnGenFiles/ANY.h
new file mode 100644
index 0000000..b30381f
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ANY.h
@@ -0,0 +1,65 @@
+/*-
+ * Copyright (c) 2004-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef ASN_TYPE_ANY_H
+#define ASN_TYPE_ANY_H
+
+#include <OCTET_STRING.h> /* 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/s1ap/asn1c/asnGenFiles/Additional-GUTI.h b/src/s1ap/asn1c/asnGenFiles/Additional-GUTI.h
new file mode 100644
index 0000000..33c4e03
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Additional-GUTI.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Additional_GUTI_H_
+#define _Additional_GUTI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "GUMMEI.h"
+#include "M-TMSI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* Additional-GUTI */
+typedef struct Additional_GUTI {
+ GUMMEI_t gUMMEI;
+ M_TMSI_t m_TMSI;
+ 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;
+} Additional_GUTI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Additional_GUTI;
+extern asn_SEQUENCE_specifics_t asn_SPC_Additional_GUTI_specs_1;
+extern asn_TYPE_member_t asn_MBR_Additional_GUTI_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Additional_GUTI_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/AdditionalCSFallbackIndicator.h b/src/s1ap/asn1c/asnGenFiles/AdditionalCSFallbackIndicator.h
new file mode 100644
index 0000000..dae1d3e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/AdditionalCSFallbackIndicator.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _AdditionalCSFallbackIndicator_H_
+#define _AdditionalCSFallbackIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum AdditionalCSFallbackIndicator {
+ AdditionalCSFallbackIndicator_no_restriction = 0,
+ AdditionalCSFallbackIndicator_restriction = 1
+ /*
+ * Enumeration is extensible
+ */
+} e_AdditionalCSFallbackIndicator;
+
+/* AdditionalCSFallbackIndicator */
+typedef long AdditionalCSFallbackIndicator_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_AdditionalCSFallbackIndicator_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_AdditionalCSFallbackIndicator;
+extern const asn_INTEGER_specifics_t asn_SPC_AdditionalCSFallbackIndicator_specs_1;
+asn_struct_free_f AdditionalCSFallbackIndicator_free;
+asn_struct_print_f AdditionalCSFallbackIndicator_print;
+asn_constr_check_f AdditionalCSFallbackIndicator_constraint;
+ber_type_decoder_f AdditionalCSFallbackIndicator_decode_ber;
+der_type_encoder_f AdditionalCSFallbackIndicator_encode_der;
+xer_type_decoder_f AdditionalCSFallbackIndicator_decode_xer;
+xer_type_encoder_f AdditionalCSFallbackIndicator_encode_xer;
+oer_type_decoder_f AdditionalCSFallbackIndicator_decode_oer;
+oer_type_encoder_f AdditionalCSFallbackIndicator_encode_oer;
+per_type_decoder_f AdditionalCSFallbackIndicator_decode_uper;
+per_type_encoder_f AdditionalCSFallbackIndicator_encode_uper;
+per_type_decoder_f AdditionalCSFallbackIndicator_decode_aper;
+per_type_encoder_f AdditionalCSFallbackIndicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AdditionalCSFallbackIndicator_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/AerialUEsubscriptionInformation.h b/src/s1ap/asn1c/asnGenFiles/AerialUEsubscriptionInformation.h
new file mode 100644
index 0000000..6784f22
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/AerialUEsubscriptionInformation.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _AerialUEsubscriptionInformation_H_
+#define _AerialUEsubscriptionInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum AerialUEsubscriptionInformation {
+ AerialUEsubscriptionInformation_allowed = 0,
+ AerialUEsubscriptionInformation_not_allowed = 1
+ /*
+ * Enumeration is extensible
+ */
+} e_AerialUEsubscriptionInformation;
+
+/* AerialUEsubscriptionInformation */
+typedef long AerialUEsubscriptionInformation_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_AerialUEsubscriptionInformation_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_AerialUEsubscriptionInformation;
+extern const asn_INTEGER_specifics_t asn_SPC_AerialUEsubscriptionInformation_specs_1;
+asn_struct_free_f AerialUEsubscriptionInformation_free;
+asn_struct_print_f AerialUEsubscriptionInformation_print;
+asn_constr_check_f AerialUEsubscriptionInformation_constraint;
+ber_type_decoder_f AerialUEsubscriptionInformation_decode_ber;
+der_type_encoder_f AerialUEsubscriptionInformation_encode_der;
+xer_type_decoder_f AerialUEsubscriptionInformation_decode_xer;
+xer_type_encoder_f AerialUEsubscriptionInformation_encode_xer;
+oer_type_decoder_f AerialUEsubscriptionInformation_decode_oer;
+oer_type_encoder_f AerialUEsubscriptionInformation_encode_oer;
+per_type_decoder_f AerialUEsubscriptionInformation_decode_uper;
+per_type_encoder_f AerialUEsubscriptionInformation_encode_uper;
+per_type_decoder_f AerialUEsubscriptionInformation_decode_aper;
+per_type_encoder_f AerialUEsubscriptionInformation_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AerialUEsubscriptionInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/AllocationAndRetentionPriority.h b/src/s1ap/asn1c/asnGenFiles/AllocationAndRetentionPriority.h
new file mode 100644
index 0000000..334761b
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/AllocationAndRetentionPriority.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _AllocationAndRetentionPriority_H_
+#define _AllocationAndRetentionPriority_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PriorityLevel.h"
+#include "Pre-emptionCapability.h"
+#include "Pre-emptionVulnerability.h"
+#include <constr_SEQUENCE.h>
+
+#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 <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/AreaScopeOfMDT.h b/src/s1ap/asn1c/asnGenFiles/AreaScopeOfMDT.h
new file mode 100644
index 0000000..2f0fda9
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/AreaScopeOfMDT.h
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _AreaScopeOfMDT_H_
+#define _AreaScopeOfMDT_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NULL.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum AreaScopeOfMDT_PR {
+ AreaScopeOfMDT_PR_NOTHING, /* No components present */
+ AreaScopeOfMDT_PR_cellBased,
+ AreaScopeOfMDT_PR_tABased,
+ AreaScopeOfMDT_PR_pLMNWide,
+ /* Extensions may appear below */
+ AreaScopeOfMDT_PR_tAIBased
+} AreaScopeOfMDT_PR;
+
+/* Forward declarations */
+struct CellBasedMDT;
+struct TABasedMDT;
+struct TAIBasedMDT;
+
+/* AreaScopeOfMDT */
+typedef struct AreaScopeOfMDT {
+ AreaScopeOfMDT_PR present;
+ union AreaScopeOfMDT_u {
+ struct CellBasedMDT *cellBased;
+ struct TABasedMDT *tABased;
+ NULL_t pLMNWide;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ struct TAIBasedMDT *tAIBased;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} AreaScopeOfMDT_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_AreaScopeOfMDT;
+extern asn_CHOICE_specifics_t asn_SPC_AreaScopeOfMDT_specs_1;
+extern asn_TYPE_member_t asn_MBR_AreaScopeOfMDT_1[4];
+extern asn_per_constraints_t asn_PER_type_AreaScopeOfMDT_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AreaScopeOfMDT_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/AreaScopeOfQMC.h b/src/s1ap/asn1c/asnGenFiles/AreaScopeOfQMC.h
new file mode 100644
index 0000000..7550edb
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/AreaScopeOfQMC.h
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _AreaScopeOfQMC_H_
+#define _AreaScopeOfQMC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum AreaScopeOfQMC_PR {
+ AreaScopeOfQMC_PR_NOTHING, /* No components present */
+ AreaScopeOfQMC_PR_cellBased,
+ AreaScopeOfQMC_PR_tABased,
+ AreaScopeOfQMC_PR_tAIBased,
+ AreaScopeOfQMC_PR_pLMNAreaBased
+ /* Extensions may appear below */
+
+} AreaScopeOfQMC_PR;
+
+/* Forward declarations */
+struct CellBasedQMC;
+struct TABasedQMC;
+struct TAIBasedQMC;
+struct PLMNAreaBasedQMC;
+
+/* AreaScopeOfQMC */
+typedef struct AreaScopeOfQMC {
+ AreaScopeOfQMC_PR present;
+ union AreaScopeOfQMC_u {
+ struct CellBasedQMC *cellBased;
+ struct TABasedQMC *tABased;
+ struct TAIBasedQMC *tAIBased;
+ struct PLMNAreaBasedQMC *pLMNAreaBased;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} AreaScopeOfQMC_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_AreaScopeOfQMC;
+extern asn_CHOICE_specifics_t asn_SPC_AreaScopeOfQMC_specs_1;
+extern asn_TYPE_member_t asn_MBR_AreaScopeOfQMC_1[4];
+extern asn_per_constraints_t asn_PER_type_AreaScopeOfQMC_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AreaScopeOfQMC_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/AssistanceDataForCECapableUEs.h b/src/s1ap/asn1c/asnGenFiles/AssistanceDataForCECapableUEs.h
new file mode 100644
index 0000000..33d0bbd
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/AssistanceDataForCECapableUEs.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _AssistanceDataForCECapableUEs_H_
+#define _AssistanceDataForCECapableUEs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "CellIdentifierAndCELevelForCECapableUEs.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* AssistanceDataForCECapableUEs */
+typedef struct AssistanceDataForCECapableUEs {
+ CellIdentifierAndCELevelForCECapableUEs_t cellIdentifierAndCELevelForCECapableUEs;
+ 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;
+} AssistanceDataForCECapableUEs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_AssistanceDataForCECapableUEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_AssistanceDataForCECapableUEs_specs_1;
+extern asn_TYPE_member_t asn_MBR_AssistanceDataForCECapableUEs_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AssistanceDataForCECapableUEs_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/AssistanceDataForPaging.h b/src/s1ap/asn1c/asnGenFiles/AssistanceDataForPaging.h
new file mode 100644
index 0000000..eb36003
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/AssistanceDataForPaging.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _AssistanceDataForPaging_H_
+#define _AssistanceDataForPaging_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct AssistanceDataForRecommendedCells;
+struct AssistanceDataForCECapableUEs;
+struct PagingAttemptInformation;
+struct ProtocolExtensionContainer;
+
+/* AssistanceDataForPaging */
+typedef struct AssistanceDataForPaging {
+ struct AssistanceDataForRecommendedCells *assistanceDataForRecommendedCells; /* OPTIONAL */
+ struct AssistanceDataForCECapableUEs *assistanceDataForCECapableUEs; /* OPTIONAL */
+ struct PagingAttemptInformation *pagingAttemptInformation; /* 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;
+} AssistanceDataForPaging_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_AssistanceDataForPaging;
+extern asn_SEQUENCE_specifics_t asn_SPC_AssistanceDataForPaging_specs_1;
+extern asn_TYPE_member_t asn_MBR_AssistanceDataForPaging_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AssistanceDataForPaging_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/AssistanceDataForRecommendedCells.h b/src/s1ap/asn1c/asnGenFiles/AssistanceDataForRecommendedCells.h
new file mode 100644
index 0000000..baf1bd6
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/AssistanceDataForRecommendedCells.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _AssistanceDataForRecommendedCells_H_
+#define _AssistanceDataForRecommendedCells_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RecommendedCellsForPaging.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* AssistanceDataForRecommendedCells */
+typedef struct AssistanceDataForRecommendedCells {
+ RecommendedCellsForPaging_t recommendedCellsForPaging;
+ 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;
+} AssistanceDataForRecommendedCells_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_AssistanceDataForRecommendedCells;
+extern asn_SEQUENCE_specifics_t asn_SPC_AssistanceDataForRecommendedCells_specs_1;
+extern asn_TYPE_member_t asn_MBR_AssistanceDataForRecommendedCells_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AssistanceDataForRecommendedCells_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/BIT_STRING.h b/src/s1ap/asn1c/asnGenFiles/BIT_STRING.h
new file mode 100644
index 0000000..c1bdbbc
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/BIT_STRING.h
@@ -0,0 +1,48 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef _BIT_STRING_H_
+#define _BIT_STRING_H_
+
+#include <OCTET_STRING.h> /* 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/s1ap/asn1c/asnGenFiles/BOOLEAN.h b/src/s1ap/asn1c/asnGenFiles/BOOLEAN.h
new file mode 100644
index 0000000..620acf7
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/BOOLEAN.h
@@ -0,0 +1,45 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef _BOOLEAN_H_
+#define _BOOLEAN_H_
+
+#include <asn_application.h>
+
+#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/s1ap/asn1c/asnGenFiles/BPLMNs.h b/src/s1ap/asn1c/asnGenFiles/BPLMNs.h
new file mode 100644
index 0000000..8a28258
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/BPLMNs.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _BPLMNs_H_
+#define _BPLMNs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNidentity.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* BPLMNs */
+typedef struct BPLMNs {
+ A_SEQUENCE_OF(PLMNidentity_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} BPLMNs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_BPLMNs;
+extern asn_SET_OF_specifics_t asn_SPC_BPLMNs_specs_1;
+extern asn_TYPE_member_t asn_MBR_BPLMNs_1[1];
+extern asn_per_constraints_t asn_PER_type_BPLMNs_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BPLMNs_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/BearerType.h b/src/s1ap/asn1c/asnGenFiles/BearerType.h
new file mode 100644
index 0000000..66c6cbf
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/BearerType.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _BearerType_H_
+#define _BearerType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum BearerType {
+ BearerType_non_IP = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_BearerType;
+
+/* BearerType */
+typedef long BearerType_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_BearerType_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_BearerType;
+extern const asn_INTEGER_specifics_t asn_SPC_BearerType_specs_1;
+asn_struct_free_f BearerType_free;
+asn_struct_print_f BearerType_print;
+asn_constr_check_f BearerType_constraint;
+ber_type_decoder_f BearerType_decode_ber;
+der_type_encoder_f BearerType_encode_der;
+xer_type_decoder_f BearerType_decode_xer;
+xer_type_encoder_f BearerType_encode_xer;
+oer_type_decoder_f BearerType_decode_oer;
+oer_type_encoder_f BearerType_encode_oer;
+per_type_decoder_f BearerType_decode_uper;
+per_type_encoder_f BearerType_encode_uper;
+per_type_decoder_f BearerType_decode_aper;
+per_type_encoder_f BearerType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BearerType_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Bearers-SubjectToStatusTransfer-Item.h b/src/s1ap/asn1c/asnGenFiles/Bearers-SubjectToStatusTransfer-Item.h
new file mode 100644
index 0000000..b3a4728
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Bearers-SubjectToStatusTransfer-Item.h
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Bearers_SubjectToStatusTransfer_Item_H_
+#define _Bearers_SubjectToStatusTransfer_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "COUNTvalue.h"
+#include "ReceiveStatusofULPDCPSDUs.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* Bearers-SubjectToStatusTransfer-Item */
+typedef struct Bearers_SubjectToStatusTransfer_Item {
+ E_RAB_ID_t e_RAB_ID;
+ COUNTvalue_t uL_COUNTvalue;
+ COUNTvalue_t dL_COUNTvalue;
+ ReceiveStatusofULPDCPSDUs_t *receiveStatusofULPDCPSDUs; /* 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;
+} Bearers_SubjectToStatusTransfer_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Bearers_SubjectToStatusTransfer_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_Bearers_SubjectToStatusTransfer_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_Bearers_SubjectToStatusTransfer_Item_1[5];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Bearers_SubjectToStatusTransfer_Item_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Bearers-SubjectToStatusTransferList.h b/src/s1ap/asn1c/asnGenFiles/Bearers-SubjectToStatusTransferList.h
new file mode 100644
index 0000000..4100abd
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Bearers-SubjectToStatusTransferList.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Bearers_SubjectToStatusTransferList_H_
+#define _Bearers_SubjectToStatusTransferList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* Bearers-SubjectToStatusTransferList */
+typedef struct Bearers_SubjectToStatusTransferList {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} Bearers_SubjectToStatusTransferList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Bearers_SubjectToStatusTransferList;
+extern asn_SET_OF_specifics_t asn_SPC_Bearers_SubjectToStatusTransferList_specs_1;
+extern asn_TYPE_member_t asn_MBR_Bearers_SubjectToStatusTransferList_1[1];
+extern asn_per_constraints_t asn_PER_type_Bearers_SubjectToStatusTransferList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Bearers_SubjectToStatusTransferList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/BitRate.h b/src/s1ap/asn1c/asnGenFiles/BitRate.h
new file mode 100644
index 0000000..efba359
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/BitRate.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _BitRate_H_
+#define _BitRate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <INTEGER.h>
+
+#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 <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/BluetoothMeasConfig.h b/src/s1ap/asn1c/asnGenFiles/BluetoothMeasConfig.h
new file mode 100644
index 0000000..fdcdfe7
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/BluetoothMeasConfig.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _BluetoothMeasConfig_H_
+#define _BluetoothMeasConfig_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum BluetoothMeasConfig {
+ BluetoothMeasConfig_setup = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_BluetoothMeasConfig;
+
+/* BluetoothMeasConfig */
+typedef long BluetoothMeasConfig_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_BluetoothMeasConfig_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_BluetoothMeasConfig;
+extern const asn_INTEGER_specifics_t asn_SPC_BluetoothMeasConfig_specs_1;
+asn_struct_free_f BluetoothMeasConfig_free;
+asn_struct_print_f BluetoothMeasConfig_print;
+asn_constr_check_f BluetoothMeasConfig_constraint;
+ber_type_decoder_f BluetoothMeasConfig_decode_ber;
+der_type_encoder_f BluetoothMeasConfig_encode_der;
+xer_type_decoder_f BluetoothMeasConfig_decode_xer;
+xer_type_encoder_f BluetoothMeasConfig_encode_xer;
+oer_type_decoder_f BluetoothMeasConfig_decode_oer;
+oer_type_encoder_f BluetoothMeasConfig_encode_oer;
+per_type_decoder_f BluetoothMeasConfig_decode_uper;
+per_type_encoder_f BluetoothMeasConfig_encode_uper;
+per_type_decoder_f BluetoothMeasConfig_decode_aper;
+per_type_encoder_f BluetoothMeasConfig_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BluetoothMeasConfig_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/BluetoothMeasConfigNameList.h b/src/s1ap/asn1c/asnGenFiles/BluetoothMeasConfigNameList.h
new file mode 100644
index 0000000..cbd69d8
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/BluetoothMeasConfigNameList.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _BluetoothMeasConfigNameList_H_
+#define _BluetoothMeasConfigNameList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "BluetoothName.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* BluetoothMeasConfigNameList */
+typedef struct BluetoothMeasConfigNameList {
+ A_SEQUENCE_OF(BluetoothName_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} BluetoothMeasConfigNameList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_BluetoothMeasConfigNameList;
+extern asn_SET_OF_specifics_t asn_SPC_BluetoothMeasConfigNameList_specs_1;
+extern asn_TYPE_member_t asn_MBR_BluetoothMeasConfigNameList_1[1];
+extern asn_per_constraints_t asn_PER_type_BluetoothMeasConfigNameList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BluetoothMeasConfigNameList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/BluetoothMeasurementConfiguration.h b/src/s1ap/asn1c/asnGenFiles/BluetoothMeasurementConfiguration.h
new file mode 100644
index 0000000..f8cb937
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/BluetoothMeasurementConfiguration.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _BluetoothMeasurementConfiguration_H_
+#define _BluetoothMeasurementConfiguration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "BluetoothMeasConfig.h"
+#include <NativeEnumerated.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum BluetoothMeasurementConfiguration__bt_rssi {
+ BluetoothMeasurementConfiguration__bt_rssi_true = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_BluetoothMeasurementConfiguration__bt_rssi;
+
+/* Forward declarations */
+struct BluetoothMeasConfigNameList;
+struct ProtocolExtensionContainer;
+
+/* BluetoothMeasurementConfiguration */
+typedef struct BluetoothMeasurementConfiguration {
+ BluetoothMeasConfig_t bluetoothMeasConfig;
+ struct BluetoothMeasConfigNameList *bluetoothMeasConfigNameList; /* OPTIONAL */
+ long *bt_rssi; /* 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;
+} BluetoothMeasurementConfiguration_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_bt_rssi_4; // (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_BluetoothMeasurementConfiguration;
+extern asn_SEQUENCE_specifics_t asn_SPC_BluetoothMeasurementConfiguration_specs_1;
+extern asn_TYPE_member_t asn_MBR_BluetoothMeasurementConfiguration_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BluetoothMeasurementConfiguration_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/BluetoothName.h b/src/s1ap/asn1c/asnGenFiles/BluetoothName.h
new file mode 100644
index 0000000..0f40011
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/BluetoothName.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _BluetoothName_H_
+#define _BluetoothName_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* BluetoothName */
+typedef OCTET_STRING_t BluetoothName_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_BluetoothName_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_BluetoothName;
+asn_struct_free_f BluetoothName_free;
+asn_struct_print_f BluetoothName_print;
+asn_constr_check_f BluetoothName_constraint;
+ber_type_decoder_f BluetoothName_decode_ber;
+der_type_encoder_f BluetoothName_encode_der;
+xer_type_decoder_f BluetoothName_decode_xer;
+xer_type_encoder_f BluetoothName_encode_xer;
+oer_type_decoder_f BluetoothName_decode_oer;
+oer_type_encoder_f BluetoothName_encode_oer;
+per_type_decoder_f BluetoothName_decode_uper;
+per_type_encoder_f BluetoothName_encode_uper;
+per_type_decoder_f BluetoothName_decode_aper;
+per_type_encoder_f BluetoothName_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BluetoothName_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/BroadcastCancelledAreaList.h b/src/s1ap/asn1c/asnGenFiles/BroadcastCancelledAreaList.h
new file mode 100644
index 0000000..38ac46d
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/BroadcastCancelledAreaList.h
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _BroadcastCancelledAreaList_H_
+#define _BroadcastCancelledAreaList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum BroadcastCancelledAreaList_PR {
+ BroadcastCancelledAreaList_PR_NOTHING, /* No components present */
+ BroadcastCancelledAreaList_PR_cellID_Cancelled,
+ BroadcastCancelledAreaList_PR_tAI_Cancelled,
+ BroadcastCancelledAreaList_PR_emergencyAreaID_Cancelled
+ /* Extensions may appear below */
+
+} BroadcastCancelledAreaList_PR;
+
+/* Forward declarations */
+struct CellID_Cancelled;
+struct TAI_Cancelled;
+struct EmergencyAreaID_Cancelled;
+
+/* BroadcastCancelledAreaList */
+typedef struct BroadcastCancelledAreaList {
+ BroadcastCancelledAreaList_PR present;
+ union BroadcastCancelledAreaList_u {
+ struct CellID_Cancelled *cellID_Cancelled;
+ struct TAI_Cancelled *tAI_Cancelled;
+ struct EmergencyAreaID_Cancelled *emergencyAreaID_Cancelled;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} BroadcastCancelledAreaList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_BroadcastCancelledAreaList;
+extern asn_CHOICE_specifics_t asn_SPC_BroadcastCancelledAreaList_specs_1;
+extern asn_TYPE_member_t asn_MBR_BroadcastCancelledAreaList_1[3];
+extern asn_per_constraints_t asn_PER_type_BroadcastCancelledAreaList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BroadcastCancelledAreaList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/BroadcastCompletedAreaList.h b/src/s1ap/asn1c/asnGenFiles/BroadcastCompletedAreaList.h
new file mode 100644
index 0000000..ae73544
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/BroadcastCompletedAreaList.h
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _BroadcastCompletedAreaList_H_
+#define _BroadcastCompletedAreaList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum BroadcastCompletedAreaList_PR {
+ BroadcastCompletedAreaList_PR_NOTHING, /* No components present */
+ BroadcastCompletedAreaList_PR_cellID_Broadcast,
+ BroadcastCompletedAreaList_PR_tAI_Broadcast,
+ BroadcastCompletedAreaList_PR_emergencyAreaID_Broadcast
+ /* Extensions may appear below */
+
+} BroadcastCompletedAreaList_PR;
+
+/* Forward declarations */
+struct CellID_Broadcast;
+struct TAI_Broadcast;
+struct EmergencyAreaID_Broadcast;
+
+/* BroadcastCompletedAreaList */
+typedef struct BroadcastCompletedAreaList {
+ BroadcastCompletedAreaList_PR present;
+ union BroadcastCompletedAreaList_u {
+ struct CellID_Broadcast *cellID_Broadcast;
+ struct TAI_Broadcast *tAI_Broadcast;
+ struct EmergencyAreaID_Broadcast *emergencyAreaID_Broadcast;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} BroadcastCompletedAreaList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_BroadcastCompletedAreaList;
+extern asn_CHOICE_specifics_t asn_SPC_BroadcastCompletedAreaList_specs_1;
+extern asn_TYPE_member_t asn_MBR_BroadcastCompletedAreaList_1[3];
+extern asn_per_constraints_t asn_PER_type_BroadcastCompletedAreaList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BroadcastCompletedAreaList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CE-ModeBRestricted.h b/src/s1ap/asn1c/asnGenFiles/CE-ModeBRestricted.h
new file mode 100644
index 0000000..783155f
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CE-ModeBRestricted.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CE_ModeBRestricted_H_
+#define _CE_ModeBRestricted_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CE_ModeBRestricted {
+ CE_ModeBRestricted_restricted = 0,
+ CE_ModeBRestricted_not_restricted = 1
+ /*
+ * Enumeration is extensible
+ */
+} e_CE_ModeBRestricted;
+
+/* CE-ModeBRestricted */
+typedef long CE_ModeBRestricted_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_CE_ModeBRestricted_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_CE_ModeBRestricted;
+extern const asn_INTEGER_specifics_t asn_SPC_CE_ModeBRestricted_specs_1;
+asn_struct_free_f CE_ModeBRestricted_free;
+asn_struct_print_f CE_ModeBRestricted_print;
+asn_constr_check_f CE_ModeBRestricted_constraint;
+ber_type_decoder_f CE_ModeBRestricted_decode_ber;
+der_type_encoder_f CE_ModeBRestricted_encode_der;
+xer_type_decoder_f CE_ModeBRestricted_decode_xer;
+xer_type_encoder_f CE_ModeBRestricted_encode_xer;
+oer_type_decoder_f CE_ModeBRestricted_decode_oer;
+oer_type_encoder_f CE_ModeBRestricted_encode_oer;
+per_type_decoder_f CE_ModeBRestricted_decode_uper;
+per_type_encoder_f CE_ModeBRestricted_encode_uper;
+per_type_decoder_f CE_ModeBRestricted_decode_aper;
+per_type_encoder_f CE_ModeBRestricted_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CE_ModeBRestricted_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CE-mode-B-SupportIndicator.h b/src/s1ap/asn1c/asnGenFiles/CE-mode-B-SupportIndicator.h
new file mode 100644
index 0000000..ab49e14
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CE-mode-B-SupportIndicator.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CE_mode_B_SupportIndicator_H_
+#define _CE_mode_B_SupportIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CE_mode_B_SupportIndicator {
+ CE_mode_B_SupportIndicator_supported = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_CE_mode_B_SupportIndicator;
+
+/* CE-mode-B-SupportIndicator */
+typedef long CE_mode_B_SupportIndicator_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_CE_mode_B_SupportIndicator_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_CE_mode_B_SupportIndicator;
+extern const asn_INTEGER_specifics_t asn_SPC_CE_mode_B_SupportIndicator_specs_1;
+asn_struct_free_f CE_mode_B_SupportIndicator_free;
+asn_struct_print_f CE_mode_B_SupportIndicator_print;
+asn_constr_check_f CE_mode_B_SupportIndicator_constraint;
+ber_type_decoder_f CE_mode_B_SupportIndicator_decode_ber;
+der_type_encoder_f CE_mode_B_SupportIndicator_encode_der;
+xer_type_decoder_f CE_mode_B_SupportIndicator_decode_xer;
+xer_type_encoder_f CE_mode_B_SupportIndicator_encode_xer;
+oer_type_decoder_f CE_mode_B_SupportIndicator_decode_oer;
+oer_type_encoder_f CE_mode_B_SupportIndicator_encode_oer;
+per_type_decoder_f CE_mode_B_SupportIndicator_decode_uper;
+per_type_encoder_f CE_mode_B_SupportIndicator_encode_uper;
+per_type_decoder_f CE_mode_B_SupportIndicator_decode_aper;
+per_type_encoder_f CE_mode_B_SupportIndicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CE_mode_B_SupportIndicator_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CELevel.h b/src/s1ap/asn1c/asnGenFiles/CELevel.h
new file mode 100644
index 0000000..8bab70e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CELevel.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CELevel_H_
+#define _CELevel_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* CELevel */
+typedef OCTET_STRING_t CELevel_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CELevel;
+asn_struct_free_f CELevel_free;
+asn_struct_print_f CELevel_print;
+asn_constr_check_f CELevel_constraint;
+ber_type_decoder_f CELevel_decode_ber;
+der_type_encoder_f CELevel_encode_der;
+xer_type_decoder_f CELevel_decode_xer;
+xer_type_encoder_f CELevel_encode_xer;
+oer_type_decoder_f CELevel_decode_oer;
+oer_type_encoder_f CELevel_encode_oer;
+per_type_decoder_f CELevel_decode_uper;
+per_type_encoder_f CELevel_encode_uper;
+per_type_decoder_f CELevel_decode_aper;
+per_type_encoder_f CELevel_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CELevel_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CGI.h b/src/s1ap/asn1c/asnGenFiles/CGI.h
new file mode 100644
index 0000000..84910f3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CGI.h
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CGI_H_
+#define _CGI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNidentity.h"
+#include "LAC.h"
+#include "CI.h"
+#include "RAC.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* CGI */
+typedef struct CGI {
+ PLMNidentity_t pLMNidentity;
+ LAC_t lAC;
+ CI_t cI;
+ RAC_t *rAC; /* 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;
+} CGI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CGI;
+extern asn_SEQUENCE_specifics_t asn_SPC_CGI_specs_1;
+extern asn_TYPE_member_t asn_MBR_CGI_1[5];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CGI_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CI.h b/src/s1ap/asn1c/asnGenFiles/CI.h
new file mode 100644
index 0000000..e6ceb26
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CI.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CI_H_
+#define _CI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* CI */
+typedef OCTET_STRING_t CI_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_CI_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_CI;
+asn_struct_free_f CI_free;
+asn_struct_print_f CI_print;
+asn_constr_check_f CI_constraint;
+ber_type_decoder_f CI_decode_ber;
+der_type_encoder_f CI_encode_der;
+xer_type_decoder_f CI_decode_xer;
+xer_type_encoder_f CI_encode_xer;
+oer_type_decoder_f CI_decode_oer;
+oer_type_encoder_f CI_encode_oer;
+per_type_decoder_f CI_decode_uper;
+per_type_encoder_f CI_encode_uper;
+per_type_decoder_f CI_decode_aper;
+per_type_encoder_f CI_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CI_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CNDomain.h b/src/s1ap/asn1c/asnGenFiles/CNDomain.h
new file mode 100644
index 0000000..d31dac3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CNDomain.h
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CNDomain_H_
+#define _CNDomain_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CNDomain {
+ CNDomain_ps = 0,
+ CNDomain_cs = 1
+} e_CNDomain;
+
+/* CNDomain */
+typedef long CNDomain_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_CNDomain_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_CNDomain;
+extern const asn_INTEGER_specifics_t asn_SPC_CNDomain_specs_1;
+asn_struct_free_f CNDomain_free;
+asn_struct_print_f CNDomain_print;
+asn_constr_check_f CNDomain_constraint;
+ber_type_decoder_f CNDomain_decode_ber;
+der_type_encoder_f CNDomain_encode_der;
+xer_type_decoder_f CNDomain_decode_xer;
+xer_type_encoder_f CNDomain_encode_xer;
+oer_type_decoder_f CNDomain_decode_oer;
+oer_type_encoder_f CNDomain_encode_oer;
+per_type_decoder_f CNDomain_decode_uper;
+per_type_encoder_f CNDomain_encode_uper;
+per_type_decoder_f CNDomain_decode_aper;
+per_type_encoder_f CNDomain_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CNDomain_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CNType.h b/src/s1ap/asn1c/asnGenFiles/CNType.h
new file mode 100644
index 0000000..717bcc4
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CNType.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CNType_H_
+#define _CNType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CNType {
+ CNType_fiveGCForbidden = 0,
+ /*
+ * Enumeration is extensible
+ */
+ CNType_epc_Forbiddden = 1
+} e_CNType;
+
+/* CNType */
+typedef long CNType_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_CNType_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_CNType;
+extern const asn_INTEGER_specifics_t asn_SPC_CNType_specs_1;
+asn_struct_free_f CNType_free;
+asn_struct_print_f CNType_print;
+asn_constr_check_f CNType_constraint;
+ber_type_decoder_f CNType_decode_ber;
+der_type_encoder_f CNType_encode_der;
+xer_type_decoder_f CNType_decode_xer;
+xer_type_encoder_f CNType_encode_xer;
+oer_type_decoder_f CNType_decode_oer;
+oer_type_encoder_f CNType_encode_oer;
+per_type_decoder_f CNType_decode_uper;
+per_type_encoder_f CNType_encode_uper;
+per_type_decoder_f CNType_decode_aper;
+per_type_encoder_f CNType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CNType_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CNTypeRestrictions-Item.h b/src/s1ap/asn1c/asnGenFiles/CNTypeRestrictions-Item.h
new file mode 100644
index 0000000..7ffdc12
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CNTypeRestrictions-Item.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CNTypeRestrictions_Item_H_
+#define _CNTypeRestrictions_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNidentity.h"
+#include "CNType.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* CNTypeRestrictions-Item */
+typedef struct CNTypeRestrictions_Item {
+ PLMNidentity_t pLMN_Identity;
+ CNType_t cNType;
+ 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;
+} CNTypeRestrictions_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CNTypeRestrictions_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_CNTypeRestrictions_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_CNTypeRestrictions_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CNTypeRestrictions_Item_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CNTypeRestrictions.h b/src/s1ap/asn1c/asnGenFiles/CNTypeRestrictions.h
new file mode 100644
index 0000000..7bba5b6
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CNTypeRestrictions.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CNTypeRestrictions_H_
+#define _CNTypeRestrictions_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct CNTypeRestrictions_Item;
+
+/* CNTypeRestrictions */
+typedef struct CNTypeRestrictions {
+ A_SEQUENCE_OF(struct CNTypeRestrictions_Item) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} CNTypeRestrictions_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CNTypeRestrictions;
+extern asn_SET_OF_specifics_t asn_SPC_CNTypeRestrictions_specs_1;
+extern asn_TYPE_member_t asn_MBR_CNTypeRestrictions_1[1];
+extern asn_per_constraints_t asn_PER_type_CNTypeRestrictions_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CNTypeRestrictions_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/COUNTValueExtended.h b/src/s1ap/asn1c/asnGenFiles/COUNTValueExtended.h
new file mode 100644
index 0000000..440270f
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/COUNTValueExtended.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _COUNTValueExtended_H_
+#define _COUNTValueExtended_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PDCP-SNExtended.h"
+#include "HFNModified.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* COUNTValueExtended */
+typedef struct COUNTValueExtended {
+ PDCP_SNExtended_t pDCP_SNExtended;
+ HFNModified_t hFNModified;
+ 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;
+} COUNTValueExtended_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_COUNTValueExtended;
+extern asn_SEQUENCE_specifics_t asn_SPC_COUNTValueExtended_specs_1;
+extern asn_TYPE_member_t asn_MBR_COUNTValueExtended_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _COUNTValueExtended_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/COUNTvalue.h b/src/s1ap/asn1c/asnGenFiles/COUNTvalue.h
new file mode 100644
index 0000000..76e0267
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/COUNTvalue.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _COUNTvalue_H_
+#define _COUNTvalue_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PDCP-SN.h"
+#include "HFN.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* COUNTvalue */
+typedef struct COUNTvalue {
+ PDCP_SN_t pDCP_SN;
+ HFN_t hFN;
+ 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;
+} COUNTvalue_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_COUNTvalue;
+extern asn_SEQUENCE_specifics_t asn_SPC_COUNTvalue_specs_1;
+extern asn_TYPE_member_t asn_MBR_COUNTvalue_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _COUNTvalue_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/COUNTvaluePDCP-SNlength18.h b/src/s1ap/asn1c/asnGenFiles/COUNTvaluePDCP-SNlength18.h
new file mode 100644
index 0000000..7b862e4
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/COUNTvaluePDCP-SNlength18.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _COUNTvaluePDCP_SNlength18_H_
+#define _COUNTvaluePDCP_SNlength18_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PDCP-SNlength18.h"
+#include "HFNforPDCP-SNlength18.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* COUNTvaluePDCP-SNlength18 */
+typedef struct COUNTvaluePDCP_SNlength18 {
+ PDCP_SNlength18_t pDCP_SNlength18;
+ HFNforPDCP_SNlength18_t hFNforPDCP_SNlength18;
+ 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;
+} COUNTvaluePDCP_SNlength18_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_COUNTvaluePDCP_SNlength18;
+extern asn_SEQUENCE_specifics_t asn_SPC_COUNTvaluePDCP_SNlength18_specs_1;
+extern asn_TYPE_member_t asn_MBR_COUNTvaluePDCP_SNlength18_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _COUNTvaluePDCP_SNlength18_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CSFallbackIndicator.h b/src/s1ap/asn1c/asnGenFiles/CSFallbackIndicator.h
new file mode 100644
index 0000000..eedbcec
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CSFallbackIndicator.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CSFallbackIndicator_H_
+#define _CSFallbackIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CSFallbackIndicator {
+ CSFallbackIndicator_cs_fallback_required = 0,
+ /*
+ * Enumeration is extensible
+ */
+ CSFallbackIndicator_cs_fallback_high_priority = 1
+} e_CSFallbackIndicator;
+
+/* CSFallbackIndicator */
+typedef long CSFallbackIndicator_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_CSFallbackIndicator_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_CSFallbackIndicator;
+extern const asn_INTEGER_specifics_t asn_SPC_CSFallbackIndicator_specs_1;
+asn_struct_free_f CSFallbackIndicator_free;
+asn_struct_print_f CSFallbackIndicator_print;
+asn_constr_check_f CSFallbackIndicator_constraint;
+ber_type_decoder_f CSFallbackIndicator_decode_ber;
+der_type_encoder_f CSFallbackIndicator_encode_der;
+xer_type_decoder_f CSFallbackIndicator_decode_xer;
+xer_type_encoder_f CSFallbackIndicator_encode_xer;
+oer_type_decoder_f CSFallbackIndicator_decode_oer;
+oer_type_encoder_f CSFallbackIndicator_encode_oer;
+per_type_decoder_f CSFallbackIndicator_decode_uper;
+per_type_encoder_f CSFallbackIndicator_encode_uper;
+per_type_decoder_f CSFallbackIndicator_decode_aper;
+per_type_encoder_f CSFallbackIndicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CSFallbackIndicator_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CSG-Id.h b/src/s1ap/asn1c/asnGenFiles/CSG-Id.h
new file mode 100644
index 0000000..0b8552a
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CSG-Id.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CSG_Id_H_
+#define _CSG_Id_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* CSG-Id */
+typedef BIT_STRING_t CSG_Id_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_CSG_Id_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_CSG_Id;
+asn_struct_free_f CSG_Id_free;
+asn_struct_print_f CSG_Id_print;
+asn_constr_check_f CSG_Id_constraint;
+ber_type_decoder_f CSG_Id_decode_ber;
+der_type_encoder_f CSG_Id_encode_der;
+xer_type_decoder_f CSG_Id_decode_xer;
+xer_type_encoder_f CSG_Id_encode_xer;
+oer_type_decoder_f CSG_Id_decode_oer;
+oer_type_encoder_f CSG_Id_encode_oer;
+per_type_decoder_f CSG_Id_decode_uper;
+per_type_encoder_f CSG_Id_encode_uper;
+per_type_decoder_f CSG_Id_decode_aper;
+per_type_encoder_f CSG_Id_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CSG_Id_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CSG-IdList-Item.h b/src/s1ap/asn1c/asnGenFiles/CSG-IdList-Item.h
new file mode 100644
index 0000000..899a9bf
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CSG-IdList-Item.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CSG_IdList_Item_H_
+#define _CSG_IdList_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "CSG-Id.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* CSG-IdList-Item */
+typedef struct CSG_IdList_Item {
+ CSG_Id_t cSG_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;
+} CSG_IdList_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CSG_IdList_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_CSG_IdList_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_CSG_IdList_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CSG_IdList_Item_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CSG-IdList.h b/src/s1ap/asn1c/asnGenFiles/CSG-IdList.h
new file mode 100644
index 0000000..9cf6da9
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CSG-IdList.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CSG_IdList_H_
+#define _CSG_IdList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct CSG_IdList_Item;
+
+/* CSG-IdList */
+typedef struct CSG_IdList {
+ A_SEQUENCE_OF(struct CSG_IdList_Item) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} CSG_IdList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CSG_IdList;
+extern asn_SET_OF_specifics_t asn_SPC_CSG_IdList_specs_1;
+extern asn_TYPE_member_t asn_MBR_CSG_IdList_1[1];
+extern asn_per_constraints_t asn_PER_type_CSG_IdList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CSG_IdList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CSGMembershipInfo.h b/src/s1ap/asn1c/asnGenFiles/CSGMembershipInfo.h
new file mode 100644
index 0000000..240a26e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CSGMembershipInfo.h
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CSGMembershipInfo_H_
+#define _CSGMembershipInfo_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "CSGMembershipStatus.h"
+#include "CSG-Id.h"
+#include "CellAccessMode.h"
+#include "PLMNidentity.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* CSGMembershipInfo */
+typedef struct CSGMembershipInfo {
+ CSGMembershipStatus_t cSGMembershipStatus;
+ CSG_Id_t cSG_Id;
+ CellAccessMode_t *cellAccessMode; /* OPTIONAL */
+ PLMNidentity_t *pLMNidentity; /* 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;
+} CSGMembershipInfo_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CSGMembershipInfo;
+extern asn_SEQUENCE_specifics_t asn_SPC_CSGMembershipInfo_specs_1;
+extern asn_TYPE_member_t asn_MBR_CSGMembershipInfo_1[5];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CSGMembershipInfo_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CSGMembershipStatus.h b/src/s1ap/asn1c/asnGenFiles/CSGMembershipStatus.h
new file mode 100644
index 0000000..bf58404
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CSGMembershipStatus.h
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CSGMembershipStatus_H_
+#define _CSGMembershipStatus_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CSGMembershipStatus {
+ CSGMembershipStatus_member = 0,
+ CSGMembershipStatus_not_member = 1
+} e_CSGMembershipStatus;
+
+/* CSGMembershipStatus */
+typedef long CSGMembershipStatus_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_CSGMembershipStatus_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_CSGMembershipStatus;
+extern const asn_INTEGER_specifics_t asn_SPC_CSGMembershipStatus_specs_1;
+asn_struct_free_f CSGMembershipStatus_free;
+asn_struct_print_f CSGMembershipStatus_print;
+asn_constr_check_f CSGMembershipStatus_constraint;
+ber_type_decoder_f CSGMembershipStatus_decode_ber;
+der_type_encoder_f CSGMembershipStatus_encode_der;
+xer_type_decoder_f CSGMembershipStatus_decode_xer;
+xer_type_encoder_f CSGMembershipStatus_encode_xer;
+oer_type_decoder_f CSGMembershipStatus_decode_oer;
+oer_type_encoder_f CSGMembershipStatus_encode_oer;
+per_type_decoder_f CSGMembershipStatus_decode_uper;
+per_type_encoder_f CSGMembershipStatus_encode_uper;
+per_type_decoder_f CSGMembershipStatus_decode_aper;
+per_type_encoder_f CSGMembershipStatus_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CSGMembershipStatus_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CancelledCellinEAI-Item.h b/src/s1ap/asn1c/asnGenFiles/CancelledCellinEAI-Item.h
new file mode 100644
index 0000000..5472cc9
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CancelledCellinEAI-Item.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CancelledCellinEAI_Item_H_
+#define _CancelledCellinEAI_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "EUTRAN-CGI.h"
+#include "NumberOfBroadcasts.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* CancelledCellinEAI-Item */
+typedef struct CancelledCellinEAI_Item {
+ EUTRAN_CGI_t eCGI;
+ 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;
+} CancelledCellinEAI_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CancelledCellinEAI_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_CancelledCellinEAI_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_CancelledCellinEAI_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CancelledCellinEAI_Item_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CancelledCellinEAI.h b/src/s1ap/asn1c/asnGenFiles/CancelledCellinEAI.h
new file mode 100644
index 0000000..a244c3f
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CancelledCellinEAI.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CancelledCellinEAI_H_
+#define _CancelledCellinEAI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct CancelledCellinEAI_Item;
+
+/* CancelledCellinEAI */
+typedef struct CancelledCellinEAI {
+ A_SEQUENCE_OF(struct CancelledCellinEAI_Item) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} CancelledCellinEAI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CancelledCellinEAI;
+extern asn_SET_OF_specifics_t asn_SPC_CancelledCellinEAI_specs_1;
+extern asn_TYPE_member_t asn_MBR_CancelledCellinEAI_1[1];
+extern asn_per_constraints_t asn_PER_type_CancelledCellinEAI_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CancelledCellinEAI_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CancelledCellinTAI-Item.h b/src/s1ap/asn1c/asnGenFiles/CancelledCellinTAI-Item.h
new file mode 100644
index 0000000..37beed5
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CancelledCellinTAI-Item.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CancelledCellinTAI_Item_H_
+#define _CancelledCellinTAI_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "EUTRAN-CGI.h"
+#include "NumberOfBroadcasts.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* CancelledCellinTAI-Item */
+typedef struct CancelledCellinTAI_Item {
+ EUTRAN_CGI_t eCGI;
+ 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;
+} CancelledCellinTAI_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CancelledCellinTAI_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_CancelledCellinTAI_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_CancelledCellinTAI_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CancelledCellinTAI_Item_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CancelledCellinTAI.h b/src/s1ap/asn1c/asnGenFiles/CancelledCellinTAI.h
new file mode 100644
index 0000000..de668a3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CancelledCellinTAI.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CancelledCellinTAI_H_
+#define _CancelledCellinTAI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct CancelledCellinTAI_Item;
+
+/* CancelledCellinTAI */
+typedef struct CancelledCellinTAI {
+ A_SEQUENCE_OF(struct CancelledCellinTAI_Item) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} CancelledCellinTAI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CancelledCellinTAI;
+extern asn_SET_OF_specifics_t asn_SPC_CancelledCellinTAI_specs_1;
+extern asn_TYPE_member_t asn_MBR_CancelledCellinTAI_1[1];
+extern asn_per_constraints_t asn_PER_type_CancelledCellinTAI_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CancelledCellinTAI_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Cause.h b/src/s1ap/asn1c/asnGenFiles/Cause.h
new file mode 100644
index 0000000..b2d3cbc
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Cause.h
@@ -0,0 +1,68 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Cause_H_
+#define _Cause_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "CauseRadioNetwork.h"
+#include "CauseTransport.h"
+#include "CauseNas.h"
+#include "CauseProtocol.h"
+#include "CauseMisc.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Cause_PR {
+ Cause_PR_NOTHING, /* No components present */
+ Cause_PR_radioNetwork,
+ Cause_PR_transport,
+ Cause_PR_nas,
+ Cause_PR_protocol,
+ Cause_PR_misc
+ /* Extensions may appear below */
+
+} Cause_PR;
+
+/* Cause */
+typedef struct Cause {
+ Cause_PR present;
+ union Cause_u {
+ CauseRadioNetwork_t radioNetwork;
+ CauseTransport_t transport;
+ CauseNas_t nas;
+ CauseProtocol_t protocol;
+ CauseMisc_t misc;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} Cause_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Cause;
+extern asn_CHOICE_specifics_t asn_SPC_Cause_specs_1;
+extern asn_TYPE_member_t asn_MBR_Cause_1[5];
+extern asn_per_constraints_t asn_PER_type_Cause_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Cause_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CauseMisc.h b/src/s1ap/asn1c/asnGenFiles/CauseMisc.h
new file mode 100644
index 0000000..41607d4
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CauseMisc.h
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CauseMisc_H_
+#define _CauseMisc_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CauseMisc {
+ CauseMisc_control_processing_overload = 0,
+ CauseMisc_not_enough_user_plane_processing_resources = 1,
+ CauseMisc_hardware_failure = 2,
+ CauseMisc_om_intervention = 3,
+ CauseMisc_unspecified = 4,
+ CauseMisc_unknown_PLMN = 5
+ /*
+ * Enumeration is extensible
+ */
+} e_CauseMisc;
+
+/* CauseMisc */
+typedef long CauseMisc_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_CauseMisc_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_CauseMisc;
+extern const asn_INTEGER_specifics_t asn_SPC_CauseMisc_specs_1;
+asn_struct_free_f CauseMisc_free;
+asn_struct_print_f CauseMisc_print;
+asn_constr_check_f CauseMisc_constraint;
+ber_type_decoder_f CauseMisc_decode_ber;
+der_type_encoder_f CauseMisc_encode_der;
+xer_type_decoder_f CauseMisc_decode_xer;
+xer_type_encoder_f CauseMisc_encode_xer;
+oer_type_decoder_f CauseMisc_decode_oer;
+oer_type_encoder_f CauseMisc_encode_oer;
+per_type_decoder_f CauseMisc_decode_uper;
+per_type_encoder_f CauseMisc_encode_uper;
+per_type_decoder_f CauseMisc_decode_aper;
+per_type_encoder_f CauseMisc_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CauseMisc_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CauseNas.h b/src/s1ap/asn1c/asnGenFiles/CauseNas.h
new file mode 100644
index 0000000..0e24347
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CauseNas.h
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CauseNas_H_
+#define _CauseNas_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CauseNas {
+ CauseNas_normal_release = 0,
+ CauseNas_authentication_failure = 1,
+ CauseNas_detach = 2,
+ CauseNas_unspecified = 3,
+ /*
+ * Enumeration is extensible
+ */
+ CauseNas_csg_subscription_expiry = 4
+} e_CauseNas;
+
+/* CauseNas */
+typedef long CauseNas_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_CauseNas_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_CauseNas;
+extern const asn_INTEGER_specifics_t asn_SPC_CauseNas_specs_1;
+asn_struct_free_f CauseNas_free;
+asn_struct_print_f CauseNas_print;
+asn_constr_check_f CauseNas_constraint;
+ber_type_decoder_f CauseNas_decode_ber;
+der_type_encoder_f CauseNas_encode_der;
+xer_type_decoder_f CauseNas_decode_xer;
+xer_type_encoder_f CauseNas_encode_xer;
+oer_type_decoder_f CauseNas_decode_oer;
+oer_type_encoder_f CauseNas_encode_oer;
+per_type_decoder_f CauseNas_decode_uper;
+per_type_encoder_f CauseNas_encode_uper;
+per_type_decoder_f CauseNas_decode_aper;
+per_type_encoder_f CauseNas_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CauseNas_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CauseProtocol.h b/src/s1ap/asn1c/asnGenFiles/CauseProtocol.h
new file mode 100644
index 0000000..dfc32ed
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CauseProtocol.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CauseProtocol_H_
+#define _CauseProtocol_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CauseProtocol {
+ CauseProtocol_transfer_syntax_error = 0,
+ CauseProtocol_abstract_syntax_error_reject = 1,
+ CauseProtocol_abstract_syntax_error_ignore_and_notify = 2,
+ CauseProtocol_message_not_compatible_with_receiver_state = 3,
+ CauseProtocol_semantic_error = 4,
+ CauseProtocol_abstract_syntax_error_falsely_constructed_message = 5,
+ CauseProtocol_unspecified = 6
+ /*
+ * Enumeration is extensible
+ */
+} e_CauseProtocol;
+
+/* CauseProtocol */
+typedef long CauseProtocol_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_CauseProtocol_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_CauseProtocol;
+extern const asn_INTEGER_specifics_t asn_SPC_CauseProtocol_specs_1;
+asn_struct_free_f CauseProtocol_free;
+asn_struct_print_f CauseProtocol_print;
+asn_constr_check_f CauseProtocol_constraint;
+ber_type_decoder_f CauseProtocol_decode_ber;
+der_type_encoder_f CauseProtocol_encode_der;
+xer_type_decoder_f CauseProtocol_decode_xer;
+xer_type_encoder_f CauseProtocol_encode_xer;
+oer_type_decoder_f CauseProtocol_decode_oer;
+oer_type_encoder_f CauseProtocol_encode_oer;
+per_type_decoder_f CauseProtocol_decode_uper;
+per_type_encoder_f CauseProtocol_encode_uper;
+per_type_decoder_f CauseProtocol_decode_aper;
+per_type_encoder_f CauseProtocol_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CauseProtocol_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CauseRadioNetwork.h b/src/s1ap/asn1c/asnGenFiles/CauseRadioNetwork.h
new file mode 100644
index 0000000..b127684
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CauseRadioNetwork.h
@@ -0,0 +1,94 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CauseRadioNetwork_H_
+#define _CauseRadioNetwork_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CauseRadioNetwork {
+ CauseRadioNetwork_unspecified = 0,
+ CauseRadioNetwork_tx2relocoverall_expiry = 1,
+ CauseRadioNetwork_successful_handover = 2,
+ CauseRadioNetwork_release_due_to_eutran_generated_reason = 3,
+ CauseRadioNetwork_handover_cancelled = 4,
+ CauseRadioNetwork_partial_handover = 5,
+ CauseRadioNetwork_ho_failure_in_target_EPC_eNB_or_target_system = 6,
+ CauseRadioNetwork_ho_target_not_allowed = 7,
+ CauseRadioNetwork_tS1relocoverall_expiry = 8,
+ CauseRadioNetwork_tS1relocprep_expiry = 9,
+ CauseRadioNetwork_cell_not_available = 10,
+ CauseRadioNetwork_unknown_targetID = 11,
+ CauseRadioNetwork_no_radio_resources_available_in_target_cell = 12,
+ CauseRadioNetwork_unknown_mme_ue_s1ap_id = 13,
+ CauseRadioNetwork_unknown_enb_ue_s1ap_id = 14,
+ CauseRadioNetwork_unknown_pair_ue_s1ap_id = 15,
+ CauseRadioNetwork_handover_desirable_for_radio_reason = 16,
+ CauseRadioNetwork_time_critical_handover = 17,
+ CauseRadioNetwork_resource_optimisation_handover = 18,
+ CauseRadioNetwork_reduce_load_in_serving_cell = 19,
+ CauseRadioNetwork_user_inactivity = 20,
+ CauseRadioNetwork_radio_connection_with_ue_lost = 21,
+ CauseRadioNetwork_load_balancing_tau_required = 22,
+ CauseRadioNetwork_cs_fallback_triggered = 23,
+ CauseRadioNetwork_ue_not_available_for_ps_service = 24,
+ CauseRadioNetwork_radio_resources_not_available = 25,
+ CauseRadioNetwork_failure_in_radio_interface_procedure = 26,
+ CauseRadioNetwork_invalid_qos_combination = 27,
+ CauseRadioNetwork_interrat_redirection = 28,
+ CauseRadioNetwork_interaction_with_other_procedure = 29,
+ CauseRadioNetwork_unknown_E_RAB_ID = 30,
+ CauseRadioNetwork_multiple_E_RAB_ID_instances = 31,
+ CauseRadioNetwork_encryption_and_or_integrity_protection_algorithms_not_supported = 32,
+ CauseRadioNetwork_s1_intra_system_handover_triggered = 33,
+ CauseRadioNetwork_s1_inter_system_handover_triggered = 34,
+ CauseRadioNetwork_x2_handover_triggered = 35,
+ /*
+ * Enumeration is extensible
+ */
+ CauseRadioNetwork_redirection_towards_1xRTT = 36,
+ CauseRadioNetwork_not_supported_QCI_value = 37,
+ CauseRadioNetwork_invalid_CSG_Id = 38,
+ CauseRadioNetwork_release_due_to_pre_emption = 39
+} 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 <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CauseTransport.h b/src/s1ap/asn1c/asnGenFiles/CauseTransport.h
new file mode 100644
index 0000000..a67cb03
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CauseTransport.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CauseTransport_H_
+#define _CauseTransport_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CauseTransport {
+ CauseTransport_transport_resource_unavailable = 0,
+ CauseTransport_unspecified = 1
+ /*
+ * Enumeration is extensible
+ */
+} e_CauseTransport;
+
+/* CauseTransport */
+typedef long CauseTransport_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_CauseTransport_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_CauseTransport;
+extern const asn_INTEGER_specifics_t asn_SPC_CauseTransport_specs_1;
+asn_struct_free_f CauseTransport_free;
+asn_struct_print_f CauseTransport_print;
+asn_constr_check_f CauseTransport_constraint;
+ber_type_decoder_f CauseTransport_decode_ber;
+der_type_encoder_f CauseTransport_encode_der;
+xer_type_decoder_f CauseTransport_decode_xer;
+xer_type_encoder_f CauseTransport_encode_xer;
+oer_type_decoder_f CauseTransport_decode_oer;
+oer_type_encoder_f CauseTransport_encode_oer;
+per_type_decoder_f CauseTransport_decode_uper;
+per_type_encoder_f CauseTransport_encode_uper;
+per_type_decoder_f CauseTransport_decode_aper;
+per_type_encoder_f CauseTransport_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CauseTransport_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Cdma2000HORequiredIndication.h b/src/s1ap/asn1c/asnGenFiles/Cdma2000HORequiredIndication.h
new file mode 100644
index 0000000..7cb55c6
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Cdma2000HORequiredIndication.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Cdma2000HORequiredIndication_H_
+#define _Cdma2000HORequiredIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Cdma2000HORequiredIndication {
+ Cdma2000HORequiredIndication_true = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_Cdma2000HORequiredIndication;
+
+/* Cdma2000HORequiredIndication */
+typedef long Cdma2000HORequiredIndication_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Cdma2000HORequiredIndication_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Cdma2000HORequiredIndication;
+extern const asn_INTEGER_specifics_t asn_SPC_Cdma2000HORequiredIndication_specs_1;
+asn_struct_free_f Cdma2000HORequiredIndication_free;
+asn_struct_print_f Cdma2000HORequiredIndication_print;
+asn_constr_check_f Cdma2000HORequiredIndication_constraint;
+ber_type_decoder_f Cdma2000HORequiredIndication_decode_ber;
+der_type_encoder_f Cdma2000HORequiredIndication_encode_der;
+xer_type_decoder_f Cdma2000HORequiredIndication_decode_xer;
+xer_type_encoder_f Cdma2000HORequiredIndication_encode_xer;
+oer_type_decoder_f Cdma2000HORequiredIndication_decode_oer;
+oer_type_encoder_f Cdma2000HORequiredIndication_encode_oer;
+per_type_decoder_f Cdma2000HORequiredIndication_decode_uper;
+per_type_encoder_f Cdma2000HORequiredIndication_encode_uper;
+per_type_decoder_f Cdma2000HORequiredIndication_decode_aper;
+per_type_encoder_f Cdma2000HORequiredIndication_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Cdma2000HORequiredIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Cdma2000HOStatus.h b/src/s1ap/asn1c/asnGenFiles/Cdma2000HOStatus.h
new file mode 100644
index 0000000..6cbb1a2
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Cdma2000HOStatus.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Cdma2000HOStatus_H_
+#define _Cdma2000HOStatus_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Cdma2000HOStatus {
+ Cdma2000HOStatus_hOSuccess = 0,
+ Cdma2000HOStatus_hOFailure = 1
+ /*
+ * Enumeration is extensible
+ */
+} e_Cdma2000HOStatus;
+
+/* Cdma2000HOStatus */
+typedef long Cdma2000HOStatus_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Cdma2000HOStatus_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Cdma2000HOStatus;
+extern const asn_INTEGER_specifics_t asn_SPC_Cdma2000HOStatus_specs_1;
+asn_struct_free_f Cdma2000HOStatus_free;
+asn_struct_print_f Cdma2000HOStatus_print;
+asn_constr_check_f Cdma2000HOStatus_constraint;
+ber_type_decoder_f Cdma2000HOStatus_decode_ber;
+der_type_encoder_f Cdma2000HOStatus_encode_der;
+xer_type_decoder_f Cdma2000HOStatus_decode_xer;
+xer_type_encoder_f Cdma2000HOStatus_encode_xer;
+oer_type_decoder_f Cdma2000HOStatus_decode_oer;
+oer_type_encoder_f Cdma2000HOStatus_encode_oer;
+per_type_decoder_f Cdma2000HOStatus_decode_uper;
+per_type_encoder_f Cdma2000HOStatus_encode_uper;
+per_type_decoder_f Cdma2000HOStatus_decode_aper;
+per_type_encoder_f Cdma2000HOStatus_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Cdma2000HOStatus_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Cdma2000OneXMEID.h b/src/s1ap/asn1c/asnGenFiles/Cdma2000OneXMEID.h
new file mode 100644
index 0000000..da1a7a2
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Cdma2000OneXMEID.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Cdma2000OneXMEID_H_
+#define _Cdma2000OneXMEID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Cdma2000OneXMEID */
+typedef OCTET_STRING_t Cdma2000OneXMEID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Cdma2000OneXMEID;
+asn_struct_free_f Cdma2000OneXMEID_free;
+asn_struct_print_f Cdma2000OneXMEID_print;
+asn_constr_check_f Cdma2000OneXMEID_constraint;
+ber_type_decoder_f Cdma2000OneXMEID_decode_ber;
+der_type_encoder_f Cdma2000OneXMEID_encode_der;
+xer_type_decoder_f Cdma2000OneXMEID_decode_xer;
+xer_type_encoder_f Cdma2000OneXMEID_encode_xer;
+oer_type_decoder_f Cdma2000OneXMEID_decode_oer;
+oer_type_encoder_f Cdma2000OneXMEID_encode_oer;
+per_type_decoder_f Cdma2000OneXMEID_decode_uper;
+per_type_encoder_f Cdma2000OneXMEID_encode_uper;
+per_type_decoder_f Cdma2000OneXMEID_decode_aper;
+per_type_encoder_f Cdma2000OneXMEID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Cdma2000OneXMEID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Cdma2000OneXMSI.h b/src/s1ap/asn1c/asnGenFiles/Cdma2000OneXMSI.h
new file mode 100644
index 0000000..38d6015
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Cdma2000OneXMSI.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Cdma2000OneXMSI_H_
+#define _Cdma2000OneXMSI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Cdma2000OneXMSI */
+typedef OCTET_STRING_t Cdma2000OneXMSI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Cdma2000OneXMSI;
+asn_struct_free_f Cdma2000OneXMSI_free;
+asn_struct_print_f Cdma2000OneXMSI_print;
+asn_constr_check_f Cdma2000OneXMSI_constraint;
+ber_type_decoder_f Cdma2000OneXMSI_decode_ber;
+der_type_encoder_f Cdma2000OneXMSI_encode_der;
+xer_type_decoder_f Cdma2000OneXMSI_decode_xer;
+xer_type_encoder_f Cdma2000OneXMSI_encode_xer;
+oer_type_decoder_f Cdma2000OneXMSI_decode_oer;
+oer_type_encoder_f Cdma2000OneXMSI_encode_oer;
+per_type_decoder_f Cdma2000OneXMSI_decode_uper;
+per_type_encoder_f Cdma2000OneXMSI_encode_uper;
+per_type_decoder_f Cdma2000OneXMSI_decode_aper;
+per_type_encoder_f Cdma2000OneXMSI_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Cdma2000OneXMSI_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Cdma2000OneXPilot.h b/src/s1ap/asn1c/asnGenFiles/Cdma2000OneXPilot.h
new file mode 100644
index 0000000..c25ff66
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Cdma2000OneXPilot.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Cdma2000OneXPilot_H_
+#define _Cdma2000OneXPilot_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Cdma2000OneXPilot */
+typedef OCTET_STRING_t Cdma2000OneXPilot_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Cdma2000OneXPilot;
+asn_struct_free_f Cdma2000OneXPilot_free;
+asn_struct_print_f Cdma2000OneXPilot_print;
+asn_constr_check_f Cdma2000OneXPilot_constraint;
+ber_type_decoder_f Cdma2000OneXPilot_decode_ber;
+der_type_encoder_f Cdma2000OneXPilot_encode_der;
+xer_type_decoder_f Cdma2000OneXPilot_decode_xer;
+xer_type_encoder_f Cdma2000OneXPilot_encode_xer;
+oer_type_decoder_f Cdma2000OneXPilot_decode_oer;
+oer_type_encoder_f Cdma2000OneXPilot_encode_oer;
+per_type_decoder_f Cdma2000OneXPilot_decode_uper;
+per_type_encoder_f Cdma2000OneXPilot_encode_uper;
+per_type_decoder_f Cdma2000OneXPilot_decode_aper;
+per_type_encoder_f Cdma2000OneXPilot_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Cdma2000OneXPilot_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Cdma2000OneXRAND.h b/src/s1ap/asn1c/asnGenFiles/Cdma2000OneXRAND.h
new file mode 100644
index 0000000..86a6713
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Cdma2000OneXRAND.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Cdma2000OneXRAND_H_
+#define _Cdma2000OneXRAND_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Cdma2000OneXRAND */
+typedef OCTET_STRING_t Cdma2000OneXRAND_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Cdma2000OneXRAND;
+asn_struct_free_f Cdma2000OneXRAND_free;
+asn_struct_print_f Cdma2000OneXRAND_print;
+asn_constr_check_f Cdma2000OneXRAND_constraint;
+ber_type_decoder_f Cdma2000OneXRAND_decode_ber;
+der_type_encoder_f Cdma2000OneXRAND_encode_der;
+xer_type_decoder_f Cdma2000OneXRAND_decode_xer;
+xer_type_encoder_f Cdma2000OneXRAND_encode_xer;
+oer_type_decoder_f Cdma2000OneXRAND_decode_oer;
+oer_type_encoder_f Cdma2000OneXRAND_encode_oer;
+per_type_decoder_f Cdma2000OneXRAND_decode_uper;
+per_type_encoder_f Cdma2000OneXRAND_encode_uper;
+per_type_decoder_f Cdma2000OneXRAND_decode_aper;
+per_type_encoder_f Cdma2000OneXRAND_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Cdma2000OneXRAND_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Cdma2000OneXSRVCCInfo.h b/src/s1ap/asn1c/asnGenFiles/Cdma2000OneXSRVCCInfo.h
new file mode 100644
index 0000000..24c4e2c
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Cdma2000OneXSRVCCInfo.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Cdma2000OneXSRVCCInfo_H_
+#define _Cdma2000OneXSRVCCInfo_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "Cdma2000OneXMEID.h"
+#include "Cdma2000OneXMSI.h"
+#include "Cdma2000OneXPilot.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* Cdma2000OneXSRVCCInfo */
+typedef struct Cdma2000OneXSRVCCInfo {
+ Cdma2000OneXMEID_t cdma2000OneXMEID;
+ Cdma2000OneXMSI_t cdma2000OneXMSI;
+ Cdma2000OneXPilot_t cdma2000OneXPilot;
+ 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;
+} Cdma2000OneXSRVCCInfo_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Cdma2000OneXSRVCCInfo;
+extern asn_SEQUENCE_specifics_t asn_SPC_Cdma2000OneXSRVCCInfo_specs_1;
+extern asn_TYPE_member_t asn_MBR_Cdma2000OneXSRVCCInfo_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Cdma2000OneXSRVCCInfo_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Cdma2000PDU.h b/src/s1ap/asn1c/asnGenFiles/Cdma2000PDU.h
new file mode 100644
index 0000000..c14d356
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Cdma2000PDU.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Cdma2000PDU_H_
+#define _Cdma2000PDU_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Cdma2000PDU */
+typedef OCTET_STRING_t Cdma2000PDU_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Cdma2000PDU;
+asn_struct_free_f Cdma2000PDU_free;
+asn_struct_print_f Cdma2000PDU_print;
+asn_constr_check_f Cdma2000PDU_constraint;
+ber_type_decoder_f Cdma2000PDU_decode_ber;
+der_type_encoder_f Cdma2000PDU_encode_der;
+xer_type_decoder_f Cdma2000PDU_decode_xer;
+xer_type_encoder_f Cdma2000PDU_encode_xer;
+oer_type_decoder_f Cdma2000PDU_decode_oer;
+oer_type_encoder_f Cdma2000PDU_encode_oer;
+per_type_decoder_f Cdma2000PDU_decode_uper;
+per_type_encoder_f Cdma2000PDU_encode_uper;
+per_type_decoder_f Cdma2000PDU_decode_aper;
+per_type_encoder_f Cdma2000PDU_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Cdma2000PDU_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Cdma2000RATType.h b/src/s1ap/asn1c/asnGenFiles/Cdma2000RATType.h
new file mode 100644
index 0000000..5c4a8e8
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Cdma2000RATType.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Cdma2000RATType_H_
+#define _Cdma2000RATType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Cdma2000RATType {
+ Cdma2000RATType_hRPD = 0,
+ Cdma2000RATType_onexRTT = 1
+ /*
+ * Enumeration is extensible
+ */
+} e_Cdma2000RATType;
+
+/* Cdma2000RATType */
+typedef long Cdma2000RATType_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Cdma2000RATType_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Cdma2000RATType;
+extern const asn_INTEGER_specifics_t asn_SPC_Cdma2000RATType_specs_1;
+asn_struct_free_f Cdma2000RATType_free;
+asn_struct_print_f Cdma2000RATType_print;
+asn_constr_check_f Cdma2000RATType_constraint;
+ber_type_decoder_f Cdma2000RATType_decode_ber;
+der_type_encoder_f Cdma2000RATType_encode_der;
+xer_type_decoder_f Cdma2000RATType_decode_xer;
+xer_type_encoder_f Cdma2000RATType_encode_xer;
+oer_type_decoder_f Cdma2000RATType_decode_oer;
+oer_type_encoder_f Cdma2000RATType_encode_oer;
+per_type_decoder_f Cdma2000RATType_decode_uper;
+per_type_encoder_f Cdma2000RATType_encode_uper;
+per_type_decoder_f Cdma2000RATType_decode_aper;
+per_type_encoder_f Cdma2000RATType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Cdma2000RATType_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Cdma2000SectorID.h b/src/s1ap/asn1c/asnGenFiles/Cdma2000SectorID.h
new file mode 100644
index 0000000..1a2f4d4
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Cdma2000SectorID.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Cdma2000SectorID_H_
+#define _Cdma2000SectorID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Cdma2000SectorID */
+typedef OCTET_STRING_t Cdma2000SectorID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Cdma2000SectorID;
+asn_struct_free_f Cdma2000SectorID_free;
+asn_struct_print_f Cdma2000SectorID_print;
+asn_constr_check_f Cdma2000SectorID_constraint;
+ber_type_decoder_f Cdma2000SectorID_decode_ber;
+der_type_encoder_f Cdma2000SectorID_encode_der;
+xer_type_decoder_f Cdma2000SectorID_decode_xer;
+xer_type_encoder_f Cdma2000SectorID_encode_xer;
+oer_type_decoder_f Cdma2000SectorID_decode_oer;
+oer_type_encoder_f Cdma2000SectorID_encode_oer;
+per_type_decoder_f Cdma2000SectorID_decode_uper;
+per_type_encoder_f Cdma2000SectorID_encode_uper;
+per_type_decoder_f Cdma2000SectorID_decode_aper;
+per_type_encoder_f Cdma2000SectorID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Cdma2000SectorID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Cell-Size.h b/src/s1ap/asn1c/asnGenFiles/Cell-Size.h
new file mode 100644
index 0000000..7180089
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Cell-Size.h
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Cell_Size_H_
+#define _Cell_Size_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Cell_Size {
+ Cell_Size_verysmall = 0,
+ Cell_Size_small = 1,
+ Cell_Size_medium = 2,
+ Cell_Size_large = 3
+ /*
+ * Enumeration is extensible
+ */
+} e_Cell_Size;
+
+/* Cell-Size */
+typedef long Cell_Size_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Cell_Size_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Cell_Size;
+extern const asn_INTEGER_specifics_t asn_SPC_Cell_Size_specs_1;
+asn_struct_free_f Cell_Size_free;
+asn_struct_print_f Cell_Size_print;
+asn_constr_check_f Cell_Size_constraint;
+ber_type_decoder_f Cell_Size_decode_ber;
+der_type_encoder_f Cell_Size_encode_der;
+xer_type_decoder_f Cell_Size_decode_xer;
+xer_type_encoder_f Cell_Size_encode_xer;
+oer_type_decoder_f Cell_Size_decode_oer;
+oer_type_encoder_f Cell_Size_encode_oer;
+per_type_decoder_f Cell_Size_decode_uper;
+per_type_encoder_f Cell_Size_encode_uper;
+per_type_decoder_f Cell_Size_decode_aper;
+per_type_encoder_f Cell_Size_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Cell_Size_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CellAccessMode.h b/src/s1ap/asn1c/asnGenFiles/CellAccessMode.h
new file mode 100644
index 0000000..6da8223
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CellAccessMode.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CellAccessMode_H_
+#define _CellAccessMode_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CellAccessMode {
+ CellAccessMode_hybrid = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_CellAccessMode;
+
+/* CellAccessMode */
+typedef long CellAccessMode_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_CellAccessMode_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_CellAccessMode;
+extern const asn_INTEGER_specifics_t asn_SPC_CellAccessMode_specs_1;
+asn_struct_free_f CellAccessMode_free;
+asn_struct_print_f CellAccessMode_print;
+asn_constr_check_f CellAccessMode_constraint;
+ber_type_decoder_f CellAccessMode_decode_ber;
+der_type_encoder_f CellAccessMode_encode_der;
+xer_type_decoder_f CellAccessMode_decode_xer;
+xer_type_encoder_f CellAccessMode_encode_xer;
+oer_type_decoder_f CellAccessMode_decode_oer;
+oer_type_encoder_f CellAccessMode_encode_oer;
+per_type_decoder_f CellAccessMode_decode_uper;
+per_type_encoder_f CellAccessMode_encode_uper;
+per_type_decoder_f CellAccessMode_decode_aper;
+per_type_encoder_f CellAccessMode_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellAccessMode_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CellBasedMDT.h b/src/s1ap/asn1c/asnGenFiles/CellBasedMDT.h
new file mode 100644
index 0000000..d69eca8
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CellBasedMDT.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CellBasedMDT_H_
+#define _CellBasedMDT_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "CellIdListforMDT.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* CellBasedMDT */
+typedef struct CellBasedMDT {
+ CellIdListforMDT_t cellIdListforMDT;
+ 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;
+} CellBasedMDT_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellBasedMDT;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellBasedMDT_specs_1;
+extern asn_TYPE_member_t asn_MBR_CellBasedMDT_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellBasedMDT_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CellBasedQMC.h b/src/s1ap/asn1c/asnGenFiles/CellBasedQMC.h
new file mode 100644
index 0000000..e6af5fb
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CellBasedQMC.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CellBasedQMC_H_
+#define _CellBasedQMC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "CellIdListforQMC.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* CellBasedQMC */
+typedef struct CellBasedQMC {
+ CellIdListforQMC_t cellIdListforQMC;
+ 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;
+} CellBasedQMC_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellBasedQMC;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellBasedQMC_specs_1;
+extern asn_TYPE_member_t asn_MBR_CellBasedQMC_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellBasedQMC_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CellID-Broadcast-Item.h b/src/s1ap/asn1c/asnGenFiles/CellID-Broadcast-Item.h
new file mode 100644
index 0000000..946b453
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CellID-Broadcast-Item.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CellID_Broadcast_Item_H_
+#define _CellID_Broadcast_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "EUTRAN-CGI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* CellID-Broadcast-Item */
+typedef struct CellID_Broadcast_Item {
+ EUTRAN_CGI_t eCGI;
+ 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;
+} CellID_Broadcast_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellID_Broadcast_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellID_Broadcast_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_CellID_Broadcast_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellID_Broadcast_Item_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CellID-Broadcast.h b/src/s1ap/asn1c/asnGenFiles/CellID-Broadcast.h
new file mode 100644
index 0000000..b7d7392
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CellID-Broadcast.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CellID_Broadcast_H_
+#define _CellID_Broadcast_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct CellID_Broadcast_Item;
+
+/* CellID-Broadcast */
+typedef struct CellID_Broadcast {
+ A_SEQUENCE_OF(struct CellID_Broadcast_Item) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} CellID_Broadcast_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellID_Broadcast;
+extern asn_SET_OF_specifics_t asn_SPC_CellID_Broadcast_specs_1;
+extern asn_TYPE_member_t asn_MBR_CellID_Broadcast_1[1];
+extern asn_per_constraints_t asn_PER_type_CellID_Broadcast_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellID_Broadcast_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CellID-Cancelled-Item.h b/src/s1ap/asn1c/asnGenFiles/CellID-Cancelled-Item.h
new file mode 100644
index 0000000..5d66a10
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CellID-Cancelled-Item.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CellID_Cancelled_Item_H_
+#define _CellID_Cancelled_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "EUTRAN-CGI.h"
+#include "NumberOfBroadcasts.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* CellID-Cancelled-Item */
+typedef struct CellID_Cancelled_Item {
+ EUTRAN_CGI_t eCGI;
+ 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;
+} CellID_Cancelled_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellID_Cancelled_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellID_Cancelled_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_CellID_Cancelled_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellID_Cancelled_Item_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CellID-Cancelled.h b/src/s1ap/asn1c/asnGenFiles/CellID-Cancelled.h
new file mode 100644
index 0000000..f26f3a3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CellID-Cancelled.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CellID_Cancelled_H_
+#define _CellID_Cancelled_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct CellID_Cancelled_Item;
+
+/* CellID-Cancelled */
+typedef struct CellID_Cancelled {
+ A_SEQUENCE_OF(struct CellID_Cancelled_Item) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} CellID_Cancelled_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellID_Cancelled;
+extern asn_SET_OF_specifics_t asn_SPC_CellID_Cancelled_specs_1;
+extern asn_TYPE_member_t asn_MBR_CellID_Cancelled_1[1];
+extern asn_per_constraints_t asn_PER_type_CellID_Cancelled_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellID_Cancelled_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CellIdListforMDT.h b/src/s1ap/asn1c/asnGenFiles/CellIdListforMDT.h
new file mode 100644
index 0000000..360bd16
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CellIdListforMDT.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CellIdListforMDT_H_
+#define _CellIdListforMDT_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct EUTRAN_CGI;
+
+/* CellIdListforMDT */
+typedef struct CellIdListforMDT {
+ A_SEQUENCE_OF(struct EUTRAN_CGI) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} CellIdListforMDT_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellIdListforMDT;
+extern asn_SET_OF_specifics_t asn_SPC_CellIdListforMDT_specs_1;
+extern asn_TYPE_member_t asn_MBR_CellIdListforMDT_1[1];
+extern asn_per_constraints_t asn_PER_type_CellIdListforMDT_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellIdListforMDT_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CellIdListforQMC.h b/src/s1ap/asn1c/asnGenFiles/CellIdListforQMC.h
new file mode 100644
index 0000000..628e98b
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CellIdListforQMC.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CellIdListforQMC_H_
+#define _CellIdListforQMC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct EUTRAN_CGI;
+
+/* CellIdListforQMC */
+typedef struct CellIdListforQMC {
+ A_SEQUENCE_OF(struct EUTRAN_CGI) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} CellIdListforQMC_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellIdListforQMC;
+extern asn_SET_OF_specifics_t asn_SPC_CellIdListforQMC_specs_1;
+extern asn_TYPE_member_t asn_MBR_CellIdListforQMC_1[1];
+extern asn_per_constraints_t asn_PER_type_CellIdListforQMC_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellIdListforQMC_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CellIdentifierAndCELevelForCECapableUEs.h b/src/s1ap/asn1c/asnGenFiles/CellIdentifierAndCELevelForCECapableUEs.h
new file mode 100644
index 0000000..89f0cc4
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CellIdentifierAndCELevelForCECapableUEs.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CellIdentifierAndCELevelForCECapableUEs_H_
+#define _CellIdentifierAndCELevelForCECapableUEs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "EUTRAN-CGI.h"
+#include "CELevel.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* CellIdentifierAndCELevelForCECapableUEs */
+typedef struct CellIdentifierAndCELevelForCECapableUEs {
+ EUTRAN_CGI_t global_Cell_ID;
+ CELevel_t cELevel;
+ 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;
+} CellIdentifierAndCELevelForCECapableUEs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellIdentifierAndCELevelForCECapableUEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellIdentifierAndCELevelForCECapableUEs_specs_1;
+extern asn_TYPE_member_t asn_MBR_CellIdentifierAndCELevelForCECapableUEs_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellIdentifierAndCELevelForCECapableUEs_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CellIdentity.h b/src/s1ap/asn1c/asnGenFiles/CellIdentity.h
new file mode 100644
index 0000000..7a10ea8
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CellIdentity.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CellIdentity_H_
+#define _CellIdentity_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* CellIdentity */
+typedef BIT_STRING_t CellIdentity_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_CellIdentity_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_CellIdentity;
+asn_struct_free_f CellIdentity_free;
+asn_struct_print_f CellIdentity_print;
+asn_constr_check_f CellIdentity_constraint;
+ber_type_decoder_f CellIdentity_decode_ber;
+der_type_encoder_f CellIdentity_encode_der;
+xer_type_decoder_f CellIdentity_decode_xer;
+xer_type_encoder_f CellIdentity_encode_xer;
+oer_type_decoder_f CellIdentity_decode_oer;
+oer_type_encoder_f CellIdentity_encode_oer;
+per_type_decoder_f CellIdentity_decode_uper;
+per_type_encoder_f CellIdentity_encode_uper;
+per_type_decoder_f CellIdentity_decode_aper;
+per_type_encoder_f CellIdentity_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellIdentity_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CellTrafficTrace.h b/src/s1ap/asn1c/asnGenFiles/CellTrafficTrace.h
new file mode 100644
index 0000000..d6b8bfe
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CellTrafficTrace.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CellTrafficTrace_H_
+#define _CellTrafficTrace_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* CellTrafficTrace */
+typedef struct CellTrafficTrace {
+ ProtocolIE_Container_129P57_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} CellTrafficTrace_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellTrafficTrace;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellTrafficTrace_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CellType.h b/src/s1ap/asn1c/asnGenFiles/CellType.h
new file mode 100644
index 0000000..dfc855a
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CellType.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CellType_H_
+#define _CellType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "Cell-Size.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* CellType */
+typedef struct CellType {
+ Cell_Size_t cell_Size;
+ 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;
+} CellType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellType;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellType_specs_1;
+extern asn_TYPE_member_t asn_MBR_CellType_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellType_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CompletedCellinEAI-Item.h b/src/s1ap/asn1c/asnGenFiles/CompletedCellinEAI-Item.h
new file mode 100644
index 0000000..aa016ef
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CompletedCellinEAI-Item.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CompletedCellinEAI_Item_H_
+#define _CompletedCellinEAI_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "EUTRAN-CGI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* CompletedCellinEAI-Item */
+typedef struct CompletedCellinEAI_Item {
+ EUTRAN_CGI_t eCGI;
+ 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;
+} CompletedCellinEAI_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CompletedCellinEAI_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_CompletedCellinEAI_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_CompletedCellinEAI_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CompletedCellinEAI_Item_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CompletedCellinEAI.h b/src/s1ap/asn1c/asnGenFiles/CompletedCellinEAI.h
new file mode 100644
index 0000000..2a685ca
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CompletedCellinEAI.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CompletedCellinEAI_H_
+#define _CompletedCellinEAI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct CompletedCellinEAI_Item;
+
+/* CompletedCellinEAI */
+typedef struct CompletedCellinEAI {
+ A_SEQUENCE_OF(struct CompletedCellinEAI_Item) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} CompletedCellinEAI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CompletedCellinEAI;
+extern asn_SET_OF_specifics_t asn_SPC_CompletedCellinEAI_specs_1;
+extern asn_TYPE_member_t asn_MBR_CompletedCellinEAI_1[1];
+extern asn_per_constraints_t asn_PER_type_CompletedCellinEAI_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CompletedCellinEAI_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CompletedCellinTAI-Item.h b/src/s1ap/asn1c/asnGenFiles/CompletedCellinTAI-Item.h
new file mode 100644
index 0000000..6787d2c
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CompletedCellinTAI-Item.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CompletedCellinTAI_Item_H_
+#define _CompletedCellinTAI_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "EUTRAN-CGI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* CompletedCellinTAI-Item */
+typedef struct CompletedCellinTAI_Item {
+ EUTRAN_CGI_t eCGI;
+ 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;
+} CompletedCellinTAI_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CompletedCellinTAI_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_CompletedCellinTAI_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_CompletedCellinTAI_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CompletedCellinTAI_Item_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CompletedCellinTAI.h b/src/s1ap/asn1c/asnGenFiles/CompletedCellinTAI.h
new file mode 100644
index 0000000..108f04d
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CompletedCellinTAI.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CompletedCellinTAI_H_
+#define _CompletedCellinTAI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct CompletedCellinTAI_Item;
+
+/* CompletedCellinTAI */
+typedef struct CompletedCellinTAI {
+ A_SEQUENCE_OF(struct CompletedCellinTAI_Item) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} CompletedCellinTAI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CompletedCellinTAI;
+extern asn_SET_OF_specifics_t asn_SPC_CompletedCellinTAI_specs_1;
+extern asn_TYPE_member_t asn_MBR_CompletedCellinTAI_1[1];
+extern asn_per_constraints_t asn_PER_type_CompletedCellinTAI_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CompletedCellinTAI_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ConcurrentWarningMessageIndicator.h b/src/s1ap/asn1c/asnGenFiles/ConcurrentWarningMessageIndicator.h
new file mode 100644
index 0000000..846ebbb
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ConcurrentWarningMessageIndicator.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ConcurrentWarningMessageIndicator_H_
+#define _ConcurrentWarningMessageIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ConcurrentWarningMessageIndicator {
+ ConcurrentWarningMessageIndicator_true = 0
+} e_ConcurrentWarningMessageIndicator;
+
+/* ConcurrentWarningMessageIndicator */
+typedef long ConcurrentWarningMessageIndicator_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ConcurrentWarningMessageIndicator_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ConcurrentWarningMessageIndicator;
+extern const asn_INTEGER_specifics_t asn_SPC_ConcurrentWarningMessageIndicator_specs_1;
+asn_struct_free_f ConcurrentWarningMessageIndicator_free;
+asn_struct_print_f ConcurrentWarningMessageIndicator_print;
+asn_constr_check_f ConcurrentWarningMessageIndicator_constraint;
+ber_type_decoder_f ConcurrentWarningMessageIndicator_decode_ber;
+der_type_encoder_f ConcurrentWarningMessageIndicator_encode_der;
+xer_type_decoder_f ConcurrentWarningMessageIndicator_decode_xer;
+xer_type_encoder_f ConcurrentWarningMessageIndicator_encode_xer;
+oer_type_decoder_f ConcurrentWarningMessageIndicator_decode_oer;
+oer_type_encoder_f ConcurrentWarningMessageIndicator_encode_oer;
+per_type_decoder_f ConcurrentWarningMessageIndicator_decode_uper;
+per_type_encoder_f ConcurrentWarningMessageIndicator_encode_uper;
+per_type_decoder_f ConcurrentWarningMessageIndicator_decode_aper;
+per_type_encoder_f ConcurrentWarningMessageIndicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ConcurrentWarningMessageIndicator_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ConnectedengNBItem.h b/src/s1ap/asn1c/asnGenFiles/ConnectedengNBItem.h
new file mode 100644
index 0000000..405f6d4
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ConnectedengNBItem.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ConnectedengNBItem_H_
+#define _ConnectedengNBItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "En-gNB-ID.h"
+#include "SupportedTAs.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ConnectedengNBItem */
+typedef struct ConnectedengNBItem {
+ En_gNB_ID_t en_gNB_ID;
+ SupportedTAs_t supportedTAs;
+ 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;
+} ConnectedengNBItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ConnectedengNBItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_ConnectedengNBItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_ConnectedengNBItem_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ConnectedengNBItem_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ConnectedengNBList.h b/src/s1ap/asn1c/asnGenFiles/ConnectedengNBList.h
new file mode 100644
index 0000000..1fe4c7a
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ConnectedengNBList.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ConnectedengNBList_H_
+#define _ConnectedengNBList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ConnectedengNBItem;
+
+/* ConnectedengNBList */
+typedef struct ConnectedengNBList {
+ A_SEQUENCE_OF(struct ConnectedengNBItem) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ConnectedengNBList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ConnectedengNBList;
+extern asn_SET_OF_specifics_t asn_SPC_ConnectedengNBList_specs_1;
+extern asn_TYPE_member_t asn_MBR_ConnectedengNBList_1[1];
+extern asn_per_constraints_t asn_PER_type_ConnectedengNBList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ConnectedengNBList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ConnectionEstablishmentIndication.h b/src/s1ap/asn1c/asnGenFiles/ConnectionEstablishmentIndication.h
new file mode 100644
index 0000000..32bbb0c
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ConnectionEstablishmentIndication.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ConnectionEstablishmentIndication_H_
+#define _ConnectionEstablishmentIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ConnectionEstablishmentIndication */
+typedef struct ConnectionEstablishmentIndication {
+ ProtocolIE_Container_129P86_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ConnectionEstablishmentIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ConnectionEstablishmentIndication;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ConnectionEstablishmentIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Correlation-ID.h b/src/s1ap/asn1c/asnGenFiles/Correlation-ID.h
new file mode 100644
index 0000000..ce143e3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Correlation-ID.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Correlation_ID_H_
+#define _Correlation_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Correlation-ID */
+typedef OCTET_STRING_t Correlation_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Correlation_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Correlation_ID;
+asn_struct_free_f Correlation_ID_free;
+asn_struct_print_f Correlation_ID_print;
+asn_constr_check_f Correlation_ID_constraint;
+ber_type_decoder_f Correlation_ID_decode_ber;
+der_type_encoder_f Correlation_ID_encode_der;
+xer_type_decoder_f Correlation_ID_decode_xer;
+xer_type_encoder_f Correlation_ID_encode_xer;
+oer_type_decoder_f Correlation_ID_decode_oer;
+oer_type_encoder_f Correlation_ID_encode_oer;
+per_type_decoder_f Correlation_ID_decode_uper;
+per_type_encoder_f Correlation_ID_encode_uper;
+per_type_decoder_f Correlation_ID_decode_aper;
+per_type_encoder_f Correlation_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Correlation_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Coverage-Level.h b/src/s1ap/asn1c/asnGenFiles/Coverage-Level.h
new file mode 100644
index 0000000..3c4640a
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Coverage-Level.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Coverage_Level_H_
+#define _Coverage_Level_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Coverage_Level {
+ Coverage_Level_extendedcoverage = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_Coverage_Level;
+
+/* Coverage-Level */
+typedef long Coverage_Level_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Coverage_Level_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Coverage_Level;
+extern const asn_INTEGER_specifics_t asn_SPC_Coverage_Level_specs_1;
+asn_struct_free_f Coverage_Level_free;
+asn_struct_print_f Coverage_Level_print;
+asn_constr_check_f Coverage_Level_constraint;
+ber_type_decoder_f Coverage_Level_decode_ber;
+der_type_encoder_f Coverage_Level_encode_der;
+xer_type_decoder_f Coverage_Level_decode_xer;
+xer_type_encoder_f Coverage_Level_encode_xer;
+oer_type_decoder_f Coverage_Level_decode_oer;
+oer_type_encoder_f Coverage_Level_encode_oer;
+per_type_decoder_f Coverage_Level_decode_uper;
+per_type_encoder_f Coverage_Level_encode_uper;
+per_type_decoder_f Coverage_Level_decode_aper;
+per_type_encoder_f Coverage_Level_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Coverage_Level_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Criticality.h b/src/s1ap/asn1c/asnGenFiles/Criticality.h
new file mode 100644
index 0000000..977d55d
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Criticality.h
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-CommonDataTypes"
+ * found in "./asn1c/S1AP-CommonDataTypes.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Criticality_H_
+#define _Criticality_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Criticality {
+ Criticality_reject = 0,
+ Criticality_ignore = 1,
+ Criticality_notify = 2
+} e_Criticality;
+
+/* Criticality */
+typedef long Criticality_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Criticality_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Criticality;
+extern const asn_INTEGER_specifics_t asn_SPC_Criticality_specs_1;
+asn_struct_free_f Criticality_free;
+asn_struct_print_f Criticality_print;
+asn_constr_check_f Criticality_constraint;
+ber_type_decoder_f Criticality_decode_ber;
+der_type_encoder_f Criticality_encode_der;
+xer_type_decoder_f Criticality_decode_xer;
+xer_type_encoder_f Criticality_encode_xer;
+oer_type_decoder_f Criticality_decode_oer;
+oer_type_encoder_f Criticality_encode_oer;
+per_type_decoder_f Criticality_decode_uper;
+per_type_encoder_f Criticality_encode_uper;
+per_type_decoder_f Criticality_decode_aper;
+per_type_encoder_f Criticality_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Criticality_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CriticalityDiagnostics-IE-Item.h b/src/s1ap/asn1c/asnGenFiles/CriticalityDiagnostics-IE-Item.h
new file mode 100644
index 0000000..b708fea
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CriticalityDiagnostics-IE-Item.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CriticalityDiagnostics_IE_Item_H_
+#define _CriticalityDiagnostics_IE_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "Criticality.h"
+#include "ProtocolIE-ID.h"
+#include "TypeOfError.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* 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 <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CriticalityDiagnostics-IE-List.h b/src/s1ap/asn1c/asnGenFiles/CriticalityDiagnostics-IE-List.h
new file mode 100644
index 0000000..f9455a7
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CriticalityDiagnostics-IE-List.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CriticalityDiagnostics_IE_List_H_
+#define _CriticalityDiagnostics_IE_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct CriticalityDiagnostics_IE_Item;
+
+/* CriticalityDiagnostics-IE-List */
+typedef struct CriticalityDiagnostics_IE_List {
+ A_SEQUENCE_OF(struct CriticalityDiagnostics_IE_Item) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} CriticalityDiagnostics_IE_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_List;
+extern asn_SET_OF_specifics_t asn_SPC_CriticalityDiagnostics_IE_List_specs_1;
+extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_List_1[1];
+extern asn_per_constraints_t asn_PER_type_CriticalityDiagnostics_IE_List_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CriticalityDiagnostics_IE_List_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/CriticalityDiagnostics.h b/src/s1ap/asn1c/asnGenFiles/CriticalityDiagnostics.h
new file mode 100644
index 0000000..db2a108
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/CriticalityDiagnostics.h
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _CriticalityDiagnostics_H_
+#define _CriticalityDiagnostics_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProcedureCode.h"
+#include "TriggeringMessage.h"
+#include "Criticality.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct CriticalityDiagnostics_IE_List;
+struct ProtocolExtensionContainer;
+
+/* CriticalityDiagnostics */
+typedef struct CriticalityDiagnostics {
+ ProcedureCode_t *procedureCode; /* OPTIONAL */
+ TriggeringMessage_t *triggeringMessage; /* OPTIONAL */
+ Criticality_t *procedureCriticality; /* 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;
+extern asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_specs_1;
+extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_1[5];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CriticalityDiagnostics_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/DCN-ID.h b/src/s1ap/asn1c/asnGenFiles/DCN-ID.h
new file mode 100644
index 0000000..327597e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/DCN-ID.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _DCN_ID_H_
+#define _DCN_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* DCN-ID */
+typedef long DCN_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_DCN_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_DCN_ID;
+asn_struct_free_f DCN_ID_free;
+asn_struct_print_f DCN_ID_print;
+asn_constr_check_f DCN_ID_constraint;
+ber_type_decoder_f DCN_ID_decode_ber;
+der_type_encoder_f DCN_ID_encode_der;
+xer_type_decoder_f DCN_ID_decode_xer;
+xer_type_encoder_f DCN_ID_encode_xer;
+oer_type_decoder_f DCN_ID_decode_oer;
+oer_type_encoder_f DCN_ID_encode_oer;
+per_type_decoder_f DCN_ID_decode_uper;
+per_type_encoder_f DCN_ID_encode_uper;
+per_type_decoder_f DCN_ID_decode_aper;
+per_type_encoder_f DCN_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DCN_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/DL-CP-SecurityInformation.h b/src/s1ap/asn1c/asnGenFiles/DL-CP-SecurityInformation.h
new file mode 100644
index 0000000..03ffffc
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/DL-CP-SecurityInformation.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _DL_CP_SecurityInformation_H_
+#define _DL_CP_SecurityInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "DL-NAS-MAC.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* DL-CP-SecurityInformation */
+typedef struct DL_CP_SecurityInformation {
+ DL_NAS_MAC_t dl_NAS_MAC;
+ 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;
+} DL_CP_SecurityInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_DL_CP_SecurityInformation;
+extern asn_SEQUENCE_specifics_t asn_SPC_DL_CP_SecurityInformation_specs_1;
+extern asn_TYPE_member_t asn_MBR_DL_CP_SecurityInformation_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DL_CP_SecurityInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/DL-Forwarding.h b/src/s1ap/asn1c/asnGenFiles/DL-Forwarding.h
new file mode 100644
index 0000000..ee785dd
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/DL-Forwarding.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _DL_Forwarding_H_
+#define _DL_Forwarding_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum DL_Forwarding {
+ DL_Forwarding_dL_Forwarding_proposed = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_DL_Forwarding;
+
+/* DL-Forwarding */
+typedef long DL_Forwarding_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_DL_Forwarding_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_DL_Forwarding;
+extern const asn_INTEGER_specifics_t asn_SPC_DL_Forwarding_specs_1;
+asn_struct_free_f DL_Forwarding_free;
+asn_struct_print_f DL_Forwarding_print;
+asn_constr_check_f DL_Forwarding_constraint;
+ber_type_decoder_f DL_Forwarding_decode_ber;
+der_type_encoder_f DL_Forwarding_encode_der;
+xer_type_decoder_f DL_Forwarding_decode_xer;
+xer_type_encoder_f DL_Forwarding_encode_xer;
+oer_type_decoder_f DL_Forwarding_decode_oer;
+oer_type_encoder_f DL_Forwarding_encode_oer;
+per_type_decoder_f DL_Forwarding_decode_uper;
+per_type_encoder_f DL_Forwarding_encode_uper;
+per_type_decoder_f DL_Forwarding_decode_aper;
+per_type_encoder_f DL_Forwarding_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DL_Forwarding_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/DL-NAS-MAC.h b/src/s1ap/asn1c/asnGenFiles/DL-NAS-MAC.h
new file mode 100644
index 0000000..7e892b3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/DL-NAS-MAC.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _DL_NAS_MAC_H_
+#define _DL_NAS_MAC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* DL-NAS-MAC */
+typedef BIT_STRING_t DL_NAS_MAC_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_DL_NAS_MAC_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_DL_NAS_MAC;
+asn_struct_free_f DL_NAS_MAC_free;
+asn_struct_print_f DL_NAS_MAC_print;
+asn_constr_check_f DL_NAS_MAC_constraint;
+ber_type_decoder_f DL_NAS_MAC_decode_ber;
+der_type_encoder_f DL_NAS_MAC_encode_der;
+xer_type_decoder_f DL_NAS_MAC_decode_xer;
+xer_type_encoder_f DL_NAS_MAC_encode_xer;
+oer_type_decoder_f DL_NAS_MAC_decode_oer;
+oer_type_encoder_f DL_NAS_MAC_encode_oer;
+per_type_decoder_f DL_NAS_MAC_decode_uper;
+per_type_encoder_f DL_NAS_MAC_encode_uper;
+per_type_decoder_f DL_NAS_MAC_decode_aper;
+per_type_encoder_f DL_NAS_MAC_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DL_NAS_MAC_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/DLNASPDUDeliveryAckRequest.h b/src/s1ap/asn1c/asnGenFiles/DLNASPDUDeliveryAckRequest.h
new file mode 100644
index 0000000..bb97161
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/DLNASPDUDeliveryAckRequest.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _DLNASPDUDeliveryAckRequest_H_
+#define _DLNASPDUDeliveryAckRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum DLNASPDUDeliveryAckRequest {
+ DLNASPDUDeliveryAckRequest_requested = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_DLNASPDUDeliveryAckRequest;
+
+/* DLNASPDUDeliveryAckRequest */
+typedef long DLNASPDUDeliveryAckRequest_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_DLNASPDUDeliveryAckRequest_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_DLNASPDUDeliveryAckRequest;
+extern const asn_INTEGER_specifics_t asn_SPC_DLNASPDUDeliveryAckRequest_specs_1;
+asn_struct_free_f DLNASPDUDeliveryAckRequest_free;
+asn_struct_print_f DLNASPDUDeliveryAckRequest_print;
+asn_constr_check_f DLNASPDUDeliveryAckRequest_constraint;
+ber_type_decoder_f DLNASPDUDeliveryAckRequest_decode_ber;
+der_type_encoder_f DLNASPDUDeliveryAckRequest_encode_der;
+xer_type_decoder_f DLNASPDUDeliveryAckRequest_decode_xer;
+xer_type_encoder_f DLNASPDUDeliveryAckRequest_encode_xer;
+oer_type_decoder_f DLNASPDUDeliveryAckRequest_decode_oer;
+oer_type_encoder_f DLNASPDUDeliveryAckRequest_encode_oer;
+per_type_decoder_f DLNASPDUDeliveryAckRequest_decode_uper;
+per_type_encoder_f DLNASPDUDeliveryAckRequest_encode_uper;
+per_type_decoder_f DLNASPDUDeliveryAckRequest_decode_aper;
+per_type_encoder_f DLNASPDUDeliveryAckRequest_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DLNASPDUDeliveryAckRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Data-Forwarding-Not-Possible.h b/src/s1ap/asn1c/asnGenFiles/Data-Forwarding-Not-Possible.h
new file mode 100644
index 0000000..ea6e1d9
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Data-Forwarding-Not-Possible.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Data_Forwarding_Not_Possible_H_
+#define _Data_Forwarding_Not_Possible_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Data_Forwarding_Not_Possible {
+ Data_Forwarding_Not_Possible_data_Forwarding_not_Possible = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_Data_Forwarding_Not_Possible;
+
+/* Data-Forwarding-Not-Possible */
+typedef long Data_Forwarding_Not_Possible_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Data_Forwarding_Not_Possible_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Data_Forwarding_Not_Possible;
+extern const asn_INTEGER_specifics_t asn_SPC_Data_Forwarding_Not_Possible_specs_1;
+asn_struct_free_f Data_Forwarding_Not_Possible_free;
+asn_struct_print_f Data_Forwarding_Not_Possible_print;
+asn_constr_check_f Data_Forwarding_Not_Possible_constraint;
+ber_type_decoder_f Data_Forwarding_Not_Possible_decode_ber;
+der_type_encoder_f Data_Forwarding_Not_Possible_encode_der;
+xer_type_decoder_f Data_Forwarding_Not_Possible_decode_xer;
+xer_type_encoder_f Data_Forwarding_Not_Possible_encode_xer;
+oer_type_decoder_f Data_Forwarding_Not_Possible_decode_oer;
+oer_type_encoder_f Data_Forwarding_Not_Possible_encode_oer;
+per_type_decoder_f Data_Forwarding_Not_Possible_decode_uper;
+per_type_encoder_f Data_Forwarding_Not_Possible_encode_uper;
+per_type_decoder_f Data_Forwarding_Not_Possible_decode_aper;
+per_type_encoder_f Data_Forwarding_Not_Possible_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Data_Forwarding_Not_Possible_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/DataCodingScheme.h b/src/s1ap/asn1c/asnGenFiles/DataCodingScheme.h
new file mode 100644
index 0000000..3d83258
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/DataCodingScheme.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _DataCodingScheme_H_
+#define _DataCodingScheme_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* DataCodingScheme */
+typedef BIT_STRING_t DataCodingScheme_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_DataCodingScheme_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_DataCodingScheme;
+asn_struct_free_f DataCodingScheme_free;
+asn_struct_print_f DataCodingScheme_print;
+asn_constr_check_f DataCodingScheme_constraint;
+ber_type_decoder_f DataCodingScheme_decode_ber;
+der_type_encoder_f DataCodingScheme_encode_der;
+xer_type_decoder_f DataCodingScheme_decode_xer;
+xer_type_encoder_f DataCodingScheme_encode_xer;
+oer_type_decoder_f DataCodingScheme_decode_oer;
+oer_type_encoder_f DataCodingScheme_encode_oer;
+per_type_decoder_f DataCodingScheme_decode_uper;
+per_type_encoder_f DataCodingScheme_encode_uper;
+per_type_decoder_f DataCodingScheme_decode_aper;
+per_type_encoder_f DataCodingScheme_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DataCodingScheme_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/DeactivateTrace.h b/src/s1ap/asn1c/asnGenFiles/DeactivateTrace.h
new file mode 100644
index 0000000..5517918
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/DeactivateTrace.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _DeactivateTrace_H_
+#define _DeactivateTrace_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* DeactivateTrace */
+typedef struct DeactivateTrace {
+ ProtocolIE_Container_129P56_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} DeactivateTrace_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_DeactivateTrace;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DeactivateTrace_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Direct-Forwarding-Path-Availability.h b/src/s1ap/asn1c/asnGenFiles/Direct-Forwarding-Path-Availability.h
new file mode 100644
index 0000000..c88ec2b
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Direct-Forwarding-Path-Availability.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Direct_Forwarding_Path_Availability_H_
+#define _Direct_Forwarding_Path_Availability_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Direct_Forwarding_Path_Availability {
+ Direct_Forwarding_Path_Availability_directPathAvailable = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_Direct_Forwarding_Path_Availability;
+
+/* Direct-Forwarding-Path-Availability */
+typedef long Direct_Forwarding_Path_Availability_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Direct_Forwarding_Path_Availability_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Direct_Forwarding_Path_Availability;
+extern const asn_INTEGER_specifics_t asn_SPC_Direct_Forwarding_Path_Availability_specs_1;
+asn_struct_free_f Direct_Forwarding_Path_Availability_free;
+asn_struct_print_f Direct_Forwarding_Path_Availability_print;
+asn_constr_check_f Direct_Forwarding_Path_Availability_constraint;
+ber_type_decoder_f Direct_Forwarding_Path_Availability_decode_ber;
+der_type_encoder_f Direct_Forwarding_Path_Availability_encode_der;
+xer_type_decoder_f Direct_Forwarding_Path_Availability_decode_xer;
+xer_type_encoder_f Direct_Forwarding_Path_Availability_encode_xer;
+oer_type_decoder_f Direct_Forwarding_Path_Availability_decode_oer;
+oer_type_encoder_f Direct_Forwarding_Path_Availability_encode_oer;
+per_type_decoder_f Direct_Forwarding_Path_Availability_decode_uper;
+per_type_encoder_f Direct_Forwarding_Path_Availability_encode_uper;
+per_type_decoder_f Direct_Forwarding_Path_Availability_decode_aper;
+per_type_encoder_f Direct_Forwarding_Path_Availability_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Direct_Forwarding_Path_Availability_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/DownlinkNASTransport.h b/src/s1ap/asn1c/asnGenFiles/DownlinkNASTransport.h
new file mode 100644
index 0000000..5c37f2c
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/DownlinkNASTransport.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _DownlinkNASTransport_H_
+#define _DownlinkNASTransport_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* DownlinkNASTransport */
+typedef struct DownlinkNASTransport {
+ ProtocolIE_Container_129P31_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} DownlinkNASTransport_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_DownlinkNASTransport;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DownlinkNASTransport_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/DownlinkNonUEAssociatedLPPaTransport.h b/src/s1ap/asn1c/asnGenFiles/DownlinkNonUEAssociatedLPPaTransport.h
new file mode 100644
index 0000000..41d64e6
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/DownlinkNonUEAssociatedLPPaTransport.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _DownlinkNonUEAssociatedLPPaTransport_H_
+#define _DownlinkNonUEAssociatedLPPaTransport_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* DownlinkNonUEAssociatedLPPaTransport */
+typedef struct DownlinkNonUEAssociatedLPPaTransport {
+ ProtocolIE_Container_129P75_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} DownlinkNonUEAssociatedLPPaTransport_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_DownlinkNonUEAssociatedLPPaTransport;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DownlinkNonUEAssociatedLPPaTransport_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/DownlinkS1cdma2000tunnelling.h b/src/s1ap/asn1c/asnGenFiles/DownlinkS1cdma2000tunnelling.h
new file mode 100644
index 0000000..f064101
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/DownlinkS1cdma2000tunnelling.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _DownlinkS1cdma2000tunnelling_H_
+#define _DownlinkS1cdma2000tunnelling_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* DownlinkS1cdma2000tunnelling */
+typedef struct DownlinkS1cdma2000tunnelling {
+ ProtocolIE_Container_129P49_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} DownlinkS1cdma2000tunnelling_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_DownlinkS1cdma2000tunnelling;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DownlinkS1cdma2000tunnelling_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/DownlinkUEAssociatedLPPaTransport.h b/src/s1ap/asn1c/asnGenFiles/DownlinkUEAssociatedLPPaTransport.h
new file mode 100644
index 0000000..0a1138e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/DownlinkUEAssociatedLPPaTransport.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _DownlinkUEAssociatedLPPaTransport_H_
+#define _DownlinkUEAssociatedLPPaTransport_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* DownlinkUEAssociatedLPPaTransport */
+typedef struct DownlinkUEAssociatedLPPaTransport {
+ ProtocolIE_Container_129P73_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} DownlinkUEAssociatedLPPaTransport_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_DownlinkUEAssociatedLPPaTransport;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DownlinkUEAssociatedLPPaTransport_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RAB-ID.h b/src/s1ap/asn1c/asnGenFiles/E-RAB-ID.h
new file mode 100644
index 0000000..40e0ab6
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RAB-ID.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RAB_ID_H_
+#define _E_RAB_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E-RAB-ID */
+typedef long E_RAB_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_E_RAB_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_E_RAB_ID;
+asn_struct_free_f E_RAB_ID_free;
+asn_struct_print_f E_RAB_ID_print;
+asn_constr_check_f E_RAB_ID_constraint;
+ber_type_decoder_f E_RAB_ID_decode_ber;
+der_type_encoder_f E_RAB_ID_encode_der;
+xer_type_decoder_f E_RAB_ID_decode_xer;
+xer_type_encoder_f E_RAB_ID_encode_xer;
+oer_type_decoder_f E_RAB_ID_decode_oer;
+oer_type_encoder_f E_RAB_ID_encode_oer;
+per_type_decoder_f E_RAB_ID_decode_uper;
+per_type_encoder_f E_RAB_ID_encode_uper;
+per_type_decoder_f E_RAB_ID_decode_aper;
+per_type_encoder_f E_RAB_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RAB_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RAB-IE-ContainerList.h b/src/s1ap/asn1c/asnGenFiles/E-RAB-IE-ContainerList.h
new file mode 100644
index 0000000..5db2bf4
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RAB-IE-ContainerList.h
@@ -0,0 +1,190 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RAB_IE_ContainerList_H_
+#define _E_RAB_IE_ContainerList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-ContainerList.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E-RAB-IE-ContainerList */
+typedef ProtocolIE_ContainerList_166P0_t E_RAB_IE_ContainerList_456P0_t;
+typedef ProtocolIE_ContainerList_166P1_t E_RAB_IE_ContainerList_456P1_t;
+typedef ProtocolIE_ContainerList_166P2_t E_RAB_IE_ContainerList_456P2_t;
+typedef ProtocolIE_ContainerList_166P3_t E_RAB_IE_ContainerList_456P3_t;
+typedef ProtocolIE_ContainerList_166P4_t E_RAB_IE_ContainerList_456P4_t;
+typedef ProtocolIE_ContainerList_166P5_t E_RAB_IE_ContainerList_456P5_t;
+typedef ProtocolIE_ContainerList_166P6_t E_RAB_IE_ContainerList_456P6_t;
+typedef ProtocolIE_ContainerList_166P7_t E_RAB_IE_ContainerList_456P7_t;
+typedef ProtocolIE_ContainerList_166P8_t E_RAB_IE_ContainerList_456P8_t;
+typedef ProtocolIE_ContainerList_166P9_t E_RAB_IE_ContainerList_456P9_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_E_RAB_IE_ContainerList_456P0_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_E_RAB_IE_ContainerList_456P0;
+asn_struct_free_f E_RAB_IE_ContainerList_456P0_free;
+asn_struct_print_f E_RAB_IE_ContainerList_456P0_print;
+asn_constr_check_f E_RAB_IE_ContainerList_456P0_constraint;
+ber_type_decoder_f E_RAB_IE_ContainerList_456P0_decode_ber;
+der_type_encoder_f E_RAB_IE_ContainerList_456P0_encode_der;
+xer_type_decoder_f E_RAB_IE_ContainerList_456P0_decode_xer;
+xer_type_encoder_f E_RAB_IE_ContainerList_456P0_encode_xer;
+oer_type_decoder_f E_RAB_IE_ContainerList_456P0_decode_oer;
+oer_type_encoder_f E_RAB_IE_ContainerList_456P0_encode_oer;
+per_type_decoder_f E_RAB_IE_ContainerList_456P0_decode_uper;
+per_type_encoder_f E_RAB_IE_ContainerList_456P0_encode_uper;
+per_type_decoder_f E_RAB_IE_ContainerList_456P0_decode_aper;
+per_type_encoder_f E_RAB_IE_ContainerList_456P0_encode_aper;
+extern asn_per_constraints_t asn_PER_type_E_RAB_IE_ContainerList_456P1_constr_2;
+extern asn_TYPE_descriptor_t asn_DEF_E_RAB_IE_ContainerList_456P1;
+asn_struct_free_f E_RAB_IE_ContainerList_456P1_free;
+asn_struct_print_f E_RAB_IE_ContainerList_456P1_print;
+asn_constr_check_f E_RAB_IE_ContainerList_456P1_constraint;
+ber_type_decoder_f E_RAB_IE_ContainerList_456P1_decode_ber;
+der_type_encoder_f E_RAB_IE_ContainerList_456P1_encode_der;
+xer_type_decoder_f E_RAB_IE_ContainerList_456P1_decode_xer;
+xer_type_encoder_f E_RAB_IE_ContainerList_456P1_encode_xer;
+oer_type_decoder_f E_RAB_IE_ContainerList_456P1_decode_oer;
+oer_type_encoder_f E_RAB_IE_ContainerList_456P1_encode_oer;
+per_type_decoder_f E_RAB_IE_ContainerList_456P1_decode_uper;
+per_type_encoder_f E_RAB_IE_ContainerList_456P1_encode_uper;
+per_type_decoder_f E_RAB_IE_ContainerList_456P1_decode_aper;
+per_type_encoder_f E_RAB_IE_ContainerList_456P1_encode_aper;
+extern asn_per_constraints_t asn_PER_type_E_RAB_IE_ContainerList_456P2_constr_3;
+extern asn_TYPE_descriptor_t asn_DEF_E_RAB_IE_ContainerList_456P2;
+asn_struct_free_f E_RAB_IE_ContainerList_456P2_free;
+asn_struct_print_f E_RAB_IE_ContainerList_456P2_print;
+asn_constr_check_f E_RAB_IE_ContainerList_456P2_constraint;
+ber_type_decoder_f E_RAB_IE_ContainerList_456P2_decode_ber;
+der_type_encoder_f E_RAB_IE_ContainerList_456P2_encode_der;
+xer_type_decoder_f E_RAB_IE_ContainerList_456P2_decode_xer;
+xer_type_encoder_f E_RAB_IE_ContainerList_456P2_encode_xer;
+oer_type_decoder_f E_RAB_IE_ContainerList_456P2_decode_oer;
+oer_type_encoder_f E_RAB_IE_ContainerList_456P2_encode_oer;
+per_type_decoder_f E_RAB_IE_ContainerList_456P2_decode_uper;
+per_type_encoder_f E_RAB_IE_ContainerList_456P2_encode_uper;
+per_type_decoder_f E_RAB_IE_ContainerList_456P2_decode_aper;
+per_type_encoder_f E_RAB_IE_ContainerList_456P2_encode_aper;
+extern asn_per_constraints_t asn_PER_type_E_RAB_IE_ContainerList_456P3_constr_4;
+extern asn_TYPE_descriptor_t asn_DEF_E_RAB_IE_ContainerList_456P3;
+asn_struct_free_f E_RAB_IE_ContainerList_456P3_free;
+asn_struct_print_f E_RAB_IE_ContainerList_456P3_print;
+asn_constr_check_f E_RAB_IE_ContainerList_456P3_constraint;
+ber_type_decoder_f E_RAB_IE_ContainerList_456P3_decode_ber;
+der_type_encoder_f E_RAB_IE_ContainerList_456P3_encode_der;
+xer_type_decoder_f E_RAB_IE_ContainerList_456P3_decode_xer;
+xer_type_encoder_f E_RAB_IE_ContainerList_456P3_encode_xer;
+oer_type_decoder_f E_RAB_IE_ContainerList_456P3_decode_oer;
+oer_type_encoder_f E_RAB_IE_ContainerList_456P3_encode_oer;
+per_type_decoder_f E_RAB_IE_ContainerList_456P3_decode_uper;
+per_type_encoder_f E_RAB_IE_ContainerList_456P3_encode_uper;
+per_type_decoder_f E_RAB_IE_ContainerList_456P3_decode_aper;
+per_type_encoder_f E_RAB_IE_ContainerList_456P3_encode_aper;
+extern asn_per_constraints_t asn_PER_type_E_RAB_IE_ContainerList_456P4_constr_5;
+extern asn_TYPE_descriptor_t asn_DEF_E_RAB_IE_ContainerList_456P4;
+asn_struct_free_f E_RAB_IE_ContainerList_456P4_free;
+asn_struct_print_f E_RAB_IE_ContainerList_456P4_print;
+asn_constr_check_f E_RAB_IE_ContainerList_456P4_constraint;
+ber_type_decoder_f E_RAB_IE_ContainerList_456P4_decode_ber;
+der_type_encoder_f E_RAB_IE_ContainerList_456P4_encode_der;
+xer_type_decoder_f E_RAB_IE_ContainerList_456P4_decode_xer;
+xer_type_encoder_f E_RAB_IE_ContainerList_456P4_encode_xer;
+oer_type_decoder_f E_RAB_IE_ContainerList_456P4_decode_oer;
+oer_type_encoder_f E_RAB_IE_ContainerList_456P4_encode_oer;
+per_type_decoder_f E_RAB_IE_ContainerList_456P4_decode_uper;
+per_type_encoder_f E_RAB_IE_ContainerList_456P4_encode_uper;
+per_type_decoder_f E_RAB_IE_ContainerList_456P4_decode_aper;
+per_type_encoder_f E_RAB_IE_ContainerList_456P4_encode_aper;
+extern asn_per_constraints_t asn_PER_type_E_RAB_IE_ContainerList_456P5_constr_6;
+extern asn_TYPE_descriptor_t asn_DEF_E_RAB_IE_ContainerList_456P5;
+asn_struct_free_f E_RAB_IE_ContainerList_456P5_free;
+asn_struct_print_f E_RAB_IE_ContainerList_456P5_print;
+asn_constr_check_f E_RAB_IE_ContainerList_456P5_constraint;
+ber_type_decoder_f E_RAB_IE_ContainerList_456P5_decode_ber;
+der_type_encoder_f E_RAB_IE_ContainerList_456P5_encode_der;
+xer_type_decoder_f E_RAB_IE_ContainerList_456P5_decode_xer;
+xer_type_encoder_f E_RAB_IE_ContainerList_456P5_encode_xer;
+oer_type_decoder_f E_RAB_IE_ContainerList_456P5_decode_oer;
+oer_type_encoder_f E_RAB_IE_ContainerList_456P5_encode_oer;
+per_type_decoder_f E_RAB_IE_ContainerList_456P5_decode_uper;
+per_type_encoder_f E_RAB_IE_ContainerList_456P5_encode_uper;
+per_type_decoder_f E_RAB_IE_ContainerList_456P5_decode_aper;
+per_type_encoder_f E_RAB_IE_ContainerList_456P5_encode_aper;
+extern asn_per_constraints_t asn_PER_type_E_RAB_IE_ContainerList_456P6_constr_7;
+extern asn_TYPE_descriptor_t asn_DEF_E_RAB_IE_ContainerList_456P6;
+asn_struct_free_f E_RAB_IE_ContainerList_456P6_free;
+asn_struct_print_f E_RAB_IE_ContainerList_456P6_print;
+asn_constr_check_f E_RAB_IE_ContainerList_456P6_constraint;
+ber_type_decoder_f E_RAB_IE_ContainerList_456P6_decode_ber;
+der_type_encoder_f E_RAB_IE_ContainerList_456P6_encode_der;
+xer_type_decoder_f E_RAB_IE_ContainerList_456P6_decode_xer;
+xer_type_encoder_f E_RAB_IE_ContainerList_456P6_encode_xer;
+oer_type_decoder_f E_RAB_IE_ContainerList_456P6_decode_oer;
+oer_type_encoder_f E_RAB_IE_ContainerList_456P6_encode_oer;
+per_type_decoder_f E_RAB_IE_ContainerList_456P6_decode_uper;
+per_type_encoder_f E_RAB_IE_ContainerList_456P6_encode_uper;
+per_type_decoder_f E_RAB_IE_ContainerList_456P6_decode_aper;
+per_type_encoder_f E_RAB_IE_ContainerList_456P6_encode_aper;
+extern asn_per_constraints_t asn_PER_type_E_RAB_IE_ContainerList_456P7_constr_8;
+extern asn_TYPE_descriptor_t asn_DEF_E_RAB_IE_ContainerList_456P7;
+asn_struct_free_f E_RAB_IE_ContainerList_456P7_free;
+asn_struct_print_f E_RAB_IE_ContainerList_456P7_print;
+asn_constr_check_f E_RAB_IE_ContainerList_456P7_constraint;
+ber_type_decoder_f E_RAB_IE_ContainerList_456P7_decode_ber;
+der_type_encoder_f E_RAB_IE_ContainerList_456P7_encode_der;
+xer_type_decoder_f E_RAB_IE_ContainerList_456P7_decode_xer;
+xer_type_encoder_f E_RAB_IE_ContainerList_456P7_encode_xer;
+oer_type_decoder_f E_RAB_IE_ContainerList_456P7_decode_oer;
+oer_type_encoder_f E_RAB_IE_ContainerList_456P7_encode_oer;
+per_type_decoder_f E_RAB_IE_ContainerList_456P7_decode_uper;
+per_type_encoder_f E_RAB_IE_ContainerList_456P7_encode_uper;
+per_type_decoder_f E_RAB_IE_ContainerList_456P7_decode_aper;
+per_type_encoder_f E_RAB_IE_ContainerList_456P7_encode_aper;
+extern asn_per_constraints_t asn_PER_type_E_RAB_IE_ContainerList_456P8_constr_9;
+extern asn_TYPE_descriptor_t asn_DEF_E_RAB_IE_ContainerList_456P8;
+asn_struct_free_f E_RAB_IE_ContainerList_456P8_free;
+asn_struct_print_f E_RAB_IE_ContainerList_456P8_print;
+asn_constr_check_f E_RAB_IE_ContainerList_456P8_constraint;
+ber_type_decoder_f E_RAB_IE_ContainerList_456P8_decode_ber;
+der_type_encoder_f E_RAB_IE_ContainerList_456P8_encode_der;
+xer_type_decoder_f E_RAB_IE_ContainerList_456P8_decode_xer;
+xer_type_encoder_f E_RAB_IE_ContainerList_456P8_encode_xer;
+oer_type_decoder_f E_RAB_IE_ContainerList_456P8_decode_oer;
+oer_type_encoder_f E_RAB_IE_ContainerList_456P8_encode_oer;
+per_type_decoder_f E_RAB_IE_ContainerList_456P8_decode_uper;
+per_type_encoder_f E_RAB_IE_ContainerList_456P8_encode_uper;
+per_type_decoder_f E_RAB_IE_ContainerList_456P8_decode_aper;
+per_type_encoder_f E_RAB_IE_ContainerList_456P8_encode_aper;
+extern asn_per_constraints_t asn_PER_type_E_RAB_IE_ContainerList_456P9_constr_10;
+extern asn_TYPE_descriptor_t asn_DEF_E_RAB_IE_ContainerList_456P9;
+asn_struct_free_f E_RAB_IE_ContainerList_456P9_free;
+asn_struct_print_f E_RAB_IE_ContainerList_456P9_print;
+asn_constr_check_f E_RAB_IE_ContainerList_456P9_constraint;
+ber_type_decoder_f E_RAB_IE_ContainerList_456P9_decode_ber;
+der_type_encoder_f E_RAB_IE_ContainerList_456P9_encode_der;
+xer_type_decoder_f E_RAB_IE_ContainerList_456P9_decode_xer;
+xer_type_encoder_f E_RAB_IE_ContainerList_456P9_encode_xer;
+oer_type_decoder_f E_RAB_IE_ContainerList_456P9_decode_oer;
+oer_type_encoder_f E_RAB_IE_ContainerList_456P9_encode_oer;
+per_type_decoder_f E_RAB_IE_ContainerList_456P9_decode_uper;
+per_type_encoder_f E_RAB_IE_ContainerList_456P9_encode_uper;
+per_type_decoder_f E_RAB_IE_ContainerList_456P9_decode_aper;
+per_type_encoder_f E_RAB_IE_ContainerList_456P9_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RAB_IE_ContainerList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RAB-IE-ContainerPairList.h b/src/s1ap/asn1c/asnGenFiles/E-RAB-IE-ContainerPairList.h
new file mode 100644
index 0000000..aea32f0
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RAB-IE-ContainerPairList.h
@@ -0,0 +1,23 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RAB_IE_ContainerPairList_H_
+#define _E_RAB_IE_ContainerPairList_H_
+
+
+#include <asn_application.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RAB_IE_ContainerPairList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABAdmittedItem.h b/src/s1ap/asn1c/asnGenFiles/E-RABAdmittedItem.h
new file mode 100644
index 0000000..33ee68c
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABAdmittedItem.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABAdmittedItem_H_
+#define _E_RABAdmittedItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "TransportLayerAddress.h"
+#include "GTP-TEID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABAdmittedItem */
+typedef struct E_RABAdmittedItem {
+ E_RAB_ID_t e_RAB_ID;
+ TransportLayerAddress_t transportLayerAddress;
+ GTP_TEID_t gTP_TEID;
+ TransportLayerAddress_t *dL_transportLayerAddress; /* OPTIONAL */
+ GTP_TEID_t *dL_gTP_TEID; /* OPTIONAL */
+ TransportLayerAddress_t *uL_TransportLayerAddress; /* OPTIONAL */
+ GTP_TEID_t *uL_GTP_TEID; /* 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;
+} E_RABAdmittedItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABAdmittedItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABAdmittedItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABAdmittedItem_1[8];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABAdmittedItem_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABAdmittedList.h b/src/s1ap/asn1c/asnGenFiles/E-RABAdmittedList.h
new file mode 100644
index 0000000..e6882a7
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABAdmittedList.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABAdmittedList_H_
+#define _E_RABAdmittedList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-IE-ContainerList.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E-RABAdmittedList */
+typedef E_RAB_IE_ContainerList_456P2_t E_RABAdmittedList_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_E_RABAdmittedList_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_E_RABAdmittedList;
+asn_struct_free_f E_RABAdmittedList_free;
+asn_struct_print_f E_RABAdmittedList_print;
+asn_constr_check_f E_RABAdmittedList_constraint;
+ber_type_decoder_f E_RABAdmittedList_decode_ber;
+der_type_encoder_f E_RABAdmittedList_encode_der;
+xer_type_decoder_f E_RABAdmittedList_decode_xer;
+xer_type_encoder_f E_RABAdmittedList_encode_xer;
+oer_type_decoder_f E_RABAdmittedList_decode_oer;
+oer_type_encoder_f E_RABAdmittedList_encode_oer;
+per_type_decoder_f E_RABAdmittedList_decode_uper;
+per_type_encoder_f E_RABAdmittedList_encode_uper;
+per_type_decoder_f E_RABAdmittedList_decode_aper;
+per_type_encoder_f E_RABAdmittedList_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABAdmittedList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABDataForwardingItem.h b/src/s1ap/asn1c/asnGenFiles/E-RABDataForwardingItem.h
new file mode 100644
index 0000000..acd8902
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABDataForwardingItem.h
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABDataForwardingItem_H_
+#define _E_RABDataForwardingItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "TransportLayerAddress.h"
+#include "GTP-TEID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABDataForwardingItem */
+typedef struct E_RABDataForwardingItem {
+ E_RAB_ID_t e_RAB_ID;
+ TransportLayerAddress_t *dL_transportLayerAddress; /* OPTIONAL */
+ GTP_TEID_t *dL_gTP_TEID; /* OPTIONAL */
+ TransportLayerAddress_t *uL_TransportLayerAddress; /* OPTIONAL */
+ GTP_TEID_t *uL_GTP_TEID; /* 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;
+} E_RABDataForwardingItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABDataForwardingItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABDataForwardingItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABDataForwardingItem_1[6];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABDataForwardingItem_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABFailedToResumeItemResumeReq.h b/src/s1ap/asn1c/asnGenFiles/E-RABFailedToResumeItemResumeReq.h
new file mode 100644
index 0000000..5ab2f98
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABFailedToResumeItemResumeReq.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABFailedToResumeItemResumeReq_H_
+#define _E_RABFailedToResumeItemResumeReq_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "Cause.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABFailedToResumeItemResumeReq */
+typedef struct E_RABFailedToResumeItemResumeReq {
+ E_RAB_ID_t e_RAB_ID;
+ 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;
+} E_RABFailedToResumeItemResumeReq_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABFailedToResumeItemResumeReq;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABFailedToResumeItemResumeReq_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABFailedToResumeItemResumeReq_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABFailedToResumeItemResumeReq_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABFailedToResumeItemResumeRes.h b/src/s1ap/asn1c/asnGenFiles/E-RABFailedToResumeItemResumeRes.h
new file mode 100644
index 0000000..ede6192
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABFailedToResumeItemResumeRes.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABFailedToResumeItemResumeRes_H_
+#define _E_RABFailedToResumeItemResumeRes_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "Cause.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABFailedToResumeItemResumeRes */
+typedef struct E_RABFailedToResumeItemResumeRes {
+ E_RAB_ID_t e_RAB_ID;
+ 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;
+} E_RABFailedToResumeItemResumeRes_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABFailedToResumeItemResumeRes;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABFailedToResumeItemResumeRes_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABFailedToResumeItemResumeRes_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABFailedToResumeItemResumeRes_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABFailedToResumeListResumeReq.h b/src/s1ap/asn1c/asnGenFiles/E-RABFailedToResumeListResumeReq.h
new file mode 100644
index 0000000..d59bb52
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABFailedToResumeListResumeReq.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABFailedToResumeListResumeReq_H_
+#define _E_RABFailedToResumeListResumeReq_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-IE-ContainerList.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E-RABFailedToResumeListResumeReq */
+typedef E_RAB_IE_ContainerList_456P8_t E_RABFailedToResumeListResumeReq_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_E_RABFailedToResumeListResumeReq_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_E_RABFailedToResumeListResumeReq;
+asn_struct_free_f E_RABFailedToResumeListResumeReq_free;
+asn_struct_print_f E_RABFailedToResumeListResumeReq_print;
+asn_constr_check_f E_RABFailedToResumeListResumeReq_constraint;
+ber_type_decoder_f E_RABFailedToResumeListResumeReq_decode_ber;
+der_type_encoder_f E_RABFailedToResumeListResumeReq_encode_der;
+xer_type_decoder_f E_RABFailedToResumeListResumeReq_decode_xer;
+xer_type_encoder_f E_RABFailedToResumeListResumeReq_encode_xer;
+oer_type_decoder_f E_RABFailedToResumeListResumeReq_decode_oer;
+oer_type_encoder_f E_RABFailedToResumeListResumeReq_encode_oer;
+per_type_decoder_f E_RABFailedToResumeListResumeReq_decode_uper;
+per_type_encoder_f E_RABFailedToResumeListResumeReq_encode_uper;
+per_type_decoder_f E_RABFailedToResumeListResumeReq_decode_aper;
+per_type_encoder_f E_RABFailedToResumeListResumeReq_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABFailedToResumeListResumeReq_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABFailedToResumeListResumeRes.h b/src/s1ap/asn1c/asnGenFiles/E-RABFailedToResumeListResumeRes.h
new file mode 100644
index 0000000..74b30af
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABFailedToResumeListResumeRes.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABFailedToResumeListResumeRes_H_
+#define _E_RABFailedToResumeListResumeRes_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-IE-ContainerList.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E-RABFailedToResumeListResumeRes */
+typedef E_RAB_IE_ContainerList_456P9_t E_RABFailedToResumeListResumeRes_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_E_RABFailedToResumeListResumeRes_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_E_RABFailedToResumeListResumeRes;
+asn_struct_free_f E_RABFailedToResumeListResumeRes_free;
+asn_struct_print_f E_RABFailedToResumeListResumeRes_print;
+asn_constr_check_f E_RABFailedToResumeListResumeRes_constraint;
+ber_type_decoder_f E_RABFailedToResumeListResumeRes_decode_ber;
+der_type_encoder_f E_RABFailedToResumeListResumeRes_encode_der;
+xer_type_decoder_f E_RABFailedToResumeListResumeRes_decode_xer;
+xer_type_encoder_f E_RABFailedToResumeListResumeRes_encode_xer;
+oer_type_decoder_f E_RABFailedToResumeListResumeRes_decode_oer;
+oer_type_encoder_f E_RABFailedToResumeListResumeRes_encode_oer;
+per_type_decoder_f E_RABFailedToResumeListResumeRes_decode_uper;
+per_type_encoder_f E_RABFailedToResumeListResumeRes_encode_uper;
+per_type_decoder_f E_RABFailedToResumeListResumeRes_decode_aper;
+per_type_encoder_f E_RABFailedToResumeListResumeRes_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABFailedToResumeListResumeRes_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABFailedToSetupItemHOReqAck.h b/src/s1ap/asn1c/asnGenFiles/E-RABFailedToSetupItemHOReqAck.h
new file mode 100644
index 0000000..6727d23
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABFailedToSetupItemHOReqAck.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABFailedToSetupItemHOReqAck_H_
+#define _E_RABFailedToSetupItemHOReqAck_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "Cause.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABFailedToSetupItemHOReqAck */
+typedef struct E_RABFailedToSetupItemHOReqAck {
+ E_RAB_ID_t e_RAB_ID;
+ 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;
+} E_RABFailedToSetupItemHOReqAck_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABFailedToSetupItemHOReqAck;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABFailedToSetupItemHOReqAck_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABFailedToSetupItemHOReqAck_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABFailedToSetupItemHOReqAck_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABFailedtoSetupListHOReqAck.h b/src/s1ap/asn1c/asnGenFiles/E-RABFailedtoSetupListHOReqAck.h
new file mode 100644
index 0000000..3050e7f
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABFailedtoSetupListHOReqAck.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABFailedtoSetupListHOReqAck_H_
+#define _E_RABFailedtoSetupListHOReqAck_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-IE-ContainerList.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E-RABFailedtoSetupListHOReqAck */
+typedef E_RAB_IE_ContainerList_456P3_t E_RABFailedtoSetupListHOReqAck_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_E_RABFailedtoSetupListHOReqAck_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_E_RABFailedtoSetupListHOReqAck;
+asn_struct_free_f E_RABFailedtoSetupListHOReqAck_free;
+asn_struct_print_f E_RABFailedtoSetupListHOReqAck_print;
+asn_constr_check_f E_RABFailedtoSetupListHOReqAck_constraint;
+ber_type_decoder_f E_RABFailedtoSetupListHOReqAck_decode_ber;
+der_type_encoder_f E_RABFailedtoSetupListHOReqAck_encode_der;
+xer_type_decoder_f E_RABFailedtoSetupListHOReqAck_decode_xer;
+xer_type_encoder_f E_RABFailedtoSetupListHOReqAck_encode_xer;
+oer_type_decoder_f E_RABFailedtoSetupListHOReqAck_decode_oer;
+oer_type_encoder_f E_RABFailedtoSetupListHOReqAck_encode_oer;
+per_type_decoder_f E_RABFailedtoSetupListHOReqAck_decode_uper;
+per_type_encoder_f E_RABFailedtoSetupListHOReqAck_encode_uper;
+per_type_decoder_f E_RABFailedtoSetupListHOReqAck_decode_aper;
+per_type_encoder_f E_RABFailedtoSetupListHOReqAck_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABFailedtoSetupListHOReqAck_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABInformationList.h b/src/s1ap/asn1c/asnGenFiles/E-RABInformationList.h
new file mode 100644
index 0000000..58db860
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABInformationList.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABInformationList_H_
+#define _E_RABInformationList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* E-RABInformationList */
+typedef struct E_RABInformationList {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABInformationList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABInformationList;
+extern asn_SET_OF_specifics_t asn_SPC_E_RABInformationList_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABInformationList_1[1];
+extern asn_per_constraints_t asn_PER_type_E_RABInformationList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABInformationList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABInformationListItem.h b/src/s1ap/asn1c/asnGenFiles/E-RABInformationListItem.h
new file mode 100644
index 0000000..9ad32d3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABInformationListItem.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABInformationListItem_H_
+#define _E_RABInformationListItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "DL-Forwarding.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABInformationListItem */
+typedef struct E_RABInformationListItem {
+ E_RAB_ID_t e_RAB_ID;
+ DL_Forwarding_t *dL_Forwarding; /* 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;
+} E_RABInformationListItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABInformationListItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABInformationListItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABInformationListItem_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABInformationListItem_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABItem.h b/src/s1ap/asn1c/asnGenFiles/E-RABItem.h
new file mode 100644
index 0000000..5d8d22d
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABItem.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABItem_H_
+#define _E_RABItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "Cause.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABItem */
+typedef struct E_RABItem {
+ E_RAB_ID_t e_RAB_ID;
+ 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;
+} E_RABItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABItem_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABItem_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABLevelQoSParameters.h b/src/s1ap/asn1c/asnGenFiles/E-RABLevelQoSParameters.h
new file mode 100644
index 0000000..6c9182c
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABLevelQoSParameters.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABLevelQoSParameters_H_
+#define _E_RABLevelQoSParameters_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "QCI.h"
+#include "AllocationAndRetentionPriority.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GBR_QosInformation;
+struct ProtocolExtensionContainer;
+
+/* E-RABLevelQoSParameters */
+typedef struct E_RABLevelQoSParameters {
+ QCI_t qCI;
+ AllocationAndRetentionPriority_t allocationRetentionPriority;
+ 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;
+} E_RABLevelQoSParameters_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABLevelQoSParameters;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABLevelQoSParameters_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABLevelQoSParameters_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABLevelQoSParameters_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABList.h b/src/s1ap/asn1c/asnGenFiles/E-RABList.h
new file mode 100644
index 0000000..770fab3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABList.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABList_H_
+#define _E_RABList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* E-RABList */
+typedef struct E_RABList {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABList;
+extern asn_SET_OF_specifics_t asn_SPC_E_RABList_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABList_1[1];
+extern asn_per_constraints_t asn_PER_type_E_RABList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABModificationConfirm.h b/src/s1ap/asn1c/asnGenFiles/E-RABModificationConfirm.h
new file mode 100644
index 0000000..25e2b2f
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABModificationConfirm.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABModificationConfirm_H_
+#define _E_RABModificationConfirm_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E-RABModificationConfirm */
+typedef struct E_RABModificationConfirm {
+ ProtocolIE_Container_129P78_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABModificationConfirm_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABModificationConfirm;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABModificationConfirm_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABModificationIndication.h b/src/s1ap/asn1c/asnGenFiles/E-RABModificationIndication.h
new file mode 100644
index 0000000..2ec8ac0
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABModificationIndication.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABModificationIndication_H_
+#define _E_RABModificationIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E-RABModificationIndication */
+typedef struct E_RABModificationIndication {
+ ProtocolIE_Container_129P77_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABModificationIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABModificationIndication;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABModificationIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABModifyItemBearerModConf.h b/src/s1ap/asn1c/asnGenFiles/E-RABModifyItemBearerModConf.h
new file mode 100644
index 0000000..bbeeba7
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABModifyItemBearerModConf.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABModifyItemBearerModConf_H_
+#define _E_RABModifyItemBearerModConf_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABModifyItemBearerModConf */
+typedef struct E_RABModifyItemBearerModConf {
+ E_RAB_ID_t e_RAB_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;
+} E_RABModifyItemBearerModConf_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABModifyItemBearerModConf;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABModifyItemBearerModConf_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABModifyItemBearerModConf_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABModifyItemBearerModConf_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABModifyItemBearerModRes.h b/src/s1ap/asn1c/asnGenFiles/E-RABModifyItemBearerModRes.h
new file mode 100644
index 0000000..bd21af2
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABModifyItemBearerModRes.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABModifyItemBearerModRes_H_
+#define _E_RABModifyItemBearerModRes_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABModifyItemBearerModRes */
+typedef struct E_RABModifyItemBearerModRes {
+ E_RAB_ID_t e_RAB_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;
+} E_RABModifyItemBearerModRes_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABModifyItemBearerModRes;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABModifyItemBearerModRes_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABModifyItemBearerModRes_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABModifyItemBearerModRes_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABModifyListBearerModConf.h b/src/s1ap/asn1c/asnGenFiles/E-RABModifyListBearerModConf.h
new file mode 100644
index 0000000..326e103
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABModifyListBearerModConf.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABModifyListBearerModConf_H_
+#define _E_RABModifyListBearerModConf_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* E-RABModifyListBearerModConf */
+typedef struct E_RABModifyListBearerModConf {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABModifyListBearerModConf_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABModifyListBearerModConf;
+extern asn_SET_OF_specifics_t asn_SPC_E_RABModifyListBearerModConf_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABModifyListBearerModConf_1[1];
+extern asn_per_constraints_t asn_PER_type_E_RABModifyListBearerModConf_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABModifyListBearerModConf_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABModifyListBearerModRes.h b/src/s1ap/asn1c/asnGenFiles/E-RABModifyListBearerModRes.h
new file mode 100644
index 0000000..857ea21
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABModifyListBearerModRes.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABModifyListBearerModRes_H_
+#define _E_RABModifyListBearerModRes_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* E-RABModifyListBearerModRes */
+typedef struct E_RABModifyListBearerModRes {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABModifyListBearerModRes_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABModifyListBearerModRes;
+extern asn_SET_OF_specifics_t asn_SPC_E_RABModifyListBearerModRes_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABModifyListBearerModRes_1[1];
+extern asn_per_constraints_t asn_PER_type_E_RABModifyListBearerModRes_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABModifyListBearerModRes_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABModifyRequest.h b/src/s1ap/asn1c/asnGenFiles/E-RABModifyRequest.h
new file mode 100644
index 0000000..8834a20
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABModifyRequest.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABModifyRequest_H_
+#define _E_RABModifyRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E-RABModifyRequest */
+typedef struct E_RABModifyRequest {
+ ProtocolIE_Container_129P14_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABModifyRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABModifyRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABModifyRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABModifyResponse.h b/src/s1ap/asn1c/asnGenFiles/E-RABModifyResponse.h
new file mode 100644
index 0000000..04e224e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABModifyResponse.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABModifyResponse_H_
+#define _E_RABModifyResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E-RABModifyResponse */
+typedef struct E_RABModifyResponse {
+ ProtocolIE_Container_129P15_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABModifyResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABModifyResponse;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABModifyResponse_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABNotToBeModifiedItemBearerModInd.h b/src/s1ap/asn1c/asnGenFiles/E-RABNotToBeModifiedItemBearerModInd.h
new file mode 100644
index 0000000..2e950c5
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABNotToBeModifiedItemBearerModInd.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABNotToBeModifiedItemBearerModInd_H_
+#define _E_RABNotToBeModifiedItemBearerModInd_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "TransportLayerAddress.h"
+#include "GTP-TEID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABNotToBeModifiedItemBearerModInd */
+typedef struct E_RABNotToBeModifiedItemBearerModInd {
+ E_RAB_ID_t e_RAB_ID;
+ TransportLayerAddress_t transportLayerAddress;
+ GTP_TEID_t dL_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;
+} E_RABNotToBeModifiedItemBearerModInd_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABNotToBeModifiedItemBearerModInd;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABNotToBeModifiedItemBearerModInd_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABNotToBeModifiedItemBearerModInd_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABNotToBeModifiedItemBearerModInd_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABNotToBeModifiedListBearerModInd.h b/src/s1ap/asn1c/asnGenFiles/E-RABNotToBeModifiedListBearerModInd.h
new file mode 100644
index 0000000..e946ec2
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABNotToBeModifiedListBearerModInd.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABNotToBeModifiedListBearerModInd_H_
+#define _E_RABNotToBeModifiedListBearerModInd_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-IE-ContainerList.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E-RABNotToBeModifiedListBearerModInd */
+typedef E_RAB_IE_ContainerList_456P7_t E_RABNotToBeModifiedListBearerModInd_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_E_RABNotToBeModifiedListBearerModInd_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_E_RABNotToBeModifiedListBearerModInd;
+asn_struct_free_f E_RABNotToBeModifiedListBearerModInd_free;
+asn_struct_print_f E_RABNotToBeModifiedListBearerModInd_print;
+asn_constr_check_f E_RABNotToBeModifiedListBearerModInd_constraint;
+ber_type_decoder_f E_RABNotToBeModifiedListBearerModInd_decode_ber;
+der_type_encoder_f E_RABNotToBeModifiedListBearerModInd_encode_der;
+xer_type_decoder_f E_RABNotToBeModifiedListBearerModInd_decode_xer;
+xer_type_encoder_f E_RABNotToBeModifiedListBearerModInd_encode_xer;
+oer_type_decoder_f E_RABNotToBeModifiedListBearerModInd_decode_oer;
+oer_type_encoder_f E_RABNotToBeModifiedListBearerModInd_encode_oer;
+per_type_decoder_f E_RABNotToBeModifiedListBearerModInd_decode_uper;
+per_type_encoder_f E_RABNotToBeModifiedListBearerModInd_encode_uper;
+per_type_decoder_f E_RABNotToBeModifiedListBearerModInd_decode_aper;
+per_type_encoder_f E_RABNotToBeModifiedListBearerModInd_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABNotToBeModifiedListBearerModInd_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABReleaseCommand.h b/src/s1ap/asn1c/asnGenFiles/E-RABReleaseCommand.h
new file mode 100644
index 0000000..9c52c30
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABReleaseCommand.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABReleaseCommand_H_
+#define _E_RABReleaseCommand_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E-RABReleaseCommand */
+typedef struct E_RABReleaseCommand {
+ ProtocolIE_Container_129P16_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABReleaseCommand_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABReleaseCommand;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABReleaseCommand_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABReleaseIndication.h b/src/s1ap/asn1c/asnGenFiles/E-RABReleaseIndication.h
new file mode 100644
index 0000000..3bcce74
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABReleaseIndication.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABReleaseIndication_H_
+#define _E_RABReleaseIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E-RABReleaseIndication */
+typedef struct E_RABReleaseIndication {
+ ProtocolIE_Container_129P18_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABReleaseIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABReleaseIndication;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABReleaseIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABReleaseItemBearerRelComp.h b/src/s1ap/asn1c/asnGenFiles/E-RABReleaseItemBearerRelComp.h
new file mode 100644
index 0000000..4edc17b
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABReleaseItemBearerRelComp.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABReleaseItemBearerRelComp_H_
+#define _E_RABReleaseItemBearerRelComp_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABReleaseItemBearerRelComp */
+typedef struct E_RABReleaseItemBearerRelComp {
+ E_RAB_ID_t e_RAB_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;
+} E_RABReleaseItemBearerRelComp_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABReleaseItemBearerRelComp;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABReleaseItemBearerRelComp_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABReleaseItemBearerRelComp_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABReleaseItemBearerRelComp_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABReleaseListBearerRelComp.h b/src/s1ap/asn1c/asnGenFiles/E-RABReleaseListBearerRelComp.h
new file mode 100644
index 0000000..b3a21d9
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABReleaseListBearerRelComp.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABReleaseListBearerRelComp_H_
+#define _E_RABReleaseListBearerRelComp_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* E-RABReleaseListBearerRelComp */
+typedef struct E_RABReleaseListBearerRelComp {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABReleaseListBearerRelComp_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABReleaseListBearerRelComp;
+extern asn_SET_OF_specifics_t asn_SPC_E_RABReleaseListBearerRelComp_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABReleaseListBearerRelComp_1[1];
+extern asn_per_constraints_t asn_PER_type_E_RABReleaseListBearerRelComp_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABReleaseListBearerRelComp_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABReleaseResponse.h b/src/s1ap/asn1c/asnGenFiles/E-RABReleaseResponse.h
new file mode 100644
index 0000000..08bee42
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABReleaseResponse.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABReleaseResponse_H_
+#define _E_RABReleaseResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E-RABReleaseResponse */
+typedef struct E_RABReleaseResponse {
+ ProtocolIE_Container_129P17_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABReleaseResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABReleaseResponse;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABReleaseResponse_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABSetupItemBearerSURes.h b/src/s1ap/asn1c/asnGenFiles/E-RABSetupItemBearerSURes.h
new file mode 100644
index 0000000..6d45719
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABSetupItemBearerSURes.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABSetupItemBearerSURes_H_
+#define _E_RABSetupItemBearerSURes_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "TransportLayerAddress.h"
+#include "GTP-TEID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABSetupItemBearerSURes */
+typedef struct E_RABSetupItemBearerSURes {
+ E_RAB_ID_t e_RAB_ID;
+ 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;
+} E_RABSetupItemBearerSURes_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABSetupItemBearerSURes;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABSetupItemBearerSURes_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABSetupItemBearerSURes_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABSetupItemBearerSURes_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABSetupItemCtxtSURes.h b/src/s1ap/asn1c/asnGenFiles/E-RABSetupItemCtxtSURes.h
new file mode 100644
index 0000000..0243d30
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABSetupItemCtxtSURes.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABSetupItemCtxtSURes_H_
+#define _E_RABSetupItemCtxtSURes_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "TransportLayerAddress.h"
+#include "GTP-TEID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABSetupItemCtxtSURes */
+typedef struct E_RABSetupItemCtxtSURes {
+ E_RAB_ID_t e_RAB_ID;
+ 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;
+} E_RABSetupItemCtxtSURes_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABSetupItemCtxtSURes;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABSetupItemCtxtSURes_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABSetupItemCtxtSURes_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABSetupItemCtxtSURes_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABSetupListBearerSURes.h b/src/s1ap/asn1c/asnGenFiles/E-RABSetupListBearerSURes.h
new file mode 100644
index 0000000..bba9e13
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABSetupListBearerSURes.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABSetupListBearerSURes_H_
+#define _E_RABSetupListBearerSURes_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* E-RABSetupListBearerSURes */
+typedef struct E_RABSetupListBearerSURes {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABSetupListBearerSURes_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABSetupListBearerSURes;
+extern asn_SET_OF_specifics_t asn_SPC_E_RABSetupListBearerSURes_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABSetupListBearerSURes_1[1];
+extern asn_per_constraints_t asn_PER_type_E_RABSetupListBearerSURes_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABSetupListBearerSURes_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABSetupListCtxtSURes.h b/src/s1ap/asn1c/asnGenFiles/E-RABSetupListCtxtSURes.h
new file mode 100644
index 0000000..19574dd
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABSetupListCtxtSURes.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABSetupListCtxtSURes_H_
+#define _E_RABSetupListCtxtSURes_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* E-RABSetupListCtxtSURes */
+typedef struct E_RABSetupListCtxtSURes {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABSetupListCtxtSURes_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABSetupListCtxtSURes;
+extern asn_SET_OF_specifics_t asn_SPC_E_RABSetupListCtxtSURes_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABSetupListCtxtSURes_1[1];
+extern asn_per_constraints_t asn_PER_type_E_RABSetupListCtxtSURes_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABSetupListCtxtSURes_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABSetupRequest.h b/src/s1ap/asn1c/asnGenFiles/E-RABSetupRequest.h
new file mode 100644
index 0000000..4036c84
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABSetupRequest.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABSetupRequest_H_
+#define _E_RABSetupRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E-RABSetupRequest */
+typedef struct E_RABSetupRequest {
+ ProtocolIE_Container_129P12_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABSetupRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABSetupRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABSetupRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABSetupResponse.h b/src/s1ap/asn1c/asnGenFiles/E-RABSetupResponse.h
new file mode 100644
index 0000000..1c12414
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABSetupResponse.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABSetupResponse_H_
+#define _E_RABSetupResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E-RABSetupResponse */
+typedef struct E_RABSetupResponse {
+ ProtocolIE_Container_129P13_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABSetupResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABSetupResponse;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABSetupResponse_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABSubjecttoDataForwardingList.h b/src/s1ap/asn1c/asnGenFiles/E-RABSubjecttoDataForwardingList.h
new file mode 100644
index 0000000..f2c42cd
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABSubjecttoDataForwardingList.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABSubjecttoDataForwardingList_H_
+#define _E_RABSubjecttoDataForwardingList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-IE-ContainerList.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E-RABSubjecttoDataForwardingList */
+typedef E_RAB_IE_ContainerList_456P0_t E_RABSubjecttoDataForwardingList_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_E_RABSubjecttoDataForwardingList_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_E_RABSubjecttoDataForwardingList;
+asn_struct_free_f E_RABSubjecttoDataForwardingList_free;
+asn_struct_print_f E_RABSubjecttoDataForwardingList_print;
+asn_constr_check_f E_RABSubjecttoDataForwardingList_constraint;
+ber_type_decoder_f E_RABSubjecttoDataForwardingList_decode_ber;
+der_type_encoder_f E_RABSubjecttoDataForwardingList_encode_der;
+xer_type_decoder_f E_RABSubjecttoDataForwardingList_decode_xer;
+xer_type_encoder_f E_RABSubjecttoDataForwardingList_encode_xer;
+oer_type_decoder_f E_RABSubjecttoDataForwardingList_decode_oer;
+oer_type_encoder_f E_RABSubjecttoDataForwardingList_encode_oer;
+per_type_decoder_f E_RABSubjecttoDataForwardingList_decode_uper;
+per_type_encoder_f E_RABSubjecttoDataForwardingList_encode_uper;
+per_type_decoder_f E_RABSubjecttoDataForwardingList_decode_aper;
+per_type_encoder_f E_RABSubjecttoDataForwardingList_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABSubjecttoDataForwardingList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABToBeModifiedItemBearerModInd.h b/src/s1ap/asn1c/asnGenFiles/E-RABToBeModifiedItemBearerModInd.h
new file mode 100644
index 0000000..68e0063
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABToBeModifiedItemBearerModInd.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABToBeModifiedItemBearerModInd_H_
+#define _E_RABToBeModifiedItemBearerModInd_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "TransportLayerAddress.h"
+#include "GTP-TEID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABToBeModifiedItemBearerModInd */
+typedef struct E_RABToBeModifiedItemBearerModInd {
+ E_RAB_ID_t e_RAB_ID;
+ TransportLayerAddress_t transportLayerAddress;
+ GTP_TEID_t dL_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;
+} E_RABToBeModifiedItemBearerModInd_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeModifiedItemBearerModInd;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABToBeModifiedItemBearerModInd_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABToBeModifiedItemBearerModInd_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABToBeModifiedItemBearerModInd_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABToBeModifiedItemBearerModReq.h b/src/s1ap/asn1c/asnGenFiles/E-RABToBeModifiedItemBearerModReq.h
new file mode 100644
index 0000000..3ab5c08
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABToBeModifiedItemBearerModReq.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABToBeModifiedItemBearerModReq_H_
+#define _E_RABToBeModifiedItemBearerModReq_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "E-RABLevelQoSParameters.h"
+#include "NAS-PDU.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABToBeModifiedItemBearerModReq */
+typedef struct E_RABToBeModifiedItemBearerModReq {
+ E_RAB_ID_t e_RAB_ID;
+ E_RABLevelQoSParameters_t e_RABLevelQoSParameters;
+ NAS_PDU_t nAS_PDU;
+ 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;
+} E_RABToBeModifiedItemBearerModReq_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeModifiedItemBearerModReq;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABToBeModifiedItemBearerModReq_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABToBeModifiedItemBearerModReq_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABToBeModifiedItemBearerModReq_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABToBeModifiedListBearerModInd.h b/src/s1ap/asn1c/asnGenFiles/E-RABToBeModifiedListBearerModInd.h
new file mode 100644
index 0000000..2cc3166
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABToBeModifiedListBearerModInd.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABToBeModifiedListBearerModInd_H_
+#define _E_RABToBeModifiedListBearerModInd_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-IE-ContainerList.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E-RABToBeModifiedListBearerModInd */
+typedef E_RAB_IE_ContainerList_456P6_t E_RABToBeModifiedListBearerModInd_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_E_RABToBeModifiedListBearerModInd_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeModifiedListBearerModInd;
+asn_struct_free_f E_RABToBeModifiedListBearerModInd_free;
+asn_struct_print_f E_RABToBeModifiedListBearerModInd_print;
+asn_constr_check_f E_RABToBeModifiedListBearerModInd_constraint;
+ber_type_decoder_f E_RABToBeModifiedListBearerModInd_decode_ber;
+der_type_encoder_f E_RABToBeModifiedListBearerModInd_encode_der;
+xer_type_decoder_f E_RABToBeModifiedListBearerModInd_decode_xer;
+xer_type_encoder_f E_RABToBeModifiedListBearerModInd_encode_xer;
+oer_type_decoder_f E_RABToBeModifiedListBearerModInd_decode_oer;
+oer_type_encoder_f E_RABToBeModifiedListBearerModInd_encode_oer;
+per_type_decoder_f E_RABToBeModifiedListBearerModInd_decode_uper;
+per_type_encoder_f E_RABToBeModifiedListBearerModInd_encode_uper;
+per_type_decoder_f E_RABToBeModifiedListBearerModInd_decode_aper;
+per_type_encoder_f E_RABToBeModifiedListBearerModInd_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABToBeModifiedListBearerModInd_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABToBeModifiedListBearerModReq.h b/src/s1ap/asn1c/asnGenFiles/E-RABToBeModifiedListBearerModReq.h
new file mode 100644
index 0000000..1e11c2d
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABToBeModifiedListBearerModReq.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABToBeModifiedListBearerModReq_H_
+#define _E_RABToBeModifiedListBearerModReq_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* E-RABToBeModifiedListBearerModReq */
+typedef struct E_RABToBeModifiedListBearerModReq {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABToBeModifiedListBearerModReq_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeModifiedListBearerModReq;
+extern asn_SET_OF_specifics_t asn_SPC_E_RABToBeModifiedListBearerModReq_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABToBeModifiedListBearerModReq_1[1];
+extern asn_per_constraints_t asn_PER_type_E_RABToBeModifiedListBearerModReq_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABToBeModifiedListBearerModReq_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABToBeSetupItemBearerSUReq.h b/src/s1ap/asn1c/asnGenFiles/E-RABToBeSetupItemBearerSUReq.h
new file mode 100644
index 0000000..cb3076c
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABToBeSetupItemBearerSUReq.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABToBeSetupItemBearerSUReq_H_
+#define _E_RABToBeSetupItemBearerSUReq_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "E-RABLevelQoSParameters.h"
+#include "TransportLayerAddress.h"
+#include "GTP-TEID.h"
+#include "NAS-PDU.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABToBeSetupItemBearerSUReq */
+typedef struct E_RABToBeSetupItemBearerSUReq {
+ E_RAB_ID_t e_RAB_ID;
+ E_RABLevelQoSParameters_t e_RABlevelQoSParameters;
+ TransportLayerAddress_t transportLayerAddress;
+ GTP_TEID_t gTP_TEID;
+ NAS_PDU_t nAS_PDU;
+ 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;
+} E_RABToBeSetupItemBearerSUReq_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeSetupItemBearerSUReq;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABToBeSetupItemBearerSUReq_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABToBeSetupItemBearerSUReq_1[6];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABToBeSetupItemBearerSUReq_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABToBeSetupItemCtxtSUReq.h b/src/s1ap/asn1c/asnGenFiles/E-RABToBeSetupItemCtxtSUReq.h
new file mode 100644
index 0000000..d31dc17
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABToBeSetupItemCtxtSUReq.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABToBeSetupItemCtxtSUReq_H_
+#define _E_RABToBeSetupItemCtxtSUReq_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "E-RABLevelQoSParameters.h"
+#include "TransportLayerAddress.h"
+#include "GTP-TEID.h"
+#include "NAS-PDU.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABToBeSetupItemCtxtSUReq */
+typedef struct E_RABToBeSetupItemCtxtSUReq {
+ E_RAB_ID_t e_RAB_ID;
+ E_RABLevelQoSParameters_t e_RABlevelQoSParameters;
+ TransportLayerAddress_t transportLayerAddress;
+ GTP_TEID_t gTP_TEID;
+ NAS_PDU_t *nAS_PDU; /* 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;
+} E_RABToBeSetupItemCtxtSUReq_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeSetupItemCtxtSUReq;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABToBeSetupItemCtxtSUReq_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABToBeSetupItemCtxtSUReq_1[6];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABToBeSetupItemCtxtSUReq_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABToBeSetupItemHOReq.h b/src/s1ap/asn1c/asnGenFiles/E-RABToBeSetupItemHOReq.h
new file mode 100644
index 0000000..c68a5b7
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABToBeSetupItemHOReq.h
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABToBeSetupItemHOReq_H_
+#define _E_RABToBeSetupItemHOReq_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "TransportLayerAddress.h"
+#include "GTP-TEID.h"
+#include "E-RABLevelQoSParameters.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABToBeSetupItemHOReq */
+typedef struct E_RABToBeSetupItemHOReq {
+ E_RAB_ID_t e_RAB_ID;
+ TransportLayerAddress_t transportLayerAddress;
+ GTP_TEID_t gTP_TEID;
+ E_RABLevelQoSParameters_t e_RABlevelQosParameters;
+ 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;
+} E_RABToBeSetupItemHOReq_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeSetupItemHOReq;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABToBeSetupItemHOReq_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABToBeSetupItemHOReq_1[5];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABToBeSetupItemHOReq_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABToBeSetupListBearerSUReq.h b/src/s1ap/asn1c/asnGenFiles/E-RABToBeSetupListBearerSUReq.h
new file mode 100644
index 0000000..da3eafb
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABToBeSetupListBearerSUReq.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABToBeSetupListBearerSUReq_H_
+#define _E_RABToBeSetupListBearerSUReq_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* E-RABToBeSetupListBearerSUReq */
+typedef struct E_RABToBeSetupListBearerSUReq {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABToBeSetupListBearerSUReq_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeSetupListBearerSUReq;
+extern asn_SET_OF_specifics_t asn_SPC_E_RABToBeSetupListBearerSUReq_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABToBeSetupListBearerSUReq_1[1];
+extern asn_per_constraints_t asn_PER_type_E_RABToBeSetupListBearerSUReq_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABToBeSetupListBearerSUReq_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABToBeSetupListCtxtSUReq.h b/src/s1ap/asn1c/asnGenFiles/E-RABToBeSetupListCtxtSUReq.h
new file mode 100644
index 0000000..c4c3cd9
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABToBeSetupListCtxtSUReq.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABToBeSetupListCtxtSUReq_H_
+#define _E_RABToBeSetupListCtxtSUReq_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* E-RABToBeSetupListCtxtSUReq */
+typedef struct E_RABToBeSetupListCtxtSUReq {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABToBeSetupListCtxtSUReq_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeSetupListCtxtSUReq;
+extern asn_SET_OF_specifics_t asn_SPC_E_RABToBeSetupListCtxtSUReq_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABToBeSetupListCtxtSUReq_1[1];
+extern asn_per_constraints_t asn_PER_type_E_RABToBeSetupListCtxtSUReq_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABToBeSetupListCtxtSUReq_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABToBeSetupListHOReq.h b/src/s1ap/asn1c/asnGenFiles/E-RABToBeSetupListHOReq.h
new file mode 100644
index 0000000..90a342f
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABToBeSetupListHOReq.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABToBeSetupListHOReq_H_
+#define _E_RABToBeSetupListHOReq_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-IE-ContainerList.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E-RABToBeSetupListHOReq */
+typedef E_RAB_IE_ContainerList_456P1_t E_RABToBeSetupListHOReq_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_E_RABToBeSetupListHOReq_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeSetupListHOReq;
+asn_struct_free_f E_RABToBeSetupListHOReq_free;
+asn_struct_print_f E_RABToBeSetupListHOReq_print;
+asn_constr_check_f E_RABToBeSetupListHOReq_constraint;
+ber_type_decoder_f E_RABToBeSetupListHOReq_decode_ber;
+der_type_encoder_f E_RABToBeSetupListHOReq_encode_der;
+xer_type_decoder_f E_RABToBeSetupListHOReq_decode_xer;
+xer_type_encoder_f E_RABToBeSetupListHOReq_encode_xer;
+oer_type_decoder_f E_RABToBeSetupListHOReq_decode_oer;
+oer_type_encoder_f E_RABToBeSetupListHOReq_encode_oer;
+per_type_decoder_f E_RABToBeSetupListHOReq_decode_uper;
+per_type_encoder_f E_RABToBeSetupListHOReq_encode_uper;
+per_type_decoder_f E_RABToBeSetupListHOReq_decode_aper;
+per_type_encoder_f E_RABToBeSetupListHOReq_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABToBeSetupListHOReq_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABToBeSwitchedDLItem.h b/src/s1ap/asn1c/asnGenFiles/E-RABToBeSwitchedDLItem.h
new file mode 100644
index 0000000..3162177
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABToBeSwitchedDLItem.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABToBeSwitchedDLItem_H_
+#define _E_RABToBeSwitchedDLItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "TransportLayerAddress.h"
+#include "GTP-TEID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABToBeSwitchedDLItem */
+typedef struct E_RABToBeSwitchedDLItem {
+ E_RAB_ID_t e_RAB_ID;
+ 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;
+} E_RABToBeSwitchedDLItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeSwitchedDLItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABToBeSwitchedDLItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABToBeSwitchedDLItem_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABToBeSwitchedDLItem_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABToBeSwitchedDLList.h b/src/s1ap/asn1c/asnGenFiles/E-RABToBeSwitchedDLList.h
new file mode 100644
index 0000000..506fe3b
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABToBeSwitchedDLList.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABToBeSwitchedDLList_H_
+#define _E_RABToBeSwitchedDLList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-IE-ContainerList.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E-RABToBeSwitchedDLList */
+typedef E_RAB_IE_ContainerList_456P4_t E_RABToBeSwitchedDLList_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_E_RABToBeSwitchedDLList_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeSwitchedDLList;
+asn_struct_free_f E_RABToBeSwitchedDLList_free;
+asn_struct_print_f E_RABToBeSwitchedDLList_print;
+asn_constr_check_f E_RABToBeSwitchedDLList_constraint;
+ber_type_decoder_f E_RABToBeSwitchedDLList_decode_ber;
+der_type_encoder_f E_RABToBeSwitchedDLList_encode_der;
+xer_type_decoder_f E_RABToBeSwitchedDLList_decode_xer;
+xer_type_encoder_f E_RABToBeSwitchedDLList_encode_xer;
+oer_type_decoder_f E_RABToBeSwitchedDLList_decode_oer;
+oer_type_encoder_f E_RABToBeSwitchedDLList_encode_oer;
+per_type_decoder_f E_RABToBeSwitchedDLList_decode_uper;
+per_type_encoder_f E_RABToBeSwitchedDLList_encode_uper;
+per_type_decoder_f E_RABToBeSwitchedDLList_decode_aper;
+per_type_encoder_f E_RABToBeSwitchedDLList_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABToBeSwitchedDLList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABToBeSwitchedULItem.h b/src/s1ap/asn1c/asnGenFiles/E-RABToBeSwitchedULItem.h
new file mode 100644
index 0000000..9206021
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABToBeSwitchedULItem.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABToBeSwitchedULItem_H_
+#define _E_RABToBeSwitchedULItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "TransportLayerAddress.h"
+#include "GTP-TEID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABToBeSwitchedULItem */
+typedef struct E_RABToBeSwitchedULItem {
+ E_RAB_ID_t e_RAB_ID;
+ 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;
+} E_RABToBeSwitchedULItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeSwitchedULItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABToBeSwitchedULItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABToBeSwitchedULItem_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABToBeSwitchedULItem_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABToBeSwitchedULList.h b/src/s1ap/asn1c/asnGenFiles/E-RABToBeSwitchedULList.h
new file mode 100644
index 0000000..a4bb9c8
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABToBeSwitchedULList.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABToBeSwitchedULList_H_
+#define _E_RABToBeSwitchedULList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-IE-ContainerList.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E-RABToBeSwitchedULList */
+typedef E_RAB_IE_ContainerList_456P5_t E_RABToBeSwitchedULList_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_E_RABToBeSwitchedULList_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeSwitchedULList;
+asn_struct_free_f E_RABToBeSwitchedULList_free;
+asn_struct_print_f E_RABToBeSwitchedULList_print;
+asn_constr_check_f E_RABToBeSwitchedULList_constraint;
+ber_type_decoder_f E_RABToBeSwitchedULList_decode_ber;
+der_type_encoder_f E_RABToBeSwitchedULList_encode_der;
+xer_type_decoder_f E_RABToBeSwitchedULList_decode_xer;
+xer_type_encoder_f E_RABToBeSwitchedULList_encode_xer;
+oer_type_decoder_f E_RABToBeSwitchedULList_decode_oer;
+oer_type_encoder_f E_RABToBeSwitchedULList_encode_oer;
+per_type_decoder_f E_RABToBeSwitchedULList_decode_uper;
+per_type_encoder_f E_RABToBeSwitchedULList_encode_uper;
+per_type_decoder_f E_RABToBeSwitchedULList_decode_aper;
+per_type_encoder_f E_RABToBeSwitchedULList_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABToBeSwitchedULList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABUsageReportItem.h b/src/s1ap/asn1c/asnGenFiles/E-RABUsageReportItem.h
new file mode 100644
index 0000000..e9e2a39
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABUsageReportItem.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABUsageReportItem_H_
+#define _E_RABUsageReportItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* E-RABUsageReportItem */
+typedef struct E_RABUsageReportItem {
+ OCTET_STRING_t startTimestamp;
+ OCTET_STRING_t endTimestamp;
+ long usageCountUL;
+ long usageCountDL;
+ 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;
+} E_RABUsageReportItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABUsageReportItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABUsageReportItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABUsageReportItem_1[5];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABUsageReportItem_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-RABUsageReportList.h b/src/s1ap/asn1c/asnGenFiles/E-RABUsageReportList.h
new file mode 100644
index 0000000..d28023c
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-RABUsageReportList.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_RABUsageReportList_H_
+#define _E_RABUsageReportList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* E-RABUsageReportList */
+typedef struct E_RABUsageReportList {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABUsageReportList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E_RABUsageReportList;
+extern asn_SET_OF_specifics_t asn_SPC_E_RABUsageReportList_specs_1;
+extern asn_TYPE_member_t asn_MBR_E_RABUsageReportList_1[1];
+extern asn_per_constraints_t asn_PER_type_E_RABUsageReportList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_RABUsageReportList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/E-UTRAN-Trace-ID.h b/src/s1ap/asn1c/asnGenFiles/E-UTRAN-Trace-ID.h
new file mode 100644
index 0000000..c49b629
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/E-UTRAN-Trace-ID.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _E_UTRAN_Trace_ID_H_
+#define _E_UTRAN_Trace_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E-UTRAN-Trace-ID */
+typedef OCTET_STRING_t E_UTRAN_Trace_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_E_UTRAN_Trace_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_E_UTRAN_Trace_ID;
+asn_struct_free_f E_UTRAN_Trace_ID_free;
+asn_struct_print_f E_UTRAN_Trace_ID_print;
+asn_constr_check_f E_UTRAN_Trace_ID_constraint;
+ber_type_decoder_f E_UTRAN_Trace_ID_decode_ber;
+der_type_encoder_f E_UTRAN_Trace_ID_encode_der;
+xer_type_decoder_f E_UTRAN_Trace_ID_decode_xer;
+xer_type_encoder_f E_UTRAN_Trace_ID_encode_xer;
+oer_type_decoder_f E_UTRAN_Trace_ID_decode_oer;
+oer_type_encoder_f E_UTRAN_Trace_ID_encode_oer;
+per_type_decoder_f E_UTRAN_Trace_ID_decode_uper;
+per_type_encoder_f E_UTRAN_Trace_ID_encode_uper;
+per_type_decoder_f E_UTRAN_Trace_ID_decode_aper;
+per_type_encoder_f E_UTRAN_Trace_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _E_UTRAN_Trace_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/EARFCN.h b/src/s1ap/asn1c/asnGenFiles/EARFCN.h
new file mode 100644
index 0000000..fa34f32
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/EARFCN.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _EARFCN_H_
+#define _EARFCN_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* EARFCN */
+typedef long EARFCN_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_EARFCN_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_EARFCN;
+asn_struct_free_f EARFCN_free;
+asn_struct_print_f EARFCN_print;
+asn_constr_check_f EARFCN_constraint;
+ber_type_decoder_f EARFCN_decode_ber;
+der_type_encoder_f EARFCN_encode_der;
+xer_type_decoder_f EARFCN_decode_xer;
+xer_type_encoder_f EARFCN_encode_xer;
+oer_type_decoder_f EARFCN_decode_oer;
+oer_type_encoder_f EARFCN_encode_oer;
+per_type_decoder_f EARFCN_decode_uper;
+per_type_encoder_f EARFCN_encode_uper;
+per_type_decoder_f EARFCN_decode_aper;
+per_type_encoder_f EARFCN_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EARFCN_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ECGI-List.h b/src/s1ap/asn1c/asnGenFiles/ECGI-List.h
new file mode 100644
index 0000000..7e2f5d2
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ECGI-List.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ECGI_List_H_
+#define _ECGI_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct EUTRAN_CGI;
+
+/* ECGI-List */
+typedef struct ECGI_List {
+ A_SEQUENCE_OF(struct EUTRAN_CGI) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ECGI_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ECGI_List;
+extern asn_SET_OF_specifics_t asn_SPC_ECGI_List_specs_1;
+extern asn_TYPE_member_t asn_MBR_ECGI_List_1[1];
+extern asn_per_constraints_t asn_PER_type_ECGI_List_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ECGI_List_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ECGIList.h b/src/s1ap/asn1c/asnGenFiles/ECGIList.h
new file mode 100644
index 0000000..9bf40c9
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ECGIList.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ECGIList_H_
+#define _ECGIList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct EUTRAN_CGI;
+
+/* ECGIList */
+typedef struct ECGIList {
+ A_SEQUENCE_OF(struct EUTRAN_CGI) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ECGIList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ECGIList;
+extern asn_SET_OF_specifics_t asn_SPC_ECGIList_specs_1;
+extern asn_TYPE_member_t asn_MBR_ECGIList_1[1];
+extern asn_per_constraints_t asn_PER_type_ECGIList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ECGIList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ECGIListForRestart.h b/src/s1ap/asn1c/asnGenFiles/ECGIListForRestart.h
new file mode 100644
index 0000000..38c4fbe
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ECGIListForRestart.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ECGIListForRestart_H_
+#define _ECGIListForRestart_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct EUTRAN_CGI;
+
+/* ECGIListForRestart */
+typedef struct ECGIListForRestart {
+ A_SEQUENCE_OF(struct EUTRAN_CGI) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ECGIListForRestart_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ECGIListForRestart;
+extern asn_SET_OF_specifics_t asn_SPC_ECGIListForRestart_specs_1;
+extern asn_TYPE_member_t asn_MBR_ECGIListForRestart_1[1];
+extern asn_per_constraints_t asn_PER_type_ECGIListForRestart_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ECGIListForRestart_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/EDT-Session.h b/src/s1ap/asn1c/asnGenFiles/EDT-Session.h
new file mode 100644
index 0000000..bfe0841
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/EDT-Session.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _EDT_Session_H_
+#define _EDT_Session_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum EDT_Session {
+ EDT_Session_true = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_EDT_Session;
+
+/* EDT-Session */
+typedef long EDT_Session_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_EDT_Session_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_EDT_Session;
+extern const asn_INTEGER_specifics_t asn_SPC_EDT_Session_specs_1;
+asn_struct_free_f EDT_Session_free;
+asn_struct_print_f EDT_Session_print;
+asn_constr_check_f EDT_Session_constraint;
+ber_type_decoder_f EDT_Session_decode_ber;
+der_type_encoder_f EDT_Session_encode_der;
+xer_type_decoder_f EDT_Session_decode_xer;
+xer_type_encoder_f EDT_Session_encode_xer;
+oer_type_decoder_f EDT_Session_decode_oer;
+oer_type_encoder_f EDT_Session_encode_oer;
+per_type_decoder_f EDT_Session_decode_uper;
+per_type_encoder_f EDT_Session_encode_uper;
+per_type_decoder_f EDT_Session_decode_aper;
+per_type_encoder_f EDT_Session_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EDT_Session_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/EN-DCSONConfigurationTransfer.h b/src/s1ap/asn1c/asnGenFiles/EN-DCSONConfigurationTransfer.h
new file mode 100644
index 0000000..53c7cb6
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/EN-DCSONConfigurationTransfer.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _EN_DCSONConfigurationTransfer_H_
+#define _EN_DCSONConfigurationTransfer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "EN-DCSONTransferType.h"
+#include "SONInformation.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct X2TNLConfigurationInfo;
+struct ProtocolExtensionContainer;
+
+/* EN-DCSONConfigurationTransfer */
+typedef struct EN_DCSONConfigurationTransfer {
+ EN_DCSONTransferType_t transfertype;
+ SONInformation_t sONInformation;
+ struct X2TNLConfigurationInfo *x2TNLConfigInfo; /* 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;
+} EN_DCSONConfigurationTransfer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EN_DCSONConfigurationTransfer;
+extern asn_SEQUENCE_specifics_t asn_SPC_EN_DCSONConfigurationTransfer_specs_1;
+extern asn_TYPE_member_t asn_MBR_EN_DCSONConfigurationTransfer_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EN_DCSONConfigurationTransfer_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/EN-DCSONTransferType.h b/src/s1ap/asn1c/asnGenFiles/EN-DCSONTransferType.h
new file mode 100644
index 0000000..6a2fd41
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/EN-DCSONTransferType.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _EN_DCSONTransferType_H_
+#define _EN_DCSONTransferType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum EN_DCSONTransferType_PR {
+ EN_DCSONTransferType_PR_NOTHING, /* No components present */
+ EN_DCSONTransferType_PR_request,
+ EN_DCSONTransferType_PR_reply
+ /* Extensions may appear below */
+
+} EN_DCSONTransferType_PR;
+
+/* Forward declarations */
+struct EN_DCTransferTypeRequest;
+struct EN_DCTransferTypeReply;
+
+/* EN-DCSONTransferType */
+typedef struct EN_DCSONTransferType {
+ EN_DCSONTransferType_PR present;
+ union EN_DCSONTransferType_u {
+ struct EN_DCTransferTypeRequest *request;
+ struct EN_DCTransferTypeReply *reply;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} EN_DCSONTransferType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EN_DCSONTransferType;
+extern asn_CHOICE_specifics_t asn_SPC_EN_DCSONTransferType_specs_1;
+extern asn_TYPE_member_t asn_MBR_EN_DCSONTransferType_1[2];
+extern asn_per_constraints_t asn_PER_type_EN_DCSONTransferType_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EN_DCSONTransferType_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/EN-DCSONeNBIdentification.h b/src/s1ap/asn1c/asnGenFiles/EN-DCSONeNBIdentification.h
new file mode 100644
index 0000000..533b6d2
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/EN-DCSONeNBIdentification.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _EN_DCSONeNBIdentification_H_
+#define _EN_DCSONeNBIdentification_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "Global-ENB-ID.h"
+#include "TAI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* EN-DCSONeNBIdentification */
+typedef struct EN_DCSONeNBIdentification {
+ Global_ENB_ID_t globaleNBID;
+ TAI_t selectedTAI;
+ 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;
+} EN_DCSONeNBIdentification_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EN_DCSONeNBIdentification;
+extern asn_SEQUENCE_specifics_t asn_SPC_EN_DCSONeNBIdentification_specs_1;
+extern asn_TYPE_member_t asn_MBR_EN_DCSONeNBIdentification_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EN_DCSONeNBIdentification_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/EN-DCSONengNBIdentification.h b/src/s1ap/asn1c/asnGenFiles/EN-DCSONengNBIdentification.h
new file mode 100644
index 0000000..49b4ebf
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/EN-DCSONengNBIdentification.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _EN_DCSONengNBIdentification_H_
+#define _EN_DCSONengNBIdentification_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "Global-en-gNB-ID.h"
+#include "TAI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* EN-DCSONengNBIdentification */
+typedef struct EN_DCSONengNBIdentification {
+ Global_en_gNB_ID_t globalengNBID;
+ TAI_t selectedTAI;
+ 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;
+} EN_DCSONengNBIdentification_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EN_DCSONengNBIdentification;
+extern asn_SEQUENCE_specifics_t asn_SPC_EN_DCSONengNBIdentification_specs_1;
+extern asn_TYPE_member_t asn_MBR_EN_DCSONengNBIdentification_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EN_DCSONengNBIdentification_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/EN-DCTransferTypeReply.h b/src/s1ap/asn1c/asnGenFiles/EN-DCTransferTypeReply.h
new file mode 100644
index 0000000..859d406
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/EN-DCTransferTypeReply.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _EN_DCTransferTypeReply_H_
+#define _EN_DCTransferTypeReply_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "EN-DCSONengNBIdentification.h"
+#include "EN-DCSONeNBIdentification.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* EN-DCTransferTypeReply */
+typedef struct EN_DCTransferTypeReply {
+ EN_DCSONengNBIdentification_t sourceengNB;
+ EN_DCSONeNBIdentification_t targeteNB;
+ 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;
+} EN_DCTransferTypeReply_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EN_DCTransferTypeReply;
+extern asn_SEQUENCE_specifics_t asn_SPC_EN_DCTransferTypeReply_specs_1;
+extern asn_TYPE_member_t asn_MBR_EN_DCTransferTypeReply_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EN_DCTransferTypeReply_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/EN-DCTransferTypeRequest.h b/src/s1ap/asn1c/asnGenFiles/EN-DCTransferTypeRequest.h
new file mode 100644
index 0000000..12a53b0
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/EN-DCTransferTypeRequest.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _EN_DCTransferTypeRequest_H_
+#define _EN_DCTransferTypeRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "EN-DCSONeNBIdentification.h"
+#include "EN-DCSONengNBIdentification.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct EN_DCSONeNBIdentification;
+struct S_TAI;
+struct FiveGSTAI;
+struct ProtocolExtensionContainer;
+
+/* EN-DCTransferTypeRequest */
+typedef struct EN_DCTransferTypeRequest {
+ EN_DCSONeNBIdentification_t sourceeNB;
+ EN_DCSONengNBIdentification_t targetengNB;
+ struct EN_DCSONeNBIdentification *targeteNB; /* OPTIONAL */
+ struct S_TAI *associatedTAI; /* OPTIONAL */
+ struct FiveGSTAI *broadcast5GSTAI; /* 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;
+} EN_DCTransferTypeRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EN_DCTransferTypeRequest;
+extern asn_SEQUENCE_specifics_t asn_SPC_EN_DCTransferTypeRequest_specs_1;
+extern asn_TYPE_member_t asn_MBR_EN_DCTransferTypeRequest_1[6];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EN_DCTransferTypeRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ENB-ID.h b/src/s1ap/asn1c/asnGenFiles/ENB-ID.h
new file mode 100644
index 0000000..d9178b9
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ENB-ID.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ENB_ID_H_
+#define _ENB_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ENB_ID_PR {
+ ENB_ID_PR_NOTHING, /* No components present */
+ ENB_ID_PR_macroENB_ID,
+ ENB_ID_PR_homeENB_ID,
+ /* Extensions may appear below */
+ ENB_ID_PR_short_macroENB_ID,
+ ENB_ID_PR_long_macroENB_ID
+} ENB_ID_PR;
+
+/* ENB-ID */
+typedef struct ENB_ID {
+ ENB_ID_PR present;
+ union ENB_ID_u {
+ BIT_STRING_t macroENB_ID;
+ BIT_STRING_t homeENB_ID;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ BIT_STRING_t short_macroENB_ID;
+ BIT_STRING_t long_macroENB_ID;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ENB_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENB_ID;
+extern asn_CHOICE_specifics_t asn_SPC_ENB_ID_specs_1;
+extern asn_TYPE_member_t asn_MBR_ENB_ID_1[4];
+extern asn_per_constraints_t asn_PER_type_ENB_ID_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENB_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ENB-StatusTransfer-TransparentContainer.h b/src/s1ap/asn1c/asnGenFiles/ENB-StatusTransfer-TransparentContainer.h
new file mode 100644
index 0000000..b994d1c
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ENB-StatusTransfer-TransparentContainer.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ENB_StatusTransfer_TransparentContainer_H_
+#define _ENB_StatusTransfer_TransparentContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "Bearers-SubjectToStatusTransferList.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ENB-StatusTransfer-TransparentContainer */
+typedef struct ENB_StatusTransfer_TransparentContainer {
+ Bearers_SubjectToStatusTransferList_t bearers_SubjectToStatusTransferList;
+ 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;
+} ENB_StatusTransfer_TransparentContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENB_StatusTransfer_TransparentContainer;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENB_StatusTransfer_TransparentContainer_specs_1;
+extern asn_TYPE_member_t asn_MBR_ENB_StatusTransfer_TransparentContainer_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENB_StatusTransfer_TransparentContainer_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ENB-UE-S1AP-ID.h b/src/s1ap/asn1c/asnGenFiles/ENB-UE-S1AP-ID.h
new file mode 100644
index 0000000..b236b03
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ENB-UE-S1AP-ID.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ENB_UE_S1AP_ID_H_
+#define _ENB_UE_S1AP_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENB-UE-S1AP-ID */
+typedef long ENB_UE_S1AP_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ENB_UE_S1AP_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ENB_UE_S1AP_ID;
+asn_struct_free_f ENB_UE_S1AP_ID_free;
+asn_struct_print_f ENB_UE_S1AP_ID_print;
+asn_constr_check_f ENB_UE_S1AP_ID_constraint;
+ber_type_decoder_f ENB_UE_S1AP_ID_decode_ber;
+der_type_encoder_f ENB_UE_S1AP_ID_encode_der;
+xer_type_decoder_f ENB_UE_S1AP_ID_decode_xer;
+xer_type_encoder_f ENB_UE_S1AP_ID_encode_xer;
+oer_type_decoder_f ENB_UE_S1AP_ID_decode_oer;
+oer_type_encoder_f ENB_UE_S1AP_ID_encode_oer;
+per_type_decoder_f ENB_UE_S1AP_ID_decode_uper;
+per_type_encoder_f ENB_UE_S1AP_ID_encode_uper;
+per_type_decoder_f ENB_UE_S1AP_ID_decode_aper;
+per_type_encoder_f ENB_UE_S1AP_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENB_UE_S1AP_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ENBCPRelocationIndication.h b/src/s1ap/asn1c/asnGenFiles/ENBCPRelocationIndication.h
new file mode 100644
index 0000000..c5517dd
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ENBCPRelocationIndication.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ENBCPRelocationIndication_H_
+#define _ENBCPRelocationIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENBCPRelocationIndication */
+typedef struct ENBCPRelocationIndication {
+ ProtocolIE_Container_129P89_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ENBCPRelocationIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENBCPRelocationIndication;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENBCPRelocationIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ENBConfigurationTransfer.h b/src/s1ap/asn1c/asnGenFiles/ENBConfigurationTransfer.h
new file mode 100644
index 0000000..16e6f0d
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ENBConfigurationTransfer.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ENBConfigurationTransfer_H_
+#define _ENBConfigurationTransfer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENBConfigurationTransfer */
+typedef struct ENBConfigurationTransfer {
+ ProtocolIE_Container_129P67_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ENBConfigurationTransfer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENBConfigurationTransfer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENBConfigurationTransfer_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ENBConfigurationUpdate.h b/src/s1ap/asn1c/asnGenFiles/ENBConfigurationUpdate.h
new file mode 100644
index 0000000..290e2e2
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ENBConfigurationUpdate.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ENBConfigurationUpdate_H_
+#define _ENBConfigurationUpdate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENBConfigurationUpdate */
+typedef struct ENBConfigurationUpdate {
+ ProtocolIE_Container_129P43_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ENBConfigurationUpdate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdate;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENBConfigurationUpdate_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ENBConfigurationUpdateAcknowledge.h b/src/s1ap/asn1c/asnGenFiles/ENBConfigurationUpdateAcknowledge.h
new file mode 100644
index 0000000..a7db110
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ENBConfigurationUpdateAcknowledge.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ENBConfigurationUpdateAcknowledge_H_
+#define _ENBConfigurationUpdateAcknowledge_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENBConfigurationUpdateAcknowledge */
+typedef struct ENBConfigurationUpdateAcknowledge {
+ ProtocolIE_Container_129P44_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ENBConfigurationUpdateAcknowledge_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdateAcknowledge;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENBConfigurationUpdateAcknowledge_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ENBConfigurationUpdateFailure.h b/src/s1ap/asn1c/asnGenFiles/ENBConfigurationUpdateFailure.h
new file mode 100644
index 0000000..4f7d2d3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ENBConfigurationUpdateFailure.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ENBConfigurationUpdateFailure_H_
+#define _ENBConfigurationUpdateFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENBConfigurationUpdateFailure */
+typedef struct ENBConfigurationUpdateFailure {
+ ProtocolIE_Container_129P45_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ENBConfigurationUpdateFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdateFailure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENBConfigurationUpdateFailure_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ENBDirectInformationTransfer.h b/src/s1ap/asn1c/asnGenFiles/ENBDirectInformationTransfer.h
new file mode 100644
index 0000000..95139bf
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ENBDirectInformationTransfer.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ENBDirectInformationTransfer_H_
+#define _ENBDirectInformationTransfer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENBDirectInformationTransfer */
+typedef struct ENBDirectInformationTransfer {
+ ProtocolIE_Container_129P65_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ENBDirectInformationTransfer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENBDirectInformationTransfer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENBDirectInformationTransfer_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ENBIndirectX2TransportLayerAddresses.h b/src/s1ap/asn1c/asnGenFiles/ENBIndirectX2TransportLayerAddresses.h
new file mode 100644
index 0000000..d7ffaa0
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ENBIndirectX2TransportLayerAddresses.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ENBIndirectX2TransportLayerAddresses_H_
+#define _ENBIndirectX2TransportLayerAddresses_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TransportLayerAddress.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENBIndirectX2TransportLayerAddresses */
+typedef struct ENBIndirectX2TransportLayerAddresses {
+ A_SEQUENCE_OF(TransportLayerAddress_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ENBIndirectX2TransportLayerAddresses_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENBIndirectX2TransportLayerAddresses;
+extern asn_SET_OF_specifics_t asn_SPC_ENBIndirectX2TransportLayerAddresses_specs_1;
+extern asn_TYPE_member_t asn_MBR_ENBIndirectX2TransportLayerAddresses_1[1];
+extern asn_per_constraints_t asn_PER_type_ENBIndirectX2TransportLayerAddresses_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENBIndirectX2TransportLayerAddresses_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ENBStatusTransfer.h b/src/s1ap/asn1c/asnGenFiles/ENBStatusTransfer.h
new file mode 100644
index 0000000..ed952bf
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ENBStatusTransfer.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ENBStatusTransfer_H_
+#define _ENBStatusTransfer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENBStatusTransfer */
+typedef struct ENBStatusTransfer {
+ ProtocolIE_Container_129P52_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ENBStatusTransfer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENBStatusTransfer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENBStatusTransfer_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ENBX2ExtTLA.h b/src/s1ap/asn1c/asnGenFiles/ENBX2ExtTLA.h
new file mode 100644
index 0000000..ddd4f28
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ENBX2ExtTLA.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ENBX2ExtTLA_H_
+#define _ENBX2ExtTLA_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TransportLayerAddress.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ENBX2GTPTLAs;
+struct ProtocolExtensionContainer;
+
+/* ENBX2ExtTLA */
+typedef struct ENBX2ExtTLA {
+ TransportLayerAddress_t *iPsecTLA; /* OPTIONAL */
+ struct ENBX2GTPTLAs *gTPTLAa; /* 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;
+} ENBX2ExtTLA_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENBX2ExtTLA;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENBX2ExtTLA_specs_1;
+extern asn_TYPE_member_t asn_MBR_ENBX2ExtTLA_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENBX2ExtTLA_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ENBX2ExtTLAs.h b/src/s1ap/asn1c/asnGenFiles/ENBX2ExtTLAs.h
new file mode 100644
index 0000000..adb9e75
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ENBX2ExtTLAs.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ENBX2ExtTLAs_H_
+#define _ENBX2ExtTLAs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ENBX2ExtTLA;
+
+/* ENBX2ExtTLAs */
+typedef struct ENBX2ExtTLAs {
+ A_SEQUENCE_OF(struct ENBX2ExtTLA) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ENBX2ExtTLAs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENBX2ExtTLAs;
+extern asn_SET_OF_specifics_t asn_SPC_ENBX2ExtTLAs_specs_1;
+extern asn_TYPE_member_t asn_MBR_ENBX2ExtTLAs_1[1];
+extern asn_per_constraints_t asn_PER_type_ENBX2ExtTLAs_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENBX2ExtTLAs_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ENBX2GTPTLAs.h b/src/s1ap/asn1c/asnGenFiles/ENBX2GTPTLAs.h
new file mode 100644
index 0000000..e99f06d
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ENBX2GTPTLAs.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ENBX2GTPTLAs_H_
+#define _ENBX2GTPTLAs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TransportLayerAddress.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENBX2GTPTLAs */
+typedef struct ENBX2GTPTLAs {
+ A_SEQUENCE_OF(TransportLayerAddress_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ENBX2GTPTLAs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENBX2GTPTLAs;
+extern asn_SET_OF_specifics_t asn_SPC_ENBX2GTPTLAs_specs_1;
+extern asn_TYPE_member_t asn_MBR_ENBX2GTPTLAs_1[1];
+extern asn_per_constraints_t asn_PER_type_ENBX2GTPTLAs_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENBX2GTPTLAs_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ENBX2TLAs.h b/src/s1ap/asn1c/asnGenFiles/ENBX2TLAs.h
new file mode 100644
index 0000000..6491556
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ENBX2TLAs.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ENBX2TLAs_H_
+#define _ENBX2TLAs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TransportLayerAddress.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENBX2TLAs */
+typedef struct ENBX2TLAs {
+ A_SEQUENCE_OF(TransportLayerAddress_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ENBX2TLAs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ENBX2TLAs;
+extern asn_SET_OF_specifics_t asn_SPC_ENBX2TLAs_specs_1;
+extern asn_TYPE_member_t asn_MBR_ENBX2TLAs_1[1];
+extern asn_per_constraints_t asn_PER_type_ENBX2TLAs_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENBX2TLAs_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ENBname.h b/src/s1ap/asn1c/asnGenFiles/ENBname.h
new file mode 100644
index 0000000..a1a727f
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ENBname.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ENBname_H_
+#define _ENBname_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <PrintableString.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENBname */
+typedef PrintableString_t ENBname_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ENBname_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ENBname;
+asn_struct_free_f ENBname_free;
+asn_struct_print_f ENBname_print;
+asn_constr_check_f ENBname_constraint;
+ber_type_decoder_f ENBname_decode_ber;
+der_type_encoder_f ENBname_encode_der;
+xer_type_decoder_f ENBname_decode_xer;
+xer_type_encoder_f ENBname_encode_xer;
+oer_type_decoder_f ENBname_decode_oer;
+oer_type_encoder_f ENBname_encode_oer;
+per_type_decoder_f ENBname_decode_uper;
+per_type_encoder_f ENBname_encode_uper;
+per_type_decoder_f ENBname_decode_aper;
+per_type_encoder_f ENBname_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENBname_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/EPLMNs.h b/src/s1ap/asn1c/asnGenFiles/EPLMNs.h
new file mode 100644
index 0000000..76b9543
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/EPLMNs.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _EPLMNs_H_
+#define _EPLMNs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNidentity.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* EPLMNs */
+typedef struct EPLMNs {
+ A_SEQUENCE_OF(PLMNidentity_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} EPLMNs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EPLMNs;
+extern asn_SET_OF_specifics_t asn_SPC_EPLMNs_specs_1;
+extern asn_TYPE_member_t asn_MBR_EPLMNs_1[1];
+extern asn_per_constraints_t asn_PER_type_EPLMNs_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EPLMNs_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/EUTRAN-CGI.h b/src/s1ap/asn1c/asnGenFiles/EUTRAN-CGI.h
new file mode 100644
index 0000000..c06eb08
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/EUTRAN-CGI.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _EUTRAN_CGI_H_
+#define _EUTRAN_CGI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNidentity.h"
+#include "CellIdentity.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* EUTRAN-CGI */
+typedef struct EUTRAN_CGI {
+ PLMNidentity_t pLMNidentity;
+ CellIdentity_t cell_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;
+} EUTRAN_CGI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EUTRAN_CGI;
+extern asn_SEQUENCE_specifics_t asn_SPC_EUTRAN_CGI_specs_1;
+extern asn_TYPE_member_t asn_MBR_EUTRAN_CGI_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EUTRAN_CGI_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/EUTRANRoundTripDelayEstimationInfo.h b/src/s1ap/asn1c/asnGenFiles/EUTRANRoundTripDelayEstimationInfo.h
new file mode 100644
index 0000000..0ceafb3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/EUTRANRoundTripDelayEstimationInfo.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _EUTRANRoundTripDelayEstimationInfo_H_
+#define _EUTRANRoundTripDelayEstimationInfo_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* EUTRANRoundTripDelayEstimationInfo */
+typedef long EUTRANRoundTripDelayEstimationInfo_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_EUTRANRoundTripDelayEstimationInfo_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_EUTRANRoundTripDelayEstimationInfo;
+asn_struct_free_f EUTRANRoundTripDelayEstimationInfo_free;
+asn_struct_print_f EUTRANRoundTripDelayEstimationInfo_print;
+asn_constr_check_f EUTRANRoundTripDelayEstimationInfo_constraint;
+ber_type_decoder_f EUTRANRoundTripDelayEstimationInfo_decode_ber;
+der_type_encoder_f EUTRANRoundTripDelayEstimationInfo_encode_der;
+xer_type_decoder_f EUTRANRoundTripDelayEstimationInfo_decode_xer;
+xer_type_encoder_f EUTRANRoundTripDelayEstimationInfo_encode_xer;
+oer_type_decoder_f EUTRANRoundTripDelayEstimationInfo_decode_oer;
+oer_type_encoder_f EUTRANRoundTripDelayEstimationInfo_encode_oer;
+per_type_decoder_f EUTRANRoundTripDelayEstimationInfo_decode_uper;
+per_type_encoder_f EUTRANRoundTripDelayEstimationInfo_encode_uper;
+per_type_decoder_f EUTRANRoundTripDelayEstimationInfo_decode_aper;
+per_type_encoder_f EUTRANRoundTripDelayEstimationInfo_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EUTRANRoundTripDelayEstimationInfo_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/EXTERNAL.h b/src/s1ap/asn1c/asnGenFiles/EXTERNAL.h
new file mode 100644
index 0000000..4b073c1
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/EXTERNAL.h
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "ASN1C-UsefulInformationObjectClasses"
+ * found in "/users/badhri85/share/asn1c/standard-modules/ASN1C-UsefulInformationObjectClasses.asn1"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _EXTERNAL_H_
+#define _EXTERNAL_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OBJECT_IDENTIFIER.h>
+#include <NativeInteger.h>
+#include <ObjectDescriptor.h>
+#include <ANY.h>
+#include <OCTET_STRING.h>
+#include <BIT_STRING.h>
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum EXTERNAL__encoding_PR {
+ EXTERNAL__encoding_PR_NOTHING, /* No components present */
+ EXTERNAL__encoding_PR_single_ASN1_type,
+ EXTERNAL__encoding_PR_octet_aligned,
+ EXTERNAL__encoding_PR_arbitrary
+} EXTERNAL__encoding_PR;
+
+/* EXTERNAL */
+typedef struct EXTERNAL {
+ OBJECT_IDENTIFIER_t *direct_reference; /* OPTIONAL */
+ long *indirect_reference; /* OPTIONAL */
+ ObjectDescriptor_t *data_value_descriptor; /* OPTIONAL */
+ struct EXTERNAL__encoding {
+ EXTERNAL__encoding_PR present;
+ union EXTERNAL__encoding_u {
+ ANY_t single_ASN1_type;
+ OCTET_STRING_t octet_aligned;
+ BIT_STRING_t arbitrary;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } encoding;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} EXTERNAL_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EXTERNAL;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EXTERNAL_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/EmergencyAreaID-Broadcast-Item.h b/src/s1ap/asn1c/asnGenFiles/EmergencyAreaID-Broadcast-Item.h
new file mode 100644
index 0000000..e18b9ff
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/EmergencyAreaID-Broadcast-Item.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _EmergencyAreaID_Broadcast_Item_H_
+#define _EmergencyAreaID_Broadcast_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "EmergencyAreaID.h"
+#include "CompletedCellinEAI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* EmergencyAreaID-Broadcast-Item */
+typedef struct EmergencyAreaID_Broadcast_Item {
+ EmergencyAreaID_t emergencyAreaID;
+ CompletedCellinEAI_t completedCellinEAI;
+ 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;
+} EmergencyAreaID_Broadcast_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EmergencyAreaID_Broadcast_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_EmergencyAreaID_Broadcast_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_EmergencyAreaID_Broadcast_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EmergencyAreaID_Broadcast_Item_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/EmergencyAreaID-Broadcast.h b/src/s1ap/asn1c/asnGenFiles/EmergencyAreaID-Broadcast.h
new file mode 100644
index 0000000..dd672f5
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/EmergencyAreaID-Broadcast.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _EmergencyAreaID_Broadcast_H_
+#define _EmergencyAreaID_Broadcast_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct EmergencyAreaID_Broadcast_Item;
+
+/* EmergencyAreaID-Broadcast */
+typedef struct EmergencyAreaID_Broadcast {
+ A_SEQUENCE_OF(struct EmergencyAreaID_Broadcast_Item) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} EmergencyAreaID_Broadcast_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EmergencyAreaID_Broadcast;
+extern asn_SET_OF_specifics_t asn_SPC_EmergencyAreaID_Broadcast_specs_1;
+extern asn_TYPE_member_t asn_MBR_EmergencyAreaID_Broadcast_1[1];
+extern asn_per_constraints_t asn_PER_type_EmergencyAreaID_Broadcast_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EmergencyAreaID_Broadcast_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/EmergencyAreaID-Cancelled-Item.h b/src/s1ap/asn1c/asnGenFiles/EmergencyAreaID-Cancelled-Item.h
new file mode 100644
index 0000000..04714ee
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/EmergencyAreaID-Cancelled-Item.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _EmergencyAreaID_Cancelled_Item_H_
+#define _EmergencyAreaID_Cancelled_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "EmergencyAreaID.h"
+#include "CancelledCellinEAI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* EmergencyAreaID-Cancelled-Item */
+typedef struct EmergencyAreaID_Cancelled_Item {
+ EmergencyAreaID_t emergencyAreaID;
+ CancelledCellinEAI_t cancelledCellinEAI;
+ 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;
+} EmergencyAreaID_Cancelled_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EmergencyAreaID_Cancelled_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_EmergencyAreaID_Cancelled_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_EmergencyAreaID_Cancelled_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EmergencyAreaID_Cancelled_Item_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/EmergencyAreaID-Cancelled.h b/src/s1ap/asn1c/asnGenFiles/EmergencyAreaID-Cancelled.h
new file mode 100644
index 0000000..014a105
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/EmergencyAreaID-Cancelled.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _EmergencyAreaID_Cancelled_H_
+#define _EmergencyAreaID_Cancelled_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct EmergencyAreaID_Cancelled_Item;
+
+/* EmergencyAreaID-Cancelled */
+typedef struct EmergencyAreaID_Cancelled {
+ A_SEQUENCE_OF(struct EmergencyAreaID_Cancelled_Item) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} EmergencyAreaID_Cancelled_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EmergencyAreaID_Cancelled;
+extern asn_SET_OF_specifics_t asn_SPC_EmergencyAreaID_Cancelled_specs_1;
+extern asn_TYPE_member_t asn_MBR_EmergencyAreaID_Cancelled_1[1];
+extern asn_per_constraints_t asn_PER_type_EmergencyAreaID_Cancelled_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EmergencyAreaID_Cancelled_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/EmergencyAreaID.h b/src/s1ap/asn1c/asnGenFiles/EmergencyAreaID.h
new file mode 100644
index 0000000..888eefc
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/EmergencyAreaID.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _EmergencyAreaID_H_
+#define _EmergencyAreaID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* EmergencyAreaID */
+typedef OCTET_STRING_t EmergencyAreaID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_EmergencyAreaID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_EmergencyAreaID;
+asn_struct_free_f EmergencyAreaID_free;
+asn_struct_print_f EmergencyAreaID_print;
+asn_constr_check_f EmergencyAreaID_constraint;
+ber_type_decoder_f EmergencyAreaID_decode_ber;
+der_type_encoder_f EmergencyAreaID_encode_der;
+xer_type_decoder_f EmergencyAreaID_decode_xer;
+xer_type_encoder_f EmergencyAreaID_encode_xer;
+oer_type_decoder_f EmergencyAreaID_decode_oer;
+oer_type_encoder_f EmergencyAreaID_encode_oer;
+per_type_decoder_f EmergencyAreaID_decode_uper;
+per_type_encoder_f EmergencyAreaID_encode_uper;
+per_type_decoder_f EmergencyAreaID_decode_aper;
+per_type_encoder_f EmergencyAreaID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EmergencyAreaID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/EmergencyAreaIDList.h b/src/s1ap/asn1c/asnGenFiles/EmergencyAreaIDList.h
new file mode 100644
index 0000000..e210cbc
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/EmergencyAreaIDList.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _EmergencyAreaIDList_H_
+#define _EmergencyAreaIDList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "EmergencyAreaID.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* EmergencyAreaIDList */
+typedef struct EmergencyAreaIDList {
+ A_SEQUENCE_OF(EmergencyAreaID_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} EmergencyAreaIDList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EmergencyAreaIDList;
+extern asn_SET_OF_specifics_t asn_SPC_EmergencyAreaIDList_specs_1;
+extern asn_TYPE_member_t asn_MBR_EmergencyAreaIDList_1[1];
+extern asn_per_constraints_t asn_PER_type_EmergencyAreaIDList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EmergencyAreaIDList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/EmergencyAreaIDListForRestart.h b/src/s1ap/asn1c/asnGenFiles/EmergencyAreaIDListForRestart.h
new file mode 100644
index 0000000..ed2dd7f
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/EmergencyAreaIDListForRestart.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _EmergencyAreaIDListForRestart_H_
+#define _EmergencyAreaIDListForRestart_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "EmergencyAreaID.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* EmergencyAreaIDListForRestart */
+typedef struct EmergencyAreaIDListForRestart {
+ A_SEQUENCE_OF(EmergencyAreaID_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} EmergencyAreaIDListForRestart_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EmergencyAreaIDListForRestart;
+extern asn_SET_OF_specifics_t asn_SPC_EmergencyAreaIDListForRestart_specs_1;
+extern asn_TYPE_member_t asn_MBR_EmergencyAreaIDListForRestart_1[1];
+extern asn_per_constraints_t asn_PER_type_EmergencyAreaIDListForRestart_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EmergencyAreaIDListForRestart_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/En-gNB-ID.h b/src/s1ap/asn1c/asnGenFiles/En-gNB-ID.h
new file mode 100644
index 0000000..9201b1b
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/En-gNB-ID.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _En_gNB_ID_H_
+#define _En_gNB_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* En-gNB-ID */
+typedef BIT_STRING_t En_gNB_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_En_gNB_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_En_gNB_ID;
+asn_struct_free_f En_gNB_ID_free;
+asn_struct_print_f En_gNB_ID_print;
+asn_constr_check_f En_gNB_ID_constraint;
+ber_type_decoder_f En_gNB_ID_decode_ber;
+der_type_encoder_f En_gNB_ID_encode_der;
+xer_type_decoder_f En_gNB_ID_decode_xer;
+xer_type_encoder_f En_gNB_ID_encode_xer;
+oer_type_decoder_f En_gNB_ID_decode_oer;
+oer_type_encoder_f En_gNB_ID_encode_oer;
+per_type_decoder_f En_gNB_ID_decode_uper;
+per_type_encoder_f En_gNB_ID_encode_uper;
+per_type_decoder_f En_gNB_ID_decode_aper;
+per_type_encoder_f En_gNB_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _En_gNB_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/EncryptionAlgorithms.h b/src/s1ap/asn1c/asnGenFiles/EncryptionAlgorithms.h
new file mode 100644
index 0000000..eddcf78
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/EncryptionAlgorithms.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _EncryptionAlgorithms_H_
+#define _EncryptionAlgorithms_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* EncryptionAlgorithms */
+typedef BIT_STRING_t EncryptionAlgorithms_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_EncryptionAlgorithms_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_EncryptionAlgorithms;
+asn_struct_free_f EncryptionAlgorithms_free;
+asn_struct_print_f EncryptionAlgorithms_print;
+asn_constr_check_f EncryptionAlgorithms_constraint;
+ber_type_decoder_f EncryptionAlgorithms_decode_ber;
+der_type_encoder_f EncryptionAlgorithms_encode_der;
+xer_type_decoder_f EncryptionAlgorithms_decode_xer;
+xer_type_encoder_f EncryptionAlgorithms_encode_xer;
+oer_type_decoder_f EncryptionAlgorithms_decode_oer;
+oer_type_encoder_f EncryptionAlgorithms_encode_oer;
+per_type_decoder_f EncryptionAlgorithms_decode_uper;
+per_type_encoder_f EncryptionAlgorithms_encode_uper;
+per_type_decoder_f EncryptionAlgorithms_decode_aper;
+per_type_encoder_f EncryptionAlgorithms_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EncryptionAlgorithms_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/EndIndication.h b/src/s1ap/asn1c/asnGenFiles/EndIndication.h
new file mode 100644
index 0000000..65a320a
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/EndIndication.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _EndIndication_H_
+#define _EndIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum EndIndication {
+ EndIndication_no_further_data = 0,
+ EndIndication_further_data_exists = 1
+ /*
+ * Enumeration is extensible
+ */
+} e_EndIndication;
+
+/* EndIndication */
+typedef long EndIndication_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_EndIndication_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_EndIndication;
+extern const asn_INTEGER_specifics_t asn_SPC_EndIndication_specs_1;
+asn_struct_free_f EndIndication_free;
+asn_struct_print_f EndIndication_print;
+asn_constr_check_f EndIndication_constraint;
+ber_type_decoder_f EndIndication_decode_ber;
+der_type_encoder_f EndIndication_encode_der;
+xer_type_decoder_f EndIndication_decode_xer;
+xer_type_encoder_f EndIndication_encode_xer;
+oer_type_decoder_f EndIndication_decode_oer;
+oer_type_encoder_f EndIndication_encode_oer;
+per_type_decoder_f EndIndication_decode_uper;
+per_type_encoder_f EndIndication_encode_uper;
+per_type_decoder_f EndIndication_decode_aper;
+per_type_encoder_f EndIndication_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EndIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/EnhancedCoverageRestricted.h b/src/s1ap/asn1c/asnGenFiles/EnhancedCoverageRestricted.h
new file mode 100644
index 0000000..5dbb90c
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/EnhancedCoverageRestricted.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _EnhancedCoverageRestricted_H_
+#define _EnhancedCoverageRestricted_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum EnhancedCoverageRestricted {
+ EnhancedCoverageRestricted_restricted = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_EnhancedCoverageRestricted;
+
+/* EnhancedCoverageRestricted */
+typedef long EnhancedCoverageRestricted_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_EnhancedCoverageRestricted_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_EnhancedCoverageRestricted;
+extern const asn_INTEGER_specifics_t asn_SPC_EnhancedCoverageRestricted_specs_1;
+asn_struct_free_f EnhancedCoverageRestricted_free;
+asn_struct_print_f EnhancedCoverageRestricted_print;
+asn_constr_check_f EnhancedCoverageRestricted_constraint;
+ber_type_decoder_f EnhancedCoverageRestricted_decode_ber;
+der_type_encoder_f EnhancedCoverageRestricted_encode_der;
+xer_type_decoder_f EnhancedCoverageRestricted_decode_xer;
+xer_type_encoder_f EnhancedCoverageRestricted_encode_xer;
+oer_type_decoder_f EnhancedCoverageRestricted_decode_oer;
+oer_type_encoder_f EnhancedCoverageRestricted_encode_oer;
+per_type_decoder_f EnhancedCoverageRestricted_decode_uper;
+per_type_encoder_f EnhancedCoverageRestricted_encode_uper;
+per_type_decoder_f EnhancedCoverageRestricted_decode_aper;
+per_type_encoder_f EnhancedCoverageRestricted_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EnhancedCoverageRestricted_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ErrorIndication.h b/src/s1ap/asn1c/asnGenFiles/ErrorIndication.h
new file mode 100644
index 0000000..ebdd227
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ErrorIndication.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ErrorIndication_H_
+#define _ErrorIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ErrorIndication */
+typedef struct ErrorIndication {
+ ProtocolIE_Container_129P39_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;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ErrorIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/EventType.h b/src/s1ap/asn1c/asnGenFiles/EventType.h
new file mode 100644
index 0000000..9dd0c7b
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/EventType.h
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _EventType_H_
+#define _EventType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum EventType {
+ EventType_direct = 0,
+ EventType_change_of_serve_cell = 1,
+ EventType_stop_change_of_serve_cell = 2
+ /*
+ * Enumeration is extensible
+ */
+} e_EventType;
+
+/* EventType */
+typedef long EventType_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_EventType_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_EventType;
+extern const asn_INTEGER_specifics_t asn_SPC_EventType_specs_1;
+asn_struct_free_f EventType_free;
+asn_struct_print_f EventType_print;
+asn_constr_check_f EventType_constraint;
+ber_type_decoder_f EventType_decode_ber;
+der_type_encoder_f EventType_encode_der;
+xer_type_decoder_f EventType_decode_xer;
+xer_type_encoder_f EventType_encode_xer;
+oer_type_decoder_f EventType_decode_oer;
+oer_type_encoder_f EventType_encode_oer;
+per_type_decoder_f EventType_decode_uper;
+per_type_encoder_f EventType_encode_uper;
+per_type_decoder_f EventType_decode_aper;
+per_type_encoder_f EventType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EventType_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ExpectedActivityPeriod.h b/src/s1ap/asn1c/asnGenFiles/ExpectedActivityPeriod.h
new file mode 100644
index 0000000..de517cb
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ExpectedActivityPeriod.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ExpectedActivityPeriod_H_
+#define _ExpectedActivityPeriod_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ExpectedActivityPeriod */
+typedef long ExpectedActivityPeriod_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ExpectedActivityPeriod_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ExpectedActivityPeriod;
+asn_struct_free_f ExpectedActivityPeriod_free;
+asn_struct_print_f ExpectedActivityPeriod_print;
+asn_constr_check_f ExpectedActivityPeriod_constraint;
+ber_type_decoder_f ExpectedActivityPeriod_decode_ber;
+der_type_encoder_f ExpectedActivityPeriod_encode_der;
+xer_type_decoder_f ExpectedActivityPeriod_decode_xer;
+xer_type_encoder_f ExpectedActivityPeriod_encode_xer;
+oer_type_decoder_f ExpectedActivityPeriod_decode_oer;
+oer_type_encoder_f ExpectedActivityPeriod_encode_oer;
+per_type_decoder_f ExpectedActivityPeriod_decode_uper;
+per_type_encoder_f ExpectedActivityPeriod_encode_uper;
+per_type_decoder_f ExpectedActivityPeriod_decode_aper;
+per_type_encoder_f ExpectedActivityPeriod_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ExpectedActivityPeriod_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ExpectedHOInterval.h b/src/s1ap/asn1c/asnGenFiles/ExpectedHOInterval.h
new file mode 100644
index 0000000..2ca7c18
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ExpectedHOInterval.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ExpectedHOInterval_H_
+#define _ExpectedHOInterval_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ExpectedHOInterval {
+ ExpectedHOInterval_sec15 = 0,
+ ExpectedHOInterval_sec30 = 1,
+ ExpectedHOInterval_sec60 = 2,
+ ExpectedHOInterval_sec90 = 3,
+ ExpectedHOInterval_sec120 = 4,
+ ExpectedHOInterval_sec180 = 5,
+ ExpectedHOInterval_long_time = 6
+ /*
+ * Enumeration is extensible
+ */
+} e_ExpectedHOInterval;
+
+/* ExpectedHOInterval */
+typedef long ExpectedHOInterval_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ExpectedHOInterval_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ExpectedHOInterval;
+extern const asn_INTEGER_specifics_t asn_SPC_ExpectedHOInterval_specs_1;
+asn_struct_free_f ExpectedHOInterval_free;
+asn_struct_print_f ExpectedHOInterval_print;
+asn_constr_check_f ExpectedHOInterval_constraint;
+ber_type_decoder_f ExpectedHOInterval_decode_ber;
+der_type_encoder_f ExpectedHOInterval_encode_der;
+xer_type_decoder_f ExpectedHOInterval_decode_xer;
+xer_type_encoder_f ExpectedHOInterval_encode_xer;
+oer_type_decoder_f ExpectedHOInterval_decode_oer;
+oer_type_encoder_f ExpectedHOInterval_encode_oer;
+per_type_decoder_f ExpectedHOInterval_decode_uper;
+per_type_encoder_f ExpectedHOInterval_encode_uper;
+per_type_decoder_f ExpectedHOInterval_decode_aper;
+per_type_encoder_f ExpectedHOInterval_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ExpectedHOInterval_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ExpectedIdlePeriod.h b/src/s1ap/asn1c/asnGenFiles/ExpectedIdlePeriod.h
new file mode 100644
index 0000000..6f2af75
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ExpectedIdlePeriod.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ExpectedIdlePeriod_H_
+#define _ExpectedIdlePeriod_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ExpectedIdlePeriod */
+typedef long ExpectedIdlePeriod_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ExpectedIdlePeriod_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ExpectedIdlePeriod;
+asn_struct_free_f ExpectedIdlePeriod_free;
+asn_struct_print_f ExpectedIdlePeriod_print;
+asn_constr_check_f ExpectedIdlePeriod_constraint;
+ber_type_decoder_f ExpectedIdlePeriod_decode_ber;
+der_type_encoder_f ExpectedIdlePeriod_encode_der;
+xer_type_decoder_f ExpectedIdlePeriod_decode_xer;
+xer_type_encoder_f ExpectedIdlePeriod_encode_xer;
+oer_type_decoder_f ExpectedIdlePeriod_decode_oer;
+oer_type_encoder_f ExpectedIdlePeriod_encode_oer;
+per_type_decoder_f ExpectedIdlePeriod_decode_uper;
+per_type_encoder_f ExpectedIdlePeriod_encode_uper;
+per_type_decoder_f ExpectedIdlePeriod_decode_aper;
+per_type_encoder_f ExpectedIdlePeriod_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ExpectedIdlePeriod_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ExpectedUEActivityBehaviour.h b/src/s1ap/asn1c/asnGenFiles/ExpectedUEActivityBehaviour.h
new file mode 100644
index 0000000..6c1fadc
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ExpectedUEActivityBehaviour.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ExpectedUEActivityBehaviour_H_
+#define _ExpectedUEActivityBehaviour_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ExpectedActivityPeriod.h"
+#include "ExpectedIdlePeriod.h"
+#include "SourceOfUEActivityBehaviourInformation.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ExpectedUEActivityBehaviour */
+typedef struct ExpectedUEActivityBehaviour {
+ ExpectedActivityPeriod_t *expectedActivityPeriod; /* OPTIONAL */
+ ExpectedIdlePeriod_t *expectedIdlePeriod; /* OPTIONAL */
+ SourceOfUEActivityBehaviourInformation_t *sourceofUEActivityBehaviourInformation; /* 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;
+} ExpectedUEActivityBehaviour_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ExpectedUEActivityBehaviour;
+extern asn_SEQUENCE_specifics_t asn_SPC_ExpectedUEActivityBehaviour_specs_1;
+extern asn_TYPE_member_t asn_MBR_ExpectedUEActivityBehaviour_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ExpectedUEActivityBehaviour_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ExpectedUEBehaviour.h b/src/s1ap/asn1c/asnGenFiles/ExpectedUEBehaviour.h
new file mode 100644
index 0000000..383dad6
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ExpectedUEBehaviour.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ExpectedUEBehaviour_H_
+#define _ExpectedUEBehaviour_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ExpectedHOInterval.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ExpectedUEActivityBehaviour;
+struct ProtocolExtensionContainer;
+
+/* ExpectedUEBehaviour */
+typedef struct ExpectedUEBehaviour {
+ struct ExpectedUEActivityBehaviour *expectedActivity; /* OPTIONAL */
+ ExpectedHOInterval_t *expectedHOInterval; /* 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;
+} ExpectedUEBehaviour_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ExpectedUEBehaviour;
+extern asn_SEQUENCE_specifics_t asn_SPC_ExpectedUEBehaviour_specs_1;
+extern asn_TYPE_member_t asn_MBR_ExpectedUEBehaviour_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ExpectedUEBehaviour_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Extended-UEIdentityIndexValue.h b/src/s1ap/asn1c/asnGenFiles/Extended-UEIdentityIndexValue.h
new file mode 100644
index 0000000..d168ac6
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Extended-UEIdentityIndexValue.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Extended_UEIdentityIndexValue_H_
+#define _Extended_UEIdentityIndexValue_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Extended-UEIdentityIndexValue */
+typedef BIT_STRING_t Extended_UEIdentityIndexValue_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Extended_UEIdentityIndexValue_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Extended_UEIdentityIndexValue;
+asn_struct_free_f Extended_UEIdentityIndexValue_free;
+asn_struct_print_f Extended_UEIdentityIndexValue_print;
+asn_constr_check_f Extended_UEIdentityIndexValue_constraint;
+ber_type_decoder_f Extended_UEIdentityIndexValue_decode_ber;
+der_type_encoder_f Extended_UEIdentityIndexValue_encode_der;
+xer_type_decoder_f Extended_UEIdentityIndexValue_decode_xer;
+xer_type_encoder_f Extended_UEIdentityIndexValue_encode_xer;
+oer_type_decoder_f Extended_UEIdentityIndexValue_decode_oer;
+oer_type_encoder_f Extended_UEIdentityIndexValue_encode_oer;
+per_type_decoder_f Extended_UEIdentityIndexValue_decode_uper;
+per_type_encoder_f Extended_UEIdentityIndexValue_encode_uper;
+per_type_decoder_f Extended_UEIdentityIndexValue_decode_aper;
+per_type_encoder_f Extended_UEIdentityIndexValue_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Extended_UEIdentityIndexValue_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ExtendedBitRate.h b/src/s1ap/asn1c/asnGenFiles/ExtendedBitRate.h
new file mode 100644
index 0000000..b7e4629
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ExtendedBitRate.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ExtendedBitRate_H_
+#define _ExtendedBitRate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <INTEGER.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ExtendedBitRate */
+typedef INTEGER_t ExtendedBitRate_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ExtendedBitRate_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ExtendedBitRate;
+asn_struct_free_f ExtendedBitRate_free;
+asn_struct_print_f ExtendedBitRate_print;
+asn_constr_check_f ExtendedBitRate_constraint;
+ber_type_decoder_f ExtendedBitRate_decode_ber;
+der_type_encoder_f ExtendedBitRate_encode_der;
+xer_type_decoder_f ExtendedBitRate_decode_xer;
+xer_type_encoder_f ExtendedBitRate_encode_xer;
+oer_type_decoder_f ExtendedBitRate_decode_oer;
+oer_type_encoder_f ExtendedBitRate_encode_oer;
+per_type_decoder_f ExtendedBitRate_decode_uper;
+per_type_encoder_f ExtendedBitRate_encode_uper;
+per_type_decoder_f ExtendedBitRate_decode_aper;
+per_type_encoder_f ExtendedBitRate_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ExtendedBitRate_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ExtendedRNC-ID.h b/src/s1ap/asn1c/asnGenFiles/ExtendedRNC-ID.h
new file mode 100644
index 0000000..1963e82
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ExtendedRNC-ID.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ExtendedRNC_ID_H_
+#define _ExtendedRNC_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ExtendedRNC-ID */
+typedef long ExtendedRNC_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ExtendedRNC_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ExtendedRNC_ID;
+asn_struct_free_f ExtendedRNC_ID_free;
+asn_struct_print_f ExtendedRNC_ID_print;
+asn_constr_check_f ExtendedRNC_ID_constraint;
+ber_type_decoder_f ExtendedRNC_ID_decode_ber;
+der_type_encoder_f ExtendedRNC_ID_encode_der;
+xer_type_decoder_f ExtendedRNC_ID_decode_xer;
+xer_type_encoder_f ExtendedRNC_ID_encode_xer;
+oer_type_decoder_f ExtendedRNC_ID_decode_oer;
+oer_type_encoder_f ExtendedRNC_ID_encode_oer;
+per_type_decoder_f ExtendedRNC_ID_decode_uper;
+per_type_encoder_f ExtendedRNC_ID_encode_uper;
+per_type_decoder_f ExtendedRNC_ID_decode_aper;
+per_type_encoder_f ExtendedRNC_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ExtendedRNC_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ExtendedRepetitionPeriod.h b/src/s1ap/asn1c/asnGenFiles/ExtendedRepetitionPeriod.h
new file mode 100644
index 0000000..c684617
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ExtendedRepetitionPeriod.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ExtendedRepetitionPeriod_H_
+#define _ExtendedRepetitionPeriod_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ExtendedRepetitionPeriod */
+typedef long ExtendedRepetitionPeriod_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ExtendedRepetitionPeriod_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ExtendedRepetitionPeriod;
+asn_struct_free_f ExtendedRepetitionPeriod_free;
+asn_struct_print_f ExtendedRepetitionPeriod_print;
+asn_constr_check_f ExtendedRepetitionPeriod_constraint;
+ber_type_decoder_f ExtendedRepetitionPeriod_decode_ber;
+der_type_encoder_f ExtendedRepetitionPeriod_encode_der;
+xer_type_decoder_f ExtendedRepetitionPeriod_decode_xer;
+xer_type_encoder_f ExtendedRepetitionPeriod_encode_xer;
+oer_type_decoder_f ExtendedRepetitionPeriod_decode_oer;
+oer_type_encoder_f ExtendedRepetitionPeriod_encode_oer;
+per_type_decoder_f ExtendedRepetitionPeriod_decode_uper;
+per_type_encoder_f ExtendedRepetitionPeriod_encode_uper;
+per_type_decoder_f ExtendedRepetitionPeriod_decode_aper;
+per_type_encoder_f ExtendedRepetitionPeriod_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ExtendedRepetitionPeriod_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/FiveGSTAC.h b/src/s1ap/asn1c/asnGenFiles/FiveGSTAC.h
new file mode 100644
index 0000000..ca79525
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/FiveGSTAC.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _FiveGSTAC_H_
+#define _FiveGSTAC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* FiveGSTAC */
+typedef OCTET_STRING_t FiveGSTAC_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_FiveGSTAC_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_FiveGSTAC;
+asn_struct_free_f FiveGSTAC_free;
+asn_struct_print_f FiveGSTAC_print;
+asn_constr_check_f FiveGSTAC_constraint;
+ber_type_decoder_f FiveGSTAC_decode_ber;
+der_type_encoder_f FiveGSTAC_encode_der;
+xer_type_decoder_f FiveGSTAC_decode_xer;
+xer_type_encoder_f FiveGSTAC_encode_xer;
+oer_type_decoder_f FiveGSTAC_decode_oer;
+oer_type_encoder_f FiveGSTAC_encode_oer;
+per_type_decoder_f FiveGSTAC_decode_uper;
+per_type_encoder_f FiveGSTAC_encode_uper;
+per_type_decoder_f FiveGSTAC_decode_aper;
+per_type_encoder_f FiveGSTAC_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _FiveGSTAC_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/FiveGSTAI.h b/src/s1ap/asn1c/asnGenFiles/FiveGSTAI.h
new file mode 100644
index 0000000..9ba9f99
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/FiveGSTAI.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _FiveGSTAI_H_
+#define _FiveGSTAI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNidentity.h"
+#include "FiveGSTAC.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* FiveGSTAI */
+typedef struct FiveGSTAI {
+ PLMNidentity_t pLMNidentity;
+ FiveGSTAC_t fiveGSTAC;
+ 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;
+} FiveGSTAI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_FiveGSTAI;
+extern asn_SEQUENCE_specifics_t asn_SPC_FiveGSTAI_specs_1;
+extern asn_TYPE_member_t asn_MBR_FiveGSTAI_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _FiveGSTAI_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ForbiddenInterRATs.h b/src/s1ap/asn1c/asnGenFiles/ForbiddenInterRATs.h
new file mode 100644
index 0000000..71d7854
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ForbiddenInterRATs.h
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ForbiddenInterRATs_H_
+#define _ForbiddenInterRATs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ForbiddenInterRATs {
+ ForbiddenInterRATs_all = 0,
+ ForbiddenInterRATs_geran = 1,
+ ForbiddenInterRATs_utran = 2,
+ ForbiddenInterRATs_cdma2000 = 3,
+ /*
+ * Enumeration is extensible
+ */
+ ForbiddenInterRATs_geranandutran = 4,
+ ForbiddenInterRATs_cdma2000andutran = 5
+} e_ForbiddenInterRATs;
+
+/* ForbiddenInterRATs */
+typedef long ForbiddenInterRATs_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ForbiddenInterRATs_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ForbiddenInterRATs;
+extern const asn_INTEGER_specifics_t asn_SPC_ForbiddenInterRATs_specs_1;
+asn_struct_free_f ForbiddenInterRATs_free;
+asn_struct_print_f ForbiddenInterRATs_print;
+asn_constr_check_f ForbiddenInterRATs_constraint;
+ber_type_decoder_f ForbiddenInterRATs_decode_ber;
+der_type_encoder_f ForbiddenInterRATs_encode_der;
+xer_type_decoder_f ForbiddenInterRATs_decode_xer;
+xer_type_encoder_f ForbiddenInterRATs_encode_xer;
+oer_type_decoder_f ForbiddenInterRATs_decode_oer;
+oer_type_encoder_f ForbiddenInterRATs_encode_oer;
+per_type_decoder_f ForbiddenInterRATs_decode_uper;
+per_type_encoder_f ForbiddenInterRATs_encode_uper;
+per_type_decoder_f ForbiddenInterRATs_decode_aper;
+per_type_encoder_f ForbiddenInterRATs_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ForbiddenInterRATs_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ForbiddenLACs.h b/src/s1ap/asn1c/asnGenFiles/ForbiddenLACs.h
new file mode 100644
index 0000000..3a93c4e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ForbiddenLACs.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ForbiddenLACs_H_
+#define _ForbiddenLACs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "LAC.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ForbiddenLACs */
+typedef struct ForbiddenLACs {
+ A_SEQUENCE_OF(LAC_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ForbiddenLACs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ForbiddenLACs;
+extern asn_SET_OF_specifics_t asn_SPC_ForbiddenLACs_specs_1;
+extern asn_TYPE_member_t asn_MBR_ForbiddenLACs_1[1];
+extern asn_per_constraints_t asn_PER_type_ForbiddenLACs_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ForbiddenLACs_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ForbiddenLAs-Item.h b/src/s1ap/asn1c/asnGenFiles/ForbiddenLAs-Item.h
new file mode 100644
index 0000000..59dc7ed
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ForbiddenLAs-Item.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ForbiddenLAs_Item_H_
+#define _ForbiddenLAs_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNidentity.h"
+#include "ForbiddenLACs.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ForbiddenLAs-Item */
+typedef struct ForbiddenLAs_Item {
+ PLMNidentity_t pLMN_Identity;
+ ForbiddenLACs_t forbiddenLACs;
+ 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;
+} ForbiddenLAs_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ForbiddenLAs_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_ForbiddenLAs_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_ForbiddenLAs_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ForbiddenLAs_Item_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ForbiddenLAs.h b/src/s1ap/asn1c/asnGenFiles/ForbiddenLAs.h
new file mode 100644
index 0000000..1ebd0e6
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ForbiddenLAs.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ForbiddenLAs_H_
+#define _ForbiddenLAs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ForbiddenLAs_Item;
+
+/* ForbiddenLAs */
+typedef struct ForbiddenLAs {
+ A_SEQUENCE_OF(struct ForbiddenLAs_Item) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ForbiddenLAs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ForbiddenLAs;
+extern asn_SET_OF_specifics_t asn_SPC_ForbiddenLAs_specs_1;
+extern asn_TYPE_member_t asn_MBR_ForbiddenLAs_1[1];
+extern asn_per_constraints_t asn_PER_type_ForbiddenLAs_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ForbiddenLAs_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ForbiddenTACs.h b/src/s1ap/asn1c/asnGenFiles/ForbiddenTACs.h
new file mode 100644
index 0000000..af2eec1
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ForbiddenTACs.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ForbiddenTACs_H_
+#define _ForbiddenTACs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TAC.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ForbiddenTACs */
+typedef struct ForbiddenTACs {
+ A_SEQUENCE_OF(TAC_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ForbiddenTACs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ForbiddenTACs;
+extern asn_SET_OF_specifics_t asn_SPC_ForbiddenTACs_specs_1;
+extern asn_TYPE_member_t asn_MBR_ForbiddenTACs_1[1];
+extern asn_per_constraints_t asn_PER_type_ForbiddenTACs_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ForbiddenTACs_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ForbiddenTAs-Item.h b/src/s1ap/asn1c/asnGenFiles/ForbiddenTAs-Item.h
new file mode 100644
index 0000000..e23bc88
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ForbiddenTAs-Item.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ForbiddenTAs_Item_H_
+#define _ForbiddenTAs_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNidentity.h"
+#include "ForbiddenTACs.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ForbiddenTAs-Item */
+typedef struct ForbiddenTAs_Item {
+ PLMNidentity_t pLMN_Identity;
+ ForbiddenTACs_t forbiddenTACs;
+ 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;
+} ForbiddenTAs_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ForbiddenTAs_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_ForbiddenTAs_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_ForbiddenTAs_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ForbiddenTAs_Item_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ForbiddenTAs.h b/src/s1ap/asn1c/asnGenFiles/ForbiddenTAs.h
new file mode 100644
index 0000000..5a3f227
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ForbiddenTAs.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ForbiddenTAs_H_
+#define _ForbiddenTAs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ForbiddenTAs_Item;
+
+/* ForbiddenTAs */
+typedef struct ForbiddenTAs {
+ A_SEQUENCE_OF(struct ForbiddenTAs_Item) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ForbiddenTAs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ForbiddenTAs;
+extern asn_SET_OF_specifics_t asn_SPC_ForbiddenTAs_specs_1;
+extern asn_TYPE_member_t asn_MBR_ForbiddenTAs_1[1];
+extern asn_per_constraints_t asn_PER_type_ForbiddenTAs_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ForbiddenTAs_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/GBR-QosInformation.h b/src/s1ap/asn1c/asnGenFiles/GBR-QosInformation.h
new file mode 100644
index 0000000..5ba95a3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/GBR-QosInformation.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _GBR_QosInformation_H_
+#define _GBR_QosInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "BitRate.h"
+#include <constr_SEQUENCE.h>
+
+#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 <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/GERAN-Cell-ID.h b/src/s1ap/asn1c/asnGenFiles/GERAN-Cell-ID.h
new file mode 100644
index 0000000..376ba70
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/GERAN-Cell-ID.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _GERAN_Cell_ID_H_
+#define _GERAN_Cell_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "LAI.h"
+#include "RAC.h"
+#include "CI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* GERAN-Cell-ID */
+typedef struct GERAN_Cell_ID {
+ LAI_t lAI;
+ RAC_t rAC;
+ CI_t cI;
+ 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;
+} GERAN_Cell_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GERAN_Cell_ID;
+extern asn_SEQUENCE_specifics_t asn_SPC_GERAN_Cell_ID_specs_1;
+extern asn_TYPE_member_t asn_MBR_GERAN_Cell_ID_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GERAN_Cell_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/GNB-ID.h b/src/s1ap/asn1c/asnGenFiles/GNB-ID.h
new file mode 100644
index 0000000..dd7f3eb
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/GNB-ID.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _GNB_ID_H_
+#define _GNB_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GNB-ID */
+typedef BIT_STRING_t GNB_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_GNB_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_GNB_ID;
+asn_struct_free_f GNB_ID_free;
+asn_struct_print_f GNB_ID_print;
+asn_constr_check_f GNB_ID_constraint;
+ber_type_decoder_f GNB_ID_decode_ber;
+der_type_encoder_f GNB_ID_encode_der;
+xer_type_decoder_f GNB_ID_decode_xer;
+xer_type_encoder_f GNB_ID_encode_xer;
+oer_type_decoder_f GNB_ID_decode_oer;
+oer_type_encoder_f GNB_ID_encode_oer;
+per_type_decoder_f GNB_ID_decode_uper;
+per_type_encoder_f GNB_ID_encode_uper;
+per_type_decoder_f GNB_ID_decode_aper;
+per_type_encoder_f GNB_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GNB_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/GNB-Identity.h b/src/s1ap/asn1c/asnGenFiles/GNB-Identity.h
new file mode 100644
index 0000000..8c7d05d
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/GNB-Identity.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _GNB_Identity_H_
+#define _GNB_Identity_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "GNB-ID.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum GNB_Identity_PR {
+ GNB_Identity_PR_NOTHING, /* No components present */
+ GNB_Identity_PR_gNB_ID
+ /* Extensions may appear below */
+
+} GNB_Identity_PR;
+
+/* GNB-Identity */
+typedef struct GNB_Identity {
+ GNB_Identity_PR present;
+ union GNB_Identity_u {
+ GNB_ID_t gNB_ID;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GNB_Identity_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GNB_Identity;
+extern asn_CHOICE_specifics_t asn_SPC_GNB_Identity_specs_1;
+extern asn_TYPE_member_t asn_MBR_GNB_Identity_1[1];
+extern asn_per_constraints_t asn_PER_type_GNB_Identity_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GNB_Identity_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/GNB.h b/src/s1ap/asn1c/asnGenFiles/GNB.h
new file mode 100644
index 0000000..8250e06
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/GNB.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _GNB_H_
+#define _GNB_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "Global-GNB-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* GNB */
+typedef struct GNB {
+ Global_GNB_ID_t global_gNB_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;
+} GNB_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GNB;
+extern asn_SEQUENCE_specifics_t asn_SPC_GNB_specs_1;
+extern asn_TYPE_member_t asn_MBR_GNB_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GNB_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/GTP-TEID.h b/src/s1ap/asn1c/asnGenFiles/GTP-TEID.h
new file mode 100644
index 0000000..df5c619
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/GTP-TEID.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _GTP_TEID_H_
+#define _GTP_TEID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#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 <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/GUMMEI.h b/src/s1ap/asn1c/asnGenFiles/GUMMEI.h
new file mode 100644
index 0000000..8d6e6e5
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/GUMMEI.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _GUMMEI_H_
+#define _GUMMEI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNidentity.h"
+#include "MME-Group-ID.h"
+#include "MME-Code.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* GUMMEI */
+typedef struct GUMMEI {
+ PLMNidentity_t pLMN_Identity;
+ MME_Group_ID_t mME_Group_ID;
+ MME_Code_t mME_Code;
+ 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;
+} GUMMEI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GUMMEI;
+extern asn_SEQUENCE_specifics_t asn_SPC_GUMMEI_specs_1;
+extern asn_TYPE_member_t asn_MBR_GUMMEI_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GUMMEI_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/GUMMEIList.h b/src/s1ap/asn1c/asnGenFiles/GUMMEIList.h
new file mode 100644
index 0000000..c62176d
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/GUMMEIList.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _GUMMEIList_H_
+#define _GUMMEIList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GUMMEI;
+
+/* GUMMEIList */
+typedef struct GUMMEIList {
+ A_SEQUENCE_OF(struct GUMMEI) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GUMMEIList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GUMMEIList;
+extern asn_SET_OF_specifics_t asn_SPC_GUMMEIList_specs_1;
+extern asn_TYPE_member_t asn_MBR_GUMMEIList_1[1];
+extern asn_per_constraints_t asn_PER_type_GUMMEIList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GUMMEIList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/GUMMEIType.h b/src/s1ap/asn1c/asnGenFiles/GUMMEIType.h
new file mode 100644
index 0000000..801decf
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/GUMMEIType.h
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _GUMMEIType_H_
+#define _GUMMEIType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum GUMMEIType {
+ GUMMEIType_native = 0,
+ GUMMEIType_mapped = 1,
+ /*
+ * Enumeration is extensible
+ */
+ GUMMEIType_mappedFrom5G = 2
+} e_GUMMEIType;
+
+/* GUMMEIType */
+typedef long GUMMEIType_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_GUMMEIType_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_GUMMEIType;
+extern const asn_INTEGER_specifics_t asn_SPC_GUMMEIType_specs_1;
+asn_struct_free_f GUMMEIType_free;
+asn_struct_print_f GUMMEIType_print;
+asn_constr_check_f GUMMEIType_constraint;
+ber_type_decoder_f GUMMEIType_decode_ber;
+der_type_encoder_f GUMMEIType_encode_der;
+xer_type_decoder_f GUMMEIType_decode_xer;
+xer_type_encoder_f GUMMEIType_encode_xer;
+oer_type_decoder_f GUMMEIType_decode_oer;
+oer_type_encoder_f GUMMEIType_encode_oer;
+per_type_decoder_f GUMMEIType_decode_uper;
+per_type_encoder_f GUMMEIType_encode_uper;
+per_type_decoder_f GUMMEIType_decode_aper;
+per_type_encoder_f GUMMEIType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GUMMEIType_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/GWContextReleaseIndication.h b/src/s1ap/asn1c/asnGenFiles/GWContextReleaseIndication.h
new file mode 100644
index 0000000..4d81440
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/GWContextReleaseIndication.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _GWContextReleaseIndication_H_
+#define _GWContextReleaseIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum GWContextReleaseIndication {
+ GWContextReleaseIndication_true = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_GWContextReleaseIndication;
+
+/* GWContextReleaseIndication */
+typedef long GWContextReleaseIndication_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_GWContextReleaseIndication_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_GWContextReleaseIndication;
+extern const asn_INTEGER_specifics_t asn_SPC_GWContextReleaseIndication_specs_1;
+asn_struct_free_f GWContextReleaseIndication_free;
+asn_struct_print_f GWContextReleaseIndication_print;
+asn_constr_check_f GWContextReleaseIndication_constraint;
+ber_type_decoder_f GWContextReleaseIndication_decode_ber;
+der_type_encoder_f GWContextReleaseIndication_encode_der;
+xer_type_decoder_f GWContextReleaseIndication_decode_xer;
+xer_type_encoder_f GWContextReleaseIndication_encode_xer;
+oer_type_decoder_f GWContextReleaseIndication_decode_oer;
+oer_type_encoder_f GWContextReleaseIndication_encode_oer;
+per_type_decoder_f GWContextReleaseIndication_decode_uper;
+per_type_encoder_f GWContextReleaseIndication_encode_uper;
+per_type_decoder_f GWContextReleaseIndication_decode_aper;
+per_type_encoder_f GWContextReleaseIndication_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GWContextReleaseIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Global-ENB-ID.h b/src/s1ap/asn1c/asnGenFiles/Global-ENB-ID.h
new file mode 100644
index 0000000..3c40574
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Global-ENB-ID.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Global_ENB_ID_H_
+#define _Global_ENB_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNidentity.h"
+#include "ENB-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* Global-ENB-ID */
+typedef struct Global_ENB_ID {
+ PLMNidentity_t pLMNidentity;
+ ENB_ID_t eNB_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;
+} Global_ENB_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Global_ENB_ID;
+extern asn_SEQUENCE_specifics_t asn_SPC_Global_ENB_ID_specs_1;
+extern asn_TYPE_member_t asn_MBR_Global_ENB_ID_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Global_ENB_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Global-GNB-ID.h b/src/s1ap/asn1c/asnGenFiles/Global-GNB-ID.h
new file mode 100644
index 0000000..c67bca8
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Global-GNB-ID.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Global_GNB_ID_H_
+#define _Global_GNB_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNidentity.h"
+#include "GNB-Identity.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* Global-GNB-ID */
+typedef struct Global_GNB_ID {
+ PLMNidentity_t pLMN_Identity;
+ GNB_Identity_t gNB_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;
+} Global_GNB_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Global_GNB_ID;
+extern asn_SEQUENCE_specifics_t asn_SPC_Global_GNB_ID_specs_1;
+extern asn_TYPE_member_t asn_MBR_Global_GNB_ID_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Global_GNB_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Global-RAN-NODE-ID.h b/src/s1ap/asn1c/asnGenFiles/Global-RAN-NODE-ID.h
new file mode 100644
index 0000000..d54ed34
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Global-RAN-NODE-ID.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Global_RAN_NODE_ID_H_
+#define _Global_RAN_NODE_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Global_RAN_NODE_ID_PR {
+ Global_RAN_NODE_ID_PR_NOTHING, /* No components present */
+ Global_RAN_NODE_ID_PR_gNB,
+ Global_RAN_NODE_ID_PR_ng_eNB
+ /* Extensions may appear below */
+
+} Global_RAN_NODE_ID_PR;
+
+/* Forward declarations */
+struct GNB;
+struct NG_eNB;
+
+/* Global-RAN-NODE-ID */
+typedef struct Global_RAN_NODE_ID {
+ Global_RAN_NODE_ID_PR present;
+ union Global_RAN_NODE_ID_u {
+ struct GNB *gNB;
+ struct NG_eNB *ng_eNB;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} Global_RAN_NODE_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Global_RAN_NODE_ID;
+extern asn_CHOICE_specifics_t asn_SPC_Global_RAN_NODE_ID_specs_1;
+extern asn_TYPE_member_t asn_MBR_Global_RAN_NODE_ID_1[2];
+extern asn_per_constraints_t asn_PER_type_Global_RAN_NODE_ID_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Global_RAN_NODE_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Global-en-gNB-ID.h b/src/s1ap/asn1c/asnGenFiles/Global-en-gNB-ID.h
new file mode 100644
index 0000000..860bb38
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Global-en-gNB-ID.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Global_en_gNB_ID_H_
+#define _Global_en_gNB_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNidentity.h"
+#include "En-gNB-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* Global-en-gNB-ID */
+typedef struct Global_en_gNB_ID {
+ PLMNidentity_t pLMNidentity;
+ En_gNB_ID_t en_gNB_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;
+} Global_en_gNB_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Global_en_gNB_ID;
+extern asn_SEQUENCE_specifics_t asn_SPC_Global_en_gNB_ID_specs_1;
+extern asn_TYPE_member_t asn_MBR_Global_en_gNB_ID_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Global_en_gNB_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/GraphicString.h b/src/s1ap/asn1c/asnGenFiles/GraphicString.h
new file mode 100644
index 0000000..19cac68
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/GraphicString.h
@@ -0,0 +1,36 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef _GraphicString_H_
+#define _GraphicString_H_
+
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef OCTET_STRING_t GraphicString_t; /* Implemented via OCTET STRING */
+
+extern asn_TYPE_descriptor_t asn_DEF_GraphicString;
+extern asn_TYPE_operation_t asn_OP_GraphicString;
+
+#define GraphicString_free OCTET_STRING_free
+#define GraphicString_print OCTET_STRING_print
+#define GraphicString_compare OCTET_STRING_compare
+#define GraphicString_constraint asn_generic_unknown_constraint
+#define GraphicString_decode_ber OCTET_STRING_decode_ber
+#define GraphicString_encode_der OCTET_STRING_encode_der
+#define GraphicString_decode_xer OCTET_STRING_decode_xer_hex
+#define GraphicString_encode_xer OCTET_STRING_encode_xer
+#define GraphicString_decode_uper OCTET_STRING_decode_uper
+#define GraphicString_encode_uper OCTET_STRING_encode_uper
+#define GraphicString_decode_aper OCTET_STRING_decode_aper
+#define GraphicString_encode_aper OCTET_STRING_encode_aper
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GraphicString_H_ */
diff --git a/src/s1ap/asn1c/asnGenFiles/HFN.h b/src/s1ap/asn1c/asnGenFiles/HFN.h
new file mode 100644
index 0000000..ec20ce7
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/HFN.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _HFN_H_
+#define _HFN_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* HFN */
+typedef long HFN_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_HFN_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_HFN;
+asn_struct_free_f HFN_free;
+asn_struct_print_f HFN_print;
+asn_constr_check_f HFN_constraint;
+ber_type_decoder_f HFN_decode_ber;
+der_type_encoder_f HFN_encode_der;
+xer_type_decoder_f HFN_decode_xer;
+xer_type_encoder_f HFN_encode_xer;
+oer_type_decoder_f HFN_decode_oer;
+oer_type_encoder_f HFN_encode_oer;
+per_type_decoder_f HFN_decode_uper;
+per_type_encoder_f HFN_encode_uper;
+per_type_decoder_f HFN_decode_aper;
+per_type_encoder_f HFN_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HFN_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/HFNModified.h b/src/s1ap/asn1c/asnGenFiles/HFNModified.h
new file mode 100644
index 0000000..4f4b13c
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/HFNModified.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _HFNModified_H_
+#define _HFNModified_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* HFNModified */
+typedef long HFNModified_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_HFNModified_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_HFNModified;
+asn_struct_free_f HFNModified_free;
+asn_struct_print_f HFNModified_print;
+asn_constr_check_f HFNModified_constraint;
+ber_type_decoder_f HFNModified_decode_ber;
+der_type_encoder_f HFNModified_encode_der;
+xer_type_decoder_f HFNModified_decode_xer;
+xer_type_encoder_f HFNModified_encode_xer;
+oer_type_decoder_f HFNModified_decode_oer;
+oer_type_encoder_f HFNModified_encode_oer;
+per_type_decoder_f HFNModified_decode_uper;
+per_type_encoder_f HFNModified_encode_uper;
+per_type_decoder_f HFNModified_decode_aper;
+per_type_encoder_f HFNModified_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HFNModified_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/HFNforPDCP-SNlength18.h b/src/s1ap/asn1c/asnGenFiles/HFNforPDCP-SNlength18.h
new file mode 100644
index 0000000..79cc2c4
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/HFNforPDCP-SNlength18.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _HFNforPDCP_SNlength18_H_
+#define _HFNforPDCP_SNlength18_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* HFNforPDCP-SNlength18 */
+typedef long HFNforPDCP_SNlength18_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_HFNforPDCP_SNlength18_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_HFNforPDCP_SNlength18;
+asn_struct_free_f HFNforPDCP_SNlength18_free;
+asn_struct_print_f HFNforPDCP_SNlength18_print;
+asn_constr_check_f HFNforPDCP_SNlength18_constraint;
+ber_type_decoder_f HFNforPDCP_SNlength18_decode_ber;
+der_type_encoder_f HFNforPDCP_SNlength18_encode_der;
+xer_type_decoder_f HFNforPDCP_SNlength18_decode_xer;
+xer_type_encoder_f HFNforPDCP_SNlength18_encode_xer;
+oer_type_decoder_f HFNforPDCP_SNlength18_decode_oer;
+oer_type_encoder_f HFNforPDCP_SNlength18_encode_oer;
+per_type_decoder_f HFNforPDCP_SNlength18_decode_uper;
+per_type_encoder_f HFNforPDCP_SNlength18_encode_uper;
+per_type_decoder_f HFNforPDCP_SNlength18_decode_aper;
+per_type_encoder_f HFNforPDCP_SNlength18_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HFNforPDCP_SNlength18_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/HandoverCancel.h b/src/s1ap/asn1c/asnGenFiles/HandoverCancel.h
new file mode 100644
index 0000000..08928fc
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/HandoverCancel.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _HandoverCancel_H_
+#define _HandoverCancel_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* HandoverCancel */
+typedef struct HandoverCancel {
+ ProtocolIE_Container_129P10_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} HandoverCancel_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_HandoverCancel;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HandoverCancel_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/HandoverCancelAcknowledge.h b/src/s1ap/asn1c/asnGenFiles/HandoverCancelAcknowledge.h
new file mode 100644
index 0000000..ecc04b4
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/HandoverCancelAcknowledge.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _HandoverCancelAcknowledge_H_
+#define _HandoverCancelAcknowledge_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* HandoverCancelAcknowledge */
+typedef struct HandoverCancelAcknowledge {
+ ProtocolIE_Container_129P11_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} HandoverCancelAcknowledge_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_HandoverCancelAcknowledge;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HandoverCancelAcknowledge_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/HandoverCommand.h b/src/s1ap/asn1c/asnGenFiles/HandoverCommand.h
new file mode 100644
index 0000000..95ecff7
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/HandoverCommand.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _HandoverCommand_H_
+#define _HandoverCommand_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* HandoverCommand */
+typedef struct HandoverCommand {
+ ProtocolIE_Container_129P1_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} HandoverCommand_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_HandoverCommand;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HandoverCommand_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/HandoverFailure.h b/src/s1ap/asn1c/asnGenFiles/HandoverFailure.h
new file mode 100644
index 0000000..7b53d8b
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/HandoverFailure.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _HandoverFailure_H_
+#define _HandoverFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* HandoverFailure */
+typedef struct HandoverFailure {
+ ProtocolIE_Container_129P5_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} HandoverFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_HandoverFailure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HandoverFailure_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/HandoverFlag.h b/src/s1ap/asn1c/asnGenFiles/HandoverFlag.h
new file mode 100644
index 0000000..17fd34e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/HandoverFlag.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _HandoverFlag_H_
+#define _HandoverFlag_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum HandoverFlag {
+ HandoverFlag_handoverPreparation = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_HandoverFlag;
+
+/* HandoverFlag */
+typedef long HandoverFlag_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_HandoverFlag_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_HandoverFlag;
+extern const asn_INTEGER_specifics_t asn_SPC_HandoverFlag_specs_1;
+asn_struct_free_f HandoverFlag_free;
+asn_struct_print_f HandoverFlag_print;
+asn_constr_check_f HandoverFlag_constraint;
+ber_type_decoder_f HandoverFlag_decode_ber;
+der_type_encoder_f HandoverFlag_encode_der;
+xer_type_decoder_f HandoverFlag_decode_xer;
+xer_type_encoder_f HandoverFlag_encode_xer;
+oer_type_decoder_f HandoverFlag_decode_oer;
+oer_type_encoder_f HandoverFlag_encode_oer;
+per_type_decoder_f HandoverFlag_decode_uper;
+per_type_encoder_f HandoverFlag_encode_uper;
+per_type_decoder_f HandoverFlag_decode_aper;
+per_type_encoder_f HandoverFlag_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HandoverFlag_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/HandoverNotify.h b/src/s1ap/asn1c/asnGenFiles/HandoverNotify.h
new file mode 100644
index 0000000..65655c2
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/HandoverNotify.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _HandoverNotify_H_
+#define _HandoverNotify_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* HandoverNotify */
+typedef struct HandoverNotify {
+ ProtocolIE_Container_129P6_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} HandoverNotify_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_HandoverNotify;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HandoverNotify_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/HandoverPreparationFailure.h b/src/s1ap/asn1c/asnGenFiles/HandoverPreparationFailure.h
new file mode 100644
index 0000000..84e88ee
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/HandoverPreparationFailure.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _HandoverPreparationFailure_H_
+#define _HandoverPreparationFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* HandoverPreparationFailure */
+typedef struct HandoverPreparationFailure {
+ ProtocolIE_Container_129P2_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} HandoverPreparationFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_HandoverPreparationFailure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HandoverPreparationFailure_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/HandoverRequest.h b/src/s1ap/asn1c/asnGenFiles/HandoverRequest.h
new file mode 100644
index 0000000..49e8338
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/HandoverRequest.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _HandoverRequest_H_
+#define _HandoverRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* HandoverRequest */
+typedef struct HandoverRequest {
+ ProtocolIE_Container_129P3_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} HandoverRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_HandoverRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HandoverRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/HandoverRequestAcknowledge.h b/src/s1ap/asn1c/asnGenFiles/HandoverRequestAcknowledge.h
new file mode 100644
index 0000000..cc55db8
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/HandoverRequestAcknowledge.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _HandoverRequestAcknowledge_H_
+#define _HandoverRequestAcknowledge_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* HandoverRequestAcknowledge */
+typedef struct HandoverRequestAcknowledge {
+ ProtocolIE_Container_129P4_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} HandoverRequestAcknowledge_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_HandoverRequestAcknowledge;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HandoverRequestAcknowledge_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/HandoverRequired.h b/src/s1ap/asn1c/asnGenFiles/HandoverRequired.h
new file mode 100644
index 0000000..eea8253
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/HandoverRequired.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _HandoverRequired_H_
+#define _HandoverRequired_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* HandoverRequired */
+typedef struct HandoverRequired {
+ ProtocolIE_Container_129P0_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} HandoverRequired_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_HandoverRequired;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HandoverRequired_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/HandoverRestrictionList.h b/src/s1ap/asn1c/asnGenFiles/HandoverRestrictionList.h
new file mode 100644
index 0000000..a5f2231
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/HandoverRestrictionList.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _HandoverRestrictionList_H_
+#define _HandoverRestrictionList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNidentity.h"
+#include "ForbiddenInterRATs.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct EPLMNs;
+struct ForbiddenTAs;
+struct ForbiddenLAs;
+struct ProtocolExtensionContainer;
+
+/* HandoverRestrictionList */
+typedef struct HandoverRestrictionList {
+ PLMNidentity_t servingPLMN;
+ struct EPLMNs *equivalentPLMNs; /* OPTIONAL */
+ struct ForbiddenTAs *forbiddenTAs; /* OPTIONAL */
+ struct ForbiddenLAs *forbiddenLAs; /* OPTIONAL */
+ ForbiddenInterRATs_t *forbiddenInterRATs; /* 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;
+} HandoverRestrictionList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_HandoverRestrictionList;
+extern asn_SEQUENCE_specifics_t asn_SPC_HandoverRestrictionList_specs_1;
+extern asn_TYPE_member_t asn_MBR_HandoverRestrictionList_1[6];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HandoverRestrictionList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/HandoverType.h b/src/s1ap/asn1c/asnGenFiles/HandoverType.h
new file mode 100644
index 0000000..324c78e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/HandoverType.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _HandoverType_H_
+#define _HandoverType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum HandoverType {
+ HandoverType_intralte = 0,
+ HandoverType_ltetoutran = 1,
+ HandoverType_ltetogeran = 2,
+ HandoverType_utrantolte = 3,
+ HandoverType_gerantolte = 4,
+ /*
+ * Enumeration is extensible
+ */
+ HandoverType_eps_to_5gs = 5,
+ HandoverType_fivegs_to_eps = 6
+} e_HandoverType;
+
+/* HandoverType */
+typedef long HandoverType_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_HandoverType_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_HandoverType;
+extern const asn_INTEGER_specifics_t asn_SPC_HandoverType_specs_1;
+asn_struct_free_f HandoverType_free;
+asn_struct_print_f HandoverType_print;
+asn_constr_check_f HandoverType_constraint;
+ber_type_decoder_f HandoverType_decode_ber;
+der_type_encoder_f HandoverType_encode_der;
+xer_type_decoder_f HandoverType_decode_xer;
+xer_type_encoder_f HandoverType_encode_xer;
+oer_type_decoder_f HandoverType_decode_oer;
+oer_type_encoder_f HandoverType_encode_oer;
+per_type_decoder_f HandoverType_decode_uper;
+per_type_encoder_f HandoverType_encode_uper;
+per_type_decoder_f HandoverType_decode_aper;
+per_type_encoder_f HandoverType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HandoverType_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/IMSI.h b/src/s1ap/asn1c/asnGenFiles/IMSI.h
new file mode 100644
index 0000000..3ef1f23
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/IMSI.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _IMSI_H_
+#define _IMSI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* IMSI */
+typedef OCTET_STRING_t IMSI_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_IMSI_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_IMSI;
+asn_struct_free_f IMSI_free;
+asn_struct_print_f IMSI_print;
+asn_constr_check_f IMSI_constraint;
+ber_type_decoder_f IMSI_decode_ber;
+der_type_encoder_f IMSI_encode_der;
+xer_type_decoder_f IMSI_decode_xer;
+xer_type_encoder_f IMSI_encode_xer;
+oer_type_decoder_f IMSI_decode_oer;
+oer_type_encoder_f IMSI_encode_oer;
+per_type_decoder_f IMSI_decode_uper;
+per_type_encoder_f IMSI_encode_uper;
+per_type_decoder_f IMSI_decode_aper;
+per_type_encoder_f IMSI_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _IMSI_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/IMSvoiceEPSfallbackfrom5G.h b/src/s1ap/asn1c/asnGenFiles/IMSvoiceEPSfallbackfrom5G.h
new file mode 100644
index 0000000..597f3ec
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/IMSvoiceEPSfallbackfrom5G.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _IMSvoiceEPSfallbackfrom5G_H_
+#define _IMSvoiceEPSfallbackfrom5G_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum IMSvoiceEPSfallbackfrom5G {
+ IMSvoiceEPSfallbackfrom5G_true = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_IMSvoiceEPSfallbackfrom5G;
+
+/* IMSvoiceEPSfallbackfrom5G */
+typedef long IMSvoiceEPSfallbackfrom5G_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_IMSvoiceEPSfallbackfrom5G_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_IMSvoiceEPSfallbackfrom5G;
+extern const asn_INTEGER_specifics_t asn_SPC_IMSvoiceEPSfallbackfrom5G_specs_1;
+asn_struct_free_f IMSvoiceEPSfallbackfrom5G_free;
+asn_struct_print_f IMSvoiceEPSfallbackfrom5G_print;
+asn_constr_check_f IMSvoiceEPSfallbackfrom5G_constraint;
+ber_type_decoder_f IMSvoiceEPSfallbackfrom5G_decode_ber;
+der_type_encoder_f IMSvoiceEPSfallbackfrom5G_encode_der;
+xer_type_decoder_f IMSvoiceEPSfallbackfrom5G_decode_xer;
+xer_type_encoder_f IMSvoiceEPSfallbackfrom5G_encode_xer;
+oer_type_decoder_f IMSvoiceEPSfallbackfrom5G_decode_oer;
+oer_type_encoder_f IMSvoiceEPSfallbackfrom5G_encode_oer;
+per_type_decoder_f IMSvoiceEPSfallbackfrom5G_decode_uper;
+per_type_encoder_f IMSvoiceEPSfallbackfrom5G_encode_uper;
+per_type_decoder_f IMSvoiceEPSfallbackfrom5G_decode_aper;
+per_type_encoder_f IMSvoiceEPSfallbackfrom5G_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _IMSvoiceEPSfallbackfrom5G_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/INTEGER.h b/src/s1ap/asn1c/asnGenFiles/INTEGER.h
new file mode 100644
index 0000000..f776c07
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/INTEGER.h
@@ -0,0 +1,108 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef _INTEGER_H_
+#define _INTEGER_H_
+
+#include <asn_application.h>
+#include <asn_codecs_prim.h>
+
+#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 <tag> 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/s1ap/asn1c/asnGenFiles/ImmediateMDT.h b/src/s1ap/asn1c/asnGenFiles/ImmediateMDT.h
new file mode 100644
index 0000000..179637e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ImmediateMDT.h
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ImmediateMDT_H_
+#define _ImmediateMDT_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "MeasurementsToActivate.h"
+#include "M1ReportingTrigger.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct M1ThresholdEventA2;
+struct M1PeriodicReporting;
+struct ProtocolExtensionContainer;
+
+/* ImmediateMDT */
+typedef struct ImmediateMDT {
+ MeasurementsToActivate_t measurementsToActivate;
+ M1ReportingTrigger_t m1reportingTrigger;
+ struct M1ThresholdEventA2 *m1thresholdeventA2; /* OPTIONAL */
+ struct M1PeriodicReporting *m1periodicReporting; /* 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;
+} ImmediateMDT_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ImmediateMDT;
+extern asn_SEQUENCE_specifics_t asn_SPC_ImmediateMDT_specs_1;
+extern asn_TYPE_member_t asn_MBR_ImmediateMDT_1[5];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ImmediateMDT_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/InformationOnRecommendedCellsAndENBsForPaging.h b/src/s1ap/asn1c/asnGenFiles/InformationOnRecommendedCellsAndENBsForPaging.h
new file mode 100644
index 0000000..36e87e3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/InformationOnRecommendedCellsAndENBsForPaging.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _InformationOnRecommendedCellsAndENBsForPaging_H_
+#define _InformationOnRecommendedCellsAndENBsForPaging_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RecommendedCellsForPaging.h"
+#include "RecommendedENBsForPaging.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* InformationOnRecommendedCellsAndENBsForPaging */
+typedef struct InformationOnRecommendedCellsAndENBsForPaging {
+ RecommendedCellsForPaging_t recommendedCellsForPaging;
+ RecommendedENBsForPaging_t recommendENBsForPaging;
+ 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;
+} InformationOnRecommendedCellsAndENBsForPaging_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_InformationOnRecommendedCellsAndENBsForPaging;
+extern asn_SEQUENCE_specifics_t asn_SPC_InformationOnRecommendedCellsAndENBsForPaging_specs_1;
+extern asn_TYPE_member_t asn_MBR_InformationOnRecommendedCellsAndENBsForPaging_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _InformationOnRecommendedCellsAndENBsForPaging_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/InitialContextSetupFailure.h b/src/s1ap/asn1c/asnGenFiles/InitialContextSetupFailure.h
new file mode 100644
index 0000000..a5f7ae9
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/InitialContextSetupFailure.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _InitialContextSetupFailure_H_
+#define _InitialContextSetupFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* InitialContextSetupFailure */
+typedef struct InitialContextSetupFailure {
+ ProtocolIE_Container_129P21_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} InitialContextSetupFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_InitialContextSetupFailure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _InitialContextSetupFailure_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/InitialContextSetupRequest.h b/src/s1ap/asn1c/asnGenFiles/InitialContextSetupRequest.h
new file mode 100644
index 0000000..26707c3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/InitialContextSetupRequest.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _InitialContextSetupRequest_H_
+#define _InitialContextSetupRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* InitialContextSetupRequest */
+typedef struct InitialContextSetupRequest {
+ ProtocolIE_Container_129P19_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} InitialContextSetupRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_InitialContextSetupRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _InitialContextSetupRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/InitialContextSetupResponse.h b/src/s1ap/asn1c/asnGenFiles/InitialContextSetupResponse.h
new file mode 100644
index 0000000..d5b60da
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/InitialContextSetupResponse.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _InitialContextSetupResponse_H_
+#define _InitialContextSetupResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* InitialContextSetupResponse */
+typedef struct InitialContextSetupResponse {
+ ProtocolIE_Container_129P20_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} InitialContextSetupResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_InitialContextSetupResponse;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _InitialContextSetupResponse_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/InitialUEMessage.h b/src/s1ap/asn1c/asnGenFiles/InitialUEMessage.h
new file mode 100644
index 0000000..0b24259
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/InitialUEMessage.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _InitialUEMessage_H_
+#define _InitialUEMessage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* InitialUEMessage */
+typedef struct InitialUEMessage {
+ ProtocolIE_Container_129P32_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} InitialUEMessage_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_InitialUEMessage;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _InitialUEMessage_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/InitiatingMessage.h b/src/s1ap/asn1c/asnGenFiles/InitiatingMessage.h
new file mode 100644
index 0000000..23c7821
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/InitiatingMessage.h
@@ -0,0 +1,278 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Descriptions"
+ * found in "./asn1c/S1AP-PDU-Descriptions.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _InitiatingMessage_H_
+#define _InitiatingMessage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProcedureCode.h"
+#include "Criticality.h"
+#include <ANY.h>
+#include <asn_ioc.h>
+#include "HandoverRequired.h"
+#include "HandoverCommand.h"
+#include "HandoverPreparationFailure.h"
+#include "HandoverRequest.h"
+#include "HandoverRequestAcknowledge.h"
+#include "HandoverFailure.h"
+#include "PathSwitchRequest.h"
+#include "PathSwitchRequestAcknowledge.h"
+#include "PathSwitchRequestFailure.h"
+#include "E-RABSetupRequest.h"
+#include "E-RABSetupResponse.h"
+#include "E-RABModifyRequest.h"
+#include "E-RABModifyResponse.h"
+#include "E-RABReleaseCommand.h"
+#include "E-RABReleaseResponse.h"
+#include "InitialContextSetupRequest.h"
+#include "InitialContextSetupResponse.h"
+#include "InitialContextSetupFailure.h"
+#include "HandoverCancel.h"
+#include "HandoverCancelAcknowledge.h"
+#include "KillRequest.h"
+#include "KillResponse.h"
+#include "Reset.h"
+#include "ResetAcknowledge.h"
+#include "S1SetupRequest.h"
+#include "S1SetupResponse.h"
+#include "S1SetupFailure.h"
+#include "UEContextModificationRequest.h"
+#include "UEContextModificationResponse.h"
+#include "UEContextModificationFailure.h"
+#include "UEContextReleaseCommand.h"
+#include "UEContextReleaseComplete.h"
+#include "ENBConfigurationUpdate.h"
+#include "ENBConfigurationUpdateAcknowledge.h"
+#include "ENBConfigurationUpdateFailure.h"
+#include "MMEConfigurationUpdate.h"
+#include "MMEConfigurationUpdateAcknowledge.h"
+#include "MMEConfigurationUpdateFailure.h"
+#include "WriteReplaceWarningRequest.h"
+#include "WriteReplaceWarningResponse.h"
+#include "UERadioCapabilityMatchRequest.h"
+#include "UERadioCapabilityMatchResponse.h"
+#include "E-RABModificationIndication.h"
+#include "E-RABModificationConfirm.h"
+#include "UEContextModificationIndication.h"
+#include "UEContextModificationConfirm.h"
+#include "UEContextSuspendRequest.h"
+#include "UEContextSuspendResponse.h"
+#include "UEContextResumeRequest.h"
+#include "UEContextResumeResponse.h"
+#include "UEContextResumeFailure.h"
+#include "HandoverNotify.h"
+#include "E-RABReleaseIndication.h"
+#include "Paging.h"
+#include "DownlinkNASTransport.h"
+#include "InitialUEMessage.h"
+#include "UplinkNASTransport.h"
+#include "ErrorIndication.h"
+#include "NASNonDeliveryIndication.h"
+#include "UEContextReleaseRequest.h"
+#include "DownlinkS1cdma2000tunnelling.h"
+#include "UplinkS1cdma2000tunnelling.h"
+#include "UECapabilityInfoIndication.h"
+#include "ENBStatusTransfer.h"
+#include "MMEStatusTransfer.h"
+#include "DeactivateTrace.h"
+#include "TraceStart.h"
+#include "TraceFailureIndication.h"
+#include "CellTrafficTrace.h"
+#include "LocationReportingControl.h"
+#include "LocationReportingFailureIndication.h"
+#include "LocationReport.h"
+#include "OverloadStart.h"
+#include "OverloadStop.h"
+#include "ENBDirectInformationTransfer.h"
+#include "MMEDirectInformationTransfer.h"
+#include "ENBConfigurationTransfer.h"
+#include "MMEConfigurationTransfer.h"
+#include "PrivateMessage.h"
+#include "DownlinkUEAssociatedLPPaTransport.h"
+#include "UplinkUEAssociatedLPPaTransport.h"
+#include "DownlinkNonUEAssociatedLPPaTransport.h"
+#include "UplinkNonUEAssociatedLPPaTransport.h"
+#include "PWSRestartIndication.h"
+#include "RerouteNASRequest.h"
+#include "PWSFailureIndication.h"
+#include "ConnectionEstablishmentIndication.h"
+#include "NASDeliveryIndication.h"
+#include "RetrieveUEInformation.h"
+#include "UEInformationTransfer.h"
+#include "ENBCPRelocationIndication.h"
+#include "MMECPRelocationIndication.h"
+#include "SecondaryRATDataUsageReport.h"
+#include <OPEN_TYPE.h>
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum InitiatingMessage__value_PR {
+ InitiatingMessage__value_PR_NOTHING, /* No components present */
+ InitiatingMessage__value_PR_HandoverRequired,
+ InitiatingMessage__value_PR_HandoverRequest,
+ InitiatingMessage__value_PR_PathSwitchRequest,
+ InitiatingMessage__value_PR_E_RABSetupRequest,
+ InitiatingMessage__value_PR_E_RABModifyRequest,
+ InitiatingMessage__value_PR_E_RABReleaseCommand,
+ InitiatingMessage__value_PR_InitialContextSetupRequest,
+ InitiatingMessage__value_PR_HandoverCancel,
+ InitiatingMessage__value_PR_KillRequest,
+ InitiatingMessage__value_PR_Reset,
+ InitiatingMessage__value_PR_S1SetupRequest,
+ InitiatingMessage__value_PR_UEContextModificationRequest,
+ InitiatingMessage__value_PR_UEContextReleaseCommand,
+ InitiatingMessage__value_PR_ENBConfigurationUpdate,
+ InitiatingMessage__value_PR_MMEConfigurationUpdate,
+ InitiatingMessage__value_PR_WriteReplaceWarningRequest,
+ InitiatingMessage__value_PR_UERadioCapabilityMatchRequest,
+ InitiatingMessage__value_PR_E_RABModificationIndication,
+ InitiatingMessage__value_PR_UEContextModificationIndication,
+ InitiatingMessage__value_PR_UEContextSuspendRequest,
+ InitiatingMessage__value_PR_UEContextResumeRequest,
+ InitiatingMessage__value_PR_HandoverNotify,
+ InitiatingMessage__value_PR_E_RABReleaseIndication,
+ InitiatingMessage__value_PR_Paging,
+ InitiatingMessage__value_PR_DownlinkNASTransport,
+ InitiatingMessage__value_PR_InitialUEMessage,
+ InitiatingMessage__value_PR_UplinkNASTransport,
+ InitiatingMessage__value_PR_ErrorIndication,
+ InitiatingMessage__value_PR_NASNonDeliveryIndication,
+ InitiatingMessage__value_PR_UEContextReleaseRequest,
+ InitiatingMessage__value_PR_DownlinkS1cdma2000tunnelling,
+ InitiatingMessage__value_PR_UplinkS1cdma2000tunnelling,
+ InitiatingMessage__value_PR_UECapabilityInfoIndication,
+ InitiatingMessage__value_PR_ENBStatusTransfer,
+ InitiatingMessage__value_PR_MMEStatusTransfer,
+ InitiatingMessage__value_PR_DeactivateTrace,
+ InitiatingMessage__value_PR_TraceStart,
+ InitiatingMessage__value_PR_TraceFailureIndication,
+ InitiatingMessage__value_PR_CellTrafficTrace,
+ InitiatingMessage__value_PR_LocationReportingControl,
+ InitiatingMessage__value_PR_LocationReportingFailureIndication,
+ InitiatingMessage__value_PR_LocationReport,
+ InitiatingMessage__value_PR_OverloadStart,
+ InitiatingMessage__value_PR_OverloadStop,
+ InitiatingMessage__value_PR_ENBDirectInformationTransfer,
+ InitiatingMessage__value_PR_MMEDirectInformationTransfer,
+ InitiatingMessage__value_PR_ENBConfigurationTransfer,
+ InitiatingMessage__value_PR_MMEConfigurationTransfer,
+ InitiatingMessage__value_PR_PrivateMessage,
+ InitiatingMessage__value_PR_DownlinkUEAssociatedLPPaTransport,
+ InitiatingMessage__value_PR_UplinkUEAssociatedLPPaTransport,
+ InitiatingMessage__value_PR_DownlinkNonUEAssociatedLPPaTransport,
+ InitiatingMessage__value_PR_UplinkNonUEAssociatedLPPaTransport,
+ InitiatingMessage__value_PR_PWSRestartIndication,
+ InitiatingMessage__value_PR_RerouteNASRequest,
+ InitiatingMessage__value_PR_PWSFailureIndication,
+ InitiatingMessage__value_PR_ConnectionEstablishmentIndication,
+ InitiatingMessage__value_PR_NASDeliveryIndication,
+ InitiatingMessage__value_PR_RetrieveUEInformation,
+ InitiatingMessage__value_PR_UEInformationTransfer,
+ InitiatingMessage__value_PR_ENBCPRelocationIndication,
+ InitiatingMessage__value_PR_MMECPRelocationIndication,
+ InitiatingMessage__value_PR_SecondaryRATDataUsageReport
+} InitiatingMessage__value_PR;
+
+/* InitiatingMessage */
+typedef struct InitiatingMessage {
+ ProcedureCode_t procedureCode;
+ Criticality_t criticality;
+ struct InitiatingMessage__value {
+ InitiatingMessage__value_PR present;
+ union InitiatingMessage__value_u {
+ HandoverRequired_t HandoverRequired;
+ HandoverRequest_t HandoverRequest;
+ PathSwitchRequest_t PathSwitchRequest;
+ E_RABSetupRequest_t E_RABSetupRequest;
+ E_RABModifyRequest_t E_RABModifyRequest;
+ E_RABReleaseCommand_t E_RABReleaseCommand;
+ InitialContextSetupRequest_t InitialContextSetupRequest;
+ HandoverCancel_t HandoverCancel;
+ KillRequest_t KillRequest;
+ Reset_t Reset;
+ S1SetupRequest_t S1SetupRequest;
+ UEContextModificationRequest_t UEContextModificationRequest;
+ UEContextReleaseCommand_t UEContextReleaseCommand;
+ ENBConfigurationUpdate_t ENBConfigurationUpdate;
+ MMEConfigurationUpdate_t MMEConfigurationUpdate;
+ WriteReplaceWarningRequest_t WriteReplaceWarningRequest;
+ UERadioCapabilityMatchRequest_t UERadioCapabilityMatchRequest;
+ E_RABModificationIndication_t E_RABModificationIndication;
+ UEContextModificationIndication_t UEContextModificationIndication;
+ UEContextSuspendRequest_t UEContextSuspendRequest;
+ UEContextResumeRequest_t UEContextResumeRequest;
+ HandoverNotify_t HandoverNotify;
+ E_RABReleaseIndication_t E_RABReleaseIndication;
+ Paging_t Paging;
+ DownlinkNASTransport_t DownlinkNASTransport;
+ InitialUEMessage_t InitialUEMessage;
+ UplinkNASTransport_t UplinkNASTransport;
+ ErrorIndication_t ErrorIndication;
+ NASNonDeliveryIndication_t NASNonDeliveryIndication;
+ UEContextReleaseRequest_t UEContextReleaseRequest;
+ DownlinkS1cdma2000tunnelling_t DownlinkS1cdma2000tunnelling;
+ UplinkS1cdma2000tunnelling_t UplinkS1cdma2000tunnelling;
+ UECapabilityInfoIndication_t UECapabilityInfoIndication;
+ ENBStatusTransfer_t ENBStatusTransfer;
+ MMEStatusTransfer_t MMEStatusTransfer;
+ DeactivateTrace_t DeactivateTrace;
+ TraceStart_t TraceStart;
+ TraceFailureIndication_t TraceFailureIndication;
+ CellTrafficTrace_t CellTrafficTrace;
+ LocationReportingControl_t LocationReportingControl;
+ LocationReportingFailureIndication_t LocationReportingFailureIndication;
+ LocationReport_t LocationReport;
+ OverloadStart_t OverloadStart;
+ OverloadStop_t OverloadStop;
+ ENBDirectInformationTransfer_t ENBDirectInformationTransfer;
+ MMEDirectInformationTransfer_t MMEDirectInformationTransfer;
+ ENBConfigurationTransfer_t ENBConfigurationTransfer;
+ MMEConfigurationTransfer_t MMEConfigurationTransfer;
+ PrivateMessage_t PrivateMessage;
+ DownlinkUEAssociatedLPPaTransport_t DownlinkUEAssociatedLPPaTransport;
+ UplinkUEAssociatedLPPaTransport_t UplinkUEAssociatedLPPaTransport;
+ DownlinkNonUEAssociatedLPPaTransport_t DownlinkNonUEAssociatedLPPaTransport;
+ UplinkNonUEAssociatedLPPaTransport_t UplinkNonUEAssociatedLPPaTransport;
+ PWSRestartIndication_t PWSRestartIndication;
+ RerouteNASRequest_t RerouteNASRequest;
+ PWSFailureIndication_t PWSFailureIndication;
+ ConnectionEstablishmentIndication_t ConnectionEstablishmentIndication;
+ NASDeliveryIndication_t NASDeliveryIndication;
+ RetrieveUEInformation_t RetrieveUEInformation;
+ UEInformationTransfer_t UEInformationTransfer;
+ ENBCPRelocationIndication_t ENBCPRelocationIndication;
+ MMECPRelocationIndication_t MMECPRelocationIndication;
+ SecondaryRATDataUsageReport_t SecondaryRATDataUsageReport;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} InitiatingMessage_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_InitiatingMessage;
+extern asn_SEQUENCE_specifics_t asn_SPC_InitiatingMessage_specs_1;
+extern asn_TYPE_member_t asn_MBR_InitiatingMessage_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _InitiatingMessage_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/IntegrityProtectionAlgorithms.h b/src/s1ap/asn1c/asnGenFiles/IntegrityProtectionAlgorithms.h
new file mode 100644
index 0000000..5260538
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/IntegrityProtectionAlgorithms.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _IntegrityProtectionAlgorithms_H_
+#define _IntegrityProtectionAlgorithms_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* IntegrityProtectionAlgorithms */
+typedef BIT_STRING_t IntegrityProtectionAlgorithms_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_IntegrityProtectionAlgorithms_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_IntegrityProtectionAlgorithms;
+asn_struct_free_f IntegrityProtectionAlgorithms_free;
+asn_struct_print_f IntegrityProtectionAlgorithms_print;
+asn_constr_check_f IntegrityProtectionAlgorithms_constraint;
+ber_type_decoder_f IntegrityProtectionAlgorithms_decode_ber;
+der_type_encoder_f IntegrityProtectionAlgorithms_encode_der;
+xer_type_decoder_f IntegrityProtectionAlgorithms_decode_xer;
+xer_type_encoder_f IntegrityProtectionAlgorithms_encode_xer;
+oer_type_decoder_f IntegrityProtectionAlgorithms_decode_oer;
+oer_type_encoder_f IntegrityProtectionAlgorithms_encode_oer;
+per_type_decoder_f IntegrityProtectionAlgorithms_decode_uper;
+per_type_encoder_f IntegrityProtectionAlgorithms_encode_uper;
+per_type_decoder_f IntegrityProtectionAlgorithms_decode_aper;
+per_type_encoder_f IntegrityProtectionAlgorithms_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _IntegrityProtectionAlgorithms_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/IntendedNumberOfPagingAttempts.h b/src/s1ap/asn1c/asnGenFiles/IntendedNumberOfPagingAttempts.h
new file mode 100644
index 0000000..89398c9
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/IntendedNumberOfPagingAttempts.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _IntendedNumberOfPagingAttempts_H_
+#define _IntendedNumberOfPagingAttempts_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* IntendedNumberOfPagingAttempts */
+typedef long IntendedNumberOfPagingAttempts_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_IntendedNumberOfPagingAttempts_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_IntendedNumberOfPagingAttempts;
+asn_struct_free_f IntendedNumberOfPagingAttempts_free;
+asn_struct_print_f IntendedNumberOfPagingAttempts_print;
+asn_constr_check_f IntendedNumberOfPagingAttempts_constraint;
+ber_type_decoder_f IntendedNumberOfPagingAttempts_decode_ber;
+der_type_encoder_f IntendedNumberOfPagingAttempts_encode_der;
+xer_type_decoder_f IntendedNumberOfPagingAttempts_decode_xer;
+xer_type_encoder_f IntendedNumberOfPagingAttempts_encode_xer;
+oer_type_decoder_f IntendedNumberOfPagingAttempts_decode_oer;
+oer_type_encoder_f IntendedNumberOfPagingAttempts_encode_oer;
+per_type_decoder_f IntendedNumberOfPagingAttempts_decode_uper;
+per_type_encoder_f IntendedNumberOfPagingAttempts_encode_uper;
+per_type_decoder_f IntendedNumberOfPagingAttempts_decode_aper;
+per_type_encoder_f IntendedNumberOfPagingAttempts_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _IntendedNumberOfPagingAttempts_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Inter-SystemInformationTransferType.h b/src/s1ap/asn1c/asnGenFiles/Inter-SystemInformationTransferType.h
new file mode 100644
index 0000000..d797d9b
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Inter-SystemInformationTransferType.h
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Inter_SystemInformationTransferType_H_
+#define _Inter_SystemInformationTransferType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Inter_SystemInformationTransferType_PR {
+ Inter_SystemInformationTransferType_PR_NOTHING, /* No components present */
+ Inter_SystemInformationTransferType_PR_rIMTransfer
+ /* Extensions may appear below */
+
+} Inter_SystemInformationTransferType_PR;
+
+/* Forward declarations */
+struct RIMTransfer;
+
+/* Inter-SystemInformationTransferType */
+typedef struct Inter_SystemInformationTransferType {
+ Inter_SystemInformationTransferType_PR present;
+ union Inter_SystemInformationTransferType_u {
+ struct RIMTransfer *rIMTransfer;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} Inter_SystemInformationTransferType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Inter_SystemInformationTransferType;
+extern asn_CHOICE_specifics_t asn_SPC_Inter_SystemInformationTransferType_specs_1;
+extern asn_TYPE_member_t asn_MBR_Inter_SystemInformationTransferType_1[1];
+extern asn_per_constraints_t asn_PER_type_Inter_SystemInformationTransferType_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Inter_SystemInformationTransferType_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/InterfacesToTrace.h b/src/s1ap/asn1c/asnGenFiles/InterfacesToTrace.h
new file mode 100644
index 0000000..0c609ec
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/InterfacesToTrace.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _InterfacesToTrace_H_
+#define _InterfacesToTrace_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* InterfacesToTrace */
+typedef BIT_STRING_t InterfacesToTrace_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_InterfacesToTrace_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_InterfacesToTrace;
+asn_struct_free_f InterfacesToTrace_free;
+asn_struct_print_f InterfacesToTrace_print;
+asn_constr_check_f InterfacesToTrace_constraint;
+ber_type_decoder_f InterfacesToTrace_decode_ber;
+der_type_encoder_f InterfacesToTrace_encode_der;
+xer_type_decoder_f InterfacesToTrace_decode_xer;
+xer_type_encoder_f InterfacesToTrace_encode_xer;
+oer_type_decoder_f InterfacesToTrace_decode_oer;
+oer_type_encoder_f InterfacesToTrace_encode_oer;
+per_type_decoder_f InterfacesToTrace_decode_uper;
+per_type_encoder_f InterfacesToTrace_encode_uper;
+per_type_decoder_f InterfacesToTrace_decode_aper;
+per_type_encoder_f InterfacesToTrace_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _InterfacesToTrace_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/KillAllWarningMessages.h b/src/s1ap/asn1c/asnGenFiles/KillAllWarningMessages.h
new file mode 100644
index 0000000..bc085f3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/KillAllWarningMessages.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _KillAllWarningMessages_H_
+#define _KillAllWarningMessages_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum KillAllWarningMessages {
+ KillAllWarningMessages_true = 0
+} e_KillAllWarningMessages;
+
+/* KillAllWarningMessages */
+typedef long KillAllWarningMessages_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_KillAllWarningMessages_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_KillAllWarningMessages;
+extern const asn_INTEGER_specifics_t asn_SPC_KillAllWarningMessages_specs_1;
+asn_struct_free_f KillAllWarningMessages_free;
+asn_struct_print_f KillAllWarningMessages_print;
+asn_constr_check_f KillAllWarningMessages_constraint;
+ber_type_decoder_f KillAllWarningMessages_decode_ber;
+der_type_encoder_f KillAllWarningMessages_encode_der;
+xer_type_decoder_f KillAllWarningMessages_decode_xer;
+xer_type_encoder_f KillAllWarningMessages_encode_xer;
+oer_type_decoder_f KillAllWarningMessages_decode_oer;
+oer_type_encoder_f KillAllWarningMessages_encode_oer;
+per_type_decoder_f KillAllWarningMessages_decode_uper;
+per_type_encoder_f KillAllWarningMessages_encode_uper;
+per_type_decoder_f KillAllWarningMessages_decode_aper;
+per_type_encoder_f KillAllWarningMessages_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _KillAllWarningMessages_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/KillRequest.h b/src/s1ap/asn1c/asnGenFiles/KillRequest.h
new file mode 100644
index 0000000..b71b534
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/KillRequest.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _KillRequest_H_
+#define _KillRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* KillRequest */
+typedef struct KillRequest {
+ ProtocolIE_Container_129P69_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} KillRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_KillRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _KillRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/KillResponse.h b/src/s1ap/asn1c/asnGenFiles/KillResponse.h
new file mode 100644
index 0000000..b4a623c
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/KillResponse.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _KillResponse_H_
+#define _KillResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* KillResponse */
+typedef struct KillResponse {
+ ProtocolIE_Container_129P70_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} KillResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_KillResponse;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _KillResponse_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/L3-Information.h b/src/s1ap/asn1c/asnGenFiles/L3-Information.h
new file mode 100644
index 0000000..9650afd
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/L3-Information.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _L3_Information_H_
+#define _L3_Information_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* L3-Information */
+typedef OCTET_STRING_t L3_Information_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_L3_Information;
+asn_struct_free_f L3_Information_free;
+asn_struct_print_f L3_Information_print;
+asn_constr_check_f L3_Information_constraint;
+ber_type_decoder_f L3_Information_decode_ber;
+der_type_encoder_f L3_Information_encode_der;
+xer_type_decoder_f L3_Information_decode_xer;
+xer_type_encoder_f L3_Information_encode_xer;
+oer_type_decoder_f L3_Information_decode_oer;
+oer_type_encoder_f L3_Information_encode_oer;
+per_type_decoder_f L3_Information_decode_uper;
+per_type_encoder_f L3_Information_encode_uper;
+per_type_decoder_f L3_Information_decode_aper;
+per_type_encoder_f L3_Information_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _L3_Information_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/LAC.h b/src/s1ap/asn1c/asnGenFiles/LAC.h
new file mode 100644
index 0000000..32862d7
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/LAC.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _LAC_H_
+#define _LAC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* LAC */
+typedef OCTET_STRING_t LAC_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_LAC_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_LAC;
+asn_struct_free_f LAC_free;
+asn_struct_print_f LAC_print;
+asn_constr_check_f LAC_constraint;
+ber_type_decoder_f LAC_decode_ber;
+der_type_encoder_f LAC_encode_der;
+xer_type_decoder_f LAC_decode_xer;
+xer_type_encoder_f LAC_encode_xer;
+oer_type_decoder_f LAC_decode_oer;
+oer_type_encoder_f LAC_encode_oer;
+per_type_decoder_f LAC_decode_uper;
+per_type_encoder_f LAC_encode_uper;
+per_type_decoder_f LAC_decode_aper;
+per_type_encoder_f LAC_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LAC_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/LAI.h b/src/s1ap/asn1c/asnGenFiles/LAI.h
new file mode 100644
index 0000000..632741e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/LAI.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _LAI_H_
+#define _LAI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNidentity.h"
+#include "LAC.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* LAI */
+typedef struct LAI {
+ PLMNidentity_t pLMNidentity;
+ LAC_t lAC;
+ 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;
+} LAI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_LAI;
+extern asn_SEQUENCE_specifics_t asn_SPC_LAI_specs_1;
+extern asn_TYPE_member_t asn_MBR_LAI_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LAI_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/LHN-ID.h b/src/s1ap/asn1c/asnGenFiles/LHN-ID.h
new file mode 100644
index 0000000..bf26f7f
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/LHN-ID.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _LHN_ID_H_
+#define _LHN_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* LHN-ID */
+typedef OCTET_STRING_t LHN_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_LHN_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_LHN_ID;
+asn_struct_free_f LHN_ID_free;
+asn_struct_print_f LHN_ID_print;
+asn_constr_check_f LHN_ID_constraint;
+ber_type_decoder_f LHN_ID_decode_ber;
+der_type_encoder_f LHN_ID_encode_der;
+xer_type_decoder_f LHN_ID_decode_xer;
+xer_type_encoder_f LHN_ID_encode_xer;
+oer_type_decoder_f LHN_ID_decode_oer;
+oer_type_encoder_f LHN_ID_encode_oer;
+per_type_decoder_f LHN_ID_decode_uper;
+per_type_encoder_f LHN_ID_encode_uper;
+per_type_decoder_f LHN_ID_decode_aper;
+per_type_encoder_f LHN_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LHN_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/LPPa-PDU.h b/src/s1ap/asn1c/asnGenFiles/LPPa-PDU.h
new file mode 100644
index 0000000..09ec4c8
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/LPPa-PDU.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _LPPa_PDU_H_
+#define _LPPa_PDU_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* LPPa-PDU */
+typedef OCTET_STRING_t LPPa_PDU_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_LPPa_PDU;
+asn_struct_free_f LPPa_PDU_free;
+asn_struct_print_f LPPa_PDU_print;
+asn_constr_check_f LPPa_PDU_constraint;
+ber_type_decoder_f LPPa_PDU_decode_ber;
+der_type_encoder_f LPPa_PDU_encode_der;
+xer_type_decoder_f LPPa_PDU_decode_xer;
+xer_type_encoder_f LPPa_PDU_encode_xer;
+oer_type_decoder_f LPPa_PDU_decode_oer;
+oer_type_encoder_f LPPa_PDU_encode_oer;
+per_type_decoder_f LPPa_PDU_decode_uper;
+per_type_encoder_f LPPa_PDU_encode_uper;
+per_type_decoder_f LPPa_PDU_decode_aper;
+per_type_encoder_f LPPa_PDU_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LPPa_PDU_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/LTE-M-Indication.h b/src/s1ap/asn1c/asnGenFiles/LTE-M-Indication.h
new file mode 100644
index 0000000..64f0bd7
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/LTE-M-Indication.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _LTE_M_Indication_H_
+#define _LTE_M_Indication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum LTE_M_Indication {
+ LTE_M_Indication_lte_m = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_LTE_M_Indication;
+
+/* LTE-M-Indication */
+typedef long LTE_M_Indication_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_LTE_M_Indication_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_LTE_M_Indication;
+extern const asn_INTEGER_specifics_t asn_SPC_LTE_M_Indication_specs_1;
+asn_struct_free_f LTE_M_Indication_free;
+asn_struct_print_f LTE_M_Indication_print;
+asn_constr_check_f LTE_M_Indication_constraint;
+ber_type_decoder_f LTE_M_Indication_decode_ber;
+der_type_encoder_f LTE_M_Indication_encode_der;
+xer_type_decoder_f LTE_M_Indication_decode_xer;
+xer_type_encoder_f LTE_M_Indication_encode_xer;
+oer_type_decoder_f LTE_M_Indication_decode_oer;
+oer_type_encoder_f LTE_M_Indication_encode_oer;
+per_type_decoder_f LTE_M_Indication_decode_uper;
+per_type_encoder_f LTE_M_Indication_encode_uper;
+per_type_decoder_f LTE_M_Indication_decode_aper;
+per_type_encoder_f LTE_M_Indication_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LTE_M_Indication_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/LastVisitedCell-Item.h b/src/s1ap/asn1c/asnGenFiles/LastVisitedCell-Item.h
new file mode 100644
index 0000000..5d90e20
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/LastVisitedCell-Item.h
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _LastVisitedCell_Item_H_
+#define _LastVisitedCell_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "LastVisitedUTRANCellInformation.h"
+#include "LastVisitedNGRANCellInformation.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum LastVisitedCell_Item_PR {
+ LastVisitedCell_Item_PR_NOTHING, /* No components present */
+ LastVisitedCell_Item_PR_e_UTRAN_Cell,
+ LastVisitedCell_Item_PR_uTRAN_Cell,
+ LastVisitedCell_Item_PR_gERAN_Cell,
+ /* Extensions may appear below */
+ LastVisitedCell_Item_PR_nG_RAN_Cell
+} LastVisitedCell_Item_PR;
+
+/* Forward declarations */
+struct LastVisitedEUTRANCellInformation;
+struct LastVisitedGERANCellInformation;
+
+/* LastVisitedCell-Item */
+typedef struct LastVisitedCell_Item {
+ LastVisitedCell_Item_PR present;
+ union LastVisitedCell_Item_u {
+ struct LastVisitedEUTRANCellInformation *e_UTRAN_Cell;
+ LastVisitedUTRANCellInformation_t uTRAN_Cell;
+ struct LastVisitedGERANCellInformation *gERAN_Cell;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ LastVisitedNGRANCellInformation_t nG_RAN_Cell;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} LastVisitedCell_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_LastVisitedCell_Item;
+extern asn_CHOICE_specifics_t asn_SPC_LastVisitedCell_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_LastVisitedCell_Item_1[4];
+extern asn_per_constraints_t asn_PER_type_LastVisitedCell_Item_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LastVisitedCell_Item_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/LastVisitedEUTRANCellInformation.h b/src/s1ap/asn1c/asnGenFiles/LastVisitedEUTRANCellInformation.h
new file mode 100644
index 0000000..6c6804b
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/LastVisitedEUTRANCellInformation.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _LastVisitedEUTRANCellInformation_H_
+#define _LastVisitedEUTRANCellInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "EUTRAN-CGI.h"
+#include "CellType.h"
+#include "Time-UE-StayedInCell.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* LastVisitedEUTRANCellInformation */
+typedef struct LastVisitedEUTRANCellInformation {
+ EUTRAN_CGI_t global_Cell_ID;
+ CellType_t cellType;
+ Time_UE_StayedInCell_t time_UE_StayedInCell;
+ 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;
+} LastVisitedEUTRANCellInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_LastVisitedEUTRANCellInformation;
+extern asn_SEQUENCE_specifics_t asn_SPC_LastVisitedEUTRANCellInformation_specs_1;
+extern asn_TYPE_member_t asn_MBR_LastVisitedEUTRANCellInformation_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LastVisitedEUTRANCellInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/LastVisitedGERANCellInformation.h b/src/s1ap/asn1c/asnGenFiles/LastVisitedGERANCellInformation.h
new file mode 100644
index 0000000..c4068f1
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/LastVisitedGERANCellInformation.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _LastVisitedGERANCellInformation_H_
+#define _LastVisitedGERANCellInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NULL.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum LastVisitedGERANCellInformation_PR {
+ LastVisitedGERANCellInformation_PR_NOTHING, /* No components present */
+ LastVisitedGERANCellInformation_PR_undefined
+ /* Extensions may appear below */
+
+} LastVisitedGERANCellInformation_PR;
+
+/* LastVisitedGERANCellInformation */
+typedef struct LastVisitedGERANCellInformation {
+ LastVisitedGERANCellInformation_PR present;
+ union LastVisitedGERANCellInformation_u {
+ NULL_t undefined;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} LastVisitedGERANCellInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_LastVisitedGERANCellInformation;
+extern asn_CHOICE_specifics_t asn_SPC_LastVisitedGERANCellInformation_specs_1;
+extern asn_TYPE_member_t asn_MBR_LastVisitedGERANCellInformation_1[1];
+extern asn_per_constraints_t asn_PER_type_LastVisitedGERANCellInformation_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LastVisitedGERANCellInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/LastVisitedNGRANCellInformation.h b/src/s1ap/asn1c/asnGenFiles/LastVisitedNGRANCellInformation.h
new file mode 100644
index 0000000..be12df4
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/LastVisitedNGRANCellInformation.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _LastVisitedNGRANCellInformation_H_
+#define _LastVisitedNGRANCellInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* LastVisitedNGRANCellInformation */
+typedef OCTET_STRING_t LastVisitedNGRANCellInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_LastVisitedNGRANCellInformation;
+asn_struct_free_f LastVisitedNGRANCellInformation_free;
+asn_struct_print_f LastVisitedNGRANCellInformation_print;
+asn_constr_check_f LastVisitedNGRANCellInformation_constraint;
+ber_type_decoder_f LastVisitedNGRANCellInformation_decode_ber;
+der_type_encoder_f LastVisitedNGRANCellInformation_encode_der;
+xer_type_decoder_f LastVisitedNGRANCellInformation_decode_xer;
+xer_type_encoder_f LastVisitedNGRANCellInformation_encode_xer;
+oer_type_decoder_f LastVisitedNGRANCellInformation_decode_oer;
+oer_type_encoder_f LastVisitedNGRANCellInformation_encode_oer;
+per_type_decoder_f LastVisitedNGRANCellInformation_decode_uper;
+per_type_encoder_f LastVisitedNGRANCellInformation_encode_uper;
+per_type_decoder_f LastVisitedNGRANCellInformation_decode_aper;
+per_type_encoder_f LastVisitedNGRANCellInformation_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LastVisitedNGRANCellInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/LastVisitedUTRANCellInformation.h b/src/s1ap/asn1c/asnGenFiles/LastVisitedUTRANCellInformation.h
new file mode 100644
index 0000000..549cc3c
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/LastVisitedUTRANCellInformation.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _LastVisitedUTRANCellInformation_H_
+#define _LastVisitedUTRANCellInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* LastVisitedUTRANCellInformation */
+typedef OCTET_STRING_t LastVisitedUTRANCellInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_LastVisitedUTRANCellInformation;
+asn_struct_free_f LastVisitedUTRANCellInformation_free;
+asn_struct_print_f LastVisitedUTRANCellInformation_print;
+asn_constr_check_f LastVisitedUTRANCellInformation_constraint;
+ber_type_decoder_f LastVisitedUTRANCellInformation_decode_ber;
+der_type_encoder_f LastVisitedUTRANCellInformation_encode_der;
+xer_type_decoder_f LastVisitedUTRANCellInformation_decode_xer;
+xer_type_encoder_f LastVisitedUTRANCellInformation_encode_xer;
+oer_type_decoder_f LastVisitedUTRANCellInformation_decode_oer;
+oer_type_encoder_f LastVisitedUTRANCellInformation_encode_oer;
+per_type_decoder_f LastVisitedUTRANCellInformation_decode_uper;
+per_type_encoder_f LastVisitedUTRANCellInformation_encode_uper;
+per_type_decoder_f LastVisitedUTRANCellInformation_decode_aper;
+per_type_encoder_f LastVisitedUTRANCellInformation_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LastVisitedUTRANCellInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Links-to-log.h b/src/s1ap/asn1c/asnGenFiles/Links-to-log.h
new file mode 100644
index 0000000..ef19965
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Links-to-log.h
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Links_to_log_H_
+#define _Links_to_log_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Links_to_log {
+ Links_to_log_uplink = 0,
+ Links_to_log_downlink = 1,
+ Links_to_log_both_uplink_and_downlink = 2
+ /*
+ * Enumeration is extensible
+ */
+} e_Links_to_log;
+
+/* Links-to-log */
+typedef long Links_to_log_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Links_to_log_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Links_to_log;
+extern const asn_INTEGER_specifics_t asn_SPC_Links_to_log_specs_1;
+asn_struct_free_f Links_to_log_free;
+asn_struct_print_f Links_to_log_print;
+asn_constr_check_f Links_to_log_constraint;
+ber_type_decoder_f Links_to_log_decode_ber;
+der_type_encoder_f Links_to_log_encode_der;
+xer_type_decoder_f Links_to_log_decode_xer;
+xer_type_encoder_f Links_to_log_encode_xer;
+oer_type_decoder_f Links_to_log_decode_oer;
+oer_type_encoder_f Links_to_log_encode_oer;
+per_type_decoder_f Links_to_log_decode_uper;
+per_type_encoder_f Links_to_log_encode_uper;
+per_type_decoder_f Links_to_log_decode_aper;
+per_type_encoder_f Links_to_log_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Links_to_log_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ListeningSubframePattern.h b/src/s1ap/asn1c/asnGenFiles/ListeningSubframePattern.h
new file mode 100644
index 0000000..bde5142
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ListeningSubframePattern.h
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ListeningSubframePattern_H_
+#define _ListeningSubframePattern_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ListeningSubframePattern__pattern_period {
+ ListeningSubframePattern__pattern_period_ms1280 = 0,
+ ListeningSubframePattern__pattern_period_ms2560 = 1,
+ ListeningSubframePattern__pattern_period_ms5120 = 2,
+ ListeningSubframePattern__pattern_period_ms10240 = 3
+ /*
+ * Enumeration is extensible
+ */
+} e_ListeningSubframePattern__pattern_period;
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ListeningSubframePattern */
+typedef struct ListeningSubframePattern {
+ long pattern_period;
+ long pattern_offset;
+ 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;
+} ListeningSubframePattern_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_pattern_period_2; // (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_ListeningSubframePattern;
+extern asn_SEQUENCE_specifics_t asn_SPC_ListeningSubframePattern_specs_1;
+extern asn_TYPE_member_t asn_MBR_ListeningSubframePattern_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ListeningSubframePattern_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/LocationReport.h b/src/s1ap/asn1c/asnGenFiles/LocationReport.h
new file mode 100644
index 0000000..c551295
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/LocationReport.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _LocationReport_H_
+#define _LocationReport_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* LocationReport */
+typedef struct LocationReport {
+ ProtocolIE_Container_129P60_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} LocationReport_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_LocationReport;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LocationReport_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/LocationReportingControl.h b/src/s1ap/asn1c/asnGenFiles/LocationReportingControl.h
new file mode 100644
index 0000000..aa65ea3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/LocationReportingControl.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _LocationReportingControl_H_
+#define _LocationReportingControl_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* LocationReportingControl */
+typedef struct LocationReportingControl {
+ ProtocolIE_Container_129P58_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} LocationReportingControl_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_LocationReportingControl;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LocationReportingControl_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/LocationReportingFailureIndication.h b/src/s1ap/asn1c/asnGenFiles/LocationReportingFailureIndication.h
new file mode 100644
index 0000000..83eaf9e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/LocationReportingFailureIndication.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _LocationReportingFailureIndication_H_
+#define _LocationReportingFailureIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* LocationReportingFailureIndication */
+typedef struct LocationReportingFailureIndication {
+ ProtocolIE_Container_129P59_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} LocationReportingFailureIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_LocationReportingFailureIndication;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LocationReportingFailureIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/LoggedMBSFNMDT.h b/src/s1ap/asn1c/asnGenFiles/LoggedMBSFNMDT.h
new file mode 100644
index 0000000..bfaaf53
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/LoggedMBSFNMDT.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _LoggedMBSFNMDT_H_
+#define _LoggedMBSFNMDT_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "LoggingInterval.h"
+#include "LoggingDuration.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct MBSFN_ResultToLog;
+struct ProtocolExtensionContainer;
+
+/* LoggedMBSFNMDT */
+typedef struct LoggedMBSFNMDT {
+ LoggingInterval_t loggingInterval;
+ LoggingDuration_t loggingDuration;
+ struct MBSFN_ResultToLog *mBSFN_ResultToLog; /* 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;
+} LoggedMBSFNMDT_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_LoggedMBSFNMDT;
+extern asn_SEQUENCE_specifics_t asn_SPC_LoggedMBSFNMDT_specs_1;
+extern asn_TYPE_member_t asn_MBR_LoggedMBSFNMDT_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LoggedMBSFNMDT_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/LoggedMDT.h b/src/s1ap/asn1c/asnGenFiles/LoggedMDT.h
new file mode 100644
index 0000000..d65d6c5
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/LoggedMDT.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _LoggedMDT_H_
+#define _LoggedMDT_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "LoggingInterval.h"
+#include "LoggingDuration.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* LoggedMDT */
+typedef struct LoggedMDT {
+ LoggingInterval_t loggingInterval;
+ LoggingDuration_t loggingDuration;
+ 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;
+} LoggedMDT_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_LoggedMDT;
+extern asn_SEQUENCE_specifics_t asn_SPC_LoggedMDT_specs_1;
+extern asn_TYPE_member_t asn_MBR_LoggedMDT_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LoggedMDT_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/LoggingDuration.h b/src/s1ap/asn1c/asnGenFiles/LoggingDuration.h
new file mode 100644
index 0000000..c9ed65e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/LoggingDuration.h
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _LoggingDuration_H_
+#define _LoggingDuration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum LoggingDuration {
+ LoggingDuration_m10 = 0,
+ LoggingDuration_m20 = 1,
+ LoggingDuration_m40 = 2,
+ LoggingDuration_m60 = 3,
+ LoggingDuration_m90 = 4,
+ LoggingDuration_m120 = 5
+} e_LoggingDuration;
+
+/* LoggingDuration */
+typedef long LoggingDuration_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_LoggingDuration_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_LoggingDuration;
+extern const asn_INTEGER_specifics_t asn_SPC_LoggingDuration_specs_1;
+asn_struct_free_f LoggingDuration_free;
+asn_struct_print_f LoggingDuration_print;
+asn_constr_check_f LoggingDuration_constraint;
+ber_type_decoder_f LoggingDuration_decode_ber;
+der_type_encoder_f LoggingDuration_encode_der;
+xer_type_decoder_f LoggingDuration_decode_xer;
+xer_type_encoder_f LoggingDuration_encode_xer;
+oer_type_decoder_f LoggingDuration_decode_oer;
+oer_type_encoder_f LoggingDuration_encode_oer;
+per_type_decoder_f LoggingDuration_decode_uper;
+per_type_encoder_f LoggingDuration_encode_uper;
+per_type_decoder_f LoggingDuration_decode_aper;
+per_type_encoder_f LoggingDuration_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LoggingDuration_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/LoggingInterval.h b/src/s1ap/asn1c/asnGenFiles/LoggingInterval.h
new file mode 100644
index 0000000..e1f5149
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/LoggingInterval.h
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _LoggingInterval_H_
+#define _LoggingInterval_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum LoggingInterval {
+ LoggingInterval_ms128 = 0,
+ LoggingInterval_ms256 = 1,
+ LoggingInterval_ms512 = 2,
+ LoggingInterval_ms1024 = 3,
+ LoggingInterval_ms2048 = 4,
+ LoggingInterval_ms3072 = 5,
+ LoggingInterval_ms4096 = 6,
+ LoggingInterval_ms6144 = 7
+} e_LoggingInterval;
+
+/* LoggingInterval */
+typedef long LoggingInterval_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_LoggingInterval_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_LoggingInterval;
+extern const asn_INTEGER_specifics_t asn_SPC_LoggingInterval_specs_1;
+asn_struct_free_f LoggingInterval_free;
+asn_struct_print_f LoggingInterval_print;
+asn_constr_check_f LoggingInterval_constraint;
+ber_type_decoder_f LoggingInterval_decode_ber;
+der_type_encoder_f LoggingInterval_encode_der;
+xer_type_decoder_f LoggingInterval_decode_xer;
+xer_type_encoder_f LoggingInterval_encode_xer;
+oer_type_decoder_f LoggingInterval_decode_oer;
+oer_type_encoder_f LoggingInterval_encode_oer;
+per_type_decoder_f LoggingInterval_decode_uper;
+per_type_encoder_f LoggingInterval_encode_uper;
+per_type_decoder_f LoggingInterval_decode_aper;
+per_type_encoder_f LoggingInterval_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LoggingInterval_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/M-TMSI.h b/src/s1ap/asn1c/asnGenFiles/M-TMSI.h
new file mode 100644
index 0000000..c4e318f
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/M-TMSI.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _M_TMSI_H_
+#define _M_TMSI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* M-TMSI */
+typedef OCTET_STRING_t M_TMSI_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_M_TMSI_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_M_TMSI;
+asn_struct_free_f M_TMSI_free;
+asn_struct_print_f M_TMSI_print;
+asn_constr_check_f M_TMSI_constraint;
+ber_type_decoder_f M_TMSI_decode_ber;
+der_type_encoder_f M_TMSI_encode_der;
+xer_type_decoder_f M_TMSI_decode_xer;
+xer_type_encoder_f M_TMSI_encode_xer;
+oer_type_decoder_f M_TMSI_decode_oer;
+oer_type_encoder_f M_TMSI_encode_oer;
+per_type_decoder_f M_TMSI_decode_uper;
+per_type_encoder_f M_TMSI_encode_uper;
+per_type_decoder_f M_TMSI_decode_aper;
+per_type_encoder_f M_TMSI_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M_TMSI_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/M1PeriodicReporting.h b/src/s1ap/asn1c/asnGenFiles/M1PeriodicReporting.h
new file mode 100644
index 0000000..d7fa354
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/M1PeriodicReporting.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _M1PeriodicReporting_H_
+#define _M1PeriodicReporting_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ReportIntervalMDT.h"
+#include "ReportAmountMDT.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* M1PeriodicReporting */
+typedef struct M1PeriodicReporting {
+ ReportIntervalMDT_t reportInterval;
+ ReportAmountMDT_t reportAmount;
+ 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;
+} M1PeriodicReporting_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_M1PeriodicReporting;
+extern asn_SEQUENCE_specifics_t asn_SPC_M1PeriodicReporting_specs_1;
+extern asn_TYPE_member_t asn_MBR_M1PeriodicReporting_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M1PeriodicReporting_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/M1ReportingTrigger.h b/src/s1ap/asn1c/asnGenFiles/M1ReportingTrigger.h
new file mode 100644
index 0000000..ecf7d87
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/M1ReportingTrigger.h
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _M1ReportingTrigger_H_
+#define _M1ReportingTrigger_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum M1ReportingTrigger {
+ M1ReportingTrigger_periodic = 0,
+ M1ReportingTrigger_a2eventtriggered = 1,
+ /*
+ * Enumeration is extensible
+ */
+ M1ReportingTrigger_a2eventtriggered_periodic = 2
+} e_M1ReportingTrigger;
+
+/* M1ReportingTrigger */
+typedef long M1ReportingTrigger_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_M1ReportingTrigger_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_M1ReportingTrigger;
+extern const asn_INTEGER_specifics_t asn_SPC_M1ReportingTrigger_specs_1;
+asn_struct_free_f M1ReportingTrigger_free;
+asn_struct_print_f M1ReportingTrigger_print;
+asn_constr_check_f M1ReportingTrigger_constraint;
+ber_type_decoder_f M1ReportingTrigger_decode_ber;
+der_type_encoder_f M1ReportingTrigger_encode_der;
+xer_type_decoder_f M1ReportingTrigger_decode_xer;
+xer_type_encoder_f M1ReportingTrigger_encode_xer;
+oer_type_decoder_f M1ReportingTrigger_decode_oer;
+oer_type_encoder_f M1ReportingTrigger_encode_oer;
+per_type_decoder_f M1ReportingTrigger_decode_uper;
+per_type_encoder_f M1ReportingTrigger_encode_uper;
+per_type_decoder_f M1ReportingTrigger_decode_aper;
+per_type_encoder_f M1ReportingTrigger_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M1ReportingTrigger_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/M1ThresholdEventA2.h b/src/s1ap/asn1c/asnGenFiles/M1ThresholdEventA2.h
new file mode 100644
index 0000000..765cb15
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/M1ThresholdEventA2.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _M1ThresholdEventA2_H_
+#define _M1ThresholdEventA2_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "MeasurementThresholdA2.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* M1ThresholdEventA2 */
+typedef struct M1ThresholdEventA2 {
+ MeasurementThresholdA2_t measurementThreshold;
+ 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;
+} M1ThresholdEventA2_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_M1ThresholdEventA2;
+extern asn_SEQUENCE_specifics_t asn_SPC_M1ThresholdEventA2_specs_1;
+extern asn_TYPE_member_t asn_MBR_M1ThresholdEventA2_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M1ThresholdEventA2_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/M3Configuration.h b/src/s1ap/asn1c/asnGenFiles/M3Configuration.h
new file mode 100644
index 0000000..6cd43ab
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/M3Configuration.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _M3Configuration_H_
+#define _M3Configuration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "M3period.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* M3Configuration */
+typedef struct M3Configuration {
+ M3period_t m3period;
+ 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;
+} M3Configuration_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_M3Configuration;
+extern asn_SEQUENCE_specifics_t asn_SPC_M3Configuration_specs_1;
+extern asn_TYPE_member_t asn_MBR_M3Configuration_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M3Configuration_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/M3period.h b/src/s1ap/asn1c/asnGenFiles/M3period.h
new file mode 100644
index 0000000..3dd18cc
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/M3period.h
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _M3period_H_
+#define _M3period_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum M3period {
+ M3period_ms100 = 0,
+ M3period_ms1000 = 1,
+ M3period_ms10000 = 2,
+ /*
+ * Enumeration is extensible
+ */
+ M3period_ms1024 = 3,
+ M3period_ms1280 = 4,
+ M3period_ms2048 = 5,
+ M3period_ms2560 = 6,
+ M3period_ms5120 = 7,
+ M3period_ms10240 = 8,
+ M3period_min1 = 9
+} e_M3period;
+
+/* M3period */
+typedef long M3period_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_M3period_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_M3period;
+extern const asn_INTEGER_specifics_t asn_SPC_M3period_specs_1;
+asn_struct_free_f M3period_free;
+asn_struct_print_f M3period_print;
+asn_constr_check_f M3period_constraint;
+ber_type_decoder_f M3period_decode_ber;
+der_type_encoder_f M3period_encode_der;
+xer_type_decoder_f M3period_decode_xer;
+xer_type_encoder_f M3period_encode_xer;
+oer_type_decoder_f M3period_decode_oer;
+oer_type_encoder_f M3period_encode_oer;
+per_type_decoder_f M3period_decode_uper;
+per_type_encoder_f M3period_encode_uper;
+per_type_decoder_f M3period_decode_aper;
+per_type_encoder_f M3period_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M3period_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/M4Configuration.h b/src/s1ap/asn1c/asnGenFiles/M4Configuration.h
new file mode 100644
index 0000000..e4fc32e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/M4Configuration.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _M4Configuration_H_
+#define _M4Configuration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "M4period.h"
+#include "Links-to-log.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* M4Configuration */
+typedef struct M4Configuration {
+ M4period_t m4period;
+ Links_to_log_t m4_links_to_log;
+ 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;
+} M4Configuration_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_M4Configuration;
+extern asn_SEQUENCE_specifics_t asn_SPC_M4Configuration_specs_1;
+extern asn_TYPE_member_t asn_MBR_M4Configuration_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M4Configuration_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/M4period.h b/src/s1ap/asn1c/asnGenFiles/M4period.h
new file mode 100644
index 0000000..98d8fa6
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/M4period.h
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _M4period_H_
+#define _M4period_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum M4period {
+ M4period_ms1024 = 0,
+ M4period_ms2048 = 1,
+ M4period_ms5120 = 2,
+ M4period_ms10240 = 3,
+ M4period_min1 = 4
+ /*
+ * Enumeration is extensible
+ */
+} e_M4period;
+
+/* M4period */
+typedef long M4period_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_M4period_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_M4period;
+extern const asn_INTEGER_specifics_t asn_SPC_M4period_specs_1;
+asn_struct_free_f M4period_free;
+asn_struct_print_f M4period_print;
+asn_constr_check_f M4period_constraint;
+ber_type_decoder_f M4period_decode_ber;
+der_type_encoder_f M4period_encode_der;
+xer_type_decoder_f M4period_decode_xer;
+xer_type_encoder_f M4period_encode_xer;
+oer_type_decoder_f M4period_decode_oer;
+oer_type_encoder_f M4period_encode_oer;
+per_type_decoder_f M4period_decode_uper;
+per_type_encoder_f M4period_encode_uper;
+per_type_decoder_f M4period_decode_aper;
+per_type_encoder_f M4period_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M4period_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/M5Configuration.h b/src/s1ap/asn1c/asnGenFiles/M5Configuration.h
new file mode 100644
index 0000000..2b916d0
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/M5Configuration.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _M5Configuration_H_
+#define _M5Configuration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "M5period.h"
+#include "Links-to-log.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* M5Configuration */
+typedef struct M5Configuration {
+ M5period_t m5period;
+ Links_to_log_t m5_links_to_log;
+ 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;
+} M5Configuration_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_M5Configuration;
+extern asn_SEQUENCE_specifics_t asn_SPC_M5Configuration_specs_1;
+extern asn_TYPE_member_t asn_MBR_M5Configuration_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M5Configuration_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/M5period.h b/src/s1ap/asn1c/asnGenFiles/M5period.h
new file mode 100644
index 0000000..eb18fbf
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/M5period.h
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _M5period_H_
+#define _M5period_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum M5period {
+ M5period_ms1024 = 0,
+ M5period_ms2048 = 1,
+ M5period_ms5120 = 2,
+ M5period_ms10240 = 3,
+ M5period_min1 = 4
+ /*
+ * Enumeration is extensible
+ */
+} e_M5period;
+
+/* M5period */
+typedef long M5period_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_M5period_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_M5period;
+extern const asn_INTEGER_specifics_t asn_SPC_M5period_specs_1;
+asn_struct_free_f M5period_free;
+asn_struct_print_f M5period_print;
+asn_constr_check_f M5period_constraint;
+ber_type_decoder_f M5period_decode_ber;
+der_type_encoder_f M5period_encode_der;
+xer_type_decoder_f M5period_decode_xer;
+xer_type_encoder_f M5period_encode_xer;
+oer_type_decoder_f M5period_decode_oer;
+oer_type_encoder_f M5period_encode_oer;
+per_type_decoder_f M5period_decode_uper;
+per_type_encoder_f M5period_encode_uper;
+per_type_decoder_f M5period_decode_aper;
+per_type_encoder_f M5period_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M5period_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/M6Configuration.h b/src/s1ap/asn1c/asnGenFiles/M6Configuration.h
new file mode 100644
index 0000000..86bbfd6
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/M6Configuration.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _M6Configuration_H_
+#define _M6Configuration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "M6report-Interval.h"
+#include "M6delay-threshold.h"
+#include "Links-to-log.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* M6Configuration */
+typedef struct M6Configuration {
+ M6report_Interval_t m6report_Interval;
+ M6delay_threshold_t *m6delay_threshold; /* OPTIONAL */
+ Links_to_log_t m6_links_to_log;
+ 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;
+} M6Configuration_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_M6Configuration;
+extern asn_SEQUENCE_specifics_t asn_SPC_M6Configuration_specs_1;
+extern asn_TYPE_member_t asn_MBR_M6Configuration_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M6Configuration_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/M6delay-threshold.h b/src/s1ap/asn1c/asnGenFiles/M6delay-threshold.h
new file mode 100644
index 0000000..7caa560
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/M6delay-threshold.h
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _M6delay_threshold_H_
+#define _M6delay_threshold_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum M6delay_threshold {
+ M6delay_threshold_ms30 = 0,
+ M6delay_threshold_ms40 = 1,
+ M6delay_threshold_ms50 = 2,
+ M6delay_threshold_ms60 = 3,
+ M6delay_threshold_ms70 = 4,
+ M6delay_threshold_ms80 = 5,
+ M6delay_threshold_ms90 = 6,
+ M6delay_threshold_ms100 = 7,
+ M6delay_threshold_ms150 = 8,
+ M6delay_threshold_ms300 = 9,
+ M6delay_threshold_ms500 = 10,
+ M6delay_threshold_ms750 = 11
+ /*
+ * Enumeration is extensible
+ */
+} e_M6delay_threshold;
+
+/* M6delay-threshold */
+typedef long M6delay_threshold_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_M6delay_threshold_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_M6delay_threshold;
+extern const asn_INTEGER_specifics_t asn_SPC_M6delay_threshold_specs_1;
+asn_struct_free_f M6delay_threshold_free;
+asn_struct_print_f M6delay_threshold_print;
+asn_constr_check_f M6delay_threshold_constraint;
+ber_type_decoder_f M6delay_threshold_decode_ber;
+der_type_encoder_f M6delay_threshold_encode_der;
+xer_type_decoder_f M6delay_threshold_decode_xer;
+xer_type_encoder_f M6delay_threshold_encode_xer;
+oer_type_decoder_f M6delay_threshold_decode_oer;
+oer_type_encoder_f M6delay_threshold_encode_oer;
+per_type_decoder_f M6delay_threshold_decode_uper;
+per_type_encoder_f M6delay_threshold_encode_uper;
+per_type_decoder_f M6delay_threshold_decode_aper;
+per_type_encoder_f M6delay_threshold_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M6delay_threshold_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/M6report-Interval.h b/src/s1ap/asn1c/asnGenFiles/M6report-Interval.h
new file mode 100644
index 0000000..af6153e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/M6report-Interval.h
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _M6report_Interval_H_
+#define _M6report_Interval_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum M6report_Interval {
+ M6report_Interval_ms1024 = 0,
+ M6report_Interval_ms2048 = 1,
+ M6report_Interval_ms5120 = 2,
+ M6report_Interval_ms10240 = 3
+ /*
+ * Enumeration is extensible
+ */
+} e_M6report_Interval;
+
+/* M6report-Interval */
+typedef long M6report_Interval_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_M6report_Interval_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_M6report_Interval;
+extern const asn_INTEGER_specifics_t asn_SPC_M6report_Interval_specs_1;
+asn_struct_free_f M6report_Interval_free;
+asn_struct_print_f M6report_Interval_print;
+asn_constr_check_f M6report_Interval_constraint;
+ber_type_decoder_f M6report_Interval_decode_ber;
+der_type_encoder_f M6report_Interval_encode_der;
+xer_type_decoder_f M6report_Interval_decode_xer;
+xer_type_encoder_f M6report_Interval_encode_xer;
+oer_type_decoder_f M6report_Interval_decode_oer;
+oer_type_encoder_f M6report_Interval_encode_oer;
+per_type_decoder_f M6report_Interval_decode_uper;
+per_type_encoder_f M6report_Interval_encode_uper;
+per_type_decoder_f M6report_Interval_decode_aper;
+per_type_encoder_f M6report_Interval_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M6report_Interval_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/M7Configuration.h b/src/s1ap/asn1c/asnGenFiles/M7Configuration.h
new file mode 100644
index 0000000..96aaef2
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/M7Configuration.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _M7Configuration_H_
+#define _M7Configuration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "M7period.h"
+#include "Links-to-log.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* M7Configuration */
+typedef struct M7Configuration {
+ M7period_t m7period;
+ Links_to_log_t m7_links_to_log;
+ 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;
+} M7Configuration_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_M7Configuration;
+extern asn_SEQUENCE_specifics_t asn_SPC_M7Configuration_specs_1;
+extern asn_TYPE_member_t asn_MBR_M7Configuration_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M7Configuration_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/M7period.h b/src/s1ap/asn1c/asnGenFiles/M7period.h
new file mode 100644
index 0000000..f868ba3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/M7period.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _M7period_H_
+#define _M7period_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* M7period */
+typedef long M7period_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_M7period_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_M7period;
+asn_struct_free_f M7period_free;
+asn_struct_print_f M7period_print;
+asn_constr_check_f M7period_constraint;
+ber_type_decoder_f M7period_decode_ber;
+der_type_encoder_f M7period_encode_der;
+xer_type_decoder_f M7period_decode_xer;
+xer_type_encoder_f M7period_encode_xer;
+oer_type_decoder_f M7period_decode_oer;
+oer_type_encoder_f M7period_encode_oer;
+per_type_decoder_f M7period_decode_uper;
+per_type_encoder_f M7period_encode_uper;
+per_type_decoder_f M7period_decode_aper;
+per_type_encoder_f M7period_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _M7period_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MBSFN-ResultToLog.h b/src/s1ap/asn1c/asnGenFiles/MBSFN-ResultToLog.h
new file mode 100644
index 0000000..ebf87ce
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MBSFN-ResultToLog.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MBSFN_ResultToLog_H_
+#define _MBSFN_ResultToLog_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct MBSFN_ResultToLogInfo;
+
+/* MBSFN-ResultToLog */
+typedef struct MBSFN_ResultToLog {
+ A_SEQUENCE_OF(struct MBSFN_ResultToLogInfo) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} MBSFN_ResultToLog_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MBSFN_ResultToLog;
+extern asn_SET_OF_specifics_t asn_SPC_MBSFN_ResultToLog_specs_1;
+extern asn_TYPE_member_t asn_MBR_MBSFN_ResultToLog_1[1];
+extern asn_per_constraints_t asn_PER_type_MBSFN_ResultToLog_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MBSFN_ResultToLog_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MBSFN-ResultToLogInfo.h b/src/s1ap/asn1c/asnGenFiles/MBSFN-ResultToLogInfo.h
new file mode 100644
index 0000000..a783c3d
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MBSFN-ResultToLogInfo.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MBSFN_ResultToLogInfo_H_
+#define _MBSFN_ResultToLogInfo_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include "EARFCN.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* MBSFN-ResultToLogInfo */
+typedef struct MBSFN_ResultToLogInfo {
+ long *mBSFN_AreaId; /* OPTIONAL */
+ EARFCN_t carrierFreq;
+ 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;
+} MBSFN_ResultToLogInfo_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MBSFN_ResultToLogInfo;
+extern asn_SEQUENCE_specifics_t asn_SPC_MBSFN_ResultToLogInfo_specs_1;
+extern asn_TYPE_member_t asn_MBR_MBSFN_ResultToLogInfo_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MBSFN_ResultToLogInfo_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MDT-Activation.h b/src/s1ap/asn1c/asnGenFiles/MDT-Activation.h
new file mode 100644
index 0000000..9c39d76
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MDT-Activation.h
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MDT_Activation_H_
+#define _MDT_Activation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum MDT_Activation {
+ MDT_Activation_immediate_MDT_only = 0,
+ MDT_Activation_immediate_MDT_and_Trace = 1,
+ MDT_Activation_logged_MDT_only = 2,
+ /*
+ * Enumeration is extensible
+ */
+ MDT_Activation_logged_MBSFN_MDT = 3
+} e_MDT_Activation;
+
+/* MDT-Activation */
+typedef long MDT_Activation_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_MDT_Activation_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_MDT_Activation;
+extern const asn_INTEGER_specifics_t asn_SPC_MDT_Activation_specs_1;
+asn_struct_free_f MDT_Activation_free;
+asn_struct_print_f MDT_Activation_print;
+asn_constr_check_f MDT_Activation_constraint;
+ber_type_decoder_f MDT_Activation_decode_ber;
+der_type_encoder_f MDT_Activation_encode_der;
+xer_type_decoder_f MDT_Activation_decode_xer;
+xer_type_encoder_f MDT_Activation_encode_xer;
+oer_type_decoder_f MDT_Activation_decode_oer;
+oer_type_encoder_f MDT_Activation_encode_oer;
+per_type_decoder_f MDT_Activation_decode_uper;
+per_type_encoder_f MDT_Activation_encode_uper;
+per_type_decoder_f MDT_Activation_decode_aper;
+per_type_encoder_f MDT_Activation_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MDT_Activation_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MDT-Configuration.h b/src/s1ap/asn1c/asnGenFiles/MDT-Configuration.h
new file mode 100644
index 0000000..fd042ac
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MDT-Configuration.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MDT_Configuration_H_
+#define _MDT_Configuration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "MDT-Activation.h"
+#include "AreaScopeOfMDT.h"
+#include "MDTMode.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* MDT-Configuration */
+typedef struct MDT_Configuration {
+ MDT_Activation_t mdt_Activation;
+ AreaScopeOfMDT_t areaScopeOfMDT;
+ MDTMode_t mDTMode;
+ 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;
+} MDT_Configuration_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MDT_Configuration;
+extern asn_SEQUENCE_specifics_t asn_SPC_MDT_Configuration_specs_1;
+extern asn_TYPE_member_t asn_MBR_MDT_Configuration_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MDT_Configuration_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MDT-Location-Info.h b/src/s1ap/asn1c/asnGenFiles/MDT-Location-Info.h
new file mode 100644
index 0000000..4a01749
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MDT-Location-Info.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MDT_Location_Info_H_
+#define _MDT_Location_Info_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MDT-Location-Info */
+typedef BIT_STRING_t MDT_Location_Info_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_MDT_Location_Info_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_MDT_Location_Info;
+asn_struct_free_f MDT_Location_Info_free;
+asn_struct_print_f MDT_Location_Info_print;
+asn_constr_check_f MDT_Location_Info_constraint;
+ber_type_decoder_f MDT_Location_Info_decode_ber;
+der_type_encoder_f MDT_Location_Info_encode_der;
+xer_type_decoder_f MDT_Location_Info_decode_xer;
+xer_type_encoder_f MDT_Location_Info_encode_xer;
+oer_type_decoder_f MDT_Location_Info_decode_oer;
+oer_type_encoder_f MDT_Location_Info_encode_oer;
+per_type_decoder_f MDT_Location_Info_decode_uper;
+per_type_encoder_f MDT_Location_Info_encode_uper;
+per_type_decoder_f MDT_Location_Info_decode_aper;
+per_type_encoder_f MDT_Location_Info_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MDT_Location_Info_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MDTMode-Extension.h b/src/s1ap/asn1c/asnGenFiles/MDTMode-Extension.h
new file mode 100644
index 0000000..3dd700e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MDTMode-Extension.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MDTMode_Extension_H_
+#define _MDTMode_Extension_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-SingleContainer.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MDTMode-Extension */
+typedef ProtocolIE_SingleContainer_132P4_t MDTMode_Extension_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MDTMode_Extension;
+asn_struct_free_f MDTMode_Extension_free;
+asn_struct_print_f MDTMode_Extension_print;
+asn_constr_check_f MDTMode_Extension_constraint;
+ber_type_decoder_f MDTMode_Extension_decode_ber;
+der_type_encoder_f MDTMode_Extension_encode_der;
+xer_type_decoder_f MDTMode_Extension_decode_xer;
+xer_type_encoder_f MDTMode_Extension_encode_xer;
+oer_type_decoder_f MDTMode_Extension_decode_oer;
+oer_type_encoder_f MDTMode_Extension_encode_oer;
+per_type_decoder_f MDTMode_Extension_decode_uper;
+per_type_encoder_f MDTMode_Extension_encode_uper;
+per_type_decoder_f MDTMode_Extension_decode_aper;
+per_type_encoder_f MDTMode_Extension_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MDTMode_Extension_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MDTMode.h b/src/s1ap/asn1c/asnGenFiles/MDTMode.h
new file mode 100644
index 0000000..8594543
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MDTMode.h
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MDTMode_H_
+#define _MDTMode_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum MDTMode_PR {
+ MDTMode_PR_NOTHING, /* No components present */
+ MDTMode_PR_immediateMDT,
+ MDTMode_PR_loggedMDT,
+ /* Extensions may appear below */
+ MDTMode_PR_mDTMode_Extension
+} MDTMode_PR;
+
+/* Forward declarations */
+struct ImmediateMDT;
+struct LoggedMDT;
+struct MDTMode_Extension;
+
+/* MDTMode */
+typedef struct MDTMode {
+ MDTMode_PR present;
+ union MDTMode_u {
+ struct ImmediateMDT *immediateMDT;
+ struct LoggedMDT *loggedMDT;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ struct MDTMode_Extension *mDTMode_Extension;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} MDTMode_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MDTMode;
+extern asn_CHOICE_specifics_t asn_SPC_MDTMode_specs_1;
+extern asn_TYPE_member_t asn_MBR_MDTMode_1[3];
+extern asn_per_constraints_t asn_PER_type_MDTMode_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MDTMode_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MDTPLMNList.h b/src/s1ap/asn1c/asnGenFiles/MDTPLMNList.h
new file mode 100644
index 0000000..b2d673b
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MDTPLMNList.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MDTPLMNList_H_
+#define _MDTPLMNList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNidentity.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MDTPLMNList */
+typedef struct MDTPLMNList {
+ A_SEQUENCE_OF(PLMNidentity_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} MDTPLMNList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MDTPLMNList;
+extern asn_SET_OF_specifics_t asn_SPC_MDTPLMNList_specs_1;
+extern asn_TYPE_member_t asn_MBR_MDTPLMNList_1[1];
+extern asn_per_constraints_t asn_PER_type_MDTPLMNList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MDTPLMNList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MME-Code.h b/src/s1ap/asn1c/asnGenFiles/MME-Code.h
new file mode 100644
index 0000000..83908a4
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MME-Code.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MME_Code_H_
+#define _MME_Code_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MME-Code */
+typedef OCTET_STRING_t MME_Code_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_MME_Code_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_MME_Code;
+asn_struct_free_f MME_Code_free;
+asn_struct_print_f MME_Code_print;
+asn_constr_check_f MME_Code_constraint;
+ber_type_decoder_f MME_Code_decode_ber;
+der_type_encoder_f MME_Code_encode_der;
+xer_type_decoder_f MME_Code_decode_xer;
+xer_type_encoder_f MME_Code_encode_xer;
+oer_type_decoder_f MME_Code_decode_oer;
+oer_type_encoder_f MME_Code_encode_oer;
+per_type_decoder_f MME_Code_decode_uper;
+per_type_encoder_f MME_Code_encode_uper;
+per_type_decoder_f MME_Code_decode_aper;
+per_type_encoder_f MME_Code_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MME_Code_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MME-Group-ID.h b/src/s1ap/asn1c/asnGenFiles/MME-Group-ID.h
new file mode 100644
index 0000000..8766143
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MME-Group-ID.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MME_Group_ID_H_
+#define _MME_Group_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MME-Group-ID */
+typedef OCTET_STRING_t MME_Group_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_MME_Group_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_MME_Group_ID;
+asn_struct_free_f MME_Group_ID_free;
+asn_struct_print_f MME_Group_ID_print;
+asn_constr_check_f MME_Group_ID_constraint;
+ber_type_decoder_f MME_Group_ID_decode_ber;
+der_type_encoder_f MME_Group_ID_encode_der;
+xer_type_decoder_f MME_Group_ID_decode_xer;
+xer_type_encoder_f MME_Group_ID_encode_xer;
+oer_type_decoder_f MME_Group_ID_decode_oer;
+oer_type_encoder_f MME_Group_ID_encode_oer;
+per_type_decoder_f MME_Group_ID_decode_uper;
+per_type_encoder_f MME_Group_ID_encode_uper;
+per_type_decoder_f MME_Group_ID_decode_aper;
+per_type_encoder_f MME_Group_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MME_Group_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MME-UE-S1AP-ID.h b/src/s1ap/asn1c/asnGenFiles/MME-UE-S1AP-ID.h
new file mode 100644
index 0000000..ad56cf8
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MME-UE-S1AP-ID.h
@@ -0,0 +1,47 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MME_UE_S1AP_ID_H_
+#define _MME_UE_S1AP_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MME-UE-S1AP-ID */
+typedef unsigned long MME_UE_S1AP_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_MME_UE_S1AP_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_MME_UE_S1AP_ID;
+extern const asn_INTEGER_specifics_t asn_SPC_MME_UE_S1AP_ID_specs_1;
+asn_struct_free_f MME_UE_S1AP_ID_free;
+asn_struct_print_f MME_UE_S1AP_ID_print;
+asn_constr_check_f MME_UE_S1AP_ID_constraint;
+ber_type_decoder_f MME_UE_S1AP_ID_decode_ber;
+der_type_encoder_f MME_UE_S1AP_ID_encode_der;
+xer_type_decoder_f MME_UE_S1AP_ID_decode_xer;
+xer_type_encoder_f MME_UE_S1AP_ID_encode_xer;
+oer_type_decoder_f MME_UE_S1AP_ID_decode_oer;
+oer_type_encoder_f MME_UE_S1AP_ID_encode_oer;
+per_type_decoder_f MME_UE_S1AP_ID_decode_uper;
+per_type_encoder_f MME_UE_S1AP_ID_encode_uper;
+per_type_decoder_f MME_UE_S1AP_ID_decode_aper;
+per_type_encoder_f MME_UE_S1AP_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MME_UE_S1AP_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MMECPRelocationIndication.h b/src/s1ap/asn1c/asnGenFiles/MMECPRelocationIndication.h
new file mode 100644
index 0000000..d456871
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MMECPRelocationIndication.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MMECPRelocationIndication_H_
+#define _MMECPRelocationIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MMECPRelocationIndication */
+typedef struct MMECPRelocationIndication {
+ ProtocolIE_Container_129P90_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} MMECPRelocationIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MMECPRelocationIndication;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MMECPRelocationIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MMEConfigurationTransfer.h b/src/s1ap/asn1c/asnGenFiles/MMEConfigurationTransfer.h
new file mode 100644
index 0000000..b6f87cd
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MMEConfigurationTransfer.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MMEConfigurationTransfer_H_
+#define _MMEConfigurationTransfer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MMEConfigurationTransfer */
+typedef struct MMEConfigurationTransfer {
+ ProtocolIE_Container_129P68_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} MMEConfigurationTransfer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MMEConfigurationTransfer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MMEConfigurationTransfer_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MMEConfigurationUpdate.h b/src/s1ap/asn1c/asnGenFiles/MMEConfigurationUpdate.h
new file mode 100644
index 0000000..0b8cf53
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MMEConfigurationUpdate.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MMEConfigurationUpdate_H_
+#define _MMEConfigurationUpdate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MMEConfigurationUpdate */
+typedef struct MMEConfigurationUpdate {
+ ProtocolIE_Container_129P46_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} MMEConfigurationUpdate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MMEConfigurationUpdate;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MMEConfigurationUpdate_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MMEConfigurationUpdateAcknowledge.h b/src/s1ap/asn1c/asnGenFiles/MMEConfigurationUpdateAcknowledge.h
new file mode 100644
index 0000000..eaf77f3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MMEConfigurationUpdateAcknowledge.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MMEConfigurationUpdateAcknowledge_H_
+#define _MMEConfigurationUpdateAcknowledge_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MMEConfigurationUpdateAcknowledge */
+typedef struct MMEConfigurationUpdateAcknowledge {
+ ProtocolIE_Container_129P47_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} MMEConfigurationUpdateAcknowledge_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MMEConfigurationUpdateAcknowledge;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MMEConfigurationUpdateAcknowledge_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MMEConfigurationUpdateFailure.h b/src/s1ap/asn1c/asnGenFiles/MMEConfigurationUpdateFailure.h
new file mode 100644
index 0000000..e5ba87c
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MMEConfigurationUpdateFailure.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MMEConfigurationUpdateFailure_H_
+#define _MMEConfigurationUpdateFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MMEConfigurationUpdateFailure */
+typedef struct MMEConfigurationUpdateFailure {
+ ProtocolIE_Container_129P48_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} MMEConfigurationUpdateFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MMEConfigurationUpdateFailure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MMEConfigurationUpdateFailure_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MMEDirectInformationTransfer.h b/src/s1ap/asn1c/asnGenFiles/MMEDirectInformationTransfer.h
new file mode 100644
index 0000000..7a27af5
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MMEDirectInformationTransfer.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MMEDirectInformationTransfer_H_
+#define _MMEDirectInformationTransfer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MMEDirectInformationTransfer */
+typedef struct MMEDirectInformationTransfer {
+ ProtocolIE_Container_129P66_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} MMEDirectInformationTransfer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MMEDirectInformationTransfer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MMEDirectInformationTransfer_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MMEPagingTarget.h b/src/s1ap/asn1c/asnGenFiles/MMEPagingTarget.h
new file mode 100644
index 0000000..6d1c682
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MMEPagingTarget.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MMEPagingTarget_H_
+#define _MMEPagingTarget_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum MMEPagingTarget_PR {
+ MMEPagingTarget_PR_NOTHING, /* No components present */
+ MMEPagingTarget_PR_global_ENB_ID,
+ MMEPagingTarget_PR_tAI
+ /* Extensions may appear below */
+
+} MMEPagingTarget_PR;
+
+/* Forward declarations */
+struct Global_ENB_ID;
+struct S_TAI;
+
+/* MMEPagingTarget */
+typedef struct MMEPagingTarget {
+ MMEPagingTarget_PR present;
+ union MMEPagingTarget_u {
+ struct Global_ENB_ID *global_ENB_ID;
+ struct S_TAI *tAI;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} MMEPagingTarget_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MMEPagingTarget;
+extern asn_CHOICE_specifics_t asn_SPC_MMEPagingTarget_specs_1;
+extern asn_TYPE_member_t asn_MBR_MMEPagingTarget_1[2];
+extern asn_per_constraints_t asn_PER_type_MMEPagingTarget_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MMEPagingTarget_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MMERelaySupportIndicator.h b/src/s1ap/asn1c/asnGenFiles/MMERelaySupportIndicator.h
new file mode 100644
index 0000000..acb42e0
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MMERelaySupportIndicator.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MMERelaySupportIndicator_H_
+#define _MMERelaySupportIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum MMERelaySupportIndicator {
+ MMERelaySupportIndicator_true = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_MMERelaySupportIndicator;
+
+/* MMERelaySupportIndicator */
+typedef long MMERelaySupportIndicator_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_MMERelaySupportIndicator_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_MMERelaySupportIndicator;
+extern const asn_INTEGER_specifics_t asn_SPC_MMERelaySupportIndicator_specs_1;
+asn_struct_free_f MMERelaySupportIndicator_free;
+asn_struct_print_f MMERelaySupportIndicator_print;
+asn_constr_check_f MMERelaySupportIndicator_constraint;
+ber_type_decoder_f MMERelaySupportIndicator_decode_ber;
+der_type_encoder_f MMERelaySupportIndicator_encode_der;
+xer_type_decoder_f MMERelaySupportIndicator_decode_xer;
+xer_type_encoder_f MMERelaySupportIndicator_encode_xer;
+oer_type_decoder_f MMERelaySupportIndicator_decode_oer;
+oer_type_encoder_f MMERelaySupportIndicator_encode_oer;
+per_type_decoder_f MMERelaySupportIndicator_decode_uper;
+per_type_encoder_f MMERelaySupportIndicator_encode_uper;
+per_type_decoder_f MMERelaySupportIndicator_decode_aper;
+per_type_encoder_f MMERelaySupportIndicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MMERelaySupportIndicator_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MMEStatusTransfer.h b/src/s1ap/asn1c/asnGenFiles/MMEStatusTransfer.h
new file mode 100644
index 0000000..16a0688
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MMEStatusTransfer.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MMEStatusTransfer_H_
+#define _MMEStatusTransfer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MMEStatusTransfer */
+typedef struct MMEStatusTransfer {
+ ProtocolIE_Container_129P53_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} MMEStatusTransfer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MMEStatusTransfer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MMEStatusTransfer_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MMEname.h b/src/s1ap/asn1c/asnGenFiles/MMEname.h
new file mode 100644
index 0000000..966a804
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MMEname.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MMEname_H_
+#define _MMEname_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <PrintableString.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MMEname */
+typedef PrintableString_t MMEname_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_MMEname_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_MMEname;
+asn_struct_free_f MMEname_free;
+asn_struct_print_f MMEname_print;
+asn_constr_check_f MMEname_constraint;
+ber_type_decoder_f MMEname_decode_ber;
+der_type_encoder_f MMEname_encode_der;
+xer_type_decoder_f MMEname_decode_xer;
+xer_type_encoder_f MMEname_encode_xer;
+oer_type_decoder_f MMEname_decode_oer;
+oer_type_encoder_f MMEname_encode_oer;
+per_type_decoder_f MMEname_decode_uper;
+per_type_encoder_f MMEname_encode_uper;
+per_type_decoder_f MMEname_decode_aper;
+per_type_encoder_f MMEname_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MMEname_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MSClassmark2.h b/src/s1ap/asn1c/asnGenFiles/MSClassmark2.h
new file mode 100644
index 0000000..ea6827a
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MSClassmark2.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MSClassmark2_H_
+#define _MSClassmark2_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MSClassmark2 */
+typedef OCTET_STRING_t MSClassmark2_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MSClassmark2;
+asn_struct_free_f MSClassmark2_free;
+asn_struct_print_f MSClassmark2_print;
+asn_constr_check_f MSClassmark2_constraint;
+ber_type_decoder_f MSClassmark2_decode_ber;
+der_type_encoder_f MSClassmark2_encode_der;
+xer_type_decoder_f MSClassmark2_decode_xer;
+xer_type_encoder_f MSClassmark2_encode_xer;
+oer_type_decoder_f MSClassmark2_decode_oer;
+oer_type_encoder_f MSClassmark2_encode_oer;
+per_type_decoder_f MSClassmark2_decode_uper;
+per_type_encoder_f MSClassmark2_encode_uper;
+per_type_decoder_f MSClassmark2_decode_aper;
+per_type_encoder_f MSClassmark2_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MSClassmark2_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MSClassmark3.h b/src/s1ap/asn1c/asnGenFiles/MSClassmark3.h
new file mode 100644
index 0000000..1e08564
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MSClassmark3.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MSClassmark3_H_
+#define _MSClassmark3_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MSClassmark3 */
+typedef OCTET_STRING_t MSClassmark3_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MSClassmark3;
+asn_struct_free_f MSClassmark3_free;
+asn_struct_print_f MSClassmark3_print;
+asn_constr_check_f MSClassmark3_constraint;
+ber_type_decoder_f MSClassmark3_decode_ber;
+der_type_encoder_f MSClassmark3_encode_der;
+xer_type_decoder_f MSClassmark3_decode_xer;
+xer_type_encoder_f MSClassmark3_encode_xer;
+oer_type_decoder_f MSClassmark3_decode_oer;
+oer_type_encoder_f MSClassmark3_encode_oer;
+per_type_decoder_f MSClassmark3_decode_uper;
+per_type_encoder_f MSClassmark3_encode_uper;
+per_type_decoder_f MSClassmark3_decode_aper;
+per_type_encoder_f MSClassmark3_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MSClassmark3_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Makefile.am.asn1convert b/src/s1ap/asn1c/asnGenFiles/Makefile.am.asn1convert
new file mode 100644
index 0000000..acb5e59
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Makefile.am.asn1convert
@@ -0,0 +1,13 @@
+include Makefile.am.libasncodec
+
+bin_PROGRAMS += asn1convert
+asn1convert_CFLAGS = $(ASN_MODULE_CFLAGS) -DPDU=S1AP_PDU
+asn1convert_CPPFLAGS = -I$(top_srcdir)/
+asn1convert_LDADD = libasncodec.la
+asn1convert_SOURCES = \
+ converter-example.c
+regen: regenerate-from-asn1-source
+
+regenerate-from-asn1-source:
+ asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU ./asn1c/S1AP-CommonDataTypes.asn ./asn1c/S1AP-Constants.asn ./asn1c/S1AP-Containers.asn ./asn1c/S1AP-IEs.asn ./asn1c/S1AP-PDU-Contents.asn ./asn1c/S1AP-PDU-Descriptions.asn
+
diff --git a/src/s1ap/asn1c/asnGenFiles/Makefile.am.libasncodec b/src/s1ap/asn1c/asnGenFiles/Makefile.am.libasncodec
new file mode 100644
index 0000000..2c5fb29
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Makefile.am.libasncodec
@@ -0,0 +1,1294 @@
+ASN_MODULE_SRCS= \
+ Criticality.c \
+ Presence.c \
+ PrivateIE-ID.c \
+ ProcedureCode.c \
+ ProtocolExtensionID.c \
+ ProtocolIE-ID.c \
+ TriggeringMessage.c \
+ ProtocolIE-Container.c \
+ ProtocolIE-SingleContainer.c \
+ ProtocolIE-Field.c \
+ ProtocolIE-ContainerPair.c \
+ ProtocolIE-FieldPair.c \
+ ProtocolIE-ContainerList.c \
+ ProtocolIE-ContainerPairList.c \
+ ProtocolExtensionContainer.c \
+ ProtocolExtensionField.c \
+ PrivateIE-Container.c \
+ PrivateIE-Field.c \
+ Additional-GUTI.c \
+ AerialUEsubscriptionInformation.c \
+ AreaScopeOfMDT.c \
+ AreaScopeOfQMC.c \
+ AllocationAndRetentionPriority.c \
+ AssistanceDataForCECapableUEs.c \
+ AssistanceDataForPaging.c \
+ AssistanceDataForRecommendedCells.c \
+ Bearers-SubjectToStatusTransferList.c \
+ Bearers-SubjectToStatusTransfer-Item.c \
+ BearerType.c \
+ BitRate.c \
+ BluetoothMeasurementConfiguration.c \
+ BluetoothMeasConfigNameList.c \
+ BluetoothMeasConfig.c \
+ BluetoothName.c \
+ BPLMNs.c \
+ BroadcastCancelledAreaList.c \
+ BroadcastCompletedAreaList.c \
+ CancelledCellinEAI.c \
+ CancelledCellinEAI-Item.c \
+ CancelledCellinTAI.c \
+ CancelledCellinTAI-Item.c \
+ Cause.c \
+ CauseMisc.c \
+ CauseProtocol.c \
+ CauseRadioNetwork.c \
+ CauseTransport.c \
+ CauseNas.c \
+ CellAccessMode.c \
+ CellIdentifierAndCELevelForCECapableUEs.c \
+ CELevel.c \
+ CE-mode-B-SupportIndicator.c \
+ CellIdentity.c \
+ CellID-Broadcast.c \
+ CellID-Broadcast-Item.c \
+ CellID-Cancelled.c \
+ CellID-Cancelled-Item.c \
+ CellBasedMDT.c \
+ CellIdListforMDT.c \
+ CellBasedQMC.c \
+ CellIdListforQMC.c \
+ Cdma2000PDU.c \
+ Cdma2000RATType.c \
+ Cdma2000SectorID.c \
+ Cdma2000HOStatus.c \
+ Cdma2000HORequiredIndication.c \
+ Cdma2000OneXSRVCCInfo.c \
+ Cdma2000OneXMEID.c \
+ Cdma2000OneXMSI.c \
+ Cdma2000OneXPilot.c \
+ Cdma2000OneXRAND.c \
+ Cell-Size.c \
+ CellType.c \
+ CGI.c \
+ CI.c \
+ CNDomain.c \
+ CNTypeRestrictions.c \
+ CNTypeRestrictions-Item.c \
+ CNType.c \
+ ConcurrentWarningMessageIndicator.c \
+ ConnectedengNBList.c \
+ ConnectedengNBItem.c \
+ Correlation-ID.c \
+ CSFallbackIndicator.c \
+ AdditionalCSFallbackIndicator.c \
+ CSG-Id.c \
+ CSG-IdList.c \
+ CSG-IdList-Item.c \
+ CSGMembershipStatus.c \
+ COUNTvalue.c \
+ COUNTValueExtended.c \
+ COUNTvaluePDCP-SNlength18.c \
+ Coverage-Level.c \
+ CriticalityDiagnostics.c \
+ CriticalityDiagnostics-IE-List.c \
+ CriticalityDiagnostics-IE-Item.c \
+ DataCodingScheme.c \
+ DCN-ID.c \
+ ServedDCNs.c \
+ ServedDCNsItem.c \
+ DL-CP-SecurityInformation.c \
+ DL-Forwarding.c \
+ DL-NAS-MAC.c \
+ Direct-Forwarding-Path-Availability.c \
+ Data-Forwarding-Not-Possible.c \
+ DLNASPDUDeliveryAckRequest.c \
+ EARFCN.c \
+ ECGIList.c \
+ PWSfailedECGIList.c \
+ EDT-Session.c \
+ EmergencyAreaIDList.c \
+ EmergencyAreaID.c \
+ EmergencyAreaID-Broadcast.c \
+ EmergencyAreaID-Broadcast-Item.c \
+ EmergencyAreaID-Cancelled.c \
+ EmergencyAreaID-Cancelled-Item.c \
+ CompletedCellinEAI.c \
+ CompletedCellinEAI-Item.c \
+ ECGI-List.c \
+ EmergencyAreaIDListForRestart.c \
+ ENB-ID.c \
+ En-gNB-ID.c \
+ GERAN-Cell-ID.c \
+ Global-ENB-ID.c \
+ Global-en-gNB-ID.c \
+ GUMMEIList.c \
+ ENB-StatusTransfer-TransparentContainer.c \
+ ENB-UE-S1AP-ID.c \
+ ENBname.c \
+ ENBX2TLAs.c \
+ EncryptionAlgorithms.c \
+ EN-DCSONConfigurationTransfer.c \
+ EN-DCSONTransferType.c \
+ EN-DCTransferTypeRequest.c \
+ EN-DCTransferTypeReply.c \
+ EN-DCSONeNBIdentification.c \
+ EN-DCSONengNBIdentification.c \
+ EndIndication.c \
+ EnhancedCoverageRestricted.c \
+ CE-ModeBRestricted.c \
+ EPLMNs.c \
+ EventType.c \
+ E-RAB-ID.c \
+ E-RABInformationList.c \
+ E-RABInformationListItem.c \
+ E-RABList.c \
+ E-RABItem.c \
+ E-RABLevelQoSParameters.c \
+ E-RABUsageReportList.c \
+ E-RABUsageReportItem.c \
+ EUTRAN-CGI.c \
+ EUTRANRoundTripDelayEstimationInfo.c \
+ ExpectedUEBehaviour.c \
+ ExpectedUEActivityBehaviour.c \
+ ExpectedActivityPeriod.c \
+ ExpectedIdlePeriod.c \
+ SourceOfUEActivityBehaviourInformation.c \
+ ExpectedHOInterval.c \
+ ExtendedBitRate.c \
+ ExtendedRNC-ID.c \
+ ExtendedRepetitionPeriod.c \
+ Extended-UEIdentityIndexValue.c \
+ FiveGSTAC.c \
+ FiveGSTAI.c \
+ ForbiddenInterRATs.c \
+ ForbiddenTAs.c \
+ ForbiddenTAs-Item.c \
+ ForbiddenTACs.c \
+ ForbiddenLAs.c \
+ ForbiddenLAs-Item.c \
+ ForbiddenLACs.c \
+ GBR-QosInformation.c \
+ GTP-TEID.c \
+ GUMMEI.c \
+ GUMMEIType.c \
+ GWContextReleaseIndication.c \
+ HandoverFlag.c \
+ HandoverRestrictionList.c \
+ HandoverType.c \
+ HFN.c \
+ HFNModified.c \
+ HFNforPDCP-SNlength18.c \
+ Masked-IMEISV.c \
+ ImmediateMDT.c \
+ IMSI.c \
+ InformationOnRecommendedCellsAndENBsForPaging.c \
+ IntegrityProtectionAlgorithms.c \
+ IntendedNumberOfPagingAttempts.c \
+ InterfacesToTrace.c \
+ IMSvoiceEPSfallbackfrom5G.c \
+ KillAllWarningMessages.c \
+ LAC.c \
+ LAI.c \
+ LastVisitedCell-Item.c \
+ LastVisitedEUTRANCellInformation.c \
+ LastVisitedNGRANCellInformation.c \
+ LastVisitedUTRANCellInformation.c \
+ LastVisitedGERANCellInformation.c \
+ L3-Information.c \
+ LPPa-PDU.c \
+ LHN-ID.c \
+ Links-to-log.c \
+ ListeningSubframePattern.c \
+ LoggedMDT.c \
+ LoggingInterval.c \
+ LoggingDuration.c \
+ LoggedMBSFNMDT.c \
+ LTE-M-Indication.c \
+ M3Configuration.c \
+ M3period.c \
+ M4Configuration.c \
+ M4period.c \
+ M5Configuration.c \
+ M5period.c \
+ M6Configuration.c \
+ M6report-Interval.c \
+ M6delay-threshold.c \
+ M7Configuration.c \
+ M7period.c \
+ MDT-Activation.c \
+ MDT-Location-Info.c \
+ MDT-Configuration.c \
+ ManagementBasedMDTAllowed.c \
+ MBSFN-ResultToLog.c \
+ MBSFN-ResultToLogInfo.c \
+ MDTPLMNList.c \
+ PrivacyIndicator.c \
+ MDTMode.c \
+ MDTMode-Extension.c \
+ MeasurementsToActivate.c \
+ MeasurementThresholdA2.c \
+ MessageIdentifier.c \
+ MobilityInformation.c \
+ MMEname.c \
+ MMEPagingTarget.c \
+ MMERelaySupportIndicator.c \
+ MME-Group-ID.c \
+ MME-Code.c \
+ MME-UE-S1AP-ID.c \
+ M-TMSI.c \
+ MSClassmark2.c \
+ MSClassmark3.c \
+ MutingAvailabilityIndication.c \
+ MutingPatternInformation.c \
+ NAS-PDU.c \
+ NASSecurityParametersfromE-UTRAN.c \
+ NASSecurityParameterstoE-UTRAN.c \
+ NB-IoT-DefaultPagingDRX.c \
+ NB-IoT-Paging-eDRXInformation.c \
+ NB-IoT-Paging-eDRX-Cycle.c \
+ NB-IoT-PagingTimeWindow.c \
+ NB-IoT-UEIdentityIndexValue.c \
+ NextPagingAreaScope.c \
+ NRCellIdentity.c \
+ NR-CGI.c \
+ NRencryptionAlgorithms.c \
+ NRintegrityProtectionAlgorithms.c \
+ NRrestrictioninEPSasSecondaryRAT.c \
+ NRrestrictionin5GS.c \
+ NRUESecurityCapabilities.c \
+ NumberofBroadcastRequest.c \
+ NumberOfBroadcasts.c \
+ OldBSS-ToNewBSS-Information.c \
+ OverloadAction.c \
+ OverloadResponse.c \
+ Packet-LossRate.c \
+ PagingAttemptInformation.c \
+ PagingAttemptCount.c \
+ Paging-eDRXInformation.c \
+ Paging-eDRX-Cycle.c \
+ PagingTimeWindow.c \
+ PagingDRX.c \
+ PagingPriority.c \
+ PDCP-SN.c \
+ PDCP-SNExtended.c \
+ PDCP-SNlength18.c \
+ PendingDataIndication.c \
+ M1PeriodicReporting.c \
+ PLMNidentity.c \
+ PLMNAreaBasedQMC.c \
+ PLMNListforQMC.c \
+ Port-Number.c \
+ Pre-emptionCapability.c \
+ Pre-emptionVulnerability.c \
+ PriorityLevel.c \
+ ProSeAuthorized.c \
+ ProSeDirectDiscovery.c \
+ ProSeUEtoNetworkRelaying.c \
+ ProSeDirectCommunication.c \
+ PS-ServiceNotAvailable.c \
+ PSCellInformation.c \
+ QCI.c \
+ ReceiveStatusofULPDCPSDUs.c \
+ ReceiveStatusOfULPDCPSDUsExtended.c \
+ ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.c \
+ RecommendedCellsForPaging.c \
+ RecommendedCellList.c \
+ RecommendedCellItem.c \
+ RecommendedENBsForPaging.c \
+ RecommendedENBList.c \
+ RecommendedENBItem.c \
+ RelativeMMECapacity.c \
+ RelayNode-Indicator.c \
+ RAC.c \
+ RAT-Type.c \
+ ReportAmountMDT.c \
+ ReportIntervalMDT.c \
+ M1ReportingTrigger.c \
+ RequestType.c \
+ RequestTypeAdditionalInfo.c \
+ RIMTransfer.c \
+ RIMInformation.c \
+ RIMRoutingAddress.c \
+ ReportArea.c \
+ RepetitionPeriod.c \
+ RLFReportInformation.c \
+ RNC-ID.c \
+ RRC-Container.c \
+ RRC-Establishment-Cause.c \
+ ECGIListForRestart.c \
+ Routing-ID.c \
+ SecurityKey.c \
+ SecurityContext.c \
+ SecondaryRATType.c \
+ SecondaryRATDataUsageRequest.c \
+ SecondaryRATDataUsageReportList.c \
+ SecondaryRATDataUsageReportItem.c \
+ SerialNumber.c \
+ ServiceType.c \
+ SONInformation.c \
+ SONInformation-Extension.c \
+ SONInformationRequest.c \
+ SONInformationReply.c \
+ SONInformationReport.c \
+ SONConfigurationTransfer.c \
+ SynchronisationInformation.c \
+ Source-ToTarget-TransparentContainer.c \
+ SourceBSS-ToTargetBSS-TransparentContainer.c \
+ SourceeNB-ID.c \
+ SRVCCOperationNotPossible.c \
+ SRVCCOperationPossible.c \
+ SRVCCHOIndication.c \
+ SourceeNB-ToTargeteNB-TransparentContainer.c \
+ SourceRNC-ToTargetRNC-TransparentContainer.c \
+ SourceNgRanNode-ToTargetNgRanNode-TransparentContainer.c \
+ ServedGUMMEIs.c \
+ ServedGUMMEIsItem.c \
+ ServedGroupIDs.c \
+ ServedMMECs.c \
+ ServedPLMNs.c \
+ SubscriberProfileIDforRFP.c \
+ Subscription-Based-UE-DifferentiationInfo.c \
+ ScheduledCommunicationTime.c \
+ SupportedTAs.c \
+ SupportedTAs-Item.c \
+ StratumLevel.c \
+ SynchronisationStatus.c \
+ TimeSynchronisationInfo.c \
+ S-TMSI.c \
+ TAC.c \
+ TAIBasedMDT.c \
+ TAIListforMDT.c \
+ TAIListforWarning.c \
+ TAI.c \
+ TAI-Broadcast.c \
+ TAI-Broadcast-Item.c \
+ TAI-Cancelled.c \
+ TAI-Cancelled-Item.c \
+ TABasedMDT.c \
+ TAListforMDT.c \
+ TABasedQMC.c \
+ TAListforQMC.c \
+ TAIBasedQMC.c \
+ TAIListforQMC.c \
+ CompletedCellinTAI.c \
+ CompletedCellinTAI-Item.c \
+ TBCD-STRING.c \
+ TargetID.c \
+ TargeteNB-ID.c \
+ TargetRNC-ID.c \
+ TargetNgRanNode-ID.c \
+ Global-RAN-NODE-ID.c \
+ GNB.c \
+ Global-GNB-ID.c \
+ GNB-Identity.c \
+ NG-eNB.c \
+ GNB-ID.c \
+ TargeteNB-ToSourceeNB-TransparentContainer.c \
+ Target-ToSource-TransparentContainer.c \
+ TargetRNC-ToSourceRNC-TransparentContainer.c \
+ TargetBSS-ToSourceBSS-TransparentContainer.c \
+ TargetNgRanNode-ToSourceNgRanNode-TransparentContainer.c \
+ M1ThresholdEventA2.c \
+ Threshold-RSRP.c \
+ Threshold-RSRQ.c \
+ TimeToWait.c \
+ Time-UE-StayedInCell.c \
+ Time-UE-StayedInCell-EnhancedGranularity.c \
+ TimeSinceSecondaryNodeRelease.c \
+ TransportInformation.c \
+ TransportLayerAddress.c \
+ TraceActivation.c \
+ TraceDepth.c \
+ E-UTRAN-Trace-ID.c \
+ TrafficLoadReductionIndication.c \
+ TunnelInformation.c \
+ TypeOfError.c \
+ TAIListForRestart.c \
+ UEAggregateMaximumBitrate.c \
+ UEAppLayerMeasConfig.c \
+ UECapabilityInfoRequest.c \
+ UE-RetentionInformation.c \
+ UE-S1AP-IDs.c \
+ UE-S1AP-ID-pair.c \
+ UE-associatedLogicalS1-ConnectionItem.c \
+ UEIdentityIndexValue.c \
+ UE-HistoryInformation.c \
+ UE-HistoryInformationFromTheUE.c \
+ UEPagingID.c \
+ UERadioCapability.c \
+ UERadioCapabilityForPaging.c \
+ UE-RLF-Report-Container.c \
+ UE-RLF-Report-Container-for-extended-bands.c \
+ UESecurityCapabilities.c \
+ UESidelinkAggregateMaximumBitrate.c \
+ UE-Usage-Type.c \
+ UL-CP-SecurityInformation.c \
+ UL-NAS-MAC.c \
+ UL-NAS-Count.c \
+ UnlicensedSpectrumRestriction.c \
+ UserLocationInformation.c \
+ UEUserPlaneCIoTSupportIndicator.c \
+ UE-Application-Layer-Measurement-Capability.c \
+ VoiceSupportMatchIndicator.c \
+ V2XServicesAuthorized.c \
+ VehicleUE.c \
+ PedestrianUE.c \
+ WarningAreaCoordinates.c \
+ WarningAreaList.c \
+ WarningType.c \
+ WarningSecurityInfo.c \
+ WarningMessageContents.c \
+ WLANMeasurementConfiguration.c \
+ WLANMeasConfigNameList.c \
+ WLANMeasConfig.c \
+ WLANName.c \
+ X2TNLConfigurationInfo.c \
+ ENBX2ExtTLAs.c \
+ ENBX2ExtTLA.c \
+ ENBX2GTPTLAs.c \
+ ENBIndirectX2TransportLayerAddresses.c \
+ E-RAB-IE-ContainerList.c \
+ E-RAB-IE-ContainerPairList.c \
+ ProtocolError-IE-ContainerList.c \
+ HandoverRequired.c \
+ HandoverCommand.c \
+ E-RABSubjecttoDataForwardingList.c \
+ E-RABDataForwardingItem.c \
+ HandoverPreparationFailure.c \
+ HandoverRequest.c \
+ E-RABToBeSetupListHOReq.c \
+ E-RABToBeSetupItemHOReq.c \
+ HandoverRequestAcknowledge.c \
+ E-RABAdmittedList.c \
+ E-RABAdmittedItem.c \
+ E-RABFailedtoSetupListHOReqAck.c \
+ E-RABFailedToSetupItemHOReqAck.c \
+ HandoverFailure.c \
+ HandoverNotify.c \
+ PathSwitchRequest.c \
+ E-RABToBeSwitchedDLList.c \
+ E-RABToBeSwitchedDLItem.c \
+ PathSwitchRequestAcknowledge.c \
+ E-RABToBeSwitchedULList.c \
+ E-RABToBeSwitchedULItem.c \
+ PathSwitchRequestFailure.c \
+ HandoverCancel.c \
+ HandoverCancelAcknowledge.c \
+ E-RABSetupRequest.c \
+ E-RABToBeSetupListBearerSUReq.c \
+ E-RABToBeSetupItemBearerSUReq.c \
+ E-RABSetupResponse.c \
+ E-RABSetupListBearerSURes.c \
+ E-RABSetupItemBearerSURes.c \
+ E-RABModifyRequest.c \
+ E-RABToBeModifiedListBearerModReq.c \
+ E-RABToBeModifiedItemBearerModReq.c \
+ E-RABModifyResponse.c \
+ E-RABModifyListBearerModRes.c \
+ E-RABModifyItemBearerModRes.c \
+ E-RABReleaseCommand.c \
+ E-RABReleaseResponse.c \
+ E-RABReleaseListBearerRelComp.c \
+ E-RABReleaseItemBearerRelComp.c \
+ E-RABReleaseIndication.c \
+ InitialContextSetupRequest.c \
+ E-RABToBeSetupListCtxtSUReq.c \
+ E-RABToBeSetupItemCtxtSUReq.c \
+ InitialContextSetupResponse.c \
+ E-RABSetupListCtxtSURes.c \
+ E-RABSetupItemCtxtSURes.c \
+ InitialContextSetupFailure.c \
+ Paging.c \
+ TAIList.c \
+ TAIItem.c \
+ UEContextReleaseRequest.c \
+ UEContextReleaseCommand.c \
+ UEContextReleaseComplete.c \
+ UEContextModificationRequest.c \
+ UEContextModificationResponse.c \
+ UEContextModificationFailure.c \
+ UERadioCapabilityMatchRequest.c \
+ UERadioCapabilityMatchResponse.c \
+ DownlinkNASTransport.c \
+ InitialUEMessage.c \
+ UplinkNASTransport.c \
+ NASNonDeliveryIndication.c \
+ RerouteNASRequest.c \
+ NASDeliveryIndication.c \
+ Reset.c \
+ ResetType.c \
+ ResetAll.c \
+ UE-associatedLogicalS1-ConnectionListRes.c \
+ ResetAcknowledge.c \
+ UE-associatedLogicalS1-ConnectionListResAck.c \
+ ErrorIndication.c \
+ S1SetupRequest.c \
+ S1SetupResponse.c \
+ S1SetupFailure.c \
+ ENBConfigurationUpdate.c \
+ ENBConfigurationUpdateAcknowledge.c \
+ ENBConfigurationUpdateFailure.c \
+ MMEConfigurationUpdate.c \
+ MMEConfigurationUpdateAcknowledge.c \
+ MMEConfigurationUpdateFailure.c \
+ DownlinkS1cdma2000tunnelling.c \
+ UplinkS1cdma2000tunnelling.c \
+ UECapabilityInfoIndication.c \
+ ENBStatusTransfer.c \
+ MMEStatusTransfer.c \
+ TraceStart.c \
+ TraceFailureIndication.c \
+ DeactivateTrace.c \
+ CellTrafficTrace.c \
+ LocationReportingControl.c \
+ LocationReportingFailureIndication.c \
+ LocationReport.c \
+ OverloadStart.c \
+ OverloadStop.c \
+ WriteReplaceWarningRequest.c \
+ WriteReplaceWarningResponse.c \
+ ENBDirectInformationTransfer.c \
+ Inter-SystemInformationTransferType.c \
+ MMEDirectInformationTransfer.c \
+ ENBConfigurationTransfer.c \
+ MMEConfigurationTransfer.c \
+ PrivateMessage.c \
+ KillRequest.c \
+ KillResponse.c \
+ PWSRestartIndication.c \
+ PWSFailureIndication.c \
+ DownlinkUEAssociatedLPPaTransport.c \
+ UplinkUEAssociatedLPPaTransport.c \
+ DownlinkNonUEAssociatedLPPaTransport.c \
+ UplinkNonUEAssociatedLPPaTransport.c \
+ E-RABModificationIndication.c \
+ E-RABToBeModifiedListBearerModInd.c \
+ E-RABToBeModifiedItemBearerModInd.c \
+ E-RABNotToBeModifiedListBearerModInd.c \
+ E-RABNotToBeModifiedItemBearerModInd.c \
+ CSGMembershipInfo.c \
+ E-RABModificationConfirm.c \
+ E-RABModifyListBearerModConf.c \
+ E-RABModifyItemBearerModConf.c \
+ UEContextModificationIndication.c \
+ UEContextModificationConfirm.c \
+ UEContextSuspendRequest.c \
+ UEContextSuspendResponse.c \
+ UEContextResumeRequest.c \
+ E-RABFailedToResumeListResumeReq.c \
+ E-RABFailedToResumeItemResumeReq.c \
+ UEContextResumeResponse.c \
+ E-RABFailedToResumeListResumeRes.c \
+ E-RABFailedToResumeItemResumeRes.c \
+ UEContextResumeFailure.c \
+ ConnectionEstablishmentIndication.c \
+ RetrieveUEInformation.c \
+ UEInformationTransfer.c \
+ ENBCPRelocationIndication.c \
+ MMECPRelocationIndication.c \
+ SecondaryRATDataUsageReport.c \
+ S1AP-PDU.c \
+ InitiatingMessage.c \
+ SuccessfulOutcome.c \
+ UnsuccessfulOutcome.c \
+ EXTERNAL.c
+
+ASN_MODULE_HDRS= \
+ Criticality.h \
+ Presence.h \
+ PrivateIE-ID.h \
+ ProcedureCode.h \
+ ProtocolExtensionID.h \
+ ProtocolIE-ID.h \
+ TriggeringMessage.h \
+ ProtocolIE-Container.h \
+ ProtocolIE-SingleContainer.h \
+ ProtocolIE-Field.h \
+ ProtocolIE-ContainerPair.h \
+ ProtocolIE-FieldPair.h \
+ ProtocolIE-ContainerList.h \
+ ProtocolIE-ContainerPairList.h \
+ ProtocolExtensionContainer.h \
+ ProtocolExtensionField.h \
+ PrivateIE-Container.h \
+ PrivateIE-Field.h \
+ Additional-GUTI.h \
+ AerialUEsubscriptionInformation.h \
+ AreaScopeOfMDT.h \
+ AreaScopeOfQMC.h \
+ AllocationAndRetentionPriority.h \
+ AssistanceDataForCECapableUEs.h \
+ AssistanceDataForPaging.h \
+ AssistanceDataForRecommendedCells.h \
+ Bearers-SubjectToStatusTransferList.h \
+ Bearers-SubjectToStatusTransfer-Item.h \
+ BearerType.h \
+ BitRate.h \
+ BluetoothMeasurementConfiguration.h \
+ BluetoothMeasConfigNameList.h \
+ BluetoothMeasConfig.h \
+ BluetoothName.h \
+ BPLMNs.h \
+ BroadcastCancelledAreaList.h \
+ BroadcastCompletedAreaList.h \
+ CancelledCellinEAI.h \
+ CancelledCellinEAI-Item.h \
+ CancelledCellinTAI.h \
+ CancelledCellinTAI-Item.h \
+ Cause.h \
+ CauseMisc.h \
+ CauseProtocol.h \
+ CauseRadioNetwork.h \
+ CauseTransport.h \
+ CauseNas.h \
+ CellAccessMode.h \
+ CellIdentifierAndCELevelForCECapableUEs.h \
+ CELevel.h \
+ CE-mode-B-SupportIndicator.h \
+ CellIdentity.h \
+ CellID-Broadcast.h \
+ CellID-Broadcast-Item.h \
+ CellID-Cancelled.h \
+ CellID-Cancelled-Item.h \
+ CellBasedMDT.h \
+ CellIdListforMDT.h \
+ CellBasedQMC.h \
+ CellIdListforQMC.h \
+ Cdma2000PDU.h \
+ Cdma2000RATType.h \
+ Cdma2000SectorID.h \
+ Cdma2000HOStatus.h \
+ Cdma2000HORequiredIndication.h \
+ Cdma2000OneXSRVCCInfo.h \
+ Cdma2000OneXMEID.h \
+ Cdma2000OneXMSI.h \
+ Cdma2000OneXPilot.h \
+ Cdma2000OneXRAND.h \
+ Cell-Size.h \
+ CellType.h \
+ CGI.h \
+ CI.h \
+ CNDomain.h \
+ CNTypeRestrictions.h \
+ CNTypeRestrictions-Item.h \
+ CNType.h \
+ ConcurrentWarningMessageIndicator.h \
+ ConnectedengNBList.h \
+ ConnectedengNBItem.h \
+ Correlation-ID.h \
+ CSFallbackIndicator.h \
+ AdditionalCSFallbackIndicator.h \
+ CSG-Id.h \
+ CSG-IdList.h \
+ CSG-IdList-Item.h \
+ CSGMembershipStatus.h \
+ COUNTvalue.h \
+ COUNTValueExtended.h \
+ COUNTvaluePDCP-SNlength18.h \
+ Coverage-Level.h \
+ CriticalityDiagnostics.h \
+ CriticalityDiagnostics-IE-List.h \
+ CriticalityDiagnostics-IE-Item.h \
+ DataCodingScheme.h \
+ DCN-ID.h \
+ ServedDCNs.h \
+ ServedDCNsItem.h \
+ DL-CP-SecurityInformation.h \
+ DL-Forwarding.h \
+ DL-NAS-MAC.h \
+ Direct-Forwarding-Path-Availability.h \
+ Data-Forwarding-Not-Possible.h \
+ DLNASPDUDeliveryAckRequest.h \
+ EARFCN.h \
+ ECGIList.h \
+ PWSfailedECGIList.h \
+ EDT-Session.h \
+ EmergencyAreaIDList.h \
+ EmergencyAreaID.h \
+ EmergencyAreaID-Broadcast.h \
+ EmergencyAreaID-Broadcast-Item.h \
+ EmergencyAreaID-Cancelled.h \
+ EmergencyAreaID-Cancelled-Item.h \
+ CompletedCellinEAI.h \
+ CompletedCellinEAI-Item.h \
+ ECGI-List.h \
+ EmergencyAreaIDListForRestart.h \
+ ENB-ID.h \
+ En-gNB-ID.h \
+ GERAN-Cell-ID.h \
+ Global-ENB-ID.h \
+ Global-en-gNB-ID.h \
+ GUMMEIList.h \
+ ENB-StatusTransfer-TransparentContainer.h \
+ ENB-UE-S1AP-ID.h \
+ ENBname.h \
+ ENBX2TLAs.h \
+ EncryptionAlgorithms.h \
+ EN-DCSONConfigurationTransfer.h \
+ EN-DCSONTransferType.h \
+ EN-DCTransferTypeRequest.h \
+ EN-DCTransferTypeReply.h \
+ EN-DCSONeNBIdentification.h \
+ EN-DCSONengNBIdentification.h \
+ EndIndication.h \
+ EnhancedCoverageRestricted.h \
+ CE-ModeBRestricted.h \
+ EPLMNs.h \
+ EventType.h \
+ E-RAB-ID.h \
+ E-RABInformationList.h \
+ E-RABInformationListItem.h \
+ E-RABList.h \
+ E-RABItem.h \
+ E-RABLevelQoSParameters.h \
+ E-RABUsageReportList.h \
+ E-RABUsageReportItem.h \
+ EUTRAN-CGI.h \
+ EUTRANRoundTripDelayEstimationInfo.h \
+ ExpectedUEBehaviour.h \
+ ExpectedUEActivityBehaviour.h \
+ ExpectedActivityPeriod.h \
+ ExpectedIdlePeriod.h \
+ SourceOfUEActivityBehaviourInformation.h \
+ ExpectedHOInterval.h \
+ ExtendedBitRate.h \
+ ExtendedRNC-ID.h \
+ ExtendedRepetitionPeriod.h \
+ Extended-UEIdentityIndexValue.h \
+ FiveGSTAC.h \
+ FiveGSTAI.h \
+ ForbiddenInterRATs.h \
+ ForbiddenTAs.h \
+ ForbiddenTAs-Item.h \
+ ForbiddenTACs.h \
+ ForbiddenLAs.h \
+ ForbiddenLAs-Item.h \
+ ForbiddenLACs.h \
+ GBR-QosInformation.h \
+ GTP-TEID.h \
+ GUMMEI.h \
+ GUMMEIType.h \
+ GWContextReleaseIndication.h \
+ HandoverFlag.h \
+ HandoverRestrictionList.h \
+ HandoverType.h \
+ HFN.h \
+ HFNModified.h \
+ HFNforPDCP-SNlength18.h \
+ Masked-IMEISV.h \
+ ImmediateMDT.h \
+ IMSI.h \
+ InformationOnRecommendedCellsAndENBsForPaging.h \
+ IntegrityProtectionAlgorithms.h \
+ IntendedNumberOfPagingAttempts.h \
+ InterfacesToTrace.h \
+ IMSvoiceEPSfallbackfrom5G.h \
+ KillAllWarningMessages.h \
+ LAC.h \
+ LAI.h \
+ LastVisitedCell-Item.h \
+ LastVisitedEUTRANCellInformation.h \
+ LastVisitedNGRANCellInformation.h \
+ LastVisitedUTRANCellInformation.h \
+ LastVisitedGERANCellInformation.h \
+ L3-Information.h \
+ LPPa-PDU.h \
+ LHN-ID.h \
+ Links-to-log.h \
+ ListeningSubframePattern.h \
+ LoggedMDT.h \
+ LoggingInterval.h \
+ LoggingDuration.h \
+ LoggedMBSFNMDT.h \
+ LTE-M-Indication.h \
+ M3Configuration.h \
+ M3period.h \
+ M4Configuration.h \
+ M4period.h \
+ M5Configuration.h \
+ M5period.h \
+ M6Configuration.h \
+ M6report-Interval.h \
+ M6delay-threshold.h \
+ M7Configuration.h \
+ M7period.h \
+ MDT-Activation.h \
+ MDT-Location-Info.h \
+ MDT-Configuration.h \
+ ManagementBasedMDTAllowed.h \
+ MBSFN-ResultToLog.h \
+ MBSFN-ResultToLogInfo.h \
+ MDTPLMNList.h \
+ PrivacyIndicator.h \
+ MDTMode.h \
+ MDTMode-Extension.h \
+ MeasurementsToActivate.h \
+ MeasurementThresholdA2.h \
+ MessageIdentifier.h \
+ MobilityInformation.h \
+ MMEname.h \
+ MMEPagingTarget.h \
+ MMERelaySupportIndicator.h \
+ MME-Group-ID.h \
+ MME-Code.h \
+ MME-UE-S1AP-ID.h \
+ M-TMSI.h \
+ MSClassmark2.h \
+ MSClassmark3.h \
+ MutingAvailabilityIndication.h \
+ MutingPatternInformation.h \
+ NAS-PDU.h \
+ NASSecurityParametersfromE-UTRAN.h \
+ NASSecurityParameterstoE-UTRAN.h \
+ NB-IoT-DefaultPagingDRX.h \
+ NB-IoT-Paging-eDRXInformation.h \
+ NB-IoT-Paging-eDRX-Cycle.h \
+ NB-IoT-PagingTimeWindow.h \
+ NB-IoT-UEIdentityIndexValue.h \
+ NextPagingAreaScope.h \
+ NRCellIdentity.h \
+ NR-CGI.h \
+ NRencryptionAlgorithms.h \
+ NRintegrityProtectionAlgorithms.h \
+ NRrestrictioninEPSasSecondaryRAT.h \
+ NRrestrictionin5GS.h \
+ NRUESecurityCapabilities.h \
+ NumberofBroadcastRequest.h \
+ NumberOfBroadcasts.h \
+ OldBSS-ToNewBSS-Information.h \
+ OverloadAction.h \
+ OverloadResponse.h \
+ Packet-LossRate.h \
+ PagingAttemptInformation.h \
+ PagingAttemptCount.h \
+ Paging-eDRXInformation.h \
+ Paging-eDRX-Cycle.h \
+ PagingTimeWindow.h \
+ PagingDRX.h \
+ PagingPriority.h \
+ PDCP-SN.h \
+ PDCP-SNExtended.h \
+ PDCP-SNlength18.h \
+ PendingDataIndication.h \
+ M1PeriodicReporting.h \
+ PLMNidentity.h \
+ PLMNAreaBasedQMC.h \
+ PLMNListforQMC.h \
+ Port-Number.h \
+ Pre-emptionCapability.h \
+ Pre-emptionVulnerability.h \
+ PriorityLevel.h \
+ ProSeAuthorized.h \
+ ProSeDirectDiscovery.h \
+ ProSeUEtoNetworkRelaying.h \
+ ProSeDirectCommunication.h \
+ PS-ServiceNotAvailable.h \
+ PSCellInformation.h \
+ QCI.h \
+ ReceiveStatusofULPDCPSDUs.h \
+ ReceiveStatusOfULPDCPSDUsExtended.h \
+ ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h \
+ RecommendedCellsForPaging.h \
+ RecommendedCellList.h \
+ RecommendedCellItem.h \
+ RecommendedENBsForPaging.h \
+ RecommendedENBList.h \
+ RecommendedENBItem.h \
+ RelativeMMECapacity.h \
+ RelayNode-Indicator.h \
+ RAC.h \
+ RAT-Type.h \
+ ReportAmountMDT.h \
+ ReportIntervalMDT.h \
+ M1ReportingTrigger.h \
+ RequestType.h \
+ RequestTypeAdditionalInfo.h \
+ RIMTransfer.h \
+ RIMInformation.h \
+ RIMRoutingAddress.h \
+ ReportArea.h \
+ RepetitionPeriod.h \
+ RLFReportInformation.h \
+ RNC-ID.h \
+ RRC-Container.h \
+ RRC-Establishment-Cause.h \
+ ECGIListForRestart.h \
+ Routing-ID.h \
+ SecurityKey.h \
+ SecurityContext.h \
+ SecondaryRATType.h \
+ SecondaryRATDataUsageRequest.h \
+ SecondaryRATDataUsageReportList.h \
+ SecondaryRATDataUsageReportItem.h \
+ SerialNumber.h \
+ ServiceType.h \
+ SONInformation.h \
+ SONInformation-Extension.h \
+ SONInformationRequest.h \
+ SONInformationReply.h \
+ SONInformationReport.h \
+ SONConfigurationTransfer.h \
+ SynchronisationInformation.h \
+ Source-ToTarget-TransparentContainer.h \
+ SourceBSS-ToTargetBSS-TransparentContainer.h \
+ SourceeNB-ID.h \
+ SRVCCOperationNotPossible.h \
+ SRVCCOperationPossible.h \
+ SRVCCHOIndication.h \
+ SourceeNB-ToTargeteNB-TransparentContainer.h \
+ SourceRNC-ToTargetRNC-TransparentContainer.h \
+ SourceNgRanNode-ToTargetNgRanNode-TransparentContainer.h \
+ ServedGUMMEIs.h \
+ ServedGUMMEIsItem.h \
+ ServedGroupIDs.h \
+ ServedMMECs.h \
+ ServedPLMNs.h \
+ SubscriberProfileIDforRFP.h \
+ Subscription-Based-UE-DifferentiationInfo.h \
+ ScheduledCommunicationTime.h \
+ SupportedTAs.h \
+ SupportedTAs-Item.h \
+ StratumLevel.h \
+ SynchronisationStatus.h \
+ TimeSynchronisationInfo.h \
+ S-TMSI.h \
+ TAC.h \
+ TAIBasedMDT.h \
+ TAIListforMDT.h \
+ TAIListforWarning.h \
+ TAI.h \
+ TAI-Broadcast.h \
+ TAI-Broadcast-Item.h \
+ TAI-Cancelled.h \
+ TAI-Cancelled-Item.h \
+ TABasedMDT.h \
+ TAListforMDT.h \
+ TABasedQMC.h \
+ TAListforQMC.h \
+ TAIBasedQMC.h \
+ TAIListforQMC.h \
+ CompletedCellinTAI.h \
+ CompletedCellinTAI-Item.h \
+ TBCD-STRING.h \
+ TargetID.h \
+ TargeteNB-ID.h \
+ TargetRNC-ID.h \
+ TargetNgRanNode-ID.h \
+ Global-RAN-NODE-ID.h \
+ GNB.h \
+ Global-GNB-ID.h \
+ GNB-Identity.h \
+ NG-eNB.h \
+ GNB-ID.h \
+ TargeteNB-ToSourceeNB-TransparentContainer.h \
+ Target-ToSource-TransparentContainer.h \
+ TargetRNC-ToSourceRNC-TransparentContainer.h \
+ TargetBSS-ToSourceBSS-TransparentContainer.h \
+ TargetNgRanNode-ToSourceNgRanNode-TransparentContainer.h \
+ M1ThresholdEventA2.h \
+ Threshold-RSRP.h \
+ Threshold-RSRQ.h \
+ TimeToWait.h \
+ Time-UE-StayedInCell.h \
+ Time-UE-StayedInCell-EnhancedGranularity.h \
+ TimeSinceSecondaryNodeRelease.h \
+ TransportInformation.h \
+ TransportLayerAddress.h \
+ TraceActivation.h \
+ TraceDepth.h \
+ E-UTRAN-Trace-ID.h \
+ TrafficLoadReductionIndication.h \
+ TunnelInformation.h \
+ TypeOfError.h \
+ TAIListForRestart.h \
+ UEAggregateMaximumBitrate.h \
+ UEAppLayerMeasConfig.h \
+ UECapabilityInfoRequest.h \
+ UE-RetentionInformation.h \
+ UE-S1AP-IDs.h \
+ UE-S1AP-ID-pair.h \
+ UE-associatedLogicalS1-ConnectionItem.h \
+ UEIdentityIndexValue.h \
+ UE-HistoryInformation.h \
+ UE-HistoryInformationFromTheUE.h \
+ UEPagingID.h \
+ UERadioCapability.h \
+ UERadioCapabilityForPaging.h \
+ UE-RLF-Report-Container.h \
+ UE-RLF-Report-Container-for-extended-bands.h \
+ UESecurityCapabilities.h \
+ UESidelinkAggregateMaximumBitrate.h \
+ UE-Usage-Type.h \
+ UL-CP-SecurityInformation.h \
+ UL-NAS-MAC.h \
+ UL-NAS-Count.h \
+ UnlicensedSpectrumRestriction.h \
+ UserLocationInformation.h \
+ UEUserPlaneCIoTSupportIndicator.h \
+ UE-Application-Layer-Measurement-Capability.h \
+ VoiceSupportMatchIndicator.h \
+ V2XServicesAuthorized.h \
+ VehicleUE.h \
+ PedestrianUE.h \
+ WarningAreaCoordinates.h \
+ WarningAreaList.h \
+ WarningType.h \
+ WarningSecurityInfo.h \
+ WarningMessageContents.h \
+ WLANMeasurementConfiguration.h \
+ WLANMeasConfigNameList.h \
+ WLANMeasConfig.h \
+ WLANName.h \
+ X2TNLConfigurationInfo.h \
+ ENBX2ExtTLAs.h \
+ ENBX2ExtTLA.h \
+ ENBX2GTPTLAs.h \
+ ENBIndirectX2TransportLayerAddresses.h \
+ E-RAB-IE-ContainerList.h \
+ E-RAB-IE-ContainerPairList.h \
+ ProtocolError-IE-ContainerList.h \
+ HandoverRequired.h \
+ HandoverCommand.h \
+ E-RABSubjecttoDataForwardingList.h \
+ E-RABDataForwardingItem.h \
+ HandoverPreparationFailure.h \
+ HandoverRequest.h \
+ E-RABToBeSetupListHOReq.h \
+ E-RABToBeSetupItemHOReq.h \
+ HandoverRequestAcknowledge.h \
+ E-RABAdmittedList.h \
+ E-RABAdmittedItem.h \
+ E-RABFailedtoSetupListHOReqAck.h \
+ E-RABFailedToSetupItemHOReqAck.h \
+ HandoverFailure.h \
+ HandoverNotify.h \
+ PathSwitchRequest.h \
+ E-RABToBeSwitchedDLList.h \
+ E-RABToBeSwitchedDLItem.h \
+ PathSwitchRequestAcknowledge.h \
+ E-RABToBeSwitchedULList.h \
+ E-RABToBeSwitchedULItem.h \
+ PathSwitchRequestFailure.h \
+ HandoverCancel.h \
+ HandoverCancelAcknowledge.h \
+ E-RABSetupRequest.h \
+ E-RABToBeSetupListBearerSUReq.h \
+ E-RABToBeSetupItemBearerSUReq.h \
+ E-RABSetupResponse.h \
+ E-RABSetupListBearerSURes.h \
+ E-RABSetupItemBearerSURes.h \
+ E-RABModifyRequest.h \
+ E-RABToBeModifiedListBearerModReq.h \
+ E-RABToBeModifiedItemBearerModReq.h \
+ E-RABModifyResponse.h \
+ E-RABModifyListBearerModRes.h \
+ E-RABModifyItemBearerModRes.h \
+ E-RABReleaseCommand.h \
+ E-RABReleaseResponse.h \
+ E-RABReleaseListBearerRelComp.h \
+ E-RABReleaseItemBearerRelComp.h \
+ E-RABReleaseIndication.h \
+ InitialContextSetupRequest.h \
+ E-RABToBeSetupListCtxtSUReq.h \
+ E-RABToBeSetupItemCtxtSUReq.h \
+ InitialContextSetupResponse.h \
+ E-RABSetupListCtxtSURes.h \
+ E-RABSetupItemCtxtSURes.h \
+ InitialContextSetupFailure.h \
+ Paging.h \
+ TAIList.h \
+ TAIItem.h \
+ UEContextReleaseRequest.h \
+ UEContextReleaseCommand.h \
+ UEContextReleaseComplete.h \
+ UEContextModificationRequest.h \
+ UEContextModificationResponse.h \
+ UEContextModificationFailure.h \
+ UERadioCapabilityMatchRequest.h \
+ UERadioCapabilityMatchResponse.h \
+ DownlinkNASTransport.h \
+ InitialUEMessage.h \
+ UplinkNASTransport.h \
+ NASNonDeliveryIndication.h \
+ RerouteNASRequest.h \
+ NASDeliveryIndication.h \
+ Reset.h \
+ ResetType.h \
+ ResetAll.h \
+ UE-associatedLogicalS1-ConnectionListRes.h \
+ ResetAcknowledge.h \
+ UE-associatedLogicalS1-ConnectionListResAck.h \
+ ErrorIndication.h \
+ S1SetupRequest.h \
+ S1SetupResponse.h \
+ S1SetupFailure.h \
+ ENBConfigurationUpdate.h \
+ ENBConfigurationUpdateAcknowledge.h \
+ ENBConfigurationUpdateFailure.h \
+ MMEConfigurationUpdate.h \
+ MMEConfigurationUpdateAcknowledge.h \
+ MMEConfigurationUpdateFailure.h \
+ DownlinkS1cdma2000tunnelling.h \
+ UplinkS1cdma2000tunnelling.h \
+ UECapabilityInfoIndication.h \
+ ENBStatusTransfer.h \
+ MMEStatusTransfer.h \
+ TraceStart.h \
+ TraceFailureIndication.h \
+ DeactivateTrace.h \
+ CellTrafficTrace.h \
+ LocationReportingControl.h \
+ LocationReportingFailureIndication.h \
+ LocationReport.h \
+ OverloadStart.h \
+ OverloadStop.h \
+ WriteReplaceWarningRequest.h \
+ WriteReplaceWarningResponse.h \
+ ENBDirectInformationTransfer.h \
+ Inter-SystemInformationTransferType.h \
+ MMEDirectInformationTransfer.h \
+ ENBConfigurationTransfer.h \
+ MMEConfigurationTransfer.h \
+ PrivateMessage.h \
+ KillRequest.h \
+ KillResponse.h \
+ PWSRestartIndication.h \
+ PWSFailureIndication.h \
+ DownlinkUEAssociatedLPPaTransport.h \
+ UplinkUEAssociatedLPPaTransport.h \
+ DownlinkNonUEAssociatedLPPaTransport.h \
+ UplinkNonUEAssociatedLPPaTransport.h \
+ E-RABModificationIndication.h \
+ E-RABToBeModifiedListBearerModInd.h \
+ E-RABToBeModifiedItemBearerModInd.h \
+ E-RABNotToBeModifiedListBearerModInd.h \
+ E-RABNotToBeModifiedItemBearerModInd.h \
+ CSGMembershipInfo.h \
+ E-RABModificationConfirm.h \
+ E-RABModifyListBearerModConf.h \
+ E-RABModifyItemBearerModConf.h \
+ UEContextModificationIndication.h \
+ UEContextModificationConfirm.h \
+ UEContextSuspendRequest.h \
+ UEContextSuspendResponse.h \
+ UEContextResumeRequest.h \
+ E-RABFailedToResumeListResumeReq.h \
+ E-RABFailedToResumeItemResumeReq.h \
+ UEContextResumeResponse.h \
+ E-RABFailedToResumeListResumeRes.h \
+ E-RABFailedToResumeItemResumeRes.h \
+ UEContextResumeFailure.h \
+ ConnectionEstablishmentIndication.h \
+ RetrieveUEInformation.h \
+ UEInformationTransfer.h \
+ ENBCPRelocationIndication.h \
+ MMECPRelocationIndication.h \
+ SecondaryRATDataUsageReport.h \
+ S1AP-PDU.h \
+ InitiatingMessage.h \
+ SuccessfulOutcome.h \
+ UnsuccessfulOutcome.h \
+ EXTERNAL.h
+
+ASN_MODULE_HDRS+=ANY.h
+ASN_MODULE_SRCS+=ANY.c
+ASN_MODULE_HDRS+=OCTET_STRING.h
+ASN_MODULE_HDRS+=OPEN_TYPE.h
+ASN_MODULE_SRCS+=OPEN_TYPE.c
+ASN_MODULE_HDRS+=constr_CHOICE.h
+ASN_MODULE_HDRS+=BOOLEAN.h
+ASN_MODULE_SRCS+=BOOLEAN.c
+ASN_MODULE_HDRS+=GraphicString.h
+ASN_MODULE_SRCS+=GraphicString.c
+ASN_MODULE_HDRS+=INTEGER.h
+ASN_MODULE_SRCS+=INTEGER.c
+ASN_MODULE_HDRS+=NULL.h
+ASN_MODULE_SRCS+=NULL.c
+ASN_MODULE_HDRS+=NativeEnumerated.h
+ASN_MODULE_SRCS+=NativeEnumerated.c
+ASN_MODULE_HDRS+=NativeInteger.h
+ASN_MODULE_SRCS+=NativeInteger.c
+ASN_MODULE_HDRS+=OBJECT_IDENTIFIER.h
+ASN_MODULE_SRCS+=OBJECT_IDENTIFIER.c
+ASN_MODULE_HDRS+=ObjectDescriptor.h
+ASN_MODULE_SRCS+=ObjectDescriptor.c
+ASN_MODULE_HDRS+=PrintableString.h
+ASN_MODULE_SRCS+=PrintableString.c
+ASN_MODULE_HDRS+=asn_SEQUENCE_OF.h
+ASN_MODULE_SRCS+=asn_SEQUENCE_OF.c
+ASN_MODULE_HDRS+=asn_SET_OF.h
+ASN_MODULE_SRCS+=asn_SET_OF.c
+ASN_MODULE_SRCS+=constr_CHOICE.c
+ASN_MODULE_HDRS+=constr_SEQUENCE.h
+ASN_MODULE_SRCS+=constr_SEQUENCE.c
+ASN_MODULE_HDRS+=constr_SEQUENCE_OF.h
+ASN_MODULE_SRCS+=constr_SEQUENCE_OF.c
+ASN_MODULE_HDRS+=constr_SET_OF.h
+ASN_MODULE_SRCS+=constr_SET_OF.c
+ASN_MODULE_HDRS+=asn_application.h
+ASN_MODULE_SRCS+=asn_application.c
+ASN_MODULE_HDRS+=asn_ioc.h
+ASN_MODULE_HDRS+=asn_system.h
+ASN_MODULE_HDRS+=asn_codecs.h
+ASN_MODULE_HDRS+=asn_internal.h
+ASN_MODULE_SRCS+=asn_internal.c
+ASN_MODULE_HDRS+=asn_random_fill.h
+ASN_MODULE_SRCS+=asn_random_fill.c
+ASN_MODULE_HDRS+=asn_bit_data.h
+ASN_MODULE_SRCS+=asn_bit_data.c
+ASN_MODULE_SRCS+=OCTET_STRING.c
+ASN_MODULE_HDRS+=BIT_STRING.h
+ASN_MODULE_SRCS+=BIT_STRING.c
+ASN_MODULE_SRCS+=asn_codecs_prim.c
+ASN_MODULE_HDRS+=asn_codecs_prim.h
+ASN_MODULE_HDRS+=ber_tlv_length.h
+ASN_MODULE_SRCS+=ber_tlv_length.c
+ASN_MODULE_HDRS+=ber_tlv_tag.h
+ASN_MODULE_SRCS+=ber_tlv_tag.c
+ASN_MODULE_HDRS+=ber_decoder.h
+ASN_MODULE_SRCS+=ber_decoder.c
+ASN_MODULE_HDRS+=der_encoder.h
+ASN_MODULE_SRCS+=der_encoder.c
+ASN_MODULE_HDRS+=constr_TYPE.h
+ASN_MODULE_SRCS+=constr_TYPE.c
+ASN_MODULE_HDRS+=constraints.h
+ASN_MODULE_SRCS+=constraints.c
+ASN_MODULE_HDRS+=xer_support.h
+ASN_MODULE_SRCS+=xer_support.c
+ASN_MODULE_HDRS+=xer_decoder.h
+ASN_MODULE_SRCS+=xer_decoder.c
+ASN_MODULE_HDRS+=xer_encoder.h
+ASN_MODULE_SRCS+=xer_encoder.c
+ASN_MODULE_HDRS+=per_support.h
+ASN_MODULE_SRCS+=per_support.c
+ASN_MODULE_HDRS+=per_decoder.h
+ASN_MODULE_SRCS+=per_decoder.c
+ASN_MODULE_HDRS+=per_encoder.h
+ASN_MODULE_SRCS+=per_encoder.c
+ASN_MODULE_HDRS+=per_opentype.h
+ASN_MODULE_SRCS+=per_opentype.c
+ASN_MODULE_HDRS+=oer_decoder.h
+ASN_MODULE_HDRS+=oer_encoder.h
+ASN_MODULE_HDRS+=oer_support.h
+ASN_MODULE_SRCS+=oer_decoder.c
+ASN_MODULE_SRCS+=oer_encoder.c
+ASN_MODULE_SRCS+=oer_support.c
+ASN_MODULE_SRCS+=OPEN_TYPE_oer.c
+ASN_MODULE_SRCS+=INTEGER_oer.c
+ASN_MODULE_SRCS+=BIT_STRING_oer.c
+ASN_MODULE_SRCS+=OCTET_STRING_oer.c
+ASN_MODULE_SRCS+=NativeInteger_oer.c
+ASN_MODULE_SRCS+=NativeEnumerated_oer.c
+ASN_MODULE_SRCS+=constr_CHOICE_oer.c
+ASN_MODULE_SRCS+=constr_SEQUENCE_oer.c
+ASN_MODULE_SRCS+=constr_SET_OF_oer.c
+
+ASN_MODULE_CFLAGS=
+
+lib_LTLIBRARIES+=libasncodec.la
+libasncodec_la_SOURCES=$(ASN_MODULE_SRCS) $(ASN_MODULE_HDRS)
+libasncodec_la_CPPFLAGS=-I$(top_srcdir)/
+libasncodec_la_CFLAGS=$(ASN_MODULE_CFLAGS)
+libasncodec_la_LDFLAGS=-lm
diff --git a/src/s1ap/asn1c/asnGenFiles/ManagementBasedMDTAllowed.h b/src/s1ap/asn1c/asnGenFiles/ManagementBasedMDTAllowed.h
new file mode 100644
index 0000000..94271fb
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ManagementBasedMDTAllowed.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ManagementBasedMDTAllowed_H_
+#define _ManagementBasedMDTAllowed_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ManagementBasedMDTAllowed {
+ ManagementBasedMDTAllowed_allowed = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_ManagementBasedMDTAllowed;
+
+/* ManagementBasedMDTAllowed */
+typedef long ManagementBasedMDTAllowed_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ManagementBasedMDTAllowed_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ManagementBasedMDTAllowed;
+extern const asn_INTEGER_specifics_t asn_SPC_ManagementBasedMDTAllowed_specs_1;
+asn_struct_free_f ManagementBasedMDTAllowed_free;
+asn_struct_print_f ManagementBasedMDTAllowed_print;
+asn_constr_check_f ManagementBasedMDTAllowed_constraint;
+ber_type_decoder_f ManagementBasedMDTAllowed_decode_ber;
+der_type_encoder_f ManagementBasedMDTAllowed_encode_der;
+xer_type_decoder_f ManagementBasedMDTAllowed_decode_xer;
+xer_type_encoder_f ManagementBasedMDTAllowed_encode_xer;
+oer_type_decoder_f ManagementBasedMDTAllowed_decode_oer;
+oer_type_encoder_f ManagementBasedMDTAllowed_encode_oer;
+per_type_decoder_f ManagementBasedMDTAllowed_decode_uper;
+per_type_encoder_f ManagementBasedMDTAllowed_encode_uper;
+per_type_decoder_f ManagementBasedMDTAllowed_decode_aper;
+per_type_encoder_f ManagementBasedMDTAllowed_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ManagementBasedMDTAllowed_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Masked-IMEISV.h b/src/s1ap/asn1c/asnGenFiles/Masked-IMEISV.h
new file mode 100644
index 0000000..16d4e19
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Masked-IMEISV.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Masked_IMEISV_H_
+#define _Masked_IMEISV_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Masked-IMEISV */
+typedef BIT_STRING_t Masked_IMEISV_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Masked_IMEISV_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Masked_IMEISV;
+asn_struct_free_f Masked_IMEISV_free;
+asn_struct_print_f Masked_IMEISV_print;
+asn_constr_check_f Masked_IMEISV_constraint;
+ber_type_decoder_f Masked_IMEISV_decode_ber;
+der_type_encoder_f Masked_IMEISV_encode_der;
+xer_type_decoder_f Masked_IMEISV_decode_xer;
+xer_type_encoder_f Masked_IMEISV_encode_xer;
+oer_type_decoder_f Masked_IMEISV_decode_oer;
+oer_type_encoder_f Masked_IMEISV_encode_oer;
+per_type_decoder_f Masked_IMEISV_decode_uper;
+per_type_encoder_f Masked_IMEISV_encode_uper;
+per_type_decoder_f Masked_IMEISV_decode_aper;
+per_type_encoder_f Masked_IMEISV_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Masked_IMEISV_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MeasurementThresholdA2.h b/src/s1ap/asn1c/asnGenFiles/MeasurementThresholdA2.h
new file mode 100644
index 0000000..b5f41b6
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MeasurementThresholdA2.h
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MeasurementThresholdA2_H_
+#define _MeasurementThresholdA2_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "Threshold-RSRP.h"
+#include "Threshold-RSRQ.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum MeasurementThresholdA2_PR {
+ MeasurementThresholdA2_PR_NOTHING, /* No components present */
+ MeasurementThresholdA2_PR_threshold_RSRP,
+ MeasurementThresholdA2_PR_threshold_RSRQ
+ /* Extensions may appear below */
+
+} MeasurementThresholdA2_PR;
+
+/* MeasurementThresholdA2 */
+typedef struct MeasurementThresholdA2 {
+ MeasurementThresholdA2_PR present;
+ union MeasurementThresholdA2_u {
+ Threshold_RSRP_t threshold_RSRP;
+ Threshold_RSRQ_t threshold_RSRQ;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} MeasurementThresholdA2_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MeasurementThresholdA2;
+extern asn_CHOICE_specifics_t asn_SPC_MeasurementThresholdA2_specs_1;
+extern asn_TYPE_member_t asn_MBR_MeasurementThresholdA2_1[2];
+extern asn_per_constraints_t asn_PER_type_MeasurementThresholdA2_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MeasurementThresholdA2_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MeasurementsToActivate.h b/src/s1ap/asn1c/asnGenFiles/MeasurementsToActivate.h
new file mode 100644
index 0000000..0b039d5
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MeasurementsToActivate.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MeasurementsToActivate_H_
+#define _MeasurementsToActivate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MeasurementsToActivate */
+typedef BIT_STRING_t MeasurementsToActivate_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_MeasurementsToActivate_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_MeasurementsToActivate;
+asn_struct_free_f MeasurementsToActivate_free;
+asn_struct_print_f MeasurementsToActivate_print;
+asn_constr_check_f MeasurementsToActivate_constraint;
+ber_type_decoder_f MeasurementsToActivate_decode_ber;
+der_type_encoder_f MeasurementsToActivate_encode_der;
+xer_type_decoder_f MeasurementsToActivate_decode_xer;
+xer_type_encoder_f MeasurementsToActivate_encode_xer;
+oer_type_decoder_f MeasurementsToActivate_decode_oer;
+oer_type_encoder_f MeasurementsToActivate_encode_oer;
+per_type_decoder_f MeasurementsToActivate_decode_uper;
+per_type_encoder_f MeasurementsToActivate_encode_uper;
+per_type_decoder_f MeasurementsToActivate_decode_aper;
+per_type_encoder_f MeasurementsToActivate_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MeasurementsToActivate_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MessageIdentifier.h b/src/s1ap/asn1c/asnGenFiles/MessageIdentifier.h
new file mode 100644
index 0000000..599d8a1
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MessageIdentifier.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MessageIdentifier_H_
+#define _MessageIdentifier_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MessageIdentifier */
+typedef BIT_STRING_t MessageIdentifier_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_MessageIdentifier_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_MessageIdentifier;
+asn_struct_free_f MessageIdentifier_free;
+asn_struct_print_f MessageIdentifier_print;
+asn_constr_check_f MessageIdentifier_constraint;
+ber_type_decoder_f MessageIdentifier_decode_ber;
+der_type_encoder_f MessageIdentifier_encode_der;
+xer_type_decoder_f MessageIdentifier_decode_xer;
+xer_type_encoder_f MessageIdentifier_encode_xer;
+oer_type_decoder_f MessageIdentifier_decode_oer;
+oer_type_encoder_f MessageIdentifier_encode_oer;
+per_type_decoder_f MessageIdentifier_decode_uper;
+per_type_encoder_f MessageIdentifier_encode_uper;
+per_type_decoder_f MessageIdentifier_decode_aper;
+per_type_encoder_f MessageIdentifier_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MessageIdentifier_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MobilityInformation.h b/src/s1ap/asn1c/asnGenFiles/MobilityInformation.h
new file mode 100644
index 0000000..773b2bd
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MobilityInformation.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MobilityInformation_H_
+#define _MobilityInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MobilityInformation */
+typedef BIT_STRING_t MobilityInformation_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_MobilityInformation_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_MobilityInformation;
+asn_struct_free_f MobilityInformation_free;
+asn_struct_print_f MobilityInformation_print;
+asn_constr_check_f MobilityInformation_constraint;
+ber_type_decoder_f MobilityInformation_decode_ber;
+der_type_encoder_f MobilityInformation_encode_der;
+xer_type_decoder_f MobilityInformation_decode_xer;
+xer_type_encoder_f MobilityInformation_encode_xer;
+oer_type_decoder_f MobilityInformation_decode_oer;
+oer_type_encoder_f MobilityInformation_encode_oer;
+per_type_decoder_f MobilityInformation_decode_uper;
+per_type_encoder_f MobilityInformation_encode_uper;
+per_type_decoder_f MobilityInformation_decode_aper;
+per_type_encoder_f MobilityInformation_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MobilityInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MutingAvailabilityIndication.h b/src/s1ap/asn1c/asnGenFiles/MutingAvailabilityIndication.h
new file mode 100644
index 0000000..4a1cc87
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MutingAvailabilityIndication.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MutingAvailabilityIndication_H_
+#define _MutingAvailabilityIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum MutingAvailabilityIndication {
+ MutingAvailabilityIndication_available = 0,
+ MutingAvailabilityIndication_unavailable = 1
+ /*
+ * Enumeration is extensible
+ */
+} e_MutingAvailabilityIndication;
+
+/* MutingAvailabilityIndication */
+typedef long MutingAvailabilityIndication_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_MutingAvailabilityIndication_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_MutingAvailabilityIndication;
+extern const asn_INTEGER_specifics_t asn_SPC_MutingAvailabilityIndication_specs_1;
+asn_struct_free_f MutingAvailabilityIndication_free;
+asn_struct_print_f MutingAvailabilityIndication_print;
+asn_constr_check_f MutingAvailabilityIndication_constraint;
+ber_type_decoder_f MutingAvailabilityIndication_decode_ber;
+der_type_encoder_f MutingAvailabilityIndication_encode_der;
+xer_type_decoder_f MutingAvailabilityIndication_decode_xer;
+xer_type_encoder_f MutingAvailabilityIndication_encode_xer;
+oer_type_decoder_f MutingAvailabilityIndication_decode_oer;
+oer_type_encoder_f MutingAvailabilityIndication_encode_oer;
+per_type_decoder_f MutingAvailabilityIndication_decode_uper;
+per_type_encoder_f MutingAvailabilityIndication_encode_uper;
+per_type_decoder_f MutingAvailabilityIndication_decode_aper;
+per_type_encoder_f MutingAvailabilityIndication_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MutingAvailabilityIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/MutingPatternInformation.h b/src/s1ap/asn1c/asnGenFiles/MutingPatternInformation.h
new file mode 100644
index 0000000..01498e5
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/MutingPatternInformation.h
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _MutingPatternInformation_H_
+#define _MutingPatternInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum MutingPatternInformation__muting_pattern_period {
+ MutingPatternInformation__muting_pattern_period_ms0 = 0,
+ MutingPatternInformation__muting_pattern_period_ms1280 = 1,
+ MutingPatternInformation__muting_pattern_period_ms2560 = 2,
+ MutingPatternInformation__muting_pattern_period_ms5120 = 3,
+ MutingPatternInformation__muting_pattern_period_ms10240 = 4
+ /*
+ * Enumeration is extensible
+ */
+} e_MutingPatternInformation__muting_pattern_period;
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* MutingPatternInformation */
+typedef struct MutingPatternInformation {
+ long muting_pattern_period;
+ long *muting_pattern_offset; /* 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;
+} MutingPatternInformation_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_muting_pattern_period_2; // (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_MutingPatternInformation;
+extern asn_SEQUENCE_specifics_t asn_SPC_MutingPatternInformation_specs_1;
+extern asn_TYPE_member_t asn_MBR_MutingPatternInformation_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MutingPatternInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/NAS-PDU.h b/src/s1ap/asn1c/asnGenFiles/NAS-PDU.h
new file mode 100644
index 0000000..a7d8f88
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/NAS-PDU.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _NAS_PDU_H_
+#define _NAS_PDU_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* NAS-PDU */
+typedef OCTET_STRING_t NAS_PDU_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NAS_PDU;
+asn_struct_free_f NAS_PDU_free;
+asn_struct_print_f NAS_PDU_print;
+asn_constr_check_f NAS_PDU_constraint;
+ber_type_decoder_f NAS_PDU_decode_ber;
+der_type_encoder_f NAS_PDU_encode_der;
+xer_type_decoder_f NAS_PDU_decode_xer;
+xer_type_encoder_f NAS_PDU_encode_xer;
+oer_type_decoder_f NAS_PDU_decode_oer;
+oer_type_encoder_f NAS_PDU_encode_oer;
+per_type_decoder_f NAS_PDU_decode_uper;
+per_type_encoder_f NAS_PDU_encode_uper;
+per_type_decoder_f NAS_PDU_decode_aper;
+per_type_encoder_f NAS_PDU_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NAS_PDU_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/NASDeliveryIndication.h b/src/s1ap/asn1c/asnGenFiles/NASDeliveryIndication.h
new file mode 100644
index 0000000..81cbf85
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/NASDeliveryIndication.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _NASDeliveryIndication_H_
+#define _NASDeliveryIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* NASDeliveryIndication */
+typedef struct NASDeliveryIndication {
+ ProtocolIE_Container_129P36_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} NASDeliveryIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NASDeliveryIndication;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NASDeliveryIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/NASNonDeliveryIndication.h b/src/s1ap/asn1c/asnGenFiles/NASNonDeliveryIndication.h
new file mode 100644
index 0000000..d00543b
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/NASNonDeliveryIndication.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _NASNonDeliveryIndication_H_
+#define _NASNonDeliveryIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* NASNonDeliveryIndication */
+typedef struct NASNonDeliveryIndication {
+ ProtocolIE_Container_129P34_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} NASNonDeliveryIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NASNonDeliveryIndication;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NASNonDeliveryIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/NASSecurityParametersfromE-UTRAN.h b/src/s1ap/asn1c/asnGenFiles/NASSecurityParametersfromE-UTRAN.h
new file mode 100644
index 0000000..1cee507
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/NASSecurityParametersfromE-UTRAN.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _NASSecurityParametersfromE_UTRAN_H_
+#define _NASSecurityParametersfromE_UTRAN_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* NASSecurityParametersfromE-UTRAN */
+typedef OCTET_STRING_t NASSecurityParametersfromE_UTRAN_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NASSecurityParametersfromE_UTRAN;
+asn_struct_free_f NASSecurityParametersfromE_UTRAN_free;
+asn_struct_print_f NASSecurityParametersfromE_UTRAN_print;
+asn_constr_check_f NASSecurityParametersfromE_UTRAN_constraint;
+ber_type_decoder_f NASSecurityParametersfromE_UTRAN_decode_ber;
+der_type_encoder_f NASSecurityParametersfromE_UTRAN_encode_der;
+xer_type_decoder_f NASSecurityParametersfromE_UTRAN_decode_xer;
+xer_type_encoder_f NASSecurityParametersfromE_UTRAN_encode_xer;
+oer_type_decoder_f NASSecurityParametersfromE_UTRAN_decode_oer;
+oer_type_encoder_f NASSecurityParametersfromE_UTRAN_encode_oer;
+per_type_decoder_f NASSecurityParametersfromE_UTRAN_decode_uper;
+per_type_encoder_f NASSecurityParametersfromE_UTRAN_encode_uper;
+per_type_decoder_f NASSecurityParametersfromE_UTRAN_decode_aper;
+per_type_encoder_f NASSecurityParametersfromE_UTRAN_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NASSecurityParametersfromE_UTRAN_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/NASSecurityParameterstoE-UTRAN.h b/src/s1ap/asn1c/asnGenFiles/NASSecurityParameterstoE-UTRAN.h
new file mode 100644
index 0000000..28f388e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/NASSecurityParameterstoE-UTRAN.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _NASSecurityParameterstoE_UTRAN_H_
+#define _NASSecurityParameterstoE_UTRAN_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* NASSecurityParameterstoE-UTRAN */
+typedef OCTET_STRING_t NASSecurityParameterstoE_UTRAN_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NASSecurityParameterstoE_UTRAN;
+asn_struct_free_f NASSecurityParameterstoE_UTRAN_free;
+asn_struct_print_f NASSecurityParameterstoE_UTRAN_print;
+asn_constr_check_f NASSecurityParameterstoE_UTRAN_constraint;
+ber_type_decoder_f NASSecurityParameterstoE_UTRAN_decode_ber;
+der_type_encoder_f NASSecurityParameterstoE_UTRAN_encode_der;
+xer_type_decoder_f NASSecurityParameterstoE_UTRAN_decode_xer;
+xer_type_encoder_f NASSecurityParameterstoE_UTRAN_encode_xer;
+oer_type_decoder_f NASSecurityParameterstoE_UTRAN_decode_oer;
+oer_type_encoder_f NASSecurityParameterstoE_UTRAN_encode_oer;
+per_type_decoder_f NASSecurityParameterstoE_UTRAN_decode_uper;
+per_type_encoder_f NASSecurityParameterstoE_UTRAN_encode_uper;
+per_type_decoder_f NASSecurityParameterstoE_UTRAN_decode_aper;
+per_type_encoder_f NASSecurityParameterstoE_UTRAN_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NASSecurityParameterstoE_UTRAN_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/NB-IoT-DefaultPagingDRX.h b/src/s1ap/asn1c/asnGenFiles/NB-IoT-DefaultPagingDRX.h
new file mode 100644
index 0000000..5f46965
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/NB-IoT-DefaultPagingDRX.h
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _NB_IoT_DefaultPagingDRX_H_
+#define _NB_IoT_DefaultPagingDRX_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum NB_IoT_DefaultPagingDRX {
+ NB_IoT_DefaultPagingDRX_v128 = 0,
+ NB_IoT_DefaultPagingDRX_v256 = 1,
+ NB_IoT_DefaultPagingDRX_v512 = 2,
+ NB_IoT_DefaultPagingDRX_v1024 = 3
+ /*
+ * Enumeration is extensible
+ */
+} e_NB_IoT_DefaultPagingDRX;
+
+/* NB-IoT-DefaultPagingDRX */
+typedef long NB_IoT_DefaultPagingDRX_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_NB_IoT_DefaultPagingDRX_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_NB_IoT_DefaultPagingDRX;
+extern const asn_INTEGER_specifics_t asn_SPC_NB_IoT_DefaultPagingDRX_specs_1;
+asn_struct_free_f NB_IoT_DefaultPagingDRX_free;
+asn_struct_print_f NB_IoT_DefaultPagingDRX_print;
+asn_constr_check_f NB_IoT_DefaultPagingDRX_constraint;
+ber_type_decoder_f NB_IoT_DefaultPagingDRX_decode_ber;
+der_type_encoder_f NB_IoT_DefaultPagingDRX_encode_der;
+xer_type_decoder_f NB_IoT_DefaultPagingDRX_decode_xer;
+xer_type_encoder_f NB_IoT_DefaultPagingDRX_encode_xer;
+oer_type_decoder_f NB_IoT_DefaultPagingDRX_decode_oer;
+oer_type_encoder_f NB_IoT_DefaultPagingDRX_encode_oer;
+per_type_decoder_f NB_IoT_DefaultPagingDRX_decode_uper;
+per_type_encoder_f NB_IoT_DefaultPagingDRX_encode_uper;
+per_type_decoder_f NB_IoT_DefaultPagingDRX_decode_aper;
+per_type_encoder_f NB_IoT_DefaultPagingDRX_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NB_IoT_DefaultPagingDRX_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/NB-IoT-Paging-eDRX-Cycle.h b/src/s1ap/asn1c/asnGenFiles/NB-IoT-Paging-eDRX-Cycle.h
new file mode 100644
index 0000000..b9ccac7
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/NB-IoT-Paging-eDRX-Cycle.h
@@ -0,0 +1,68 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _NB_IoT_Paging_eDRX_Cycle_H_
+#define _NB_IoT_Paging_eDRX_Cycle_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum NB_IoT_Paging_eDRX_Cycle {
+ NB_IoT_Paging_eDRX_Cycle_hf2 = 0,
+ NB_IoT_Paging_eDRX_Cycle_hf4 = 1,
+ NB_IoT_Paging_eDRX_Cycle_hf6 = 2,
+ NB_IoT_Paging_eDRX_Cycle_hf8 = 3,
+ NB_IoT_Paging_eDRX_Cycle_hf10 = 4,
+ NB_IoT_Paging_eDRX_Cycle_hf12 = 5,
+ NB_IoT_Paging_eDRX_Cycle_hf14 = 6,
+ NB_IoT_Paging_eDRX_Cycle_hf16 = 7,
+ NB_IoT_Paging_eDRX_Cycle_hf32 = 8,
+ NB_IoT_Paging_eDRX_Cycle_hf64 = 9,
+ NB_IoT_Paging_eDRX_Cycle_hf128 = 10,
+ NB_IoT_Paging_eDRX_Cycle_hf256 = 11,
+ NB_IoT_Paging_eDRX_Cycle_hf512 = 12,
+ NB_IoT_Paging_eDRX_Cycle_hf1024 = 13
+ /*
+ * Enumeration is extensible
+ */
+} e_NB_IoT_Paging_eDRX_Cycle;
+
+/* NB-IoT-Paging-eDRX-Cycle */
+typedef long NB_IoT_Paging_eDRX_Cycle_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_NB_IoT_Paging_eDRX_Cycle_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_NB_IoT_Paging_eDRX_Cycle;
+extern const asn_INTEGER_specifics_t asn_SPC_NB_IoT_Paging_eDRX_Cycle_specs_1;
+asn_struct_free_f NB_IoT_Paging_eDRX_Cycle_free;
+asn_struct_print_f NB_IoT_Paging_eDRX_Cycle_print;
+asn_constr_check_f NB_IoT_Paging_eDRX_Cycle_constraint;
+ber_type_decoder_f NB_IoT_Paging_eDRX_Cycle_decode_ber;
+der_type_encoder_f NB_IoT_Paging_eDRX_Cycle_encode_der;
+xer_type_decoder_f NB_IoT_Paging_eDRX_Cycle_decode_xer;
+xer_type_encoder_f NB_IoT_Paging_eDRX_Cycle_encode_xer;
+oer_type_decoder_f NB_IoT_Paging_eDRX_Cycle_decode_oer;
+oer_type_encoder_f NB_IoT_Paging_eDRX_Cycle_encode_oer;
+per_type_decoder_f NB_IoT_Paging_eDRX_Cycle_decode_uper;
+per_type_encoder_f NB_IoT_Paging_eDRX_Cycle_encode_uper;
+per_type_decoder_f NB_IoT_Paging_eDRX_Cycle_decode_aper;
+per_type_encoder_f NB_IoT_Paging_eDRX_Cycle_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NB_IoT_Paging_eDRX_Cycle_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/NB-IoT-Paging-eDRXInformation.h b/src/s1ap/asn1c/asnGenFiles/NB-IoT-Paging-eDRXInformation.h
new file mode 100644
index 0000000..50731c3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/NB-IoT-Paging-eDRXInformation.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _NB_IoT_Paging_eDRXInformation_H_
+#define _NB_IoT_Paging_eDRXInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "NB-IoT-Paging-eDRX-Cycle.h"
+#include "NB-IoT-PagingTimeWindow.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* NB-IoT-Paging-eDRXInformation */
+typedef struct NB_IoT_Paging_eDRXInformation {
+ NB_IoT_Paging_eDRX_Cycle_t nB_IoT_paging_eDRX_Cycle;
+ NB_IoT_PagingTimeWindow_t *nB_IoT_pagingTimeWindow; /* 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;
+} NB_IoT_Paging_eDRXInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NB_IoT_Paging_eDRXInformation;
+extern asn_SEQUENCE_specifics_t asn_SPC_NB_IoT_Paging_eDRXInformation_specs_1;
+extern asn_TYPE_member_t asn_MBR_NB_IoT_Paging_eDRXInformation_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NB_IoT_Paging_eDRXInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/NB-IoT-PagingTimeWindow.h b/src/s1ap/asn1c/asnGenFiles/NB-IoT-PagingTimeWindow.h
new file mode 100644
index 0000000..6fdb6e2
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/NB-IoT-PagingTimeWindow.h
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _NB_IoT_PagingTimeWindow_H_
+#define _NB_IoT_PagingTimeWindow_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum NB_IoT_PagingTimeWindow {
+ NB_IoT_PagingTimeWindow_s1 = 0,
+ NB_IoT_PagingTimeWindow_s2 = 1,
+ NB_IoT_PagingTimeWindow_s3 = 2,
+ NB_IoT_PagingTimeWindow_s4 = 3,
+ NB_IoT_PagingTimeWindow_s5 = 4,
+ NB_IoT_PagingTimeWindow_s6 = 5,
+ NB_IoT_PagingTimeWindow_s7 = 6,
+ NB_IoT_PagingTimeWindow_s8 = 7,
+ NB_IoT_PagingTimeWindow_s9 = 8,
+ NB_IoT_PagingTimeWindow_s10 = 9,
+ NB_IoT_PagingTimeWindow_s11 = 10,
+ NB_IoT_PagingTimeWindow_s12 = 11,
+ NB_IoT_PagingTimeWindow_s13 = 12,
+ NB_IoT_PagingTimeWindow_s14 = 13,
+ NB_IoT_PagingTimeWindow_s15 = 14,
+ NB_IoT_PagingTimeWindow_s16 = 15
+ /*
+ * Enumeration is extensible
+ */
+} e_NB_IoT_PagingTimeWindow;
+
+/* NB-IoT-PagingTimeWindow */
+typedef long NB_IoT_PagingTimeWindow_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_NB_IoT_PagingTimeWindow_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_NB_IoT_PagingTimeWindow;
+extern const asn_INTEGER_specifics_t asn_SPC_NB_IoT_PagingTimeWindow_specs_1;
+asn_struct_free_f NB_IoT_PagingTimeWindow_free;
+asn_struct_print_f NB_IoT_PagingTimeWindow_print;
+asn_constr_check_f NB_IoT_PagingTimeWindow_constraint;
+ber_type_decoder_f NB_IoT_PagingTimeWindow_decode_ber;
+der_type_encoder_f NB_IoT_PagingTimeWindow_encode_der;
+xer_type_decoder_f NB_IoT_PagingTimeWindow_decode_xer;
+xer_type_encoder_f NB_IoT_PagingTimeWindow_encode_xer;
+oer_type_decoder_f NB_IoT_PagingTimeWindow_decode_oer;
+oer_type_encoder_f NB_IoT_PagingTimeWindow_encode_oer;
+per_type_decoder_f NB_IoT_PagingTimeWindow_decode_uper;
+per_type_encoder_f NB_IoT_PagingTimeWindow_encode_uper;
+per_type_decoder_f NB_IoT_PagingTimeWindow_decode_aper;
+per_type_encoder_f NB_IoT_PagingTimeWindow_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NB_IoT_PagingTimeWindow_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/NB-IoT-UEIdentityIndexValue.h b/src/s1ap/asn1c/asnGenFiles/NB-IoT-UEIdentityIndexValue.h
new file mode 100644
index 0000000..9c29703
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/NB-IoT-UEIdentityIndexValue.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _NB_IoT_UEIdentityIndexValue_H_
+#define _NB_IoT_UEIdentityIndexValue_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* NB-IoT-UEIdentityIndexValue */
+typedef BIT_STRING_t NB_IoT_UEIdentityIndexValue_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_NB_IoT_UEIdentityIndexValue_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_NB_IoT_UEIdentityIndexValue;
+asn_struct_free_f NB_IoT_UEIdentityIndexValue_free;
+asn_struct_print_f NB_IoT_UEIdentityIndexValue_print;
+asn_constr_check_f NB_IoT_UEIdentityIndexValue_constraint;
+ber_type_decoder_f NB_IoT_UEIdentityIndexValue_decode_ber;
+der_type_encoder_f NB_IoT_UEIdentityIndexValue_encode_der;
+xer_type_decoder_f NB_IoT_UEIdentityIndexValue_decode_xer;
+xer_type_encoder_f NB_IoT_UEIdentityIndexValue_encode_xer;
+oer_type_decoder_f NB_IoT_UEIdentityIndexValue_decode_oer;
+oer_type_encoder_f NB_IoT_UEIdentityIndexValue_encode_oer;
+per_type_decoder_f NB_IoT_UEIdentityIndexValue_decode_uper;
+per_type_encoder_f NB_IoT_UEIdentityIndexValue_encode_uper;
+per_type_decoder_f NB_IoT_UEIdentityIndexValue_decode_aper;
+per_type_encoder_f NB_IoT_UEIdentityIndexValue_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NB_IoT_UEIdentityIndexValue_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/NG-eNB.h b/src/s1ap/asn1c/asnGenFiles/NG-eNB.h
new file mode 100644
index 0000000..77f7f70
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/NG-eNB.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _NG_eNB_H_
+#define _NG_eNB_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "Global-ENB-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* NG-eNB */
+typedef struct NG_eNB {
+ Global_ENB_ID_t global_ng_eNB_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;
+} NG_eNB_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NG_eNB;
+extern asn_SEQUENCE_specifics_t asn_SPC_NG_eNB_specs_1;
+extern asn_TYPE_member_t asn_MBR_NG_eNB_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NG_eNB_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/NR-CGI.h b/src/s1ap/asn1c/asnGenFiles/NR-CGI.h
new file mode 100644
index 0000000..3288408
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/NR-CGI.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _NR_CGI_H_
+#define _NR_CGI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNidentity.h"
+#include "NRCellIdentity.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* NR-CGI */
+typedef struct NR_CGI {
+ PLMNidentity_t pLMNIdentity;
+ 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;
+} NR_CGI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NR_CGI;
+extern asn_SEQUENCE_specifics_t asn_SPC_NR_CGI_specs_1;
+extern asn_TYPE_member_t asn_MBR_NR_CGI_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NR_CGI_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/NRCellIdentity.h b/src/s1ap/asn1c/asnGenFiles/NRCellIdentity.h
new file mode 100644
index 0000000..bb55c69
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/NRCellIdentity.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _NRCellIdentity_H_
+#define _NRCellIdentity_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* NRCellIdentity */
+typedef BIT_STRING_t NRCellIdentity_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_NRCellIdentity_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_NRCellIdentity;
+asn_struct_free_f NRCellIdentity_free;
+asn_struct_print_f NRCellIdentity_print;
+asn_constr_check_f NRCellIdentity_constraint;
+ber_type_decoder_f NRCellIdentity_decode_ber;
+der_type_encoder_f NRCellIdentity_encode_der;
+xer_type_decoder_f NRCellIdentity_decode_xer;
+xer_type_encoder_f NRCellIdentity_encode_xer;
+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 <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/NRUESecurityCapabilities.h b/src/s1ap/asn1c/asnGenFiles/NRUESecurityCapabilities.h
new file mode 100644
index 0000000..e70b5cd
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/NRUESecurityCapabilities.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _NRUESecurityCapabilities_H_
+#define _NRUESecurityCapabilities_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "NRencryptionAlgorithms.h"
+#include "NRintegrityProtectionAlgorithms.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* NRUESecurityCapabilities */
+typedef struct NRUESecurityCapabilities {
+ NRencryptionAlgorithms_t nRencryptionAlgorithms;
+ NRintegrityProtectionAlgorithms_t nRintegrityProtectionAlgorithms;
+ 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;
+} NRUESecurityCapabilities_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NRUESecurityCapabilities;
+extern asn_SEQUENCE_specifics_t asn_SPC_NRUESecurityCapabilities_specs_1;
+extern asn_TYPE_member_t asn_MBR_NRUESecurityCapabilities_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NRUESecurityCapabilities_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/NRencryptionAlgorithms.h b/src/s1ap/asn1c/asnGenFiles/NRencryptionAlgorithms.h
new file mode 100644
index 0000000..e67c5d4
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/NRencryptionAlgorithms.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _NRencryptionAlgorithms_H_
+#define _NRencryptionAlgorithms_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* NRencryptionAlgorithms */
+typedef BIT_STRING_t NRencryptionAlgorithms_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_NRencryptionAlgorithms_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_NRencryptionAlgorithms;
+asn_struct_free_f NRencryptionAlgorithms_free;
+asn_struct_print_f NRencryptionAlgorithms_print;
+asn_constr_check_f NRencryptionAlgorithms_constraint;
+ber_type_decoder_f NRencryptionAlgorithms_decode_ber;
+der_type_encoder_f NRencryptionAlgorithms_encode_der;
+xer_type_decoder_f NRencryptionAlgorithms_decode_xer;
+xer_type_encoder_f NRencryptionAlgorithms_encode_xer;
+oer_type_decoder_f NRencryptionAlgorithms_decode_oer;
+oer_type_encoder_f NRencryptionAlgorithms_encode_oer;
+per_type_decoder_f NRencryptionAlgorithms_decode_uper;
+per_type_encoder_f NRencryptionAlgorithms_encode_uper;
+per_type_decoder_f NRencryptionAlgorithms_decode_aper;
+per_type_encoder_f NRencryptionAlgorithms_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NRencryptionAlgorithms_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/NRintegrityProtectionAlgorithms.h b/src/s1ap/asn1c/asnGenFiles/NRintegrityProtectionAlgorithms.h
new file mode 100644
index 0000000..c9a988a
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/NRintegrityProtectionAlgorithms.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _NRintegrityProtectionAlgorithms_H_
+#define _NRintegrityProtectionAlgorithms_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* NRintegrityProtectionAlgorithms */
+typedef BIT_STRING_t NRintegrityProtectionAlgorithms_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_NRintegrityProtectionAlgorithms_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_NRintegrityProtectionAlgorithms;
+asn_struct_free_f NRintegrityProtectionAlgorithms_free;
+asn_struct_print_f NRintegrityProtectionAlgorithms_print;
+asn_constr_check_f NRintegrityProtectionAlgorithms_constraint;
+ber_type_decoder_f NRintegrityProtectionAlgorithms_decode_ber;
+der_type_encoder_f NRintegrityProtectionAlgorithms_encode_der;
+xer_type_decoder_f NRintegrityProtectionAlgorithms_decode_xer;
+xer_type_encoder_f NRintegrityProtectionAlgorithms_encode_xer;
+oer_type_decoder_f NRintegrityProtectionAlgorithms_decode_oer;
+oer_type_encoder_f NRintegrityProtectionAlgorithms_encode_oer;
+per_type_decoder_f NRintegrityProtectionAlgorithms_decode_uper;
+per_type_encoder_f NRintegrityProtectionAlgorithms_encode_uper;
+per_type_decoder_f NRintegrityProtectionAlgorithms_decode_aper;
+per_type_encoder_f NRintegrityProtectionAlgorithms_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NRintegrityProtectionAlgorithms_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/NRrestrictionin5GS.h b/src/s1ap/asn1c/asnGenFiles/NRrestrictionin5GS.h
new file mode 100644
index 0000000..88957d4
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/NRrestrictionin5GS.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _NRrestrictionin5GS_H_
+#define _NRrestrictionin5GS_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum NRrestrictionin5GS {
+ NRrestrictionin5GS_nRrestrictedin5GS = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_NRrestrictionin5GS;
+
+/* NRrestrictionin5GS */
+typedef long NRrestrictionin5GS_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_NRrestrictionin5GS_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_NRrestrictionin5GS;
+extern const asn_INTEGER_specifics_t asn_SPC_NRrestrictionin5GS_specs_1;
+asn_struct_free_f NRrestrictionin5GS_free;
+asn_struct_print_f NRrestrictionin5GS_print;
+asn_constr_check_f NRrestrictionin5GS_constraint;
+ber_type_decoder_f NRrestrictionin5GS_decode_ber;
+der_type_encoder_f NRrestrictionin5GS_encode_der;
+xer_type_decoder_f NRrestrictionin5GS_decode_xer;
+xer_type_encoder_f NRrestrictionin5GS_encode_xer;
+oer_type_decoder_f NRrestrictionin5GS_decode_oer;
+oer_type_encoder_f NRrestrictionin5GS_encode_oer;
+per_type_decoder_f NRrestrictionin5GS_decode_uper;
+per_type_encoder_f NRrestrictionin5GS_encode_uper;
+per_type_decoder_f NRrestrictionin5GS_decode_aper;
+per_type_encoder_f NRrestrictionin5GS_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NRrestrictionin5GS_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/NRrestrictioninEPSasSecondaryRAT.h b/src/s1ap/asn1c/asnGenFiles/NRrestrictioninEPSasSecondaryRAT.h
new file mode 100644
index 0000000..c30adbd
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/NRrestrictioninEPSasSecondaryRAT.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _NRrestrictioninEPSasSecondaryRAT_H_
+#define _NRrestrictioninEPSasSecondaryRAT_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum NRrestrictioninEPSasSecondaryRAT {
+ NRrestrictioninEPSasSecondaryRAT_nRrestrictedinEPSasSecondaryRAT = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_NRrestrictioninEPSasSecondaryRAT;
+
+/* NRrestrictioninEPSasSecondaryRAT */
+typedef long NRrestrictioninEPSasSecondaryRAT_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_NRrestrictioninEPSasSecondaryRAT_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_NRrestrictioninEPSasSecondaryRAT;
+extern const asn_INTEGER_specifics_t asn_SPC_NRrestrictioninEPSasSecondaryRAT_specs_1;
+asn_struct_free_f NRrestrictioninEPSasSecondaryRAT_free;
+asn_struct_print_f NRrestrictioninEPSasSecondaryRAT_print;
+asn_constr_check_f NRrestrictioninEPSasSecondaryRAT_constraint;
+ber_type_decoder_f NRrestrictioninEPSasSecondaryRAT_decode_ber;
+der_type_encoder_f NRrestrictioninEPSasSecondaryRAT_encode_der;
+xer_type_decoder_f NRrestrictioninEPSasSecondaryRAT_decode_xer;
+xer_type_encoder_f NRrestrictioninEPSasSecondaryRAT_encode_xer;
+oer_type_decoder_f NRrestrictioninEPSasSecondaryRAT_decode_oer;
+oer_type_encoder_f NRrestrictioninEPSasSecondaryRAT_encode_oer;
+per_type_decoder_f NRrestrictioninEPSasSecondaryRAT_decode_uper;
+per_type_encoder_f NRrestrictioninEPSasSecondaryRAT_encode_uper;
+per_type_decoder_f NRrestrictioninEPSasSecondaryRAT_decode_aper;
+per_type_encoder_f NRrestrictioninEPSasSecondaryRAT_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NRrestrictioninEPSasSecondaryRAT_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/NULL.h b/src/s1ap/asn1c/asnGenFiles/NULL.h
new file mode 100644
index 0000000..802d12c
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/NULL.h
@@ -0,0 +1,45 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef ASN_TYPE_NULL_H
+#define ASN_TYPE_NULL_H
+
+#include <asn_application.h>
+#include <BOOLEAN.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * The value of the NULL type is meaningless: see BOOLEAN if you want to
+ * carry true/false semantics.
+ */
+typedef int NULL_t;
+
+extern asn_TYPE_descriptor_t asn_DEF_NULL;
+extern asn_TYPE_operation_t asn_OP_NULL;
+
+asn_struct_print_f NULL_print;
+asn_struct_compare_f NULL_compare;
+der_type_encoder_f NULL_encode_der;
+xer_type_decoder_f NULL_decode_xer;
+xer_type_encoder_f NULL_encode_xer;
+oer_type_decoder_f NULL_decode_oer;
+oer_type_encoder_f NULL_encode_oer;
+per_type_decoder_f NULL_decode_uper;
+per_type_encoder_f NULL_encode_uper;
+per_type_decoder_f NULL_decode_aper;
+per_type_encoder_f NULL_encode_aper;
+asn_random_fill_f NULL_random_fill;
+
+#define NULL_free BOOLEAN_free
+#define NULL_decode_ber BOOLEAN_decode_ber
+#define NULL_constraint asn_generic_no_constraint
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* NULL_H */
diff --git a/src/s1ap/asn1c/asnGenFiles/NativeEnumerated.h b/src/s1ap/asn1c/asnGenFiles/NativeEnumerated.h
new file mode 100644
index 0000000..459f0e6
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/NativeEnumerated.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2004-2017 Lev Walkin <vlm@lionet.info>. 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 <NativeInteger.h>
+
+#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/s1ap/asn1c/asnGenFiles/NativeInteger.h b/src/s1ap/asn1c/asnGenFiles/NativeInteger.h
new file mode 100644
index 0000000..c74406a
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/NativeInteger.h
@@ -0,0 +1,46 @@
+/*-
+ * Copyright (c) 2004-2017 Lev Walkin <vlm@lionet.info>. 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 <asn_application.h>
+#include <INTEGER.h>
+
+#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/s1ap/asn1c/asnGenFiles/NextPagingAreaScope.h b/src/s1ap/asn1c/asnGenFiles/NextPagingAreaScope.h
new file mode 100644
index 0000000..d1d1c6d
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/NextPagingAreaScope.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _NextPagingAreaScope_H_
+#define _NextPagingAreaScope_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum NextPagingAreaScope {
+ NextPagingAreaScope_same = 0,
+ NextPagingAreaScope_changed = 1
+ /*
+ * Enumeration is extensible
+ */
+} e_NextPagingAreaScope;
+
+/* NextPagingAreaScope */
+typedef long NextPagingAreaScope_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_NextPagingAreaScope_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_NextPagingAreaScope;
+extern const asn_INTEGER_specifics_t asn_SPC_NextPagingAreaScope_specs_1;
+asn_struct_free_f NextPagingAreaScope_free;
+asn_struct_print_f NextPagingAreaScope_print;
+asn_constr_check_f NextPagingAreaScope_constraint;
+ber_type_decoder_f NextPagingAreaScope_decode_ber;
+der_type_encoder_f NextPagingAreaScope_encode_der;
+xer_type_decoder_f NextPagingAreaScope_decode_xer;
+xer_type_encoder_f NextPagingAreaScope_encode_xer;
+oer_type_decoder_f NextPagingAreaScope_decode_oer;
+oer_type_encoder_f NextPagingAreaScope_encode_oer;
+per_type_decoder_f NextPagingAreaScope_decode_uper;
+per_type_encoder_f NextPagingAreaScope_encode_uper;
+per_type_decoder_f NextPagingAreaScope_decode_aper;
+per_type_encoder_f NextPagingAreaScope_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NextPagingAreaScope_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/NumberOfBroadcasts.h b/src/s1ap/asn1c/asnGenFiles/NumberOfBroadcasts.h
new file mode 100644
index 0000000..ec5e9cb
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/NumberOfBroadcasts.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _NumberOfBroadcasts_H_
+#define _NumberOfBroadcasts_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#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 <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/NumberofBroadcastRequest.h b/src/s1ap/asn1c/asnGenFiles/NumberofBroadcastRequest.h
new file mode 100644
index 0000000..54fd539
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/NumberofBroadcastRequest.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _NumberofBroadcastRequest_H_
+#define _NumberofBroadcastRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* NumberofBroadcastRequest */
+typedef long NumberofBroadcastRequest_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_NumberofBroadcastRequest_constr_1;
+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 <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/OBJECT_IDENTIFIER.h b/src/s1ap/asn1c/asnGenFiles/OBJECT_IDENTIFIER.h
new file mode 100644
index 0000000..087c6fd
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/OBJECT_IDENTIFIER.h
@@ -0,0 +1,156 @@
+/*
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef _OBJECT_IDENTIFIER_H_
+#define _OBJECT_IDENTIFIER_H_
+
+#include <asn_application.h>
+#include <asn_codecs_prim.h>
+#include <OCTET_STRING.h>
+
+#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.
+ * <n>: 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/s1ap/asn1c/asnGenFiles/OCTET_STRING.h b/src/s1ap/asn1c/asnGenFiles/OCTET_STRING.h
new file mode 100644
index 0000000..c2f8bae
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/OCTET_STRING.h
@@ -0,0 +1,102 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef _OCTET_STRING_H_
+#define _OCTET_STRING_H_
+
+#include <asn_application.h>
+
+#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/s1ap/asn1c/asnGenFiles/OPEN_TYPE.h b/src/s1ap/asn1c/asnGenFiles/OPEN_TYPE.h
new file mode 100644
index 0000000..b0d023c
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/OPEN_TYPE.h
@@ -0,0 +1,77 @@
+/*-
+ * Copyright (c) 2017-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef ASN_OPEN_TYPE_H
+#define ASN_OPEN_TYPE_H
+
+#include <asn_application.h>
+
+#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/s1ap/asn1c/asnGenFiles/ObjectDescriptor.h b/src/s1ap/asn1c/asnGenFiles/ObjectDescriptor.h
new file mode 100644
index 0000000..fa1c1fc
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ObjectDescriptor.h
@@ -0,0 +1,35 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef _ObjectDescriptor_H_
+#define _ObjectDescriptor_H_
+
+#include <GraphicString.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef GraphicString_t ObjectDescriptor_t; /* Implemented via GraphicString */
+
+extern asn_TYPE_descriptor_t asn_DEF_ObjectDescriptor;
+extern asn_TYPE_operation_t asn_OP_ObjectDescriptor;
+
+#define ObjectDescriptor_free OCTET_STRING_free
+#define ObjectDescriptor_print OCTET_STRING_print_utf8
+#define ObjectDescriptor_constraint asn_generic_unknown_constraint
+#define ObjectDescriptor_decode_ber OCTET_STRING_decode_ber
+#define ObjectDescriptor_encode_der OCTET_STRING_encode_der
+#define ObjectDescriptor_decode_xer OCTET_STRING_decode_xer_utf8
+#define ObjectDescriptor_encode_xer OCTET_STRING_encode_xer_utf8
+#define ObjectDescriptor_decode_uper OCTET_STRING_decode_uper
+#define ObjectDescriptor_encode_uper OCTET_STRING_encode_uper
+#define ObjectDescriptor_decode_aper OCTET_STRING_decode_aper
+#define ObjectDescriptor_encode_aper OCTET_STRING_encode_aper
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ObjectDescriptor_H_ */
diff --git a/src/s1ap/asn1c/asnGenFiles/OldBSS-ToNewBSS-Information.h b/src/s1ap/asn1c/asnGenFiles/OldBSS-ToNewBSS-Information.h
new file mode 100644
index 0000000..6c3b2c0
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/OldBSS-ToNewBSS-Information.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _OldBSS_ToNewBSS_Information_H_
+#define _OldBSS_ToNewBSS_Information_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* OldBSS-ToNewBSS-Information */
+typedef OCTET_STRING_t OldBSS_ToNewBSS_Information_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_OldBSS_ToNewBSS_Information;
+asn_struct_free_f OldBSS_ToNewBSS_Information_free;
+asn_struct_print_f OldBSS_ToNewBSS_Information_print;
+asn_constr_check_f OldBSS_ToNewBSS_Information_constraint;
+ber_type_decoder_f OldBSS_ToNewBSS_Information_decode_ber;
+der_type_encoder_f OldBSS_ToNewBSS_Information_encode_der;
+xer_type_decoder_f OldBSS_ToNewBSS_Information_decode_xer;
+xer_type_encoder_f OldBSS_ToNewBSS_Information_encode_xer;
+oer_type_decoder_f OldBSS_ToNewBSS_Information_decode_oer;
+oer_type_encoder_f OldBSS_ToNewBSS_Information_encode_oer;
+per_type_decoder_f OldBSS_ToNewBSS_Information_decode_uper;
+per_type_encoder_f OldBSS_ToNewBSS_Information_encode_uper;
+per_type_decoder_f OldBSS_ToNewBSS_Information_decode_aper;
+per_type_encoder_f OldBSS_ToNewBSS_Information_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _OldBSS_ToNewBSS_Information_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/OverloadAction.h b/src/s1ap/asn1c/asnGenFiles/OverloadAction.h
new file mode 100644
index 0000000..de7abd5
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/OverloadAction.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _OverloadAction_H_
+#define _OverloadAction_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum OverloadAction {
+ OverloadAction_reject_non_emergency_mo_dt = 0,
+ OverloadAction_reject_rrc_cr_signalling = 1,
+ OverloadAction_permit_emergency_sessions_and_mobile_terminated_services_only = 2,
+ /*
+ * Enumeration is extensible
+ */
+ OverloadAction_permit_high_priority_sessions_and_mobile_terminated_services_only = 3,
+ OverloadAction_reject_delay_tolerant_access = 4,
+ OverloadAction_permit_high_priority_sessions_and_exception_reporting_and_mobile_terminated_services_only = 5,
+ OverloadAction_not_accept_mo_data_or_delay_tolerant_access_from_CP_CIoT = 6
+} e_OverloadAction;
+
+/* OverloadAction */
+typedef long OverloadAction_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_OverloadAction_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_OverloadAction;
+extern const asn_INTEGER_specifics_t asn_SPC_OverloadAction_specs_1;
+asn_struct_free_f OverloadAction_free;
+asn_struct_print_f OverloadAction_print;
+asn_constr_check_f OverloadAction_constraint;
+ber_type_decoder_f OverloadAction_decode_ber;
+der_type_encoder_f OverloadAction_encode_der;
+xer_type_decoder_f OverloadAction_decode_xer;
+xer_type_encoder_f OverloadAction_encode_xer;
+oer_type_decoder_f OverloadAction_decode_oer;
+oer_type_encoder_f OverloadAction_encode_oer;
+per_type_decoder_f OverloadAction_decode_uper;
+per_type_encoder_f OverloadAction_encode_uper;
+per_type_decoder_f OverloadAction_decode_aper;
+per_type_encoder_f OverloadAction_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _OverloadAction_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/OverloadResponse.h b/src/s1ap/asn1c/asnGenFiles/OverloadResponse.h
new file mode 100644
index 0000000..fbb09cd
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/OverloadResponse.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _OverloadResponse_H_
+#define _OverloadResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "OverloadAction.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum OverloadResponse_PR {
+ OverloadResponse_PR_NOTHING, /* No components present */
+ OverloadResponse_PR_overloadAction
+ /* Extensions may appear below */
+
+} OverloadResponse_PR;
+
+/* OverloadResponse */
+typedef struct OverloadResponse {
+ OverloadResponse_PR present;
+ union OverloadResponse_u {
+ OverloadAction_t overloadAction;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} OverloadResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_OverloadResponse;
+extern asn_CHOICE_specifics_t asn_SPC_OverloadResponse_specs_1;
+extern asn_TYPE_member_t asn_MBR_OverloadResponse_1[1];
+extern asn_per_constraints_t asn_PER_type_OverloadResponse_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _OverloadResponse_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/OverloadStart.h b/src/s1ap/asn1c/asnGenFiles/OverloadStart.h
new file mode 100644
index 0000000..3b99027
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/OverloadStart.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _OverloadStart_H_
+#define _OverloadStart_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* OverloadStart */
+typedef struct OverloadStart {
+ ProtocolIE_Container_129P61_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} OverloadStart_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_OverloadStart;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _OverloadStart_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/OverloadStop.h b/src/s1ap/asn1c/asnGenFiles/OverloadStop.h
new file mode 100644
index 0000000..af9fd67
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/OverloadStop.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _OverloadStop_H_
+#define _OverloadStop_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* OverloadStop */
+typedef struct OverloadStop {
+ ProtocolIE_Container_129P62_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} OverloadStop_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_OverloadStop;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _OverloadStop_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PDCP-SN.h b/src/s1ap/asn1c/asnGenFiles/PDCP-SN.h
new file mode 100644
index 0000000..62dd773
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PDCP-SN.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PDCP_SN_H_
+#define _PDCP_SN_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#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 <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PDCP-SNExtended.h b/src/s1ap/asn1c/asnGenFiles/PDCP-SNExtended.h
new file mode 100644
index 0000000..912acf5
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PDCP-SNExtended.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PDCP_SNExtended_H_
+#define _PDCP_SNExtended_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* PDCP-SNExtended */
+typedef long PDCP_SNExtended_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_PDCP_SNExtended_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_PDCP_SNExtended;
+asn_struct_free_f PDCP_SNExtended_free;
+asn_struct_print_f PDCP_SNExtended_print;
+asn_constr_check_f PDCP_SNExtended_constraint;
+ber_type_decoder_f PDCP_SNExtended_decode_ber;
+der_type_encoder_f PDCP_SNExtended_encode_der;
+xer_type_decoder_f PDCP_SNExtended_decode_xer;
+xer_type_encoder_f PDCP_SNExtended_encode_xer;
+oer_type_decoder_f PDCP_SNExtended_decode_oer;
+oer_type_encoder_f PDCP_SNExtended_encode_oer;
+per_type_decoder_f PDCP_SNExtended_decode_uper;
+per_type_encoder_f PDCP_SNExtended_encode_uper;
+per_type_decoder_f PDCP_SNExtended_decode_aper;
+per_type_encoder_f PDCP_SNExtended_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PDCP_SNExtended_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PDCP-SNlength18.h b/src/s1ap/asn1c/asnGenFiles/PDCP-SNlength18.h
new file mode 100644
index 0000000..5f3b656
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PDCP-SNlength18.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PDCP_SNlength18_H_
+#define _PDCP_SNlength18_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* PDCP-SNlength18 */
+typedef long PDCP_SNlength18_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_PDCP_SNlength18_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_PDCP_SNlength18;
+asn_struct_free_f PDCP_SNlength18_free;
+asn_struct_print_f PDCP_SNlength18_print;
+asn_constr_check_f PDCP_SNlength18_constraint;
+ber_type_decoder_f PDCP_SNlength18_decode_ber;
+der_type_encoder_f PDCP_SNlength18_encode_der;
+xer_type_decoder_f PDCP_SNlength18_decode_xer;
+xer_type_encoder_f PDCP_SNlength18_encode_xer;
+oer_type_decoder_f PDCP_SNlength18_decode_oer;
+oer_type_encoder_f PDCP_SNlength18_encode_oer;
+per_type_decoder_f PDCP_SNlength18_decode_uper;
+per_type_encoder_f PDCP_SNlength18_encode_uper;
+per_type_decoder_f PDCP_SNlength18_decode_aper;
+per_type_encoder_f PDCP_SNlength18_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PDCP_SNlength18_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PLMNAreaBasedQMC.h b/src/s1ap/asn1c/asnGenFiles/PLMNAreaBasedQMC.h
new file mode 100644
index 0000000..8c6baf3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PLMNAreaBasedQMC.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PLMNAreaBasedQMC_H_
+#define _PLMNAreaBasedQMC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNListforQMC.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* PLMNAreaBasedQMC */
+typedef struct PLMNAreaBasedQMC {
+ PLMNListforQMC_t plmnListforQMC;
+ 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;
+} PLMNAreaBasedQMC_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_PLMNAreaBasedQMC;
+extern asn_SEQUENCE_specifics_t asn_SPC_PLMNAreaBasedQMC_specs_1;
+extern asn_TYPE_member_t asn_MBR_PLMNAreaBasedQMC_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PLMNAreaBasedQMC_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PLMNListforQMC.h b/src/s1ap/asn1c/asnGenFiles/PLMNListforQMC.h
new file mode 100644
index 0000000..4eb8f6e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PLMNListforQMC.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PLMNListforQMC_H_
+#define _PLMNListforQMC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNidentity.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* PLMNListforQMC */
+typedef struct PLMNListforQMC {
+ A_SEQUENCE_OF(PLMNidentity_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} PLMNListforQMC_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_PLMNListforQMC;
+extern asn_SET_OF_specifics_t asn_SPC_PLMNListforQMC_specs_1;
+extern asn_TYPE_member_t asn_MBR_PLMNListforQMC_1[1];
+extern asn_per_constraints_t asn_PER_type_PLMNListforQMC_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PLMNListforQMC_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PLMNidentity.h b/src/s1ap/asn1c/asnGenFiles/PLMNidentity.h
new file mode 100644
index 0000000..ab1603e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PLMNidentity.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PLMNidentity_H_
+#define _PLMNidentity_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TBCD-STRING.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* PLMNidentity */
+typedef TBCD_STRING_t PLMNidentity_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_PLMNidentity_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_PLMNidentity;
+asn_struct_free_f PLMNidentity_free;
+asn_struct_print_f PLMNidentity_print;
+asn_constr_check_f PLMNidentity_constraint;
+ber_type_decoder_f PLMNidentity_decode_ber;
+der_type_encoder_f PLMNidentity_encode_der;
+xer_type_decoder_f PLMNidentity_decode_xer;
+xer_type_encoder_f PLMNidentity_encode_xer;
+oer_type_decoder_f PLMNidentity_decode_oer;
+oer_type_encoder_f PLMNidentity_encode_oer;
+per_type_decoder_f PLMNidentity_decode_uper;
+per_type_encoder_f PLMNidentity_encode_uper;
+per_type_decoder_f PLMNidentity_decode_aper;
+per_type_encoder_f PLMNidentity_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PLMNidentity_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PS-ServiceNotAvailable.h b/src/s1ap/asn1c/asnGenFiles/PS-ServiceNotAvailable.h
new file mode 100644
index 0000000..64a6ee5
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PS-ServiceNotAvailable.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PS_ServiceNotAvailable_H_
+#define _PS_ServiceNotAvailable_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum PS_ServiceNotAvailable {
+ PS_ServiceNotAvailable_ps_service_not_available = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_PS_ServiceNotAvailable;
+
+/* PS-ServiceNotAvailable */
+typedef long PS_ServiceNotAvailable_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_PS_ServiceNotAvailable_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_PS_ServiceNotAvailable;
+extern const asn_INTEGER_specifics_t asn_SPC_PS_ServiceNotAvailable_specs_1;
+asn_struct_free_f PS_ServiceNotAvailable_free;
+asn_struct_print_f PS_ServiceNotAvailable_print;
+asn_constr_check_f PS_ServiceNotAvailable_constraint;
+ber_type_decoder_f PS_ServiceNotAvailable_decode_ber;
+der_type_encoder_f PS_ServiceNotAvailable_encode_der;
+xer_type_decoder_f PS_ServiceNotAvailable_decode_xer;
+xer_type_encoder_f PS_ServiceNotAvailable_encode_xer;
+oer_type_decoder_f PS_ServiceNotAvailable_decode_oer;
+oer_type_encoder_f PS_ServiceNotAvailable_encode_oer;
+per_type_decoder_f PS_ServiceNotAvailable_decode_uper;
+per_type_encoder_f PS_ServiceNotAvailable_encode_uper;
+per_type_decoder_f PS_ServiceNotAvailable_decode_aper;
+per_type_encoder_f PS_ServiceNotAvailable_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PS_ServiceNotAvailable_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PSCellInformation.h b/src/s1ap/asn1c/asnGenFiles/PSCellInformation.h
new file mode 100644
index 0000000..961b090
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PSCellInformation.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PSCellInformation_H_
+#define _PSCellInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "NR-CGI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* PSCellInformation */
+typedef struct PSCellInformation {
+ NR_CGI_t nCGI;
+ 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;
+} PSCellInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_PSCellInformation;
+extern asn_SEQUENCE_specifics_t asn_SPC_PSCellInformation_specs_1;
+extern asn_TYPE_member_t asn_MBR_PSCellInformation_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PSCellInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PWSFailureIndication.h b/src/s1ap/asn1c/asnGenFiles/PWSFailureIndication.h
new file mode 100644
index 0000000..cfe9392
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PWSFailureIndication.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PWSFailureIndication_H_
+#define _PWSFailureIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* PWSFailureIndication */
+typedef struct PWSFailureIndication {
+ ProtocolIE_Container_129P72_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;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PWSFailureIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PWSRestartIndication.h b/src/s1ap/asn1c/asnGenFiles/PWSRestartIndication.h
new file mode 100644
index 0000000..4a5e2c0
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PWSRestartIndication.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PWSRestartIndication_H_
+#define _PWSRestartIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* PWSRestartIndication */
+typedef struct PWSRestartIndication {
+ ProtocolIE_Container_129P71_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;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PWSRestartIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PWSfailedECGIList.h b/src/s1ap/asn1c/asnGenFiles/PWSfailedECGIList.h
new file mode 100644
index 0000000..760a309
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PWSfailedECGIList.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PWSfailedECGIList_H_
+#define _PWSfailedECGIList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct EUTRAN_CGI;
+
+/* PWSfailedECGIList */
+typedef struct PWSfailedECGIList {
+ A_SEQUENCE_OF(struct EUTRAN_CGI) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} PWSfailedECGIList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_PWSfailedECGIList;
+extern asn_SET_OF_specifics_t asn_SPC_PWSfailedECGIList_specs_1;
+extern asn_TYPE_member_t asn_MBR_PWSfailedECGIList_1[1];
+extern asn_per_constraints_t asn_PER_type_PWSfailedECGIList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PWSfailedECGIList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Packet-LossRate.h b/src/s1ap/asn1c/asnGenFiles/Packet-LossRate.h
new file mode 100644
index 0000000..3644bf2
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Packet-LossRate.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Packet_LossRate_H_
+#define _Packet_LossRate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Packet-LossRate */
+typedef long Packet_LossRate_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Packet_LossRate_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Packet_LossRate;
+asn_struct_free_f Packet_LossRate_free;
+asn_struct_print_f Packet_LossRate_print;
+asn_constr_check_f Packet_LossRate_constraint;
+ber_type_decoder_f Packet_LossRate_decode_ber;
+der_type_encoder_f Packet_LossRate_encode_der;
+xer_type_decoder_f Packet_LossRate_decode_xer;
+xer_type_encoder_f Packet_LossRate_encode_xer;
+oer_type_decoder_f Packet_LossRate_decode_oer;
+oer_type_encoder_f Packet_LossRate_encode_oer;
+per_type_decoder_f Packet_LossRate_decode_uper;
+per_type_encoder_f Packet_LossRate_encode_uper;
+per_type_decoder_f Packet_LossRate_decode_aper;
+per_type_encoder_f Packet_LossRate_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Packet_LossRate_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Paging-eDRX-Cycle.h b/src/s1ap/asn1c/asnGenFiles/Paging-eDRX-Cycle.h
new file mode 100644
index 0000000..9a325f8
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Paging-eDRX-Cycle.h
@@ -0,0 +1,68 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Paging_eDRX_Cycle_H_
+#define _Paging_eDRX_Cycle_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Paging_eDRX_Cycle {
+ Paging_eDRX_Cycle_hfhalf = 0,
+ Paging_eDRX_Cycle_hf1 = 1,
+ Paging_eDRX_Cycle_hf2 = 2,
+ Paging_eDRX_Cycle_hf4 = 3,
+ Paging_eDRX_Cycle_hf6 = 4,
+ Paging_eDRX_Cycle_hf8 = 5,
+ Paging_eDRX_Cycle_hf10 = 6,
+ Paging_eDRX_Cycle_hf12 = 7,
+ Paging_eDRX_Cycle_hf14 = 8,
+ Paging_eDRX_Cycle_hf16 = 9,
+ Paging_eDRX_Cycle_hf32 = 10,
+ Paging_eDRX_Cycle_hf64 = 11,
+ Paging_eDRX_Cycle_hf128 = 12,
+ Paging_eDRX_Cycle_hf256 = 13
+ /*
+ * Enumeration is extensible
+ */
+} e_Paging_eDRX_Cycle;
+
+/* Paging-eDRX-Cycle */
+typedef long Paging_eDRX_Cycle_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Paging_eDRX_Cycle_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Paging_eDRX_Cycle;
+extern const asn_INTEGER_specifics_t asn_SPC_Paging_eDRX_Cycle_specs_1;
+asn_struct_free_f Paging_eDRX_Cycle_free;
+asn_struct_print_f Paging_eDRX_Cycle_print;
+asn_constr_check_f Paging_eDRX_Cycle_constraint;
+ber_type_decoder_f Paging_eDRX_Cycle_decode_ber;
+der_type_encoder_f Paging_eDRX_Cycle_encode_der;
+xer_type_decoder_f Paging_eDRX_Cycle_decode_xer;
+xer_type_encoder_f Paging_eDRX_Cycle_encode_xer;
+oer_type_decoder_f Paging_eDRX_Cycle_decode_oer;
+oer_type_encoder_f Paging_eDRX_Cycle_encode_oer;
+per_type_decoder_f Paging_eDRX_Cycle_decode_uper;
+per_type_encoder_f Paging_eDRX_Cycle_encode_uper;
+per_type_decoder_f Paging_eDRX_Cycle_decode_aper;
+per_type_encoder_f Paging_eDRX_Cycle_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Paging_eDRX_Cycle_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Paging-eDRXInformation.h b/src/s1ap/asn1c/asnGenFiles/Paging-eDRXInformation.h
new file mode 100644
index 0000000..e4a0e5d
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Paging-eDRXInformation.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Paging_eDRXInformation_H_
+#define _Paging_eDRXInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "Paging-eDRX-Cycle.h"
+#include "PagingTimeWindow.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* Paging-eDRXInformation */
+typedef struct Paging_eDRXInformation {
+ Paging_eDRX_Cycle_t paging_eDRX_Cycle;
+ PagingTimeWindow_t *pagingTimeWindow; /* 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;
+} Paging_eDRXInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Paging_eDRXInformation;
+extern asn_SEQUENCE_specifics_t asn_SPC_Paging_eDRXInformation_specs_1;
+extern asn_TYPE_member_t asn_MBR_Paging_eDRXInformation_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Paging_eDRXInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Paging.h b/src/s1ap/asn1c/asnGenFiles/Paging.h
new file mode 100644
index 0000000..f2f2b2f
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Paging.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Paging_H_
+#define _Paging_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Paging */
+typedef struct Paging {
+ ProtocolIE_Container_129P22_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;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Paging_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PagingAttemptCount.h b/src/s1ap/asn1c/asnGenFiles/PagingAttemptCount.h
new file mode 100644
index 0000000..5c0dd0e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PagingAttemptCount.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PagingAttemptCount_H_
+#define _PagingAttemptCount_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* PagingAttemptCount */
+typedef long PagingAttemptCount_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_PagingAttemptCount_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_PagingAttemptCount;
+asn_struct_free_f PagingAttemptCount_free;
+asn_struct_print_f PagingAttemptCount_print;
+asn_constr_check_f PagingAttemptCount_constraint;
+ber_type_decoder_f PagingAttemptCount_decode_ber;
+der_type_encoder_f PagingAttemptCount_encode_der;
+xer_type_decoder_f PagingAttemptCount_decode_xer;
+xer_type_encoder_f PagingAttemptCount_encode_xer;
+oer_type_decoder_f PagingAttemptCount_decode_oer;
+oer_type_encoder_f PagingAttemptCount_encode_oer;
+per_type_decoder_f PagingAttemptCount_decode_uper;
+per_type_encoder_f PagingAttemptCount_encode_uper;
+per_type_decoder_f PagingAttemptCount_decode_aper;
+per_type_encoder_f PagingAttemptCount_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PagingAttemptCount_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PagingAttemptInformation.h b/src/s1ap/asn1c/asnGenFiles/PagingAttemptInformation.h
new file mode 100644
index 0000000..7bf54ec
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PagingAttemptInformation.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PagingAttemptInformation_H_
+#define _PagingAttemptInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PagingAttemptCount.h"
+#include "IntendedNumberOfPagingAttempts.h"
+#include "NextPagingAreaScope.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* PagingAttemptInformation */
+typedef struct PagingAttemptInformation {
+ PagingAttemptCount_t pagingAttemptCount;
+ IntendedNumberOfPagingAttempts_t intendedNumberOfPagingAttempts;
+ NextPagingAreaScope_t *nextPagingAreaScope; /* 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;
+} PagingAttemptInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_PagingAttemptInformation;
+extern asn_SEQUENCE_specifics_t asn_SPC_PagingAttemptInformation_specs_1;
+extern asn_TYPE_member_t asn_MBR_PagingAttemptInformation_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PagingAttemptInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PagingDRX.h b/src/s1ap/asn1c/asnGenFiles/PagingDRX.h
new file mode 100644
index 0000000..b8e668f
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PagingDRX.h
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PagingDRX_H_
+#define _PagingDRX_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#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_per_constraints_t asn_PER_type_PagingDRX_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_PagingDRX;
+extern const asn_INTEGER_specifics_t asn_SPC_PagingDRX_specs_1;
+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 <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PagingPriority.h b/src/s1ap/asn1c/asnGenFiles/PagingPriority.h
new file mode 100644
index 0000000..0b02bc9
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PagingPriority.h
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PagingPriority_H_
+#define _PagingPriority_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#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_per_constraints_t asn_PER_type_PagingPriority_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_PagingPriority;
+extern const asn_INTEGER_specifics_t asn_SPC_PagingPriority_specs_1;
+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 <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PagingTimeWindow.h b/src/s1ap/asn1c/asnGenFiles/PagingTimeWindow.h
new file mode 100644
index 0000000..d3e8b87
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PagingTimeWindow.h
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PagingTimeWindow_H_
+#define _PagingTimeWindow_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum PagingTimeWindow {
+ PagingTimeWindow_s1 = 0,
+ PagingTimeWindow_s2 = 1,
+ PagingTimeWindow_s3 = 2,
+ PagingTimeWindow_s4 = 3,
+ PagingTimeWindow_s5 = 4,
+ PagingTimeWindow_s6 = 5,
+ PagingTimeWindow_s7 = 6,
+ PagingTimeWindow_s8 = 7,
+ PagingTimeWindow_s9 = 8,
+ PagingTimeWindow_s10 = 9,
+ PagingTimeWindow_s11 = 10,
+ PagingTimeWindow_s12 = 11,
+ PagingTimeWindow_s13 = 12,
+ PagingTimeWindow_s14 = 13,
+ PagingTimeWindow_s15 = 14,
+ PagingTimeWindow_s16 = 15
+ /*
+ * Enumeration is extensible
+ */
+} e_PagingTimeWindow;
+
+/* PagingTimeWindow */
+typedef long PagingTimeWindow_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_PagingTimeWindow_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_PagingTimeWindow;
+extern const asn_INTEGER_specifics_t asn_SPC_PagingTimeWindow_specs_1;
+asn_struct_free_f PagingTimeWindow_free;
+asn_struct_print_f PagingTimeWindow_print;
+asn_constr_check_f PagingTimeWindow_constraint;
+ber_type_decoder_f PagingTimeWindow_decode_ber;
+der_type_encoder_f PagingTimeWindow_encode_der;
+xer_type_decoder_f PagingTimeWindow_decode_xer;
+xer_type_encoder_f PagingTimeWindow_encode_xer;
+oer_type_decoder_f PagingTimeWindow_decode_oer;
+oer_type_encoder_f PagingTimeWindow_encode_oer;
+per_type_decoder_f PagingTimeWindow_decode_uper;
+per_type_encoder_f PagingTimeWindow_encode_uper;
+per_type_decoder_f PagingTimeWindow_decode_aper;
+per_type_encoder_f PagingTimeWindow_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PagingTimeWindow_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PathSwitchRequest.h b/src/s1ap/asn1c/asnGenFiles/PathSwitchRequest.h
new file mode 100644
index 0000000..9fd53d1
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PathSwitchRequest.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PathSwitchRequest_H_
+#define _PathSwitchRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* PathSwitchRequest */
+typedef struct PathSwitchRequest {
+ ProtocolIE_Container_129P7_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} PathSwitchRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_PathSwitchRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PathSwitchRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PathSwitchRequestAcknowledge.h b/src/s1ap/asn1c/asnGenFiles/PathSwitchRequestAcknowledge.h
new file mode 100644
index 0000000..c07b94f
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PathSwitchRequestAcknowledge.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PathSwitchRequestAcknowledge_H_
+#define _PathSwitchRequestAcknowledge_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* PathSwitchRequestAcknowledge */
+typedef struct PathSwitchRequestAcknowledge {
+ ProtocolIE_Container_129P8_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} PathSwitchRequestAcknowledge_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_PathSwitchRequestAcknowledge;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PathSwitchRequestAcknowledge_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PathSwitchRequestFailure.h b/src/s1ap/asn1c/asnGenFiles/PathSwitchRequestFailure.h
new file mode 100644
index 0000000..532c7ee
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PathSwitchRequestFailure.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PathSwitchRequestFailure_H_
+#define _PathSwitchRequestFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* PathSwitchRequestFailure */
+typedef struct PathSwitchRequestFailure {
+ ProtocolIE_Container_129P9_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} PathSwitchRequestFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_PathSwitchRequestFailure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PathSwitchRequestFailure_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PedestrianUE.h b/src/s1ap/asn1c/asnGenFiles/PedestrianUE.h
new file mode 100644
index 0000000..60cc0a7
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PedestrianUE.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PedestrianUE_H_
+#define _PedestrianUE_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum PedestrianUE {
+ PedestrianUE_authorized = 0,
+ PedestrianUE_not_authorized = 1
+ /*
+ * Enumeration is extensible
+ */
+} e_PedestrianUE;
+
+/* PedestrianUE */
+typedef long PedestrianUE_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_PedestrianUE_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_PedestrianUE;
+extern const asn_INTEGER_specifics_t asn_SPC_PedestrianUE_specs_1;
+asn_struct_free_f PedestrianUE_free;
+asn_struct_print_f PedestrianUE_print;
+asn_constr_check_f PedestrianUE_constraint;
+ber_type_decoder_f PedestrianUE_decode_ber;
+der_type_encoder_f PedestrianUE_encode_der;
+xer_type_decoder_f PedestrianUE_decode_xer;
+xer_type_encoder_f PedestrianUE_encode_xer;
+oer_type_decoder_f PedestrianUE_decode_oer;
+oer_type_encoder_f PedestrianUE_encode_oer;
+per_type_decoder_f PedestrianUE_decode_uper;
+per_type_encoder_f PedestrianUE_encode_uper;
+per_type_decoder_f PedestrianUE_decode_aper;
+per_type_encoder_f PedestrianUE_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PedestrianUE_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PendingDataIndication.h b/src/s1ap/asn1c/asnGenFiles/PendingDataIndication.h
new file mode 100644
index 0000000..495a08c
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PendingDataIndication.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PendingDataIndication_H_
+#define _PendingDataIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum PendingDataIndication {
+ PendingDataIndication_true = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_PendingDataIndication;
+
+/* PendingDataIndication */
+typedef long PendingDataIndication_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_PendingDataIndication_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_PendingDataIndication;
+extern const asn_INTEGER_specifics_t asn_SPC_PendingDataIndication_specs_1;
+asn_struct_free_f PendingDataIndication_free;
+asn_struct_print_f PendingDataIndication_print;
+asn_constr_check_f PendingDataIndication_constraint;
+ber_type_decoder_f PendingDataIndication_decode_ber;
+der_type_encoder_f PendingDataIndication_encode_der;
+xer_type_decoder_f PendingDataIndication_decode_xer;
+xer_type_encoder_f PendingDataIndication_encode_xer;
+oer_type_decoder_f PendingDataIndication_decode_oer;
+oer_type_encoder_f PendingDataIndication_encode_oer;
+per_type_decoder_f PendingDataIndication_decode_uper;
+per_type_encoder_f PendingDataIndication_encode_uper;
+per_type_decoder_f PendingDataIndication_decode_aper;
+per_type_encoder_f PendingDataIndication_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PendingDataIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Port-Number.h b/src/s1ap/asn1c/asnGenFiles/Port-Number.h
new file mode 100644
index 0000000..d73e5f5
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Port-Number.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Port_Number_H_
+#define _Port_Number_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Port-Number */
+typedef OCTET_STRING_t Port_Number_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Port_Number_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Port_Number;
+asn_struct_free_f Port_Number_free;
+asn_struct_print_f Port_Number_print;
+asn_constr_check_f Port_Number_constraint;
+ber_type_decoder_f Port_Number_decode_ber;
+der_type_encoder_f Port_Number_encode_der;
+xer_type_decoder_f Port_Number_decode_xer;
+xer_type_encoder_f Port_Number_encode_xer;
+oer_type_decoder_f Port_Number_decode_oer;
+oer_type_encoder_f Port_Number_encode_oer;
+per_type_decoder_f Port_Number_decode_uper;
+per_type_encoder_f Port_Number_encode_uper;
+per_type_decoder_f Port_Number_decode_aper;
+per_type_encoder_f Port_Number_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Port_Number_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Pre-emptionCapability.h b/src/s1ap/asn1c/asnGenFiles/Pre-emptionCapability.h
new file mode 100644
index 0000000..58d81c4
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Pre-emptionCapability.h
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Pre_emptionCapability_H_
+#define _Pre_emptionCapability_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#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 <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Pre-emptionVulnerability.h b/src/s1ap/asn1c/asnGenFiles/Pre-emptionVulnerability.h
new file mode 100644
index 0000000..66b7524
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Pre-emptionVulnerability.h
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Pre_emptionVulnerability_H_
+#define _Pre_emptionVulnerability_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#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 <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Presence.h b/src/s1ap/asn1c/asnGenFiles/Presence.h
new file mode 100644
index 0000000..15becd5
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Presence.h
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-CommonDataTypes"
+ * found in "./asn1c/S1AP-CommonDataTypes.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Presence_H_
+#define _Presence_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Presence {
+ Presence_optional = 0,
+ Presence_conditional = 1,
+ Presence_mandatory = 2
+} e_Presence;
+
+/* Presence */
+typedef long Presence_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Presence_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Presence;
+extern const asn_INTEGER_specifics_t asn_SPC_Presence_specs_1;
+asn_struct_free_f Presence_free;
+asn_struct_print_f Presence_print;
+asn_constr_check_f Presence_constraint;
+ber_type_decoder_f Presence_decode_ber;
+der_type_encoder_f Presence_encode_der;
+xer_type_decoder_f Presence_decode_xer;
+xer_type_encoder_f Presence_encode_xer;
+oer_type_decoder_f Presence_decode_oer;
+oer_type_encoder_f Presence_encode_oer;
+per_type_decoder_f Presence_decode_uper;
+per_type_encoder_f Presence_encode_uper;
+per_type_decoder_f Presence_decode_aper;
+per_type_encoder_f Presence_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Presence_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PrintableString.h b/src/s1ap/asn1c/asnGenFiles/PrintableString.h
new file mode 100644
index 0000000..8c2b61a
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PrintableString.h
@@ -0,0 +1,37 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef _PrintableString_H_
+#define _PrintableString_H_
+
+#include <OCTET_STRING.h>
+
+#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/s1ap/asn1c/asnGenFiles/PriorityLevel.h b/src/s1ap/asn1c/asnGenFiles/PriorityLevel.h
new file mode 100644
index 0000000..7182f48
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PriorityLevel.h
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PriorityLevel_H_
+#define _PriorityLevel_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#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 <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PrivacyIndicator.h b/src/s1ap/asn1c/asnGenFiles/PrivacyIndicator.h
new file mode 100644
index 0000000..e94c58e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PrivacyIndicator.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PrivacyIndicator_H_
+#define _PrivacyIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum PrivacyIndicator {
+ PrivacyIndicator_immediate_MDT = 0,
+ PrivacyIndicator_logged_MDT = 1
+ /*
+ * Enumeration is extensible
+ */
+} e_PrivacyIndicator;
+
+/* PrivacyIndicator */
+typedef long PrivacyIndicator_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_PrivacyIndicator_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_PrivacyIndicator;
+extern const asn_INTEGER_specifics_t asn_SPC_PrivacyIndicator_specs_1;
+asn_struct_free_f PrivacyIndicator_free;
+asn_struct_print_f PrivacyIndicator_print;
+asn_constr_check_f PrivacyIndicator_constraint;
+ber_type_decoder_f PrivacyIndicator_decode_ber;
+der_type_encoder_f PrivacyIndicator_encode_der;
+xer_type_decoder_f PrivacyIndicator_decode_xer;
+xer_type_encoder_f PrivacyIndicator_encode_xer;
+oer_type_decoder_f PrivacyIndicator_decode_oer;
+oer_type_encoder_f PrivacyIndicator_encode_oer;
+per_type_decoder_f PrivacyIndicator_decode_uper;
+per_type_encoder_f PrivacyIndicator_encode_uper;
+per_type_decoder_f PrivacyIndicator_decode_aper;
+per_type_encoder_f PrivacyIndicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PrivacyIndicator_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PrivateIE-Container.h b/src/s1ap/asn1c/asnGenFiles/PrivateIE-Container.h
new file mode 100644
index 0000000..91a0be4
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PrivateIE-Container.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-Containers"
+ * found in "./asn1c/S1AP-Containers.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PrivateIE_Container_H_
+#define _PrivateIE_Container_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct PrivateMessageIEs;
+
+/* PrivateIE-Container */
+typedef struct PrivateIE_Container_196P0 {
+ A_SEQUENCE_OF(struct PrivateMessageIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} PrivateIE_Container_196P0_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_PrivateIE_Container_196P0;
+extern asn_SET_OF_specifics_t asn_SPC_PrivateIE_Container_196P0_specs_1;
+extern asn_TYPE_member_t asn_MBR_PrivateIE_Container_196P0_1[1];
+extern asn_per_constraints_t asn_PER_type_PrivateIE_Container_196P0_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PrivateIE_Container_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PrivateIE-Field.h b/src/s1ap/asn1c/asnGenFiles/PrivateIE-Field.h
new file mode 100644
index 0000000..6381ac6
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PrivateIE-Field.h
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-Containers"
+ * found in "./asn1c/S1AP-Containers.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PrivateIE_Field_H_
+#define _PrivateIE_Field_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PrivateIE-ID.h"
+#include "Criticality.h"
+#include <ANY.h>
+#include <asn_ioc.h>
+#include <OPEN_TYPE.h>
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum PrivateMessageIEs__value_PR {
+ PrivateMessageIEs__value_PR_NOTHING /* No components present */
+
+} PrivateMessageIEs__value_PR;
+
+/* PrivateIE-Field */
+typedef struct PrivateMessageIEs {
+ PrivateIE_ID_t id;
+ Criticality_t criticality;
+ struct PrivateMessageIEs__value {
+ PrivateMessageIEs__value_PR present;
+ union PrivateMessageIEs__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;
+} PrivateMessageIEs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_PrivateMessageIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_PrivateMessageIEs_specs_1;
+extern asn_TYPE_member_t asn_MBR_PrivateMessageIEs_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PrivateIE_Field_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PrivateIE-ID.h b/src/s1ap/asn1c/asnGenFiles/PrivateIE-ID.h
new file mode 100644
index 0000000..6aa07c0
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PrivateIE-ID.h
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-CommonDataTypes"
+ * found in "./asn1c/S1AP-CommonDataTypes.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PrivateIE_ID_H_
+#define _PrivateIE_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <OBJECT_IDENTIFIER.h>
+#include <constr_CHOICE.h>
+
+#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 <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/PrivateMessage.h b/src/s1ap/asn1c/asnGenFiles/PrivateMessage.h
new file mode 100644
index 0000000..9bd22bf
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/PrivateMessage.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _PrivateMessage_H_
+#define _PrivateMessage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PrivateIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* PrivateMessage */
+typedef struct PrivateMessage {
+ PrivateIE_Container_196P0_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;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PrivateMessage_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ProSeAuthorized.h b/src/s1ap/asn1c/asnGenFiles/ProSeAuthorized.h
new file mode 100644
index 0000000..9ab2216
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ProSeAuthorized.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ProSeAuthorized_H_
+#define _ProSeAuthorized_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProSeDirectDiscovery.h"
+#include "ProSeDirectCommunication.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ProSeAuthorized */
+typedef struct ProSeAuthorized {
+ ProSeDirectDiscovery_t *proSeDirectDiscovery; /* OPTIONAL */
+ ProSeDirectCommunication_t *proSeDirectCommunication; /* 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;
+} ProSeAuthorized_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ProSeAuthorized;
+extern asn_SEQUENCE_specifics_t asn_SPC_ProSeAuthorized_specs_1;
+extern asn_TYPE_member_t asn_MBR_ProSeAuthorized_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProSeAuthorized_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ProSeDirectCommunication.h b/src/s1ap/asn1c/asnGenFiles/ProSeDirectCommunication.h
new file mode 100644
index 0000000..6c8980e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ProSeDirectCommunication.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ProSeDirectCommunication_H_
+#define _ProSeDirectCommunication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ProSeDirectCommunication {
+ ProSeDirectCommunication_authorized = 0,
+ ProSeDirectCommunication_not_authorized = 1
+ /*
+ * Enumeration is extensible
+ */
+} e_ProSeDirectCommunication;
+
+/* ProSeDirectCommunication */
+typedef long ProSeDirectCommunication_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ProSeDirectCommunication_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ProSeDirectCommunication;
+extern const asn_INTEGER_specifics_t asn_SPC_ProSeDirectCommunication_specs_1;
+asn_struct_free_f ProSeDirectCommunication_free;
+asn_struct_print_f ProSeDirectCommunication_print;
+asn_constr_check_f ProSeDirectCommunication_constraint;
+ber_type_decoder_f ProSeDirectCommunication_decode_ber;
+der_type_encoder_f ProSeDirectCommunication_encode_der;
+xer_type_decoder_f ProSeDirectCommunication_decode_xer;
+xer_type_encoder_f ProSeDirectCommunication_encode_xer;
+oer_type_decoder_f ProSeDirectCommunication_decode_oer;
+oer_type_encoder_f ProSeDirectCommunication_encode_oer;
+per_type_decoder_f ProSeDirectCommunication_decode_uper;
+per_type_encoder_f ProSeDirectCommunication_encode_uper;
+per_type_decoder_f ProSeDirectCommunication_decode_aper;
+per_type_encoder_f ProSeDirectCommunication_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProSeDirectCommunication_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ProSeDirectDiscovery.h b/src/s1ap/asn1c/asnGenFiles/ProSeDirectDiscovery.h
new file mode 100644
index 0000000..d6f11f5
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ProSeDirectDiscovery.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ProSeDirectDiscovery_H_
+#define _ProSeDirectDiscovery_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ProSeDirectDiscovery {
+ ProSeDirectDiscovery_authorized = 0,
+ ProSeDirectDiscovery_not_authorized = 1
+ /*
+ * Enumeration is extensible
+ */
+} e_ProSeDirectDiscovery;
+
+/* ProSeDirectDiscovery */
+typedef long ProSeDirectDiscovery_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ProSeDirectDiscovery_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ProSeDirectDiscovery;
+extern const asn_INTEGER_specifics_t asn_SPC_ProSeDirectDiscovery_specs_1;
+asn_struct_free_f ProSeDirectDiscovery_free;
+asn_struct_print_f ProSeDirectDiscovery_print;
+asn_constr_check_f ProSeDirectDiscovery_constraint;
+ber_type_decoder_f ProSeDirectDiscovery_decode_ber;
+der_type_encoder_f ProSeDirectDiscovery_encode_der;
+xer_type_decoder_f ProSeDirectDiscovery_decode_xer;
+xer_type_encoder_f ProSeDirectDiscovery_encode_xer;
+oer_type_decoder_f ProSeDirectDiscovery_decode_oer;
+oer_type_encoder_f ProSeDirectDiscovery_encode_oer;
+per_type_decoder_f ProSeDirectDiscovery_decode_uper;
+per_type_encoder_f ProSeDirectDiscovery_encode_uper;
+per_type_decoder_f ProSeDirectDiscovery_decode_aper;
+per_type_encoder_f ProSeDirectDiscovery_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProSeDirectDiscovery_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ProSeUEtoNetworkRelaying.h b/src/s1ap/asn1c/asnGenFiles/ProSeUEtoNetworkRelaying.h
new file mode 100644
index 0000000..162a954
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ProSeUEtoNetworkRelaying.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ProSeUEtoNetworkRelaying_H_
+#define _ProSeUEtoNetworkRelaying_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ProSeUEtoNetworkRelaying {
+ ProSeUEtoNetworkRelaying_authorized = 0,
+ ProSeUEtoNetworkRelaying_not_authorized = 1
+ /*
+ * Enumeration is extensible
+ */
+} e_ProSeUEtoNetworkRelaying;
+
+/* ProSeUEtoNetworkRelaying */
+typedef long ProSeUEtoNetworkRelaying_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ProSeUEtoNetworkRelaying_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ProSeUEtoNetworkRelaying;
+extern const asn_INTEGER_specifics_t asn_SPC_ProSeUEtoNetworkRelaying_specs_1;
+asn_struct_free_f ProSeUEtoNetworkRelaying_free;
+asn_struct_print_f ProSeUEtoNetworkRelaying_print;
+asn_constr_check_f ProSeUEtoNetworkRelaying_constraint;
+ber_type_decoder_f ProSeUEtoNetworkRelaying_decode_ber;
+der_type_encoder_f ProSeUEtoNetworkRelaying_encode_der;
+xer_type_decoder_f ProSeUEtoNetworkRelaying_decode_xer;
+xer_type_encoder_f ProSeUEtoNetworkRelaying_encode_xer;
+oer_type_decoder_f ProSeUEtoNetworkRelaying_decode_oer;
+oer_type_encoder_f ProSeUEtoNetworkRelaying_encode_oer;
+per_type_decoder_f ProSeUEtoNetworkRelaying_decode_uper;
+per_type_encoder_f ProSeUEtoNetworkRelaying_encode_uper;
+per_type_decoder_f ProSeUEtoNetworkRelaying_decode_aper;
+per_type_encoder_f ProSeUEtoNetworkRelaying_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProSeUEtoNetworkRelaying_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ProcedureCode.h b/src/s1ap/asn1c/asnGenFiles/ProcedureCode.h
new file mode 100644
index 0000000..ef453e0
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ProcedureCode.h
@@ -0,0 +1,109 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-CommonDataTypes"
+ * found in "./asn1c/S1AP-CommonDataTypes.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ProcedureCode_H_
+#define _ProcedureCode_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ProcedureCode */
+typedef long ProcedureCode_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ProcedureCode_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ProcedureCode;
+asn_struct_free_f ProcedureCode_free;
+asn_struct_print_f ProcedureCode_print;
+asn_constr_check_f ProcedureCode_constraint;
+ber_type_decoder_f ProcedureCode_decode_ber;
+der_type_encoder_f ProcedureCode_encode_der;
+xer_type_decoder_f ProcedureCode_decode_xer;
+xer_type_encoder_f ProcedureCode_encode_xer;
+oer_type_decoder_f ProcedureCode_decode_oer;
+oer_type_encoder_f ProcedureCode_encode_oer;
+per_type_decoder_f ProcedureCode_decode_uper;
+per_type_encoder_f ProcedureCode_encode_uper;
+per_type_decoder_f ProcedureCode_decode_aper;
+per_type_encoder_f ProcedureCode_encode_aper;
+#define ProcedureCode_id_HandoverPreparation ((ProcedureCode_t)0)
+#define ProcedureCode_id_HandoverResourceAllocation ((ProcedureCode_t)1)
+#define ProcedureCode_id_HandoverNotification ((ProcedureCode_t)2)
+#define ProcedureCode_id_PathSwitchRequest ((ProcedureCode_t)3)
+#define ProcedureCode_id_HandoverCancel ((ProcedureCode_t)4)
+#define ProcedureCode_id_E_RABSetup ((ProcedureCode_t)5)
+#define ProcedureCode_id_E_RABModify ((ProcedureCode_t)6)
+#define ProcedureCode_id_E_RABRelease ((ProcedureCode_t)7)
+#define ProcedureCode_id_E_RABReleaseIndication ((ProcedureCode_t)8)
+#define ProcedureCode_id_InitialContextSetup ((ProcedureCode_t)9)
+#define ProcedureCode_id_Paging ((ProcedureCode_t)10)
+#define ProcedureCode_id_downlinkNASTransport ((ProcedureCode_t)11)
+#define ProcedureCode_id_initialUEMessage ((ProcedureCode_t)12)
+#define ProcedureCode_id_uplinkNASTransport ((ProcedureCode_t)13)
+#define ProcedureCode_id_Reset ((ProcedureCode_t)14)
+#define ProcedureCode_id_ErrorIndication ((ProcedureCode_t)15)
+#define ProcedureCode_id_NASNonDeliveryIndication ((ProcedureCode_t)16)
+#define ProcedureCode_id_S1Setup ((ProcedureCode_t)17)
+#define ProcedureCode_id_UEContextReleaseRequest ((ProcedureCode_t)18)
+#define ProcedureCode_id_DownlinkS1cdma2000tunnelling ((ProcedureCode_t)19)
+#define ProcedureCode_id_UplinkS1cdma2000tunnelling ((ProcedureCode_t)20)
+#define ProcedureCode_id_UEContextModification ((ProcedureCode_t)21)
+#define ProcedureCode_id_UECapabilityInfoIndication ((ProcedureCode_t)22)
+#define ProcedureCode_id_UEContextRelease ((ProcedureCode_t)23)
+#define ProcedureCode_id_eNBStatusTransfer ((ProcedureCode_t)24)
+#define ProcedureCode_id_MMEStatusTransfer ((ProcedureCode_t)25)
+#define ProcedureCode_id_DeactivateTrace ((ProcedureCode_t)26)
+#define ProcedureCode_id_TraceStart ((ProcedureCode_t)27)
+#define ProcedureCode_id_TraceFailureIndication ((ProcedureCode_t)28)
+#define ProcedureCode_id_ENBConfigurationUpdate ((ProcedureCode_t)29)
+#define ProcedureCode_id_MMEConfigurationUpdate ((ProcedureCode_t)30)
+#define ProcedureCode_id_LocationReportingControl ((ProcedureCode_t)31)
+#define ProcedureCode_id_LocationReportingFailureIndication ((ProcedureCode_t)32)
+#define ProcedureCode_id_LocationReport ((ProcedureCode_t)33)
+#define ProcedureCode_id_OverloadStart ((ProcedureCode_t)34)
+#define ProcedureCode_id_OverloadStop ((ProcedureCode_t)35)
+#define ProcedureCode_id_WriteReplaceWarning ((ProcedureCode_t)36)
+#define ProcedureCode_id_eNBDirectInformationTransfer ((ProcedureCode_t)37)
+#define ProcedureCode_id_MMEDirectInformationTransfer ((ProcedureCode_t)38)
+#define ProcedureCode_id_PrivateMessage ((ProcedureCode_t)39)
+#define ProcedureCode_id_eNBConfigurationTransfer ((ProcedureCode_t)40)
+#define ProcedureCode_id_MMEConfigurationTransfer ((ProcedureCode_t)41)
+#define ProcedureCode_id_CellTrafficTrace ((ProcedureCode_t)42)
+#define ProcedureCode_id_Kill ((ProcedureCode_t)43)
+#define ProcedureCode_id_downlinkUEAssociatedLPPaTransport ((ProcedureCode_t)44)
+#define ProcedureCode_id_uplinkUEAssociatedLPPaTransport ((ProcedureCode_t)45)
+#define ProcedureCode_id_downlinkNonUEAssociatedLPPaTransport ((ProcedureCode_t)46)
+#define ProcedureCode_id_uplinkNonUEAssociatedLPPaTransport ((ProcedureCode_t)47)
+#define ProcedureCode_id_UERadioCapabilityMatch ((ProcedureCode_t)48)
+#define ProcedureCode_id_PWSRestartIndication ((ProcedureCode_t)49)
+#define ProcedureCode_id_E_RABModificationIndication ((ProcedureCode_t)50)
+#define ProcedureCode_id_PWSFailureIndication ((ProcedureCode_t)51)
+#define ProcedureCode_id_RerouteNASRequest ((ProcedureCode_t)52)
+#define ProcedureCode_id_UEContextModificationIndication ((ProcedureCode_t)53)
+#define ProcedureCode_id_ConnectionEstablishmentIndication ((ProcedureCode_t)54)
+#define ProcedureCode_id_UEContextSuspend ((ProcedureCode_t)55)
+#define ProcedureCode_id_UEContextResume ((ProcedureCode_t)56)
+#define ProcedureCode_id_NASDeliveryIndication ((ProcedureCode_t)57)
+#define ProcedureCode_id_RetrieveUEInformation ((ProcedureCode_t)58)
+#define ProcedureCode_id_UEInformationTransfer ((ProcedureCode_t)59)
+#define ProcedureCode_id_eNBCPRelocationIndication ((ProcedureCode_t)60)
+#define ProcedureCode_id_MMECPRelocationIndication ((ProcedureCode_t)61)
+#define ProcedureCode_id_SecondaryRATDataUsageReport ((ProcedureCode_t)62)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProcedureCode_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ProtocolError-IE-ContainerList.h b/src/s1ap/asn1c/asnGenFiles/ProtocolError-IE-ContainerList.h
new file mode 100644
index 0000000..dc08575
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ProtocolError-IE-ContainerList.h
@@ -0,0 +1,23 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ProtocolError_IE_ContainerList_H_
+#define _ProtocolError_IE_ContainerList_H_
+
+
+#include <asn_application.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProtocolError_IE_ContainerList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ProtocolExtensionContainer.h b/src/s1ap/asn1c/asnGenFiles/ProtocolExtensionContainer.h
new file mode 100644
index 0000000..681ae55
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ProtocolExtensionContainer.h
@@ -0,0 +1,1639 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-Containers"
+ * found in "./asn1c/S1AP-Containers.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ProtocolExtensionContainer_H_
+#define _ProtocolExtensionContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct Additional_GUTI_ExtIEs;
+struct AllocationAndRetentionPriority_ExtIEs;
+struct InformationForCECapableUEs_ExtIEs;
+struct AssistanceDataForPaging_ExtIEs;
+struct AssistanceDataForRecommendedCells_ExtIEs;
+struct Bearers_SubjectToStatusTransfer_ItemExtIEs;
+struct BluetoothMeasurementConfiguration_ExtIEs;
+struct CancelledCellinEAI_Item_ExtIEs;
+struct CancelledCellinTAI_Item_ExtIEs;
+struct CellIdentifierAndCELevelForCECapableUEs_ExtIEs;
+struct CellID_Broadcast_Item_ExtIEs;
+struct CellID_Cancelled_Item_ExtIEs;
+struct CellBasedMDT_ExtIEs;
+struct CellBasedQMC_ExtIEs;
+struct Cdma2000OneXSRVCCInfo_ExtIEs;
+struct CellType_ExtIEs;
+struct CGI_ExtIEs;
+struct CNTypeRestrictions_Item_ExtIEs;
+struct ConnectedengNBItem_ExtIEs;
+struct CSG_IdList_Item_ExtIEs;
+struct COUNTvalue_ExtIEs;
+struct COUNTValueExtended_ExtIEs;
+struct COUNTvaluePDCP_SNlength18_ExtIEs;
+struct CriticalityDiagnostics_ExtIEs;
+struct CriticalityDiagnostics_IE_Item_ExtIEs;
+struct ServedDCNsItem_ExtIEs;
+struct DL_CP_SecurityInformation_ExtIEs;
+struct EmergencyAreaID_Broadcast_Item_ExtIEs;
+struct EmergencyAreaID_Cancelled_Item_ExtIEs;
+struct CompletedCellinEAI_Item_ExtIEs;
+struct GERAN_Cell_ID_ExtIEs;
+struct GlobalENB_ID_ExtIEs;
+struct Global_en_gNB_ID_ExtIEs;
+struct ENB_StatusTransfer_TransparentContainer_ExtIEs;
+struct EN_DCSONConfigurationTransfer_ExtIEs;
+struct EN_DCTransferTypeRequest_ExtIEs;
+struct EN_DCTransferTypeReply_ExtIEs;
+struct EN_DCSONeNBIdentification_ExtIEs;
+struct EN_DCSONengNBIdentification_ExtIEs;
+struct E_RABInformationListItem_ExtIEs;
+struct E_RABItem_ExtIEs;
+struct E_RABQoSParameters_ExtIEs;
+struct E_RABUsageReportItem_ExtIEs;
+struct EUTRAN_CGI_ExtIEs;
+struct ExpectedUEBehaviour_ExtIEs;
+struct ExpectedUEActivityBehaviour_ExtIEs;
+struct FiveGSTAI_ExtIEs;
+struct ForbiddenTAs_Item_ExtIEs;
+struct ForbiddenLAs_Item_ExtIEs;
+struct GBR_QosInformation_ExtIEs;
+struct GUMMEI_ExtIEs;
+struct HandoverRestrictionList_ExtIEs;
+struct ImmediateMDT_ExtIEs;
+struct InformationOnRecommendedCellsAndENBsForPaging_ExtIEs;
+struct LAI_ExtIEs;
+struct LastVisitedEUTRANCellInformation_ExtIEs;
+struct ListeningSubframePattern_ExtIEs;
+struct LoggedMDT_ExtIEs;
+struct LoggedMBSFNMDT_ExtIEs;
+struct M3Configuration_ExtIEs;
+struct M4Configuration_ExtIEs;
+struct M5Configuration_ExtIEs;
+struct M6Configuration_ExtIEs;
+struct M7Configuration_ExtIEs;
+struct MDT_Configuration_ExtIEs;
+struct MBSFN_ResultToLogInfo_ExtIEs;
+struct MutingPatternInformation_ExtIEs;
+struct NB_IoT_Paging_eDRXInformation_ExtIEs;
+struct NR_CGI_ExtIEs;
+struct NRUESecurityCapabilities_ExtIEs;
+struct PagingAttemptInformation_ExtIEs;
+struct Paging_eDRXInformation_ExtIEs;
+struct M1PeriodicReporting_ExtIEs;
+struct PLMNAreaBasedQMC_ExtIEs;
+struct ProSeAuthorized_ExtIEs;
+struct PSCellInformation_ExtIEs;
+struct RecommendedCellsForPaging_ExtIEs;
+struct RecommendedCellsForPagingItem_ExtIEs;
+struct RecommendedENBsForPaging_ExtIEs;
+struct RecommendedENBItem_ExtIEs;
+struct RequestType_ExtIEs;
+struct RIMTransfer_ExtIEs;
+struct RLFReportInformation_ExtIEs;
+struct SecurityContext_ExtIEs;
+struct SecondaryRATDataUsageReportItem_ExtIEs;
+struct SONInformationReply_ExtIEs;
+struct SONConfigurationTransfer_ExtIEs;
+struct SynchronisationInformation_ExtIEs;
+struct SourceeNB_ID_ExtIEs;
+struct SourceeNB_ToTargeteNB_TransparentContainer_ExtIEs;
+struct ServedGUMMEIsItem_ExtIEs;
+struct Subscription_Based_UE_DifferentiationInfo_ExtIEs;
+struct ScheduledCommunicationTime_ExtIEs;
+struct SupportedTAs_Item_ExtIEs;
+struct TimeSynchronisationInfo_ExtIEs;
+struct S_TMSI_ExtIEs;
+struct TAIBasedMDT_ExtIEs;
+struct TAI_ExtIEs;
+struct TAI_Broadcast_Item_ExtIEs;
+struct TAI_Cancelled_Item_ExtIEs;
+struct TABasedMDT_ExtIEs;
+struct TABasedQMC_ExtIEs;
+struct TAIBasedQMC_ExtIEs;
+struct CompletedCellinTAI_Item_ExtIEs;
+struct TargeteNB_ID_ExtIEs;
+struct TargetRNC_ID_ExtIEs;
+struct TargetNgRanNode_ID_ExtIEs;
+struct GNB_ExtIEs;
+struct Global_GNB_ID_ExtIEs;
+struct NG_eNB_ExtIEs;
+struct TargeteNB_ToSourceeNB_TransparentContainer_ExtIEs;
+struct M1ThresholdEventA2_ExtIEs;
+struct TraceActivation_ExtIEs;
+struct Tunnel_Information_ExtIEs;
+struct UEAggregate_MaximumBitrates_ExtIEs;
+struct UEAppLayerMeasConfig_ExtIEs;
+struct UE_S1AP_ID_pair_ExtIEs;
+struct UE_associatedLogicalS1_ConnectionItemExtIEs;
+struct UESecurityCapabilities_ExtIEs;
+struct UE_Sidelink_Aggregate_MaximumBitrates_ExtIEs;
+struct UL_CP_SecurityInformation_ExtIEs;
+struct UserLocationInformation_ExtIEs;
+struct V2XServicesAuthorized_ExtIEs;
+struct WLANMeasurementConfiguration_ExtIEs;
+struct X2TNLConfigurationInfo_ExtIEs;
+struct ENBX2ExtTLA_ExtIEs;
+struct E_RABDataForwardingItem_ExtIEs;
+struct E_RABToBeSetupItemHOReq_ExtIEs;
+struct E_RABAdmittedItem_ExtIEs;
+struct E_RABFailedToSetupItemHOReqAckExtIEs;
+struct E_RABToBeSwitchedDLItem_ExtIEs;
+struct E_RABToBeSwitchedULItem_ExtIEs;
+struct E_RABToBeSetupItemBearerSUReqExtIEs;
+struct E_RABSetupItemBearerSUResExtIEs;
+struct E_RABToBeModifyItemBearerModReqExtIEs;
+struct E_RABModifyItemBearerModResExtIEs;
+struct E_RABReleaseItemBearerRelCompExtIEs;
+struct E_RABToBeSetupItemCtxtSUReqExtIEs;
+struct E_RABSetupItemCtxtSUResExtIEs;
+struct TAIItemExtIEs;
+struct E_RABToBeModifiedItemBearerModInd_ExtIEs;
+struct E_RABNotToBeModifiedItemBearerModInd_ExtIEs;
+struct CSGMembershipInfo_ExtIEs;
+struct E_RABModifyItemBearerModConfExtIEs;
+struct E_RABFailedToResumeItemResumeReq_ExtIEs;
+struct E_RABFailedToResumeItemResumeRes_ExtIEs;
+
+/* ProtocolExtensionContainer */
+typedef struct ProtocolExtensionContainer_180P0 {
+ A_SEQUENCE_OF(struct Additional_GUTI_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P0_t;
+typedef struct ProtocolExtensionContainer_180P1 {
+ A_SEQUENCE_OF(struct AllocationAndRetentionPriority_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P1_t;
+typedef struct ProtocolExtensionContainer_180P2 {
+ A_SEQUENCE_OF(struct InformationForCECapableUEs_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P2_t;
+typedef struct ProtocolExtensionContainer_180P3 {
+ A_SEQUENCE_OF(struct AssistanceDataForPaging_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P3_t;
+typedef struct ProtocolExtensionContainer_180P4 {
+ A_SEQUENCE_OF(struct AssistanceDataForRecommendedCells_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P4_t;
+typedef struct ProtocolExtensionContainer_180P5 {
+ A_SEQUENCE_OF(struct Bearers_SubjectToStatusTransfer_ItemExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P5_t;
+typedef struct ProtocolExtensionContainer_180P6 {
+ A_SEQUENCE_OF(struct BluetoothMeasurementConfiguration_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P6_t;
+typedef struct ProtocolExtensionContainer_180P7 {
+ A_SEQUENCE_OF(struct CancelledCellinEAI_Item_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P7_t;
+typedef struct ProtocolExtensionContainer_180P8 {
+ A_SEQUENCE_OF(struct CancelledCellinTAI_Item_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P8_t;
+typedef struct ProtocolExtensionContainer_180P9 {
+ A_SEQUENCE_OF(struct CellIdentifierAndCELevelForCECapableUEs_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P9_t;
+typedef struct ProtocolExtensionContainer_180P10 {
+ A_SEQUENCE_OF(struct CellID_Broadcast_Item_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P10_t;
+typedef struct ProtocolExtensionContainer_180P11 {
+ A_SEQUENCE_OF(struct CellID_Cancelled_Item_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P11_t;
+typedef struct ProtocolExtensionContainer_180P12 {
+ A_SEQUENCE_OF(struct CellBasedMDT_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P12_t;
+typedef struct ProtocolExtensionContainer_180P13 {
+ A_SEQUENCE_OF(struct CellBasedQMC_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P13_t;
+typedef struct ProtocolExtensionContainer_180P14 {
+ A_SEQUENCE_OF(struct Cdma2000OneXSRVCCInfo_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P14_t;
+typedef struct ProtocolExtensionContainer_180P15 {
+ A_SEQUENCE_OF(struct CellType_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P15_t;
+typedef struct ProtocolExtensionContainer_180P16 {
+ A_SEQUENCE_OF(struct CGI_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P16_t;
+typedef struct ProtocolExtensionContainer_180P17 {
+ A_SEQUENCE_OF(struct CNTypeRestrictions_Item_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P17_t;
+typedef struct ProtocolExtensionContainer_180P18 {
+ A_SEQUENCE_OF(struct ConnectedengNBItem_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P18_t;
+typedef struct ProtocolExtensionContainer_180P19 {
+ A_SEQUENCE_OF(struct CSG_IdList_Item_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P19_t;
+typedef struct ProtocolExtensionContainer_180P20 {
+ A_SEQUENCE_OF(struct COUNTvalue_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P20_t;
+typedef struct ProtocolExtensionContainer_180P21 {
+ A_SEQUENCE_OF(struct COUNTValueExtended_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P21_t;
+typedef struct ProtocolExtensionContainer_180P22 {
+ A_SEQUENCE_OF(struct COUNTvaluePDCP_SNlength18_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P22_t;
+typedef struct ProtocolExtensionContainer_180P23 {
+ A_SEQUENCE_OF(struct CriticalityDiagnostics_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P23_t;
+typedef struct ProtocolExtensionContainer_180P24 {
+ A_SEQUENCE_OF(struct CriticalityDiagnostics_IE_Item_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P24_t;
+typedef struct ProtocolExtensionContainer_180P25 {
+ A_SEQUENCE_OF(struct ServedDCNsItem_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P25_t;
+typedef struct ProtocolExtensionContainer_180P26 {
+ A_SEQUENCE_OF(struct DL_CP_SecurityInformation_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P26_t;
+typedef struct ProtocolExtensionContainer_180P27 {
+ A_SEQUENCE_OF(struct EmergencyAreaID_Broadcast_Item_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P27_t;
+typedef struct ProtocolExtensionContainer_180P28 {
+ A_SEQUENCE_OF(struct EmergencyAreaID_Cancelled_Item_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P28_t;
+typedef struct ProtocolExtensionContainer_180P29 {
+ A_SEQUENCE_OF(struct CompletedCellinEAI_Item_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P29_t;
+typedef struct ProtocolExtensionContainer_180P30 {
+ A_SEQUENCE_OF(struct GERAN_Cell_ID_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P30_t;
+typedef struct ProtocolExtensionContainer_180P31 {
+ A_SEQUENCE_OF(struct GlobalENB_ID_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P31_t;
+typedef struct ProtocolExtensionContainer_180P32 {
+ A_SEQUENCE_OF(struct Global_en_gNB_ID_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P32_t;
+typedef struct ProtocolExtensionContainer_180P33 {
+ A_SEQUENCE_OF(struct ENB_StatusTransfer_TransparentContainer_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P33_t;
+typedef struct ProtocolExtensionContainer_180P34 {
+ A_SEQUENCE_OF(struct EN_DCSONConfigurationTransfer_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P34_t;
+typedef struct ProtocolExtensionContainer_180P35 {
+ A_SEQUENCE_OF(struct EN_DCTransferTypeRequest_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P35_t;
+typedef struct ProtocolExtensionContainer_180P36 {
+ A_SEQUENCE_OF(struct EN_DCTransferTypeReply_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P36_t;
+typedef struct ProtocolExtensionContainer_180P37 {
+ A_SEQUENCE_OF(struct EN_DCSONeNBIdentification_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P37_t;
+typedef struct ProtocolExtensionContainer_180P38 {
+ A_SEQUENCE_OF(struct EN_DCSONengNBIdentification_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P38_t;
+typedef struct ProtocolExtensionContainer_180P39 {
+ A_SEQUENCE_OF(struct E_RABInformationListItem_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P39_t;
+typedef struct ProtocolExtensionContainer_180P40 {
+ A_SEQUENCE_OF(struct E_RABItem_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P40_t;
+typedef struct ProtocolExtensionContainer_180P41 {
+ A_SEQUENCE_OF(struct E_RABQoSParameters_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P41_t;
+typedef struct ProtocolExtensionContainer_180P42 {
+ A_SEQUENCE_OF(struct E_RABUsageReportItem_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P42_t;
+typedef struct ProtocolExtensionContainer_180P43 {
+ A_SEQUENCE_OF(struct EUTRAN_CGI_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P43_t;
+typedef struct ProtocolExtensionContainer_180P44 {
+ A_SEQUENCE_OF(struct ExpectedUEBehaviour_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P44_t;
+typedef struct ProtocolExtensionContainer_180P45 {
+ A_SEQUENCE_OF(struct ExpectedUEActivityBehaviour_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P45_t;
+typedef struct ProtocolExtensionContainer_180P46 {
+ A_SEQUENCE_OF(struct FiveGSTAI_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P46_t;
+typedef struct ProtocolExtensionContainer_180P47 {
+ A_SEQUENCE_OF(struct ForbiddenTAs_Item_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P47_t;
+typedef struct ProtocolExtensionContainer_180P48 {
+ A_SEQUENCE_OF(struct ForbiddenLAs_Item_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P48_t;
+typedef struct ProtocolExtensionContainer_180P49 {
+ A_SEQUENCE_OF(struct GBR_QosInformation_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P49_t;
+typedef struct ProtocolExtensionContainer_180P50 {
+ A_SEQUENCE_OF(struct GUMMEI_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P50_t;
+typedef struct ProtocolExtensionContainer_180P51 {
+ A_SEQUENCE_OF(struct HandoverRestrictionList_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P51_t;
+typedef struct ProtocolExtensionContainer_180P52 {
+ A_SEQUENCE_OF(struct ImmediateMDT_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P52_t;
+typedef struct ProtocolExtensionContainer_180P53 {
+ A_SEQUENCE_OF(struct InformationOnRecommendedCellsAndENBsForPaging_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P53_t;
+typedef struct ProtocolExtensionContainer_180P54 {
+ A_SEQUENCE_OF(struct LAI_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P54_t;
+typedef struct ProtocolExtensionContainer_180P55 {
+ A_SEQUENCE_OF(struct LastVisitedEUTRANCellInformation_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P55_t;
+typedef struct ProtocolExtensionContainer_180P56 {
+ A_SEQUENCE_OF(struct ListeningSubframePattern_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P56_t;
+typedef struct ProtocolExtensionContainer_180P57 {
+ A_SEQUENCE_OF(struct LoggedMDT_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P57_t;
+typedef struct ProtocolExtensionContainer_180P58 {
+ A_SEQUENCE_OF(struct LoggedMBSFNMDT_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P58_t;
+typedef struct ProtocolExtensionContainer_180P59 {
+ A_SEQUENCE_OF(struct M3Configuration_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P59_t;
+typedef struct ProtocolExtensionContainer_180P60 {
+ A_SEQUENCE_OF(struct M4Configuration_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P60_t;
+typedef struct ProtocolExtensionContainer_180P61 {
+ A_SEQUENCE_OF(struct M5Configuration_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P61_t;
+typedef struct ProtocolExtensionContainer_180P62 {
+ A_SEQUENCE_OF(struct M6Configuration_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P62_t;
+typedef struct ProtocolExtensionContainer_180P63 {
+ A_SEQUENCE_OF(struct M7Configuration_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P63_t;
+typedef struct ProtocolExtensionContainer_180P64 {
+ A_SEQUENCE_OF(struct MDT_Configuration_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P64_t;
+typedef struct ProtocolExtensionContainer_180P65 {
+ A_SEQUENCE_OF(struct MBSFN_ResultToLogInfo_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P65_t;
+typedef struct ProtocolExtensionContainer_180P66 {
+ A_SEQUENCE_OF(struct MutingPatternInformation_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P66_t;
+typedef struct ProtocolExtensionContainer_180P67 {
+ A_SEQUENCE_OF(struct NB_IoT_Paging_eDRXInformation_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P67_t;
+typedef struct ProtocolExtensionContainer_180P68 {
+ A_SEQUENCE_OF(struct NR_CGI_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P68_t;
+typedef struct ProtocolExtensionContainer_180P69 {
+ A_SEQUENCE_OF(struct NRUESecurityCapabilities_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P69_t;
+typedef struct ProtocolExtensionContainer_180P70 {
+ A_SEQUENCE_OF(struct PagingAttemptInformation_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P70_t;
+typedef struct ProtocolExtensionContainer_180P71 {
+ A_SEQUENCE_OF(struct Paging_eDRXInformation_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P71_t;
+typedef struct ProtocolExtensionContainer_180P72 {
+ A_SEQUENCE_OF(struct M1PeriodicReporting_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P72_t;
+typedef struct ProtocolExtensionContainer_180P73 {
+ A_SEQUENCE_OF(struct PLMNAreaBasedQMC_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P73_t;
+typedef struct ProtocolExtensionContainer_180P74 {
+ A_SEQUENCE_OF(struct ProSeAuthorized_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P74_t;
+typedef struct ProtocolExtensionContainer_180P75 {
+ A_SEQUENCE_OF(struct PSCellInformation_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P75_t;
+typedef struct ProtocolExtensionContainer_180P76 {
+ A_SEQUENCE_OF(struct RecommendedCellsForPaging_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P76_t;
+typedef struct ProtocolExtensionContainer_180P77 {
+ A_SEQUENCE_OF(struct RecommendedCellsForPagingItem_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P77_t;
+typedef struct ProtocolExtensionContainer_180P78 {
+ A_SEQUENCE_OF(struct RecommendedENBsForPaging_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P78_t;
+typedef struct ProtocolExtensionContainer_180P79 {
+ A_SEQUENCE_OF(struct RecommendedENBItem_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P79_t;
+typedef struct ProtocolExtensionContainer_180P80 {
+ A_SEQUENCE_OF(struct RequestType_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P80_t;
+typedef struct ProtocolExtensionContainer_180P81 {
+ A_SEQUENCE_OF(struct RIMTransfer_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P81_t;
+typedef struct ProtocolExtensionContainer_180P82 {
+ A_SEQUENCE_OF(struct RLFReportInformation_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P82_t;
+typedef struct ProtocolExtensionContainer_180P83 {
+ A_SEQUENCE_OF(struct SecurityContext_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P83_t;
+typedef struct ProtocolExtensionContainer_180P84 {
+ A_SEQUENCE_OF(struct SecondaryRATDataUsageReportItem_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P84_t;
+typedef struct ProtocolExtensionContainer_180P85 {
+ A_SEQUENCE_OF(struct SONInformationReply_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P85_t;
+typedef struct ProtocolExtensionContainer_180P86 {
+ A_SEQUENCE_OF(struct SONConfigurationTransfer_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P86_t;
+typedef struct ProtocolExtensionContainer_180P87 {
+ A_SEQUENCE_OF(struct SynchronisationInformation_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P87_t;
+typedef struct ProtocolExtensionContainer_180P88 {
+ A_SEQUENCE_OF(struct SourceeNB_ID_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P88_t;
+typedef struct ProtocolExtensionContainer_180P89 {
+ A_SEQUENCE_OF(struct SourceeNB_ToTargeteNB_TransparentContainer_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P89_t;
+typedef struct ProtocolExtensionContainer_180P90 {
+ A_SEQUENCE_OF(struct ServedGUMMEIsItem_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P90_t;
+typedef struct ProtocolExtensionContainer_180P91 {
+ A_SEQUENCE_OF(struct Subscription_Based_UE_DifferentiationInfo_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P91_t;
+typedef struct ProtocolExtensionContainer_180P92 {
+ A_SEQUENCE_OF(struct ScheduledCommunicationTime_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P92_t;
+typedef struct ProtocolExtensionContainer_180P93 {
+ A_SEQUENCE_OF(struct SupportedTAs_Item_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P93_t;
+typedef struct ProtocolExtensionContainer_180P94 {
+ A_SEQUENCE_OF(struct TimeSynchronisationInfo_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P94_t;
+typedef struct ProtocolExtensionContainer_180P95 {
+ A_SEQUENCE_OF(struct S_TMSI_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P95_t;
+typedef struct ProtocolExtensionContainer_180P96 {
+ A_SEQUENCE_OF(struct TAIBasedMDT_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P96_t;
+typedef struct ProtocolExtensionContainer_180P97 {
+ A_SEQUENCE_OF(struct TAI_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P97_t;
+typedef struct ProtocolExtensionContainer_180P98 {
+ A_SEQUENCE_OF(struct TAI_Broadcast_Item_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P98_t;
+typedef struct ProtocolExtensionContainer_180P99 {
+ A_SEQUENCE_OF(struct TAI_Cancelled_Item_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P99_t;
+typedef struct ProtocolExtensionContainer_180P100 {
+ A_SEQUENCE_OF(struct TABasedMDT_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P100_t;
+typedef struct ProtocolExtensionContainer_180P101 {
+ A_SEQUENCE_OF(struct TABasedQMC_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P101_t;
+typedef struct ProtocolExtensionContainer_180P102 {
+ A_SEQUENCE_OF(struct TAIBasedQMC_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P102_t;
+typedef struct ProtocolExtensionContainer_180P103 {
+ A_SEQUENCE_OF(struct CompletedCellinTAI_Item_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P103_t;
+typedef struct ProtocolExtensionContainer_180P104 {
+ A_SEQUENCE_OF(struct TargeteNB_ID_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P104_t;
+typedef struct ProtocolExtensionContainer_180P105 {
+ A_SEQUENCE_OF(struct TargetRNC_ID_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P105_t;
+typedef struct ProtocolExtensionContainer_180P106 {
+ A_SEQUENCE_OF(struct TargetNgRanNode_ID_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P106_t;
+typedef struct ProtocolExtensionContainer_180P107 {
+ A_SEQUENCE_OF(struct GNB_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P107_t;
+typedef struct ProtocolExtensionContainer_180P108 {
+ A_SEQUENCE_OF(struct Global_GNB_ID_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P108_t;
+typedef struct ProtocolExtensionContainer_180P109 {
+ A_SEQUENCE_OF(struct NG_eNB_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P109_t;
+typedef struct ProtocolExtensionContainer_180P110 {
+ A_SEQUENCE_OF(struct TargeteNB_ToSourceeNB_TransparentContainer_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P110_t;
+typedef struct ProtocolExtensionContainer_180P111 {
+ A_SEQUENCE_OF(struct M1ThresholdEventA2_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P111_t;
+typedef struct ProtocolExtensionContainer_180P112 {
+ A_SEQUENCE_OF(struct TraceActivation_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P112_t;
+typedef struct ProtocolExtensionContainer_180P113 {
+ A_SEQUENCE_OF(struct Tunnel_Information_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P113_t;
+typedef struct ProtocolExtensionContainer_180P114 {
+ A_SEQUENCE_OF(struct UEAggregate_MaximumBitrates_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P114_t;
+typedef struct ProtocolExtensionContainer_180P115 {
+ A_SEQUENCE_OF(struct UEAppLayerMeasConfig_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P115_t;
+typedef struct ProtocolExtensionContainer_180P116 {
+ A_SEQUENCE_OF(struct UE_S1AP_ID_pair_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P116_t;
+typedef struct ProtocolExtensionContainer_180P117 {
+ A_SEQUENCE_OF(struct UE_associatedLogicalS1_ConnectionItemExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P117_t;
+typedef struct ProtocolExtensionContainer_180P118 {
+ A_SEQUENCE_OF(struct UESecurityCapabilities_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P118_t;
+typedef struct ProtocolExtensionContainer_180P119 {
+ A_SEQUENCE_OF(struct UE_Sidelink_Aggregate_MaximumBitrates_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P119_t;
+typedef struct ProtocolExtensionContainer_180P120 {
+ A_SEQUENCE_OF(struct UL_CP_SecurityInformation_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P120_t;
+typedef struct ProtocolExtensionContainer_180P121 {
+ A_SEQUENCE_OF(struct UserLocationInformation_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P121_t;
+typedef struct ProtocolExtensionContainer_180P122 {
+ A_SEQUENCE_OF(struct V2XServicesAuthorized_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P122_t;
+typedef struct ProtocolExtensionContainer_180P123 {
+ A_SEQUENCE_OF(struct WLANMeasurementConfiguration_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P123_t;
+typedef struct ProtocolExtensionContainer_180P124 {
+ A_SEQUENCE_OF(struct X2TNLConfigurationInfo_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P124_t;
+typedef struct ProtocolExtensionContainer_180P125 {
+ A_SEQUENCE_OF(struct ENBX2ExtTLA_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P125_t;
+typedef struct ProtocolExtensionContainer_180P126 {
+ A_SEQUENCE_OF(struct E_RABDataForwardingItem_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P126_t;
+typedef struct ProtocolExtensionContainer_180P127 {
+ A_SEQUENCE_OF(struct E_RABToBeSetupItemHOReq_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P127_t;
+typedef struct ProtocolExtensionContainer_180P128 {
+ A_SEQUENCE_OF(struct E_RABAdmittedItem_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P128_t;
+typedef struct ProtocolExtensionContainer_180P129 {
+ A_SEQUENCE_OF(struct E_RABFailedToSetupItemHOReqAckExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P129_t;
+typedef struct ProtocolExtensionContainer_180P130 {
+ A_SEQUENCE_OF(struct E_RABToBeSwitchedDLItem_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P130_t;
+typedef struct ProtocolExtensionContainer_180P131 {
+ A_SEQUENCE_OF(struct E_RABToBeSwitchedULItem_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P131_t;
+typedef struct ProtocolExtensionContainer_180P132 {
+ A_SEQUENCE_OF(struct E_RABToBeSetupItemBearerSUReqExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P132_t;
+typedef struct ProtocolExtensionContainer_180P133 {
+ A_SEQUENCE_OF(struct E_RABSetupItemBearerSUResExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P133_t;
+typedef struct ProtocolExtensionContainer_180P134 {
+ A_SEQUENCE_OF(struct E_RABToBeModifyItemBearerModReqExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P134_t;
+typedef struct ProtocolExtensionContainer_180P135 {
+ A_SEQUENCE_OF(struct E_RABModifyItemBearerModResExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P135_t;
+typedef struct ProtocolExtensionContainer_180P136 {
+ A_SEQUENCE_OF(struct E_RABReleaseItemBearerRelCompExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P136_t;
+typedef struct ProtocolExtensionContainer_180P137 {
+ A_SEQUENCE_OF(struct E_RABToBeSetupItemCtxtSUReqExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P137_t;
+typedef struct ProtocolExtensionContainer_180P138 {
+ A_SEQUENCE_OF(struct E_RABSetupItemCtxtSUResExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P138_t;
+typedef struct ProtocolExtensionContainer_180P139 {
+ A_SEQUENCE_OF(struct TAIItemExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P139_t;
+typedef struct ProtocolExtensionContainer_180P140 {
+ A_SEQUENCE_OF(struct E_RABToBeModifiedItemBearerModInd_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P140_t;
+typedef struct ProtocolExtensionContainer_180P141 {
+ A_SEQUENCE_OF(struct E_RABNotToBeModifiedItemBearerModInd_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P141_t;
+typedef struct ProtocolExtensionContainer_180P142 {
+ A_SEQUENCE_OF(struct CSGMembershipInfo_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P142_t;
+typedef struct ProtocolExtensionContainer_180P143 {
+ A_SEQUENCE_OF(struct E_RABModifyItemBearerModConfExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P143_t;
+typedef struct ProtocolExtensionContainer_180P144 {
+ A_SEQUENCE_OF(struct E_RABFailedToResumeItemResumeReq_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P144_t;
+typedef struct ProtocolExtensionContainer_180P145 {
+ A_SEQUENCE_OF(struct E_RABFailedToResumeItemResumeRes_ExtIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolExtensionContainer_180P145_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P0;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P0_specs_1;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P0_1[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P0_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P1;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P1_specs_3;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P1_3[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P1_constr_3;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P2;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P2_specs_5;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P2_5[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P2_constr_5;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P3;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P3_specs_7;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P3_7[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P3_constr_7;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P4;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P4_specs_9;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P4_9[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P4_constr_9;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P5;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P5_specs_11;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P5_11[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P5_constr_11;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P6;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P6_specs_13;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P6_13[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P6_constr_13;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P7;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P7_specs_15;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P7_15[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P7_constr_15;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P8;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P8_specs_17;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P8_17[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P8_constr_17;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P9;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P9_specs_19;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P9_19[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P9_constr_19;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P10;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P10_specs_21;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P10_21[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P10_constr_21;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P11;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P11_specs_23;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P11_23[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P11_constr_23;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P12;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P12_specs_25;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P12_25[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P12_constr_25;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P13;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P13_specs_27;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P13_27[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P13_constr_27;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P14;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P14_specs_29;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P14_29[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P14_constr_29;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P15;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P15_specs_31;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P15_31[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P15_constr_31;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P16;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P16_specs_33;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P16_33[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P16_constr_33;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P17;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P17_specs_35;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P17_35[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P17_constr_35;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P18;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P18_specs_37;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P18_37[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P18_constr_37;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P19;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P19_specs_39;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P19_39[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P19_constr_39;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P20;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P20_specs_41;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P20_41[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P20_constr_41;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P21;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P21_specs_43;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P21_43[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P21_constr_43;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P22;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P22_specs_45;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P22_45[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P22_constr_45;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P23;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P23_specs_47;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P23_47[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P23_constr_47;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P24;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P24_specs_49;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P24_49[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P24_constr_49;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P25;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P25_specs_51;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P25_51[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P25_constr_51;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P26;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P26_specs_53;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P26_53[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P26_constr_53;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P27;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P27_specs_55;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P27_55[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P27_constr_55;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P28;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P28_specs_57;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P28_57[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P28_constr_57;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P29;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P29_specs_59;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P29_59[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P29_constr_59;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P30;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P30_specs_61;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P30_61[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P30_constr_61;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P31;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P31_specs_63;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P31_63[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P31_constr_63;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P32;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P32_specs_65;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P32_65[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P32_constr_65;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P33;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P33_specs_67;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P33_67[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P33_constr_67;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P34;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P34_specs_69;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P34_69[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P34_constr_69;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P35;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P35_specs_71;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P35_71[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P35_constr_71;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P36;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P36_specs_73;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P36_73[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P36_constr_73;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P37;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P37_specs_75;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P37_75[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P37_constr_75;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P38;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P38_specs_77;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P38_77[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P38_constr_77;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P39;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P39_specs_79;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P39_79[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P39_constr_79;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P40;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P40_specs_81;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P40_81[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P40_constr_81;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P41;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P41_specs_83;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P41_83[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P41_constr_83;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P42;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P42_specs_85;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P42_85[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P42_constr_85;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P43;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P43_specs_87;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P43_87[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P43_constr_87;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P44;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P44_specs_89;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P44_89[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P44_constr_89;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P45;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P45_specs_91;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P45_91[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P45_constr_91;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P46;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P46_specs_93;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P46_93[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P46_constr_93;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P47;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P47_specs_95;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P47_95[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P47_constr_95;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P48;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P48_specs_97;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P48_97[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P48_constr_97;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P49;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P49_specs_99;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P49_99[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P49_constr_99;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P50;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P50_specs_101;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P50_101[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P50_constr_101;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P51;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P51_specs_103;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P51_103[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P51_constr_103;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P52;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P52_specs_105;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P52_105[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P52_constr_105;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P53;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P53_specs_107;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P53_107[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P53_constr_107;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P54;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P54_specs_109;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P54_109[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P54_constr_109;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P55;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P55_specs_111;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P55_111[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P55_constr_111;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P56;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P56_specs_113;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P56_113[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P56_constr_113;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P57;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P57_specs_115;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P57_115[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P57_constr_115;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P58;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P58_specs_117;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P58_117[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P58_constr_117;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P59;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P59_specs_119;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P59_119[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P59_constr_119;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P60;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P60_specs_121;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P60_121[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P60_constr_121;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P61;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P61_specs_123;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P61_123[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P61_constr_123;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P62;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P62_specs_125;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P62_125[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P62_constr_125;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P63;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P63_specs_127;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P63_127[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P63_constr_127;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P64;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P64_specs_129;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P64_129[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P64_constr_129;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P65;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P65_specs_131;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P65_131[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P65_constr_131;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P66;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P66_specs_133;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P66_133[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P66_constr_133;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P67;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P67_specs_135;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P67_135[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P67_constr_135;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P68;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P68_specs_137;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P68_137[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P68_constr_137;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P69;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P69_specs_139;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P69_139[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P69_constr_139;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P70;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P70_specs_141;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P70_141[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P70_constr_141;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P71;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P71_specs_143;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P71_143[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P71_constr_143;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P72;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P72_specs_145;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P72_145[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P72_constr_145;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P73;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P73_specs_147;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P73_147[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P73_constr_147;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P74;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P74_specs_149;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P74_149[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P74_constr_149;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P75;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P75_specs_151;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P75_151[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P75_constr_151;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P76;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P76_specs_153;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P76_153[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P76_constr_153;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P77;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P77_specs_155;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P77_155[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P77_constr_155;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P78;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P78_specs_157;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P78_157[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P78_constr_157;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P79;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P79_specs_159;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P79_159[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P79_constr_159;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P80;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P80_specs_161;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P80_161[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P80_constr_161;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P81;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P81_specs_163;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P81_163[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P81_constr_163;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P82;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P82_specs_165;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P82_165[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P82_constr_165;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P83;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P83_specs_167;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P83_167[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P83_constr_167;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P84;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P84_specs_169;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P84_169[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P84_constr_169;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P85;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P85_specs_171;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P85_171[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P85_constr_171;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P86;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P86_specs_173;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P86_173[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P86_constr_173;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P87;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P87_specs_175;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P87_175[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P87_constr_175;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P88;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P88_specs_177;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P88_177[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P88_constr_177;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P89;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P89_specs_179;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P89_179[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P89_constr_179;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P90;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P90_specs_181;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P90_181[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P90_constr_181;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P91;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P91_specs_183;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P91_183[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P91_constr_183;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P92;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P92_specs_185;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P92_185[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P92_constr_185;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P93;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P93_specs_187;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P93_187[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P93_constr_187;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P94;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P94_specs_189;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P94_189[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P94_constr_189;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P95;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P95_specs_191;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P95_191[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P95_constr_191;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P96;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P96_specs_193;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P96_193[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P96_constr_193;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P97;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P97_specs_195;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P97_195[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P97_constr_195;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P98;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P98_specs_197;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P98_197[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P98_constr_197;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P99;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P99_specs_199;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P99_199[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P99_constr_199;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P100;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P100_specs_201;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P100_201[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P100_constr_201;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P101;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P101_specs_203;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P101_203[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P101_constr_203;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P102;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P102_specs_205;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P102_205[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P102_constr_205;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P103;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P103_specs_207;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P103_207[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P103_constr_207;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P104;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P104_specs_209;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P104_209[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P104_constr_209;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P105;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P105_specs_211;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P105_211[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P105_constr_211;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P106;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P106_specs_213;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P106_213[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P106_constr_213;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P107;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P107_specs_215;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P107_215[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P107_constr_215;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P108;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P108_specs_217;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P108_217[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P108_constr_217;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P109;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P109_specs_219;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P109_219[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P109_constr_219;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P110;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P110_specs_221;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P110_221[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P110_constr_221;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P111;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P111_specs_223;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P111_223[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P111_constr_223;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P112;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P112_specs_225;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P112_225[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P112_constr_225;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P113;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P113_specs_227;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P113_227[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P113_constr_227;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P114;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P114_specs_229;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P114_229[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P114_constr_229;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P115;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P115_specs_231;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P115_231[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P115_constr_231;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P116;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P116_specs_233;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P116_233[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P116_constr_233;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P117;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P117_specs_235;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P117_235[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P117_constr_235;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P118;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P118_specs_237;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P118_237[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P118_constr_237;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P119;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P119_specs_239;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P119_239[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P119_constr_239;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P120;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P120_specs_241;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P120_241[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P120_constr_241;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P121;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P121_specs_243;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P121_243[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P121_constr_243;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P122;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P122_specs_245;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P122_245[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P122_constr_245;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P123;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P123_specs_247;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P123_247[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P123_constr_247;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P124;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P124_specs_249;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P124_249[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P124_constr_249;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P125;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P125_specs_251;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P125_251[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P125_constr_251;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P126;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P126_specs_253;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P126_253[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P126_constr_253;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P127;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P127_specs_255;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P127_255[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P127_constr_255;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P128;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P128_specs_257;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P128_257[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P128_constr_257;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P129;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P129_specs_259;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P129_259[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P129_constr_259;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P130;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P130_specs_261;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P130_261[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P130_constr_261;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P131;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P131_specs_263;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P131_263[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P131_constr_263;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P132;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P132_specs_265;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P132_265[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P132_constr_265;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P133;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P133_specs_267;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P133_267[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P133_constr_267;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P134;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P134_specs_269;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P134_269[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P134_constr_269;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P135;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P135_specs_271;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P135_271[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P135_constr_271;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P136;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P136_specs_273;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P136_273[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P136_constr_273;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P137;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P137_specs_275;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P137_275[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P137_constr_275;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P138;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P138_specs_277;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P138_277[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P138_constr_277;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P139;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P139_specs_279;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P139_279[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P139_constr_279;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P140;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P140_specs_281;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P140_281[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P140_constr_281;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P141;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P141_specs_283;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P141_283[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P141_constr_283;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P142;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P142_specs_285;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P142_285[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P142_constr_285;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P143;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P143_specs_287;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P143_287[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P143_constr_287;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P144;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P144_specs_289;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P144_289[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P144_constr_289;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_180P145;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_180P145_specs_291;
+extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_180P145_291[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_180P145_constr_291;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProtocolExtensionContainer_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ProtocolExtensionField.h b/src/s1ap/asn1c/asnGenFiles/ProtocolExtensionField.h
new file mode 100644
index 0000000..bc54276
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ProtocolExtensionField.h
@@ -0,0 +1,3386 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-Containers"
+ * found in "./asn1c/S1AP-Containers.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ProtocolExtensionField_H_
+#define _ProtocolExtensionField_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolExtensionID.h"
+#include "Criticality.h"
+#include <ANY.h>
+#include <asn_ioc.h>
+#include <OPEN_TYPE.h>
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+#include "COUNTValueExtended.h"
+#include "Presence.h"
+#include "ReceiveStatusOfULPDCPSDUsExtended.h"
+#include "COUNTvaluePDCP-SNlength18.h"
+#include "ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h"
+#include "Packet-LossRate.h"
+#include "ExtendedBitRate.h"
+#include "NRrestrictioninEPSasSecondaryRAT.h"
+#include "UnlicensedSpectrumRestriction.h"
+#include "CNTypeRestrictions.h"
+#include "NRrestrictionin5GS.h"
+#include "PLMNidentity.h"
+#include "M3Configuration.h"
+#include "M4Configuration.h"
+#include "M5Configuration.h"
+#include "MDT-Location-Info.h"
+#include "M6Configuration.h"
+#include "M7Configuration.h"
+#include "BluetoothMeasurementConfiguration.h"
+#include "WLANMeasurementConfiguration.h"
+#include "Time-UE-StayedInCell-EnhancedGranularity.h"
+#include "Cause.h"
+#include "MDTPLMNList.h"
+#include "ProSeUEtoNetworkRelaying.h"
+#include "RequestTypeAdditionalInfo.h"
+#include "TimeSynchronisationInfo.h"
+#include "MutingPatternInformation.h"
+#include "X2TNLConfigurationInfo.h"
+#include "SynchronisationInformation.h"
+#include "MobilityInformation.h"
+#include "UE-HistoryInformationFromTheUE.h"
+#include "IMSvoiceEPSfallbackfrom5G.h"
+#include "RAT-Type.h"
+#include "MutingAvailabilityIndication.h"
+#include "MDT-Configuration.h"
+#include "UEAppLayerMeasConfig.h"
+#include "ServiceType.h"
+#include "PSCellInformation.h"
+#include "ENBX2ExtTLAs.h"
+#include "ENBIndirectX2TransportLayerAddresses.h"
+#include "Data-Forwarding-Not-Possible.h"
+#include "BearerType.h"
+#include "Correlation-ID.h"
+#include "TransportInformation.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Additional_GUTI_ExtIEs__extensionValue_PR {
+ Additional_GUTI_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} Additional_GUTI_ExtIEs__extensionValue_PR;
+typedef enum AllocationAndRetentionPriority_ExtIEs__extensionValue_PR {
+ AllocationAndRetentionPriority_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} AllocationAndRetentionPriority_ExtIEs__extensionValue_PR;
+typedef enum InformationForCECapableUEs_ExtIEs__extensionValue_PR {
+ InformationForCECapableUEs_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} InformationForCECapableUEs_ExtIEs__extensionValue_PR;
+typedef enum AssistanceDataForPaging_ExtIEs__extensionValue_PR {
+ AssistanceDataForPaging_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} AssistanceDataForPaging_ExtIEs__extensionValue_PR;
+typedef enum AssistanceDataForRecommendedCells_ExtIEs__extensionValue_PR {
+ AssistanceDataForRecommendedCells_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} AssistanceDataForRecommendedCells_ExtIEs__extensionValue_PR;
+typedef enum Bearers_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR {
+ Bearers_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR_NOTHING, /* No components present */
+ Bearers_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR_COUNTValueExtended,
+ Bearers_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR_COUNTValueExtended_1,
+ Bearers_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR_ReceiveStatusOfULPDCPSDUsExtended,
+ Bearers_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR_COUNTvaluePDCP_SNlength18,
+ Bearers_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR_COUNTvaluePDCP_SNlength18_1,
+ Bearers_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18
+} Bearers_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR;
+typedef enum BluetoothMeasurementConfiguration_ExtIEs__extensionValue_PR {
+ BluetoothMeasurementConfiguration_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} BluetoothMeasurementConfiguration_ExtIEs__extensionValue_PR;
+typedef enum CancelledCellinEAI_Item_ExtIEs__extensionValue_PR {
+ CancelledCellinEAI_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} CancelledCellinEAI_Item_ExtIEs__extensionValue_PR;
+typedef enum CancelledCellinTAI_Item_ExtIEs__extensionValue_PR {
+ CancelledCellinTAI_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} CancelledCellinTAI_Item_ExtIEs__extensionValue_PR;
+typedef enum CellIdentifierAndCELevelForCECapableUEs_ExtIEs__extensionValue_PR {
+ CellIdentifierAndCELevelForCECapableUEs_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} CellIdentifierAndCELevelForCECapableUEs_ExtIEs__extensionValue_PR;
+typedef enum CellID_Broadcast_Item_ExtIEs__extensionValue_PR {
+ CellID_Broadcast_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} CellID_Broadcast_Item_ExtIEs__extensionValue_PR;
+typedef enum CellID_Cancelled_Item_ExtIEs__extensionValue_PR {
+ CellID_Cancelled_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} CellID_Cancelled_Item_ExtIEs__extensionValue_PR;
+typedef enum CellBasedMDT_ExtIEs__extensionValue_PR {
+ CellBasedMDT_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} CellBasedMDT_ExtIEs__extensionValue_PR;
+typedef enum CellBasedQMC_ExtIEs__extensionValue_PR {
+ CellBasedQMC_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} CellBasedQMC_ExtIEs__extensionValue_PR;
+typedef enum Cdma2000OneXSRVCCInfo_ExtIEs__extensionValue_PR {
+ Cdma2000OneXSRVCCInfo_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} Cdma2000OneXSRVCCInfo_ExtIEs__extensionValue_PR;
+typedef enum CellType_ExtIEs__extensionValue_PR {
+ CellType_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} CellType_ExtIEs__extensionValue_PR;
+typedef enum CGI_ExtIEs__extensionValue_PR {
+ CGI_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} CGI_ExtIEs__extensionValue_PR;
+typedef enum CNTypeRestrictions_Item_ExtIEs__extensionValue_PR {
+ CNTypeRestrictions_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} CNTypeRestrictions_Item_ExtIEs__extensionValue_PR;
+typedef enum ConnectedengNBItem_ExtIEs__extensionValue_PR {
+ ConnectedengNBItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} ConnectedengNBItem_ExtIEs__extensionValue_PR;
+typedef enum CSG_IdList_Item_ExtIEs__extensionValue_PR {
+ CSG_IdList_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} CSG_IdList_Item_ExtIEs__extensionValue_PR;
+typedef enum COUNTvalue_ExtIEs__extensionValue_PR {
+ COUNTvalue_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} COUNTvalue_ExtIEs__extensionValue_PR;
+typedef enum COUNTValueExtended_ExtIEs__extensionValue_PR {
+ COUNTValueExtended_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} COUNTValueExtended_ExtIEs__extensionValue_PR;
+typedef enum COUNTvaluePDCP_SNlength18_ExtIEs__extensionValue_PR {
+ COUNTvaluePDCP_SNlength18_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} COUNTvaluePDCP_SNlength18_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 ServedDCNsItem_ExtIEs__extensionValue_PR {
+ ServedDCNsItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} ServedDCNsItem_ExtIEs__extensionValue_PR;
+typedef enum DL_CP_SecurityInformation_ExtIEs__extensionValue_PR {
+ DL_CP_SecurityInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} DL_CP_SecurityInformation_ExtIEs__extensionValue_PR;
+typedef enum EmergencyAreaID_Broadcast_Item_ExtIEs__extensionValue_PR {
+ EmergencyAreaID_Broadcast_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} EmergencyAreaID_Broadcast_Item_ExtIEs__extensionValue_PR;
+typedef enum EmergencyAreaID_Cancelled_Item_ExtIEs__extensionValue_PR {
+ EmergencyAreaID_Cancelled_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} EmergencyAreaID_Cancelled_Item_ExtIEs__extensionValue_PR;
+typedef enum CompletedCellinEAI_Item_ExtIEs__extensionValue_PR {
+ CompletedCellinEAI_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} CompletedCellinEAI_Item_ExtIEs__extensionValue_PR;
+typedef enum GERAN_Cell_ID_ExtIEs__extensionValue_PR {
+ GERAN_Cell_ID_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} GERAN_Cell_ID_ExtIEs__extensionValue_PR;
+typedef enum GlobalENB_ID_ExtIEs__extensionValue_PR {
+ GlobalENB_ID_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} GlobalENB_ID_ExtIEs__extensionValue_PR;
+typedef enum Global_en_gNB_ID_ExtIEs__extensionValue_PR {
+ Global_en_gNB_ID_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} Global_en_gNB_ID_ExtIEs__extensionValue_PR;
+typedef enum ENB_StatusTransfer_TransparentContainer_ExtIEs__extensionValue_PR {
+ ENB_StatusTransfer_TransparentContainer_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} ENB_StatusTransfer_TransparentContainer_ExtIEs__extensionValue_PR;
+typedef enum EN_DCSONConfigurationTransfer_ExtIEs__extensionValue_PR {
+ EN_DCSONConfigurationTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} EN_DCSONConfigurationTransfer_ExtIEs__extensionValue_PR;
+typedef enum EN_DCTransferTypeRequest_ExtIEs__extensionValue_PR {
+ EN_DCTransferTypeRequest_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} EN_DCTransferTypeRequest_ExtIEs__extensionValue_PR;
+typedef enum EN_DCTransferTypeReply_ExtIEs__extensionValue_PR {
+ EN_DCTransferTypeReply_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} EN_DCTransferTypeReply_ExtIEs__extensionValue_PR;
+typedef enum EN_DCSONeNBIdentification_ExtIEs__extensionValue_PR {
+ EN_DCSONeNBIdentification_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} EN_DCSONeNBIdentification_ExtIEs__extensionValue_PR;
+typedef enum EN_DCSONengNBIdentification_ExtIEs__extensionValue_PR {
+ EN_DCSONengNBIdentification_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} EN_DCSONengNBIdentification_ExtIEs__extensionValue_PR;
+typedef enum E_RABInformationListItem_ExtIEs__extensionValue_PR {
+ E_RABInformationListItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} E_RABInformationListItem_ExtIEs__extensionValue_PR;
+typedef enum E_RABItem_ExtIEs__extensionValue_PR {
+ E_RABItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} E_RABItem_ExtIEs__extensionValue_PR;
+typedef enum E_RABQoSParameters_ExtIEs__extensionValue_PR {
+ E_RABQoSParameters_ExtIEs__extensionValue_PR_NOTHING, /* No components present */
+ E_RABQoSParameters_ExtIEs__extensionValue_PR_Packet_LossRate,
+ E_RABQoSParameters_ExtIEs__extensionValue_PR_Packet_LossRate_1
+} E_RABQoSParameters_ExtIEs__extensionValue_PR;
+typedef enum E_RABUsageReportItem_ExtIEs__extensionValue_PR {
+ E_RABUsageReportItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} E_RABUsageReportItem_ExtIEs__extensionValue_PR;
+typedef enum EUTRAN_CGI_ExtIEs__extensionValue_PR {
+ EUTRAN_CGI_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} EUTRAN_CGI_ExtIEs__extensionValue_PR;
+typedef enum ExpectedUEBehaviour_ExtIEs__extensionValue_PR {
+ ExpectedUEBehaviour_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} ExpectedUEBehaviour_ExtIEs__extensionValue_PR;
+typedef enum ExpectedUEActivityBehaviour_ExtIEs__extensionValue_PR {
+ ExpectedUEActivityBehaviour_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} ExpectedUEActivityBehaviour_ExtIEs__extensionValue_PR;
+typedef enum FiveGSTAI_ExtIEs__extensionValue_PR {
+ FiveGSTAI_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} FiveGSTAI_ExtIEs__extensionValue_PR;
+typedef enum ForbiddenTAs_Item_ExtIEs__extensionValue_PR {
+ ForbiddenTAs_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} ForbiddenTAs_Item_ExtIEs__extensionValue_PR;
+typedef enum ForbiddenLAs_Item_ExtIEs__extensionValue_PR {
+ ForbiddenLAs_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} ForbiddenLAs_Item_ExtIEs__extensionValue_PR;
+typedef enum GBR_QosInformation_ExtIEs__extensionValue_PR {
+ GBR_QosInformation_ExtIEs__extensionValue_PR_NOTHING, /* No components present */
+ GBR_QosInformation_ExtIEs__extensionValue_PR_ExtendedBitRate,
+ GBR_QosInformation_ExtIEs__extensionValue_PR_ExtendedBitRate_1,
+ GBR_QosInformation_ExtIEs__extensionValue_PR_ExtendedBitRate_2,
+ GBR_QosInformation_ExtIEs__extensionValue_PR_ExtendedBitRate_3
+} GBR_QosInformation_ExtIEs__extensionValue_PR;
+typedef enum GUMMEI_ExtIEs__extensionValue_PR {
+ GUMMEI_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} GUMMEI_ExtIEs__extensionValue_PR;
+typedef enum HandoverRestrictionList_ExtIEs__extensionValue_PR {
+ HandoverRestrictionList_ExtIEs__extensionValue_PR_NOTHING, /* No components present */
+ HandoverRestrictionList_ExtIEs__extensionValue_PR_NRrestrictioninEPSasSecondaryRAT,
+ HandoverRestrictionList_ExtIEs__extensionValue_PR_UnlicensedSpectrumRestriction,
+ HandoverRestrictionList_ExtIEs__extensionValue_PR_CNTypeRestrictions,
+ HandoverRestrictionList_ExtIEs__extensionValue_PR_NRrestrictionin5GS,
+ HandoverRestrictionList_ExtIEs__extensionValue_PR_PLMNidentity
+} HandoverRestrictionList_ExtIEs__extensionValue_PR;
+typedef enum ImmediateMDT_ExtIEs__extensionValue_PR {
+ ImmediateMDT_ExtIEs__extensionValue_PR_NOTHING, /* No components present */
+ ImmediateMDT_ExtIEs__extensionValue_PR_M3Configuration,
+ ImmediateMDT_ExtIEs__extensionValue_PR_M4Configuration,
+ ImmediateMDT_ExtIEs__extensionValue_PR_M5Configuration,
+ ImmediateMDT_ExtIEs__extensionValue_PR_MDT_Location_Info,
+ ImmediateMDT_ExtIEs__extensionValue_PR_M6Configuration,
+ ImmediateMDT_ExtIEs__extensionValue_PR_M7Configuration,
+ ImmediateMDT_ExtIEs__extensionValue_PR_BluetoothMeasurementConfiguration,
+ ImmediateMDT_ExtIEs__extensionValue_PR_WLANMeasurementConfiguration
+} ImmediateMDT_ExtIEs__extensionValue_PR;
+typedef enum InformationOnRecommendedCellsAndENBsForPaging_ExtIEs__extensionValue_PR {
+ InformationOnRecommendedCellsAndENBsForPaging_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} InformationOnRecommendedCellsAndENBsForPaging_ExtIEs__extensionValue_PR;
+typedef enum LAI_ExtIEs__extensionValue_PR {
+ LAI_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} LAI_ExtIEs__extensionValue_PR;
+typedef enum LastVisitedEUTRANCellInformation_ExtIEs__extensionValue_PR {
+ LastVisitedEUTRANCellInformation_ExtIEs__extensionValue_PR_NOTHING, /* No components present */
+ LastVisitedEUTRANCellInformation_ExtIEs__extensionValue_PR_Time_UE_StayedInCell_EnhancedGranularity,
+ LastVisitedEUTRANCellInformation_ExtIEs__extensionValue_PR_Cause
+} LastVisitedEUTRANCellInformation_ExtIEs__extensionValue_PR;
+typedef enum ListeningSubframePattern_ExtIEs__extensionValue_PR {
+ ListeningSubframePattern_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} ListeningSubframePattern_ExtIEs__extensionValue_PR;
+typedef enum LoggedMDT_ExtIEs__extensionValue_PR {
+ LoggedMDT_ExtIEs__extensionValue_PR_NOTHING, /* No components present */
+ LoggedMDT_ExtIEs__extensionValue_PR_BluetoothMeasurementConfiguration,
+ LoggedMDT_ExtIEs__extensionValue_PR_WLANMeasurementConfiguration
+} LoggedMDT_ExtIEs__extensionValue_PR;
+typedef enum LoggedMBSFNMDT_ExtIEs__extensionValue_PR {
+ LoggedMBSFNMDT_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} LoggedMBSFNMDT_ExtIEs__extensionValue_PR;
+typedef enum M3Configuration_ExtIEs__extensionValue_PR {
+ M3Configuration_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} M3Configuration_ExtIEs__extensionValue_PR;
+typedef enum M4Configuration_ExtIEs__extensionValue_PR {
+ M4Configuration_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} M4Configuration_ExtIEs__extensionValue_PR;
+typedef enum M5Configuration_ExtIEs__extensionValue_PR {
+ M5Configuration_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} M5Configuration_ExtIEs__extensionValue_PR;
+typedef enum M6Configuration_ExtIEs__extensionValue_PR {
+ M6Configuration_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} M6Configuration_ExtIEs__extensionValue_PR;
+typedef enum M7Configuration_ExtIEs__extensionValue_PR {
+ M7Configuration_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} M7Configuration_ExtIEs__extensionValue_PR;
+typedef enum MDT_Configuration_ExtIEs__extensionValue_PR {
+ MDT_Configuration_ExtIEs__extensionValue_PR_NOTHING, /* No components present */
+ MDT_Configuration_ExtIEs__extensionValue_PR_MDTPLMNList
+} MDT_Configuration_ExtIEs__extensionValue_PR;
+typedef enum MBSFN_ResultToLogInfo_ExtIEs__extensionValue_PR {
+ MBSFN_ResultToLogInfo_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} MBSFN_ResultToLogInfo_ExtIEs__extensionValue_PR;
+typedef enum MutingPatternInformation_ExtIEs__extensionValue_PR {
+ MutingPatternInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} MutingPatternInformation_ExtIEs__extensionValue_PR;
+typedef enum NB_IoT_Paging_eDRXInformation_ExtIEs__extensionValue_PR {
+ NB_IoT_Paging_eDRXInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} NB_IoT_Paging_eDRXInformation_ExtIEs__extensionValue_PR;
+typedef enum NR_CGI_ExtIEs__extensionValue_PR {
+ NR_CGI_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} NR_CGI_ExtIEs__extensionValue_PR;
+typedef enum NRUESecurityCapabilities_ExtIEs__extensionValue_PR {
+ NRUESecurityCapabilities_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} NRUESecurityCapabilities_ExtIEs__extensionValue_PR;
+typedef enum PagingAttemptInformation_ExtIEs__extensionValue_PR {
+ PagingAttemptInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} PagingAttemptInformation_ExtIEs__extensionValue_PR;
+typedef enum Paging_eDRXInformation_ExtIEs__extensionValue_PR {
+ Paging_eDRXInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} Paging_eDRXInformation_ExtIEs__extensionValue_PR;
+typedef enum M1PeriodicReporting_ExtIEs__extensionValue_PR {
+ M1PeriodicReporting_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} M1PeriodicReporting_ExtIEs__extensionValue_PR;
+typedef enum PLMNAreaBasedQMC_ExtIEs__extensionValue_PR {
+ PLMNAreaBasedQMC_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} PLMNAreaBasedQMC_ExtIEs__extensionValue_PR;
+typedef enum ProSeAuthorized_ExtIEs__extensionValue_PR {
+ ProSeAuthorized_ExtIEs__extensionValue_PR_NOTHING, /* No components present */
+ ProSeAuthorized_ExtIEs__extensionValue_PR_ProSeUEtoNetworkRelaying
+} ProSeAuthorized_ExtIEs__extensionValue_PR;
+typedef enum PSCellInformation_ExtIEs__extensionValue_PR {
+ PSCellInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} PSCellInformation_ExtIEs__extensionValue_PR;
+typedef enum RecommendedCellsForPaging_ExtIEs__extensionValue_PR {
+ RecommendedCellsForPaging_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} RecommendedCellsForPaging_ExtIEs__extensionValue_PR;
+typedef enum RecommendedCellsForPagingItem_ExtIEs__extensionValue_PR {
+ RecommendedCellsForPagingItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} RecommendedCellsForPagingItem_ExtIEs__extensionValue_PR;
+typedef enum RecommendedENBsForPaging_ExtIEs__extensionValue_PR {
+ RecommendedENBsForPaging_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} RecommendedENBsForPaging_ExtIEs__extensionValue_PR;
+typedef enum RecommendedENBItem_ExtIEs__extensionValue_PR {
+ RecommendedENBItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} RecommendedENBItem_ExtIEs__extensionValue_PR;
+typedef enum RequestType_ExtIEs__extensionValue_PR {
+ RequestType_ExtIEs__extensionValue_PR_NOTHING, /* No components present */
+ RequestType_ExtIEs__extensionValue_PR_RequestTypeAdditionalInfo
+} RequestType_ExtIEs__extensionValue_PR;
+typedef enum RIMTransfer_ExtIEs__extensionValue_PR {
+ RIMTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} RIMTransfer_ExtIEs__extensionValue_PR;
+typedef enum RLFReportInformation_ExtIEs__extensionValue_PR {
+ RLFReportInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} RLFReportInformation_ExtIEs__extensionValue_PR;
+typedef enum SecurityContext_ExtIEs__extensionValue_PR {
+ SecurityContext_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} SecurityContext_ExtIEs__extensionValue_PR;
+typedef enum SecondaryRATDataUsageReportItem_ExtIEs__extensionValue_PR {
+ SecondaryRATDataUsageReportItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} SecondaryRATDataUsageReportItem_ExtIEs__extensionValue_PR;
+typedef enum SONInformationReply_ExtIEs__extensionValue_PR {
+ SONInformationReply_ExtIEs__extensionValue_PR_NOTHING, /* No components present */
+ SONInformationReply_ExtIEs__extensionValue_PR_TimeSynchronisationInfo,
+ SONInformationReply_ExtIEs__extensionValue_PR_MutingPatternInformation
+} SONInformationReply_ExtIEs__extensionValue_PR;
+typedef enum SONConfigurationTransfer_ExtIEs__extensionValue_PR {
+ SONConfigurationTransfer_ExtIEs__extensionValue_PR_NOTHING, /* No components present */
+ SONConfigurationTransfer_ExtIEs__extensionValue_PR_X2TNLConfigurationInfo,
+ SONConfigurationTransfer_ExtIEs__extensionValue_PR_SynchronisationInformation
+} SONConfigurationTransfer_ExtIEs__extensionValue_PR;
+typedef enum SynchronisationInformation_ExtIEs__extensionValue_PR {
+ SynchronisationInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} SynchronisationInformation_ExtIEs__extensionValue_PR;
+typedef enum SourceeNB_ID_ExtIEs__extensionValue_PR {
+ SourceeNB_ID_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} SourceeNB_ID_ExtIEs__extensionValue_PR;
+typedef enum SourceeNB_ToTargeteNB_TransparentContainer_ExtIEs__extensionValue_PR {
+ SourceeNB_ToTargeteNB_TransparentContainer_ExtIEs__extensionValue_PR_NOTHING, /* No components present */
+ SourceeNB_ToTargeteNB_TransparentContainer_ExtIEs__extensionValue_PR_MobilityInformation,
+ SourceeNB_ToTargeteNB_TransparentContainer_ExtIEs__extensionValue_PR_UE_HistoryInformationFromTheUE,
+ SourceeNB_ToTargeteNB_TransparentContainer_ExtIEs__extensionValue_PR_IMSvoiceEPSfallbackfrom5G
+} SourceeNB_ToTargeteNB_TransparentContainer_ExtIEs__extensionValue_PR;
+typedef enum ServedGUMMEIsItem_ExtIEs__extensionValue_PR {
+ ServedGUMMEIsItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} ServedGUMMEIsItem_ExtIEs__extensionValue_PR;
+typedef enum Subscription_Based_UE_DifferentiationInfo_ExtIEs__extensionValue_PR {
+ Subscription_Based_UE_DifferentiationInfo_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} Subscription_Based_UE_DifferentiationInfo_ExtIEs__extensionValue_PR;
+typedef enum ScheduledCommunicationTime_ExtIEs__extensionValue_PR {
+ ScheduledCommunicationTime_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} ScheduledCommunicationTime_ExtIEs__extensionValue_PR;
+typedef enum SupportedTAs_Item_ExtIEs__extensionValue_PR {
+ SupportedTAs_Item_ExtIEs__extensionValue_PR_NOTHING, /* No components present */
+ SupportedTAs_Item_ExtIEs__extensionValue_PR_RAT_Type
+} SupportedTAs_Item_ExtIEs__extensionValue_PR;
+typedef enum TimeSynchronisationInfo_ExtIEs__extensionValue_PR {
+ TimeSynchronisationInfo_ExtIEs__extensionValue_PR_NOTHING, /* No components present */
+ TimeSynchronisationInfo_ExtIEs__extensionValue_PR_MutingAvailabilityIndication
+} TimeSynchronisationInfo_ExtIEs__extensionValue_PR;
+typedef enum S_TMSI_ExtIEs__extensionValue_PR {
+ S_TMSI_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} S_TMSI_ExtIEs__extensionValue_PR;
+typedef enum TAIBasedMDT_ExtIEs__extensionValue_PR {
+ TAIBasedMDT_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} TAIBasedMDT_ExtIEs__extensionValue_PR;
+typedef enum TAI_ExtIEs__extensionValue_PR {
+ TAI_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} TAI_ExtIEs__extensionValue_PR;
+typedef enum TAI_Broadcast_Item_ExtIEs__extensionValue_PR {
+ TAI_Broadcast_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} TAI_Broadcast_Item_ExtIEs__extensionValue_PR;
+typedef enum TAI_Cancelled_Item_ExtIEs__extensionValue_PR {
+ TAI_Cancelled_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} TAI_Cancelled_Item_ExtIEs__extensionValue_PR;
+typedef enum TABasedMDT_ExtIEs__extensionValue_PR {
+ TABasedMDT_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} TABasedMDT_ExtIEs__extensionValue_PR;
+typedef enum TABasedQMC_ExtIEs__extensionValue_PR {
+ TABasedQMC_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} TABasedQMC_ExtIEs__extensionValue_PR;
+typedef enum TAIBasedQMC_ExtIEs__extensionValue_PR {
+ TAIBasedQMC_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} TAIBasedQMC_ExtIEs__extensionValue_PR;
+typedef enum CompletedCellinTAI_Item_ExtIEs__extensionValue_PR {
+ CompletedCellinTAI_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} CompletedCellinTAI_Item_ExtIEs__extensionValue_PR;
+typedef enum TargeteNB_ID_ExtIEs__extensionValue_PR {
+ TargeteNB_ID_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} TargeteNB_ID_ExtIEs__extensionValue_PR;
+typedef enum TargetRNC_ID_ExtIEs__extensionValue_PR {
+ TargetRNC_ID_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} TargetRNC_ID_ExtIEs__extensionValue_PR;
+typedef enum TargetNgRanNode_ID_ExtIEs__extensionValue_PR {
+ TargetNgRanNode_ID_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} TargetNgRanNode_ID_ExtIEs__extensionValue_PR;
+typedef enum GNB_ExtIEs__extensionValue_PR {
+ GNB_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} GNB_ExtIEs__extensionValue_PR;
+typedef enum Global_GNB_ID_ExtIEs__extensionValue_PR {
+ Global_GNB_ID_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} Global_GNB_ID_ExtIEs__extensionValue_PR;
+typedef enum NG_eNB_ExtIEs__extensionValue_PR {
+ NG_eNB_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} NG_eNB_ExtIEs__extensionValue_PR;
+typedef enum TargeteNB_ToSourceeNB_TransparentContainer_ExtIEs__extensionValue_PR {
+ TargeteNB_ToSourceeNB_TransparentContainer_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} TargeteNB_ToSourceeNB_TransparentContainer_ExtIEs__extensionValue_PR;
+typedef enum M1ThresholdEventA2_ExtIEs__extensionValue_PR {
+ M1ThresholdEventA2_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} M1ThresholdEventA2_ExtIEs__extensionValue_PR;
+typedef enum TraceActivation_ExtIEs__extensionValue_PR {
+ TraceActivation_ExtIEs__extensionValue_PR_NOTHING, /* No components present */
+ TraceActivation_ExtIEs__extensionValue_PR_MDT_Configuration,
+ TraceActivation_ExtIEs__extensionValue_PR_UEAppLayerMeasConfig
+} TraceActivation_ExtIEs__extensionValue_PR;
+typedef enum Tunnel_Information_ExtIEs__extensionValue_PR {
+ Tunnel_Information_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} Tunnel_Information_ExtIEs__extensionValue_PR;
+typedef enum UEAggregate_MaximumBitrates_ExtIEs__extensionValue_PR {
+ UEAggregate_MaximumBitrates_ExtIEs__extensionValue_PR_NOTHING, /* No components present */
+ UEAggregate_MaximumBitrates_ExtIEs__extensionValue_PR_ExtendedBitRate,
+ UEAggregate_MaximumBitrates_ExtIEs__extensionValue_PR_ExtendedBitRate_1
+} UEAggregate_MaximumBitrates_ExtIEs__extensionValue_PR;
+typedef enum UEAppLayerMeasConfig_ExtIEs__extensionValue_PR {
+ UEAppLayerMeasConfig_ExtIEs__extensionValue_PR_NOTHING, /* No components present */
+ UEAppLayerMeasConfig_ExtIEs__extensionValue_PR_ServiceType
+} UEAppLayerMeasConfig_ExtIEs__extensionValue_PR;
+typedef enum UE_S1AP_ID_pair_ExtIEs__extensionValue_PR {
+ UE_S1AP_ID_pair_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} UE_S1AP_ID_pair_ExtIEs__extensionValue_PR;
+typedef enum UE_associatedLogicalS1_ConnectionItemExtIEs__extensionValue_PR {
+ UE_associatedLogicalS1_ConnectionItemExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} UE_associatedLogicalS1_ConnectionItemExtIEs__extensionValue_PR;
+typedef enum UESecurityCapabilities_ExtIEs__extensionValue_PR {
+ UESecurityCapabilities_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} UESecurityCapabilities_ExtIEs__extensionValue_PR;
+typedef enum UE_Sidelink_Aggregate_MaximumBitrates_ExtIEs__extensionValue_PR {
+ UE_Sidelink_Aggregate_MaximumBitrates_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} UE_Sidelink_Aggregate_MaximumBitrates_ExtIEs__extensionValue_PR;
+typedef enum UL_CP_SecurityInformation_ExtIEs__extensionValue_PR {
+ UL_CP_SecurityInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} UL_CP_SecurityInformation_ExtIEs__extensionValue_PR;
+typedef enum UserLocationInformation_ExtIEs__extensionValue_PR {
+ UserLocationInformation_ExtIEs__extensionValue_PR_NOTHING, /* No components present */
+ UserLocationInformation_ExtIEs__extensionValue_PR_PSCellInformation
+} UserLocationInformation_ExtIEs__extensionValue_PR;
+typedef enum V2XServicesAuthorized_ExtIEs__extensionValue_PR {
+ V2XServicesAuthorized_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} V2XServicesAuthorized_ExtIEs__extensionValue_PR;
+typedef enum WLANMeasurementConfiguration_ExtIEs__extensionValue_PR {
+ WLANMeasurementConfiguration_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} WLANMeasurementConfiguration_ExtIEs__extensionValue_PR;
+typedef enum X2TNLConfigurationInfo_ExtIEs__extensionValue_PR {
+ X2TNLConfigurationInfo_ExtIEs__extensionValue_PR_NOTHING, /* No components present */
+ X2TNLConfigurationInfo_ExtIEs__extensionValue_PR_ENBX2ExtTLAs,
+ X2TNLConfigurationInfo_ExtIEs__extensionValue_PR_ENBIndirectX2TransportLayerAddresses
+} X2TNLConfigurationInfo_ExtIEs__extensionValue_PR;
+typedef enum ENBX2ExtTLA_ExtIEs__extensionValue_PR {
+ ENBX2ExtTLA_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} ENBX2ExtTLA_ExtIEs__extensionValue_PR;
+typedef enum E_RABDataForwardingItem_ExtIEs__extensionValue_PR {
+ E_RABDataForwardingItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} E_RABDataForwardingItem_ExtIEs__extensionValue_PR;
+typedef enum E_RABToBeSetupItemHOReq_ExtIEs__extensionValue_PR {
+ E_RABToBeSetupItemHOReq_ExtIEs__extensionValue_PR_NOTHING, /* No components present */
+ E_RABToBeSetupItemHOReq_ExtIEs__extensionValue_PR_Data_Forwarding_Not_Possible,
+ E_RABToBeSetupItemHOReq_ExtIEs__extensionValue_PR_BearerType
+} E_RABToBeSetupItemHOReq_ExtIEs__extensionValue_PR;
+typedef enum E_RABAdmittedItem_ExtIEs__extensionValue_PR {
+ E_RABAdmittedItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} E_RABAdmittedItem_ExtIEs__extensionValue_PR;
+typedef enum E_RABFailedToSetupItemHOReqAckExtIEs__extensionValue_PR {
+ E_RABFailedToSetupItemHOReqAckExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} E_RABFailedToSetupItemHOReqAckExtIEs__extensionValue_PR;
+typedef enum E_RABToBeSwitchedDLItem_ExtIEs__extensionValue_PR {
+ E_RABToBeSwitchedDLItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} E_RABToBeSwitchedDLItem_ExtIEs__extensionValue_PR;
+typedef enum E_RABToBeSwitchedULItem_ExtIEs__extensionValue_PR {
+ E_RABToBeSwitchedULItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} E_RABToBeSwitchedULItem_ExtIEs__extensionValue_PR;
+typedef enum E_RABToBeSetupItemBearerSUReqExtIEs__extensionValue_PR {
+ E_RABToBeSetupItemBearerSUReqExtIEs__extensionValue_PR_NOTHING, /* No components present */
+ E_RABToBeSetupItemBearerSUReqExtIEs__extensionValue_PR_Correlation_ID,
+ E_RABToBeSetupItemBearerSUReqExtIEs__extensionValue_PR_Correlation_ID_1,
+ E_RABToBeSetupItemBearerSUReqExtIEs__extensionValue_PR_BearerType
+} E_RABToBeSetupItemBearerSUReqExtIEs__extensionValue_PR;
+typedef enum E_RABSetupItemBearerSUResExtIEs__extensionValue_PR {
+ E_RABSetupItemBearerSUResExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} E_RABSetupItemBearerSUResExtIEs__extensionValue_PR;
+typedef enum E_RABToBeModifyItemBearerModReqExtIEs__extensionValue_PR {
+ E_RABToBeModifyItemBearerModReqExtIEs__extensionValue_PR_NOTHING, /* No components present */
+ E_RABToBeModifyItemBearerModReqExtIEs__extensionValue_PR_TransportInformation
+} E_RABToBeModifyItemBearerModReqExtIEs__extensionValue_PR;
+typedef enum E_RABModifyItemBearerModResExtIEs__extensionValue_PR {
+ E_RABModifyItemBearerModResExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} E_RABModifyItemBearerModResExtIEs__extensionValue_PR;
+typedef enum E_RABReleaseItemBearerRelCompExtIEs__extensionValue_PR {
+ E_RABReleaseItemBearerRelCompExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} E_RABReleaseItemBearerRelCompExtIEs__extensionValue_PR;
+typedef enum E_RABToBeSetupItemCtxtSUReqExtIEs__extensionValue_PR {
+ E_RABToBeSetupItemCtxtSUReqExtIEs__extensionValue_PR_NOTHING, /* No components present */
+ E_RABToBeSetupItemCtxtSUReqExtIEs__extensionValue_PR_Correlation_ID,
+ E_RABToBeSetupItemCtxtSUReqExtIEs__extensionValue_PR_Correlation_ID_1,
+ E_RABToBeSetupItemCtxtSUReqExtIEs__extensionValue_PR_BearerType
+} E_RABToBeSetupItemCtxtSUReqExtIEs__extensionValue_PR;
+typedef enum E_RABSetupItemCtxtSUResExtIEs__extensionValue_PR {
+ E_RABSetupItemCtxtSUResExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} E_RABSetupItemCtxtSUResExtIEs__extensionValue_PR;
+typedef enum TAIItemExtIEs__extensionValue_PR {
+ TAIItemExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} TAIItemExtIEs__extensionValue_PR;
+typedef enum E_RABToBeModifiedItemBearerModInd_ExtIEs__extensionValue_PR {
+ E_RABToBeModifiedItemBearerModInd_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} E_RABToBeModifiedItemBearerModInd_ExtIEs__extensionValue_PR;
+typedef enum E_RABNotToBeModifiedItemBearerModInd_ExtIEs__extensionValue_PR {
+ E_RABNotToBeModifiedItemBearerModInd_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} E_RABNotToBeModifiedItemBearerModInd_ExtIEs__extensionValue_PR;
+typedef enum CSGMembershipInfo_ExtIEs__extensionValue_PR {
+ CSGMembershipInfo_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} CSGMembershipInfo_ExtIEs__extensionValue_PR;
+typedef enum E_RABModifyItemBearerModConfExtIEs__extensionValue_PR {
+ E_RABModifyItemBearerModConfExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} E_RABModifyItemBearerModConfExtIEs__extensionValue_PR;
+typedef enum E_RABFailedToResumeItemResumeReq_ExtIEs__extensionValue_PR {
+ E_RABFailedToResumeItemResumeReq_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} E_RABFailedToResumeItemResumeReq_ExtIEs__extensionValue_PR;
+typedef enum E_RABFailedToResumeItemResumeRes_ExtIEs__extensionValue_PR {
+ E_RABFailedToResumeItemResumeRes_ExtIEs__extensionValue_PR_NOTHING /* No components present */
+
+} E_RABFailedToResumeItemResumeRes_ExtIEs__extensionValue_PR;
+
+/* ProtocolExtensionField */
+typedef struct Additional_GUTI_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct Additional_GUTI_ExtIEs__extensionValue {
+ Additional_GUTI_ExtIEs__extensionValue_PR present;
+ union Additional_GUTI_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;
+} Additional_GUTI_ExtIEs_t;
+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 InformationForCECapableUEs_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct InformationForCECapableUEs_ExtIEs__extensionValue {
+ InformationForCECapableUEs_ExtIEs__extensionValue_PR present;
+ union InformationForCECapableUEs_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;
+} InformationForCECapableUEs_ExtIEs_t;
+typedef struct AssistanceDataForPaging_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct AssistanceDataForPaging_ExtIEs__extensionValue {
+ AssistanceDataForPaging_ExtIEs__extensionValue_PR present;
+ union AssistanceDataForPaging_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;
+} AssistanceDataForPaging_ExtIEs_t;
+typedef struct AssistanceDataForRecommendedCells_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct AssistanceDataForRecommendedCells_ExtIEs__extensionValue {
+ AssistanceDataForRecommendedCells_ExtIEs__extensionValue_PR present;
+ union AssistanceDataForRecommendedCells_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;
+} AssistanceDataForRecommendedCells_ExtIEs_t;
+typedef struct Bearers_SubjectToStatusTransfer_ItemExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct Bearers_SubjectToStatusTransfer_ItemExtIEs__extensionValue {
+ Bearers_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR present;
+ union Bearers_SubjectToStatusTransfer_ItemExtIEs__extensionValue_u {
+ COUNTValueExtended_t COUNTValueExtended;
+ COUNTValueExtended_t COUNTValueExtended_1;
+ ReceiveStatusOfULPDCPSDUsExtended_t ReceiveStatusOfULPDCPSDUsExtended;
+ COUNTvaluePDCP_SNlength18_t COUNTvaluePDCP_SNlength18;
+ COUNTvaluePDCP_SNlength18_t COUNTvaluePDCP_SNlength18_1;
+ ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_t ReceiveStatusOfULPDCPSDUsPDCP_SNlength18;
+ } 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;
+} Bearers_SubjectToStatusTransfer_ItemExtIEs_t;
+typedef struct BluetoothMeasurementConfiguration_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct BluetoothMeasurementConfiguration_ExtIEs__extensionValue {
+ BluetoothMeasurementConfiguration_ExtIEs__extensionValue_PR present;
+ union BluetoothMeasurementConfiguration_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;
+} BluetoothMeasurementConfiguration_ExtIEs_t;
+typedef struct CancelledCellinEAI_Item_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct CancelledCellinEAI_Item_ExtIEs__extensionValue {
+ CancelledCellinEAI_Item_ExtIEs__extensionValue_PR present;
+ union CancelledCellinEAI_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;
+} CancelledCellinEAI_Item_ExtIEs_t;
+typedef struct CancelledCellinTAI_Item_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct CancelledCellinTAI_Item_ExtIEs__extensionValue {
+ CancelledCellinTAI_Item_ExtIEs__extensionValue_PR present;
+ union CancelledCellinTAI_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;
+} CancelledCellinTAI_Item_ExtIEs_t;
+typedef struct CellIdentifierAndCELevelForCECapableUEs_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct CellIdentifierAndCELevelForCECapableUEs_ExtIEs__extensionValue {
+ CellIdentifierAndCELevelForCECapableUEs_ExtIEs__extensionValue_PR present;
+ union CellIdentifierAndCELevelForCECapableUEs_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;
+} CellIdentifierAndCELevelForCECapableUEs_ExtIEs_t;
+typedef struct CellID_Broadcast_Item_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct CellID_Broadcast_Item_ExtIEs__extensionValue {
+ CellID_Broadcast_Item_ExtIEs__extensionValue_PR present;
+ union CellID_Broadcast_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;
+} CellID_Broadcast_Item_ExtIEs_t;
+typedef struct CellID_Cancelled_Item_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct CellID_Cancelled_Item_ExtIEs__extensionValue {
+ CellID_Cancelled_Item_ExtIEs__extensionValue_PR present;
+ union CellID_Cancelled_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;
+} CellID_Cancelled_Item_ExtIEs_t;
+typedef struct CellBasedMDT_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct CellBasedMDT_ExtIEs__extensionValue {
+ CellBasedMDT_ExtIEs__extensionValue_PR present;
+ union CellBasedMDT_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;
+} CellBasedMDT_ExtIEs_t;
+typedef struct CellBasedQMC_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct CellBasedQMC_ExtIEs__extensionValue {
+ CellBasedQMC_ExtIEs__extensionValue_PR present;
+ union CellBasedQMC_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;
+} CellBasedQMC_ExtIEs_t;
+typedef struct Cdma2000OneXSRVCCInfo_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct Cdma2000OneXSRVCCInfo_ExtIEs__extensionValue {
+ Cdma2000OneXSRVCCInfo_ExtIEs__extensionValue_PR present;
+ union Cdma2000OneXSRVCCInfo_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;
+} Cdma2000OneXSRVCCInfo_ExtIEs_t;
+typedef struct CellType_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct CellType_ExtIEs__extensionValue {
+ CellType_ExtIEs__extensionValue_PR present;
+ union CellType_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;
+} CellType_ExtIEs_t;
+typedef struct CGI_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct CGI_ExtIEs__extensionValue {
+ CGI_ExtIEs__extensionValue_PR present;
+ union CGI_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;
+} CGI_ExtIEs_t;
+typedef struct CNTypeRestrictions_Item_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct CNTypeRestrictions_Item_ExtIEs__extensionValue {
+ CNTypeRestrictions_Item_ExtIEs__extensionValue_PR present;
+ union CNTypeRestrictions_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;
+} CNTypeRestrictions_Item_ExtIEs_t;
+typedef struct ConnectedengNBItem_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct ConnectedengNBItem_ExtIEs__extensionValue {
+ ConnectedengNBItem_ExtIEs__extensionValue_PR present;
+ union ConnectedengNBItem_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;
+} ConnectedengNBItem_ExtIEs_t;
+typedef struct CSG_IdList_Item_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct CSG_IdList_Item_ExtIEs__extensionValue {
+ CSG_IdList_Item_ExtIEs__extensionValue_PR present;
+ union CSG_IdList_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;
+} CSG_IdList_Item_ExtIEs_t;
+typedef struct COUNTvalue_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct COUNTvalue_ExtIEs__extensionValue {
+ COUNTvalue_ExtIEs__extensionValue_PR present;
+ union COUNTvalue_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;
+} COUNTvalue_ExtIEs_t;
+typedef struct COUNTValueExtended_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct COUNTValueExtended_ExtIEs__extensionValue {
+ COUNTValueExtended_ExtIEs__extensionValue_PR present;
+ union COUNTValueExtended_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;
+} COUNTValueExtended_ExtIEs_t;
+typedef struct COUNTvaluePDCP_SNlength18_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct COUNTvaluePDCP_SNlength18_ExtIEs__extensionValue {
+ COUNTvaluePDCP_SNlength18_ExtIEs__extensionValue_PR present;
+ union COUNTvaluePDCP_SNlength18_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;
+} COUNTvaluePDCP_SNlength18_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 ServedDCNsItem_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct ServedDCNsItem_ExtIEs__extensionValue {
+ ServedDCNsItem_ExtIEs__extensionValue_PR present;
+ union ServedDCNsItem_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;
+} ServedDCNsItem_ExtIEs_t;
+typedef struct DL_CP_SecurityInformation_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct DL_CP_SecurityInformation_ExtIEs__extensionValue {
+ DL_CP_SecurityInformation_ExtIEs__extensionValue_PR present;
+ union DL_CP_SecurityInformation_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;
+} DL_CP_SecurityInformation_ExtIEs_t;
+typedef struct EmergencyAreaID_Broadcast_Item_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct EmergencyAreaID_Broadcast_Item_ExtIEs__extensionValue {
+ EmergencyAreaID_Broadcast_Item_ExtIEs__extensionValue_PR present;
+ union EmergencyAreaID_Broadcast_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;
+} EmergencyAreaID_Broadcast_Item_ExtIEs_t;
+typedef struct EmergencyAreaID_Cancelled_Item_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct EmergencyAreaID_Cancelled_Item_ExtIEs__extensionValue {
+ EmergencyAreaID_Cancelled_Item_ExtIEs__extensionValue_PR present;
+ union EmergencyAreaID_Cancelled_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;
+} EmergencyAreaID_Cancelled_Item_ExtIEs_t;
+typedef struct CompletedCellinEAI_Item_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct CompletedCellinEAI_Item_ExtIEs__extensionValue {
+ CompletedCellinEAI_Item_ExtIEs__extensionValue_PR present;
+ union CompletedCellinEAI_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;
+} CompletedCellinEAI_Item_ExtIEs_t;
+typedef struct GERAN_Cell_ID_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct GERAN_Cell_ID_ExtIEs__extensionValue {
+ GERAN_Cell_ID_ExtIEs__extensionValue_PR present;
+ union GERAN_Cell_ID_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;
+} GERAN_Cell_ID_ExtIEs_t;
+typedef struct GlobalENB_ID_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct GlobalENB_ID_ExtIEs__extensionValue {
+ GlobalENB_ID_ExtIEs__extensionValue_PR present;
+ union GlobalENB_ID_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;
+} GlobalENB_ID_ExtIEs_t;
+typedef struct Global_en_gNB_ID_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct Global_en_gNB_ID_ExtIEs__extensionValue {
+ Global_en_gNB_ID_ExtIEs__extensionValue_PR present;
+ union Global_en_gNB_ID_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;
+} Global_en_gNB_ID_ExtIEs_t;
+typedef struct ENB_StatusTransfer_TransparentContainer_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct ENB_StatusTransfer_TransparentContainer_ExtIEs__extensionValue {
+ ENB_StatusTransfer_TransparentContainer_ExtIEs__extensionValue_PR present;
+ union ENB_StatusTransfer_TransparentContainer_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;
+} ENB_StatusTransfer_TransparentContainer_ExtIEs_t;
+typedef struct EN_DCSONConfigurationTransfer_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct EN_DCSONConfigurationTransfer_ExtIEs__extensionValue {
+ EN_DCSONConfigurationTransfer_ExtIEs__extensionValue_PR present;
+ union EN_DCSONConfigurationTransfer_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;
+} EN_DCSONConfigurationTransfer_ExtIEs_t;
+typedef struct EN_DCTransferTypeRequest_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct EN_DCTransferTypeRequest_ExtIEs__extensionValue {
+ EN_DCTransferTypeRequest_ExtIEs__extensionValue_PR present;
+ union EN_DCTransferTypeRequest_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;
+} EN_DCTransferTypeRequest_ExtIEs_t;
+typedef struct EN_DCTransferTypeReply_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct EN_DCTransferTypeReply_ExtIEs__extensionValue {
+ EN_DCTransferTypeReply_ExtIEs__extensionValue_PR present;
+ union EN_DCTransferTypeReply_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;
+} EN_DCTransferTypeReply_ExtIEs_t;
+typedef struct EN_DCSONeNBIdentification_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct EN_DCSONeNBIdentification_ExtIEs__extensionValue {
+ EN_DCSONeNBIdentification_ExtIEs__extensionValue_PR present;
+ union EN_DCSONeNBIdentification_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;
+} EN_DCSONeNBIdentification_ExtIEs_t;
+typedef struct EN_DCSONengNBIdentification_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct EN_DCSONengNBIdentification_ExtIEs__extensionValue {
+ EN_DCSONengNBIdentification_ExtIEs__extensionValue_PR present;
+ union EN_DCSONengNBIdentification_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;
+} EN_DCSONengNBIdentification_ExtIEs_t;
+typedef struct E_RABInformationListItem_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct E_RABInformationListItem_ExtIEs__extensionValue {
+ E_RABInformationListItem_ExtIEs__extensionValue_PR present;
+ union E_RABInformationListItem_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;
+} E_RABInformationListItem_ExtIEs_t;
+typedef struct E_RABItem_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct E_RABItem_ExtIEs__extensionValue {
+ E_RABItem_ExtIEs__extensionValue_PR present;
+ union E_RABItem_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;
+} E_RABItem_ExtIEs_t;
+typedef struct E_RABQoSParameters_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct E_RABQoSParameters_ExtIEs__extensionValue {
+ E_RABQoSParameters_ExtIEs__extensionValue_PR present;
+ union E_RABQoSParameters_ExtIEs__extensionValue_u {
+ Packet_LossRate_t Packet_LossRate;
+ Packet_LossRate_t Packet_LossRate_1;
+ } 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;
+} E_RABQoSParameters_ExtIEs_t;
+typedef struct E_RABUsageReportItem_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct E_RABUsageReportItem_ExtIEs__extensionValue {
+ E_RABUsageReportItem_ExtIEs__extensionValue_PR present;
+ union E_RABUsageReportItem_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;
+} E_RABUsageReportItem_ExtIEs_t;
+typedef struct EUTRAN_CGI_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct EUTRAN_CGI_ExtIEs__extensionValue {
+ EUTRAN_CGI_ExtIEs__extensionValue_PR present;
+ union EUTRAN_CGI_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;
+} EUTRAN_CGI_ExtIEs_t;
+typedef struct ExpectedUEBehaviour_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct ExpectedUEBehaviour_ExtIEs__extensionValue {
+ ExpectedUEBehaviour_ExtIEs__extensionValue_PR present;
+ union ExpectedUEBehaviour_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;
+} ExpectedUEBehaviour_ExtIEs_t;
+typedef struct ExpectedUEActivityBehaviour_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct ExpectedUEActivityBehaviour_ExtIEs__extensionValue {
+ ExpectedUEActivityBehaviour_ExtIEs__extensionValue_PR present;
+ union ExpectedUEActivityBehaviour_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;
+} ExpectedUEActivityBehaviour_ExtIEs_t;
+typedef struct FiveGSTAI_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct FiveGSTAI_ExtIEs__extensionValue {
+ FiveGSTAI_ExtIEs__extensionValue_PR present;
+ union FiveGSTAI_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;
+} FiveGSTAI_ExtIEs_t;
+typedef struct ForbiddenTAs_Item_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct ForbiddenTAs_Item_ExtIEs__extensionValue {
+ ForbiddenTAs_Item_ExtIEs__extensionValue_PR present;
+ union ForbiddenTAs_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;
+} ForbiddenTAs_Item_ExtIEs_t;
+typedef struct ForbiddenLAs_Item_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct ForbiddenLAs_Item_ExtIEs__extensionValue {
+ ForbiddenLAs_Item_ExtIEs__extensionValue_PR present;
+ union ForbiddenLAs_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;
+} ForbiddenLAs_Item_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 {
+ ExtendedBitRate_t ExtendedBitRate;
+ ExtendedBitRate_t ExtendedBitRate_1;
+ ExtendedBitRate_t ExtendedBitRate_2;
+ ExtendedBitRate_t ExtendedBitRate_3;
+ } 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 GUMMEI_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct GUMMEI_ExtIEs__extensionValue {
+ GUMMEI_ExtIEs__extensionValue_PR present;
+ union GUMMEI_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;
+} GUMMEI_ExtIEs_t;
+typedef struct HandoverRestrictionList_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct HandoverRestrictionList_ExtIEs__extensionValue {
+ HandoverRestrictionList_ExtIEs__extensionValue_PR present;
+ union HandoverRestrictionList_ExtIEs__extensionValue_u {
+ NRrestrictioninEPSasSecondaryRAT_t NRrestrictioninEPSasSecondaryRAT;
+ UnlicensedSpectrumRestriction_t UnlicensedSpectrumRestriction;
+ CNTypeRestrictions_t CNTypeRestrictions;
+ NRrestrictionin5GS_t NRrestrictionin5GS;
+ PLMNidentity_t PLMNidentity;
+ } 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;
+} HandoverRestrictionList_ExtIEs_t;
+typedef struct ImmediateMDT_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct ImmediateMDT_ExtIEs__extensionValue {
+ ImmediateMDT_ExtIEs__extensionValue_PR present;
+ union ImmediateMDT_ExtIEs__extensionValue_u {
+ M3Configuration_t M3Configuration;
+ M4Configuration_t M4Configuration;
+ M5Configuration_t M5Configuration;
+ MDT_Location_Info_t MDT_Location_Info;
+ M6Configuration_t M6Configuration;
+ M7Configuration_t M7Configuration;
+ BluetoothMeasurementConfiguration_t BluetoothMeasurementConfiguration;
+ WLANMeasurementConfiguration_t WLANMeasurementConfiguration;
+ } 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;
+} ImmediateMDT_ExtIEs_t;
+typedef struct InformationOnRecommendedCellsAndENBsForPaging_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct InformationOnRecommendedCellsAndENBsForPaging_ExtIEs__extensionValue {
+ InformationOnRecommendedCellsAndENBsForPaging_ExtIEs__extensionValue_PR present;
+ union InformationOnRecommendedCellsAndENBsForPaging_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;
+} InformationOnRecommendedCellsAndENBsForPaging_ExtIEs_t;
+typedef struct LAI_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct LAI_ExtIEs__extensionValue {
+ LAI_ExtIEs__extensionValue_PR present;
+ union LAI_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;
+} LAI_ExtIEs_t;
+typedef struct LastVisitedEUTRANCellInformation_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct LastVisitedEUTRANCellInformation_ExtIEs__extensionValue {
+ LastVisitedEUTRANCellInformation_ExtIEs__extensionValue_PR present;
+ union LastVisitedEUTRANCellInformation_ExtIEs__extensionValue_u {
+ Time_UE_StayedInCell_EnhancedGranularity_t Time_UE_StayedInCell_EnhancedGranularity;
+ Cause_t Cause;
+ } 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;
+} LastVisitedEUTRANCellInformation_ExtIEs_t;
+typedef struct ListeningSubframePattern_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct ListeningSubframePattern_ExtIEs__extensionValue {
+ ListeningSubframePattern_ExtIEs__extensionValue_PR present;
+ union ListeningSubframePattern_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;
+} ListeningSubframePattern_ExtIEs_t;
+typedef struct LoggedMDT_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct LoggedMDT_ExtIEs__extensionValue {
+ LoggedMDT_ExtIEs__extensionValue_PR present;
+ union LoggedMDT_ExtIEs__extensionValue_u {
+ BluetoothMeasurementConfiguration_t BluetoothMeasurementConfiguration;
+ WLANMeasurementConfiguration_t WLANMeasurementConfiguration;
+ } 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;
+} LoggedMDT_ExtIEs_t;
+typedef struct LoggedMBSFNMDT_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct LoggedMBSFNMDT_ExtIEs__extensionValue {
+ LoggedMBSFNMDT_ExtIEs__extensionValue_PR present;
+ union LoggedMBSFNMDT_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;
+} LoggedMBSFNMDT_ExtIEs_t;
+typedef struct M3Configuration_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct M3Configuration_ExtIEs__extensionValue {
+ M3Configuration_ExtIEs__extensionValue_PR present;
+ union M3Configuration_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;
+} M3Configuration_ExtIEs_t;
+typedef struct M4Configuration_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct M4Configuration_ExtIEs__extensionValue {
+ M4Configuration_ExtIEs__extensionValue_PR present;
+ union M4Configuration_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;
+} M4Configuration_ExtIEs_t;
+typedef struct M5Configuration_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct M5Configuration_ExtIEs__extensionValue {
+ M5Configuration_ExtIEs__extensionValue_PR present;
+ union M5Configuration_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;
+} M5Configuration_ExtIEs_t;
+typedef struct M6Configuration_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct M6Configuration_ExtIEs__extensionValue {
+ M6Configuration_ExtIEs__extensionValue_PR present;
+ union M6Configuration_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;
+} M6Configuration_ExtIEs_t;
+typedef struct M7Configuration_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct M7Configuration_ExtIEs__extensionValue {
+ M7Configuration_ExtIEs__extensionValue_PR present;
+ union M7Configuration_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;
+} M7Configuration_ExtIEs_t;
+typedef struct MDT_Configuration_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct MDT_Configuration_ExtIEs__extensionValue {
+ MDT_Configuration_ExtIEs__extensionValue_PR present;
+ union MDT_Configuration_ExtIEs__extensionValue_u {
+ MDTPLMNList_t MDTPLMNList;
+ } 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;
+} MDT_Configuration_ExtIEs_t;
+typedef struct MBSFN_ResultToLogInfo_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct MBSFN_ResultToLogInfo_ExtIEs__extensionValue {
+ MBSFN_ResultToLogInfo_ExtIEs__extensionValue_PR present;
+ union MBSFN_ResultToLogInfo_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;
+} MBSFN_ResultToLogInfo_ExtIEs_t;
+typedef struct MutingPatternInformation_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct MutingPatternInformation_ExtIEs__extensionValue {
+ MutingPatternInformation_ExtIEs__extensionValue_PR present;
+ union MutingPatternInformation_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;
+} MutingPatternInformation_ExtIEs_t;
+typedef struct NB_IoT_Paging_eDRXInformation_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct NB_IoT_Paging_eDRXInformation_ExtIEs__extensionValue {
+ NB_IoT_Paging_eDRXInformation_ExtIEs__extensionValue_PR present;
+ union NB_IoT_Paging_eDRXInformation_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;
+} NB_IoT_Paging_eDRXInformation_ExtIEs_t;
+typedef struct NR_CGI_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct NR_CGI_ExtIEs__extensionValue {
+ NR_CGI_ExtIEs__extensionValue_PR present;
+ union NR_CGI_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;
+} NR_CGI_ExtIEs_t;
+typedef struct NRUESecurityCapabilities_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct NRUESecurityCapabilities_ExtIEs__extensionValue {
+ NRUESecurityCapabilities_ExtIEs__extensionValue_PR present;
+ union NRUESecurityCapabilities_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;
+} NRUESecurityCapabilities_ExtIEs_t;
+typedef struct PagingAttemptInformation_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct PagingAttemptInformation_ExtIEs__extensionValue {
+ PagingAttemptInformation_ExtIEs__extensionValue_PR present;
+ union PagingAttemptInformation_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;
+} PagingAttemptInformation_ExtIEs_t;
+typedef struct Paging_eDRXInformation_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct Paging_eDRXInformation_ExtIEs__extensionValue {
+ Paging_eDRXInformation_ExtIEs__extensionValue_PR present;
+ union Paging_eDRXInformation_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;
+} Paging_eDRXInformation_ExtIEs_t;
+typedef struct M1PeriodicReporting_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct M1PeriodicReporting_ExtIEs__extensionValue {
+ M1PeriodicReporting_ExtIEs__extensionValue_PR present;
+ union M1PeriodicReporting_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;
+} M1PeriodicReporting_ExtIEs_t;
+typedef struct PLMNAreaBasedQMC_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct PLMNAreaBasedQMC_ExtIEs__extensionValue {
+ PLMNAreaBasedQMC_ExtIEs__extensionValue_PR present;
+ union PLMNAreaBasedQMC_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;
+} PLMNAreaBasedQMC_ExtIEs_t;
+typedef struct ProSeAuthorized_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct ProSeAuthorized_ExtIEs__extensionValue {
+ ProSeAuthorized_ExtIEs__extensionValue_PR present;
+ union ProSeAuthorized_ExtIEs__extensionValue_u {
+ ProSeUEtoNetworkRelaying_t ProSeUEtoNetworkRelaying;
+ } 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;
+} ProSeAuthorized_ExtIEs_t;
+typedef struct PSCellInformation_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct PSCellInformation_ExtIEs__extensionValue {
+ PSCellInformation_ExtIEs__extensionValue_PR present;
+ union PSCellInformation_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;
+} PSCellInformation_ExtIEs_t;
+typedef struct RecommendedCellsForPaging_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct RecommendedCellsForPaging_ExtIEs__extensionValue {
+ RecommendedCellsForPaging_ExtIEs__extensionValue_PR present;
+ union RecommendedCellsForPaging_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;
+} RecommendedCellsForPaging_ExtIEs_t;
+typedef struct RecommendedCellsForPagingItem_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct RecommendedCellsForPagingItem_ExtIEs__extensionValue {
+ RecommendedCellsForPagingItem_ExtIEs__extensionValue_PR present;
+ union RecommendedCellsForPagingItem_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;
+} RecommendedCellsForPagingItem_ExtIEs_t;
+typedef struct RecommendedENBsForPaging_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct RecommendedENBsForPaging_ExtIEs__extensionValue {
+ RecommendedENBsForPaging_ExtIEs__extensionValue_PR present;
+ union RecommendedENBsForPaging_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;
+} RecommendedENBsForPaging_ExtIEs_t;
+typedef struct RecommendedENBItem_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct RecommendedENBItem_ExtIEs__extensionValue {
+ RecommendedENBItem_ExtIEs__extensionValue_PR present;
+ union RecommendedENBItem_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;
+} RecommendedENBItem_ExtIEs_t;
+typedef struct RequestType_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct RequestType_ExtIEs__extensionValue {
+ RequestType_ExtIEs__extensionValue_PR present;
+ union RequestType_ExtIEs__extensionValue_u {
+ RequestTypeAdditionalInfo_t RequestTypeAdditionalInfo;
+ } 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;
+} RequestType_ExtIEs_t;
+typedef struct RIMTransfer_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct RIMTransfer_ExtIEs__extensionValue {
+ RIMTransfer_ExtIEs__extensionValue_PR present;
+ union RIMTransfer_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;
+} RIMTransfer_ExtIEs_t;
+typedef struct RLFReportInformation_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct RLFReportInformation_ExtIEs__extensionValue {
+ RLFReportInformation_ExtIEs__extensionValue_PR present;
+ union RLFReportInformation_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;
+} RLFReportInformation_ExtIEs_t;
+typedef struct SecurityContext_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct SecurityContext_ExtIEs__extensionValue {
+ SecurityContext_ExtIEs__extensionValue_PR present;
+ union SecurityContext_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;
+} SecurityContext_ExtIEs_t;
+typedef struct SecondaryRATDataUsageReportItem_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct SecondaryRATDataUsageReportItem_ExtIEs__extensionValue {
+ SecondaryRATDataUsageReportItem_ExtIEs__extensionValue_PR present;
+ union SecondaryRATDataUsageReportItem_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;
+} SecondaryRATDataUsageReportItem_ExtIEs_t;
+typedef struct SONInformationReply_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct SONInformationReply_ExtIEs__extensionValue {
+ SONInformationReply_ExtIEs__extensionValue_PR present;
+ union SONInformationReply_ExtIEs__extensionValue_u {
+ TimeSynchronisationInfo_t TimeSynchronisationInfo;
+ MutingPatternInformation_t MutingPatternInformation;
+ } 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;
+} SONInformationReply_ExtIEs_t;
+typedef struct SONConfigurationTransfer_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct SONConfigurationTransfer_ExtIEs__extensionValue {
+ SONConfigurationTransfer_ExtIEs__extensionValue_PR present;
+ union SONConfigurationTransfer_ExtIEs__extensionValue_u {
+ X2TNLConfigurationInfo_t X2TNLConfigurationInfo;
+ SynchronisationInformation_t SynchronisationInformation;
+ } 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;
+} SONConfigurationTransfer_ExtIEs_t;
+typedef struct SynchronisationInformation_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct SynchronisationInformation_ExtIEs__extensionValue {
+ SynchronisationInformation_ExtIEs__extensionValue_PR present;
+ union SynchronisationInformation_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;
+} SynchronisationInformation_ExtIEs_t;
+typedef struct SourceeNB_ID_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct SourceeNB_ID_ExtIEs__extensionValue {
+ SourceeNB_ID_ExtIEs__extensionValue_PR present;
+ union SourceeNB_ID_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;
+} SourceeNB_ID_ExtIEs_t;
+typedef struct SourceeNB_ToTargeteNB_TransparentContainer_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct SourceeNB_ToTargeteNB_TransparentContainer_ExtIEs__extensionValue {
+ SourceeNB_ToTargeteNB_TransparentContainer_ExtIEs__extensionValue_PR present;
+ union SourceeNB_ToTargeteNB_TransparentContainer_ExtIEs__extensionValue_u {
+ MobilityInformation_t MobilityInformation;
+ UE_HistoryInformationFromTheUE_t UE_HistoryInformationFromTheUE;
+ IMSvoiceEPSfallbackfrom5G_t IMSvoiceEPSfallbackfrom5G;
+ } 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;
+} SourceeNB_ToTargeteNB_TransparentContainer_ExtIEs_t;
+typedef struct ServedGUMMEIsItem_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct ServedGUMMEIsItem_ExtIEs__extensionValue {
+ ServedGUMMEIsItem_ExtIEs__extensionValue_PR present;
+ union ServedGUMMEIsItem_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;
+} ServedGUMMEIsItem_ExtIEs_t;
+typedef struct Subscription_Based_UE_DifferentiationInfo_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct Subscription_Based_UE_DifferentiationInfo_ExtIEs__extensionValue {
+ Subscription_Based_UE_DifferentiationInfo_ExtIEs__extensionValue_PR present;
+ union Subscription_Based_UE_DifferentiationInfo_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;
+} Subscription_Based_UE_DifferentiationInfo_ExtIEs_t;
+typedef struct ScheduledCommunicationTime_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct ScheduledCommunicationTime_ExtIEs__extensionValue {
+ ScheduledCommunicationTime_ExtIEs__extensionValue_PR present;
+ union ScheduledCommunicationTime_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;
+} ScheduledCommunicationTime_ExtIEs_t;
+typedef struct SupportedTAs_Item_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct SupportedTAs_Item_ExtIEs__extensionValue {
+ SupportedTAs_Item_ExtIEs__extensionValue_PR present;
+ union SupportedTAs_Item_ExtIEs__extensionValue_u {
+ RAT_Type_t RAT_Type;
+ } 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;
+} SupportedTAs_Item_ExtIEs_t;
+typedef struct TimeSynchronisationInfo_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct TimeSynchronisationInfo_ExtIEs__extensionValue {
+ TimeSynchronisationInfo_ExtIEs__extensionValue_PR present;
+ union TimeSynchronisationInfo_ExtIEs__extensionValue_u {
+ MutingAvailabilityIndication_t MutingAvailabilityIndication;
+ } 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;
+} TimeSynchronisationInfo_ExtIEs_t;
+typedef struct S_TMSI_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct S_TMSI_ExtIEs__extensionValue {
+ S_TMSI_ExtIEs__extensionValue_PR present;
+ union S_TMSI_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;
+} S_TMSI_ExtIEs_t;
+typedef struct TAIBasedMDT_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct TAIBasedMDT_ExtIEs__extensionValue {
+ TAIBasedMDT_ExtIEs__extensionValue_PR present;
+ union TAIBasedMDT_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;
+} TAIBasedMDT_ExtIEs_t;
+typedef struct TAI_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct TAI_ExtIEs__extensionValue {
+ TAI_ExtIEs__extensionValue_PR present;
+ union TAI_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;
+} TAI_ExtIEs_t;
+typedef struct TAI_Broadcast_Item_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct TAI_Broadcast_Item_ExtIEs__extensionValue {
+ TAI_Broadcast_Item_ExtIEs__extensionValue_PR present;
+ union TAI_Broadcast_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;
+} TAI_Broadcast_Item_ExtIEs_t;
+typedef struct TAI_Cancelled_Item_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct TAI_Cancelled_Item_ExtIEs__extensionValue {
+ TAI_Cancelled_Item_ExtIEs__extensionValue_PR present;
+ union TAI_Cancelled_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;
+} TAI_Cancelled_Item_ExtIEs_t;
+typedef struct TABasedMDT_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct TABasedMDT_ExtIEs__extensionValue {
+ TABasedMDT_ExtIEs__extensionValue_PR present;
+ union TABasedMDT_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;
+} TABasedMDT_ExtIEs_t;
+typedef struct TABasedQMC_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct TABasedQMC_ExtIEs__extensionValue {
+ TABasedQMC_ExtIEs__extensionValue_PR present;
+ union TABasedQMC_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;
+} TABasedQMC_ExtIEs_t;
+typedef struct TAIBasedQMC_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct TAIBasedQMC_ExtIEs__extensionValue {
+ TAIBasedQMC_ExtIEs__extensionValue_PR present;
+ union TAIBasedQMC_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;
+} TAIBasedQMC_ExtIEs_t;
+typedef struct CompletedCellinTAI_Item_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct CompletedCellinTAI_Item_ExtIEs__extensionValue {
+ CompletedCellinTAI_Item_ExtIEs__extensionValue_PR present;
+ union CompletedCellinTAI_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;
+} CompletedCellinTAI_Item_ExtIEs_t;
+typedef struct TargeteNB_ID_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct TargeteNB_ID_ExtIEs__extensionValue {
+ TargeteNB_ID_ExtIEs__extensionValue_PR present;
+ union TargeteNB_ID_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;
+} TargeteNB_ID_ExtIEs_t;
+typedef struct TargetRNC_ID_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct TargetRNC_ID_ExtIEs__extensionValue {
+ TargetRNC_ID_ExtIEs__extensionValue_PR present;
+ union TargetRNC_ID_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;
+} TargetRNC_ID_ExtIEs_t;
+typedef struct TargetNgRanNode_ID_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct TargetNgRanNode_ID_ExtIEs__extensionValue {
+ TargetNgRanNode_ID_ExtIEs__extensionValue_PR present;
+ union TargetNgRanNode_ID_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;
+} TargetNgRanNode_ID_ExtIEs_t;
+typedef struct GNB_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct GNB_ExtIEs__extensionValue {
+ GNB_ExtIEs__extensionValue_PR present;
+ union GNB_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_ExtIEs_t;
+typedef struct Global_GNB_ID_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct Global_GNB_ID_ExtIEs__extensionValue {
+ Global_GNB_ID_ExtIEs__extensionValue_PR present;
+ union Global_GNB_ID_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;
+} Global_GNB_ID_ExtIEs_t;
+typedef struct NG_eNB_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct NG_eNB_ExtIEs__extensionValue {
+ NG_eNB_ExtIEs__extensionValue_PR present;
+ union NG_eNB_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;
+} NG_eNB_ExtIEs_t;
+typedef struct TargeteNB_ToSourceeNB_TransparentContainer_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct TargeteNB_ToSourceeNB_TransparentContainer_ExtIEs__extensionValue {
+ TargeteNB_ToSourceeNB_TransparentContainer_ExtIEs__extensionValue_PR present;
+ union TargeteNB_ToSourceeNB_TransparentContainer_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;
+} TargeteNB_ToSourceeNB_TransparentContainer_ExtIEs_t;
+typedef struct M1ThresholdEventA2_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct M1ThresholdEventA2_ExtIEs__extensionValue {
+ M1ThresholdEventA2_ExtIEs__extensionValue_PR present;
+ union M1ThresholdEventA2_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;
+} M1ThresholdEventA2_ExtIEs_t;
+typedef struct TraceActivation_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct TraceActivation_ExtIEs__extensionValue {
+ TraceActivation_ExtIEs__extensionValue_PR present;
+ union TraceActivation_ExtIEs__extensionValue_u {
+ MDT_Configuration_t MDT_Configuration;
+ UEAppLayerMeasConfig_t UEAppLayerMeasConfig;
+ } 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;
+} TraceActivation_ExtIEs_t;
+typedef struct Tunnel_Information_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct Tunnel_Information_ExtIEs__extensionValue {
+ Tunnel_Information_ExtIEs__extensionValue_PR present;
+ union Tunnel_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;
+} Tunnel_Information_ExtIEs_t;
+typedef struct UEAggregate_MaximumBitrates_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct UEAggregate_MaximumBitrates_ExtIEs__extensionValue {
+ UEAggregate_MaximumBitrates_ExtIEs__extensionValue_PR present;
+ union UEAggregate_MaximumBitrates_ExtIEs__extensionValue_u {
+ ExtendedBitRate_t ExtendedBitRate;
+ ExtendedBitRate_t ExtendedBitRate_1;
+ } 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;
+} UEAggregate_MaximumBitrates_ExtIEs_t;
+typedef struct UEAppLayerMeasConfig_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct UEAppLayerMeasConfig_ExtIEs__extensionValue {
+ UEAppLayerMeasConfig_ExtIEs__extensionValue_PR present;
+ union UEAppLayerMeasConfig_ExtIEs__extensionValue_u {
+ ServiceType_t ServiceType;
+ } 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;
+} UEAppLayerMeasConfig_ExtIEs_t;
+typedef struct UE_S1AP_ID_pair_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct UE_S1AP_ID_pair_ExtIEs__extensionValue {
+ UE_S1AP_ID_pair_ExtIEs__extensionValue_PR present;
+ union UE_S1AP_ID_pair_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;
+} UE_S1AP_ID_pair_ExtIEs_t;
+typedef struct UE_associatedLogicalS1_ConnectionItemExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct UE_associatedLogicalS1_ConnectionItemExtIEs__extensionValue {
+ UE_associatedLogicalS1_ConnectionItemExtIEs__extensionValue_PR present;
+ union UE_associatedLogicalS1_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_associatedLogicalS1_ConnectionItemExtIEs_t;
+typedef struct UESecurityCapabilities_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct UESecurityCapabilities_ExtIEs__extensionValue {
+ UESecurityCapabilities_ExtIEs__extensionValue_PR present;
+ union UESecurityCapabilities_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;
+} UESecurityCapabilities_ExtIEs_t;
+typedef struct UE_Sidelink_Aggregate_MaximumBitrates_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct UE_Sidelink_Aggregate_MaximumBitrates_ExtIEs__extensionValue {
+ UE_Sidelink_Aggregate_MaximumBitrates_ExtIEs__extensionValue_PR present;
+ union UE_Sidelink_Aggregate_MaximumBitrates_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;
+} UE_Sidelink_Aggregate_MaximumBitrates_ExtIEs_t;
+typedef struct UL_CP_SecurityInformation_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct UL_CP_SecurityInformation_ExtIEs__extensionValue {
+ UL_CP_SecurityInformation_ExtIEs__extensionValue_PR present;
+ union UL_CP_SecurityInformation_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;
+} UL_CP_SecurityInformation_ExtIEs_t;
+typedef struct UserLocationInformation_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct UserLocationInformation_ExtIEs__extensionValue {
+ UserLocationInformation_ExtIEs__extensionValue_PR present;
+ union UserLocationInformation_ExtIEs__extensionValue_u {
+ PSCellInformation_t PSCellInformation;
+ } 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;
+} UserLocationInformation_ExtIEs_t;
+typedef struct V2XServicesAuthorized_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct V2XServicesAuthorized_ExtIEs__extensionValue {
+ V2XServicesAuthorized_ExtIEs__extensionValue_PR present;
+ union V2XServicesAuthorized_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;
+} V2XServicesAuthorized_ExtIEs_t;
+typedef struct WLANMeasurementConfiguration_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct WLANMeasurementConfiguration_ExtIEs__extensionValue {
+ WLANMeasurementConfiguration_ExtIEs__extensionValue_PR present;
+ union WLANMeasurementConfiguration_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;
+} WLANMeasurementConfiguration_ExtIEs_t;
+typedef struct X2TNLConfigurationInfo_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct X2TNLConfigurationInfo_ExtIEs__extensionValue {
+ X2TNLConfigurationInfo_ExtIEs__extensionValue_PR present;
+ union X2TNLConfigurationInfo_ExtIEs__extensionValue_u {
+ ENBX2ExtTLAs_t ENBX2ExtTLAs;
+ ENBIndirectX2TransportLayerAddresses_t ENBIndirectX2TransportLayerAddresses;
+ } 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;
+} X2TNLConfigurationInfo_ExtIEs_t;
+typedef struct ENBX2ExtTLA_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct ENBX2ExtTLA_ExtIEs__extensionValue {
+ ENBX2ExtTLA_ExtIEs__extensionValue_PR present;
+ union ENBX2ExtTLA_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;
+} ENBX2ExtTLA_ExtIEs_t;
+typedef struct E_RABDataForwardingItem_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct E_RABDataForwardingItem_ExtIEs__extensionValue {
+ E_RABDataForwardingItem_ExtIEs__extensionValue_PR present;
+ union E_RABDataForwardingItem_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;
+} E_RABDataForwardingItem_ExtIEs_t;
+typedef struct E_RABToBeSetupItemHOReq_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct E_RABToBeSetupItemHOReq_ExtIEs__extensionValue {
+ E_RABToBeSetupItemHOReq_ExtIEs__extensionValue_PR present;
+ union E_RABToBeSetupItemHOReq_ExtIEs__extensionValue_u {
+ Data_Forwarding_Not_Possible_t Data_Forwarding_Not_Possible;
+ BearerType_t BearerType;
+ } 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;
+} E_RABToBeSetupItemHOReq_ExtIEs_t;
+typedef struct E_RABAdmittedItem_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct E_RABAdmittedItem_ExtIEs__extensionValue {
+ E_RABAdmittedItem_ExtIEs__extensionValue_PR present;
+ union E_RABAdmittedItem_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;
+} E_RABAdmittedItem_ExtIEs_t;
+typedef struct E_RABFailedToSetupItemHOReqAckExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct E_RABFailedToSetupItemHOReqAckExtIEs__extensionValue {
+ E_RABFailedToSetupItemHOReqAckExtIEs__extensionValue_PR present;
+ union E_RABFailedToSetupItemHOReqAckExtIEs__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;
+} E_RABFailedToSetupItemHOReqAckExtIEs_t;
+typedef struct E_RABToBeSwitchedDLItem_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct E_RABToBeSwitchedDLItem_ExtIEs__extensionValue {
+ E_RABToBeSwitchedDLItem_ExtIEs__extensionValue_PR present;
+ union E_RABToBeSwitchedDLItem_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;
+} E_RABToBeSwitchedDLItem_ExtIEs_t;
+typedef struct E_RABToBeSwitchedULItem_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct E_RABToBeSwitchedULItem_ExtIEs__extensionValue {
+ E_RABToBeSwitchedULItem_ExtIEs__extensionValue_PR present;
+ union E_RABToBeSwitchedULItem_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;
+} E_RABToBeSwitchedULItem_ExtIEs_t;
+typedef struct E_RABToBeSetupItemBearerSUReqExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct E_RABToBeSetupItemBearerSUReqExtIEs__extensionValue {
+ E_RABToBeSetupItemBearerSUReqExtIEs__extensionValue_PR present;
+ union E_RABToBeSetupItemBearerSUReqExtIEs__extensionValue_u {
+ Correlation_ID_t Correlation_ID;
+ Correlation_ID_t Correlation_ID_1;
+ BearerType_t BearerType;
+ } 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;
+} E_RABToBeSetupItemBearerSUReqExtIEs_t;
+typedef struct E_RABSetupItemBearerSUResExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct E_RABSetupItemBearerSUResExtIEs__extensionValue {
+ E_RABSetupItemBearerSUResExtIEs__extensionValue_PR present;
+ union E_RABSetupItemBearerSUResExtIEs__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;
+} E_RABSetupItemBearerSUResExtIEs_t;
+typedef struct E_RABToBeModifyItemBearerModReqExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct E_RABToBeModifyItemBearerModReqExtIEs__extensionValue {
+ E_RABToBeModifyItemBearerModReqExtIEs__extensionValue_PR present;
+ union E_RABToBeModifyItemBearerModReqExtIEs__extensionValue_u {
+ TransportInformation_t TransportInformation;
+ } 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;
+} E_RABToBeModifyItemBearerModReqExtIEs_t;
+typedef struct E_RABModifyItemBearerModResExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct E_RABModifyItemBearerModResExtIEs__extensionValue {
+ E_RABModifyItemBearerModResExtIEs__extensionValue_PR present;
+ union E_RABModifyItemBearerModResExtIEs__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;
+} E_RABModifyItemBearerModResExtIEs_t;
+typedef struct E_RABReleaseItemBearerRelCompExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct E_RABReleaseItemBearerRelCompExtIEs__extensionValue {
+ E_RABReleaseItemBearerRelCompExtIEs__extensionValue_PR present;
+ union E_RABReleaseItemBearerRelCompExtIEs__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;
+} E_RABReleaseItemBearerRelCompExtIEs_t;
+typedef struct E_RABToBeSetupItemCtxtSUReqExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct E_RABToBeSetupItemCtxtSUReqExtIEs__extensionValue {
+ E_RABToBeSetupItemCtxtSUReqExtIEs__extensionValue_PR present;
+ union E_RABToBeSetupItemCtxtSUReqExtIEs__extensionValue_u {
+ Correlation_ID_t Correlation_ID;
+ Correlation_ID_t Correlation_ID_1;
+ BearerType_t BearerType;
+ } 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;
+} E_RABToBeSetupItemCtxtSUReqExtIEs_t;
+typedef struct E_RABSetupItemCtxtSUResExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct E_RABSetupItemCtxtSUResExtIEs__extensionValue {
+ E_RABSetupItemCtxtSUResExtIEs__extensionValue_PR present;
+ union E_RABSetupItemCtxtSUResExtIEs__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;
+} E_RABSetupItemCtxtSUResExtIEs_t;
+typedef struct TAIItemExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct TAIItemExtIEs__extensionValue {
+ TAIItemExtIEs__extensionValue_PR present;
+ union TAIItemExtIEs__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;
+} TAIItemExtIEs_t;
+typedef struct E_RABToBeModifiedItemBearerModInd_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct E_RABToBeModifiedItemBearerModInd_ExtIEs__extensionValue {
+ E_RABToBeModifiedItemBearerModInd_ExtIEs__extensionValue_PR present;
+ union E_RABToBeModifiedItemBearerModInd_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;
+} E_RABToBeModifiedItemBearerModInd_ExtIEs_t;
+typedef struct E_RABNotToBeModifiedItemBearerModInd_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct E_RABNotToBeModifiedItemBearerModInd_ExtIEs__extensionValue {
+ E_RABNotToBeModifiedItemBearerModInd_ExtIEs__extensionValue_PR present;
+ union E_RABNotToBeModifiedItemBearerModInd_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;
+} E_RABNotToBeModifiedItemBearerModInd_ExtIEs_t;
+typedef struct CSGMembershipInfo_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct CSGMembershipInfo_ExtIEs__extensionValue {
+ CSGMembershipInfo_ExtIEs__extensionValue_PR present;
+ union CSGMembershipInfo_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;
+} CSGMembershipInfo_ExtIEs_t;
+typedef struct E_RABModifyItemBearerModConfExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct E_RABModifyItemBearerModConfExtIEs__extensionValue {
+ E_RABModifyItemBearerModConfExtIEs__extensionValue_PR present;
+ union E_RABModifyItemBearerModConfExtIEs__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;
+} E_RABModifyItemBearerModConfExtIEs_t;
+typedef struct E_RABFailedToResumeItemResumeReq_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct E_RABFailedToResumeItemResumeReq_ExtIEs__extensionValue {
+ E_RABFailedToResumeItemResumeReq_ExtIEs__extensionValue_PR present;
+ union E_RABFailedToResumeItemResumeReq_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;
+} E_RABFailedToResumeItemResumeReq_ExtIEs_t;
+typedef struct E_RABFailedToResumeItemResumeRes_ExtIEs {
+ ProtocolExtensionID_t id;
+ Criticality_t criticality;
+ struct E_RABFailedToResumeItemResumeRes_ExtIEs__extensionValue {
+ E_RABFailedToResumeItemResumeRes_ExtIEs__extensionValue_PR present;
+ union E_RABFailedToResumeItemResumeRes_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;
+} E_RABFailedToResumeItemResumeRes_ExtIEs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Additional_GUTI_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_Additional_GUTI_ExtIEs_specs_1;
+extern asn_TYPE_member_t asn_MBR_Additional_GUTI_ExtIEs_1[3];
+extern asn_TYPE_descriptor_t asn_DEF_AllocationAndRetentionPriority_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_AllocationAndRetentionPriority_ExtIEs_specs_5;
+extern asn_TYPE_member_t asn_MBR_AllocationAndRetentionPriority_ExtIEs_5[3];
+extern asn_TYPE_descriptor_t asn_DEF_InformationForCECapableUEs_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_InformationForCECapableUEs_ExtIEs_specs_9;
+extern asn_TYPE_member_t asn_MBR_InformationForCECapableUEs_ExtIEs_9[3];
+extern asn_TYPE_descriptor_t asn_DEF_AssistanceDataForPaging_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_AssistanceDataForPaging_ExtIEs_specs_13;
+extern asn_TYPE_member_t asn_MBR_AssistanceDataForPaging_ExtIEs_13[3];
+extern asn_TYPE_descriptor_t asn_DEF_AssistanceDataForRecommendedCells_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_AssistanceDataForRecommendedCells_ExtIEs_specs_17;
+extern asn_TYPE_member_t asn_MBR_AssistanceDataForRecommendedCells_ExtIEs_17[3];
+extern asn_TYPE_descriptor_t asn_DEF_Bearers_SubjectToStatusTransfer_ItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_Bearers_SubjectToStatusTransfer_ItemExtIEs_specs_21;
+extern asn_TYPE_member_t asn_MBR_Bearers_SubjectToStatusTransfer_ItemExtIEs_21[3];
+extern asn_TYPE_descriptor_t asn_DEF_BluetoothMeasurementConfiguration_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_BluetoothMeasurementConfiguration_ExtIEs_specs_25;
+extern asn_TYPE_member_t asn_MBR_BluetoothMeasurementConfiguration_ExtIEs_25[3];
+extern asn_TYPE_descriptor_t asn_DEF_CancelledCellinEAI_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CancelledCellinEAI_Item_ExtIEs_specs_29;
+extern asn_TYPE_member_t asn_MBR_CancelledCellinEAI_Item_ExtIEs_29[3];
+extern asn_TYPE_descriptor_t asn_DEF_CancelledCellinTAI_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CancelledCellinTAI_Item_ExtIEs_specs_33;
+extern asn_TYPE_member_t asn_MBR_CancelledCellinTAI_Item_ExtIEs_33[3];
+extern asn_TYPE_descriptor_t asn_DEF_CellIdentifierAndCELevelForCECapableUEs_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellIdentifierAndCELevelForCECapableUEs_ExtIEs_specs_37;
+extern asn_TYPE_member_t asn_MBR_CellIdentifierAndCELevelForCECapableUEs_ExtIEs_37[3];
+extern asn_TYPE_descriptor_t asn_DEF_CellID_Broadcast_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellID_Broadcast_Item_ExtIEs_specs_41;
+extern asn_TYPE_member_t asn_MBR_CellID_Broadcast_Item_ExtIEs_41[3];
+extern asn_TYPE_descriptor_t asn_DEF_CellID_Cancelled_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellID_Cancelled_Item_ExtIEs_specs_45;
+extern asn_TYPE_member_t asn_MBR_CellID_Cancelled_Item_ExtIEs_45[3];
+extern asn_TYPE_descriptor_t asn_DEF_CellBasedMDT_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellBasedMDT_ExtIEs_specs_49;
+extern asn_TYPE_member_t asn_MBR_CellBasedMDT_ExtIEs_49[3];
+extern asn_TYPE_descriptor_t asn_DEF_CellBasedQMC_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellBasedQMC_ExtIEs_specs_53;
+extern asn_TYPE_member_t asn_MBR_CellBasedQMC_ExtIEs_53[3];
+extern asn_TYPE_descriptor_t asn_DEF_Cdma2000OneXSRVCCInfo_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_Cdma2000OneXSRVCCInfo_ExtIEs_specs_57;
+extern asn_TYPE_member_t asn_MBR_Cdma2000OneXSRVCCInfo_ExtIEs_57[3];
+extern asn_TYPE_descriptor_t asn_DEF_CellType_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellType_ExtIEs_specs_61;
+extern asn_TYPE_member_t asn_MBR_CellType_ExtIEs_61[3];
+extern asn_TYPE_descriptor_t asn_DEF_CGI_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CGI_ExtIEs_specs_65;
+extern asn_TYPE_member_t asn_MBR_CGI_ExtIEs_65[3];
+extern asn_TYPE_descriptor_t asn_DEF_CNTypeRestrictions_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CNTypeRestrictions_Item_ExtIEs_specs_69;
+extern asn_TYPE_member_t asn_MBR_CNTypeRestrictions_Item_ExtIEs_69[3];
+extern asn_TYPE_descriptor_t asn_DEF_ConnectedengNBItem_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ConnectedengNBItem_ExtIEs_specs_73;
+extern asn_TYPE_member_t asn_MBR_ConnectedengNBItem_ExtIEs_73[3];
+extern asn_TYPE_descriptor_t asn_DEF_CSG_IdList_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CSG_IdList_Item_ExtIEs_specs_77;
+extern asn_TYPE_member_t asn_MBR_CSG_IdList_Item_ExtIEs_77[3];
+extern asn_TYPE_descriptor_t asn_DEF_COUNTvalue_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_COUNTvalue_ExtIEs_specs_81;
+extern asn_TYPE_member_t asn_MBR_COUNTvalue_ExtIEs_81[3];
+extern asn_TYPE_descriptor_t asn_DEF_COUNTValueExtended_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_COUNTValueExtended_ExtIEs_specs_85;
+extern asn_TYPE_member_t asn_MBR_COUNTValueExtended_ExtIEs_85[3];
+extern asn_TYPE_descriptor_t asn_DEF_COUNTvaluePDCP_SNlength18_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_COUNTvaluePDCP_SNlength18_ExtIEs_specs_89;
+extern asn_TYPE_member_t asn_MBR_COUNTvaluePDCP_SNlength18_ExtIEs_89[3];
+extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_ExtIEs_specs_93;
+extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_ExtIEs_93[3];
+extern asn_TYPE_descriptor_t asn_DEF_CriticalityDiagnostics_IE_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CriticalityDiagnostics_IE_Item_ExtIEs_specs_97;
+extern asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_Item_ExtIEs_97[3];
+extern asn_TYPE_descriptor_t asn_DEF_ServedDCNsItem_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ServedDCNsItem_ExtIEs_specs_101;
+extern asn_TYPE_member_t asn_MBR_ServedDCNsItem_ExtIEs_101[3];
+extern asn_TYPE_descriptor_t asn_DEF_DL_CP_SecurityInformation_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_DL_CP_SecurityInformation_ExtIEs_specs_105;
+extern asn_TYPE_member_t asn_MBR_DL_CP_SecurityInformation_ExtIEs_105[3];
+extern asn_TYPE_descriptor_t asn_DEF_EmergencyAreaID_Broadcast_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_EmergencyAreaID_Broadcast_Item_ExtIEs_specs_109;
+extern asn_TYPE_member_t asn_MBR_EmergencyAreaID_Broadcast_Item_ExtIEs_109[3];
+extern asn_TYPE_descriptor_t asn_DEF_EmergencyAreaID_Cancelled_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_EmergencyAreaID_Cancelled_Item_ExtIEs_specs_113;
+extern asn_TYPE_member_t asn_MBR_EmergencyAreaID_Cancelled_Item_ExtIEs_113[3];
+extern asn_TYPE_descriptor_t asn_DEF_CompletedCellinEAI_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CompletedCellinEAI_Item_ExtIEs_specs_117;
+extern asn_TYPE_member_t asn_MBR_CompletedCellinEAI_Item_ExtIEs_117[3];
+extern asn_TYPE_descriptor_t asn_DEF_GERAN_Cell_ID_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_GERAN_Cell_ID_ExtIEs_specs_121;
+extern asn_TYPE_member_t asn_MBR_GERAN_Cell_ID_ExtIEs_121[3];
+extern asn_TYPE_descriptor_t asn_DEF_GlobalENB_ID_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_GlobalENB_ID_ExtIEs_specs_125;
+extern asn_TYPE_member_t asn_MBR_GlobalENB_ID_ExtIEs_125[3];
+extern asn_TYPE_descriptor_t asn_DEF_Global_en_gNB_ID_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_Global_en_gNB_ID_ExtIEs_specs_129;
+extern asn_TYPE_member_t asn_MBR_Global_en_gNB_ID_ExtIEs_129[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENB_StatusTransfer_TransparentContainer_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENB_StatusTransfer_TransparentContainer_ExtIEs_specs_133;
+extern asn_TYPE_member_t asn_MBR_ENB_StatusTransfer_TransparentContainer_ExtIEs_133[3];
+extern asn_TYPE_descriptor_t asn_DEF_EN_DCSONConfigurationTransfer_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_EN_DCSONConfigurationTransfer_ExtIEs_specs_137;
+extern asn_TYPE_member_t asn_MBR_EN_DCSONConfigurationTransfer_ExtIEs_137[3];
+extern asn_TYPE_descriptor_t asn_DEF_EN_DCTransferTypeRequest_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_EN_DCTransferTypeRequest_ExtIEs_specs_141;
+extern asn_TYPE_member_t asn_MBR_EN_DCTransferTypeRequest_ExtIEs_141[3];
+extern asn_TYPE_descriptor_t asn_DEF_EN_DCTransferTypeReply_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_EN_DCTransferTypeReply_ExtIEs_specs_145;
+extern asn_TYPE_member_t asn_MBR_EN_DCTransferTypeReply_ExtIEs_145[3];
+extern asn_TYPE_descriptor_t asn_DEF_EN_DCSONeNBIdentification_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_EN_DCSONeNBIdentification_ExtIEs_specs_149;
+extern asn_TYPE_member_t asn_MBR_EN_DCSONeNBIdentification_ExtIEs_149[3];
+extern asn_TYPE_descriptor_t asn_DEF_EN_DCSONengNBIdentification_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_EN_DCSONengNBIdentification_ExtIEs_specs_153;
+extern asn_TYPE_member_t asn_MBR_EN_DCSONengNBIdentification_ExtIEs_153[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABInformationListItem_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABInformationListItem_ExtIEs_specs_157;
+extern asn_TYPE_member_t asn_MBR_E_RABInformationListItem_ExtIEs_157[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABItem_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABItem_ExtIEs_specs_161;
+extern asn_TYPE_member_t asn_MBR_E_RABItem_ExtIEs_161[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABQoSParameters_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABQoSParameters_ExtIEs_specs_165;
+extern asn_TYPE_member_t asn_MBR_E_RABQoSParameters_ExtIEs_165[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABUsageReportItem_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABUsageReportItem_ExtIEs_specs_169;
+extern asn_TYPE_member_t asn_MBR_E_RABUsageReportItem_ExtIEs_169[3];
+extern asn_TYPE_descriptor_t asn_DEF_EUTRAN_CGI_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_EUTRAN_CGI_ExtIEs_specs_173;
+extern asn_TYPE_member_t asn_MBR_EUTRAN_CGI_ExtIEs_173[3];
+extern asn_TYPE_descriptor_t asn_DEF_ExpectedUEBehaviour_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ExpectedUEBehaviour_ExtIEs_specs_177;
+extern asn_TYPE_member_t asn_MBR_ExpectedUEBehaviour_ExtIEs_177[3];
+extern asn_TYPE_descriptor_t asn_DEF_ExpectedUEActivityBehaviour_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ExpectedUEActivityBehaviour_ExtIEs_specs_181;
+extern asn_TYPE_member_t asn_MBR_ExpectedUEActivityBehaviour_ExtIEs_181[3];
+extern asn_TYPE_descriptor_t asn_DEF_FiveGSTAI_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_FiveGSTAI_ExtIEs_specs_185;
+extern asn_TYPE_member_t asn_MBR_FiveGSTAI_ExtIEs_185[3];
+extern asn_TYPE_descriptor_t asn_DEF_ForbiddenTAs_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ForbiddenTAs_Item_ExtIEs_specs_189;
+extern asn_TYPE_member_t asn_MBR_ForbiddenTAs_Item_ExtIEs_189[3];
+extern asn_TYPE_descriptor_t asn_DEF_ForbiddenLAs_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ForbiddenLAs_Item_ExtIEs_specs_193;
+extern asn_TYPE_member_t asn_MBR_ForbiddenLAs_Item_ExtIEs_193[3];
+extern asn_TYPE_descriptor_t asn_DEF_GBR_QosInformation_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_GBR_QosInformation_ExtIEs_specs_197;
+extern asn_TYPE_member_t asn_MBR_GBR_QosInformation_ExtIEs_197[3];
+extern asn_TYPE_descriptor_t asn_DEF_GUMMEI_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_GUMMEI_ExtIEs_specs_201;
+extern asn_TYPE_member_t asn_MBR_GUMMEI_ExtIEs_201[3];
+extern asn_TYPE_descriptor_t asn_DEF_HandoverRestrictionList_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_HandoverRestrictionList_ExtIEs_specs_205;
+extern asn_TYPE_member_t asn_MBR_HandoverRestrictionList_ExtIEs_205[3];
+extern asn_TYPE_descriptor_t asn_DEF_ImmediateMDT_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ImmediateMDT_ExtIEs_specs_209;
+extern asn_TYPE_member_t asn_MBR_ImmediateMDT_ExtIEs_209[3];
+extern asn_TYPE_descriptor_t asn_DEF_InformationOnRecommendedCellsAndENBsForPaging_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_InformationOnRecommendedCellsAndENBsForPaging_ExtIEs_specs_213;
+extern asn_TYPE_member_t asn_MBR_InformationOnRecommendedCellsAndENBsForPaging_ExtIEs_213[3];
+extern asn_TYPE_descriptor_t asn_DEF_LAI_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_LAI_ExtIEs_specs_217;
+extern asn_TYPE_member_t asn_MBR_LAI_ExtIEs_217[3];
+extern asn_TYPE_descriptor_t asn_DEF_LastVisitedEUTRANCellInformation_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_LastVisitedEUTRANCellInformation_ExtIEs_specs_221;
+extern asn_TYPE_member_t asn_MBR_LastVisitedEUTRANCellInformation_ExtIEs_221[3];
+extern asn_TYPE_descriptor_t asn_DEF_ListeningSubframePattern_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ListeningSubframePattern_ExtIEs_specs_225;
+extern asn_TYPE_member_t asn_MBR_ListeningSubframePattern_ExtIEs_225[3];
+extern asn_TYPE_descriptor_t asn_DEF_LoggedMDT_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_LoggedMDT_ExtIEs_specs_229;
+extern asn_TYPE_member_t asn_MBR_LoggedMDT_ExtIEs_229[3];
+extern asn_TYPE_descriptor_t asn_DEF_LoggedMBSFNMDT_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_LoggedMBSFNMDT_ExtIEs_specs_233;
+extern asn_TYPE_member_t asn_MBR_LoggedMBSFNMDT_ExtIEs_233[3];
+extern asn_TYPE_descriptor_t asn_DEF_M3Configuration_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_M3Configuration_ExtIEs_specs_237;
+extern asn_TYPE_member_t asn_MBR_M3Configuration_ExtIEs_237[3];
+extern asn_TYPE_descriptor_t asn_DEF_M4Configuration_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_M4Configuration_ExtIEs_specs_241;
+extern asn_TYPE_member_t asn_MBR_M4Configuration_ExtIEs_241[3];
+extern asn_TYPE_descriptor_t asn_DEF_M5Configuration_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_M5Configuration_ExtIEs_specs_245;
+extern asn_TYPE_member_t asn_MBR_M5Configuration_ExtIEs_245[3];
+extern asn_TYPE_descriptor_t asn_DEF_M6Configuration_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_M6Configuration_ExtIEs_specs_249;
+extern asn_TYPE_member_t asn_MBR_M6Configuration_ExtIEs_249[3];
+extern asn_TYPE_descriptor_t asn_DEF_M7Configuration_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_M7Configuration_ExtIEs_specs_253;
+extern asn_TYPE_member_t asn_MBR_M7Configuration_ExtIEs_253[3];
+extern asn_TYPE_descriptor_t asn_DEF_MDT_Configuration_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_MDT_Configuration_ExtIEs_specs_257;
+extern asn_TYPE_member_t asn_MBR_MDT_Configuration_ExtIEs_257[3];
+extern asn_TYPE_descriptor_t asn_DEF_MBSFN_ResultToLogInfo_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_MBSFN_ResultToLogInfo_ExtIEs_specs_261;
+extern asn_TYPE_member_t asn_MBR_MBSFN_ResultToLogInfo_ExtIEs_261[3];
+extern asn_TYPE_descriptor_t asn_DEF_MutingPatternInformation_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_MutingPatternInformation_ExtIEs_specs_265;
+extern asn_TYPE_member_t asn_MBR_MutingPatternInformation_ExtIEs_265[3];
+extern asn_TYPE_descriptor_t asn_DEF_NB_IoT_Paging_eDRXInformation_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_NB_IoT_Paging_eDRXInformation_ExtIEs_specs_269;
+extern asn_TYPE_member_t asn_MBR_NB_IoT_Paging_eDRXInformation_ExtIEs_269[3];
+extern asn_TYPE_descriptor_t asn_DEF_NR_CGI_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_NR_CGI_ExtIEs_specs_273;
+extern asn_TYPE_member_t asn_MBR_NR_CGI_ExtIEs_273[3];
+extern asn_TYPE_descriptor_t asn_DEF_NRUESecurityCapabilities_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_NRUESecurityCapabilities_ExtIEs_specs_277;
+extern asn_TYPE_member_t asn_MBR_NRUESecurityCapabilities_ExtIEs_277[3];
+extern asn_TYPE_descriptor_t asn_DEF_PagingAttemptInformation_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_PagingAttemptInformation_ExtIEs_specs_281;
+extern asn_TYPE_member_t asn_MBR_PagingAttemptInformation_ExtIEs_281[3];
+extern asn_TYPE_descriptor_t asn_DEF_Paging_eDRXInformation_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_Paging_eDRXInformation_ExtIEs_specs_285;
+extern asn_TYPE_member_t asn_MBR_Paging_eDRXInformation_ExtIEs_285[3];
+extern asn_TYPE_descriptor_t asn_DEF_M1PeriodicReporting_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_M1PeriodicReporting_ExtIEs_specs_289;
+extern asn_TYPE_member_t asn_MBR_M1PeriodicReporting_ExtIEs_289[3];
+extern asn_TYPE_descriptor_t asn_DEF_PLMNAreaBasedQMC_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_PLMNAreaBasedQMC_ExtIEs_specs_293;
+extern asn_TYPE_member_t asn_MBR_PLMNAreaBasedQMC_ExtIEs_293[3];
+extern asn_TYPE_descriptor_t asn_DEF_ProSeAuthorized_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ProSeAuthorized_ExtIEs_specs_297;
+extern asn_TYPE_member_t asn_MBR_ProSeAuthorized_ExtIEs_297[3];
+extern asn_TYPE_descriptor_t asn_DEF_PSCellInformation_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_PSCellInformation_ExtIEs_specs_301;
+extern asn_TYPE_member_t asn_MBR_PSCellInformation_ExtIEs_301[3];
+extern asn_TYPE_descriptor_t asn_DEF_RecommendedCellsForPaging_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RecommendedCellsForPaging_ExtIEs_specs_305;
+extern asn_TYPE_member_t asn_MBR_RecommendedCellsForPaging_ExtIEs_305[3];
+extern asn_TYPE_descriptor_t asn_DEF_RecommendedCellsForPagingItem_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RecommendedCellsForPagingItem_ExtIEs_specs_309;
+extern asn_TYPE_member_t asn_MBR_RecommendedCellsForPagingItem_ExtIEs_309[3];
+extern asn_TYPE_descriptor_t asn_DEF_RecommendedENBsForPaging_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RecommendedENBsForPaging_ExtIEs_specs_313;
+extern asn_TYPE_member_t asn_MBR_RecommendedENBsForPaging_ExtIEs_313[3];
+extern asn_TYPE_descriptor_t asn_DEF_RecommendedENBItem_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RecommendedENBItem_ExtIEs_specs_317;
+extern asn_TYPE_member_t asn_MBR_RecommendedENBItem_ExtIEs_317[3];
+extern asn_TYPE_descriptor_t asn_DEF_RequestType_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RequestType_ExtIEs_specs_321;
+extern asn_TYPE_member_t asn_MBR_RequestType_ExtIEs_321[3];
+extern asn_TYPE_descriptor_t asn_DEF_RIMTransfer_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RIMTransfer_ExtIEs_specs_325;
+extern asn_TYPE_member_t asn_MBR_RIMTransfer_ExtIEs_325[3];
+extern asn_TYPE_descriptor_t asn_DEF_RLFReportInformation_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RLFReportInformation_ExtIEs_specs_329;
+extern asn_TYPE_member_t asn_MBR_RLFReportInformation_ExtIEs_329[3];
+extern asn_TYPE_descriptor_t asn_DEF_SecurityContext_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SecurityContext_ExtIEs_specs_333;
+extern asn_TYPE_member_t asn_MBR_SecurityContext_ExtIEs_333[3];
+extern asn_TYPE_descriptor_t asn_DEF_SecondaryRATDataUsageReportItem_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SecondaryRATDataUsageReportItem_ExtIEs_specs_337;
+extern asn_TYPE_member_t asn_MBR_SecondaryRATDataUsageReportItem_ExtIEs_337[3];
+extern asn_TYPE_descriptor_t asn_DEF_SONInformationReply_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SONInformationReply_ExtIEs_specs_341;
+extern asn_TYPE_member_t asn_MBR_SONInformationReply_ExtIEs_341[3];
+extern asn_TYPE_descriptor_t asn_DEF_SONConfigurationTransfer_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SONConfigurationTransfer_ExtIEs_specs_345;
+extern asn_TYPE_member_t asn_MBR_SONConfigurationTransfer_ExtIEs_345[3];
+extern asn_TYPE_descriptor_t asn_DEF_SynchronisationInformation_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SynchronisationInformation_ExtIEs_specs_349;
+extern asn_TYPE_member_t asn_MBR_SynchronisationInformation_ExtIEs_349[3];
+extern asn_TYPE_descriptor_t asn_DEF_SourceeNB_ID_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SourceeNB_ID_ExtIEs_specs_353;
+extern asn_TYPE_member_t asn_MBR_SourceeNB_ID_ExtIEs_353[3];
+extern asn_TYPE_descriptor_t asn_DEF_SourceeNB_ToTargeteNB_TransparentContainer_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SourceeNB_ToTargeteNB_TransparentContainer_ExtIEs_specs_357;
+extern asn_TYPE_member_t asn_MBR_SourceeNB_ToTargeteNB_TransparentContainer_ExtIEs_357[3];
+extern asn_TYPE_descriptor_t asn_DEF_ServedGUMMEIsItem_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ServedGUMMEIsItem_ExtIEs_specs_361;
+extern asn_TYPE_member_t asn_MBR_ServedGUMMEIsItem_ExtIEs_361[3];
+extern asn_TYPE_descriptor_t asn_DEF_Subscription_Based_UE_DifferentiationInfo_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_Subscription_Based_UE_DifferentiationInfo_ExtIEs_specs_365;
+extern asn_TYPE_member_t asn_MBR_Subscription_Based_UE_DifferentiationInfo_ExtIEs_365[3];
+extern asn_TYPE_descriptor_t asn_DEF_ScheduledCommunicationTime_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ScheduledCommunicationTime_ExtIEs_specs_369;
+extern asn_TYPE_member_t asn_MBR_ScheduledCommunicationTime_ExtIEs_369[3];
+extern asn_TYPE_descriptor_t asn_DEF_SupportedTAs_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SupportedTAs_Item_ExtIEs_specs_373;
+extern asn_TYPE_member_t asn_MBR_SupportedTAs_Item_ExtIEs_373[3];
+extern asn_TYPE_descriptor_t asn_DEF_TimeSynchronisationInfo_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_TimeSynchronisationInfo_ExtIEs_specs_377;
+extern asn_TYPE_member_t asn_MBR_TimeSynchronisationInfo_ExtIEs_377[3];
+extern asn_TYPE_descriptor_t asn_DEF_S_TMSI_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_S_TMSI_ExtIEs_specs_381;
+extern asn_TYPE_member_t asn_MBR_S_TMSI_ExtIEs_381[3];
+extern asn_TYPE_descriptor_t asn_DEF_TAIBasedMDT_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_TAIBasedMDT_ExtIEs_specs_385;
+extern asn_TYPE_member_t asn_MBR_TAIBasedMDT_ExtIEs_385[3];
+extern asn_TYPE_descriptor_t asn_DEF_TAI_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_TAI_ExtIEs_specs_389;
+extern asn_TYPE_member_t asn_MBR_TAI_ExtIEs_389[3];
+extern asn_TYPE_descriptor_t asn_DEF_TAI_Broadcast_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_TAI_Broadcast_Item_ExtIEs_specs_393;
+extern asn_TYPE_member_t asn_MBR_TAI_Broadcast_Item_ExtIEs_393[3];
+extern asn_TYPE_descriptor_t asn_DEF_TAI_Cancelled_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_TAI_Cancelled_Item_ExtIEs_specs_397;
+extern asn_TYPE_member_t asn_MBR_TAI_Cancelled_Item_ExtIEs_397[3];
+extern asn_TYPE_descriptor_t asn_DEF_TABasedMDT_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_TABasedMDT_ExtIEs_specs_401;
+extern asn_TYPE_member_t asn_MBR_TABasedMDT_ExtIEs_401[3];
+extern asn_TYPE_descriptor_t asn_DEF_TABasedQMC_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_TABasedQMC_ExtIEs_specs_405;
+extern asn_TYPE_member_t asn_MBR_TABasedQMC_ExtIEs_405[3];
+extern asn_TYPE_descriptor_t asn_DEF_TAIBasedQMC_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_TAIBasedQMC_ExtIEs_specs_409;
+extern asn_TYPE_member_t asn_MBR_TAIBasedQMC_ExtIEs_409[3];
+extern asn_TYPE_descriptor_t asn_DEF_CompletedCellinTAI_Item_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CompletedCellinTAI_Item_ExtIEs_specs_413;
+extern asn_TYPE_member_t asn_MBR_CompletedCellinTAI_Item_ExtIEs_413[3];
+extern asn_TYPE_descriptor_t asn_DEF_TargeteNB_ID_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_TargeteNB_ID_ExtIEs_specs_417;
+extern asn_TYPE_member_t asn_MBR_TargeteNB_ID_ExtIEs_417[3];
+extern asn_TYPE_descriptor_t asn_DEF_TargetRNC_ID_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_TargetRNC_ID_ExtIEs_specs_421;
+extern asn_TYPE_member_t asn_MBR_TargetRNC_ID_ExtIEs_421[3];
+extern asn_TYPE_descriptor_t asn_DEF_TargetNgRanNode_ID_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_TargetNgRanNode_ID_ExtIEs_specs_425;
+extern asn_TYPE_member_t asn_MBR_TargetNgRanNode_ID_ExtIEs_425[3];
+extern asn_TYPE_descriptor_t asn_DEF_GNB_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_GNB_ExtIEs_specs_429;
+extern asn_TYPE_member_t asn_MBR_GNB_ExtIEs_429[3];
+extern asn_TYPE_descriptor_t asn_DEF_Global_GNB_ID_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_Global_GNB_ID_ExtIEs_specs_433;
+extern asn_TYPE_member_t asn_MBR_Global_GNB_ID_ExtIEs_433[3];
+extern asn_TYPE_descriptor_t asn_DEF_NG_eNB_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_NG_eNB_ExtIEs_specs_437;
+extern asn_TYPE_member_t asn_MBR_NG_eNB_ExtIEs_437[3];
+extern asn_TYPE_descriptor_t asn_DEF_TargeteNB_ToSourceeNB_TransparentContainer_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_TargeteNB_ToSourceeNB_TransparentContainer_ExtIEs_specs_441;
+extern asn_TYPE_member_t asn_MBR_TargeteNB_ToSourceeNB_TransparentContainer_ExtIEs_441[3];
+extern asn_TYPE_descriptor_t asn_DEF_M1ThresholdEventA2_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_M1ThresholdEventA2_ExtIEs_specs_445;
+extern asn_TYPE_member_t asn_MBR_M1ThresholdEventA2_ExtIEs_445[3];
+extern asn_TYPE_descriptor_t asn_DEF_TraceActivation_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_TraceActivation_ExtIEs_specs_449;
+extern asn_TYPE_member_t asn_MBR_TraceActivation_ExtIEs_449[3];
+extern asn_TYPE_descriptor_t asn_DEF_Tunnel_Information_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_Tunnel_Information_ExtIEs_specs_453;
+extern asn_TYPE_member_t asn_MBR_Tunnel_Information_ExtIEs_453[3];
+extern asn_TYPE_descriptor_t asn_DEF_UEAggregate_MaximumBitrates_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEAggregate_MaximumBitrates_ExtIEs_specs_457;
+extern asn_TYPE_member_t asn_MBR_UEAggregate_MaximumBitrates_ExtIEs_457[3];
+extern asn_TYPE_descriptor_t asn_DEF_UEAppLayerMeasConfig_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEAppLayerMeasConfig_ExtIEs_specs_461;
+extern asn_TYPE_member_t asn_MBR_UEAppLayerMeasConfig_ExtIEs_461[3];
+extern asn_TYPE_descriptor_t asn_DEF_UE_S1AP_ID_pair_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UE_S1AP_ID_pair_ExtIEs_specs_465;
+extern asn_TYPE_member_t asn_MBR_UE_S1AP_ID_pair_ExtIEs_465[3];
+extern asn_TYPE_descriptor_t asn_DEF_UE_associatedLogicalS1_ConnectionItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UE_associatedLogicalS1_ConnectionItemExtIEs_specs_469;
+extern asn_TYPE_member_t asn_MBR_UE_associatedLogicalS1_ConnectionItemExtIEs_469[3];
+extern asn_TYPE_descriptor_t asn_DEF_UESecurityCapabilities_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UESecurityCapabilities_ExtIEs_specs_473;
+extern asn_TYPE_member_t asn_MBR_UESecurityCapabilities_ExtIEs_473[3];
+extern asn_TYPE_descriptor_t asn_DEF_UE_Sidelink_Aggregate_MaximumBitrates_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UE_Sidelink_Aggregate_MaximumBitrates_ExtIEs_specs_477;
+extern asn_TYPE_member_t asn_MBR_UE_Sidelink_Aggregate_MaximumBitrates_ExtIEs_477[3];
+extern asn_TYPE_descriptor_t asn_DEF_UL_CP_SecurityInformation_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UL_CP_SecurityInformation_ExtIEs_specs_481;
+extern asn_TYPE_member_t asn_MBR_UL_CP_SecurityInformation_ExtIEs_481[3];
+extern asn_TYPE_descriptor_t asn_DEF_UserLocationInformation_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UserLocationInformation_ExtIEs_specs_485;
+extern asn_TYPE_member_t asn_MBR_UserLocationInformation_ExtIEs_485[3];
+extern asn_TYPE_descriptor_t asn_DEF_V2XServicesAuthorized_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_V2XServicesAuthorized_ExtIEs_specs_489;
+extern asn_TYPE_member_t asn_MBR_V2XServicesAuthorized_ExtIEs_489[3];
+extern asn_TYPE_descriptor_t asn_DEF_WLANMeasurementConfiguration_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_WLANMeasurementConfiguration_ExtIEs_specs_493;
+extern asn_TYPE_member_t asn_MBR_WLANMeasurementConfiguration_ExtIEs_493[3];
+extern asn_TYPE_descriptor_t asn_DEF_X2TNLConfigurationInfo_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_X2TNLConfigurationInfo_ExtIEs_specs_497;
+extern asn_TYPE_member_t asn_MBR_X2TNLConfigurationInfo_ExtIEs_497[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENBX2ExtTLA_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENBX2ExtTLA_ExtIEs_specs_501;
+extern asn_TYPE_member_t asn_MBR_ENBX2ExtTLA_ExtIEs_501[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABDataForwardingItem_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABDataForwardingItem_ExtIEs_specs_505;
+extern asn_TYPE_member_t asn_MBR_E_RABDataForwardingItem_ExtIEs_505[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeSetupItemHOReq_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABToBeSetupItemHOReq_ExtIEs_specs_509;
+extern asn_TYPE_member_t asn_MBR_E_RABToBeSetupItemHOReq_ExtIEs_509[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABAdmittedItem_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABAdmittedItem_ExtIEs_specs_513;
+extern asn_TYPE_member_t asn_MBR_E_RABAdmittedItem_ExtIEs_513[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABFailedToSetupItemHOReqAckExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABFailedToSetupItemHOReqAckExtIEs_specs_517;
+extern asn_TYPE_member_t asn_MBR_E_RABFailedToSetupItemHOReqAckExtIEs_517[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeSwitchedDLItem_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABToBeSwitchedDLItem_ExtIEs_specs_521;
+extern asn_TYPE_member_t asn_MBR_E_RABToBeSwitchedDLItem_ExtIEs_521[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeSwitchedULItem_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABToBeSwitchedULItem_ExtIEs_specs_525;
+extern asn_TYPE_member_t asn_MBR_E_RABToBeSwitchedULItem_ExtIEs_525[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeSetupItemBearerSUReqExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABToBeSetupItemBearerSUReqExtIEs_specs_529;
+extern asn_TYPE_member_t asn_MBR_E_RABToBeSetupItemBearerSUReqExtIEs_529[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABSetupItemBearerSUResExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABSetupItemBearerSUResExtIEs_specs_533;
+extern asn_TYPE_member_t asn_MBR_E_RABSetupItemBearerSUResExtIEs_533[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeModifyItemBearerModReqExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABToBeModifyItemBearerModReqExtIEs_specs_537;
+extern asn_TYPE_member_t asn_MBR_E_RABToBeModifyItemBearerModReqExtIEs_537[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABModifyItemBearerModResExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABModifyItemBearerModResExtIEs_specs_541;
+extern asn_TYPE_member_t asn_MBR_E_RABModifyItemBearerModResExtIEs_541[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABReleaseItemBearerRelCompExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABReleaseItemBearerRelCompExtIEs_specs_545;
+extern asn_TYPE_member_t asn_MBR_E_RABReleaseItemBearerRelCompExtIEs_545[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeSetupItemCtxtSUReqExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABToBeSetupItemCtxtSUReqExtIEs_specs_549;
+extern asn_TYPE_member_t asn_MBR_E_RABToBeSetupItemCtxtSUReqExtIEs_549[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABSetupItemCtxtSUResExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABSetupItemCtxtSUResExtIEs_specs_553;
+extern asn_TYPE_member_t asn_MBR_E_RABSetupItemCtxtSUResExtIEs_553[3];
+extern asn_TYPE_descriptor_t asn_DEF_TAIItemExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_TAIItemExtIEs_specs_557;
+extern asn_TYPE_member_t asn_MBR_TAIItemExtIEs_557[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeModifiedItemBearerModInd_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABToBeModifiedItemBearerModInd_ExtIEs_specs_561;
+extern asn_TYPE_member_t asn_MBR_E_RABToBeModifiedItemBearerModInd_ExtIEs_561[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABNotToBeModifiedItemBearerModInd_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABNotToBeModifiedItemBearerModInd_ExtIEs_specs_565;
+extern asn_TYPE_member_t asn_MBR_E_RABNotToBeModifiedItemBearerModInd_ExtIEs_565[3];
+extern asn_TYPE_descriptor_t asn_DEF_CSGMembershipInfo_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CSGMembershipInfo_ExtIEs_specs_569;
+extern asn_TYPE_member_t asn_MBR_CSGMembershipInfo_ExtIEs_569[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABModifyItemBearerModConfExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABModifyItemBearerModConfExtIEs_specs_573;
+extern asn_TYPE_member_t asn_MBR_E_RABModifyItemBearerModConfExtIEs_573[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABFailedToResumeItemResumeReq_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABFailedToResumeItemResumeReq_ExtIEs_specs_577;
+extern asn_TYPE_member_t asn_MBR_E_RABFailedToResumeItemResumeReq_ExtIEs_577[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABFailedToResumeItemResumeRes_ExtIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABFailedToResumeItemResumeRes_ExtIEs_specs_581;
+extern asn_TYPE_member_t asn_MBR_E_RABFailedToResumeItemResumeRes_ExtIEs_581[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProtocolExtensionField_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ProtocolExtensionID.h b/src/s1ap/asn1c/asnGenFiles/ProtocolExtensionID.h
new file mode 100644
index 0000000..77833f1
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ProtocolExtensionID.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-CommonDataTypes"
+ * found in "./asn1c/S1AP-CommonDataTypes.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ProtocolExtensionID_H_
+#define _ProtocolExtensionID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#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 <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ProtocolIE-Container.h b/src/s1ap/asn1c/asnGenFiles/ProtocolIE-Container.h
new file mode 100644
index 0000000..f5fabbd
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ProtocolIE-Container.h
@@ -0,0 +1,1045 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-Containers"
+ * found in "./asn1c/S1AP-Containers.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ProtocolIE_Container_H_
+#define _ProtocolIE_Container_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct HandoverRequiredIEs;
+struct HandoverCommandIEs;
+struct HandoverPreparationFailureIEs;
+struct HandoverRequestIEs;
+struct HandoverRequestAcknowledgeIEs;
+struct HandoverFailureIEs;
+struct HandoverNotifyIEs;
+struct PathSwitchRequestIEs;
+struct PathSwitchRequestAcknowledgeIEs;
+struct PathSwitchRequestFailureIEs;
+struct HandoverCancelIEs;
+struct HandoverCancelAcknowledgeIEs;
+struct E_RABSetupRequestIEs;
+struct E_RABSetupResponseIEs;
+struct E_RABModifyRequestIEs;
+struct E_RABModifyResponseIEs;
+struct E_RABReleaseCommandIEs;
+struct E_RABReleaseResponseIEs;
+struct E_RABReleaseIndicationIEs;
+struct InitialContextSetupRequestIEs;
+struct InitialContextSetupResponseIEs;
+struct InitialContextSetupFailureIEs;
+struct PagingIEs;
+struct UEContextReleaseRequest_IEs;
+struct UEContextReleaseCommand_IEs;
+struct UEContextReleaseComplete_IEs;
+struct UEContextModificationRequestIEs;
+struct UEContextModificationResponseIEs;
+struct UEContextModificationFailureIEs;
+struct UERadioCapabilityMatchRequestIEs;
+struct UERadioCapabilityMatchResponseIEs;
+struct DownlinkNASTransport_IEs;
+struct InitialUEMessage_IEs;
+struct UplinkNASTransport_IEs;
+struct NASNonDeliveryIndication_IEs;
+struct RerouteNASRequest_IEs;
+struct NASDeliveryIndicationIEs;
+struct ResetIEs;
+struct ResetAcknowledgeIEs;
+struct ErrorIndicationIEs;
+struct S1SetupRequestIEs;
+struct S1SetupResponseIEs;
+struct S1SetupFailureIEs;
+struct ENBConfigurationUpdateIEs;
+struct ENBConfigurationUpdateAcknowledgeIEs;
+struct ENBConfigurationUpdateFailureIEs;
+struct MMEConfigurationUpdateIEs;
+struct MMEConfigurationUpdateAcknowledgeIEs;
+struct MMEConfigurationUpdateFailureIEs;
+struct DownlinkS1cdma2000tunnellingIEs;
+struct UplinkS1cdma2000tunnellingIEs;
+struct UECapabilityInfoIndicationIEs;
+struct ENBStatusTransferIEs;
+struct MMEStatusTransferIEs;
+struct TraceStartIEs;
+struct TraceFailureIndicationIEs;
+struct DeactivateTraceIEs;
+struct CellTrafficTraceIEs;
+struct LocationReportingControlIEs;
+struct LocationReportingFailureIndicationIEs;
+struct LocationReportIEs;
+struct OverloadStartIEs;
+struct OverloadStopIEs;
+struct WriteReplaceWarningRequestIEs;
+struct WriteReplaceWarningResponseIEs;
+struct ENBDirectInformationTransferIEs;
+struct MMEDirectInformationTransferIEs;
+struct ENBConfigurationTransferIEs;
+struct MMEConfigurationTransferIEs;
+struct KillRequestIEs;
+struct KillResponseIEs;
+struct PWSRestartIndicationIEs;
+struct PWSFailureIndicationIEs;
+struct DownlinkUEAssociatedLPPaTransport_IEs;
+struct UplinkUEAssociatedLPPaTransport_IEs;
+struct DownlinkNonUEAssociatedLPPaTransport_IEs;
+struct UplinkNonUEAssociatedLPPaTransport_IEs;
+struct E_RABModificationIndicationIEs;
+struct E_RABModificationConfirmIEs;
+struct UEContextModificationIndicationIEs;
+struct UEContextModificationConfirmIEs;
+struct UEContextSuspendRequestIEs;
+struct UEContextSuspendResponseIEs;
+struct UEContextResumeRequestIEs;
+struct UEContextResumeResponseIEs;
+struct UEContextResumeFailureIEs;
+struct ConnectionEstablishmentIndicationIEs;
+struct RetrieveUEInformationIEs;
+struct UEInformationTransferIEs;
+struct ENBCPRelocationIndicationIEs;
+struct MMECPRelocationIndicationIEs;
+struct SecondaryRATDataUsageReportIEs;
+
+/* ProtocolIE-Container */
+typedef struct ProtocolIE_Container_129P0 {
+ A_SEQUENCE_OF(struct HandoverRequiredIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P0_t;
+typedef struct ProtocolIE_Container_129P1 {
+ A_SEQUENCE_OF(struct HandoverCommandIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P1_t;
+typedef struct ProtocolIE_Container_129P2 {
+ A_SEQUENCE_OF(struct HandoverPreparationFailureIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P2_t;
+typedef struct ProtocolIE_Container_129P3 {
+ A_SEQUENCE_OF(struct HandoverRequestIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P3_t;
+typedef struct ProtocolIE_Container_129P4 {
+ A_SEQUENCE_OF(struct HandoverRequestAcknowledgeIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P4_t;
+typedef struct ProtocolIE_Container_129P5 {
+ A_SEQUENCE_OF(struct HandoverFailureIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P5_t;
+typedef struct ProtocolIE_Container_129P6 {
+ A_SEQUENCE_OF(struct HandoverNotifyIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P6_t;
+typedef struct ProtocolIE_Container_129P7 {
+ A_SEQUENCE_OF(struct PathSwitchRequestIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P7_t;
+typedef struct ProtocolIE_Container_129P8 {
+ A_SEQUENCE_OF(struct PathSwitchRequestAcknowledgeIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P8_t;
+typedef struct ProtocolIE_Container_129P9 {
+ A_SEQUENCE_OF(struct PathSwitchRequestFailureIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P9_t;
+typedef struct ProtocolIE_Container_129P10 {
+ A_SEQUENCE_OF(struct HandoverCancelIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P10_t;
+typedef struct ProtocolIE_Container_129P11 {
+ A_SEQUENCE_OF(struct HandoverCancelAcknowledgeIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P11_t;
+typedef struct ProtocolIE_Container_129P12 {
+ A_SEQUENCE_OF(struct E_RABSetupRequestIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P12_t;
+typedef struct ProtocolIE_Container_129P13 {
+ A_SEQUENCE_OF(struct E_RABSetupResponseIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P13_t;
+typedef struct ProtocolIE_Container_129P14 {
+ A_SEQUENCE_OF(struct E_RABModifyRequestIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P14_t;
+typedef struct ProtocolIE_Container_129P15 {
+ A_SEQUENCE_OF(struct E_RABModifyResponseIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P15_t;
+typedef struct ProtocolIE_Container_129P16 {
+ A_SEQUENCE_OF(struct E_RABReleaseCommandIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P16_t;
+typedef struct ProtocolIE_Container_129P17 {
+ A_SEQUENCE_OF(struct E_RABReleaseResponseIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P17_t;
+typedef struct ProtocolIE_Container_129P18 {
+ A_SEQUENCE_OF(struct E_RABReleaseIndicationIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P18_t;
+typedef struct ProtocolIE_Container_129P19 {
+ A_SEQUENCE_OF(struct InitialContextSetupRequestIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P19_t;
+typedef struct ProtocolIE_Container_129P20 {
+ A_SEQUENCE_OF(struct InitialContextSetupResponseIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P20_t;
+typedef struct ProtocolIE_Container_129P21 {
+ A_SEQUENCE_OF(struct InitialContextSetupFailureIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P21_t;
+typedef struct ProtocolIE_Container_129P22 {
+ A_SEQUENCE_OF(struct PagingIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P22_t;
+typedef struct ProtocolIE_Container_129P23 {
+ A_SEQUENCE_OF(struct UEContextReleaseRequest_IEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P23_t;
+typedef struct ProtocolIE_Container_129P24 {
+ A_SEQUENCE_OF(struct UEContextReleaseCommand_IEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P24_t;
+typedef struct ProtocolIE_Container_129P25 {
+ A_SEQUENCE_OF(struct UEContextReleaseComplete_IEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P25_t;
+typedef struct ProtocolIE_Container_129P26 {
+ A_SEQUENCE_OF(struct UEContextModificationRequestIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P26_t;
+typedef struct ProtocolIE_Container_129P27 {
+ A_SEQUENCE_OF(struct UEContextModificationResponseIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P27_t;
+typedef struct ProtocolIE_Container_129P28 {
+ A_SEQUENCE_OF(struct UEContextModificationFailureIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P28_t;
+typedef struct ProtocolIE_Container_129P29 {
+ A_SEQUENCE_OF(struct UERadioCapabilityMatchRequestIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P29_t;
+typedef struct ProtocolIE_Container_129P30 {
+ A_SEQUENCE_OF(struct UERadioCapabilityMatchResponseIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P30_t;
+typedef struct ProtocolIE_Container_129P31 {
+ A_SEQUENCE_OF(struct DownlinkNASTransport_IEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P31_t;
+typedef struct ProtocolIE_Container_129P32 {
+ A_SEQUENCE_OF(struct InitialUEMessage_IEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P32_t;
+typedef struct ProtocolIE_Container_129P33 {
+ A_SEQUENCE_OF(struct UplinkNASTransport_IEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P33_t;
+typedef struct ProtocolIE_Container_129P34 {
+ A_SEQUENCE_OF(struct NASNonDeliveryIndication_IEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P34_t;
+typedef struct ProtocolIE_Container_129P35 {
+ A_SEQUENCE_OF(struct RerouteNASRequest_IEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P35_t;
+typedef struct ProtocolIE_Container_129P36 {
+ A_SEQUENCE_OF(struct NASDeliveryIndicationIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P36_t;
+typedef struct ProtocolIE_Container_129P37 {
+ A_SEQUENCE_OF(struct ResetIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P37_t;
+typedef struct ProtocolIE_Container_129P38 {
+ A_SEQUENCE_OF(struct ResetAcknowledgeIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P38_t;
+typedef struct ProtocolIE_Container_129P39 {
+ A_SEQUENCE_OF(struct ErrorIndicationIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P39_t;
+typedef struct ProtocolIE_Container_129P40 {
+ A_SEQUENCE_OF(struct S1SetupRequestIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P40_t;
+typedef struct ProtocolIE_Container_129P41 {
+ A_SEQUENCE_OF(struct S1SetupResponseIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P41_t;
+typedef struct ProtocolIE_Container_129P42 {
+ A_SEQUENCE_OF(struct S1SetupFailureIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P42_t;
+typedef struct ProtocolIE_Container_129P43 {
+ A_SEQUENCE_OF(struct ENBConfigurationUpdateIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P43_t;
+typedef struct ProtocolIE_Container_129P44 {
+ A_SEQUENCE_OF(struct ENBConfigurationUpdateAcknowledgeIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P44_t;
+typedef struct ProtocolIE_Container_129P45 {
+ A_SEQUENCE_OF(struct ENBConfigurationUpdateFailureIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P45_t;
+typedef struct ProtocolIE_Container_129P46 {
+ A_SEQUENCE_OF(struct MMEConfigurationUpdateIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P46_t;
+typedef struct ProtocolIE_Container_129P47 {
+ A_SEQUENCE_OF(struct MMEConfigurationUpdateAcknowledgeIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P47_t;
+typedef struct ProtocolIE_Container_129P48 {
+ A_SEQUENCE_OF(struct MMEConfigurationUpdateFailureIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P48_t;
+typedef struct ProtocolIE_Container_129P49 {
+ A_SEQUENCE_OF(struct DownlinkS1cdma2000tunnellingIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P49_t;
+typedef struct ProtocolIE_Container_129P50 {
+ A_SEQUENCE_OF(struct UplinkS1cdma2000tunnellingIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P50_t;
+typedef struct ProtocolIE_Container_129P51 {
+ A_SEQUENCE_OF(struct UECapabilityInfoIndicationIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P51_t;
+typedef struct ProtocolIE_Container_129P52 {
+ A_SEQUENCE_OF(struct ENBStatusTransferIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P52_t;
+typedef struct ProtocolIE_Container_129P53 {
+ A_SEQUENCE_OF(struct MMEStatusTransferIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P53_t;
+typedef struct ProtocolIE_Container_129P54 {
+ A_SEQUENCE_OF(struct TraceStartIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P54_t;
+typedef struct ProtocolIE_Container_129P55 {
+ A_SEQUENCE_OF(struct TraceFailureIndicationIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P55_t;
+typedef struct ProtocolIE_Container_129P56 {
+ A_SEQUENCE_OF(struct DeactivateTraceIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P56_t;
+typedef struct ProtocolIE_Container_129P57 {
+ A_SEQUENCE_OF(struct CellTrafficTraceIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P57_t;
+typedef struct ProtocolIE_Container_129P58 {
+ A_SEQUENCE_OF(struct LocationReportingControlIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P58_t;
+typedef struct ProtocolIE_Container_129P59 {
+ A_SEQUENCE_OF(struct LocationReportingFailureIndicationIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P59_t;
+typedef struct ProtocolIE_Container_129P60 {
+ A_SEQUENCE_OF(struct LocationReportIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P60_t;
+typedef struct ProtocolIE_Container_129P61 {
+ A_SEQUENCE_OF(struct OverloadStartIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P61_t;
+typedef struct ProtocolIE_Container_129P62 {
+ A_SEQUENCE_OF(struct OverloadStopIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P62_t;
+typedef struct ProtocolIE_Container_129P63 {
+ A_SEQUENCE_OF(struct WriteReplaceWarningRequestIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P63_t;
+typedef struct ProtocolIE_Container_129P64 {
+ A_SEQUENCE_OF(struct WriteReplaceWarningResponseIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P64_t;
+typedef struct ProtocolIE_Container_129P65 {
+ A_SEQUENCE_OF(struct ENBDirectInformationTransferIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P65_t;
+typedef struct ProtocolIE_Container_129P66 {
+ A_SEQUENCE_OF(struct MMEDirectInformationTransferIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P66_t;
+typedef struct ProtocolIE_Container_129P67 {
+ A_SEQUENCE_OF(struct ENBConfigurationTransferIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P67_t;
+typedef struct ProtocolIE_Container_129P68 {
+ A_SEQUENCE_OF(struct MMEConfigurationTransferIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P68_t;
+typedef struct ProtocolIE_Container_129P69 {
+ A_SEQUENCE_OF(struct KillRequestIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P69_t;
+typedef struct ProtocolIE_Container_129P70 {
+ A_SEQUENCE_OF(struct KillResponseIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P70_t;
+typedef struct ProtocolIE_Container_129P71 {
+ A_SEQUENCE_OF(struct PWSRestartIndicationIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P71_t;
+typedef struct ProtocolIE_Container_129P72 {
+ A_SEQUENCE_OF(struct PWSFailureIndicationIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P72_t;
+typedef struct ProtocolIE_Container_129P73 {
+ A_SEQUENCE_OF(struct DownlinkUEAssociatedLPPaTransport_IEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P73_t;
+typedef struct ProtocolIE_Container_129P74 {
+ A_SEQUENCE_OF(struct UplinkUEAssociatedLPPaTransport_IEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P74_t;
+typedef struct ProtocolIE_Container_129P75 {
+ A_SEQUENCE_OF(struct DownlinkNonUEAssociatedLPPaTransport_IEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P75_t;
+typedef struct ProtocolIE_Container_129P76 {
+ A_SEQUENCE_OF(struct UplinkNonUEAssociatedLPPaTransport_IEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P76_t;
+typedef struct ProtocolIE_Container_129P77 {
+ A_SEQUENCE_OF(struct E_RABModificationIndicationIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P77_t;
+typedef struct ProtocolIE_Container_129P78 {
+ A_SEQUENCE_OF(struct E_RABModificationConfirmIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P78_t;
+typedef struct ProtocolIE_Container_129P79 {
+ A_SEQUENCE_OF(struct UEContextModificationIndicationIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P79_t;
+typedef struct ProtocolIE_Container_129P80 {
+ A_SEQUENCE_OF(struct UEContextModificationConfirmIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P80_t;
+typedef struct ProtocolIE_Container_129P81 {
+ A_SEQUENCE_OF(struct UEContextSuspendRequestIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P81_t;
+typedef struct ProtocolIE_Container_129P82 {
+ A_SEQUENCE_OF(struct UEContextSuspendResponseIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P82_t;
+typedef struct ProtocolIE_Container_129P83 {
+ A_SEQUENCE_OF(struct UEContextResumeRequestIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P83_t;
+typedef struct ProtocolIE_Container_129P84 {
+ A_SEQUENCE_OF(struct UEContextResumeResponseIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P84_t;
+typedef struct ProtocolIE_Container_129P85 {
+ A_SEQUENCE_OF(struct UEContextResumeFailureIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P85_t;
+typedef struct ProtocolIE_Container_129P86 {
+ A_SEQUENCE_OF(struct ConnectionEstablishmentIndicationIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P86_t;
+typedef struct ProtocolIE_Container_129P87 {
+ A_SEQUENCE_OF(struct RetrieveUEInformationIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P87_t;
+typedef struct ProtocolIE_Container_129P88 {
+ A_SEQUENCE_OF(struct UEInformationTransferIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P88_t;
+typedef struct ProtocolIE_Container_129P89 {
+ A_SEQUENCE_OF(struct ENBCPRelocationIndicationIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P89_t;
+typedef struct ProtocolIE_Container_129P90 {
+ A_SEQUENCE_OF(struct MMECPRelocationIndicationIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P90_t;
+typedef struct ProtocolIE_Container_129P91 {
+ A_SEQUENCE_OF(struct SecondaryRATDataUsageReportIEs) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_129P91_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P0;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P0_specs_1;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P0_1[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P0_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P1;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P1_specs_3;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P1_3[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P1_constr_3;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P2;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P2_specs_5;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P2_5[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P2_constr_5;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P3;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P3_specs_7;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P3_7[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P3_constr_7;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P4;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P4_specs_9;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P4_9[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P4_constr_9;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P5;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P5_specs_11;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P5_11[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P5_constr_11;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P6;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P6_specs_13;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P6_13[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P6_constr_13;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P7;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P7_specs_15;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P7_15[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P7_constr_15;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P8;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P8_specs_17;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P8_17[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P8_constr_17;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P9;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P9_specs_19;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P9_19[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P9_constr_19;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P10;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P10_specs_21;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P10_21[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P10_constr_21;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P11;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P11_specs_23;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P11_23[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P11_constr_23;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P12;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P12_specs_25;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P12_25[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P12_constr_25;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P13;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P13_specs_27;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P13_27[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P13_constr_27;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P14;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P14_specs_29;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P14_29[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P14_constr_29;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P15;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P15_specs_31;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P15_31[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P15_constr_31;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P16;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P16_specs_33;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P16_33[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P16_constr_33;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P17;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P17_specs_35;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P17_35[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P17_constr_35;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P18;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P18_specs_37;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P18_37[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P18_constr_37;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P19;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P19_specs_39;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P19_39[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P19_constr_39;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P20;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P20_specs_41;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P20_41[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P20_constr_41;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P21;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P21_specs_43;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P21_43[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P21_constr_43;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P22;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P22_specs_45;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P22_45[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P22_constr_45;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P23;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P23_specs_47;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P23_47[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P23_constr_47;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P24;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P24_specs_49;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P24_49[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P24_constr_49;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P25;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P25_specs_51;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P25_51[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P25_constr_51;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P26;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P26_specs_53;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P26_53[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P26_constr_53;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P27;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P27_specs_55;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P27_55[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P27_constr_55;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P28;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P28_specs_57;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P28_57[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P28_constr_57;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P29;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P29_specs_59;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P29_59[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P29_constr_59;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P30;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P30_specs_61;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P30_61[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P30_constr_61;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P31;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P31_specs_63;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P31_63[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P31_constr_63;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P32;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P32_specs_65;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P32_65[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P32_constr_65;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P33;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P33_specs_67;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P33_67[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P33_constr_67;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P34;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P34_specs_69;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P34_69[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P34_constr_69;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P35;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P35_specs_71;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P35_71[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P35_constr_71;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P36;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P36_specs_73;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P36_73[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P36_constr_73;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P37;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P37_specs_75;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P37_75[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P37_constr_75;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P38;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P38_specs_77;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P38_77[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P38_constr_77;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P39;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P39_specs_79;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P39_79[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P39_constr_79;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P40;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P40_specs_81;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P40_81[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P40_constr_81;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P41;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P41_specs_83;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P41_83[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P41_constr_83;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P42;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P42_specs_85;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P42_85[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P42_constr_85;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P43;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P43_specs_87;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P43_87[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P43_constr_87;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P44;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P44_specs_89;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P44_89[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P44_constr_89;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P45;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P45_specs_91;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P45_91[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P45_constr_91;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P46;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P46_specs_93;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P46_93[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P46_constr_93;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P47;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P47_specs_95;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P47_95[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P47_constr_95;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P48;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P48_specs_97;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P48_97[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P48_constr_97;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P49;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P49_specs_99;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P49_99[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P49_constr_99;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P50;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P50_specs_101;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P50_101[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P50_constr_101;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P51;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P51_specs_103;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P51_103[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P51_constr_103;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P52;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P52_specs_105;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P52_105[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P52_constr_105;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P53;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P53_specs_107;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P53_107[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P53_constr_107;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P54;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P54_specs_109;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P54_109[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P54_constr_109;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P55;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P55_specs_111;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P55_111[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P55_constr_111;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P56;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P56_specs_113;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P56_113[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P56_constr_113;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P57;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P57_specs_115;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P57_115[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P57_constr_115;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P58;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P58_specs_117;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P58_117[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P58_constr_117;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P59;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P59_specs_119;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P59_119[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P59_constr_119;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P60;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P60_specs_121;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P60_121[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P60_constr_121;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P61;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P61_specs_123;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P61_123[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P61_constr_123;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P62;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P62_specs_125;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P62_125[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P62_constr_125;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P63;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P63_specs_127;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P63_127[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P63_constr_127;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P64;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P64_specs_129;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P64_129[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P64_constr_129;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P65;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P65_specs_131;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P65_131[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P65_constr_131;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P66;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P66_specs_133;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P66_133[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P66_constr_133;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P67;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P67_specs_135;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P67_135[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P67_constr_135;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P68;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P68_specs_137;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P68_137[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P68_constr_137;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P69;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P69_specs_139;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P69_139[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P69_constr_139;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P70;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P70_specs_141;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P70_141[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P70_constr_141;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P71;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P71_specs_143;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P71_143[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P71_constr_143;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P72;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P72_specs_145;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P72_145[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P72_constr_145;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P73;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P73_specs_147;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P73_147[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P73_constr_147;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P74;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P74_specs_149;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P74_149[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P74_constr_149;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P75;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P75_specs_151;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P75_151[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P75_constr_151;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P76;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P76_specs_153;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P76_153[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P76_constr_153;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P77;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P77_specs_155;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P77_155[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P77_constr_155;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P78;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P78_specs_157;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P78_157[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P78_constr_157;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P79;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P79_specs_159;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P79_159[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P79_constr_159;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P80;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P80_specs_161;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P80_161[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P80_constr_161;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P81;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P81_specs_163;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P81_163[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P81_constr_163;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P82;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P82_specs_165;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P82_165[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P82_constr_165;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P83;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P83_specs_167;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P83_167[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P83_constr_167;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P84;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P84_specs_169;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P84_169[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P84_constr_169;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P85;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P85_specs_171;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P85_171[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P85_constr_171;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P86;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P86_specs_173;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P86_173[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P86_constr_173;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P87;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P87_specs_175;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P87_175[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P87_constr_175;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P88;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P88_specs_177;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P88_177[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P88_constr_177;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P89;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P89_specs_179;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P89_179[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P89_constr_179;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P90;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P90_specs_181;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P90_181[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P90_constr_181;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_129P91;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_129P91_specs_183;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_129P91_183[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_129P91_constr_183;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProtocolIE_Container_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ProtocolIE-ContainerList.h b/src/s1ap/asn1c/asnGenFiles/ProtocolIE-ContainerList.h
new file mode 100644
index 0000000..e5341b2
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ProtocolIE-ContainerList.h
@@ -0,0 +1,134 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-Containers"
+ * found in "./asn1c/S1AP-Containers.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ProtocolIE_ContainerList_H_
+#define _ProtocolIE_ContainerList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* ProtocolIE-ContainerList */
+typedef struct ProtocolIE_ContainerList_166P0 {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_ContainerList_166P0_t;
+typedef struct ProtocolIE_ContainerList_166P1 {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_ContainerList_166P1_t;
+typedef struct ProtocolIE_ContainerList_166P2 {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_ContainerList_166P2_t;
+typedef struct ProtocolIE_ContainerList_166P3 {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_ContainerList_166P3_t;
+typedef struct ProtocolIE_ContainerList_166P4 {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_ContainerList_166P4_t;
+typedef struct ProtocolIE_ContainerList_166P5 {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_ContainerList_166P5_t;
+typedef struct ProtocolIE_ContainerList_166P6 {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_ContainerList_166P6_t;
+typedef struct ProtocolIE_ContainerList_166P7 {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_ContainerList_166P7_t;
+typedef struct ProtocolIE_ContainerList_166P8 {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_ContainerList_166P8_t;
+typedef struct ProtocolIE_ContainerList_166P9 {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_ContainerList_166P9_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerList_166P0;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerList_166P0_specs_1;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerList_166P0_1[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerList_166P0_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerList_166P1;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerList_166P1_specs_3;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerList_166P1_3[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerList_166P1_constr_3;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerList_166P2;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerList_166P2_specs_5;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerList_166P2_5[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerList_166P2_constr_5;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerList_166P3;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerList_166P3_specs_7;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerList_166P3_7[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerList_166P3_constr_7;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerList_166P4;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerList_166P4_specs_9;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerList_166P4_9[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerList_166P4_constr_9;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerList_166P5;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerList_166P5_specs_11;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerList_166P5_11[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerList_166P5_constr_11;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerList_166P6;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerList_166P6_specs_13;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerList_166P6_13[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerList_166P6_constr_13;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerList_166P7;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerList_166P7_specs_15;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerList_166P7_15[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerList_166P7_constr_15;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerList_166P8;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerList_166P8_specs_17;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerList_166P8_17[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerList_166P8_constr_17;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerList_166P9;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerList_166P9_specs_19;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerList_166P9_19[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerList_166P9_constr_19;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProtocolIE_ContainerList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ProtocolIE-ContainerPair.h b/src/s1ap/asn1c/asnGenFiles/ProtocolIE-ContainerPair.h
new file mode 100644
index 0000000..2ac7db9
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ProtocolIE-ContainerPair.h
@@ -0,0 +1,23 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-Containers"
+ * found in "./asn1c/S1AP-Containers.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ProtocolIE_ContainerPair_H_
+#define _ProtocolIE_ContainerPair_H_
+
+
+#include <asn_application.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProtocolIE_ContainerPair_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ProtocolIE-ContainerPairList.h b/src/s1ap/asn1c/asnGenFiles/ProtocolIE-ContainerPairList.h
new file mode 100644
index 0000000..ba4354e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ProtocolIE-ContainerPairList.h
@@ -0,0 +1,23 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-Containers"
+ * found in "./asn1c/S1AP-Containers.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ProtocolIE_ContainerPairList_H_
+#define _ProtocolIE_ContainerPairList_H_
+
+
+#include <asn_application.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProtocolIE_ContainerPairList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ProtocolIE-Field.h b/src/s1ap/asn1c/asnGenFiles/ProtocolIE-Field.h
new file mode 100644
index 0000000..a77e4da
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ProtocolIE-Field.h
@@ -0,0 +1,3943 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-Containers"
+ * found in "./asn1c/S1AP-Containers.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice`
+ */
+
+#ifndef _ProtocolIE_Field_H_
+#define _ProtocolIE_Field_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-ID.h"
+#include "Criticality.h"
+#include <ANY.h>
+#include <asn_ioc.h>
+#include "Bearers-SubjectToStatusTransfer-Item.h"
+#include "Presence.h"
+#include <OPEN_TYPE.h>
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+#include "E-RABInformationListItem.h"
+#include "E-RABItem.h"
+#include "E-RABUsageReportItem.h"
+#include "LoggedMBSFNMDT.h"
+#include "RecommendedCellItem.h"
+#include "RecommendedENBItem.h"
+#include "SecondaryRATDataUsageReportItem.h"
+#include "SONInformationReport.h"
+#include "E-RABToBeSetupItemBearerSUReq.h"
+#include "E-RABSetupItemBearerSURes.h"
+#include "E-RABToBeModifiedItemBearerModReq.h"
+#include "E-RABModifyItemBearerModRes.h"
+#include "E-RABReleaseItemBearerRelComp.h"
+#include "E-RABToBeSetupItemCtxtSUReq.h"
+#include "E-RABSetupItemCtxtSURes.h"
+#include "TAIItem.h"
+#include "UE-associatedLogicalS1-ConnectionItem.h"
+#include "E-RABModifyItemBearerModConf.h"
+#include "MME-UE-S1AP-ID.h"
+#include "ENB-UE-S1AP-ID.h"
+#include "HandoverType.h"
+#include "Cause.h"
+#include "TargetID.h"
+#include "Direct-Forwarding-Path-Availability.h"
+#include "SRVCCHOIndication.h"
+#include "Source-ToTarget-TransparentContainer.h"
+#include "MSClassmark2.h"
+#include "MSClassmark3.h"
+#include "CSG-Id.h"
+#include "CellAccessMode.h"
+#include "PS-ServiceNotAvailable.h"
+#include "NASSecurityParametersfromE-UTRAN.h"
+#include "E-RABSubjecttoDataForwardingList.h"
+#include "E-RABList.h"
+#include "Target-ToSource-TransparentContainer.h"
+#include "CriticalityDiagnostics.h"
+#include "UEAggregateMaximumBitrate.h"
+#include "E-RABToBeSetupListHOReq.h"
+#include "UESecurityCapabilities.h"
+#include "HandoverRestrictionList.h"
+#include "TraceActivation.h"
+#include "RequestType.h"
+#include "SRVCCOperationPossible.h"
+#include "SecurityContext.h"
+#include "NASSecurityParameterstoE-UTRAN.h"
+#include "CSGMembershipStatus.h"
+#include "GUMMEI.h"
+#include "ManagementBasedMDTAllowed.h"
+#include "MDTPLMNList.h"
+#include "Masked-IMEISV.h"
+#include "ExpectedUEBehaviour.h"
+#include "ProSeAuthorized.h"
+#include "UEUserPlaneCIoTSupportIndicator.h"
+#include "V2XServicesAuthorized.h"
+#include "UESidelinkAggregateMaximumBitrate.h"
+#include "EnhancedCoverageRestricted.h"
+#include "NRUESecurityCapabilities.h"
+#include "CE-ModeBRestricted.h"
+#include "AerialUEsubscriptionInformation.h"
+#include "PendingDataIndication.h"
+#include "Subscription-Based-UE-DifferentiationInfo.h"
+#include "E-RABAdmittedList.h"
+#include "E-RABFailedtoSetupListHOReqAck.h"
+#include "CE-mode-B-SupportIndicator.h"
+#include "EUTRAN-CGI.h"
+#include "TAI.h"
+#include "TunnelInformation.h"
+#include "LHN-ID.h"
+#include "PSCellInformation.h"
+#include "E-RABToBeSwitchedDLList.h"
+#include "RRC-Establishment-Cause.h"
+#include "E-RABToBeSwitchedULList.h"
+#include "E-RABToBeSetupListBearerSUReq.h"
+#include "E-RABSetupListBearerSURes.h"
+#include "E-RABToBeModifiedListBearerModReq.h"
+#include "SecondaryRATDataUsageRequest.h"
+#include "E-RABModifyListBearerModRes.h"
+#include "SecondaryRATDataUsageReportList.h"
+#include "NAS-PDU.h"
+#include "E-RABReleaseListBearerRelComp.h"
+#include "UserLocationInformation.h"
+#include "E-RABToBeSetupListCtxtSUReq.h"
+#include "SecurityKey.h"
+#include "UERadioCapability.h"
+#include "SubscriberProfileIDforRFP.h"
+#include "CSFallbackIndicator.h"
+#include "LAI.h"
+#include "AdditionalCSFallbackIndicator.h"
+#include "E-RABSetupListCtxtSURes.h"
+#include "UEIdentityIndexValue.h"
+#include "UEPagingID.h"
+#include "PagingDRX.h"
+#include "CNDomain.h"
+#include "TAIList.h"
+#include "CSG-IdList.h"
+#include "PagingPriority.h"
+#include "UERadioCapabilityForPaging.h"
+#include "AssistanceDataForPaging.h"
+#include "Paging-eDRXInformation.h"
+#include "Extended-UEIdentityIndexValue.h"
+#include "NB-IoT-Paging-eDRXInformation.h"
+#include "NB-IoT-UEIdentityIndexValue.h"
+#include "GWContextReleaseIndication.h"
+#include "UE-S1AP-IDs.h"
+#include "InformationOnRecommendedCellsAndENBsForPaging.h"
+#include "CellIdentifierAndCELevelForCECapableUEs.h"
+#include "TimeSinceSecondaryNodeRelease.h"
+#include "SRVCCOperationNotPossible.h"
+#include "VoiceSupportMatchIndicator.h"
+#include "DLNASPDUDeliveryAckRequest.h"
+#include "UECapabilityInfoRequest.h"
+#include "EndIndication.h"
+#include "S-TMSI.h"
+#include "TransportLayerAddress.h"
+#include "RelayNode-Indicator.h"
+#include "GUMMEIType.h"
+#include "MME-Group-ID.h"
+#include "UE-Usage-Type.h"
+#include "DCN-ID.h"
+#include "Coverage-Level.h"
+#include "UE-Application-Layer-Measurement-Capability.h"
+#include "EDT-Session.h"
+#include <OCTET_STRING.h>
+#include "Additional-GUTI.h"
+#include "ResetType.h"
+#include "UE-associatedLogicalS1-ConnectionListResAck.h"
+#include "Global-ENB-ID.h"
+#include "ENBname.h"
+#include "SupportedTAs.h"
+#include "UE-RetentionInformation.h"
+#include "NB-IoT-DefaultPagingDRX.h"
+#include "ConnectedengNBList.h"
+#include "MMEname.h"
+#include "ServedGUMMEIs.h"
+#include "RelativeMMECapacity.h"
+#include "MMERelaySupportIndicator.h"
+#include "ServedDCNs.h"
+#include "TimeToWait.h"
+#include "Cdma2000HOStatus.h"
+#include "Cdma2000RATType.h"
+#include "Cdma2000PDU.h"
+#include "Cdma2000SectorID.h"
+#include "Cdma2000HORequiredIndication.h"
+#include "Cdma2000OneXSRVCCInfo.h"
+#include "Cdma2000OneXRAND.h"
+#include "EUTRANRoundTripDelayEstimationInfo.h"
+#include "LTE-M-Indication.h"
+#include "ENB-StatusTransfer-TransparentContainer.h"
+#include "E-UTRAN-Trace-ID.h"
+#include "PrivacyIndicator.h"
+#include "OverloadResponse.h"
+#include "GUMMEIList.h"
+#include "TrafficLoadReductionIndication.h"
+#include "MessageIdentifier.h"
+#include "SerialNumber.h"
+#include "WarningAreaList.h"
+#include "RepetitionPeriod.h"
+#include "ExtendedRepetitionPeriod.h"
+#include "NumberofBroadcastRequest.h"
+#include "WarningType.h"
+#include "WarningSecurityInfo.h"
+#include "DataCodingScheme.h"
+#include "WarningMessageContents.h"
+#include "ConcurrentWarningMessageIndicator.h"
+#include "WarningAreaCoordinates.h"
+#include "BroadcastCompletedAreaList.h"
+#include "Inter-SystemInformationTransferType.h"
+#include "SONConfigurationTransfer.h"
+#include "EN-DCSONConfigurationTransfer.h"
+#include "KillAllWarningMessages.h"
+#include "BroadcastCancelledAreaList.h"
+#include "ECGIListForRestart.h"
+#include "TAIListForRestart.h"
+#include "EmergencyAreaIDListForRestart.h"
+#include "PWSfailedECGIList.h"
+#include "Routing-ID.h"
+#include "LPPa-PDU.h"
+#include "E-RABToBeModifiedListBearerModInd.h"
+#include "E-RABNotToBeModifiedListBearerModInd.h"
+#include "CSGMembershipInfo.h"
+#include "E-RABModifyListBearerModConf.h"
+#include "E-RABFailedToResumeListResumeReq.h"
+#include "E-RABFailedToResumeListResumeRes.h"
+#include "DL-CP-SecurityInformation.h"
+#include "E-RABLevelQoSParameters.h"
+#include "UL-CP-SecurityInformation.h"
+#include "HandoverFlag.h"
+#include "E-RABDataForwardingItem.h"
+#include "E-RABToBeSetupItemHOReq.h"
+#include "E-RABAdmittedItem.h"
+#include "E-RABFailedToSetupItemHOReqAck.h"
+#include "E-RABToBeSwitchedDLItem.h"
+#include "E-RABToBeSwitchedULItem.h"
+#include "E-RABToBeModifiedItemBearerModInd.h"
+#include "E-RABNotToBeModifiedItemBearerModInd.h"
+#include "E-RABFailedToResumeItemResumeReq.h"
+#include "E-RABFailedToResumeItemResumeRes.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Bearers_SubjectToStatusTransfer_ItemIEs__value_PR {
+ Bearers_SubjectToStatusTransfer_ItemIEs__value_PR_NOTHING, /* No components present */
+ Bearers_SubjectToStatusTransfer_ItemIEs__value_PR_Bearers_SubjectToStatusTransfer_Item
+} Bearers_SubjectToStatusTransfer_ItemIEs__value_PR;
+typedef enum E_RABInformationListIEs__value_PR {
+ E_RABInformationListIEs__value_PR_NOTHING, /* No components present */
+ E_RABInformationListIEs__value_PR_E_RABInformationListItem
+} E_RABInformationListIEs__value_PR;
+typedef enum E_RABItemIEs__value_PR {
+ E_RABItemIEs__value_PR_NOTHING, /* No components present */
+ E_RABItemIEs__value_PR_E_RABItem
+} E_RABItemIEs__value_PR;
+typedef enum E_RABUsageReportItemIEs__value_PR {
+ E_RABUsageReportItemIEs__value_PR_NOTHING, /* No components present */
+ E_RABUsageReportItemIEs__value_PR_E_RABUsageReportItem
+} E_RABUsageReportItemIEs__value_PR;
+typedef enum MDTMode_ExtensionIE__value_PR {
+ MDTMode_ExtensionIE__value_PR_NOTHING, /* No components present */
+ MDTMode_ExtensionIE__value_PR_LoggedMBSFNMDT
+} MDTMode_ExtensionIE__value_PR;
+typedef enum RecommendedCellItemIEs__value_PR {
+ RecommendedCellItemIEs__value_PR_NOTHING, /* No components present */
+ RecommendedCellItemIEs__value_PR_RecommendedCellItem
+} RecommendedCellItemIEs__value_PR;
+typedef enum RecommendedENBItemIEs__value_PR {
+ RecommendedENBItemIEs__value_PR_NOTHING, /* No components present */
+ RecommendedENBItemIEs__value_PR_RecommendedENBItem
+} RecommendedENBItemIEs__value_PR;
+typedef enum SecondaryRATDataUsageReportItemIEs__value_PR {
+ SecondaryRATDataUsageReportItemIEs__value_PR_NOTHING, /* No components present */
+ SecondaryRATDataUsageReportItemIEs__value_PR_SecondaryRATDataUsageReportItem
+} SecondaryRATDataUsageReportItemIEs__value_PR;
+typedef enum SONInformation_ExtensionIE__value_PR {
+ SONInformation_ExtensionIE__value_PR_NOTHING, /* No components present */
+ SONInformation_ExtensionIE__value_PR_SONInformationReport
+} SONInformation_ExtensionIE__value_PR;
+typedef enum E_RABToBeSetupItemBearerSUReqIEs__value_PR {
+ E_RABToBeSetupItemBearerSUReqIEs__value_PR_NOTHING, /* No components present */
+ E_RABToBeSetupItemBearerSUReqIEs__value_PR_E_RABToBeSetupItemBearerSUReq
+} E_RABToBeSetupItemBearerSUReqIEs__value_PR;
+typedef enum E_RABSetupItemBearerSUResIEs__value_PR {
+ E_RABSetupItemBearerSUResIEs__value_PR_NOTHING, /* No components present */
+ E_RABSetupItemBearerSUResIEs__value_PR_E_RABSetupItemBearerSURes
+} E_RABSetupItemBearerSUResIEs__value_PR;
+typedef enum E_RABToBeModifiedItemBearerModReqIEs__value_PR {
+ E_RABToBeModifiedItemBearerModReqIEs__value_PR_NOTHING, /* No components present */
+ E_RABToBeModifiedItemBearerModReqIEs__value_PR_E_RABToBeModifiedItemBearerModReq
+} E_RABToBeModifiedItemBearerModReqIEs__value_PR;
+typedef enum E_RABModifyItemBearerModResIEs__value_PR {
+ E_RABModifyItemBearerModResIEs__value_PR_NOTHING, /* No components present */
+ E_RABModifyItemBearerModResIEs__value_PR_E_RABModifyItemBearerModRes
+} E_RABModifyItemBearerModResIEs__value_PR;
+typedef enum E_RABReleaseItemBearerRelCompIEs__value_PR {
+ E_RABReleaseItemBearerRelCompIEs__value_PR_NOTHING, /* No components present */
+ E_RABReleaseItemBearerRelCompIEs__value_PR_E_RABReleaseItemBearerRelComp
+} E_RABReleaseItemBearerRelCompIEs__value_PR;
+typedef enum E_RABToBeSetupItemCtxtSUReqIEs__value_PR {
+ E_RABToBeSetupItemCtxtSUReqIEs__value_PR_NOTHING, /* No components present */
+ E_RABToBeSetupItemCtxtSUReqIEs__value_PR_E_RABToBeSetupItemCtxtSUReq
+} E_RABToBeSetupItemCtxtSUReqIEs__value_PR;
+typedef enum E_RABSetupItemCtxtSUResIEs__value_PR {
+ E_RABSetupItemCtxtSUResIEs__value_PR_NOTHING, /* No components present */
+ E_RABSetupItemCtxtSUResIEs__value_PR_E_RABSetupItemCtxtSURes
+} E_RABSetupItemCtxtSUResIEs__value_PR;
+typedef enum TAIItemIEs__value_PR {
+ TAIItemIEs__value_PR_NOTHING, /* No components present */
+ TAIItemIEs__value_PR_TAIItem
+} TAIItemIEs__value_PR;
+typedef enum UE_associatedLogicalS1_ConnectionItemRes__value_PR {
+ UE_associatedLogicalS1_ConnectionItemRes__value_PR_NOTHING, /* No components present */
+ UE_associatedLogicalS1_ConnectionItemRes__value_PR_UE_associatedLogicalS1_ConnectionItem
+} UE_associatedLogicalS1_ConnectionItemRes__value_PR;
+typedef enum UE_associatedLogicalS1_ConnectionItemResAck__value_PR {
+ UE_associatedLogicalS1_ConnectionItemResAck__value_PR_NOTHING, /* No components present */
+ UE_associatedLogicalS1_ConnectionItemResAck__value_PR_UE_associatedLogicalS1_ConnectionItem
+} UE_associatedLogicalS1_ConnectionItemResAck__value_PR;
+typedef enum E_RABModifyItemBearerModConfIEs__value_PR {
+ E_RABModifyItemBearerModConfIEs__value_PR_NOTHING, /* No components present */
+ E_RABModifyItemBearerModConfIEs__value_PR_E_RABModifyItemBearerModConf
+} E_RABModifyItemBearerModConfIEs__value_PR;
+typedef enum HandoverRequiredIEs__value_PR {
+ HandoverRequiredIEs__value_PR_NOTHING, /* No components present */
+ HandoverRequiredIEs__value_PR_MME_UE_S1AP_ID,
+ HandoverRequiredIEs__value_PR_ENB_UE_S1AP_ID,
+ HandoverRequiredIEs__value_PR_HandoverType,
+ HandoverRequiredIEs__value_PR_Cause,
+ HandoverRequiredIEs__value_PR_TargetID,
+ HandoverRequiredIEs__value_PR_Direct_Forwarding_Path_Availability,
+ HandoverRequiredIEs__value_PR_SRVCCHOIndication,
+ HandoverRequiredIEs__value_PR_Source_ToTarget_TransparentContainer,
+ HandoverRequiredIEs__value_PR_Source_ToTarget_TransparentContainer_1,
+ HandoverRequiredIEs__value_PR_MSClassmark2,
+ HandoverRequiredIEs__value_PR_MSClassmark3,
+ HandoverRequiredIEs__value_PR_CSG_Id,
+ HandoverRequiredIEs__value_PR_CellAccessMode,
+ HandoverRequiredIEs__value_PR_PS_ServiceNotAvailable
+} HandoverRequiredIEs__value_PR;
+typedef enum HandoverCommandIEs__value_PR {
+ HandoverCommandIEs__value_PR_NOTHING, /* No components present */
+ HandoverCommandIEs__value_PR_MME_UE_S1AP_ID,
+ HandoverCommandIEs__value_PR_ENB_UE_S1AP_ID,
+ HandoverCommandIEs__value_PR_HandoverType,
+ HandoverCommandIEs__value_PR_NASSecurityParametersfromE_UTRAN,
+ HandoverCommandIEs__value_PR_E_RABSubjecttoDataForwardingList,
+ HandoverCommandIEs__value_PR_E_RABList,
+ HandoverCommandIEs__value_PR_Target_ToSource_TransparentContainer,
+ HandoverCommandIEs__value_PR_Target_ToSource_TransparentContainer_1,
+ HandoverCommandIEs__value_PR_CriticalityDiagnostics
+} HandoverCommandIEs__value_PR;
+typedef enum HandoverPreparationFailureIEs__value_PR {
+ HandoverPreparationFailureIEs__value_PR_NOTHING, /* No components present */
+ HandoverPreparationFailureIEs__value_PR_MME_UE_S1AP_ID,
+ HandoverPreparationFailureIEs__value_PR_ENB_UE_S1AP_ID,
+ HandoverPreparationFailureIEs__value_PR_Cause,
+ HandoverPreparationFailureIEs__value_PR_CriticalityDiagnostics
+} HandoverPreparationFailureIEs__value_PR;
+typedef enum HandoverRequestIEs__value_PR {
+ HandoverRequestIEs__value_PR_NOTHING, /* No components present */
+ HandoverRequestIEs__value_PR_MME_UE_S1AP_ID,
+ HandoverRequestIEs__value_PR_HandoverType,
+ HandoverRequestIEs__value_PR_Cause,
+ HandoverRequestIEs__value_PR_UEAggregateMaximumBitrate,
+ HandoverRequestIEs__value_PR_E_RABToBeSetupListHOReq,
+ HandoverRequestIEs__value_PR_Source_ToTarget_TransparentContainer,
+ HandoverRequestIEs__value_PR_UESecurityCapabilities,
+ HandoverRequestIEs__value_PR_HandoverRestrictionList,
+ HandoverRequestIEs__value_PR_TraceActivation,
+ HandoverRequestIEs__value_PR_RequestType,
+ HandoverRequestIEs__value_PR_SRVCCOperationPossible,
+ HandoverRequestIEs__value_PR_SecurityContext,
+ HandoverRequestIEs__value_PR_NASSecurityParameterstoE_UTRAN,
+ HandoverRequestIEs__value_PR_CSG_Id,
+ HandoverRequestIEs__value_PR_CSGMembershipStatus,
+ HandoverRequestIEs__value_PR_GUMMEI,
+ HandoverRequestIEs__value_PR_MME_UE_S1AP_ID_1,
+ HandoverRequestIEs__value_PR_ManagementBasedMDTAllowed,
+ HandoverRequestIEs__value_PR_MDTPLMNList,
+ HandoverRequestIEs__value_PR_Masked_IMEISV,
+ HandoverRequestIEs__value_PR_ExpectedUEBehaviour,
+ HandoverRequestIEs__value_PR_ProSeAuthorized,
+ HandoverRequestIEs__value_PR_UEUserPlaneCIoTSupportIndicator,
+ HandoverRequestIEs__value_PR_V2XServicesAuthorized,
+ HandoverRequestIEs__value_PR_UESidelinkAggregateMaximumBitrate,
+ HandoverRequestIEs__value_PR_EnhancedCoverageRestricted,
+ HandoverRequestIEs__value_PR_NRUESecurityCapabilities,
+ HandoverRequestIEs__value_PR_CE_ModeBRestricted,
+ HandoverRequestIEs__value_PR_AerialUEsubscriptionInformation,
+ HandoverRequestIEs__value_PR_PendingDataIndication,
+ HandoverRequestIEs__value_PR_Subscription_Based_UE_DifferentiationInfo
+} HandoverRequestIEs__value_PR;
+typedef enum HandoverRequestAcknowledgeIEs__value_PR {
+ HandoverRequestAcknowledgeIEs__value_PR_NOTHING, /* No components present */
+ HandoverRequestAcknowledgeIEs__value_PR_MME_UE_S1AP_ID,
+ HandoverRequestAcknowledgeIEs__value_PR_ENB_UE_S1AP_ID,
+ HandoverRequestAcknowledgeIEs__value_PR_E_RABAdmittedList,
+ HandoverRequestAcknowledgeIEs__value_PR_E_RABFailedtoSetupListHOReqAck,
+ HandoverRequestAcknowledgeIEs__value_PR_Target_ToSource_TransparentContainer,
+ HandoverRequestAcknowledgeIEs__value_PR_CSG_Id,
+ HandoverRequestAcknowledgeIEs__value_PR_CriticalityDiagnostics,
+ HandoverRequestAcknowledgeIEs__value_PR_CellAccessMode,
+ HandoverRequestAcknowledgeIEs__value_PR_CE_mode_B_SupportIndicator
+} HandoverRequestAcknowledgeIEs__value_PR;
+typedef enum HandoverFailureIEs__value_PR {
+ HandoverFailureIEs__value_PR_NOTHING, /* No components present */
+ HandoverFailureIEs__value_PR_MME_UE_S1AP_ID,
+ HandoverFailureIEs__value_PR_Cause,
+ HandoverFailureIEs__value_PR_CriticalityDiagnostics
+} HandoverFailureIEs__value_PR;
+typedef enum HandoverNotifyIEs__value_PR {
+ HandoverNotifyIEs__value_PR_NOTHING, /* No components present */
+ HandoverNotifyIEs__value_PR_MME_UE_S1AP_ID,
+ HandoverNotifyIEs__value_PR_ENB_UE_S1AP_ID,
+ HandoverNotifyIEs__value_PR_EUTRAN_CGI,
+ HandoverNotifyIEs__value_PR_TAI,
+ HandoverNotifyIEs__value_PR_TunnelInformation,
+ HandoverNotifyIEs__value_PR_LHN_ID,
+ HandoverNotifyIEs__value_PR_PSCellInformation
+} HandoverNotifyIEs__value_PR;
+typedef enum PathSwitchRequestIEs__value_PR {
+ PathSwitchRequestIEs__value_PR_NOTHING, /* No components present */
+ PathSwitchRequestIEs__value_PR_ENB_UE_S1AP_ID,
+ PathSwitchRequestIEs__value_PR_E_RABToBeSwitchedDLList,
+ PathSwitchRequestIEs__value_PR_MME_UE_S1AP_ID,
+ PathSwitchRequestIEs__value_PR_EUTRAN_CGI,
+ PathSwitchRequestIEs__value_PR_TAI,
+ PathSwitchRequestIEs__value_PR_UESecurityCapabilities,
+ PathSwitchRequestIEs__value_PR_CSG_Id,
+ PathSwitchRequestIEs__value_PR_CellAccessMode,
+ PathSwitchRequestIEs__value_PR_GUMMEI,
+ PathSwitchRequestIEs__value_PR_CSGMembershipStatus,
+ PathSwitchRequestIEs__value_PR_TunnelInformation,
+ PathSwitchRequestIEs__value_PR_LHN_ID,
+ PathSwitchRequestIEs__value_PR_RRC_Establishment_Cause,
+ PathSwitchRequestIEs__value_PR_NRUESecurityCapabilities,
+ PathSwitchRequestIEs__value_PR_PSCellInformation
+} PathSwitchRequestIEs__value_PR;
+typedef enum PathSwitchRequestAcknowledgeIEs__value_PR {
+ PathSwitchRequestAcknowledgeIEs__value_PR_NOTHING, /* No components present */
+ PathSwitchRequestAcknowledgeIEs__value_PR_MME_UE_S1AP_ID,
+ PathSwitchRequestAcknowledgeIEs__value_PR_ENB_UE_S1AP_ID,
+ PathSwitchRequestAcknowledgeIEs__value_PR_UEAggregateMaximumBitrate,
+ PathSwitchRequestAcknowledgeIEs__value_PR_E_RABToBeSwitchedULList,
+ PathSwitchRequestAcknowledgeIEs__value_PR_E_RABList,
+ PathSwitchRequestAcknowledgeIEs__value_PR_SecurityContext,
+ PathSwitchRequestAcknowledgeIEs__value_PR_CriticalityDiagnostics,
+ PathSwitchRequestAcknowledgeIEs__value_PR_MME_UE_S1AP_ID_1,
+ PathSwitchRequestAcknowledgeIEs__value_PR_CSGMembershipStatus,
+ PathSwitchRequestAcknowledgeIEs__value_PR_ProSeAuthorized,
+ PathSwitchRequestAcknowledgeIEs__value_PR_UEUserPlaneCIoTSupportIndicator,
+ PathSwitchRequestAcknowledgeIEs__value_PR_V2XServicesAuthorized,
+ PathSwitchRequestAcknowledgeIEs__value_PR_UESidelinkAggregateMaximumBitrate,
+ PathSwitchRequestAcknowledgeIEs__value_PR_EnhancedCoverageRestricted,
+ PathSwitchRequestAcknowledgeIEs__value_PR_NRUESecurityCapabilities,
+ PathSwitchRequestAcknowledgeIEs__value_PR_CE_ModeBRestricted,
+ PathSwitchRequestAcknowledgeIEs__value_PR_AerialUEsubscriptionInformation,
+ PathSwitchRequestAcknowledgeIEs__value_PR_PendingDataIndication,
+ PathSwitchRequestAcknowledgeIEs__value_PR_Subscription_Based_UE_DifferentiationInfo
+} PathSwitchRequestAcknowledgeIEs__value_PR;
+typedef enum PathSwitchRequestFailureIEs__value_PR {
+ PathSwitchRequestFailureIEs__value_PR_NOTHING, /* No components present */
+ PathSwitchRequestFailureIEs__value_PR_MME_UE_S1AP_ID,
+ PathSwitchRequestFailureIEs__value_PR_ENB_UE_S1AP_ID,
+ PathSwitchRequestFailureIEs__value_PR_Cause,
+ PathSwitchRequestFailureIEs__value_PR_CriticalityDiagnostics
+} PathSwitchRequestFailureIEs__value_PR;
+typedef enum HandoverCancelIEs__value_PR {
+ HandoverCancelIEs__value_PR_NOTHING, /* No components present */
+ HandoverCancelIEs__value_PR_MME_UE_S1AP_ID,
+ HandoverCancelIEs__value_PR_ENB_UE_S1AP_ID,
+ HandoverCancelIEs__value_PR_Cause
+} HandoverCancelIEs__value_PR;
+typedef enum HandoverCancelAcknowledgeIEs__value_PR {
+ HandoverCancelAcknowledgeIEs__value_PR_NOTHING, /* No components present */
+ HandoverCancelAcknowledgeIEs__value_PR_MME_UE_S1AP_ID,
+ HandoverCancelAcknowledgeIEs__value_PR_ENB_UE_S1AP_ID,
+ HandoverCancelAcknowledgeIEs__value_PR_CriticalityDiagnostics
+} HandoverCancelAcknowledgeIEs__value_PR;
+typedef enum E_RABSetupRequestIEs__value_PR {
+ E_RABSetupRequestIEs__value_PR_NOTHING, /* No components present */
+ E_RABSetupRequestIEs__value_PR_MME_UE_S1AP_ID,
+ E_RABSetupRequestIEs__value_PR_ENB_UE_S1AP_ID,
+ E_RABSetupRequestIEs__value_PR_UEAggregateMaximumBitrate,
+ E_RABSetupRequestIEs__value_PR_E_RABToBeSetupListBearerSUReq
+} E_RABSetupRequestIEs__value_PR;
+typedef enum E_RABSetupResponseIEs__value_PR {
+ E_RABSetupResponseIEs__value_PR_NOTHING, /* No components present */
+ E_RABSetupResponseIEs__value_PR_MME_UE_S1AP_ID,
+ E_RABSetupResponseIEs__value_PR_ENB_UE_S1AP_ID,
+ E_RABSetupResponseIEs__value_PR_E_RABSetupListBearerSURes,
+ E_RABSetupResponseIEs__value_PR_E_RABList,
+ E_RABSetupResponseIEs__value_PR_CriticalityDiagnostics
+} E_RABSetupResponseIEs__value_PR;
+typedef enum E_RABModifyRequestIEs__value_PR {
+ E_RABModifyRequestIEs__value_PR_NOTHING, /* No components present */
+ E_RABModifyRequestIEs__value_PR_MME_UE_S1AP_ID,
+ E_RABModifyRequestIEs__value_PR_ENB_UE_S1AP_ID,
+ E_RABModifyRequestIEs__value_PR_UEAggregateMaximumBitrate,
+ E_RABModifyRequestIEs__value_PR_E_RABToBeModifiedListBearerModReq,
+ E_RABModifyRequestIEs__value_PR_SecondaryRATDataUsageRequest
+} E_RABModifyRequestIEs__value_PR;
+typedef enum E_RABModifyResponseIEs__value_PR {
+ E_RABModifyResponseIEs__value_PR_NOTHING, /* No components present */
+ E_RABModifyResponseIEs__value_PR_MME_UE_S1AP_ID,
+ E_RABModifyResponseIEs__value_PR_ENB_UE_S1AP_ID,
+ E_RABModifyResponseIEs__value_PR_E_RABModifyListBearerModRes,
+ E_RABModifyResponseIEs__value_PR_E_RABList,
+ E_RABModifyResponseIEs__value_PR_CriticalityDiagnostics,
+ E_RABModifyResponseIEs__value_PR_SecondaryRATDataUsageReportList
+} E_RABModifyResponseIEs__value_PR;
+typedef enum E_RABReleaseCommandIEs__value_PR {
+ E_RABReleaseCommandIEs__value_PR_NOTHING, /* No components present */
+ E_RABReleaseCommandIEs__value_PR_MME_UE_S1AP_ID,
+ E_RABReleaseCommandIEs__value_PR_ENB_UE_S1AP_ID,
+ E_RABReleaseCommandIEs__value_PR_UEAggregateMaximumBitrate,
+ E_RABReleaseCommandIEs__value_PR_E_RABList,
+ E_RABReleaseCommandIEs__value_PR_NAS_PDU
+} E_RABReleaseCommandIEs__value_PR;
+typedef enum E_RABReleaseResponseIEs__value_PR {
+ E_RABReleaseResponseIEs__value_PR_NOTHING, /* No components present */
+ E_RABReleaseResponseIEs__value_PR_MME_UE_S1AP_ID,
+ E_RABReleaseResponseIEs__value_PR_ENB_UE_S1AP_ID,
+ E_RABReleaseResponseIEs__value_PR_E_RABReleaseListBearerRelComp,
+ E_RABReleaseResponseIEs__value_PR_E_RABList,
+ E_RABReleaseResponseIEs__value_PR_CriticalityDiagnostics,
+ E_RABReleaseResponseIEs__value_PR_UserLocationInformation,
+ E_RABReleaseResponseIEs__value_PR_SecondaryRATDataUsageReportList
+} E_RABReleaseResponseIEs__value_PR;
+typedef enum E_RABReleaseIndicationIEs__value_PR {
+ E_RABReleaseIndicationIEs__value_PR_NOTHING, /* No components present */
+ E_RABReleaseIndicationIEs__value_PR_MME_UE_S1AP_ID,
+ E_RABReleaseIndicationIEs__value_PR_ENB_UE_S1AP_ID,
+ E_RABReleaseIndicationIEs__value_PR_E_RABList,
+ E_RABReleaseIndicationIEs__value_PR_UserLocationInformation,
+ E_RABReleaseIndicationIEs__value_PR_SecondaryRATDataUsageReportList
+} E_RABReleaseIndicationIEs__value_PR;
+typedef enum InitialContextSetupRequestIEs__value_PR {
+ InitialContextSetupRequestIEs__value_PR_NOTHING, /* No components present */
+ InitialContextSetupRequestIEs__value_PR_MME_UE_S1AP_ID,
+ InitialContextSetupRequestIEs__value_PR_ENB_UE_S1AP_ID,
+ InitialContextSetupRequestIEs__value_PR_UEAggregateMaximumBitrate,
+ InitialContextSetupRequestIEs__value_PR_E_RABToBeSetupListCtxtSUReq,
+ InitialContextSetupRequestIEs__value_PR_UESecurityCapabilities,
+ InitialContextSetupRequestIEs__value_PR_SecurityKey,
+ InitialContextSetupRequestIEs__value_PR_TraceActivation,
+ InitialContextSetupRequestIEs__value_PR_HandoverRestrictionList,
+ InitialContextSetupRequestIEs__value_PR_UERadioCapability,
+ InitialContextSetupRequestIEs__value_PR_SubscriberProfileIDforRFP,
+ InitialContextSetupRequestIEs__value_PR_CSFallbackIndicator,
+ InitialContextSetupRequestIEs__value_PR_SRVCCOperationPossible,
+ InitialContextSetupRequestIEs__value_PR_CSGMembershipStatus,
+ InitialContextSetupRequestIEs__value_PR_LAI,
+ InitialContextSetupRequestIEs__value_PR_GUMMEI,
+ InitialContextSetupRequestIEs__value_PR_MME_UE_S1AP_ID_1,
+ InitialContextSetupRequestIEs__value_PR_ManagementBasedMDTAllowed,
+ InitialContextSetupRequestIEs__value_PR_MDTPLMNList,
+ InitialContextSetupRequestIEs__value_PR_AdditionalCSFallbackIndicator,
+ InitialContextSetupRequestIEs__value_PR_Masked_IMEISV,
+ InitialContextSetupRequestIEs__value_PR_ExpectedUEBehaviour,
+ InitialContextSetupRequestIEs__value_PR_ProSeAuthorized,
+ InitialContextSetupRequestIEs__value_PR_UEUserPlaneCIoTSupportIndicator,
+ InitialContextSetupRequestIEs__value_PR_V2XServicesAuthorized,
+ InitialContextSetupRequestIEs__value_PR_UESidelinkAggregateMaximumBitrate,
+ InitialContextSetupRequestIEs__value_PR_EnhancedCoverageRestricted,
+ InitialContextSetupRequestIEs__value_PR_NRUESecurityCapabilities,
+ InitialContextSetupRequestIEs__value_PR_CE_ModeBRestricted,
+ InitialContextSetupRequestIEs__value_PR_AerialUEsubscriptionInformation,
+ InitialContextSetupRequestIEs__value_PR_PendingDataIndication,
+ InitialContextSetupRequestIEs__value_PR_Subscription_Based_UE_DifferentiationInfo
+} InitialContextSetupRequestIEs__value_PR;
+typedef enum InitialContextSetupResponseIEs__value_PR {
+ InitialContextSetupResponseIEs__value_PR_NOTHING, /* No components present */
+ InitialContextSetupResponseIEs__value_PR_MME_UE_S1AP_ID,
+ InitialContextSetupResponseIEs__value_PR_ENB_UE_S1AP_ID,
+ InitialContextSetupResponseIEs__value_PR_E_RABSetupListCtxtSURes,
+ InitialContextSetupResponseIEs__value_PR_E_RABList,
+ InitialContextSetupResponseIEs__value_PR_CriticalityDiagnostics
+} InitialContextSetupResponseIEs__value_PR;
+typedef enum InitialContextSetupFailureIEs__value_PR {
+ InitialContextSetupFailureIEs__value_PR_NOTHING, /* No components present */
+ InitialContextSetupFailureIEs__value_PR_MME_UE_S1AP_ID,
+ InitialContextSetupFailureIEs__value_PR_ENB_UE_S1AP_ID,
+ InitialContextSetupFailureIEs__value_PR_Cause,
+ InitialContextSetupFailureIEs__value_PR_CriticalityDiagnostics
+} InitialContextSetupFailureIEs__value_PR;
+typedef enum PagingIEs__value_PR {
+ PagingIEs__value_PR_NOTHING, /* No components present */
+ PagingIEs__value_PR_UEIdentityIndexValue,
+ PagingIEs__value_PR_UEPagingID,
+ PagingIEs__value_PR_PagingDRX,
+ PagingIEs__value_PR_CNDomain,
+ PagingIEs__value_PR_TAIList,
+ PagingIEs__value_PR_CSG_IdList,
+ PagingIEs__value_PR_PagingPriority,
+ PagingIEs__value_PR_UERadioCapabilityForPaging,
+ PagingIEs__value_PR_AssistanceDataForPaging,
+ PagingIEs__value_PR_Paging_eDRXInformation,
+ PagingIEs__value_PR_Extended_UEIdentityIndexValue,
+ PagingIEs__value_PR_NB_IoT_Paging_eDRXInformation,
+ PagingIEs__value_PR_NB_IoT_UEIdentityIndexValue,
+ PagingIEs__value_PR_EnhancedCoverageRestricted,
+ PagingIEs__value_PR_CE_ModeBRestricted
+} PagingIEs__value_PR;
+typedef enum UEContextReleaseRequest_IEs__value_PR {
+ UEContextReleaseRequest_IEs__value_PR_NOTHING, /* No components present */
+ UEContextReleaseRequest_IEs__value_PR_MME_UE_S1AP_ID,
+ UEContextReleaseRequest_IEs__value_PR_ENB_UE_S1AP_ID,
+ UEContextReleaseRequest_IEs__value_PR_Cause,
+ UEContextReleaseRequest_IEs__value_PR_GWContextReleaseIndication,
+ UEContextReleaseRequest_IEs__value_PR_SecondaryRATDataUsageReportList
+} UEContextReleaseRequest_IEs__value_PR;
+typedef enum UEContextReleaseCommand_IEs__value_PR {
+ UEContextReleaseCommand_IEs__value_PR_NOTHING, /* No components present */
+ UEContextReleaseCommand_IEs__value_PR_UE_S1AP_IDs,
+ UEContextReleaseCommand_IEs__value_PR_Cause
+} UEContextReleaseCommand_IEs__value_PR;
+typedef enum UEContextReleaseComplete_IEs__value_PR {
+ UEContextReleaseComplete_IEs__value_PR_NOTHING, /* No components present */
+ UEContextReleaseComplete_IEs__value_PR_MME_UE_S1AP_ID,
+ UEContextReleaseComplete_IEs__value_PR_ENB_UE_S1AP_ID,
+ UEContextReleaseComplete_IEs__value_PR_CriticalityDiagnostics,
+ UEContextReleaseComplete_IEs__value_PR_UserLocationInformation,
+ UEContextReleaseComplete_IEs__value_PR_InformationOnRecommendedCellsAndENBsForPaging,
+ UEContextReleaseComplete_IEs__value_PR_CellIdentifierAndCELevelForCECapableUEs,
+ UEContextReleaseComplete_IEs__value_PR_SecondaryRATDataUsageReportList,
+ UEContextReleaseComplete_IEs__value_PR_TimeSinceSecondaryNodeRelease
+} UEContextReleaseComplete_IEs__value_PR;
+typedef enum UEContextModificationRequestIEs__value_PR {
+ UEContextModificationRequestIEs__value_PR_NOTHING, /* No components present */
+ UEContextModificationRequestIEs__value_PR_MME_UE_S1AP_ID,
+ UEContextModificationRequestIEs__value_PR_ENB_UE_S1AP_ID,
+ UEContextModificationRequestIEs__value_PR_SecurityKey,
+ UEContextModificationRequestIEs__value_PR_SubscriberProfileIDforRFP,
+ UEContextModificationRequestIEs__value_PR_UEAggregateMaximumBitrate,
+ UEContextModificationRequestIEs__value_PR_CSFallbackIndicator,
+ UEContextModificationRequestIEs__value_PR_UESecurityCapabilities,
+ UEContextModificationRequestIEs__value_PR_CSGMembershipStatus,
+ UEContextModificationRequestIEs__value_PR_LAI,
+ UEContextModificationRequestIEs__value_PR_AdditionalCSFallbackIndicator,
+ UEContextModificationRequestIEs__value_PR_ProSeAuthorized,
+ UEContextModificationRequestIEs__value_PR_SRVCCOperationPossible,
+ UEContextModificationRequestIEs__value_PR_SRVCCOperationNotPossible,
+ UEContextModificationRequestIEs__value_PR_V2XServicesAuthorized,
+ UEContextModificationRequestIEs__value_PR_UESidelinkAggregateMaximumBitrate,
+ UEContextModificationRequestIEs__value_PR_NRUESecurityCapabilities,
+ UEContextModificationRequestIEs__value_PR_AerialUEsubscriptionInformation
+} UEContextModificationRequestIEs__value_PR;
+typedef enum UEContextModificationResponseIEs__value_PR {
+ UEContextModificationResponseIEs__value_PR_NOTHING, /* No components present */
+ UEContextModificationResponseIEs__value_PR_MME_UE_S1AP_ID,
+ UEContextModificationResponseIEs__value_PR_ENB_UE_S1AP_ID,
+ UEContextModificationResponseIEs__value_PR_CriticalityDiagnostics
+} UEContextModificationResponseIEs__value_PR;
+typedef enum UEContextModificationFailureIEs__value_PR {
+ UEContextModificationFailureIEs__value_PR_NOTHING, /* No components present */
+ UEContextModificationFailureIEs__value_PR_MME_UE_S1AP_ID,
+ UEContextModificationFailureIEs__value_PR_ENB_UE_S1AP_ID,
+ UEContextModificationFailureIEs__value_PR_Cause,
+ UEContextModificationFailureIEs__value_PR_CriticalityDiagnostics
+} UEContextModificationFailureIEs__value_PR;
+typedef enum UERadioCapabilityMatchRequestIEs__value_PR {
+ UERadioCapabilityMatchRequestIEs__value_PR_NOTHING, /* No components present */
+ UERadioCapabilityMatchRequestIEs__value_PR_MME_UE_S1AP_ID,
+ UERadioCapabilityMatchRequestIEs__value_PR_ENB_UE_S1AP_ID,
+ UERadioCapabilityMatchRequestIEs__value_PR_UERadioCapability
+} UERadioCapabilityMatchRequestIEs__value_PR;
+typedef enum UERadioCapabilityMatchResponseIEs__value_PR {
+ UERadioCapabilityMatchResponseIEs__value_PR_NOTHING, /* No components present */
+ UERadioCapabilityMatchResponseIEs__value_PR_MME_UE_S1AP_ID,
+ UERadioCapabilityMatchResponseIEs__value_PR_ENB_UE_S1AP_ID,
+ UERadioCapabilityMatchResponseIEs__value_PR_VoiceSupportMatchIndicator,
+ UERadioCapabilityMatchResponseIEs__value_PR_CriticalityDiagnostics
+} UERadioCapabilityMatchResponseIEs__value_PR;
+typedef enum DownlinkNASTransport_IEs__value_PR {
+ DownlinkNASTransport_IEs__value_PR_NOTHING, /* No components present */
+ DownlinkNASTransport_IEs__value_PR_MME_UE_S1AP_ID,
+ DownlinkNASTransport_IEs__value_PR_ENB_UE_S1AP_ID,
+ DownlinkNASTransport_IEs__value_PR_NAS_PDU,
+ DownlinkNASTransport_IEs__value_PR_HandoverRestrictionList,
+ DownlinkNASTransport_IEs__value_PR_SubscriberProfileIDforRFP,
+ DownlinkNASTransport_IEs__value_PR_SRVCCOperationPossible,
+ DownlinkNASTransport_IEs__value_PR_UERadioCapability,
+ DownlinkNASTransport_IEs__value_PR_DLNASPDUDeliveryAckRequest,
+ DownlinkNASTransport_IEs__value_PR_EnhancedCoverageRestricted,
+ DownlinkNASTransport_IEs__value_PR_NRUESecurityCapabilities,
+ DownlinkNASTransport_IEs__value_PR_CE_ModeBRestricted,
+ DownlinkNASTransport_IEs__value_PR_UECapabilityInfoRequest,
+ DownlinkNASTransport_IEs__value_PR_EndIndication,
+ DownlinkNASTransport_IEs__value_PR_PendingDataIndication,
+ DownlinkNASTransport_IEs__value_PR_Subscription_Based_UE_DifferentiationInfo
+} DownlinkNASTransport_IEs__value_PR;
+typedef enum InitialUEMessage_IEs__value_PR {
+ InitialUEMessage_IEs__value_PR_NOTHING, /* No components present */
+ InitialUEMessage_IEs__value_PR_ENB_UE_S1AP_ID,
+ InitialUEMessage_IEs__value_PR_NAS_PDU,
+ InitialUEMessage_IEs__value_PR_TAI,
+ InitialUEMessage_IEs__value_PR_EUTRAN_CGI,
+ InitialUEMessage_IEs__value_PR_RRC_Establishment_Cause,
+ InitialUEMessage_IEs__value_PR_S_TMSI,
+ InitialUEMessage_IEs__value_PR_CSG_Id,
+ InitialUEMessage_IEs__value_PR_GUMMEI,
+ InitialUEMessage_IEs__value_PR_CellAccessMode,
+ InitialUEMessage_IEs__value_PR_TransportLayerAddress,
+ InitialUEMessage_IEs__value_PR_RelayNode_Indicator,
+ InitialUEMessage_IEs__value_PR_GUMMEIType,
+ InitialUEMessage_IEs__value_PR_TunnelInformation,
+ InitialUEMessage_IEs__value_PR_TransportLayerAddress_1,
+ InitialUEMessage_IEs__value_PR_LHN_ID,
+ InitialUEMessage_IEs__value_PR_MME_Group_ID,
+ InitialUEMessage_IEs__value_PR_UE_Usage_Type,
+ InitialUEMessage_IEs__value_PR_CE_mode_B_SupportIndicator,
+ InitialUEMessage_IEs__value_PR_DCN_ID,
+ InitialUEMessage_IEs__value_PR_Coverage_Level,
+ InitialUEMessage_IEs__value_PR_UE_Application_Layer_Measurement_Capability,
+ InitialUEMessage_IEs__value_PR_EDT_Session
+} InitialUEMessage_IEs__value_PR;
+typedef enum UplinkNASTransport_IEs__value_PR {
+ UplinkNASTransport_IEs__value_PR_NOTHING, /* No components present */
+ UplinkNASTransport_IEs__value_PR_MME_UE_S1AP_ID,
+ UplinkNASTransport_IEs__value_PR_ENB_UE_S1AP_ID,
+ UplinkNASTransport_IEs__value_PR_NAS_PDU,
+ UplinkNASTransport_IEs__value_PR_EUTRAN_CGI,
+ UplinkNASTransport_IEs__value_PR_TAI,
+ UplinkNASTransport_IEs__value_PR_TransportLayerAddress,
+ UplinkNASTransport_IEs__value_PR_TransportLayerAddress_1,
+ UplinkNASTransport_IEs__value_PR_LHN_ID,
+ UplinkNASTransport_IEs__value_PR_PSCellInformation
+} UplinkNASTransport_IEs__value_PR;
+typedef enum NASNonDeliveryIndication_IEs__value_PR {
+ NASNonDeliveryIndication_IEs__value_PR_NOTHING, /* No components present */
+ NASNonDeliveryIndication_IEs__value_PR_MME_UE_S1AP_ID,
+ NASNonDeliveryIndication_IEs__value_PR_ENB_UE_S1AP_ID,
+ NASNonDeliveryIndication_IEs__value_PR_NAS_PDU,
+ NASNonDeliveryIndication_IEs__value_PR_Cause
+} NASNonDeliveryIndication_IEs__value_PR;
+typedef enum RerouteNASRequest_IEs__value_PR {
+ RerouteNASRequest_IEs__value_PR_NOTHING, /* No components present */
+ RerouteNASRequest_IEs__value_PR_ENB_UE_S1AP_ID,
+ RerouteNASRequest_IEs__value_PR_MME_UE_S1AP_ID,
+ RerouteNASRequest_IEs__value_PR_OCTET_STRING,
+ RerouteNASRequest_IEs__value_PR_MME_Group_ID,
+ RerouteNASRequest_IEs__value_PR_Additional_GUTI,
+ RerouteNASRequest_IEs__value_PR_UE_Usage_Type
+} RerouteNASRequest_IEs__value_PR;
+typedef enum NASDeliveryIndicationIEs__value_PR {
+ NASDeliveryIndicationIEs__value_PR_NOTHING, /* No components present */
+ NASDeliveryIndicationIEs__value_PR_MME_UE_S1AP_ID,
+ NASDeliveryIndicationIEs__value_PR_ENB_UE_S1AP_ID
+} NASDeliveryIndicationIEs__value_PR;
+typedef enum ResetIEs__value_PR {
+ ResetIEs__value_PR_NOTHING, /* No components present */
+ 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_UE_associatedLogicalS1_ConnectionListResAck,
+ ResetAcknowledgeIEs__value_PR_CriticalityDiagnostics
+} ResetAcknowledgeIEs__value_PR;
+typedef enum ErrorIndicationIEs__value_PR {
+ ErrorIndicationIEs__value_PR_NOTHING, /* No components present */
+ ErrorIndicationIEs__value_PR_MME_UE_S1AP_ID,
+ ErrorIndicationIEs__value_PR_ENB_UE_S1AP_ID,
+ ErrorIndicationIEs__value_PR_Cause,
+ ErrorIndicationIEs__value_PR_CriticalityDiagnostics
+} ErrorIndicationIEs__value_PR;
+typedef enum S1SetupRequestIEs__value_PR {
+ S1SetupRequestIEs__value_PR_NOTHING, /* No components present */
+ S1SetupRequestIEs__value_PR_Global_ENB_ID,
+ S1SetupRequestIEs__value_PR_ENBname,
+ S1SetupRequestIEs__value_PR_SupportedTAs,
+ S1SetupRequestIEs__value_PR_PagingDRX,
+ S1SetupRequestIEs__value_PR_CSG_IdList,
+ S1SetupRequestIEs__value_PR_UE_RetentionInformation,
+ S1SetupRequestIEs__value_PR_NB_IoT_DefaultPagingDRX,
+ S1SetupRequestIEs__value_PR_ConnectedengNBList
+} S1SetupRequestIEs__value_PR;
+typedef enum S1SetupResponseIEs__value_PR {
+ S1SetupResponseIEs__value_PR_NOTHING, /* No components present */
+ S1SetupResponseIEs__value_PR_MMEname,
+ S1SetupResponseIEs__value_PR_ServedGUMMEIs,
+ S1SetupResponseIEs__value_PR_RelativeMMECapacity,
+ S1SetupResponseIEs__value_PR_MMERelaySupportIndicator,
+ S1SetupResponseIEs__value_PR_CriticalityDiagnostics,
+ S1SetupResponseIEs__value_PR_UE_RetentionInformation,
+ S1SetupResponseIEs__value_PR_ServedDCNs
+} S1SetupResponseIEs__value_PR;
+typedef enum S1SetupFailureIEs__value_PR {
+ S1SetupFailureIEs__value_PR_NOTHING, /* No components present */
+ S1SetupFailureIEs__value_PR_Cause,
+ S1SetupFailureIEs__value_PR_TimeToWait,
+ S1SetupFailureIEs__value_PR_CriticalityDiagnostics
+} S1SetupFailureIEs__value_PR;
+typedef enum ENBConfigurationUpdateIEs__value_PR {
+ ENBConfigurationUpdateIEs__value_PR_NOTHING, /* No components present */
+ ENBConfigurationUpdateIEs__value_PR_ENBname,
+ ENBConfigurationUpdateIEs__value_PR_SupportedTAs,
+ ENBConfigurationUpdateIEs__value_PR_CSG_IdList,
+ ENBConfigurationUpdateIEs__value_PR_PagingDRX,
+ ENBConfigurationUpdateIEs__value_PR_NB_IoT_DefaultPagingDRX,
+ ENBConfigurationUpdateIEs__value_PR_ConnectedengNBList,
+ ENBConfigurationUpdateIEs__value_PR_ConnectedengNBList_1
+} ENBConfigurationUpdateIEs__value_PR;
+typedef enum ENBConfigurationUpdateAcknowledgeIEs__value_PR {
+ ENBConfigurationUpdateAcknowledgeIEs__value_PR_NOTHING, /* No components present */
+ ENBConfigurationUpdateAcknowledgeIEs__value_PR_CriticalityDiagnostics
+} ENBConfigurationUpdateAcknowledgeIEs__value_PR;
+typedef enum ENBConfigurationUpdateFailureIEs__value_PR {
+ ENBConfigurationUpdateFailureIEs__value_PR_NOTHING, /* No components present */
+ ENBConfigurationUpdateFailureIEs__value_PR_Cause,
+ ENBConfigurationUpdateFailureIEs__value_PR_TimeToWait,
+ ENBConfigurationUpdateFailureIEs__value_PR_CriticalityDiagnostics
+} ENBConfigurationUpdateFailureIEs__value_PR;
+typedef enum MMEConfigurationUpdateIEs__value_PR {
+ MMEConfigurationUpdateIEs__value_PR_NOTHING, /* No components present */
+ MMEConfigurationUpdateIEs__value_PR_MMEname,
+ MMEConfigurationUpdateIEs__value_PR_ServedGUMMEIs,
+ MMEConfigurationUpdateIEs__value_PR_RelativeMMECapacity,
+ MMEConfigurationUpdateIEs__value_PR_ServedDCNs
+} MMEConfigurationUpdateIEs__value_PR;
+typedef enum MMEConfigurationUpdateAcknowledgeIEs__value_PR {
+ MMEConfigurationUpdateAcknowledgeIEs__value_PR_NOTHING, /* No components present */
+ MMEConfigurationUpdateAcknowledgeIEs__value_PR_CriticalityDiagnostics
+} MMEConfigurationUpdateAcknowledgeIEs__value_PR;
+typedef enum MMEConfigurationUpdateFailureIEs__value_PR {
+ MMEConfigurationUpdateFailureIEs__value_PR_NOTHING, /* No components present */
+ MMEConfigurationUpdateFailureIEs__value_PR_Cause,
+ MMEConfigurationUpdateFailureIEs__value_PR_TimeToWait,
+ MMEConfigurationUpdateFailureIEs__value_PR_CriticalityDiagnostics
+} MMEConfigurationUpdateFailureIEs__value_PR;
+typedef enum DownlinkS1cdma2000tunnellingIEs__value_PR {
+ DownlinkS1cdma2000tunnellingIEs__value_PR_NOTHING, /* No components present */
+ DownlinkS1cdma2000tunnellingIEs__value_PR_MME_UE_S1AP_ID,
+ DownlinkS1cdma2000tunnellingIEs__value_PR_ENB_UE_S1AP_ID,
+ DownlinkS1cdma2000tunnellingIEs__value_PR_E_RABSubjecttoDataForwardingList,
+ DownlinkS1cdma2000tunnellingIEs__value_PR_Cdma2000HOStatus,
+ DownlinkS1cdma2000tunnellingIEs__value_PR_Cdma2000RATType,
+ DownlinkS1cdma2000tunnellingIEs__value_PR_Cdma2000PDU
+} DownlinkS1cdma2000tunnellingIEs__value_PR;
+typedef enum UplinkS1cdma2000tunnellingIEs__value_PR {
+ UplinkS1cdma2000tunnellingIEs__value_PR_NOTHING, /* No components present */
+ UplinkS1cdma2000tunnellingIEs__value_PR_MME_UE_S1AP_ID,
+ UplinkS1cdma2000tunnellingIEs__value_PR_ENB_UE_S1AP_ID,
+ UplinkS1cdma2000tunnellingIEs__value_PR_Cdma2000RATType,
+ UplinkS1cdma2000tunnellingIEs__value_PR_Cdma2000SectorID,
+ UplinkS1cdma2000tunnellingIEs__value_PR_Cdma2000HORequiredIndication,
+ UplinkS1cdma2000tunnellingIEs__value_PR_Cdma2000OneXSRVCCInfo,
+ UplinkS1cdma2000tunnellingIEs__value_PR_Cdma2000OneXRAND,
+ UplinkS1cdma2000tunnellingIEs__value_PR_Cdma2000PDU,
+ UplinkS1cdma2000tunnellingIEs__value_PR_EUTRANRoundTripDelayEstimationInfo
+} UplinkS1cdma2000tunnellingIEs__value_PR;
+typedef enum UECapabilityInfoIndicationIEs__value_PR {
+ UECapabilityInfoIndicationIEs__value_PR_NOTHING, /* No components present */
+ UECapabilityInfoIndicationIEs__value_PR_MME_UE_S1AP_ID,
+ UECapabilityInfoIndicationIEs__value_PR_ENB_UE_S1AP_ID,
+ UECapabilityInfoIndicationIEs__value_PR_UERadioCapability,
+ UECapabilityInfoIndicationIEs__value_PR_UERadioCapabilityForPaging,
+ UECapabilityInfoIndicationIEs__value_PR_UE_Application_Layer_Measurement_Capability,
+ UECapabilityInfoIndicationIEs__value_PR_LTE_M_Indication
+} UECapabilityInfoIndicationIEs__value_PR;
+typedef enum ENBStatusTransferIEs__value_PR {
+ ENBStatusTransferIEs__value_PR_NOTHING, /* No components present */
+ ENBStatusTransferIEs__value_PR_MME_UE_S1AP_ID,
+ ENBStatusTransferIEs__value_PR_ENB_UE_S1AP_ID,
+ ENBStatusTransferIEs__value_PR_ENB_StatusTransfer_TransparentContainer
+} ENBStatusTransferIEs__value_PR;
+typedef enum MMEStatusTransferIEs__value_PR {
+ MMEStatusTransferIEs__value_PR_NOTHING, /* No components present */
+ MMEStatusTransferIEs__value_PR_MME_UE_S1AP_ID,
+ MMEStatusTransferIEs__value_PR_ENB_UE_S1AP_ID,
+ MMEStatusTransferIEs__value_PR_ENB_StatusTransfer_TransparentContainer
+} MMEStatusTransferIEs__value_PR;
+typedef enum TraceStartIEs__value_PR {
+ TraceStartIEs__value_PR_NOTHING, /* No components present */
+ TraceStartIEs__value_PR_MME_UE_S1AP_ID,
+ TraceStartIEs__value_PR_ENB_UE_S1AP_ID,
+ TraceStartIEs__value_PR_TraceActivation
+} TraceStartIEs__value_PR;
+typedef enum TraceFailureIndicationIEs__value_PR {
+ TraceFailureIndicationIEs__value_PR_NOTHING, /* No components present */
+ TraceFailureIndicationIEs__value_PR_MME_UE_S1AP_ID,
+ TraceFailureIndicationIEs__value_PR_ENB_UE_S1AP_ID,
+ TraceFailureIndicationIEs__value_PR_E_UTRAN_Trace_ID,
+ TraceFailureIndicationIEs__value_PR_Cause
+} TraceFailureIndicationIEs__value_PR;
+typedef enum DeactivateTraceIEs__value_PR {
+ DeactivateTraceIEs__value_PR_NOTHING, /* No components present */
+ DeactivateTraceIEs__value_PR_MME_UE_S1AP_ID,
+ DeactivateTraceIEs__value_PR_ENB_UE_S1AP_ID,
+ DeactivateTraceIEs__value_PR_E_UTRAN_Trace_ID
+} DeactivateTraceIEs__value_PR;
+typedef enum CellTrafficTraceIEs__value_PR {
+ CellTrafficTraceIEs__value_PR_NOTHING, /* No components present */
+ CellTrafficTraceIEs__value_PR_MME_UE_S1AP_ID,
+ CellTrafficTraceIEs__value_PR_ENB_UE_S1AP_ID,
+ CellTrafficTraceIEs__value_PR_E_UTRAN_Trace_ID,
+ CellTrafficTraceIEs__value_PR_EUTRAN_CGI,
+ CellTrafficTraceIEs__value_PR_TransportLayerAddress,
+ CellTrafficTraceIEs__value_PR_PrivacyIndicator
+} CellTrafficTraceIEs__value_PR;
+typedef enum LocationReportingControlIEs__value_PR {
+ LocationReportingControlIEs__value_PR_NOTHING, /* No components present */
+ LocationReportingControlIEs__value_PR_MME_UE_S1AP_ID,
+ LocationReportingControlIEs__value_PR_ENB_UE_S1AP_ID,
+ LocationReportingControlIEs__value_PR_RequestType
+} LocationReportingControlIEs__value_PR;
+typedef enum LocationReportingFailureIndicationIEs__value_PR {
+ LocationReportingFailureIndicationIEs__value_PR_NOTHING, /* No components present */
+ LocationReportingFailureIndicationIEs__value_PR_MME_UE_S1AP_ID,
+ LocationReportingFailureIndicationIEs__value_PR_ENB_UE_S1AP_ID,
+ LocationReportingFailureIndicationIEs__value_PR_Cause
+} LocationReportingFailureIndicationIEs__value_PR;
+typedef enum LocationReportIEs__value_PR {
+ LocationReportIEs__value_PR_NOTHING, /* No components present */
+ LocationReportIEs__value_PR_MME_UE_S1AP_ID,
+ LocationReportIEs__value_PR_ENB_UE_S1AP_ID,
+ LocationReportIEs__value_PR_EUTRAN_CGI,
+ LocationReportIEs__value_PR_TAI,
+ LocationReportIEs__value_PR_RequestType,
+ LocationReportIEs__value_PR_PSCellInformation
+} LocationReportIEs__value_PR;
+typedef enum OverloadStartIEs__value_PR {
+ OverloadStartIEs__value_PR_NOTHING, /* No components present */
+ OverloadStartIEs__value_PR_OverloadResponse,
+ OverloadStartIEs__value_PR_GUMMEIList,
+ OverloadStartIEs__value_PR_TrafficLoadReductionIndication
+} OverloadStartIEs__value_PR;
+typedef enum OverloadStopIEs__value_PR {
+ OverloadStopIEs__value_PR_NOTHING, /* No components present */
+ OverloadStopIEs__value_PR_GUMMEIList
+} OverloadStopIEs__value_PR;
+typedef enum WriteReplaceWarningRequestIEs__value_PR {
+ WriteReplaceWarningRequestIEs__value_PR_NOTHING, /* No components present */
+ WriteReplaceWarningRequestIEs__value_PR_MessageIdentifier,
+ WriteReplaceWarningRequestIEs__value_PR_SerialNumber,
+ WriteReplaceWarningRequestIEs__value_PR_WarningAreaList,
+ WriteReplaceWarningRequestIEs__value_PR_RepetitionPeriod,
+ WriteReplaceWarningRequestIEs__value_PR_ExtendedRepetitionPeriod,
+ WriteReplaceWarningRequestIEs__value_PR_NumberofBroadcastRequest,
+ WriteReplaceWarningRequestIEs__value_PR_WarningType,
+ WriteReplaceWarningRequestIEs__value_PR_WarningSecurityInfo,
+ WriteReplaceWarningRequestIEs__value_PR_DataCodingScheme,
+ WriteReplaceWarningRequestIEs__value_PR_WarningMessageContents,
+ WriteReplaceWarningRequestIEs__value_PR_ConcurrentWarningMessageIndicator,
+ WriteReplaceWarningRequestIEs__value_PR_WarningAreaCoordinates
+} WriteReplaceWarningRequestIEs__value_PR;
+typedef enum WriteReplaceWarningResponseIEs__value_PR {
+ WriteReplaceWarningResponseIEs__value_PR_NOTHING, /* No components present */
+ WriteReplaceWarningResponseIEs__value_PR_MessageIdentifier,
+ WriteReplaceWarningResponseIEs__value_PR_SerialNumber,
+ WriteReplaceWarningResponseIEs__value_PR_BroadcastCompletedAreaList,
+ WriteReplaceWarningResponseIEs__value_PR_CriticalityDiagnostics
+} WriteReplaceWarningResponseIEs__value_PR;
+typedef enum ENBDirectInformationTransferIEs__value_PR {
+ ENBDirectInformationTransferIEs__value_PR_NOTHING, /* No components present */
+ ENBDirectInformationTransferIEs__value_PR_Inter_SystemInformationTransferType
+} ENBDirectInformationTransferIEs__value_PR;
+typedef enum MMEDirectInformationTransferIEs__value_PR {
+ MMEDirectInformationTransferIEs__value_PR_NOTHING, /* No components present */
+ MMEDirectInformationTransferIEs__value_PR_Inter_SystemInformationTransferType
+} MMEDirectInformationTransferIEs__value_PR;
+typedef enum ENBConfigurationTransferIEs__value_PR {
+ ENBConfigurationTransferIEs__value_PR_NOTHING, /* No components present */
+ ENBConfigurationTransferIEs__value_PR_SONConfigurationTransfer,
+ ENBConfigurationTransferIEs__value_PR_EN_DCSONConfigurationTransfer
+} ENBConfigurationTransferIEs__value_PR;
+typedef enum MMEConfigurationTransferIEs__value_PR {
+ MMEConfigurationTransferIEs__value_PR_NOTHING, /* No components present */
+ MMEConfigurationTransferIEs__value_PR_SONConfigurationTransfer,
+ MMEConfigurationTransferIEs__value_PR_EN_DCSONConfigurationTransfer
+} MMEConfigurationTransferIEs__value_PR;
+typedef enum KillRequestIEs__value_PR {
+ KillRequestIEs__value_PR_NOTHING, /* No components present */
+ KillRequestIEs__value_PR_MessageIdentifier,
+ KillRequestIEs__value_PR_SerialNumber,
+ KillRequestIEs__value_PR_WarningAreaList,
+ KillRequestIEs__value_PR_KillAllWarningMessages
+} KillRequestIEs__value_PR;
+typedef enum KillResponseIEs__value_PR {
+ KillResponseIEs__value_PR_NOTHING, /* No components present */
+ KillResponseIEs__value_PR_MessageIdentifier,
+ KillResponseIEs__value_PR_SerialNumber,
+ KillResponseIEs__value_PR_BroadcastCancelledAreaList,
+ KillResponseIEs__value_PR_CriticalityDiagnostics
+} KillResponseIEs__value_PR;
+typedef enum PWSRestartIndicationIEs__value_PR {
+ PWSRestartIndicationIEs__value_PR_NOTHING, /* No components present */
+ PWSRestartIndicationIEs__value_PR_ECGIListForRestart,
+ PWSRestartIndicationIEs__value_PR_Global_ENB_ID,
+ PWSRestartIndicationIEs__value_PR_TAIListForRestart,
+ PWSRestartIndicationIEs__value_PR_EmergencyAreaIDListForRestart
+} PWSRestartIndicationIEs__value_PR;
+typedef enum PWSFailureIndicationIEs__value_PR {
+ PWSFailureIndicationIEs__value_PR_NOTHING, /* No components present */
+ PWSFailureIndicationIEs__value_PR_PWSfailedECGIList,
+ PWSFailureIndicationIEs__value_PR_Global_ENB_ID
+} PWSFailureIndicationIEs__value_PR;
+typedef enum DownlinkUEAssociatedLPPaTransport_IEs__value_PR {
+ DownlinkUEAssociatedLPPaTransport_IEs__value_PR_NOTHING, /* No components present */
+ DownlinkUEAssociatedLPPaTransport_IEs__value_PR_MME_UE_S1AP_ID,
+ DownlinkUEAssociatedLPPaTransport_IEs__value_PR_ENB_UE_S1AP_ID,
+ DownlinkUEAssociatedLPPaTransport_IEs__value_PR_Routing_ID,
+ DownlinkUEAssociatedLPPaTransport_IEs__value_PR_LPPa_PDU
+} DownlinkUEAssociatedLPPaTransport_IEs__value_PR;
+typedef enum UplinkUEAssociatedLPPaTransport_IEs__value_PR {
+ UplinkUEAssociatedLPPaTransport_IEs__value_PR_NOTHING, /* No components present */
+ UplinkUEAssociatedLPPaTransport_IEs__value_PR_MME_UE_S1AP_ID,
+ UplinkUEAssociatedLPPaTransport_IEs__value_PR_ENB_UE_S1AP_ID,
+ UplinkUEAssociatedLPPaTransport_IEs__value_PR_Routing_ID,
+ UplinkUEAssociatedLPPaTransport_IEs__value_PR_LPPa_PDU
+} UplinkUEAssociatedLPPaTransport_IEs__value_PR;
+typedef enum DownlinkNonUEAssociatedLPPaTransport_IEs__value_PR {
+ DownlinkNonUEAssociatedLPPaTransport_IEs__value_PR_NOTHING, /* No components present */
+ DownlinkNonUEAssociatedLPPaTransport_IEs__value_PR_Routing_ID,
+ DownlinkNonUEAssociatedLPPaTransport_IEs__value_PR_LPPa_PDU
+} DownlinkNonUEAssociatedLPPaTransport_IEs__value_PR;
+typedef enum UplinkNonUEAssociatedLPPaTransport_IEs__value_PR {
+ UplinkNonUEAssociatedLPPaTransport_IEs__value_PR_NOTHING, /* No components present */
+ UplinkNonUEAssociatedLPPaTransport_IEs__value_PR_Routing_ID,
+ UplinkNonUEAssociatedLPPaTransport_IEs__value_PR_LPPa_PDU
+} UplinkNonUEAssociatedLPPaTransport_IEs__value_PR;
+typedef enum E_RABModificationIndicationIEs__value_PR {
+ E_RABModificationIndicationIEs__value_PR_NOTHING, /* No components present */
+ E_RABModificationIndicationIEs__value_PR_MME_UE_S1AP_ID,
+ E_RABModificationIndicationIEs__value_PR_ENB_UE_S1AP_ID,
+ E_RABModificationIndicationIEs__value_PR_E_RABToBeModifiedListBearerModInd,
+ E_RABModificationIndicationIEs__value_PR_E_RABNotToBeModifiedListBearerModInd,
+ E_RABModificationIndicationIEs__value_PR_CSGMembershipInfo,
+ E_RABModificationIndicationIEs__value_PR_TunnelInformation,
+ E_RABModificationIndicationIEs__value_PR_SecondaryRATDataUsageReportList
+} E_RABModificationIndicationIEs__value_PR;
+typedef enum E_RABModificationConfirmIEs__value_PR {
+ E_RABModificationConfirmIEs__value_PR_NOTHING, /* No components present */
+ E_RABModificationConfirmIEs__value_PR_MME_UE_S1AP_ID,
+ E_RABModificationConfirmIEs__value_PR_ENB_UE_S1AP_ID,
+ E_RABModificationConfirmIEs__value_PR_E_RABModifyListBearerModConf,
+ E_RABModificationConfirmIEs__value_PR_E_RABList,
+ E_RABModificationConfirmIEs__value_PR_E_RABList_1,
+ E_RABModificationConfirmIEs__value_PR_CriticalityDiagnostics,
+ E_RABModificationConfirmIEs__value_PR_CSGMembershipStatus
+} E_RABModificationConfirmIEs__value_PR;
+typedef enum UEContextModificationIndicationIEs__value_PR {
+ UEContextModificationIndicationIEs__value_PR_NOTHING, /* No components present */
+ UEContextModificationIndicationIEs__value_PR_MME_UE_S1AP_ID,
+ UEContextModificationIndicationIEs__value_PR_ENB_UE_S1AP_ID,
+ UEContextModificationIndicationIEs__value_PR_CSGMembershipInfo
+} UEContextModificationIndicationIEs__value_PR;
+typedef enum UEContextModificationConfirmIEs__value_PR {
+ UEContextModificationConfirmIEs__value_PR_NOTHING, /* No components present */
+ UEContextModificationConfirmIEs__value_PR_MME_UE_S1AP_ID,
+ UEContextModificationConfirmIEs__value_PR_ENB_UE_S1AP_ID,
+ UEContextModificationConfirmIEs__value_PR_CSGMembershipStatus,
+ UEContextModificationConfirmIEs__value_PR_CriticalityDiagnostics
+} UEContextModificationConfirmIEs__value_PR;
+typedef enum UEContextSuspendRequestIEs__value_PR {
+ UEContextSuspendRequestIEs__value_PR_NOTHING, /* No components present */
+ UEContextSuspendRequestIEs__value_PR_MME_UE_S1AP_ID,
+ UEContextSuspendRequestIEs__value_PR_ENB_UE_S1AP_ID,
+ UEContextSuspendRequestIEs__value_PR_InformationOnRecommendedCellsAndENBsForPaging,
+ UEContextSuspendRequestIEs__value_PR_CellIdentifierAndCELevelForCECapableUEs,
+ UEContextSuspendRequestIEs__value_PR_SecondaryRATDataUsageReportList,
+ UEContextSuspendRequestIEs__value_PR_UserLocationInformation,
+ UEContextSuspendRequestIEs__value_PR_TimeSinceSecondaryNodeRelease
+} UEContextSuspendRequestIEs__value_PR;
+typedef enum UEContextSuspendResponseIEs__value_PR {
+ UEContextSuspendResponseIEs__value_PR_NOTHING, /* No components present */
+ UEContextSuspendResponseIEs__value_PR_MME_UE_S1AP_ID,
+ UEContextSuspendResponseIEs__value_PR_ENB_UE_S1AP_ID,
+ UEContextSuspendResponseIEs__value_PR_CriticalityDiagnostics,
+ UEContextSuspendResponseIEs__value_PR_SecurityContext
+} UEContextSuspendResponseIEs__value_PR;
+typedef enum UEContextResumeRequestIEs__value_PR {
+ UEContextResumeRequestIEs__value_PR_NOTHING, /* No components present */
+ UEContextResumeRequestIEs__value_PR_MME_UE_S1AP_ID,
+ UEContextResumeRequestIEs__value_PR_ENB_UE_S1AP_ID,
+ UEContextResumeRequestIEs__value_PR_E_RABFailedToResumeListResumeReq,
+ UEContextResumeRequestIEs__value_PR_RRC_Establishment_Cause
+} UEContextResumeRequestIEs__value_PR;
+typedef enum UEContextResumeResponseIEs__value_PR {
+ UEContextResumeResponseIEs__value_PR_NOTHING, /* No components present */
+ UEContextResumeResponseIEs__value_PR_MME_UE_S1AP_ID,
+ UEContextResumeResponseIEs__value_PR_ENB_UE_S1AP_ID,
+ UEContextResumeResponseIEs__value_PR_E_RABFailedToResumeListResumeRes,
+ UEContextResumeResponseIEs__value_PR_CriticalityDiagnostics,
+ UEContextResumeResponseIEs__value_PR_SecurityContext,
+ UEContextResumeResponseIEs__value_PR_PendingDataIndication
+} UEContextResumeResponseIEs__value_PR;
+typedef enum UEContextResumeFailureIEs__value_PR {
+ UEContextResumeFailureIEs__value_PR_NOTHING, /* No components present */
+ UEContextResumeFailureIEs__value_PR_MME_UE_S1AP_ID,
+ UEContextResumeFailureIEs__value_PR_ENB_UE_S1AP_ID,
+ UEContextResumeFailureIEs__value_PR_Cause,
+ UEContextResumeFailureIEs__value_PR_CriticalityDiagnostics
+} UEContextResumeFailureIEs__value_PR;
+typedef enum ConnectionEstablishmentIndicationIEs__value_PR {
+ ConnectionEstablishmentIndicationIEs__value_PR_NOTHING, /* No components present */
+ ConnectionEstablishmentIndicationIEs__value_PR_MME_UE_S1AP_ID,
+ ConnectionEstablishmentIndicationIEs__value_PR_ENB_UE_S1AP_ID,
+ ConnectionEstablishmentIndicationIEs__value_PR_UERadioCapability,
+ ConnectionEstablishmentIndicationIEs__value_PR_EnhancedCoverageRestricted,
+ ConnectionEstablishmentIndicationIEs__value_PR_DL_CP_SecurityInformation,
+ ConnectionEstablishmentIndicationIEs__value_PR_CE_ModeBRestricted,
+ ConnectionEstablishmentIndicationIEs__value_PR_EndIndication,
+ ConnectionEstablishmentIndicationIEs__value_PR_Subscription_Based_UE_DifferentiationInfo
+} ConnectionEstablishmentIndicationIEs__value_PR;
+typedef enum RetrieveUEInformationIEs__value_PR {
+ RetrieveUEInformationIEs__value_PR_NOTHING, /* No components present */
+ RetrieveUEInformationIEs__value_PR_S_TMSI
+} RetrieveUEInformationIEs__value_PR;
+typedef enum UEInformationTransferIEs__value_PR {
+ UEInformationTransferIEs__value_PR_NOTHING, /* No components present */
+ UEInformationTransferIEs__value_PR_S_TMSI,
+ UEInformationTransferIEs__value_PR_E_RABLevelQoSParameters,
+ UEInformationTransferIEs__value_PR_UERadioCapability,
+ UEInformationTransferIEs__value_PR_Subscription_Based_UE_DifferentiationInfo,
+ UEInformationTransferIEs__value_PR_PendingDataIndication
+} UEInformationTransferIEs__value_PR;
+typedef enum ENBCPRelocationIndicationIEs__value_PR {
+ ENBCPRelocationIndicationIEs__value_PR_NOTHING, /* No components present */
+ ENBCPRelocationIndicationIEs__value_PR_ENB_UE_S1AP_ID,
+ ENBCPRelocationIndicationIEs__value_PR_S_TMSI,
+ ENBCPRelocationIndicationIEs__value_PR_EUTRAN_CGI,
+ ENBCPRelocationIndicationIEs__value_PR_TAI,
+ ENBCPRelocationIndicationIEs__value_PR_UL_CP_SecurityInformation
+} ENBCPRelocationIndicationIEs__value_PR;
+typedef enum MMECPRelocationIndicationIEs__value_PR {
+ MMECPRelocationIndicationIEs__value_PR_NOTHING, /* No components present */
+ MMECPRelocationIndicationIEs__value_PR_MME_UE_S1AP_ID,
+ MMECPRelocationIndicationIEs__value_PR_ENB_UE_S1AP_ID
+} MMECPRelocationIndicationIEs__value_PR;
+typedef enum SecondaryRATDataUsageReportIEs__value_PR {
+ SecondaryRATDataUsageReportIEs__value_PR_NOTHING, /* No components present */
+ SecondaryRATDataUsageReportIEs__value_PR_MME_UE_S1AP_ID,
+ SecondaryRATDataUsageReportIEs__value_PR_ENB_UE_S1AP_ID,
+ SecondaryRATDataUsageReportIEs__value_PR_SecondaryRATDataUsageReportList,
+ SecondaryRATDataUsageReportIEs__value_PR_HandoverFlag,
+ SecondaryRATDataUsageReportIEs__value_PR_UserLocationInformation,
+ SecondaryRATDataUsageReportIEs__value_PR_TimeSinceSecondaryNodeRelease
+} SecondaryRATDataUsageReportIEs__value_PR;
+typedef enum E_RABDataForwardingItemIEs__value_PR {
+ E_RABDataForwardingItemIEs__value_PR_NOTHING, /* No components present */
+ E_RABDataForwardingItemIEs__value_PR_E_RABDataForwardingItem
+} E_RABDataForwardingItemIEs__value_PR;
+typedef enum E_RABToBeSetupItemHOReqIEs__value_PR {
+ E_RABToBeSetupItemHOReqIEs__value_PR_NOTHING, /* No components present */
+ E_RABToBeSetupItemHOReqIEs__value_PR_E_RABToBeSetupItemHOReq
+} E_RABToBeSetupItemHOReqIEs__value_PR;
+typedef enum E_RABAdmittedItemIEs__value_PR {
+ E_RABAdmittedItemIEs__value_PR_NOTHING, /* No components present */
+ E_RABAdmittedItemIEs__value_PR_E_RABAdmittedItem
+} E_RABAdmittedItemIEs__value_PR;
+typedef enum E_RABFailedtoSetupItemHOReqAckIEs__value_PR {
+ E_RABFailedtoSetupItemHOReqAckIEs__value_PR_NOTHING, /* No components present */
+ E_RABFailedtoSetupItemHOReqAckIEs__value_PR_E_RABFailedToSetupItemHOReqAck
+} E_RABFailedtoSetupItemHOReqAckIEs__value_PR;
+typedef enum E_RABToBeSwitchedDLItemIEs__value_PR {
+ E_RABToBeSwitchedDLItemIEs__value_PR_NOTHING, /* No components present */
+ E_RABToBeSwitchedDLItemIEs__value_PR_E_RABToBeSwitchedDLItem
+} E_RABToBeSwitchedDLItemIEs__value_PR;
+typedef enum E_RABToBeSwitchedULItemIEs__value_PR {
+ E_RABToBeSwitchedULItemIEs__value_PR_NOTHING, /* No components present */
+ E_RABToBeSwitchedULItemIEs__value_PR_E_RABToBeSwitchedULItem
+} E_RABToBeSwitchedULItemIEs__value_PR;
+typedef enum E_RABToBeModifiedItemBearerModIndIEs__value_PR {
+ E_RABToBeModifiedItemBearerModIndIEs__value_PR_NOTHING, /* No components present */
+ E_RABToBeModifiedItemBearerModIndIEs__value_PR_E_RABToBeModifiedItemBearerModInd
+} E_RABToBeModifiedItemBearerModIndIEs__value_PR;
+typedef enum E_RABNotToBeModifiedItemBearerModIndIEs__value_PR {
+ E_RABNotToBeModifiedItemBearerModIndIEs__value_PR_NOTHING, /* No components present */
+ E_RABNotToBeModifiedItemBearerModIndIEs__value_PR_E_RABNotToBeModifiedItemBearerModInd
+} E_RABNotToBeModifiedItemBearerModIndIEs__value_PR;
+typedef enum E_RABFailedToResumeItemResumeReqIEs__value_PR {
+ E_RABFailedToResumeItemResumeReqIEs__value_PR_NOTHING, /* No components present */
+ E_RABFailedToResumeItemResumeReqIEs__value_PR_E_RABFailedToResumeItemResumeReq
+} E_RABFailedToResumeItemResumeReqIEs__value_PR;
+typedef enum E_RABFailedToResumeItemResumeResIEs__value_PR {
+ E_RABFailedToResumeItemResumeResIEs__value_PR_NOTHING, /* No components present */
+ E_RABFailedToResumeItemResumeResIEs__value_PR_E_RABFailedToResumeItemResumeRes
+} E_RABFailedToResumeItemResumeResIEs__value_PR;
+
+/* ProtocolIE-Field */
+typedef struct Bearers_SubjectToStatusTransfer_ItemIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct Bearers_SubjectToStatusTransfer_ItemIEs__value {
+ Bearers_SubjectToStatusTransfer_ItemIEs__value_PR present;
+ union Bearers_SubjectToStatusTransfer_ItemIEs__value_u {
+ Bearers_SubjectToStatusTransfer_Item_t Bearers_SubjectToStatusTransfer_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;
+} Bearers_SubjectToStatusTransfer_ItemIEs_t;
+typedef struct E_RABInformationListIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABInformationListIEs__value {
+ E_RABInformationListIEs__value_PR present;
+ union E_RABInformationListIEs__value_u {
+ E_RABInformationListItem_t E_RABInformationListItem;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABInformationListIEs_t;
+typedef struct E_RABItemIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABItemIEs__value {
+ E_RABItemIEs__value_PR present;
+ union E_RABItemIEs__value_u {
+ E_RABItem_t E_RABItem;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABItemIEs_t;
+typedef struct E_RABUsageReportItemIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABUsageReportItemIEs__value {
+ E_RABUsageReportItemIEs__value_PR present;
+ union E_RABUsageReportItemIEs__value_u {
+ E_RABUsageReportItem_t E_RABUsageReportItem;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABUsageReportItemIEs_t;
+typedef struct MDTMode_ExtensionIE {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct MDTMode_ExtensionIE__value {
+ MDTMode_ExtensionIE__value_PR present;
+ union MDTMode_ExtensionIE__value_u {
+ LoggedMBSFNMDT_t LoggedMBSFNMDT;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} MDTMode_ExtensionIE_t;
+typedef struct RecommendedCellItemIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct RecommendedCellItemIEs__value {
+ RecommendedCellItemIEs__value_PR present;
+ union RecommendedCellItemIEs__value_u {
+ RecommendedCellItem_t RecommendedCellItem;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} RecommendedCellItemIEs_t;
+typedef struct RecommendedENBItemIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct RecommendedENBItemIEs__value {
+ RecommendedENBItemIEs__value_PR present;
+ union RecommendedENBItemIEs__value_u {
+ RecommendedENBItem_t RecommendedENBItem;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} RecommendedENBItemIEs_t;
+typedef struct SecondaryRATDataUsageReportItemIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct SecondaryRATDataUsageReportItemIEs__value {
+ SecondaryRATDataUsageReportItemIEs__value_PR present;
+ union SecondaryRATDataUsageReportItemIEs__value_u {
+ SecondaryRATDataUsageReportItem_t SecondaryRATDataUsageReportItem;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SecondaryRATDataUsageReportItemIEs_t;
+typedef struct SONInformation_ExtensionIE {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct SONInformation_ExtensionIE__value {
+ SONInformation_ExtensionIE__value_PR present;
+ union SONInformation_ExtensionIE__value_u {
+ SONInformationReport_t SONInformationReport;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SONInformation_ExtensionIE_t;
+typedef struct E_RABToBeSetupItemBearerSUReqIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABToBeSetupItemBearerSUReqIEs__value {
+ E_RABToBeSetupItemBearerSUReqIEs__value_PR present;
+ union E_RABToBeSetupItemBearerSUReqIEs__value_u {
+ E_RABToBeSetupItemBearerSUReq_t E_RABToBeSetupItemBearerSUReq;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABToBeSetupItemBearerSUReqIEs_t;
+typedef struct E_RABSetupItemBearerSUResIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABSetupItemBearerSUResIEs__value {
+ E_RABSetupItemBearerSUResIEs__value_PR present;
+ union E_RABSetupItemBearerSUResIEs__value_u {
+ E_RABSetupItemBearerSURes_t E_RABSetupItemBearerSURes;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABSetupItemBearerSUResIEs_t;
+typedef struct E_RABToBeModifiedItemBearerModReqIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABToBeModifiedItemBearerModReqIEs__value {
+ E_RABToBeModifiedItemBearerModReqIEs__value_PR present;
+ union E_RABToBeModifiedItemBearerModReqIEs__value_u {
+ E_RABToBeModifiedItemBearerModReq_t E_RABToBeModifiedItemBearerModReq;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABToBeModifiedItemBearerModReqIEs_t;
+typedef struct E_RABModifyItemBearerModResIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABModifyItemBearerModResIEs__value {
+ E_RABModifyItemBearerModResIEs__value_PR present;
+ union E_RABModifyItemBearerModResIEs__value_u {
+ E_RABModifyItemBearerModRes_t E_RABModifyItemBearerModRes;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABModifyItemBearerModResIEs_t;
+typedef struct E_RABReleaseItemBearerRelCompIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABReleaseItemBearerRelCompIEs__value {
+ E_RABReleaseItemBearerRelCompIEs__value_PR present;
+ union E_RABReleaseItemBearerRelCompIEs__value_u {
+ E_RABReleaseItemBearerRelComp_t E_RABReleaseItemBearerRelComp;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABReleaseItemBearerRelCompIEs_t;
+typedef struct E_RABToBeSetupItemCtxtSUReqIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABToBeSetupItemCtxtSUReqIEs__value {
+ E_RABToBeSetupItemCtxtSUReqIEs__value_PR present;
+ union E_RABToBeSetupItemCtxtSUReqIEs__value_u {
+ E_RABToBeSetupItemCtxtSUReq_t E_RABToBeSetupItemCtxtSUReq;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABToBeSetupItemCtxtSUReqIEs_t;
+typedef struct E_RABSetupItemCtxtSUResIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABSetupItemCtxtSUResIEs__value {
+ E_RABSetupItemCtxtSUResIEs__value_PR present;
+ union E_RABSetupItemCtxtSUResIEs__value_u {
+ E_RABSetupItemCtxtSURes_t E_RABSetupItemCtxtSURes;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABSetupItemCtxtSUResIEs_t;
+typedef struct TAIItemIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct TAIItemIEs__value {
+ TAIItemIEs__value_PR present;
+ union TAIItemIEs__value_u {
+ TAIItem_t TAIItem;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} TAIItemIEs_t;
+typedef struct UE_associatedLogicalS1_ConnectionItemRes {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct UE_associatedLogicalS1_ConnectionItemRes__value {
+ UE_associatedLogicalS1_ConnectionItemRes__value_PR present;
+ union UE_associatedLogicalS1_ConnectionItemRes__value_u {
+ UE_associatedLogicalS1_ConnectionItem_t UE_associatedLogicalS1_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_associatedLogicalS1_ConnectionItemRes_t;
+typedef struct UE_associatedLogicalS1_ConnectionItemResAck {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct UE_associatedLogicalS1_ConnectionItemResAck__value {
+ UE_associatedLogicalS1_ConnectionItemResAck__value_PR present;
+ union UE_associatedLogicalS1_ConnectionItemResAck__value_u {
+ UE_associatedLogicalS1_ConnectionItem_t UE_associatedLogicalS1_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_associatedLogicalS1_ConnectionItemResAck_t;
+typedef struct E_RABModifyItemBearerModConfIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABModifyItemBearerModConfIEs__value {
+ E_RABModifyItemBearerModConfIEs__value_PR present;
+ union E_RABModifyItemBearerModConfIEs__value_u {
+ E_RABModifyItemBearerModConf_t E_RABModifyItemBearerModConf;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABModifyItemBearerModConfIEs_t;
+typedef struct HandoverRequiredIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct HandoverRequiredIEs__value {
+ HandoverRequiredIEs__value_PR present;
+ union HandoverRequiredIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ HandoverType_t HandoverType;
+ Cause_t Cause;
+ TargetID_t TargetID;
+ Direct_Forwarding_Path_Availability_t Direct_Forwarding_Path_Availability;
+ SRVCCHOIndication_t SRVCCHOIndication;
+ Source_ToTarget_TransparentContainer_t Source_ToTarget_TransparentContainer;
+ Source_ToTarget_TransparentContainer_t Source_ToTarget_TransparentContainer_1;
+ MSClassmark2_t MSClassmark2;
+ MSClassmark3_t MSClassmark3;
+ CSG_Id_t CSG_Id;
+ CellAccessMode_t CellAccessMode;
+ PS_ServiceNotAvailable_t PS_ServiceNotAvailable;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} HandoverRequiredIEs_t;
+typedef struct HandoverCommandIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct HandoverCommandIEs__value {
+ HandoverCommandIEs__value_PR present;
+ union HandoverCommandIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ HandoverType_t HandoverType;
+ NASSecurityParametersfromE_UTRAN_t NASSecurityParametersfromE_UTRAN;
+ E_RABSubjecttoDataForwardingList_t E_RABSubjecttoDataForwardingList;
+ E_RABList_t E_RABList;
+ Target_ToSource_TransparentContainer_t Target_ToSource_TransparentContainer;
+ Target_ToSource_TransparentContainer_t Target_ToSource_TransparentContainer_1;
+ 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;
+} HandoverCommandIEs_t;
+typedef struct HandoverPreparationFailureIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct HandoverPreparationFailureIEs__value {
+ HandoverPreparationFailureIEs__value_PR present;
+ union HandoverPreparationFailureIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_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;
+} HandoverPreparationFailureIEs_t;
+typedef struct HandoverRequestIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct HandoverRequestIEs__value {
+ HandoverRequestIEs__value_PR present;
+ union HandoverRequestIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ HandoverType_t HandoverType;
+ Cause_t Cause;
+ UEAggregateMaximumBitrate_t UEAggregateMaximumBitrate;
+ E_RABToBeSetupListHOReq_t E_RABToBeSetupListHOReq;
+ Source_ToTarget_TransparentContainer_t Source_ToTarget_TransparentContainer;
+ UESecurityCapabilities_t UESecurityCapabilities;
+ HandoverRestrictionList_t HandoverRestrictionList;
+ TraceActivation_t TraceActivation;
+ RequestType_t RequestType;
+ SRVCCOperationPossible_t SRVCCOperationPossible;
+ SecurityContext_t SecurityContext;
+ NASSecurityParameterstoE_UTRAN_t NASSecurityParameterstoE_UTRAN;
+ CSG_Id_t CSG_Id;
+ CSGMembershipStatus_t CSGMembershipStatus;
+ GUMMEI_t GUMMEI;
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID_1;
+ ManagementBasedMDTAllowed_t ManagementBasedMDTAllowed;
+ MDTPLMNList_t MDTPLMNList;
+ Masked_IMEISV_t Masked_IMEISV;
+ ExpectedUEBehaviour_t ExpectedUEBehaviour;
+ ProSeAuthorized_t ProSeAuthorized;
+ UEUserPlaneCIoTSupportIndicator_t UEUserPlaneCIoTSupportIndicator;
+ V2XServicesAuthorized_t V2XServicesAuthorized;
+ UESidelinkAggregateMaximumBitrate_t UESidelinkAggregateMaximumBitrate;
+ EnhancedCoverageRestricted_t EnhancedCoverageRestricted;
+ NRUESecurityCapabilities_t NRUESecurityCapabilities;
+ CE_ModeBRestricted_t CE_ModeBRestricted;
+ AerialUEsubscriptionInformation_t AerialUEsubscriptionInformation;
+ PendingDataIndication_t PendingDataIndication;
+ Subscription_Based_UE_DifferentiationInfo_t Subscription_Based_UE_DifferentiationInfo;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} HandoverRequestIEs_t;
+typedef struct HandoverRequestAcknowledgeIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct HandoverRequestAcknowledgeIEs__value {
+ HandoverRequestAcknowledgeIEs__value_PR present;
+ union HandoverRequestAcknowledgeIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ E_RABAdmittedList_t E_RABAdmittedList;
+ E_RABFailedtoSetupListHOReqAck_t E_RABFailedtoSetupListHOReqAck;
+ Target_ToSource_TransparentContainer_t Target_ToSource_TransparentContainer;
+ CSG_Id_t CSG_Id;
+ CriticalityDiagnostics_t CriticalityDiagnostics;
+ CellAccessMode_t CellAccessMode;
+ CE_mode_B_SupportIndicator_t CE_mode_B_SupportIndicator;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} HandoverRequestAcknowledgeIEs_t;
+typedef struct HandoverFailureIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct HandoverFailureIEs__value {
+ HandoverFailureIEs__value_PR present;
+ union HandoverFailureIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_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;
+} HandoverFailureIEs_t;
+typedef struct HandoverNotifyIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct HandoverNotifyIEs__value {
+ HandoverNotifyIEs__value_PR present;
+ union HandoverNotifyIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ EUTRAN_CGI_t EUTRAN_CGI;
+ TAI_t TAI;
+ TunnelInformation_t TunnelInformation;
+ LHN_ID_t LHN_ID;
+ PSCellInformation_t PSCellInformation;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} HandoverNotifyIEs_t;
+typedef struct PathSwitchRequestIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct PathSwitchRequestIEs__value {
+ PathSwitchRequestIEs__value_PR present;
+ union PathSwitchRequestIEs__value_u {
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ E_RABToBeSwitchedDLList_t E_RABToBeSwitchedDLList;
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ EUTRAN_CGI_t EUTRAN_CGI;
+ TAI_t TAI;
+ UESecurityCapabilities_t UESecurityCapabilities;
+ CSG_Id_t CSG_Id;
+ CellAccessMode_t CellAccessMode;
+ GUMMEI_t GUMMEI;
+ CSGMembershipStatus_t CSGMembershipStatus;
+ TunnelInformation_t TunnelInformation;
+ LHN_ID_t LHN_ID;
+ RRC_Establishment_Cause_t RRC_Establishment_Cause;
+ NRUESecurityCapabilities_t NRUESecurityCapabilities;
+ PSCellInformation_t PSCellInformation;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} PathSwitchRequestIEs_t;
+typedef struct PathSwitchRequestAcknowledgeIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct PathSwitchRequestAcknowledgeIEs__value {
+ PathSwitchRequestAcknowledgeIEs__value_PR present;
+ union PathSwitchRequestAcknowledgeIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ UEAggregateMaximumBitrate_t UEAggregateMaximumBitrate;
+ E_RABToBeSwitchedULList_t E_RABToBeSwitchedULList;
+ E_RABList_t E_RABList;
+ SecurityContext_t SecurityContext;
+ CriticalityDiagnostics_t CriticalityDiagnostics;
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID_1;
+ CSGMembershipStatus_t CSGMembershipStatus;
+ ProSeAuthorized_t ProSeAuthorized;
+ UEUserPlaneCIoTSupportIndicator_t UEUserPlaneCIoTSupportIndicator;
+ V2XServicesAuthorized_t V2XServicesAuthorized;
+ UESidelinkAggregateMaximumBitrate_t UESidelinkAggregateMaximumBitrate;
+ EnhancedCoverageRestricted_t EnhancedCoverageRestricted;
+ NRUESecurityCapabilities_t NRUESecurityCapabilities;
+ CE_ModeBRestricted_t CE_ModeBRestricted;
+ AerialUEsubscriptionInformation_t AerialUEsubscriptionInformation;
+ PendingDataIndication_t PendingDataIndication;
+ Subscription_Based_UE_DifferentiationInfo_t Subscription_Based_UE_DifferentiationInfo;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} PathSwitchRequestAcknowledgeIEs_t;
+typedef struct PathSwitchRequestFailureIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct PathSwitchRequestFailureIEs__value {
+ PathSwitchRequestFailureIEs__value_PR present;
+ union PathSwitchRequestFailureIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_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;
+} PathSwitchRequestFailureIEs_t;
+typedef struct HandoverCancelIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct HandoverCancelIEs__value {
+ HandoverCancelIEs__value_PR present;
+ union HandoverCancelIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_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;
+} HandoverCancelIEs_t;
+typedef struct HandoverCancelAcknowledgeIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct HandoverCancelAcknowledgeIEs__value {
+ HandoverCancelAcknowledgeIEs__value_PR present;
+ union HandoverCancelAcknowledgeIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_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;
+} HandoverCancelAcknowledgeIEs_t;
+typedef struct E_RABSetupRequestIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABSetupRequestIEs__value {
+ E_RABSetupRequestIEs__value_PR present;
+ union E_RABSetupRequestIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ UEAggregateMaximumBitrate_t UEAggregateMaximumBitrate;
+ E_RABToBeSetupListBearerSUReq_t E_RABToBeSetupListBearerSUReq;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABSetupRequestIEs_t;
+typedef struct E_RABSetupResponseIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABSetupResponseIEs__value {
+ E_RABSetupResponseIEs__value_PR present;
+ union E_RABSetupResponseIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ E_RABSetupListBearerSURes_t E_RABSetupListBearerSURes;
+ E_RABList_t E_RABList;
+ 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;
+} E_RABSetupResponseIEs_t;
+typedef struct E_RABModifyRequestIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABModifyRequestIEs__value {
+ E_RABModifyRequestIEs__value_PR present;
+ union E_RABModifyRequestIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ UEAggregateMaximumBitrate_t UEAggregateMaximumBitrate;
+ E_RABToBeModifiedListBearerModReq_t E_RABToBeModifiedListBearerModReq;
+ SecondaryRATDataUsageRequest_t SecondaryRATDataUsageRequest;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABModifyRequestIEs_t;
+typedef struct E_RABModifyResponseIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABModifyResponseIEs__value {
+ E_RABModifyResponseIEs__value_PR present;
+ union E_RABModifyResponseIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ E_RABModifyListBearerModRes_t E_RABModifyListBearerModRes;
+ E_RABList_t E_RABList;
+ CriticalityDiagnostics_t CriticalityDiagnostics;
+ SecondaryRATDataUsageReportList_t SecondaryRATDataUsageReportList;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABModifyResponseIEs_t;
+typedef struct E_RABReleaseCommandIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABReleaseCommandIEs__value {
+ E_RABReleaseCommandIEs__value_PR present;
+ union E_RABReleaseCommandIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ UEAggregateMaximumBitrate_t UEAggregateMaximumBitrate;
+ E_RABList_t E_RABList;
+ NAS_PDU_t NAS_PDU;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABReleaseCommandIEs_t;
+typedef struct E_RABReleaseResponseIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABReleaseResponseIEs__value {
+ E_RABReleaseResponseIEs__value_PR present;
+ union E_RABReleaseResponseIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ E_RABReleaseListBearerRelComp_t E_RABReleaseListBearerRelComp;
+ E_RABList_t E_RABList;
+ CriticalityDiagnostics_t CriticalityDiagnostics;
+ UserLocationInformation_t UserLocationInformation;
+ SecondaryRATDataUsageReportList_t SecondaryRATDataUsageReportList;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABReleaseResponseIEs_t;
+typedef struct E_RABReleaseIndicationIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABReleaseIndicationIEs__value {
+ E_RABReleaseIndicationIEs__value_PR present;
+ union E_RABReleaseIndicationIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ E_RABList_t E_RABList;
+ UserLocationInformation_t UserLocationInformation;
+ SecondaryRATDataUsageReportList_t SecondaryRATDataUsageReportList;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABReleaseIndicationIEs_t;
+typedef struct InitialContextSetupRequestIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct InitialContextSetupRequestIEs__value {
+ InitialContextSetupRequestIEs__value_PR present;
+ union InitialContextSetupRequestIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ UEAggregateMaximumBitrate_t UEAggregateMaximumBitrate;
+ E_RABToBeSetupListCtxtSUReq_t E_RABToBeSetupListCtxtSUReq;
+ UESecurityCapabilities_t UESecurityCapabilities;
+ SecurityKey_t SecurityKey;
+ TraceActivation_t TraceActivation;
+ HandoverRestrictionList_t HandoverRestrictionList;
+ UERadioCapability_t UERadioCapability;
+ SubscriberProfileIDforRFP_t SubscriberProfileIDforRFP;
+ CSFallbackIndicator_t CSFallbackIndicator;
+ SRVCCOperationPossible_t SRVCCOperationPossible;
+ CSGMembershipStatus_t CSGMembershipStatus;
+ LAI_t LAI;
+ GUMMEI_t GUMMEI;
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID_1;
+ ManagementBasedMDTAllowed_t ManagementBasedMDTAllowed;
+ MDTPLMNList_t MDTPLMNList;
+ AdditionalCSFallbackIndicator_t AdditionalCSFallbackIndicator;
+ Masked_IMEISV_t Masked_IMEISV;
+ ExpectedUEBehaviour_t ExpectedUEBehaviour;
+ ProSeAuthorized_t ProSeAuthorized;
+ UEUserPlaneCIoTSupportIndicator_t UEUserPlaneCIoTSupportIndicator;
+ V2XServicesAuthorized_t V2XServicesAuthorized;
+ UESidelinkAggregateMaximumBitrate_t UESidelinkAggregateMaximumBitrate;
+ EnhancedCoverageRestricted_t EnhancedCoverageRestricted;
+ NRUESecurityCapabilities_t NRUESecurityCapabilities;
+ CE_ModeBRestricted_t CE_ModeBRestricted;
+ AerialUEsubscriptionInformation_t AerialUEsubscriptionInformation;
+ PendingDataIndication_t PendingDataIndication;
+ Subscription_Based_UE_DifferentiationInfo_t Subscription_Based_UE_DifferentiationInfo;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} InitialContextSetupRequestIEs_t;
+typedef struct InitialContextSetupResponseIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct InitialContextSetupResponseIEs__value {
+ InitialContextSetupResponseIEs__value_PR present;
+ union InitialContextSetupResponseIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ E_RABSetupListCtxtSURes_t E_RABSetupListCtxtSURes;
+ E_RABList_t E_RABList;
+ 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;
+} InitialContextSetupResponseIEs_t;
+typedef struct InitialContextSetupFailureIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct InitialContextSetupFailureIEs__value {
+ InitialContextSetupFailureIEs__value_PR present;
+ union InitialContextSetupFailureIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_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;
+} InitialContextSetupFailureIEs_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;
+ UEPagingID_t UEPagingID;
+ PagingDRX_t PagingDRX;
+ CNDomain_t CNDomain;
+ TAIList_t TAIList;
+ CSG_IdList_t CSG_IdList;
+ PagingPriority_t PagingPriority;
+ UERadioCapabilityForPaging_t UERadioCapabilityForPaging;
+ AssistanceDataForPaging_t AssistanceDataForPaging;
+ Paging_eDRXInformation_t Paging_eDRXInformation;
+ Extended_UEIdentityIndexValue_t Extended_UEIdentityIndexValue;
+ NB_IoT_Paging_eDRXInformation_t NB_IoT_Paging_eDRXInformation;
+ NB_IoT_UEIdentityIndexValue_t NB_IoT_UEIdentityIndexValue;
+ EnhancedCoverageRestricted_t EnhancedCoverageRestricted;
+ CE_ModeBRestricted_t CE_ModeBRestricted;
+ } choice;
+
+ /* Context 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 UEContextReleaseRequest_IEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct UEContextReleaseRequest_IEs__value {
+ UEContextReleaseRequest_IEs__value_PR present;
+ union UEContextReleaseRequest_IEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ Cause_t Cause;
+ GWContextReleaseIndication_t GWContextReleaseIndication;
+ SecondaryRATDataUsageReportList_t SecondaryRATDataUsageReportList;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UEContextReleaseRequest_IEs_t;
+typedef struct UEContextReleaseCommand_IEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct UEContextReleaseCommand_IEs__value {
+ UEContextReleaseCommand_IEs__value_PR present;
+ union UEContextReleaseCommand_IEs__value_u {
+ UE_S1AP_IDs_t UE_S1AP_IDs;
+ 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;
+} UEContextReleaseCommand_IEs_t;
+typedef struct UEContextReleaseComplete_IEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct UEContextReleaseComplete_IEs__value {
+ UEContextReleaseComplete_IEs__value_PR present;
+ union UEContextReleaseComplete_IEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ CriticalityDiagnostics_t CriticalityDiagnostics;
+ UserLocationInformation_t UserLocationInformation;
+ InformationOnRecommendedCellsAndENBsForPaging_t InformationOnRecommendedCellsAndENBsForPaging;
+ CellIdentifierAndCELevelForCECapableUEs_t CellIdentifierAndCELevelForCECapableUEs;
+ SecondaryRATDataUsageReportList_t SecondaryRATDataUsageReportList;
+ TimeSinceSecondaryNodeRelease_t TimeSinceSecondaryNodeRelease;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UEContextReleaseComplete_IEs_t;
+typedef struct UEContextModificationRequestIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct UEContextModificationRequestIEs__value {
+ UEContextModificationRequestIEs__value_PR present;
+ union UEContextModificationRequestIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ SecurityKey_t SecurityKey;
+ SubscriberProfileIDforRFP_t SubscriberProfileIDforRFP;
+ UEAggregateMaximumBitrate_t UEAggregateMaximumBitrate;
+ CSFallbackIndicator_t CSFallbackIndicator;
+ UESecurityCapabilities_t UESecurityCapabilities;
+ CSGMembershipStatus_t CSGMembershipStatus;
+ LAI_t LAI;
+ AdditionalCSFallbackIndicator_t AdditionalCSFallbackIndicator;
+ ProSeAuthorized_t ProSeAuthorized;
+ SRVCCOperationPossible_t SRVCCOperationPossible;
+ SRVCCOperationNotPossible_t SRVCCOperationNotPossible;
+ V2XServicesAuthorized_t V2XServicesAuthorized;
+ UESidelinkAggregateMaximumBitrate_t UESidelinkAggregateMaximumBitrate;
+ NRUESecurityCapabilities_t NRUESecurityCapabilities;
+ AerialUEsubscriptionInformation_t AerialUEsubscriptionInformation;
+ } choice;
+
+ /* Context 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 {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_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;
+} UEContextModificationResponseIEs_t;
+typedef struct UEContextModificationFailureIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct UEContextModificationFailureIEs__value {
+ UEContextModificationFailureIEs__value_PR present;
+ union UEContextModificationFailureIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_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 UERadioCapabilityMatchRequestIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct UERadioCapabilityMatchRequestIEs__value {
+ UERadioCapabilityMatchRequestIEs__value_PR present;
+ union UERadioCapabilityMatchRequestIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ UERadioCapability_t UERadioCapability;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UERadioCapabilityMatchRequestIEs_t;
+typedef struct UERadioCapabilityMatchResponseIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct UERadioCapabilityMatchResponseIEs__value {
+ UERadioCapabilityMatchResponseIEs__value_PR present;
+ union UERadioCapabilityMatchResponseIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ VoiceSupportMatchIndicator_t VoiceSupportMatchIndicator;
+ 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;
+} UERadioCapabilityMatchResponseIEs_t;
+typedef struct DownlinkNASTransport_IEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct DownlinkNASTransport_IEs__value {
+ DownlinkNASTransport_IEs__value_PR present;
+ union DownlinkNASTransport_IEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ NAS_PDU_t NAS_PDU;
+ HandoverRestrictionList_t HandoverRestrictionList;
+ SubscriberProfileIDforRFP_t SubscriberProfileIDforRFP;
+ SRVCCOperationPossible_t SRVCCOperationPossible;
+ UERadioCapability_t UERadioCapability;
+ DLNASPDUDeliveryAckRequest_t DLNASPDUDeliveryAckRequest;
+ EnhancedCoverageRestricted_t EnhancedCoverageRestricted;
+ NRUESecurityCapabilities_t NRUESecurityCapabilities;
+ CE_ModeBRestricted_t CE_ModeBRestricted;
+ UECapabilityInfoRequest_t UECapabilityInfoRequest;
+ EndIndication_t EndIndication;
+ PendingDataIndication_t PendingDataIndication;
+ Subscription_Based_UE_DifferentiationInfo_t Subscription_Based_UE_DifferentiationInfo;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} DownlinkNASTransport_IEs_t;
+typedef struct InitialUEMessage_IEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct InitialUEMessage_IEs__value {
+ InitialUEMessage_IEs__value_PR present;
+ union InitialUEMessage_IEs__value_u {
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ NAS_PDU_t NAS_PDU;
+ TAI_t TAI;
+ EUTRAN_CGI_t EUTRAN_CGI;
+ RRC_Establishment_Cause_t RRC_Establishment_Cause;
+ S_TMSI_t S_TMSI;
+ CSG_Id_t CSG_Id;
+ GUMMEI_t GUMMEI;
+ CellAccessMode_t CellAccessMode;
+ TransportLayerAddress_t TransportLayerAddress;
+ RelayNode_Indicator_t RelayNode_Indicator;
+ GUMMEIType_t GUMMEIType;
+ TunnelInformation_t TunnelInformation;
+ TransportLayerAddress_t TransportLayerAddress_1;
+ LHN_ID_t LHN_ID;
+ MME_Group_ID_t MME_Group_ID;
+ UE_Usage_Type_t UE_Usage_Type;
+ CE_mode_B_SupportIndicator_t CE_mode_B_SupportIndicator;
+ DCN_ID_t DCN_ID;
+ Coverage_Level_t Coverage_Level;
+ UE_Application_Layer_Measurement_Capability_t UE_Application_Layer_Measurement_Capability;
+ EDT_Session_t EDT_Session;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} InitialUEMessage_IEs_t;
+typedef struct UplinkNASTransport_IEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct UplinkNASTransport_IEs__value {
+ UplinkNASTransport_IEs__value_PR present;
+ union UplinkNASTransport_IEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ NAS_PDU_t NAS_PDU;
+ EUTRAN_CGI_t EUTRAN_CGI;
+ TAI_t TAI;
+ TransportLayerAddress_t TransportLayerAddress;
+ TransportLayerAddress_t TransportLayerAddress_1;
+ LHN_ID_t LHN_ID;
+ PSCellInformation_t PSCellInformation;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UplinkNASTransport_IEs_t;
+typedef struct NASNonDeliveryIndication_IEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct NASNonDeliveryIndication_IEs__value {
+ NASNonDeliveryIndication_IEs__value_PR present;
+ union NASNonDeliveryIndication_IEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ NAS_PDU_t NAS_PDU;
+ 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;
+} NASNonDeliveryIndication_IEs_t;
+typedef struct RerouteNASRequest_IEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct RerouteNASRequest_IEs__value {
+ RerouteNASRequest_IEs__value_PR present;
+ union RerouteNASRequest_IEs__value_u {
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ OCTET_STRING_t OCTET_STRING;
+ MME_Group_ID_t MME_Group_ID;
+ Additional_GUTI_t Additional_GUTI;
+ UE_Usage_Type_t UE_Usage_Type;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} RerouteNASRequest_IEs_t;
+typedef struct NASDeliveryIndicationIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct NASDeliveryIndicationIEs__value {
+ NASDeliveryIndicationIEs__value_PR present;
+ union NASDeliveryIndicationIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_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;
+} NASDeliveryIndicationIEs_t;
+typedef struct ResetIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct ResetIEs__value {
+ ResetIEs__value_PR present;
+ union ResetIEs__value_u {
+ 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 {
+ UE_associatedLogicalS1_ConnectionListResAck_t UE_associatedLogicalS1_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 {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_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 S1SetupRequestIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct S1SetupRequestIEs__value {
+ S1SetupRequestIEs__value_PR present;
+ union S1SetupRequestIEs__value_u {
+ Global_ENB_ID_t Global_ENB_ID;
+ ENBname_t ENBname;
+ SupportedTAs_t SupportedTAs;
+ PagingDRX_t PagingDRX;
+ CSG_IdList_t CSG_IdList;
+ UE_RetentionInformation_t UE_RetentionInformation;
+ NB_IoT_DefaultPagingDRX_t NB_IoT_DefaultPagingDRX;
+ ConnectedengNBList_t ConnectedengNBList;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} S1SetupRequestIEs_t;
+typedef struct S1SetupResponseIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct S1SetupResponseIEs__value {
+ S1SetupResponseIEs__value_PR present;
+ union S1SetupResponseIEs__value_u {
+ MMEname_t MMEname;
+ ServedGUMMEIs_t ServedGUMMEIs;
+ RelativeMMECapacity_t RelativeMMECapacity;
+ MMERelaySupportIndicator_t MMERelaySupportIndicator;
+ CriticalityDiagnostics_t CriticalityDiagnostics;
+ UE_RetentionInformation_t UE_RetentionInformation;
+ ServedDCNs_t ServedDCNs;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} S1SetupResponseIEs_t;
+typedef struct S1SetupFailureIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct S1SetupFailureIEs__value {
+ S1SetupFailureIEs__value_PR present;
+ union S1SetupFailureIEs__value_u {
+ Cause_t Cause;
+ TimeToWait_t TimeToWait;
+ CriticalityDiagnostics_t CriticalityDiagnostics;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} S1SetupFailureIEs_t;
+typedef struct ENBConfigurationUpdateIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct ENBConfigurationUpdateIEs__value {
+ ENBConfigurationUpdateIEs__value_PR present;
+ union ENBConfigurationUpdateIEs__value_u {
+ ENBname_t ENBname;
+ SupportedTAs_t SupportedTAs;
+ CSG_IdList_t CSG_IdList;
+ PagingDRX_t PagingDRX;
+ NB_IoT_DefaultPagingDRX_t NB_IoT_DefaultPagingDRX;
+ ConnectedengNBList_t ConnectedengNBList;
+ ConnectedengNBList_t ConnectedengNBList_1;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ENBConfigurationUpdateIEs_t;
+typedef struct ENBConfigurationUpdateAcknowledgeIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct ENBConfigurationUpdateAcknowledgeIEs__value {
+ ENBConfigurationUpdateAcknowledgeIEs__value_PR present;
+ union ENBConfigurationUpdateAcknowledgeIEs__value_u {
+ CriticalityDiagnostics_t CriticalityDiagnostics;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ENBConfigurationUpdateAcknowledgeIEs_t;
+typedef struct ENBConfigurationUpdateFailureIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct ENBConfigurationUpdateFailureIEs__value {
+ ENBConfigurationUpdateFailureIEs__value_PR present;
+ union ENBConfigurationUpdateFailureIEs__value_u {
+ Cause_t Cause;
+ TimeToWait_t TimeToWait;
+ CriticalityDiagnostics_t CriticalityDiagnostics;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ENBConfigurationUpdateFailureIEs_t;
+typedef struct MMEConfigurationUpdateIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct MMEConfigurationUpdateIEs__value {
+ MMEConfigurationUpdateIEs__value_PR present;
+ union MMEConfigurationUpdateIEs__value_u {
+ MMEname_t MMEname;
+ ServedGUMMEIs_t ServedGUMMEIs;
+ RelativeMMECapacity_t RelativeMMECapacity;
+ ServedDCNs_t ServedDCNs;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} MMEConfigurationUpdateIEs_t;
+typedef struct MMEConfigurationUpdateAcknowledgeIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct MMEConfigurationUpdateAcknowledgeIEs__value {
+ MMEConfigurationUpdateAcknowledgeIEs__value_PR present;
+ union MMEConfigurationUpdateAcknowledgeIEs__value_u {
+ CriticalityDiagnostics_t CriticalityDiagnostics;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} MMEConfigurationUpdateAcknowledgeIEs_t;
+typedef struct MMEConfigurationUpdateFailureIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct MMEConfigurationUpdateFailureIEs__value {
+ MMEConfigurationUpdateFailureIEs__value_PR present;
+ union MMEConfigurationUpdateFailureIEs__value_u {
+ Cause_t Cause;
+ TimeToWait_t TimeToWait;
+ CriticalityDiagnostics_t CriticalityDiagnostics;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} MMEConfigurationUpdateFailureIEs_t;
+typedef struct DownlinkS1cdma2000tunnellingIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct DownlinkS1cdma2000tunnellingIEs__value {
+ DownlinkS1cdma2000tunnellingIEs__value_PR present;
+ union DownlinkS1cdma2000tunnellingIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ E_RABSubjecttoDataForwardingList_t E_RABSubjecttoDataForwardingList;
+ Cdma2000HOStatus_t Cdma2000HOStatus;
+ Cdma2000RATType_t Cdma2000RATType;
+ Cdma2000PDU_t Cdma2000PDU;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} DownlinkS1cdma2000tunnellingIEs_t;
+typedef struct UplinkS1cdma2000tunnellingIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct UplinkS1cdma2000tunnellingIEs__value {
+ UplinkS1cdma2000tunnellingIEs__value_PR present;
+ union UplinkS1cdma2000tunnellingIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ Cdma2000RATType_t Cdma2000RATType;
+ Cdma2000SectorID_t Cdma2000SectorID;
+ Cdma2000HORequiredIndication_t Cdma2000HORequiredIndication;
+ Cdma2000OneXSRVCCInfo_t Cdma2000OneXSRVCCInfo;
+ Cdma2000OneXRAND_t Cdma2000OneXRAND;
+ Cdma2000PDU_t Cdma2000PDU;
+ EUTRANRoundTripDelayEstimationInfo_t EUTRANRoundTripDelayEstimationInfo;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UplinkS1cdma2000tunnellingIEs_t;
+typedef struct UECapabilityInfoIndicationIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct UECapabilityInfoIndicationIEs__value {
+ UECapabilityInfoIndicationIEs__value_PR present;
+ union UECapabilityInfoIndicationIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ UERadioCapability_t UERadioCapability;
+ UERadioCapabilityForPaging_t UERadioCapabilityForPaging;
+ UE_Application_Layer_Measurement_Capability_t UE_Application_Layer_Measurement_Capability;
+ LTE_M_Indication_t LTE_M_Indication;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UECapabilityInfoIndicationIEs_t;
+typedef struct ENBStatusTransferIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct ENBStatusTransferIEs__value {
+ ENBStatusTransferIEs__value_PR present;
+ union ENBStatusTransferIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ ENB_StatusTransfer_TransparentContainer_t ENB_StatusTransfer_TransparentContainer;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ENBStatusTransferIEs_t;
+typedef struct MMEStatusTransferIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct MMEStatusTransferIEs__value {
+ MMEStatusTransferIEs__value_PR present;
+ union MMEStatusTransferIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ ENB_StatusTransfer_TransparentContainer_t ENB_StatusTransfer_TransparentContainer;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} MMEStatusTransferIEs_t;
+typedef struct TraceStartIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct TraceStartIEs__value {
+ TraceStartIEs__value_PR present;
+ union TraceStartIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ TraceActivation_t TraceActivation;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} TraceStartIEs_t;
+typedef struct TraceFailureIndicationIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct TraceFailureIndicationIEs__value {
+ TraceFailureIndicationIEs__value_PR present;
+ union TraceFailureIndicationIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ E_UTRAN_Trace_ID_t E_UTRAN_Trace_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;
+} TraceFailureIndicationIEs_t;
+typedef struct DeactivateTraceIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct DeactivateTraceIEs__value {
+ DeactivateTraceIEs__value_PR present;
+ union DeactivateTraceIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ E_UTRAN_Trace_ID_t E_UTRAN_Trace_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;
+} DeactivateTraceIEs_t;
+typedef struct CellTrafficTraceIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct CellTrafficTraceIEs__value {
+ CellTrafficTraceIEs__value_PR present;
+ union CellTrafficTraceIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ E_UTRAN_Trace_ID_t E_UTRAN_Trace_ID;
+ EUTRAN_CGI_t EUTRAN_CGI;
+ TransportLayerAddress_t TransportLayerAddress;
+ PrivacyIndicator_t PrivacyIndicator;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} CellTrafficTraceIEs_t;
+typedef struct LocationReportingControlIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct LocationReportingControlIEs__value {
+ LocationReportingControlIEs__value_PR present;
+ union LocationReportingControlIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ RequestType_t RequestType;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} LocationReportingControlIEs_t;
+typedef struct LocationReportingFailureIndicationIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct LocationReportingFailureIndicationIEs__value {
+ LocationReportingFailureIndicationIEs__value_PR present;
+ union LocationReportingFailureIndicationIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_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;
+} LocationReportingFailureIndicationIEs_t;
+typedef struct LocationReportIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct LocationReportIEs__value {
+ LocationReportIEs__value_PR present;
+ union LocationReportIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ EUTRAN_CGI_t EUTRAN_CGI;
+ TAI_t TAI;
+ RequestType_t RequestType;
+ PSCellInformation_t PSCellInformation;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} LocationReportIEs_t;
+typedef struct OverloadStartIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct OverloadStartIEs__value {
+ OverloadStartIEs__value_PR present;
+ union OverloadStartIEs__value_u {
+ OverloadResponse_t OverloadResponse;
+ GUMMEIList_t GUMMEIList;
+ TrafficLoadReductionIndication_t TrafficLoadReductionIndication;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} OverloadStartIEs_t;
+typedef struct OverloadStopIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct OverloadStopIEs__value {
+ OverloadStopIEs__value_PR present;
+ union OverloadStopIEs__value_u {
+ GUMMEIList_t GUMMEIList;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} OverloadStopIEs_t;
+typedef struct WriteReplaceWarningRequestIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct WriteReplaceWarningRequestIEs__value {
+ WriteReplaceWarningRequestIEs__value_PR present;
+ union WriteReplaceWarningRequestIEs__value_u {
+ MessageIdentifier_t MessageIdentifier;
+ SerialNumber_t SerialNumber;
+ WarningAreaList_t WarningAreaList;
+ RepetitionPeriod_t RepetitionPeriod;
+ ExtendedRepetitionPeriod_t ExtendedRepetitionPeriod;
+ NumberofBroadcastRequest_t NumberofBroadcastRequest;
+ WarningType_t WarningType;
+ WarningSecurityInfo_t WarningSecurityInfo;
+ DataCodingScheme_t DataCodingScheme;
+ WarningMessageContents_t WarningMessageContents;
+ ConcurrentWarningMessageIndicator_t ConcurrentWarningMessageIndicator;
+ WarningAreaCoordinates_t WarningAreaCoordinates;
+ } choice;
+
+ /* Context 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 {
+ MessageIdentifier_t MessageIdentifier;
+ SerialNumber_t SerialNumber;
+ BroadcastCompletedAreaList_t BroadcastCompletedAreaList;
+ 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;
+} WriteReplaceWarningResponseIEs_t;
+typedef struct ENBDirectInformationTransferIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct ENBDirectInformationTransferIEs__value {
+ ENBDirectInformationTransferIEs__value_PR present;
+ union ENBDirectInformationTransferIEs__value_u {
+ Inter_SystemInformationTransferType_t Inter_SystemInformationTransferType;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ENBDirectInformationTransferIEs_t;
+typedef struct MMEDirectInformationTransferIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct MMEDirectInformationTransferIEs__value {
+ MMEDirectInformationTransferIEs__value_PR present;
+ union MMEDirectInformationTransferIEs__value_u {
+ Inter_SystemInformationTransferType_t Inter_SystemInformationTransferType;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} MMEDirectInformationTransferIEs_t;
+typedef struct ENBConfigurationTransferIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct ENBConfigurationTransferIEs__value {
+ ENBConfigurationTransferIEs__value_PR present;
+ union ENBConfigurationTransferIEs__value_u {
+ SONConfigurationTransfer_t SONConfigurationTransfer;
+ EN_DCSONConfigurationTransfer_t EN_DCSONConfigurationTransfer;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ENBConfigurationTransferIEs_t;
+typedef struct MMEConfigurationTransferIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct MMEConfigurationTransferIEs__value {
+ MMEConfigurationTransferIEs__value_PR present;
+ union MMEConfigurationTransferIEs__value_u {
+ SONConfigurationTransfer_t SONConfigurationTransfer;
+ EN_DCSONConfigurationTransfer_t EN_DCSONConfigurationTransfer;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} MMEConfigurationTransferIEs_t;
+typedef struct KillRequestIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct KillRequestIEs__value {
+ KillRequestIEs__value_PR present;
+ union KillRequestIEs__value_u {
+ MessageIdentifier_t MessageIdentifier;
+ SerialNumber_t SerialNumber;
+ WarningAreaList_t WarningAreaList;
+ KillAllWarningMessages_t KillAllWarningMessages;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} KillRequestIEs_t;
+typedef struct KillResponseIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct KillResponseIEs__value {
+ KillResponseIEs__value_PR present;
+ union KillResponseIEs__value_u {
+ MessageIdentifier_t MessageIdentifier;
+ SerialNumber_t SerialNumber;
+ BroadcastCancelledAreaList_t BroadcastCancelledAreaList;
+ 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;
+} KillResponseIEs_t;
+typedef struct PWSRestartIndicationIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct PWSRestartIndicationIEs__value {
+ PWSRestartIndicationIEs__value_PR present;
+ union PWSRestartIndicationIEs__value_u {
+ ECGIListForRestart_t ECGIListForRestart;
+ Global_ENB_ID_t Global_ENB_ID;
+ TAIListForRestart_t TAIListForRestart;
+ EmergencyAreaIDListForRestart_t EmergencyAreaIDListForRestart;
+ } choice;
+
+ /* Context 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 {
+ PWSfailedECGIList_t PWSfailedECGIList;
+ Global_ENB_ID_t Global_ENB_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;
+} PWSFailureIndicationIEs_t;
+typedef struct DownlinkUEAssociatedLPPaTransport_IEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct DownlinkUEAssociatedLPPaTransport_IEs__value {
+ DownlinkUEAssociatedLPPaTransport_IEs__value_PR present;
+ union DownlinkUEAssociatedLPPaTransport_IEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ Routing_ID_t Routing_ID;
+ LPPa_PDU_t LPPa_PDU;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} DownlinkUEAssociatedLPPaTransport_IEs_t;
+typedef struct UplinkUEAssociatedLPPaTransport_IEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct UplinkUEAssociatedLPPaTransport_IEs__value {
+ UplinkUEAssociatedLPPaTransport_IEs__value_PR present;
+ union UplinkUEAssociatedLPPaTransport_IEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ Routing_ID_t Routing_ID;
+ LPPa_PDU_t LPPa_PDU;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UplinkUEAssociatedLPPaTransport_IEs_t;
+typedef struct DownlinkNonUEAssociatedLPPaTransport_IEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct DownlinkNonUEAssociatedLPPaTransport_IEs__value {
+ DownlinkNonUEAssociatedLPPaTransport_IEs__value_PR present;
+ union DownlinkNonUEAssociatedLPPaTransport_IEs__value_u {
+ Routing_ID_t Routing_ID;
+ LPPa_PDU_t LPPa_PDU;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} DownlinkNonUEAssociatedLPPaTransport_IEs_t;
+typedef struct UplinkNonUEAssociatedLPPaTransport_IEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct UplinkNonUEAssociatedLPPaTransport_IEs__value {
+ UplinkNonUEAssociatedLPPaTransport_IEs__value_PR present;
+ union UplinkNonUEAssociatedLPPaTransport_IEs__value_u {
+ Routing_ID_t Routing_ID;
+ LPPa_PDU_t LPPa_PDU;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UplinkNonUEAssociatedLPPaTransport_IEs_t;
+typedef struct E_RABModificationIndicationIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABModificationIndicationIEs__value {
+ E_RABModificationIndicationIEs__value_PR present;
+ union E_RABModificationIndicationIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ E_RABToBeModifiedListBearerModInd_t E_RABToBeModifiedListBearerModInd;
+ E_RABNotToBeModifiedListBearerModInd_t E_RABNotToBeModifiedListBearerModInd;
+ CSGMembershipInfo_t CSGMembershipInfo;
+ TunnelInformation_t TunnelInformation;
+ SecondaryRATDataUsageReportList_t SecondaryRATDataUsageReportList;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABModificationIndicationIEs_t;
+typedef struct E_RABModificationConfirmIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABModificationConfirmIEs__value {
+ E_RABModificationConfirmIEs__value_PR present;
+ union E_RABModificationConfirmIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ E_RABModifyListBearerModConf_t E_RABModifyListBearerModConf;
+ E_RABList_t E_RABList;
+ E_RABList_t E_RABList_1;
+ CriticalityDiagnostics_t CriticalityDiagnostics;
+ CSGMembershipStatus_t CSGMembershipStatus;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABModificationConfirmIEs_t;
+typedef struct UEContextModificationIndicationIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct UEContextModificationIndicationIEs__value {
+ UEContextModificationIndicationIEs__value_PR present;
+ union UEContextModificationIndicationIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ CSGMembershipInfo_t CSGMembershipInfo;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UEContextModificationIndicationIEs_t;
+typedef struct UEContextModificationConfirmIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct UEContextModificationConfirmIEs__value {
+ UEContextModificationConfirmIEs__value_PR present;
+ union UEContextModificationConfirmIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ CSGMembershipStatus_t CSGMembershipStatus;
+ 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;
+} UEContextModificationConfirmIEs_t;
+typedef struct UEContextSuspendRequestIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct UEContextSuspendRequestIEs__value {
+ UEContextSuspendRequestIEs__value_PR present;
+ union UEContextSuspendRequestIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ InformationOnRecommendedCellsAndENBsForPaging_t InformationOnRecommendedCellsAndENBsForPaging;
+ CellIdentifierAndCELevelForCECapableUEs_t CellIdentifierAndCELevelForCECapableUEs;
+ SecondaryRATDataUsageReportList_t SecondaryRATDataUsageReportList;
+ UserLocationInformation_t UserLocationInformation;
+ TimeSinceSecondaryNodeRelease_t TimeSinceSecondaryNodeRelease;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UEContextSuspendRequestIEs_t;
+typedef struct UEContextSuspendResponseIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct UEContextSuspendResponseIEs__value {
+ UEContextSuspendResponseIEs__value_PR present;
+ union UEContextSuspendResponseIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ CriticalityDiagnostics_t CriticalityDiagnostics;
+ SecurityContext_t SecurityContext;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UEContextSuspendResponseIEs_t;
+typedef struct UEContextResumeRequestIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct UEContextResumeRequestIEs__value {
+ UEContextResumeRequestIEs__value_PR present;
+ union UEContextResumeRequestIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ E_RABFailedToResumeListResumeReq_t E_RABFailedToResumeListResumeReq;
+ RRC_Establishment_Cause_t RRC_Establishment_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;
+} UEContextResumeRequestIEs_t;
+typedef struct UEContextResumeResponseIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct UEContextResumeResponseIEs__value {
+ UEContextResumeResponseIEs__value_PR present;
+ union UEContextResumeResponseIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ E_RABFailedToResumeListResumeRes_t E_RABFailedToResumeListResumeRes;
+ CriticalityDiagnostics_t CriticalityDiagnostics;
+ SecurityContext_t SecurityContext;
+ PendingDataIndication_t PendingDataIndication;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UEContextResumeResponseIEs_t;
+typedef struct UEContextResumeFailureIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct UEContextResumeFailureIEs__value {
+ UEContextResumeFailureIEs__value_PR present;
+ union UEContextResumeFailureIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_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;
+} UEContextResumeFailureIEs_t;
+typedef struct ConnectionEstablishmentIndicationIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct ConnectionEstablishmentIndicationIEs__value {
+ ConnectionEstablishmentIndicationIEs__value_PR present;
+ union ConnectionEstablishmentIndicationIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ UERadioCapability_t UERadioCapability;
+ EnhancedCoverageRestricted_t EnhancedCoverageRestricted;
+ DL_CP_SecurityInformation_t DL_CP_SecurityInformation;
+ CE_ModeBRestricted_t CE_ModeBRestricted;
+ EndIndication_t EndIndication;
+ Subscription_Based_UE_DifferentiationInfo_t Subscription_Based_UE_DifferentiationInfo;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ConnectionEstablishmentIndicationIEs_t;
+typedef struct RetrieveUEInformationIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct RetrieveUEInformationIEs__value {
+ RetrieveUEInformationIEs__value_PR present;
+ union RetrieveUEInformationIEs__value_u {
+ S_TMSI_t S_TMSI;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} RetrieveUEInformationIEs_t;
+typedef struct UEInformationTransferIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct UEInformationTransferIEs__value {
+ UEInformationTransferIEs__value_PR present;
+ union UEInformationTransferIEs__value_u {
+ S_TMSI_t S_TMSI;
+ E_RABLevelQoSParameters_t E_RABLevelQoSParameters;
+ UERadioCapability_t UERadioCapability;
+ Subscription_Based_UE_DifferentiationInfo_t Subscription_Based_UE_DifferentiationInfo;
+ PendingDataIndication_t PendingDataIndication;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UEInformationTransferIEs_t;
+typedef struct ENBCPRelocationIndicationIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct ENBCPRelocationIndicationIEs__value {
+ ENBCPRelocationIndicationIEs__value_PR present;
+ union ENBCPRelocationIndicationIEs__value_u {
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ S_TMSI_t S_TMSI;
+ EUTRAN_CGI_t EUTRAN_CGI;
+ TAI_t TAI;
+ UL_CP_SecurityInformation_t UL_CP_SecurityInformation;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ENBCPRelocationIndicationIEs_t;
+typedef struct MMECPRelocationIndicationIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct MMECPRelocationIndicationIEs__value {
+ MMECPRelocationIndicationIEs__value_PR present;
+ union MMECPRelocationIndicationIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_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;
+} MMECPRelocationIndicationIEs_t;
+typedef struct SecondaryRATDataUsageReportIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct SecondaryRATDataUsageReportIEs__value {
+ SecondaryRATDataUsageReportIEs__value_PR present;
+ union SecondaryRATDataUsageReportIEs__value_u {
+ MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ SecondaryRATDataUsageReportList_t SecondaryRATDataUsageReportList;
+ HandoverFlag_t HandoverFlag;
+ UserLocationInformation_t UserLocationInformation;
+ TimeSinceSecondaryNodeRelease_t TimeSinceSecondaryNodeRelease;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SecondaryRATDataUsageReportIEs_t;
+typedef struct E_RABDataForwardingItemIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABDataForwardingItemIEs__value {
+ E_RABDataForwardingItemIEs__value_PR present;
+ union E_RABDataForwardingItemIEs__value_u {
+ E_RABDataForwardingItem_t E_RABDataForwardingItem;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABDataForwardingItemIEs_t;
+typedef struct E_RABToBeSetupItemHOReqIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABToBeSetupItemHOReqIEs__value {
+ E_RABToBeSetupItemHOReqIEs__value_PR present;
+ union E_RABToBeSetupItemHOReqIEs__value_u {
+ E_RABToBeSetupItemHOReq_t E_RABToBeSetupItemHOReq;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABToBeSetupItemHOReqIEs_t;
+typedef struct E_RABAdmittedItemIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABAdmittedItemIEs__value {
+ E_RABAdmittedItemIEs__value_PR present;
+ union E_RABAdmittedItemIEs__value_u {
+ E_RABAdmittedItem_t E_RABAdmittedItem;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABAdmittedItemIEs_t;
+typedef struct E_RABFailedtoSetupItemHOReqAckIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABFailedtoSetupItemHOReqAckIEs__value {
+ E_RABFailedtoSetupItemHOReqAckIEs__value_PR present;
+ union E_RABFailedtoSetupItemHOReqAckIEs__value_u {
+ E_RABFailedToSetupItemHOReqAck_t E_RABFailedToSetupItemHOReqAck;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABFailedtoSetupItemHOReqAckIEs_t;
+typedef struct E_RABToBeSwitchedDLItemIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABToBeSwitchedDLItemIEs__value {
+ E_RABToBeSwitchedDLItemIEs__value_PR present;
+ union E_RABToBeSwitchedDLItemIEs__value_u {
+ E_RABToBeSwitchedDLItem_t E_RABToBeSwitchedDLItem;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABToBeSwitchedDLItemIEs_t;
+typedef struct E_RABToBeSwitchedULItemIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABToBeSwitchedULItemIEs__value {
+ E_RABToBeSwitchedULItemIEs__value_PR present;
+ union E_RABToBeSwitchedULItemIEs__value_u {
+ E_RABToBeSwitchedULItem_t E_RABToBeSwitchedULItem;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABToBeSwitchedULItemIEs_t;
+typedef struct E_RABToBeModifiedItemBearerModIndIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABToBeModifiedItemBearerModIndIEs__value {
+ E_RABToBeModifiedItemBearerModIndIEs__value_PR present;
+ union E_RABToBeModifiedItemBearerModIndIEs__value_u {
+ E_RABToBeModifiedItemBearerModInd_t E_RABToBeModifiedItemBearerModInd;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABToBeModifiedItemBearerModIndIEs_t;
+typedef struct E_RABNotToBeModifiedItemBearerModIndIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABNotToBeModifiedItemBearerModIndIEs__value {
+ E_RABNotToBeModifiedItemBearerModIndIEs__value_PR present;
+ union E_RABNotToBeModifiedItemBearerModIndIEs__value_u {
+ E_RABNotToBeModifiedItemBearerModInd_t E_RABNotToBeModifiedItemBearerModInd;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABNotToBeModifiedItemBearerModIndIEs_t;
+typedef struct E_RABFailedToResumeItemResumeReqIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABFailedToResumeItemResumeReqIEs__value {
+ E_RABFailedToResumeItemResumeReqIEs__value_PR present;
+ union E_RABFailedToResumeItemResumeReqIEs__value_u {
+ E_RABFailedToResumeItemResumeReq_t E_RABFailedToResumeItemResumeReq;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABFailedToResumeItemResumeReqIEs_t;
+typedef struct E_RABFailedToResumeItemResumeResIEs {
+ ProtocolIE_ID_t id;
+ Criticality_t criticality;
+ struct E_RABFailedToResumeItemResumeResIEs__value {
+ E_RABFailedToResumeItemResumeResIEs__value_PR present;
+ union E_RABFailedToResumeItemResumeResIEs__value_u {
+ E_RABFailedToResumeItemResumeRes_t E_RABFailedToResumeItemResumeRes;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} E_RABFailedToResumeItemResumeResIEs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Bearers_SubjectToStatusTransfer_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_Bearers_SubjectToStatusTransfer_ItemIEs_specs_1;
+extern asn_TYPE_member_t asn_MBR_Bearers_SubjectToStatusTransfer_ItemIEs_1[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABInformationListIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABInformationListIEs_specs_5;
+extern asn_TYPE_member_t asn_MBR_E_RABInformationListIEs_5[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABItemIEs_specs_9;
+extern asn_TYPE_member_t asn_MBR_E_RABItemIEs_9[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABUsageReportItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABUsageReportItemIEs_specs_13;
+extern asn_TYPE_member_t asn_MBR_E_RABUsageReportItemIEs_13[3];
+extern asn_TYPE_descriptor_t asn_DEF_MDTMode_ExtensionIE;
+extern asn_SEQUENCE_specifics_t asn_SPC_MDTMode_ExtensionIE_specs_17;
+extern asn_TYPE_member_t asn_MBR_MDTMode_ExtensionIE_17[3];
+extern asn_TYPE_descriptor_t asn_DEF_RecommendedCellItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RecommendedCellItemIEs_specs_21;
+extern asn_TYPE_member_t asn_MBR_RecommendedCellItemIEs_21[3];
+extern asn_TYPE_descriptor_t asn_DEF_RecommendedENBItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RecommendedENBItemIEs_specs_25;
+extern asn_TYPE_member_t asn_MBR_RecommendedENBItemIEs_25[3];
+extern asn_TYPE_descriptor_t asn_DEF_SecondaryRATDataUsageReportItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SecondaryRATDataUsageReportItemIEs_specs_29;
+extern asn_TYPE_member_t asn_MBR_SecondaryRATDataUsageReportItemIEs_29[3];
+extern asn_TYPE_descriptor_t asn_DEF_SONInformation_ExtensionIE;
+extern asn_SEQUENCE_specifics_t asn_SPC_SONInformation_ExtensionIE_specs_33;
+extern asn_TYPE_member_t asn_MBR_SONInformation_ExtensionIE_33[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeSetupItemBearerSUReqIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABToBeSetupItemBearerSUReqIEs_specs_37;
+extern asn_TYPE_member_t asn_MBR_E_RABToBeSetupItemBearerSUReqIEs_37[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABSetupItemBearerSUResIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABSetupItemBearerSUResIEs_specs_41;
+extern asn_TYPE_member_t asn_MBR_E_RABSetupItemBearerSUResIEs_41[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeModifiedItemBearerModReqIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABToBeModifiedItemBearerModReqIEs_specs_45;
+extern asn_TYPE_member_t asn_MBR_E_RABToBeModifiedItemBearerModReqIEs_45[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABModifyItemBearerModResIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABModifyItemBearerModResIEs_specs_49;
+extern asn_TYPE_member_t asn_MBR_E_RABModifyItemBearerModResIEs_49[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABReleaseItemBearerRelCompIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABReleaseItemBearerRelCompIEs_specs_53;
+extern asn_TYPE_member_t asn_MBR_E_RABReleaseItemBearerRelCompIEs_53[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeSetupItemCtxtSUReqIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABToBeSetupItemCtxtSUReqIEs_specs_57;
+extern asn_TYPE_member_t asn_MBR_E_RABToBeSetupItemCtxtSUReqIEs_57[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABSetupItemCtxtSUResIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABSetupItemCtxtSUResIEs_specs_61;
+extern asn_TYPE_member_t asn_MBR_E_RABSetupItemCtxtSUResIEs_61[3];
+extern asn_TYPE_descriptor_t asn_DEF_TAIItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_TAIItemIEs_specs_65;
+extern asn_TYPE_member_t asn_MBR_TAIItemIEs_65[3];
+extern asn_TYPE_descriptor_t asn_DEF_UE_associatedLogicalS1_ConnectionItemRes;
+extern asn_SEQUENCE_specifics_t asn_SPC_UE_associatedLogicalS1_ConnectionItemRes_specs_69;
+extern asn_TYPE_member_t asn_MBR_UE_associatedLogicalS1_ConnectionItemRes_69[3];
+extern asn_TYPE_descriptor_t asn_DEF_UE_associatedLogicalS1_ConnectionItemResAck;
+extern asn_SEQUENCE_specifics_t asn_SPC_UE_associatedLogicalS1_ConnectionItemResAck_specs_73;
+extern asn_TYPE_member_t asn_MBR_UE_associatedLogicalS1_ConnectionItemResAck_73[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABModifyItemBearerModConfIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABModifyItemBearerModConfIEs_specs_77;
+extern asn_TYPE_member_t asn_MBR_E_RABModifyItemBearerModConfIEs_77[3];
+extern asn_TYPE_descriptor_t asn_DEF_HandoverRequiredIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_HandoverRequiredIEs_specs_81;
+extern asn_TYPE_member_t asn_MBR_HandoverRequiredIEs_81[3];
+extern asn_TYPE_descriptor_t asn_DEF_HandoverCommandIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_HandoverCommandIEs_specs_85;
+extern asn_TYPE_member_t asn_MBR_HandoverCommandIEs_85[3];
+extern asn_TYPE_descriptor_t asn_DEF_HandoverPreparationFailureIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_HandoverPreparationFailureIEs_specs_89;
+extern asn_TYPE_member_t asn_MBR_HandoverPreparationFailureIEs_89[3];
+extern asn_TYPE_descriptor_t asn_DEF_HandoverRequestIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_HandoverRequestIEs_specs_93;
+extern asn_TYPE_member_t asn_MBR_HandoverRequestIEs_93[3];
+extern asn_TYPE_descriptor_t asn_DEF_HandoverRequestAcknowledgeIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_HandoverRequestAcknowledgeIEs_specs_97;
+extern asn_TYPE_member_t asn_MBR_HandoverRequestAcknowledgeIEs_97[3];
+extern asn_TYPE_descriptor_t asn_DEF_HandoverFailureIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_HandoverFailureIEs_specs_101;
+extern asn_TYPE_member_t asn_MBR_HandoverFailureIEs_101[3];
+extern asn_TYPE_descriptor_t asn_DEF_HandoverNotifyIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_HandoverNotifyIEs_specs_105;
+extern asn_TYPE_member_t asn_MBR_HandoverNotifyIEs_105[3];
+extern asn_TYPE_descriptor_t asn_DEF_PathSwitchRequestIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_PathSwitchRequestIEs_specs_109;
+extern asn_TYPE_member_t asn_MBR_PathSwitchRequestIEs_109[3];
+extern asn_TYPE_descriptor_t asn_DEF_PathSwitchRequestAcknowledgeIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_PathSwitchRequestAcknowledgeIEs_specs_113;
+extern asn_TYPE_member_t asn_MBR_PathSwitchRequestAcknowledgeIEs_113[3];
+extern asn_TYPE_descriptor_t asn_DEF_PathSwitchRequestFailureIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_PathSwitchRequestFailureIEs_specs_117;
+extern asn_TYPE_member_t asn_MBR_PathSwitchRequestFailureIEs_117[3];
+extern asn_TYPE_descriptor_t asn_DEF_HandoverCancelIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_HandoverCancelIEs_specs_121;
+extern asn_TYPE_member_t asn_MBR_HandoverCancelIEs_121[3];
+extern asn_TYPE_descriptor_t asn_DEF_HandoverCancelAcknowledgeIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_HandoverCancelAcknowledgeIEs_specs_125;
+extern asn_TYPE_member_t asn_MBR_HandoverCancelAcknowledgeIEs_125[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABSetupRequestIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABSetupRequestIEs_specs_129;
+extern asn_TYPE_member_t asn_MBR_E_RABSetupRequestIEs_129[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABSetupResponseIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABSetupResponseIEs_specs_133;
+extern asn_TYPE_member_t asn_MBR_E_RABSetupResponseIEs_133[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABModifyRequestIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABModifyRequestIEs_specs_137;
+extern asn_TYPE_member_t asn_MBR_E_RABModifyRequestIEs_137[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABModifyResponseIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABModifyResponseIEs_specs_141;
+extern asn_TYPE_member_t asn_MBR_E_RABModifyResponseIEs_141[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABReleaseCommandIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABReleaseCommandIEs_specs_145;
+extern asn_TYPE_member_t asn_MBR_E_RABReleaseCommandIEs_145[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABReleaseResponseIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABReleaseResponseIEs_specs_149;
+extern asn_TYPE_member_t asn_MBR_E_RABReleaseResponseIEs_149[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABReleaseIndicationIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABReleaseIndicationIEs_specs_153;
+extern asn_TYPE_member_t asn_MBR_E_RABReleaseIndicationIEs_153[3];
+extern asn_TYPE_descriptor_t asn_DEF_InitialContextSetupRequestIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_InitialContextSetupRequestIEs_specs_157;
+extern asn_TYPE_member_t asn_MBR_InitialContextSetupRequestIEs_157[3];
+extern asn_TYPE_descriptor_t asn_DEF_InitialContextSetupResponseIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_InitialContextSetupResponseIEs_specs_161;
+extern asn_TYPE_member_t asn_MBR_InitialContextSetupResponseIEs_161[3];
+extern asn_TYPE_descriptor_t asn_DEF_InitialContextSetupFailureIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_InitialContextSetupFailureIEs_specs_165;
+extern asn_TYPE_member_t asn_MBR_InitialContextSetupFailureIEs_165[3];
+extern asn_TYPE_descriptor_t asn_DEF_PagingIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_PagingIEs_specs_169;
+extern asn_TYPE_member_t asn_MBR_PagingIEs_169[3];
+extern asn_TYPE_descriptor_t asn_DEF_UEContextReleaseRequest_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEContextReleaseRequest_IEs_specs_173;
+extern asn_TYPE_member_t asn_MBR_UEContextReleaseRequest_IEs_173[3];
+extern asn_TYPE_descriptor_t asn_DEF_UEContextReleaseCommand_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEContextReleaseCommand_IEs_specs_177;
+extern asn_TYPE_member_t asn_MBR_UEContextReleaseCommand_IEs_177[3];
+extern asn_TYPE_descriptor_t asn_DEF_UEContextReleaseComplete_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEContextReleaseComplete_IEs_specs_181;
+extern asn_TYPE_member_t asn_MBR_UEContextReleaseComplete_IEs_181[3];
+extern asn_TYPE_descriptor_t asn_DEF_UEContextModificationRequestIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationRequestIEs_specs_185;
+extern asn_TYPE_member_t asn_MBR_UEContextModificationRequestIEs_185[3];
+extern asn_TYPE_descriptor_t asn_DEF_UEContextModificationResponseIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationResponseIEs_specs_189;
+extern asn_TYPE_member_t asn_MBR_UEContextModificationResponseIEs_189[3];
+extern asn_TYPE_descriptor_t asn_DEF_UEContextModificationFailureIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationFailureIEs_specs_193;
+extern asn_TYPE_member_t asn_MBR_UEContextModificationFailureIEs_193[3];
+extern asn_TYPE_descriptor_t asn_DEF_UERadioCapabilityMatchRequestIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UERadioCapabilityMatchRequestIEs_specs_197;
+extern asn_TYPE_member_t asn_MBR_UERadioCapabilityMatchRequestIEs_197[3];
+extern asn_TYPE_descriptor_t asn_DEF_UERadioCapabilityMatchResponseIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UERadioCapabilityMatchResponseIEs_specs_201;
+extern asn_TYPE_member_t asn_MBR_UERadioCapabilityMatchResponseIEs_201[3];
+extern asn_TYPE_descriptor_t asn_DEF_DownlinkNASTransport_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_DownlinkNASTransport_IEs_specs_205;
+extern asn_TYPE_member_t asn_MBR_DownlinkNASTransport_IEs_205[3];
+extern asn_TYPE_descriptor_t asn_DEF_InitialUEMessage_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_InitialUEMessage_IEs_specs_209;
+extern asn_TYPE_member_t asn_MBR_InitialUEMessage_IEs_209[3];
+extern asn_TYPE_descriptor_t asn_DEF_UplinkNASTransport_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UplinkNASTransport_IEs_specs_213;
+extern asn_TYPE_member_t asn_MBR_UplinkNASTransport_IEs_213[3];
+extern asn_TYPE_descriptor_t asn_DEF_NASNonDeliveryIndication_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_NASNonDeliveryIndication_IEs_specs_217;
+extern asn_TYPE_member_t asn_MBR_NASNonDeliveryIndication_IEs_217[3];
+extern asn_TYPE_descriptor_t asn_DEF_RerouteNASRequest_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RerouteNASRequest_IEs_specs_221;
+extern asn_TYPE_member_t asn_MBR_RerouteNASRequest_IEs_221[3];
+extern asn_TYPE_descriptor_t asn_DEF_NASDeliveryIndicationIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_NASDeliveryIndicationIEs_specs_225;
+extern asn_TYPE_member_t asn_MBR_NASDeliveryIndicationIEs_225[3];
+extern asn_TYPE_descriptor_t asn_DEF_ResetIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ResetIEs_specs_229;
+extern asn_TYPE_member_t asn_MBR_ResetIEs_229[3];
+extern asn_TYPE_descriptor_t asn_DEF_ResetAcknowledgeIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ResetAcknowledgeIEs_specs_233;
+extern asn_TYPE_member_t asn_MBR_ResetAcknowledgeIEs_233[3];
+extern asn_TYPE_descriptor_t asn_DEF_ErrorIndicationIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndicationIEs_specs_237;
+extern asn_TYPE_member_t asn_MBR_ErrorIndicationIEs_237[3];
+extern asn_TYPE_descriptor_t asn_DEF_S1SetupRequestIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_S1SetupRequestIEs_specs_241;
+extern asn_TYPE_member_t asn_MBR_S1SetupRequestIEs_241[3];
+extern asn_TYPE_descriptor_t asn_DEF_S1SetupResponseIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_S1SetupResponseIEs_specs_245;
+extern asn_TYPE_member_t asn_MBR_S1SetupResponseIEs_245[3];
+extern asn_TYPE_descriptor_t asn_DEF_S1SetupFailureIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_S1SetupFailureIEs_specs_249;
+extern asn_TYPE_member_t asn_MBR_S1SetupFailureIEs_249[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdateIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdateIEs_specs_253;
+extern asn_TYPE_member_t asn_MBR_ENBConfigurationUpdateIEs_253[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdateAcknowledgeIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdateAcknowledgeIEs_specs_257;
+extern asn_TYPE_member_t asn_MBR_ENBConfigurationUpdateAcknowledgeIEs_257[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdateFailureIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdateFailureIEs_specs_261;
+extern asn_TYPE_member_t asn_MBR_ENBConfigurationUpdateFailureIEs_261[3];
+extern asn_TYPE_descriptor_t asn_DEF_MMEConfigurationUpdateIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_MMEConfigurationUpdateIEs_specs_265;
+extern asn_TYPE_member_t asn_MBR_MMEConfigurationUpdateIEs_265[3];
+extern asn_TYPE_descriptor_t asn_DEF_MMEConfigurationUpdateAcknowledgeIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_MMEConfigurationUpdateAcknowledgeIEs_specs_269;
+extern asn_TYPE_member_t asn_MBR_MMEConfigurationUpdateAcknowledgeIEs_269[3];
+extern asn_TYPE_descriptor_t asn_DEF_MMEConfigurationUpdateFailureIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_MMEConfigurationUpdateFailureIEs_specs_273;
+extern asn_TYPE_member_t asn_MBR_MMEConfigurationUpdateFailureIEs_273[3];
+extern asn_TYPE_descriptor_t asn_DEF_DownlinkS1cdma2000tunnellingIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_DownlinkS1cdma2000tunnellingIEs_specs_277;
+extern asn_TYPE_member_t asn_MBR_DownlinkS1cdma2000tunnellingIEs_277[3];
+extern asn_TYPE_descriptor_t asn_DEF_UplinkS1cdma2000tunnellingIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UplinkS1cdma2000tunnellingIEs_specs_281;
+extern asn_TYPE_member_t asn_MBR_UplinkS1cdma2000tunnellingIEs_281[3];
+extern asn_TYPE_descriptor_t asn_DEF_UECapabilityInfoIndicationIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UECapabilityInfoIndicationIEs_specs_285;
+extern asn_TYPE_member_t asn_MBR_UECapabilityInfoIndicationIEs_285[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENBStatusTransferIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENBStatusTransferIEs_specs_289;
+extern asn_TYPE_member_t asn_MBR_ENBStatusTransferIEs_289[3];
+extern asn_TYPE_descriptor_t asn_DEF_MMEStatusTransferIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_MMEStatusTransferIEs_specs_293;
+extern asn_TYPE_member_t asn_MBR_MMEStatusTransferIEs_293[3];
+extern asn_TYPE_descriptor_t asn_DEF_TraceStartIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_TraceStartIEs_specs_297;
+extern asn_TYPE_member_t asn_MBR_TraceStartIEs_297[3];
+extern asn_TYPE_descriptor_t asn_DEF_TraceFailureIndicationIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_TraceFailureIndicationIEs_specs_301;
+extern asn_TYPE_member_t asn_MBR_TraceFailureIndicationIEs_301[3];
+extern asn_TYPE_descriptor_t asn_DEF_DeactivateTraceIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_DeactivateTraceIEs_specs_305;
+extern asn_TYPE_member_t asn_MBR_DeactivateTraceIEs_305[3];
+extern asn_TYPE_descriptor_t asn_DEF_CellTrafficTraceIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellTrafficTraceIEs_specs_309;
+extern asn_TYPE_member_t asn_MBR_CellTrafficTraceIEs_309[3];
+extern asn_TYPE_descriptor_t asn_DEF_LocationReportingControlIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_LocationReportingControlIEs_specs_313;
+extern asn_TYPE_member_t asn_MBR_LocationReportingControlIEs_313[3];
+extern asn_TYPE_descriptor_t asn_DEF_LocationReportingFailureIndicationIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_LocationReportingFailureIndicationIEs_specs_317;
+extern asn_TYPE_member_t asn_MBR_LocationReportingFailureIndicationIEs_317[3];
+extern asn_TYPE_descriptor_t asn_DEF_LocationReportIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_LocationReportIEs_specs_321;
+extern asn_TYPE_member_t asn_MBR_LocationReportIEs_321[3];
+extern asn_TYPE_descriptor_t asn_DEF_OverloadStartIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_OverloadStartIEs_specs_325;
+extern asn_TYPE_member_t asn_MBR_OverloadStartIEs_325[3];
+extern asn_TYPE_descriptor_t asn_DEF_OverloadStopIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_OverloadStopIEs_specs_329;
+extern asn_TYPE_member_t asn_MBR_OverloadStopIEs_329[3];
+extern asn_TYPE_descriptor_t asn_DEF_WriteReplaceWarningRequestIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_WriteReplaceWarningRequestIEs_specs_333;
+extern asn_TYPE_member_t asn_MBR_WriteReplaceWarningRequestIEs_333[3];
+extern asn_TYPE_descriptor_t asn_DEF_WriteReplaceWarningResponseIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_WriteReplaceWarningResponseIEs_specs_337;
+extern asn_TYPE_member_t asn_MBR_WriteReplaceWarningResponseIEs_337[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENBDirectInformationTransferIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENBDirectInformationTransferIEs_specs_341;
+extern asn_TYPE_member_t asn_MBR_ENBDirectInformationTransferIEs_341[3];
+extern asn_TYPE_descriptor_t asn_DEF_MMEDirectInformationTransferIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_MMEDirectInformationTransferIEs_specs_345;
+extern asn_TYPE_member_t asn_MBR_MMEDirectInformationTransferIEs_345[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENBConfigurationTransferIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationTransferIEs_specs_349;
+extern asn_TYPE_member_t asn_MBR_ENBConfigurationTransferIEs_349[3];
+extern asn_TYPE_descriptor_t asn_DEF_MMEConfigurationTransferIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_MMEConfigurationTransferIEs_specs_353;
+extern asn_TYPE_member_t asn_MBR_MMEConfigurationTransferIEs_353[3];
+extern asn_TYPE_descriptor_t asn_DEF_KillRequestIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_KillRequestIEs_specs_357;
+extern asn_TYPE_member_t asn_MBR_KillRequestIEs_357[3];
+extern asn_TYPE_descriptor_t asn_DEF_KillResponseIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_KillResponseIEs_specs_361;
+extern asn_TYPE_member_t asn_MBR_KillResponseIEs_361[3];
+extern asn_TYPE_descriptor_t asn_DEF_PWSRestartIndicationIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_PWSRestartIndicationIEs_specs_365;
+extern asn_TYPE_member_t asn_MBR_PWSRestartIndicationIEs_365[3];
+extern asn_TYPE_descriptor_t asn_DEF_PWSFailureIndicationIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_PWSFailureIndicationIEs_specs_369;
+extern asn_TYPE_member_t asn_MBR_PWSFailureIndicationIEs_369[3];
+extern asn_TYPE_descriptor_t asn_DEF_DownlinkUEAssociatedLPPaTransport_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_DownlinkUEAssociatedLPPaTransport_IEs_specs_373;
+extern asn_TYPE_member_t asn_MBR_DownlinkUEAssociatedLPPaTransport_IEs_373[3];
+extern asn_TYPE_descriptor_t asn_DEF_UplinkUEAssociatedLPPaTransport_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UplinkUEAssociatedLPPaTransport_IEs_specs_377;
+extern asn_TYPE_member_t asn_MBR_UplinkUEAssociatedLPPaTransport_IEs_377[3];
+extern asn_TYPE_descriptor_t asn_DEF_DownlinkNonUEAssociatedLPPaTransport_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_DownlinkNonUEAssociatedLPPaTransport_IEs_specs_381;
+extern asn_TYPE_member_t asn_MBR_DownlinkNonUEAssociatedLPPaTransport_IEs_381[3];
+extern asn_TYPE_descriptor_t asn_DEF_UplinkNonUEAssociatedLPPaTransport_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UplinkNonUEAssociatedLPPaTransport_IEs_specs_385;
+extern asn_TYPE_member_t asn_MBR_UplinkNonUEAssociatedLPPaTransport_IEs_385[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABModificationIndicationIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABModificationIndicationIEs_specs_389;
+extern asn_TYPE_member_t asn_MBR_E_RABModificationIndicationIEs_389[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABModificationConfirmIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABModificationConfirmIEs_specs_393;
+extern asn_TYPE_member_t asn_MBR_E_RABModificationConfirmIEs_393[3];
+extern asn_TYPE_descriptor_t asn_DEF_UEContextModificationIndicationIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationIndicationIEs_specs_397;
+extern asn_TYPE_member_t asn_MBR_UEContextModificationIndicationIEs_397[3];
+extern asn_TYPE_descriptor_t asn_DEF_UEContextModificationConfirmIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEContextModificationConfirmIEs_specs_401;
+extern asn_TYPE_member_t asn_MBR_UEContextModificationConfirmIEs_401[3];
+extern asn_TYPE_descriptor_t asn_DEF_UEContextSuspendRequestIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEContextSuspendRequestIEs_specs_405;
+extern asn_TYPE_member_t asn_MBR_UEContextSuspendRequestIEs_405[3];
+extern asn_TYPE_descriptor_t asn_DEF_UEContextSuspendResponseIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEContextSuspendResponseIEs_specs_409;
+extern asn_TYPE_member_t asn_MBR_UEContextSuspendResponseIEs_409[3];
+extern asn_TYPE_descriptor_t asn_DEF_UEContextResumeRequestIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEContextResumeRequestIEs_specs_413;
+extern asn_TYPE_member_t asn_MBR_UEContextResumeRequestIEs_413[3];
+extern asn_TYPE_descriptor_t asn_DEF_UEContextResumeResponseIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEContextResumeResponseIEs_specs_417;
+extern asn_TYPE_member_t asn_MBR_UEContextResumeResponseIEs_417[3];
+extern asn_TYPE_descriptor_t asn_DEF_UEContextResumeFailureIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEContextResumeFailureIEs_specs_421;
+extern asn_TYPE_member_t asn_MBR_UEContextResumeFailureIEs_421[3];
+extern asn_TYPE_descriptor_t asn_DEF_ConnectionEstablishmentIndicationIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ConnectionEstablishmentIndicationIEs_specs_425;
+extern asn_TYPE_member_t asn_MBR_ConnectionEstablishmentIndicationIEs_425[3];
+extern asn_TYPE_descriptor_t asn_DEF_RetrieveUEInformationIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RetrieveUEInformationIEs_specs_429;
+extern asn_TYPE_member_t asn_MBR_RetrieveUEInformationIEs_429[3];
+extern asn_TYPE_descriptor_t asn_DEF_UEInformationTransferIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEInformationTransferIEs_specs_433;
+extern asn_TYPE_member_t asn_MBR_UEInformationTransferIEs_433[3];
+extern asn_TYPE_descriptor_t asn_DEF_ENBCPRelocationIndicationIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_ENBCPRelocationIndicationIEs_specs_437;
+extern asn_TYPE_member_t asn_MBR_ENBCPRelocationIndicationIEs_437[3];
+extern asn_TYPE_descriptor_t asn_DEF_MMECPRelocationIndicationIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_MMECPRelocationIndicationIEs_specs_441;
+extern asn_TYPE_member_t asn_MBR_MMECPRelocationIndicationIEs_441[3];
+extern asn_TYPE_descriptor_t asn_DEF_SecondaryRATDataUsageReportIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_SecondaryRATDataUsageReportIEs_specs_445;
+extern asn_TYPE_member_t asn_MBR_SecondaryRATDataUsageReportIEs_445[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABDataForwardingItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABDataForwardingItemIEs_specs_449;
+extern asn_TYPE_member_t asn_MBR_E_RABDataForwardingItemIEs_449[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeSetupItemHOReqIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABToBeSetupItemHOReqIEs_specs_453;
+extern asn_TYPE_member_t asn_MBR_E_RABToBeSetupItemHOReqIEs_453[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABAdmittedItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABAdmittedItemIEs_specs_457;
+extern asn_TYPE_member_t asn_MBR_E_RABAdmittedItemIEs_457[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABFailedtoSetupItemHOReqAckIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABFailedtoSetupItemHOReqAckIEs_specs_461;
+extern asn_TYPE_member_t asn_MBR_E_RABFailedtoSetupItemHOReqAckIEs_461[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeSwitchedDLItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABToBeSwitchedDLItemIEs_specs_465;
+extern asn_TYPE_member_t asn_MBR_E_RABToBeSwitchedDLItemIEs_465[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeSwitchedULItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABToBeSwitchedULItemIEs_specs_469;
+extern asn_TYPE_member_t asn_MBR_E_RABToBeSwitchedULItemIEs_469[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABToBeModifiedItemBearerModIndIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABToBeModifiedItemBearerModIndIEs_specs_473;
+extern asn_TYPE_member_t asn_MBR_E_RABToBeModifiedItemBearerModIndIEs_473[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABNotToBeModifiedItemBearerModIndIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABNotToBeModifiedItemBearerModIndIEs_specs_477;
+extern asn_TYPE_member_t asn_MBR_E_RABNotToBeModifiedItemBearerModIndIEs_477[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABFailedToResumeItemResumeReqIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABFailedToResumeItemResumeReqIEs_specs_481;
+extern asn_TYPE_member_t asn_MBR_E_RABFailedToResumeItemResumeReqIEs_481[3];
+extern asn_TYPE_descriptor_t asn_DEF_E_RABFailedToResumeItemResumeResIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E_RABFailedToResumeItemResumeResIEs_specs_485;
+extern asn_TYPE_member_t asn_MBR_E_RABFailedToResumeItemResumeResIEs_485[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProtocolIE_Field_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ProtocolIE-FieldPair.h b/src/s1ap/asn1c/asnGenFiles/ProtocolIE-FieldPair.h
new file mode 100644
index 0000000..4fb1c6a
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ProtocolIE-FieldPair.h
@@ -0,0 +1,23 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-Containers"
+ * found in "./asn1c/S1AP-Containers.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ProtocolIE_FieldPair_H_
+#define _ProtocolIE_FieldPair_H_
+
+
+#include <asn_application.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProtocolIE_FieldPair_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ProtocolIE-ID.h b/src/s1ap/asn1c/asnGenFiles/ProtocolIE-ID.h
new file mode 100644
index 0000000..d74696d
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ProtocolIE-ID.h
@@ -0,0 +1,325 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-CommonDataTypes"
+ * found in "./asn1c/S1AP-CommonDataTypes.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ProtocolIE_ID_H_
+#define _ProtocolIE_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ProtocolIE-ID */
+typedef long ProtocolIE_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ID;
+asn_struct_free_f ProtocolIE_ID_free;
+asn_struct_print_f ProtocolIE_ID_print;
+asn_constr_check_f ProtocolIE_ID_constraint;
+ber_type_decoder_f ProtocolIE_ID_decode_ber;
+der_type_encoder_f ProtocolIE_ID_encode_der;
+xer_type_decoder_f ProtocolIE_ID_decode_xer;
+xer_type_encoder_f ProtocolIE_ID_encode_xer;
+oer_type_decoder_f ProtocolIE_ID_decode_oer;
+oer_type_encoder_f ProtocolIE_ID_encode_oer;
+per_type_decoder_f ProtocolIE_ID_decode_uper;
+per_type_encoder_f ProtocolIE_ID_encode_uper;
+per_type_decoder_f ProtocolIE_ID_decode_aper;
+per_type_encoder_f ProtocolIE_ID_encode_aper;
+#define ProtocolIE_ID_id_MME_UE_S1AP_ID ((ProtocolIE_ID_t)0)
+#define ProtocolIE_ID_id_HandoverType ((ProtocolIE_ID_t)1)
+#define ProtocolIE_ID_id_Cause ((ProtocolIE_ID_t)2)
+#define ProtocolIE_ID_id_SourceID ((ProtocolIE_ID_t)3)
+#define ProtocolIE_ID_id_TargetID ((ProtocolIE_ID_t)4)
+#define ProtocolIE_ID_id_eNB_UE_S1AP_ID ((ProtocolIE_ID_t)8)
+#define ProtocolIE_ID_id_E_RABSubjecttoDataForwardingList ((ProtocolIE_ID_t)12)
+#define ProtocolIE_ID_id_E_RABtoReleaseListHOCmd ((ProtocolIE_ID_t)13)
+#define ProtocolIE_ID_id_E_RABDataForwardingItem ((ProtocolIE_ID_t)14)
+#define ProtocolIE_ID_id_E_RABReleaseItemBearerRelComp ((ProtocolIE_ID_t)15)
+#define ProtocolIE_ID_id_E_RABToBeSetupListBearerSUReq ((ProtocolIE_ID_t)16)
+#define ProtocolIE_ID_id_E_RABToBeSetupItemBearerSUReq ((ProtocolIE_ID_t)17)
+#define ProtocolIE_ID_id_E_RABAdmittedList ((ProtocolIE_ID_t)18)
+#define ProtocolIE_ID_id_E_RABFailedToSetupListHOReqAck ((ProtocolIE_ID_t)19)
+#define ProtocolIE_ID_id_E_RABAdmittedItem ((ProtocolIE_ID_t)20)
+#define ProtocolIE_ID_id_E_RABFailedtoSetupItemHOReqAck ((ProtocolIE_ID_t)21)
+#define ProtocolIE_ID_id_E_RABToBeSwitchedDLList ((ProtocolIE_ID_t)22)
+#define ProtocolIE_ID_id_E_RABToBeSwitchedDLItem ((ProtocolIE_ID_t)23)
+#define ProtocolIE_ID_id_E_RABToBeSetupListCtxtSUReq ((ProtocolIE_ID_t)24)
+#define ProtocolIE_ID_id_TraceActivation ((ProtocolIE_ID_t)25)
+#define ProtocolIE_ID_id_NAS_PDU ((ProtocolIE_ID_t)26)
+#define ProtocolIE_ID_id_E_RABToBeSetupItemHOReq ((ProtocolIE_ID_t)27)
+#define ProtocolIE_ID_id_E_RABSetupListBearerSURes ((ProtocolIE_ID_t)28)
+#define ProtocolIE_ID_id_E_RABFailedToSetupListBearerSURes ((ProtocolIE_ID_t)29)
+#define ProtocolIE_ID_id_E_RABToBeModifiedListBearerModReq ((ProtocolIE_ID_t)30)
+#define ProtocolIE_ID_id_E_RABModifyListBearerModRes ((ProtocolIE_ID_t)31)
+#define ProtocolIE_ID_id_E_RABFailedToModifyList ((ProtocolIE_ID_t)32)
+#define ProtocolIE_ID_id_E_RABToBeReleasedList ((ProtocolIE_ID_t)33)
+#define ProtocolIE_ID_id_E_RABFailedToReleaseList ((ProtocolIE_ID_t)34)
+#define ProtocolIE_ID_id_E_RABItem ((ProtocolIE_ID_t)35)
+#define ProtocolIE_ID_id_E_RABToBeModifiedItemBearerModReq ((ProtocolIE_ID_t)36)
+#define ProtocolIE_ID_id_E_RABModifyItemBearerModRes ((ProtocolIE_ID_t)37)
+#define ProtocolIE_ID_id_E_RABReleaseItem ((ProtocolIE_ID_t)38)
+#define ProtocolIE_ID_id_E_RABSetupItemBearerSURes ((ProtocolIE_ID_t)39)
+#define ProtocolIE_ID_id_SecurityContext ((ProtocolIE_ID_t)40)
+#define ProtocolIE_ID_id_HandoverRestrictionList ((ProtocolIE_ID_t)41)
+#define ProtocolIE_ID_id_UEPagingID ((ProtocolIE_ID_t)43)
+#define ProtocolIE_ID_id_pagingDRX ((ProtocolIE_ID_t)44)
+#define ProtocolIE_ID_id_TAIList ((ProtocolIE_ID_t)46)
+#define ProtocolIE_ID_id_TAIItem ((ProtocolIE_ID_t)47)
+#define ProtocolIE_ID_id_E_RABFailedToSetupListCtxtSURes ((ProtocolIE_ID_t)48)
+#define ProtocolIE_ID_id_E_RABReleaseItemHOCmd ((ProtocolIE_ID_t)49)
+#define ProtocolIE_ID_id_E_RABSetupItemCtxtSURes ((ProtocolIE_ID_t)50)
+#define ProtocolIE_ID_id_E_RABSetupListCtxtSURes ((ProtocolIE_ID_t)51)
+#define ProtocolIE_ID_id_E_RABToBeSetupItemCtxtSUReq ((ProtocolIE_ID_t)52)
+#define ProtocolIE_ID_id_E_RABToBeSetupListHOReq ((ProtocolIE_ID_t)53)
+#define ProtocolIE_ID_id_GERANtoLTEHOInformationRes ((ProtocolIE_ID_t)55)
+#define ProtocolIE_ID_id_UTRANtoLTEHOInformationRes ((ProtocolIE_ID_t)57)
+#define ProtocolIE_ID_id_CriticalityDiagnostics ((ProtocolIE_ID_t)58)
+#define ProtocolIE_ID_id_Global_ENB_ID ((ProtocolIE_ID_t)59)
+#define ProtocolIE_ID_id_eNBname ((ProtocolIE_ID_t)60)
+#define ProtocolIE_ID_id_MMEname ((ProtocolIE_ID_t)61)
+#define ProtocolIE_ID_id_ServedPLMNs ((ProtocolIE_ID_t)63)
+#define ProtocolIE_ID_id_SupportedTAs ((ProtocolIE_ID_t)64)
+#define ProtocolIE_ID_id_TimeToWait ((ProtocolIE_ID_t)65)
+#define ProtocolIE_ID_id_uEaggregateMaximumBitrate ((ProtocolIE_ID_t)66)
+#define ProtocolIE_ID_id_TAI ((ProtocolIE_ID_t)67)
+#define ProtocolIE_ID_id_E_RABReleaseListBearerRelComp ((ProtocolIE_ID_t)69)
+#define ProtocolIE_ID_id_cdma2000PDU ((ProtocolIE_ID_t)70)
+#define ProtocolIE_ID_id_cdma2000RATType ((ProtocolIE_ID_t)71)
+#define ProtocolIE_ID_id_cdma2000SectorID ((ProtocolIE_ID_t)72)
+#define ProtocolIE_ID_id_SecurityKey ((ProtocolIE_ID_t)73)
+#define ProtocolIE_ID_id_UERadioCapability ((ProtocolIE_ID_t)74)
+#define ProtocolIE_ID_id_GUMMEI_ID ((ProtocolIE_ID_t)75)
+#define ProtocolIE_ID_id_E_RABInformationListItem ((ProtocolIE_ID_t)78)
+#define ProtocolIE_ID_id_Direct_Forwarding_Path_Availability ((ProtocolIE_ID_t)79)
+#define ProtocolIE_ID_id_UEIdentityIndexValue ((ProtocolIE_ID_t)80)
+#define ProtocolIE_ID_id_cdma2000HOStatus ((ProtocolIE_ID_t)83)
+#define ProtocolIE_ID_id_cdma2000HORequiredIndication ((ProtocolIE_ID_t)84)
+#define ProtocolIE_ID_id_E_UTRAN_Trace_ID ((ProtocolIE_ID_t)86)
+#define ProtocolIE_ID_id_RelativeMMECapacity ((ProtocolIE_ID_t)87)
+#define ProtocolIE_ID_id_SourceMME_UE_S1AP_ID ((ProtocolIE_ID_t)88)
+#define ProtocolIE_ID_id_Bearers_SubjectToStatusTransfer_Item ((ProtocolIE_ID_t)89)
+#define ProtocolIE_ID_id_eNB_StatusTransfer_TransparentContainer ((ProtocolIE_ID_t)90)
+#define ProtocolIE_ID_id_UE_associatedLogicalS1_ConnectionItem ((ProtocolIE_ID_t)91)
+#define ProtocolIE_ID_id_ResetType ((ProtocolIE_ID_t)92)
+#define ProtocolIE_ID_id_UE_associatedLogicalS1_ConnectionListResAck ((ProtocolIE_ID_t)93)
+#define ProtocolIE_ID_id_E_RABToBeSwitchedULItem ((ProtocolIE_ID_t)94)
+#define ProtocolIE_ID_id_E_RABToBeSwitchedULList ((ProtocolIE_ID_t)95)
+#define ProtocolIE_ID_id_S_TMSI ((ProtocolIE_ID_t)96)
+#define ProtocolIE_ID_id_cdma2000OneXRAND ((ProtocolIE_ID_t)97)
+#define ProtocolIE_ID_id_RequestType ((ProtocolIE_ID_t)98)
+#define ProtocolIE_ID_id_UE_S1AP_IDs ((ProtocolIE_ID_t)99)
+#define ProtocolIE_ID_id_EUTRAN_CGI ((ProtocolIE_ID_t)100)
+#define ProtocolIE_ID_id_OverloadResponse ((ProtocolIE_ID_t)101)
+#define ProtocolIE_ID_id_cdma2000OneXSRVCCInfo ((ProtocolIE_ID_t)102)
+#define ProtocolIE_ID_id_E_RABFailedToBeReleasedList ((ProtocolIE_ID_t)103)
+#define ProtocolIE_ID_id_Source_ToTarget_TransparentContainer ((ProtocolIE_ID_t)104)
+#define ProtocolIE_ID_id_ServedGUMMEIs ((ProtocolIE_ID_t)105)
+#define ProtocolIE_ID_id_SubscriberProfileIDforRFP ((ProtocolIE_ID_t)106)
+#define ProtocolIE_ID_id_UESecurityCapabilities ((ProtocolIE_ID_t)107)
+#define ProtocolIE_ID_id_CSFallbackIndicator ((ProtocolIE_ID_t)108)
+#define ProtocolIE_ID_id_CNDomain ((ProtocolIE_ID_t)109)
+#define ProtocolIE_ID_id_E_RABReleasedList ((ProtocolIE_ID_t)110)
+#define ProtocolIE_ID_id_MessageIdentifier ((ProtocolIE_ID_t)111)
+#define ProtocolIE_ID_id_SerialNumber ((ProtocolIE_ID_t)112)
+#define ProtocolIE_ID_id_WarningAreaList ((ProtocolIE_ID_t)113)
+#define ProtocolIE_ID_id_RepetitionPeriod ((ProtocolIE_ID_t)114)
+#define ProtocolIE_ID_id_NumberofBroadcastRequest ((ProtocolIE_ID_t)115)
+#define ProtocolIE_ID_id_WarningType ((ProtocolIE_ID_t)116)
+#define ProtocolIE_ID_id_WarningSecurityInfo ((ProtocolIE_ID_t)117)
+#define ProtocolIE_ID_id_DataCodingScheme ((ProtocolIE_ID_t)118)
+#define ProtocolIE_ID_id_WarningMessageContents ((ProtocolIE_ID_t)119)
+#define ProtocolIE_ID_id_BroadcastCompletedAreaList ((ProtocolIE_ID_t)120)
+#define ProtocolIE_ID_id_Inter_SystemInformationTransferTypeEDT ((ProtocolIE_ID_t)121)
+#define ProtocolIE_ID_id_Inter_SystemInformationTransferTypeMDT ((ProtocolIE_ID_t)122)
+#define ProtocolIE_ID_id_Target_ToSource_TransparentContainer ((ProtocolIE_ID_t)123)
+#define ProtocolIE_ID_id_SRVCCOperationPossible ((ProtocolIE_ID_t)124)
+#define ProtocolIE_ID_id_SRVCCHOIndication ((ProtocolIE_ID_t)125)
+#define ProtocolIE_ID_id_NAS_DownlinkCount ((ProtocolIE_ID_t)126)
+#define ProtocolIE_ID_id_CSG_Id ((ProtocolIE_ID_t)127)
+#define ProtocolIE_ID_id_CSG_IdList ((ProtocolIE_ID_t)128)
+#define ProtocolIE_ID_id_SONConfigurationTransferECT ((ProtocolIE_ID_t)129)
+#define ProtocolIE_ID_id_SONConfigurationTransferMCT ((ProtocolIE_ID_t)130)
+#define ProtocolIE_ID_id_TraceCollectionEntityIPAddress ((ProtocolIE_ID_t)131)
+#define ProtocolIE_ID_id_MSClassmark2 ((ProtocolIE_ID_t)132)
+#define ProtocolIE_ID_id_MSClassmark3 ((ProtocolIE_ID_t)133)
+#define ProtocolIE_ID_id_RRC_Establishment_Cause ((ProtocolIE_ID_t)134)
+#define ProtocolIE_ID_id_NASSecurityParametersfromE_UTRAN ((ProtocolIE_ID_t)135)
+#define ProtocolIE_ID_id_NASSecurityParameterstoE_UTRAN ((ProtocolIE_ID_t)136)
+#define ProtocolIE_ID_id_DefaultPagingDRX ((ProtocolIE_ID_t)137)
+#define ProtocolIE_ID_id_Source_ToTarget_TransparentContainer_Secondary ((ProtocolIE_ID_t)138)
+#define ProtocolIE_ID_id_Target_ToSource_TransparentContainer_Secondary ((ProtocolIE_ID_t)139)
+#define ProtocolIE_ID_id_EUTRANRoundTripDelayEstimationInfo ((ProtocolIE_ID_t)140)
+#define ProtocolIE_ID_id_BroadcastCancelledAreaList ((ProtocolIE_ID_t)141)
+#define ProtocolIE_ID_id_ConcurrentWarningMessageIndicator ((ProtocolIE_ID_t)142)
+#define ProtocolIE_ID_id_Data_Forwarding_Not_Possible ((ProtocolIE_ID_t)143)
+#define ProtocolIE_ID_id_ExtendedRepetitionPeriod ((ProtocolIE_ID_t)144)
+#define ProtocolIE_ID_id_CellAccessMode ((ProtocolIE_ID_t)145)
+#define ProtocolIE_ID_id_CSGMembershipStatus ((ProtocolIE_ID_t)146)
+#define ProtocolIE_ID_id_LPPa_PDU ((ProtocolIE_ID_t)147)
+#define ProtocolIE_ID_id_Routing_ID ((ProtocolIE_ID_t)148)
+#define ProtocolIE_ID_id_Time_Synchronisation_Info ((ProtocolIE_ID_t)149)
+#define ProtocolIE_ID_id_PS_ServiceNotAvailable ((ProtocolIE_ID_t)150)
+#define ProtocolIE_ID_id_PagingPriority ((ProtocolIE_ID_t)151)
+#define ProtocolIE_ID_id_x2TNLConfigurationInfo ((ProtocolIE_ID_t)152)
+#define ProtocolIE_ID_id_eNBX2ExtendedTransportLayerAddresses ((ProtocolIE_ID_t)153)
+#define ProtocolIE_ID_id_GUMMEIList ((ProtocolIE_ID_t)154)
+#define ProtocolIE_ID_id_GW_TransportLayerAddress ((ProtocolIE_ID_t)155)
+#define ProtocolIE_ID_id_Correlation_ID ((ProtocolIE_ID_t)156)
+#define ProtocolIE_ID_id_SourceMME_GUMMEI ((ProtocolIE_ID_t)157)
+#define ProtocolIE_ID_id_MME_UE_S1AP_ID_2 ((ProtocolIE_ID_t)158)
+#define ProtocolIE_ID_id_RegisteredLAI ((ProtocolIE_ID_t)159)
+#define ProtocolIE_ID_id_RelayNode_Indicator ((ProtocolIE_ID_t)160)
+#define ProtocolIE_ID_id_TrafficLoadReductionIndication ((ProtocolIE_ID_t)161)
+#define ProtocolIE_ID_id_MDTConfiguration ((ProtocolIE_ID_t)162)
+#define ProtocolIE_ID_id_MMERelaySupportIndicator ((ProtocolIE_ID_t)163)
+#define ProtocolIE_ID_id_GWContextReleaseIndication ((ProtocolIE_ID_t)164)
+#define ProtocolIE_ID_id_ManagementBasedMDTAllowed ((ProtocolIE_ID_t)165)
+#define ProtocolIE_ID_id_PrivacyIndicator ((ProtocolIE_ID_t)166)
+#define ProtocolIE_ID_id_Time_UE_StayedInCell_EnhancedGranularity ((ProtocolIE_ID_t)167)
+#define ProtocolIE_ID_id_HO_Cause ((ProtocolIE_ID_t)168)
+#define ProtocolIE_ID_id_VoiceSupportMatchIndicator ((ProtocolIE_ID_t)169)
+#define ProtocolIE_ID_id_GUMMEIType ((ProtocolIE_ID_t)170)
+#define ProtocolIE_ID_id_M3Configuration ((ProtocolIE_ID_t)171)
+#define ProtocolIE_ID_id_M4Configuration ((ProtocolIE_ID_t)172)
+#define ProtocolIE_ID_id_M5Configuration ((ProtocolIE_ID_t)173)
+#define ProtocolIE_ID_id_MDT_Location_Info ((ProtocolIE_ID_t)174)
+#define ProtocolIE_ID_id_MobilityInformation ((ProtocolIE_ID_t)175)
+#define ProtocolIE_ID_id_Tunnel_Information_for_BBF ((ProtocolIE_ID_t)176)
+#define ProtocolIE_ID_id_ManagementBasedMDTPLMNList ((ProtocolIE_ID_t)177)
+#define ProtocolIE_ID_id_SignallingBasedMDTPLMNList ((ProtocolIE_ID_t)178)
+#define ProtocolIE_ID_id_ULCOUNTValueExtended ((ProtocolIE_ID_t)179)
+#define ProtocolIE_ID_id_DLCOUNTValueExtended ((ProtocolIE_ID_t)180)
+#define ProtocolIE_ID_id_ReceiveStatusOfULPDCPSDUsExtended ((ProtocolIE_ID_t)181)
+#define ProtocolIE_ID_id_ECGIListForRestart ((ProtocolIE_ID_t)182)
+#define ProtocolIE_ID_id_SIPTO_Correlation_ID ((ProtocolIE_ID_t)183)
+#define ProtocolIE_ID_id_SIPTO_L_GW_TransportLayerAddress ((ProtocolIE_ID_t)184)
+#define ProtocolIE_ID_id_TransportInformation ((ProtocolIE_ID_t)185)
+#define ProtocolIE_ID_id_LHN_ID ((ProtocolIE_ID_t)186)
+#define ProtocolIE_ID_id_AdditionalCSFallbackIndicator ((ProtocolIE_ID_t)187)
+#define ProtocolIE_ID_id_TAIListForRestart ((ProtocolIE_ID_t)188)
+#define ProtocolIE_ID_id_UserLocationInformation ((ProtocolIE_ID_t)189)
+#define ProtocolIE_ID_id_EmergencyAreaIDListForRestart ((ProtocolIE_ID_t)190)
+#define ProtocolIE_ID_id_KillAllWarningMessages ((ProtocolIE_ID_t)191)
+#define ProtocolIE_ID_id_Masked_IMEISV ((ProtocolIE_ID_t)192)
+#define ProtocolIE_ID_id_eNBIndirectX2TransportLayerAddresses ((ProtocolIE_ID_t)193)
+#define ProtocolIE_ID_id_uE_HistoryInformationFromTheUE ((ProtocolIE_ID_t)194)
+#define ProtocolIE_ID_id_ProSeAuthorized ((ProtocolIE_ID_t)195)
+#define ProtocolIE_ID_id_ExpectedUEBehaviour ((ProtocolIE_ID_t)196)
+#define ProtocolIE_ID_id_LoggedMBSFNMDT ((ProtocolIE_ID_t)197)
+#define ProtocolIE_ID_id_UERadioCapabilityForPaging ((ProtocolIE_ID_t)198)
+#define ProtocolIE_ID_id_E_RABToBeModifiedListBearerModInd ((ProtocolIE_ID_t)199)
+#define ProtocolIE_ID_id_E_RABToBeModifiedItemBearerModInd ((ProtocolIE_ID_t)200)
+#define ProtocolIE_ID_id_E_RABNotToBeModifiedListBearerModInd ((ProtocolIE_ID_t)201)
+#define ProtocolIE_ID_id_E_RABNotToBeModifiedItemBearerModInd ((ProtocolIE_ID_t)202)
+#define ProtocolIE_ID_id_E_RABModifyListBearerModConf ((ProtocolIE_ID_t)203)
+#define ProtocolIE_ID_id_E_RABModifyItemBearerModConf ((ProtocolIE_ID_t)204)
+#define ProtocolIE_ID_id_E_RABFailedToModifyListBearerModConf ((ProtocolIE_ID_t)205)
+#define ProtocolIE_ID_id_SON_Information_Report ((ProtocolIE_ID_t)206)
+#define ProtocolIE_ID_id_Muting_Availability_Indication ((ProtocolIE_ID_t)207)
+#define ProtocolIE_ID_id_Muting_Pattern_Information ((ProtocolIE_ID_t)208)
+#define ProtocolIE_ID_id_Synchronisation_Information ((ProtocolIE_ID_t)209)
+#define ProtocolIE_ID_id_E_RABToBeReleasedListBearerModConf ((ProtocolIE_ID_t)210)
+#define ProtocolIE_ID_id_AssistanceDataForPaging ((ProtocolIE_ID_t)211)
+#define ProtocolIE_ID_id_CellIdentifierAndCELevelForCECapableUEs ((ProtocolIE_ID_t)212)
+#define ProtocolIE_ID_id_InformationOnRecommendedCellsAndENBsForPaging ((ProtocolIE_ID_t)213)
+#define ProtocolIE_ID_id_RecommendedCellItem ((ProtocolIE_ID_t)214)
+#define ProtocolIE_ID_id_RecommendedENBItem ((ProtocolIE_ID_t)215)
+#define ProtocolIE_ID_id_ProSeUEtoNetworkRelaying ((ProtocolIE_ID_t)216)
+#define ProtocolIE_ID_id_ULCOUNTValuePDCP_SNlength18 ((ProtocolIE_ID_t)217)
+#define ProtocolIE_ID_id_DLCOUNTValuePDCP_SNlength18 ((ProtocolIE_ID_t)218)
+#define ProtocolIE_ID_id_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18 ((ProtocolIE_ID_t)219)
+#define ProtocolIE_ID_id_M6Configuration ((ProtocolIE_ID_t)220)
+#define ProtocolIE_ID_id_M7Configuration ((ProtocolIE_ID_t)221)
+#define ProtocolIE_ID_id_PWSfailedECGIList ((ProtocolIE_ID_t)222)
+#define ProtocolIE_ID_id_MME_Group_ID ((ProtocolIE_ID_t)223)
+#define ProtocolIE_ID_id_Additional_GUTI ((ProtocolIE_ID_t)224)
+#define ProtocolIE_ID_id_S1_Message ((ProtocolIE_ID_t)225)
+#define ProtocolIE_ID_id_CSGMembershipInfo ((ProtocolIE_ID_t)226)
+#define ProtocolIE_ID_id_Paging_eDRXInformation ((ProtocolIE_ID_t)227)
+#define ProtocolIE_ID_id_UE_RetentionInformation ((ProtocolIE_ID_t)228)
+#define ProtocolIE_ID_id_UE_Usage_Type ((ProtocolIE_ID_t)230)
+#define ProtocolIE_ID_id_extended_UEIdentityIndexValue ((ProtocolIE_ID_t)231)
+#define ProtocolIE_ID_id_RAT_Type ((ProtocolIE_ID_t)232)
+#define ProtocolIE_ID_id_BearerType ((ProtocolIE_ID_t)233)
+#define ProtocolIE_ID_id_NB_IoT_DefaultPagingDRX ((ProtocolIE_ID_t)234)
+#define ProtocolIE_ID_id_E_RABFailedToResumeListResumeReq ((ProtocolIE_ID_t)235)
+#define ProtocolIE_ID_id_E_RABFailedToResumeItemResumeReq ((ProtocolIE_ID_t)236)
+#define ProtocolIE_ID_id_E_RABFailedToResumeListResumeRes ((ProtocolIE_ID_t)237)
+#define ProtocolIE_ID_id_E_RABFailedToResumeItemResumeRes ((ProtocolIE_ID_t)238)
+#define ProtocolIE_ID_id_NB_IoT_Paging_eDRXInformation ((ProtocolIE_ID_t)239)
+#define ProtocolIE_ID_id_V2XServicesAuthorized ((ProtocolIE_ID_t)240)
+#define ProtocolIE_ID_id_UEUserPlaneCIoTSupportIndicator ((ProtocolIE_ID_t)241)
+#define ProtocolIE_ID_id_CE_mode_B_SupportIndicator ((ProtocolIE_ID_t)242)
+#define ProtocolIE_ID_id_SRVCCOperationNotPossible ((ProtocolIE_ID_t)243)
+#define ProtocolIE_ID_id_NB_IoT_UEIdentityIndexValue ((ProtocolIE_ID_t)244)
+#define ProtocolIE_ID_id_RRC_Resume_Cause ((ProtocolIE_ID_t)245)
+#define ProtocolIE_ID_id_DCN_ID ((ProtocolIE_ID_t)246)
+#define ProtocolIE_ID_id_ServedDCNs ((ProtocolIE_ID_t)247)
+#define ProtocolIE_ID_id_UESidelinkAggregateMaximumBitrate ((ProtocolIE_ID_t)248)
+#define ProtocolIE_ID_id_DLNASPDUDeliveryAckRequest ((ProtocolIE_ID_t)249)
+#define ProtocolIE_ID_id_Coverage_Level ((ProtocolIE_ID_t)250)
+#define ProtocolIE_ID_id_EnhancedCoverageRestricted ((ProtocolIE_ID_t)251)
+#define ProtocolIE_ID_id_UE_Level_QoS_Parameters ((ProtocolIE_ID_t)252)
+#define ProtocolIE_ID_id_DL_CP_SecurityInformation ((ProtocolIE_ID_t)253)
+#define ProtocolIE_ID_id_UL_CP_SecurityInformation ((ProtocolIE_ID_t)254)
+#define ProtocolIE_ID_id_extended_e_RAB_MaximumBitrateDL ((ProtocolIE_ID_t)255)
+#define ProtocolIE_ID_id_extended_e_RAB_MaximumBitrateUL ((ProtocolIE_ID_t)256)
+#define ProtocolIE_ID_id_extended_e_RAB_GuaranteedBitrateDL ((ProtocolIE_ID_t)257)
+#define ProtocolIE_ID_id_extended_e_RAB_GuaranteedBitrateUL ((ProtocolIE_ID_t)258)
+#define ProtocolIE_ID_id_extended_uEaggregateMaximumBitRateDL ((ProtocolIE_ID_t)259)
+#define ProtocolIE_ID_id_extended_uEaggregateMaximumBitRateUL ((ProtocolIE_ID_t)260)
+#define ProtocolIE_ID_id_NRrestrictioninEPSasSecondaryRAT ((ProtocolIE_ID_t)261)
+#define ProtocolIE_ID_id_UEAppLayerMeasConfig ((ProtocolIE_ID_t)262)
+#define ProtocolIE_ID_id_UE_Application_Layer_Measurement_Capability ((ProtocolIE_ID_t)263)
+#define ProtocolIE_ID_id_SecondaryRATDataUsageReportList ((ProtocolIE_ID_t)264)
+#define ProtocolIE_ID_id_SecondaryRATDataUsageReportItem ((ProtocolIE_ID_t)265)
+#define ProtocolIE_ID_id_HandoverFlag ((ProtocolIE_ID_t)266)
+#define ProtocolIE_ID_id_E_RABUsageReportItem ((ProtocolIE_ID_t)267)
+#define ProtocolIE_ID_id_SecondaryRATDataUsageRequest ((ProtocolIE_ID_t)268)
+#define ProtocolIE_ID_id_NRUESecurityCapabilities ((ProtocolIE_ID_t)269)
+#define ProtocolIE_ID_id_UnlicensedSpectrumRestriction ((ProtocolIE_ID_t)270)
+#define ProtocolIE_ID_id_CE_ModeBRestricted ((ProtocolIE_ID_t)271)
+#define ProtocolIE_ID_id_LTE_M_Indication ((ProtocolIE_ID_t)272)
+#define ProtocolIE_ID_id_DownlinkPacketLossRate ((ProtocolIE_ID_t)273)
+#define ProtocolIE_ID_id_UplinkPacketLossRate ((ProtocolIE_ID_t)274)
+#define ProtocolIE_ID_id_UECapabilityInfoRequest ((ProtocolIE_ID_t)275)
+#define ProtocolIE_ID_id_serviceType ((ProtocolIE_ID_t)276)
+#define ProtocolIE_ID_id_AerialUEsubscriptionInformation ((ProtocolIE_ID_t)277)
+#define ProtocolIE_ID_id_Subscription_Based_UE_DifferentiationInfo ((ProtocolIE_ID_t)278)
+#define ProtocolIE_ID_id_EndIndication ((ProtocolIE_ID_t)280)
+#define ProtocolIE_ID_id_EDT_Session ((ProtocolIE_ID_t)281)
+#define ProtocolIE_ID_id_CNTypeRestrictions ((ProtocolIE_ID_t)282)
+#define ProtocolIE_ID_id_PendingDataIndication ((ProtocolIE_ID_t)283)
+#define ProtocolIE_ID_id_BluetoothMeasurementConfiguration ((ProtocolIE_ID_t)284)
+#define ProtocolIE_ID_id_WLANMeasurementConfiguration ((ProtocolIE_ID_t)285)
+#define ProtocolIE_ID_id_WarningAreaCoordinates ((ProtocolIE_ID_t)286)
+#define ProtocolIE_ID_id_NRrestrictionin5GS ((ProtocolIE_ID_t)287)
+#define ProtocolIE_ID_id_PSCellInformation ((ProtocolIE_ID_t)288)
+#define ProtocolIE_ID_id_LastNG_RANPLMNIdentity ((ProtocolIE_ID_t)290)
+#define ProtocolIE_ID_id_ConnectedengNBList ((ProtocolIE_ID_t)291)
+#define ProtocolIE_ID_id_ConnectedengNBToAddList ((ProtocolIE_ID_t)292)
+#define ProtocolIE_ID_id_ConnectedengNBToRemoveList ((ProtocolIE_ID_t)293)
+#define ProtocolIE_ID_id_EN_DCSONConfigurationTransfer_ECT ((ProtocolIE_ID_t)294)
+#define ProtocolIE_ID_id_EN_DCSONConfigurationTransfer_MCT ((ProtocolIE_ID_t)295)
+#define ProtocolIE_ID_id_IMSvoiceEPSfallbackfrom5G ((ProtocolIE_ID_t)296)
+#define ProtocolIE_ID_id_TimeSinceSecondaryNodeRelease ((ProtocolIE_ID_t)297)
+#define ProtocolIE_ID_id_RequestTypeAdditionalInfo ((ProtocolIE_ID_t)298)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProtocolIE_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ProtocolIE-SingleContainer.h b/src/s1ap/asn1c/asnGenFiles/ProtocolIE-SingleContainer.h
new file mode 100644
index 0000000..0e081dc
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ProtocolIE-SingleContainer.h
@@ -0,0 +1,480 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-Containers"
+ * found in "./asn1c/S1AP-Containers.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ProtocolIE_SingleContainer_H_
+#define _ProtocolIE_SingleContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Field.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ProtocolIE-SingleContainer */
+typedef Bearers_SubjectToStatusTransfer_ItemIEs_t ProtocolIE_SingleContainer_132P0_t;
+typedef E_RABInformationListIEs_t ProtocolIE_SingleContainer_132P1_t;
+typedef E_RABItemIEs_t ProtocolIE_SingleContainer_132P2_t;
+typedef E_RABUsageReportItemIEs_t ProtocolIE_SingleContainer_132P3_t;
+typedef MDTMode_ExtensionIE_t ProtocolIE_SingleContainer_132P4_t;
+typedef RecommendedCellItemIEs_t ProtocolIE_SingleContainer_132P5_t;
+typedef RecommendedENBItemIEs_t ProtocolIE_SingleContainer_132P6_t;
+typedef SecondaryRATDataUsageReportItemIEs_t ProtocolIE_SingleContainer_132P7_t;
+typedef SONInformation_ExtensionIE_t ProtocolIE_SingleContainer_132P8_t;
+typedef E_RABToBeSetupItemBearerSUReqIEs_t ProtocolIE_SingleContainer_132P9_t;
+typedef E_RABSetupItemBearerSUResIEs_t ProtocolIE_SingleContainer_132P10_t;
+typedef E_RABToBeModifiedItemBearerModReqIEs_t ProtocolIE_SingleContainer_132P11_t;
+typedef E_RABModifyItemBearerModResIEs_t ProtocolIE_SingleContainer_132P12_t;
+typedef E_RABReleaseItemBearerRelCompIEs_t ProtocolIE_SingleContainer_132P13_t;
+typedef E_RABToBeSetupItemCtxtSUReqIEs_t ProtocolIE_SingleContainer_132P14_t;
+typedef E_RABSetupItemCtxtSUResIEs_t ProtocolIE_SingleContainer_132P15_t;
+typedef TAIItemIEs_t ProtocolIE_SingleContainer_132P16_t;
+typedef UE_associatedLogicalS1_ConnectionItemRes_t ProtocolIE_SingleContainer_132P17_t;
+typedef UE_associatedLogicalS1_ConnectionItemResAck_t ProtocolIE_SingleContainer_132P18_t;
+typedef E_RABModifyItemBearerModConfIEs_t ProtocolIE_SingleContainer_132P19_t;
+typedef E_RABDataForwardingItemIEs_t ProtocolIE_SingleContainer_132P20_t;
+typedef E_RABToBeSetupItemHOReqIEs_t ProtocolIE_SingleContainer_132P21_t;
+typedef E_RABAdmittedItemIEs_t ProtocolIE_SingleContainer_132P22_t;
+typedef E_RABFailedtoSetupItemHOReqAckIEs_t ProtocolIE_SingleContainer_132P23_t;
+typedef E_RABToBeSwitchedDLItemIEs_t ProtocolIE_SingleContainer_132P24_t;
+typedef E_RABToBeSwitchedULItemIEs_t ProtocolIE_SingleContainer_132P25_t;
+typedef E_RABToBeModifiedItemBearerModIndIEs_t ProtocolIE_SingleContainer_132P26_t;
+typedef E_RABNotToBeModifiedItemBearerModIndIEs_t ProtocolIE_SingleContainer_132P27_t;
+typedef E_RABFailedToResumeItemResumeReqIEs_t ProtocolIE_SingleContainer_132P28_t;
+typedef E_RABFailedToResumeItemResumeResIEs_t ProtocolIE_SingleContainer_132P29_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P0;
+asn_struct_free_f ProtocolIE_SingleContainer_132P0_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P0_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P0_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P0_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P0_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P0_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P0_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P0_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P0_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P0_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P0_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P0_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P0_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P1;
+asn_struct_free_f ProtocolIE_SingleContainer_132P1_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P1_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P1_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P1_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P1_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P1_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P1_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P1_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P1_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P1_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P1_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P1_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P1_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P2;
+asn_struct_free_f ProtocolIE_SingleContainer_132P2_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P2_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P2_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P2_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P2_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P2_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P2_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P2_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P2_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P2_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P2_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P2_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P2_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P3;
+asn_struct_free_f ProtocolIE_SingleContainer_132P3_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P3_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P3_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P3_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P3_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P3_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P3_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P3_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P3_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P3_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P3_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P3_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P3_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P4;
+asn_struct_free_f ProtocolIE_SingleContainer_132P4_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P4_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P4_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P4_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P4_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P4_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P4_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P4_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P4_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P4_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P4_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P4_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P4_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P5;
+asn_struct_free_f ProtocolIE_SingleContainer_132P5_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P5_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P5_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P5_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P5_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P5_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P5_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P5_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P5_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P5_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P5_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P5_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P5_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P6;
+asn_struct_free_f ProtocolIE_SingleContainer_132P6_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P6_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P6_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P6_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P6_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P6_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P6_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P6_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P6_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P6_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P6_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P6_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P6_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P7;
+asn_struct_free_f ProtocolIE_SingleContainer_132P7_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P7_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P7_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P7_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P7_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P7_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P7_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P7_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P7_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P7_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P7_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P7_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P7_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P8;
+asn_struct_free_f ProtocolIE_SingleContainer_132P8_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P8_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P8_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P8_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P8_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P8_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P8_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P8_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P8_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P8_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P8_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P8_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P8_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P9;
+asn_struct_free_f ProtocolIE_SingleContainer_132P9_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P9_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P9_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P9_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P9_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P9_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P9_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P9_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P9_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P9_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P9_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P9_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P9_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P10;
+asn_struct_free_f ProtocolIE_SingleContainer_132P10_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P10_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P10_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P10_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P10_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P10_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P10_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P10_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P10_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P10_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P10_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P10_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P10_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P11;
+asn_struct_free_f ProtocolIE_SingleContainer_132P11_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P11_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P11_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P11_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P11_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P11_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P11_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P11_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P11_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P11_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P11_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P11_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P11_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P12;
+asn_struct_free_f ProtocolIE_SingleContainer_132P12_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P12_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P12_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P12_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P12_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P12_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P12_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P12_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P12_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P12_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P12_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P12_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P12_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P13;
+asn_struct_free_f ProtocolIE_SingleContainer_132P13_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P13_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P13_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P13_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P13_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P13_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P13_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P13_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P13_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P13_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P13_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P13_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P13_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P14;
+asn_struct_free_f ProtocolIE_SingleContainer_132P14_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P14_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P14_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P14_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P14_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P14_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P14_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P14_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P14_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P14_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P14_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P14_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P14_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P15;
+asn_struct_free_f ProtocolIE_SingleContainer_132P15_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P15_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P15_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P15_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P15_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P15_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P15_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P15_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P15_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P15_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P15_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P15_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P15_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P16;
+asn_struct_free_f ProtocolIE_SingleContainer_132P16_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P16_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P16_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P16_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P16_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P16_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P16_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P16_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P16_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P16_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P16_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P16_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P16_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P17;
+asn_struct_free_f ProtocolIE_SingleContainer_132P17_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P17_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P17_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P17_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P17_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P17_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P17_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P17_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P17_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P17_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P17_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P17_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P17_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P18;
+asn_struct_free_f ProtocolIE_SingleContainer_132P18_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P18_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P18_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P18_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P18_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P18_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P18_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P18_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P18_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P18_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P18_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P18_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P18_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P19;
+asn_struct_free_f ProtocolIE_SingleContainer_132P19_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P19_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P19_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P19_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P19_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P19_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P19_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P19_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P19_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P19_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P19_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P19_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P19_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P20;
+asn_struct_free_f ProtocolIE_SingleContainer_132P20_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P20_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P20_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P20_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P20_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P20_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P20_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P20_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P20_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P20_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P20_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P20_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P20_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P21;
+asn_struct_free_f ProtocolIE_SingleContainer_132P21_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P21_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P21_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P21_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P21_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P21_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P21_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P21_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P21_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P21_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P21_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P21_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P21_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P22;
+asn_struct_free_f ProtocolIE_SingleContainer_132P22_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P22_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P22_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P22_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P22_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P22_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P22_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P22_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P22_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P22_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P22_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P22_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P22_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P23;
+asn_struct_free_f ProtocolIE_SingleContainer_132P23_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P23_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P23_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P23_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P23_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P23_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P23_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P23_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P23_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P23_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P23_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P23_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P23_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P24;
+asn_struct_free_f ProtocolIE_SingleContainer_132P24_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P24_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P24_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P24_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P24_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P24_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P24_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P24_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P24_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P24_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P24_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P24_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P24_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P25;
+asn_struct_free_f ProtocolIE_SingleContainer_132P25_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P25_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P25_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P25_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P25_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P25_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P25_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P25_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P25_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P25_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P25_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P25_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P25_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P26;
+asn_struct_free_f ProtocolIE_SingleContainer_132P26_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P26_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P26_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P26_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P26_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P26_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P26_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P26_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P26_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P26_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P26_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P26_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P26_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P27;
+asn_struct_free_f ProtocolIE_SingleContainer_132P27_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P27_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P27_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P27_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P27_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P27_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P27_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P27_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P27_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P27_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P27_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P27_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P27_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P28;
+asn_struct_free_f ProtocolIE_SingleContainer_132P28_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P28_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P28_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P28_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P28_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P28_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P28_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P28_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P28_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P28_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P28_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P28_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P28_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_132P29;
+asn_struct_free_f ProtocolIE_SingleContainer_132P29_free;
+asn_struct_print_f ProtocolIE_SingleContainer_132P29_print;
+asn_constr_check_f ProtocolIE_SingleContainer_132P29_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_132P29_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_132P29_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_132P29_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_132P29_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_132P29_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_132P29_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_132P29_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P29_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_132P29_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_132P29_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ProtocolIE_SingleContainer_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/QCI.h b/src/s1ap/asn1c/asnGenFiles/QCI.h
new file mode 100644
index 0000000..f68fad8
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/QCI.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _QCI_H_
+#define _QCI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* QCI */
+typedef long QCI_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_QCI_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_QCI;
+asn_struct_free_f QCI_free;
+asn_struct_print_f QCI_print;
+asn_constr_check_f QCI_constraint;
+ber_type_decoder_f QCI_decode_ber;
+der_type_encoder_f QCI_encode_der;
+xer_type_decoder_f QCI_decode_xer;
+xer_type_encoder_f QCI_encode_xer;
+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 <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/RAC.h b/src/s1ap/asn1c/asnGenFiles/RAC.h
new file mode 100644
index 0000000..de75f7b
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/RAC.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _RAC_H_
+#define _RAC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RAC */
+typedef OCTET_STRING_t RAC_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RAC_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RAC;
+asn_struct_free_f RAC_free;
+asn_struct_print_f RAC_print;
+asn_constr_check_f RAC_constraint;
+ber_type_decoder_f RAC_decode_ber;
+der_type_encoder_f RAC_encode_der;
+xer_type_decoder_f RAC_decode_xer;
+xer_type_encoder_f RAC_encode_xer;
+oer_type_decoder_f RAC_decode_oer;
+oer_type_encoder_f RAC_encode_oer;
+per_type_decoder_f RAC_decode_uper;
+per_type_encoder_f RAC_encode_uper;
+per_type_decoder_f RAC_decode_aper;
+per_type_encoder_f RAC_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RAC_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/RAT-Type.h b/src/s1ap/asn1c/asnGenFiles/RAT-Type.h
new file mode 100644
index 0000000..7695423
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/RAT-Type.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _RAT_Type_H_
+#define _RAT_Type_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RAT_Type {
+ RAT_Type_nbiot = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_RAT_Type;
+
+/* RAT-Type */
+typedef long RAT_Type_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RAT_Type_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RAT_Type;
+extern const asn_INTEGER_specifics_t asn_SPC_RAT_Type_specs_1;
+asn_struct_free_f RAT_Type_free;
+asn_struct_print_f RAT_Type_print;
+asn_constr_check_f RAT_Type_constraint;
+ber_type_decoder_f RAT_Type_decode_ber;
+der_type_encoder_f RAT_Type_encode_der;
+xer_type_decoder_f RAT_Type_decode_xer;
+xer_type_encoder_f RAT_Type_encode_xer;
+oer_type_decoder_f RAT_Type_decode_oer;
+oer_type_encoder_f RAT_Type_encode_oer;
+per_type_decoder_f RAT_Type_decode_uper;
+per_type_encoder_f RAT_Type_encode_uper;
+per_type_decoder_f RAT_Type_decode_aper;
+per_type_encoder_f RAT_Type_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RAT_Type_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/RIMInformation.h b/src/s1ap/asn1c/asnGenFiles/RIMInformation.h
new file mode 100644
index 0000000..9b83c43
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/RIMInformation.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _RIMInformation_H_
+#define _RIMInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RIMInformation */
+typedef OCTET_STRING_t RIMInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RIMInformation;
+asn_struct_free_f RIMInformation_free;
+asn_struct_print_f RIMInformation_print;
+asn_constr_check_f RIMInformation_constraint;
+ber_type_decoder_f RIMInformation_decode_ber;
+der_type_encoder_f RIMInformation_encode_der;
+xer_type_decoder_f RIMInformation_decode_xer;
+xer_type_encoder_f RIMInformation_encode_xer;
+oer_type_decoder_f RIMInformation_decode_oer;
+oer_type_encoder_f RIMInformation_encode_oer;
+per_type_decoder_f RIMInformation_decode_uper;
+per_type_encoder_f RIMInformation_encode_uper;
+per_type_decoder_f RIMInformation_decode_aper;
+per_type_encoder_f RIMInformation_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RIMInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/RIMRoutingAddress.h b/src/s1ap/asn1c/asnGenFiles/RIMRoutingAddress.h
new file mode 100644
index 0000000..ca09ee3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/RIMRoutingAddress.h
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _RIMRoutingAddress_H_
+#define _RIMRoutingAddress_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RIMRoutingAddress_PR {
+ RIMRoutingAddress_PR_NOTHING, /* No components present */
+ RIMRoutingAddress_PR_gERAN_Cell_ID,
+ /* Extensions may appear below */
+ RIMRoutingAddress_PR_targetRNC_ID,
+ RIMRoutingAddress_PR_eHRPD_Sector_ID
+} RIMRoutingAddress_PR;
+
+/* Forward declarations */
+struct GERAN_Cell_ID;
+struct TargetRNC_ID;
+
+/* RIMRoutingAddress */
+typedef struct RIMRoutingAddress {
+ RIMRoutingAddress_PR present;
+ union RIMRoutingAddress_u {
+ struct GERAN_Cell_ID *gERAN_Cell_ID;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ struct TargetRNC_ID *targetRNC_ID;
+ OCTET_STRING_t eHRPD_Sector_ID;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} RIMRoutingAddress_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RIMRoutingAddress;
+extern asn_CHOICE_specifics_t asn_SPC_RIMRoutingAddress_specs_1;
+extern asn_TYPE_member_t asn_MBR_RIMRoutingAddress_1[3];
+extern asn_per_constraints_t asn_PER_type_RIMRoutingAddress_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RIMRoutingAddress_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/RIMTransfer.h b/src/s1ap/asn1c/asnGenFiles/RIMTransfer.h
new file mode 100644
index 0000000..c0689b1
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/RIMTransfer.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _RIMTransfer_H_
+#define _RIMTransfer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIMInformation.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RIMRoutingAddress;
+struct ProtocolExtensionContainer;
+
+/* RIMTransfer */
+typedef struct RIMTransfer {
+ RIMInformation_t rIMInformation;
+ struct RIMRoutingAddress *rIMRoutingAddress; /* 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;
+} RIMTransfer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RIMTransfer;
+extern asn_SEQUENCE_specifics_t asn_SPC_RIMTransfer_specs_1;
+extern asn_TYPE_member_t asn_MBR_RIMTransfer_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RIMTransfer_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/RLFReportInformation.h b/src/s1ap/asn1c/asnGenFiles/RLFReportInformation.h
new file mode 100644
index 0000000..140423b
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/RLFReportInformation.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _RLFReportInformation_H_
+#define _RLFReportInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "UE-RLF-Report-Container.h"
+#include "UE-RLF-Report-Container-for-extended-bands.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* RLFReportInformation */
+typedef struct RLFReportInformation {
+ UE_RLF_Report_Container_t uE_RLF_Report_Container;
+ UE_RLF_Report_Container_for_extended_bands_t *uE_RLF_Report_Container_for_extended_bands; /* 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;
+} RLFReportInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RLFReportInformation;
+extern asn_SEQUENCE_specifics_t asn_SPC_RLFReportInformation_specs_1;
+extern asn_TYPE_member_t asn_MBR_RLFReportInformation_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RLFReportInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/RNC-ID.h b/src/s1ap/asn1c/asnGenFiles/RNC-ID.h
new file mode 100644
index 0000000..2b9c814
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/RNC-ID.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _RNC_ID_H_
+#define _RNC_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RNC-ID */
+typedef long RNC_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RNC_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RNC_ID;
+asn_struct_free_f RNC_ID_free;
+asn_struct_print_f RNC_ID_print;
+asn_constr_check_f RNC_ID_constraint;
+ber_type_decoder_f RNC_ID_decode_ber;
+der_type_encoder_f RNC_ID_encode_der;
+xer_type_decoder_f RNC_ID_decode_xer;
+xer_type_encoder_f RNC_ID_encode_xer;
+oer_type_decoder_f RNC_ID_decode_oer;
+oer_type_encoder_f RNC_ID_encode_oer;
+per_type_decoder_f RNC_ID_decode_uper;
+per_type_encoder_f RNC_ID_encode_uper;
+per_type_decoder_f RNC_ID_decode_aper;
+per_type_encoder_f RNC_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RNC_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/RRC-Container.h b/src/s1ap/asn1c/asnGenFiles/RRC-Container.h
new file mode 100644
index 0000000..8c69421
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/RRC-Container.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _RRC_Container_H_
+#define _RRC_Container_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RRC-Container */
+typedef OCTET_STRING_t RRC_Container_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RRC_Container;
+asn_struct_free_f RRC_Container_free;
+asn_struct_print_f RRC_Container_print;
+asn_constr_check_f RRC_Container_constraint;
+ber_type_decoder_f RRC_Container_decode_ber;
+der_type_encoder_f RRC_Container_encode_der;
+xer_type_decoder_f RRC_Container_decode_xer;
+xer_type_encoder_f RRC_Container_encode_xer;
+oer_type_decoder_f RRC_Container_decode_oer;
+oer_type_encoder_f RRC_Container_encode_oer;
+per_type_decoder_f RRC_Container_decode_uper;
+per_type_encoder_f RRC_Container_encode_uper;
+per_type_decoder_f RRC_Container_decode_aper;
+per_type_encoder_f RRC_Container_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RRC_Container_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/RRC-Establishment-Cause.h b/src/s1ap/asn1c/asnGenFiles/RRC-Establishment-Cause.h
new file mode 100644
index 0000000..b687ebe
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/RRC-Establishment-Cause.h
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _RRC_Establishment_Cause_H_
+#define _RRC_Establishment_Cause_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RRC_Establishment_Cause {
+ RRC_Establishment_Cause_emergency = 0,
+ RRC_Establishment_Cause_highPriorityAccess = 1,
+ RRC_Establishment_Cause_mt_Access = 2,
+ RRC_Establishment_Cause_mo_Signalling = 3,
+ RRC_Establishment_Cause_mo_Data = 4,
+ /*
+ * Enumeration is extensible
+ */
+ RRC_Establishment_Cause_delay_TolerantAccess = 5,
+ RRC_Establishment_Cause_mo_VoiceCall = 6,
+ RRC_Establishment_Cause_mo_ExceptionData = 7
+} e_RRC_Establishment_Cause;
+
+/* RRC-Establishment-Cause */
+typedef long RRC_Establishment_Cause_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RRC_Establishment_Cause_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RRC_Establishment_Cause;
+extern const asn_INTEGER_specifics_t asn_SPC_RRC_Establishment_Cause_specs_1;
+asn_struct_free_f RRC_Establishment_Cause_free;
+asn_struct_print_f RRC_Establishment_Cause_print;
+asn_constr_check_f RRC_Establishment_Cause_constraint;
+ber_type_decoder_f RRC_Establishment_Cause_decode_ber;
+der_type_encoder_f RRC_Establishment_Cause_encode_der;
+xer_type_decoder_f RRC_Establishment_Cause_decode_xer;
+xer_type_encoder_f RRC_Establishment_Cause_encode_xer;
+oer_type_decoder_f RRC_Establishment_Cause_decode_oer;
+oer_type_encoder_f RRC_Establishment_Cause_encode_oer;
+per_type_decoder_f RRC_Establishment_Cause_decode_uper;
+per_type_encoder_f RRC_Establishment_Cause_encode_uper;
+per_type_decoder_f RRC_Establishment_Cause_decode_aper;
+per_type_encoder_f RRC_Establishment_Cause_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RRC_Establishment_Cause_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ReceiveStatusOfULPDCPSDUsExtended.h b/src/s1ap/asn1c/asnGenFiles/ReceiveStatusOfULPDCPSDUsExtended.h
new file mode 100644
index 0000000..498c7ee
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ReceiveStatusOfULPDCPSDUsExtended.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ReceiveStatusOfULPDCPSDUsExtended_H_
+#define _ReceiveStatusOfULPDCPSDUsExtended_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ReceiveStatusOfULPDCPSDUsExtended */
+typedef BIT_STRING_t ReceiveStatusOfULPDCPSDUsExtended_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ReceiveStatusOfULPDCPSDUsExtended_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ReceiveStatusOfULPDCPSDUsExtended;
+asn_struct_free_f ReceiveStatusOfULPDCPSDUsExtended_free;
+asn_struct_print_f ReceiveStatusOfULPDCPSDUsExtended_print;
+asn_constr_check_f ReceiveStatusOfULPDCPSDUsExtended_constraint;
+ber_type_decoder_f ReceiveStatusOfULPDCPSDUsExtended_decode_ber;
+der_type_encoder_f ReceiveStatusOfULPDCPSDUsExtended_encode_der;
+xer_type_decoder_f ReceiveStatusOfULPDCPSDUsExtended_decode_xer;
+xer_type_encoder_f ReceiveStatusOfULPDCPSDUsExtended_encode_xer;
+oer_type_decoder_f ReceiveStatusOfULPDCPSDUsExtended_decode_oer;
+oer_type_encoder_f ReceiveStatusOfULPDCPSDUsExtended_encode_oer;
+per_type_decoder_f ReceiveStatusOfULPDCPSDUsExtended_decode_uper;
+per_type_encoder_f ReceiveStatusOfULPDCPSDUsExtended_encode_uper;
+per_type_decoder_f ReceiveStatusOfULPDCPSDUsExtended_decode_aper;
+per_type_encoder_f ReceiveStatusOfULPDCPSDUsExtended_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ReceiveStatusOfULPDCPSDUsExtended_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h b/src/s1ap/asn1c/asnGenFiles/ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h
new file mode 100644
index 0000000..ddd731f
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_H_
+#define _ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 */
+typedef BIT_STRING_t ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18;
+asn_struct_free_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_free;
+asn_struct_print_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_print;
+asn_constr_check_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_constraint;
+ber_type_decoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_decode_ber;
+der_type_encoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_encode_der;
+xer_type_decoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_decode_xer;
+xer_type_encoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_encode_xer;
+oer_type_decoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_decode_oer;
+oer_type_encoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_encode_oer;
+per_type_decoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_decode_uper;
+per_type_encoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_encode_uper;
+per_type_decoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_decode_aper;
+per_type_encoder_f ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ReceiveStatusofULPDCPSDUs.h b/src/s1ap/asn1c/asnGenFiles/ReceiveStatusofULPDCPSDUs.h
new file mode 100644
index 0000000..5e4893f
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ReceiveStatusofULPDCPSDUs.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ReceiveStatusofULPDCPSDUs_H_
+#define _ReceiveStatusofULPDCPSDUs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ReceiveStatusofULPDCPSDUs */
+typedef BIT_STRING_t ReceiveStatusofULPDCPSDUs_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ReceiveStatusofULPDCPSDUs_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ReceiveStatusofULPDCPSDUs;
+asn_struct_free_f ReceiveStatusofULPDCPSDUs_free;
+asn_struct_print_f ReceiveStatusofULPDCPSDUs_print;
+asn_constr_check_f ReceiveStatusofULPDCPSDUs_constraint;
+ber_type_decoder_f ReceiveStatusofULPDCPSDUs_decode_ber;
+der_type_encoder_f ReceiveStatusofULPDCPSDUs_encode_der;
+xer_type_decoder_f ReceiveStatusofULPDCPSDUs_decode_xer;
+xer_type_encoder_f ReceiveStatusofULPDCPSDUs_encode_xer;
+oer_type_decoder_f ReceiveStatusofULPDCPSDUs_decode_oer;
+oer_type_encoder_f ReceiveStatusofULPDCPSDUs_encode_oer;
+per_type_decoder_f ReceiveStatusofULPDCPSDUs_decode_uper;
+per_type_encoder_f ReceiveStatusofULPDCPSDUs_encode_uper;
+per_type_decoder_f ReceiveStatusofULPDCPSDUs_decode_aper;
+per_type_encoder_f ReceiveStatusofULPDCPSDUs_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ReceiveStatusofULPDCPSDUs_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/RecommendedCellItem.h b/src/s1ap/asn1c/asnGenFiles/RecommendedCellItem.h
new file mode 100644
index 0000000..8577390
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/RecommendedCellItem.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _RecommendedCellItem_H_
+#define _RecommendedCellItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "EUTRAN-CGI.h"
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* RecommendedCellItem */
+typedef struct RecommendedCellItem {
+ EUTRAN_CGI_t eUTRAN_CGI;
+ long *timeStayedInCell; /* 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;
+} RecommendedCellItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RecommendedCellItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_RecommendedCellItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_RecommendedCellItem_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RecommendedCellItem_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/RecommendedCellList.h b/src/s1ap/asn1c/asnGenFiles/RecommendedCellList.h
new file mode 100644
index 0000000..a6d7bb7
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/RecommendedCellList.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _RecommendedCellList_H_
+#define _RecommendedCellList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* RecommendedCellList */
+typedef struct RecommendedCellList {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} RecommendedCellList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RecommendedCellList;
+extern asn_SET_OF_specifics_t asn_SPC_RecommendedCellList_specs_1;
+extern asn_TYPE_member_t asn_MBR_RecommendedCellList_1[1];
+extern asn_per_constraints_t asn_PER_type_RecommendedCellList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RecommendedCellList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/RecommendedCellsForPaging.h b/src/s1ap/asn1c/asnGenFiles/RecommendedCellsForPaging.h
new file mode 100644
index 0000000..fc3f024
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/RecommendedCellsForPaging.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _RecommendedCellsForPaging_H_
+#define _RecommendedCellsForPaging_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RecommendedCellList.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* RecommendedCellsForPaging */
+typedef struct RecommendedCellsForPaging {
+ RecommendedCellList_t recommendedCellList;
+ 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;
+} RecommendedCellsForPaging_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RecommendedCellsForPaging;
+extern asn_SEQUENCE_specifics_t asn_SPC_RecommendedCellsForPaging_specs_1;
+extern asn_TYPE_member_t asn_MBR_RecommendedCellsForPaging_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RecommendedCellsForPaging_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/RecommendedENBItem.h b/src/s1ap/asn1c/asnGenFiles/RecommendedENBItem.h
new file mode 100644
index 0000000..03e6105
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/RecommendedENBItem.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _RecommendedENBItem_H_
+#define _RecommendedENBItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "MMEPagingTarget.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* RecommendedENBItem */
+typedef struct RecommendedENBItem {
+ MMEPagingTarget_t mMEPagingTarget;
+ 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;
+} RecommendedENBItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RecommendedENBItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_RecommendedENBItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_RecommendedENBItem_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RecommendedENBItem_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/RecommendedENBList.h b/src/s1ap/asn1c/asnGenFiles/RecommendedENBList.h
new file mode 100644
index 0000000..4b3da06
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/RecommendedENBList.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _RecommendedENBList_H_
+#define _RecommendedENBList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* RecommendedENBList */
+typedef struct RecommendedENBList {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} RecommendedENBList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RecommendedENBList;
+extern asn_SET_OF_specifics_t asn_SPC_RecommendedENBList_specs_1;
+extern asn_TYPE_member_t asn_MBR_RecommendedENBList_1[1];
+extern asn_per_constraints_t asn_PER_type_RecommendedENBList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RecommendedENBList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/RecommendedENBsForPaging.h b/src/s1ap/asn1c/asnGenFiles/RecommendedENBsForPaging.h
new file mode 100644
index 0000000..e41664e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/RecommendedENBsForPaging.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _RecommendedENBsForPaging_H_
+#define _RecommendedENBsForPaging_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RecommendedENBList.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* RecommendedENBsForPaging */
+typedef struct RecommendedENBsForPaging {
+ RecommendedENBList_t recommendedENBList;
+ 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;
+} RecommendedENBsForPaging_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RecommendedENBsForPaging;
+extern asn_SEQUENCE_specifics_t asn_SPC_RecommendedENBsForPaging_specs_1;
+extern asn_TYPE_member_t asn_MBR_RecommendedENBsForPaging_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RecommendedENBsForPaging_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/RelativeMMECapacity.h b/src/s1ap/asn1c/asnGenFiles/RelativeMMECapacity.h
new file mode 100644
index 0000000..ec49230
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/RelativeMMECapacity.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _RelativeMMECapacity_H_
+#define _RelativeMMECapacity_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RelativeMMECapacity */
+typedef long RelativeMMECapacity_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RelativeMMECapacity_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RelativeMMECapacity;
+asn_struct_free_f RelativeMMECapacity_free;
+asn_struct_print_f RelativeMMECapacity_print;
+asn_constr_check_f RelativeMMECapacity_constraint;
+ber_type_decoder_f RelativeMMECapacity_decode_ber;
+der_type_encoder_f RelativeMMECapacity_encode_der;
+xer_type_decoder_f RelativeMMECapacity_decode_xer;
+xer_type_encoder_f RelativeMMECapacity_encode_xer;
+oer_type_decoder_f RelativeMMECapacity_decode_oer;
+oer_type_encoder_f RelativeMMECapacity_encode_oer;
+per_type_decoder_f RelativeMMECapacity_decode_uper;
+per_type_encoder_f RelativeMMECapacity_encode_uper;
+per_type_decoder_f RelativeMMECapacity_decode_aper;
+per_type_encoder_f RelativeMMECapacity_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RelativeMMECapacity_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/RelayNode-Indicator.h b/src/s1ap/asn1c/asnGenFiles/RelayNode-Indicator.h
new file mode 100644
index 0000000..35e27aa
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/RelayNode-Indicator.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _RelayNode_Indicator_H_
+#define _RelayNode_Indicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RelayNode_Indicator {
+ RelayNode_Indicator_true = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_RelayNode_Indicator;
+
+/* RelayNode-Indicator */
+typedef long RelayNode_Indicator_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RelayNode_Indicator_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RelayNode_Indicator;
+extern const asn_INTEGER_specifics_t asn_SPC_RelayNode_Indicator_specs_1;
+asn_struct_free_f RelayNode_Indicator_free;
+asn_struct_print_f RelayNode_Indicator_print;
+asn_constr_check_f RelayNode_Indicator_constraint;
+ber_type_decoder_f RelayNode_Indicator_decode_ber;
+der_type_encoder_f RelayNode_Indicator_encode_der;
+xer_type_decoder_f RelayNode_Indicator_decode_xer;
+xer_type_encoder_f RelayNode_Indicator_encode_xer;
+oer_type_decoder_f RelayNode_Indicator_decode_oer;
+oer_type_encoder_f RelayNode_Indicator_encode_oer;
+per_type_decoder_f RelayNode_Indicator_decode_uper;
+per_type_encoder_f RelayNode_Indicator_encode_uper;
+per_type_decoder_f RelayNode_Indicator_decode_aper;
+per_type_encoder_f RelayNode_Indicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RelayNode_Indicator_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/RepetitionPeriod.h b/src/s1ap/asn1c/asnGenFiles/RepetitionPeriod.h
new file mode 100644
index 0000000..e10caf8
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/RepetitionPeriod.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _RepetitionPeriod_H_
+#define _RepetitionPeriod_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RepetitionPeriod */
+typedef long RepetitionPeriod_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RepetitionPeriod_constr_1;
+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 <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ReportAmountMDT.h b/src/s1ap/asn1c/asnGenFiles/ReportAmountMDT.h
new file mode 100644
index 0000000..0a80434
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ReportAmountMDT.h
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ReportAmountMDT_H_
+#define _ReportAmountMDT_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ReportAmountMDT {
+ ReportAmountMDT_r1 = 0,
+ ReportAmountMDT_r2 = 1,
+ ReportAmountMDT_r4 = 2,
+ ReportAmountMDT_r8 = 3,
+ ReportAmountMDT_r16 = 4,
+ ReportAmountMDT_r32 = 5,
+ ReportAmountMDT_r64 = 6,
+ ReportAmountMDT_rinfinity = 7
+} e_ReportAmountMDT;
+
+/* ReportAmountMDT */
+typedef long ReportAmountMDT_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ReportAmountMDT_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ReportAmountMDT;
+extern const asn_INTEGER_specifics_t asn_SPC_ReportAmountMDT_specs_1;
+asn_struct_free_f ReportAmountMDT_free;
+asn_struct_print_f ReportAmountMDT_print;
+asn_constr_check_f ReportAmountMDT_constraint;
+ber_type_decoder_f ReportAmountMDT_decode_ber;
+der_type_encoder_f ReportAmountMDT_encode_der;
+xer_type_decoder_f ReportAmountMDT_decode_xer;
+xer_type_encoder_f ReportAmountMDT_encode_xer;
+oer_type_decoder_f ReportAmountMDT_decode_oer;
+oer_type_encoder_f ReportAmountMDT_encode_oer;
+per_type_decoder_f ReportAmountMDT_decode_uper;
+per_type_encoder_f ReportAmountMDT_encode_uper;
+per_type_decoder_f ReportAmountMDT_decode_aper;
+per_type_encoder_f ReportAmountMDT_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ReportAmountMDT_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ReportArea.h b/src/s1ap/asn1c/asnGenFiles/ReportArea.h
new file mode 100644
index 0000000..febf80d
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ReportArea.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ReportArea_H_
+#define _ReportArea_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ReportArea {
+ ReportArea_ecgi = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_ReportArea;
+
+/* ReportArea */
+typedef long ReportArea_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ReportArea_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ReportArea;
+extern const asn_INTEGER_specifics_t asn_SPC_ReportArea_specs_1;
+asn_struct_free_f ReportArea_free;
+asn_struct_print_f ReportArea_print;
+asn_constr_check_f ReportArea_constraint;
+ber_type_decoder_f ReportArea_decode_ber;
+der_type_encoder_f ReportArea_encode_der;
+xer_type_decoder_f ReportArea_decode_xer;
+xer_type_encoder_f ReportArea_encode_xer;
+oer_type_decoder_f ReportArea_decode_oer;
+oer_type_encoder_f ReportArea_encode_oer;
+per_type_decoder_f ReportArea_decode_uper;
+per_type_encoder_f ReportArea_encode_uper;
+per_type_decoder_f ReportArea_decode_aper;
+per_type_encoder_f ReportArea_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ReportArea_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ReportIntervalMDT.h b/src/s1ap/asn1c/asnGenFiles/ReportIntervalMDT.h
new file mode 100644
index 0000000..b402695
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ReportIntervalMDT.h
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ReportIntervalMDT_H_
+#define _ReportIntervalMDT_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ReportIntervalMDT {
+ ReportIntervalMDT_ms120 = 0,
+ ReportIntervalMDT_ms240 = 1,
+ ReportIntervalMDT_ms480 = 2,
+ ReportIntervalMDT_ms640 = 3,
+ ReportIntervalMDT_ms1024 = 4,
+ ReportIntervalMDT_ms2048 = 5,
+ ReportIntervalMDT_ms5120 = 6,
+ ReportIntervalMDT_ms10240 = 7,
+ ReportIntervalMDT_min1 = 8,
+ ReportIntervalMDT_min6 = 9,
+ ReportIntervalMDT_min12 = 10,
+ ReportIntervalMDT_min30 = 11,
+ ReportIntervalMDT_min60 = 12
+} e_ReportIntervalMDT;
+
+/* ReportIntervalMDT */
+typedef long ReportIntervalMDT_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ReportIntervalMDT_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ReportIntervalMDT;
+extern const asn_INTEGER_specifics_t asn_SPC_ReportIntervalMDT_specs_1;
+asn_struct_free_f ReportIntervalMDT_free;
+asn_struct_print_f ReportIntervalMDT_print;
+asn_constr_check_f ReportIntervalMDT_constraint;
+ber_type_decoder_f ReportIntervalMDT_decode_ber;
+der_type_encoder_f ReportIntervalMDT_encode_der;
+xer_type_decoder_f ReportIntervalMDT_decode_xer;
+xer_type_encoder_f ReportIntervalMDT_encode_xer;
+oer_type_decoder_f ReportIntervalMDT_decode_oer;
+oer_type_encoder_f ReportIntervalMDT_encode_oer;
+per_type_decoder_f ReportIntervalMDT_decode_uper;
+per_type_encoder_f ReportIntervalMDT_encode_uper;
+per_type_decoder_f ReportIntervalMDT_decode_aper;
+per_type_encoder_f ReportIntervalMDT_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ReportIntervalMDT_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/RequestType.h b/src/s1ap/asn1c/asnGenFiles/RequestType.h
new file mode 100644
index 0000000..5e3b557
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/RequestType.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _RequestType_H_
+#define _RequestType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "EventType.h"
+#include "ReportArea.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* RequestType */
+typedef struct RequestType {
+ EventType_t eventType;
+ ReportArea_t reportArea;
+ 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;
+} RequestType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RequestType;
+extern asn_SEQUENCE_specifics_t asn_SPC_RequestType_specs_1;
+extern asn_TYPE_member_t asn_MBR_RequestType_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RequestType_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/RequestTypeAdditionalInfo.h b/src/s1ap/asn1c/asnGenFiles/RequestTypeAdditionalInfo.h
new file mode 100644
index 0000000..9172679
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/RequestTypeAdditionalInfo.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _RequestTypeAdditionalInfo_H_
+#define _RequestTypeAdditionalInfo_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RequestTypeAdditionalInfo {
+ RequestTypeAdditionalInfo_includePSCell = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_RequestTypeAdditionalInfo;
+
+/* RequestTypeAdditionalInfo */
+typedef long RequestTypeAdditionalInfo_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RequestTypeAdditionalInfo_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RequestTypeAdditionalInfo;
+extern const asn_INTEGER_specifics_t asn_SPC_RequestTypeAdditionalInfo_specs_1;
+asn_struct_free_f RequestTypeAdditionalInfo_free;
+asn_struct_print_f RequestTypeAdditionalInfo_print;
+asn_constr_check_f RequestTypeAdditionalInfo_constraint;
+ber_type_decoder_f RequestTypeAdditionalInfo_decode_ber;
+der_type_encoder_f RequestTypeAdditionalInfo_encode_der;
+xer_type_decoder_f RequestTypeAdditionalInfo_decode_xer;
+xer_type_encoder_f RequestTypeAdditionalInfo_encode_xer;
+oer_type_decoder_f RequestTypeAdditionalInfo_decode_oer;
+oer_type_encoder_f RequestTypeAdditionalInfo_encode_oer;
+per_type_decoder_f RequestTypeAdditionalInfo_decode_uper;
+per_type_encoder_f RequestTypeAdditionalInfo_encode_uper;
+per_type_decoder_f RequestTypeAdditionalInfo_decode_aper;
+per_type_encoder_f RequestTypeAdditionalInfo_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RequestTypeAdditionalInfo_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/RerouteNASRequest.h b/src/s1ap/asn1c/asnGenFiles/RerouteNASRequest.h
new file mode 100644
index 0000000..c281a14
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/RerouteNASRequest.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _RerouteNASRequest_H_
+#define _RerouteNASRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RerouteNASRequest */
+typedef struct RerouteNASRequest {
+ ProtocolIE_Container_129P35_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} RerouteNASRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RerouteNASRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RerouteNASRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Reset.h b/src/s1ap/asn1c/asnGenFiles/Reset.h
new file mode 100644
index 0000000..ea283e4
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Reset.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Reset_H_
+#define _Reset_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Reset */
+typedef struct Reset {
+ ProtocolIE_Container_129P37_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;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Reset_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ResetAcknowledge.h b/src/s1ap/asn1c/asnGenFiles/ResetAcknowledge.h
new file mode 100644
index 0000000..34652a3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ResetAcknowledge.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ResetAcknowledge_H_
+#define _ResetAcknowledge_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ResetAcknowledge */
+typedef struct ResetAcknowledge {
+ ProtocolIE_Container_129P38_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;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ResetAcknowledge_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ResetAll.h b/src/s1ap/asn1c/asnGenFiles/ResetAll.h
new file mode 100644
index 0000000..1e50ef4
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ResetAll.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ResetAll_H_
+#define _ResetAll_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#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 <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ResetType.h b/src/s1ap/asn1c/asnGenFiles/ResetType.h
new file mode 100644
index 0000000..1fe2136
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ResetType.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ResetType_H_
+#define _ResetType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ResetAll.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ResetType_PR {
+ ResetType_PR_NOTHING, /* No components present */
+ ResetType_PR_s1_Interface,
+ ResetType_PR_partOfS1_Interface
+ /* Extensions may appear below */
+
+} ResetType_PR;
+
+/* Forward declarations */
+struct UE_associatedLogicalS1_ConnectionListRes;
+
+/* ResetType */
+typedef struct ResetType {
+ ResetType_PR present;
+ union ResetType_u {
+ ResetAll_t s1_Interface;
+ struct UE_associatedLogicalS1_ConnectionListRes *partOfS1_Interface;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ResetType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ResetType;
+extern asn_CHOICE_specifics_t asn_SPC_ResetType_specs_1;
+extern asn_TYPE_member_t asn_MBR_ResetType_1[2];
+extern asn_per_constraints_t asn_PER_type_ResetType_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ResetType_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/RetrieveUEInformation.h b/src/s1ap/asn1c/asnGenFiles/RetrieveUEInformation.h
new file mode 100644
index 0000000..03f619a
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/RetrieveUEInformation.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _RetrieveUEInformation_H_
+#define _RetrieveUEInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RetrieveUEInformation */
+typedef struct RetrieveUEInformation {
+ ProtocolIE_Container_129P87_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} RetrieveUEInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RetrieveUEInformation;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RetrieveUEInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Routing-ID.h b/src/s1ap/asn1c/asnGenFiles/Routing-ID.h
new file mode 100644
index 0000000..34ccd12
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Routing-ID.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Routing_ID_H_
+#define _Routing_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Routing-ID */
+typedef long Routing_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Routing_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Routing_ID;
+asn_struct_free_f Routing_ID_free;
+asn_struct_print_f Routing_ID_print;
+asn_constr_check_f Routing_ID_constraint;
+ber_type_decoder_f Routing_ID_decode_ber;
+der_type_encoder_f Routing_ID_encode_der;
+xer_type_decoder_f Routing_ID_decode_xer;
+xer_type_encoder_f Routing_ID_encode_xer;
+oer_type_decoder_f Routing_ID_decode_oer;
+oer_type_encoder_f Routing_ID_encode_oer;
+per_type_decoder_f Routing_ID_decode_uper;
+per_type_encoder_f Routing_ID_encode_uper;
+per_type_decoder_f Routing_ID_decode_aper;
+per_type_encoder_f Routing_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Routing_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/S-TMSI.h b/src/s1ap/asn1c/asnGenFiles/S-TMSI.h
new file mode 100644
index 0000000..32692e8
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/S-TMSI.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _S_TMSI_H_
+#define _S_TMSI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "MME-Code.h"
+#include "M-TMSI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* S-TMSI */
+typedef struct S_TMSI {
+ MME_Code_t mMEC;
+ M_TMSI_t m_TMSI;
+ 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;
+} S_TMSI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_S_TMSI;
+extern asn_SEQUENCE_specifics_t asn_SPC_S_TMSI_specs_1;
+extern asn_TYPE_member_t asn_MBR_S_TMSI_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _S_TMSI_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/S1AP-PDU.h b/src/s1ap/asn1c/asnGenFiles/S1AP-PDU.h
new file mode 100644
index 0000000..2d05681
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/S1AP-PDU.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Descriptions"
+ * found in "./asn1c/S1AP-PDU-Descriptions.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _S1AP_PDU_H_
+#define _S1AP_PDU_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum S1AP_PDU_PR {
+ S1AP_PDU_PR_NOTHING, /* No components present */
+ S1AP_PDU_PR_initiatingMessage,
+ S1AP_PDU_PR_successfulOutcome,
+ S1AP_PDU_PR_unsuccessfulOutcome
+ /* Extensions may appear below */
+
+} S1AP_PDU_PR;
+
+/* Forward declarations */
+struct InitiatingMessage;
+struct SuccessfulOutcome;
+struct UnsuccessfulOutcome;
+
+/* S1AP-PDU */
+typedef struct S1AP_PDU {
+ S1AP_PDU_PR present;
+ union S1AP_PDU_u {
+ struct InitiatingMessage *initiatingMessage;
+ struct SuccessfulOutcome *successfulOutcome;
+ struct UnsuccessfulOutcome *unsuccessfulOutcome;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} S1AP_PDU_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_S1AP_PDU;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _S1AP_PDU_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/S1SetupFailure.h b/src/s1ap/asn1c/asnGenFiles/S1SetupFailure.h
new file mode 100644
index 0000000..1cbe2e6
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/S1SetupFailure.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _S1SetupFailure_H_
+#define _S1SetupFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* S1SetupFailure */
+typedef struct S1SetupFailure {
+ ProtocolIE_Container_129P42_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} S1SetupFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_S1SetupFailure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _S1SetupFailure_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/S1SetupRequest.h b/src/s1ap/asn1c/asnGenFiles/S1SetupRequest.h
new file mode 100644
index 0000000..1d3e084
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/S1SetupRequest.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _S1SetupRequest_H_
+#define _S1SetupRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* S1SetupRequest */
+typedef struct S1SetupRequest {
+ ProtocolIE_Container_129P40_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} S1SetupRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_S1SetupRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _S1SetupRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/S1SetupResponse.h b/src/s1ap/asn1c/asnGenFiles/S1SetupResponse.h
new file mode 100644
index 0000000..d5c98bf
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/S1SetupResponse.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _S1SetupResponse_H_
+#define _S1SetupResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* S1SetupResponse */
+typedef struct S1SetupResponse {
+ ProtocolIE_Container_129P41_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} S1SetupResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_S1SetupResponse;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _S1SetupResponse_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SONConfigurationTransfer.h b/src/s1ap/asn1c/asnGenFiles/SONConfigurationTransfer.h
new file mode 100644
index 0000000..9373487
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SONConfigurationTransfer.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SONConfigurationTransfer_H_
+#define _SONConfigurationTransfer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TargeteNB-ID.h"
+#include "SourceeNB-ID.h"
+#include "SONInformation.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* SONConfigurationTransfer */
+typedef struct SONConfigurationTransfer {
+ TargeteNB_ID_t targeteNB_ID;
+ SourceeNB_ID_t sourceeNB_ID;
+ SONInformation_t sONInformation;
+ 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;
+} SONConfigurationTransfer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SONConfigurationTransfer;
+extern asn_SEQUENCE_specifics_t asn_SPC_SONConfigurationTransfer_specs_1;
+extern asn_TYPE_member_t asn_MBR_SONConfigurationTransfer_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SONConfigurationTransfer_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SONInformation-Extension.h b/src/s1ap/asn1c/asnGenFiles/SONInformation-Extension.h
new file mode 100644
index 0000000..aea4e7e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SONInformation-Extension.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SONInformation_Extension_H_
+#define _SONInformation_Extension_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-SingleContainer.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SONInformation-Extension */
+typedef ProtocolIE_SingleContainer_132P8_t SONInformation_Extension_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SONInformation_Extension;
+asn_struct_free_f SONInformation_Extension_free;
+asn_struct_print_f SONInformation_Extension_print;
+asn_constr_check_f SONInformation_Extension_constraint;
+ber_type_decoder_f SONInformation_Extension_decode_ber;
+der_type_encoder_f SONInformation_Extension_encode_der;
+xer_type_decoder_f SONInformation_Extension_decode_xer;
+xer_type_encoder_f SONInformation_Extension_encode_xer;
+oer_type_decoder_f SONInformation_Extension_decode_oer;
+oer_type_encoder_f SONInformation_Extension_encode_oer;
+per_type_decoder_f SONInformation_Extension_decode_uper;
+per_type_encoder_f SONInformation_Extension_encode_uper;
+per_type_decoder_f SONInformation_Extension_decode_aper;
+per_type_encoder_f SONInformation_Extension_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SONInformation_Extension_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SONInformation.h b/src/s1ap/asn1c/asnGenFiles/SONInformation.h
new file mode 100644
index 0000000..718771d
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SONInformation.h
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SONInformation_H_
+#define _SONInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "SONInformationRequest.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SONInformation_PR {
+ SONInformation_PR_NOTHING, /* No components present */
+ SONInformation_PR_sONInformationRequest,
+ SONInformation_PR_sONInformationReply,
+ /* Extensions may appear below */
+ SONInformation_PR_sONInformation_Extension
+} SONInformation_PR;
+
+/* Forward declarations */
+struct SONInformationReply;
+struct SONInformation_Extension;
+
+/* SONInformation */
+typedef struct SONInformation {
+ SONInformation_PR present;
+ union SONInformation_u {
+ SONInformationRequest_t sONInformationRequest;
+ struct SONInformationReply *sONInformationReply;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ struct SONInformation_Extension *sONInformation_Extension;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SONInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SONInformation;
+extern asn_CHOICE_specifics_t asn_SPC_SONInformation_specs_1;
+extern asn_TYPE_member_t asn_MBR_SONInformation_1[3];
+extern asn_per_constraints_t asn_PER_type_SONInformation_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SONInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SONInformationReply.h b/src/s1ap/asn1c/asnGenFiles/SONInformationReply.h
new file mode 100644
index 0000000..ff0f18d
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SONInformationReply.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SONInformationReply_H_
+#define _SONInformationReply_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct X2TNLConfigurationInfo;
+struct ProtocolExtensionContainer;
+
+/* SONInformationReply */
+typedef struct SONInformationReply {
+ struct X2TNLConfigurationInfo *x2TNLConfigurationInfo; /* 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;
+} SONInformationReply_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SONInformationReply;
+extern asn_SEQUENCE_specifics_t asn_SPC_SONInformationReply_specs_1;
+extern asn_TYPE_member_t asn_MBR_SONInformationReply_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SONInformationReply_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SONInformationReport.h b/src/s1ap/asn1c/asnGenFiles/SONInformationReport.h
new file mode 100644
index 0000000..8e834ac
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SONInformationReport.h
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SONInformationReport_H_
+#define _SONInformationReport_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SONInformationReport_PR {
+ SONInformationReport_PR_NOTHING, /* No components present */
+ SONInformationReport_PR_rLFReportInformation
+ /* Extensions may appear below */
+
+} SONInformationReport_PR;
+
+/* Forward declarations */
+struct RLFReportInformation;
+
+/* SONInformationReport */
+typedef struct SONInformationReport {
+ SONInformationReport_PR present;
+ union SONInformationReport_u {
+ struct RLFReportInformation *rLFReportInformation;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SONInformationReport_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SONInformationReport;
+extern asn_CHOICE_specifics_t asn_SPC_SONInformationReport_specs_1;
+extern asn_TYPE_member_t asn_MBR_SONInformationReport_1[1];
+extern asn_per_constraints_t asn_PER_type_SONInformationReport_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SONInformationReport_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SONInformationRequest.h b/src/s1ap/asn1c/asnGenFiles/SONInformationRequest.h
new file mode 100644
index 0000000..19277f3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SONInformationRequest.h
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SONInformationRequest_H_
+#define _SONInformationRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SONInformationRequest {
+ SONInformationRequest_x2TNL_Configuration_Info = 0,
+ /*
+ * Enumeration is extensible
+ */
+ SONInformationRequest_time_Synchronisation_Info = 1,
+ SONInformationRequest_activate_Muting = 2,
+ SONInformationRequest_deactivate_Muting = 3
+} e_SONInformationRequest;
+
+/* SONInformationRequest */
+typedef long SONInformationRequest_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_SONInformationRequest_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_SONInformationRequest;
+extern const asn_INTEGER_specifics_t asn_SPC_SONInformationRequest_specs_1;
+asn_struct_free_f SONInformationRequest_free;
+asn_struct_print_f SONInformationRequest_print;
+asn_constr_check_f SONInformationRequest_constraint;
+ber_type_decoder_f SONInformationRequest_decode_ber;
+der_type_encoder_f SONInformationRequest_encode_der;
+xer_type_decoder_f SONInformationRequest_decode_xer;
+xer_type_encoder_f SONInformationRequest_encode_xer;
+oer_type_decoder_f SONInformationRequest_decode_oer;
+oer_type_encoder_f SONInformationRequest_encode_oer;
+per_type_decoder_f SONInformationRequest_decode_uper;
+per_type_encoder_f SONInformationRequest_encode_uper;
+per_type_decoder_f SONInformationRequest_decode_aper;
+per_type_encoder_f SONInformationRequest_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SONInformationRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SRVCCHOIndication.h b/src/s1ap/asn1c/asnGenFiles/SRVCCHOIndication.h
new file mode 100644
index 0000000..5974ebe
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SRVCCHOIndication.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SRVCCHOIndication_H_
+#define _SRVCCHOIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SRVCCHOIndication {
+ SRVCCHOIndication_pSandCS = 0,
+ SRVCCHOIndication_cSonly = 1
+ /*
+ * Enumeration is extensible
+ */
+} e_SRVCCHOIndication;
+
+/* SRVCCHOIndication */
+typedef long SRVCCHOIndication_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_SRVCCHOIndication_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_SRVCCHOIndication;
+extern const asn_INTEGER_specifics_t asn_SPC_SRVCCHOIndication_specs_1;
+asn_struct_free_f SRVCCHOIndication_free;
+asn_struct_print_f SRVCCHOIndication_print;
+asn_constr_check_f SRVCCHOIndication_constraint;
+ber_type_decoder_f SRVCCHOIndication_decode_ber;
+der_type_encoder_f SRVCCHOIndication_encode_der;
+xer_type_decoder_f SRVCCHOIndication_decode_xer;
+xer_type_encoder_f SRVCCHOIndication_encode_xer;
+oer_type_decoder_f SRVCCHOIndication_decode_oer;
+oer_type_encoder_f SRVCCHOIndication_encode_oer;
+per_type_decoder_f SRVCCHOIndication_decode_uper;
+per_type_encoder_f SRVCCHOIndication_encode_uper;
+per_type_decoder_f SRVCCHOIndication_decode_aper;
+per_type_encoder_f SRVCCHOIndication_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SRVCCHOIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SRVCCOperationNotPossible.h b/src/s1ap/asn1c/asnGenFiles/SRVCCOperationNotPossible.h
new file mode 100644
index 0000000..33e231a
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SRVCCOperationNotPossible.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SRVCCOperationNotPossible_H_
+#define _SRVCCOperationNotPossible_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SRVCCOperationNotPossible {
+ SRVCCOperationNotPossible_notPossible = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_SRVCCOperationNotPossible;
+
+/* SRVCCOperationNotPossible */
+typedef long SRVCCOperationNotPossible_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_SRVCCOperationNotPossible_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_SRVCCOperationNotPossible;
+extern const asn_INTEGER_specifics_t asn_SPC_SRVCCOperationNotPossible_specs_1;
+asn_struct_free_f SRVCCOperationNotPossible_free;
+asn_struct_print_f SRVCCOperationNotPossible_print;
+asn_constr_check_f SRVCCOperationNotPossible_constraint;
+ber_type_decoder_f SRVCCOperationNotPossible_decode_ber;
+der_type_encoder_f SRVCCOperationNotPossible_encode_der;
+xer_type_decoder_f SRVCCOperationNotPossible_decode_xer;
+xer_type_encoder_f SRVCCOperationNotPossible_encode_xer;
+oer_type_decoder_f SRVCCOperationNotPossible_decode_oer;
+oer_type_encoder_f SRVCCOperationNotPossible_encode_oer;
+per_type_decoder_f SRVCCOperationNotPossible_decode_uper;
+per_type_encoder_f SRVCCOperationNotPossible_encode_uper;
+per_type_decoder_f SRVCCOperationNotPossible_decode_aper;
+per_type_encoder_f SRVCCOperationNotPossible_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SRVCCOperationNotPossible_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SRVCCOperationPossible.h b/src/s1ap/asn1c/asnGenFiles/SRVCCOperationPossible.h
new file mode 100644
index 0000000..d22751a
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SRVCCOperationPossible.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SRVCCOperationPossible_H_
+#define _SRVCCOperationPossible_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SRVCCOperationPossible {
+ SRVCCOperationPossible_possible = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_SRVCCOperationPossible;
+
+/* SRVCCOperationPossible */
+typedef long SRVCCOperationPossible_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_SRVCCOperationPossible_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_SRVCCOperationPossible;
+extern const asn_INTEGER_specifics_t asn_SPC_SRVCCOperationPossible_specs_1;
+asn_struct_free_f SRVCCOperationPossible_free;
+asn_struct_print_f SRVCCOperationPossible_print;
+asn_constr_check_f SRVCCOperationPossible_constraint;
+ber_type_decoder_f SRVCCOperationPossible_decode_ber;
+der_type_encoder_f SRVCCOperationPossible_encode_der;
+xer_type_decoder_f SRVCCOperationPossible_decode_xer;
+xer_type_encoder_f SRVCCOperationPossible_encode_xer;
+oer_type_decoder_f SRVCCOperationPossible_decode_oer;
+oer_type_encoder_f SRVCCOperationPossible_encode_oer;
+per_type_decoder_f SRVCCOperationPossible_decode_uper;
+per_type_encoder_f SRVCCOperationPossible_encode_uper;
+per_type_decoder_f SRVCCOperationPossible_decode_aper;
+per_type_encoder_f SRVCCOperationPossible_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SRVCCOperationPossible_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ScheduledCommunicationTime.h b/src/s1ap/asn1c/asnGenFiles/ScheduledCommunicationTime.h
new file mode 100644
index 0000000..ddaf156
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ScheduledCommunicationTime.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ScheduledCommunicationTime_H_
+#define _ScheduledCommunicationTime_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ScheduledCommunicationTime */
+typedef struct ScheduledCommunicationTime {
+ BIT_STRING_t *dayofWeek; /* OPTIONAL */
+ long *timeofDayStart; /* OPTIONAL */
+ long *timeofDayEnd; /* 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;
+} ScheduledCommunicationTime_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ScheduledCommunicationTime;
+extern asn_SEQUENCE_specifics_t asn_SPC_ScheduledCommunicationTime_specs_1;
+extern asn_TYPE_member_t asn_MBR_ScheduledCommunicationTime_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ScheduledCommunicationTime_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SecondaryRATDataUsageReport.h b/src/s1ap/asn1c/asnGenFiles/SecondaryRATDataUsageReport.h
new file mode 100644
index 0000000..692dab0
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SecondaryRATDataUsageReport.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SecondaryRATDataUsageReport_H_
+#define _SecondaryRATDataUsageReport_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SecondaryRATDataUsageReport */
+typedef struct SecondaryRATDataUsageReport {
+ ProtocolIE_Container_129P91_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SecondaryRATDataUsageReport_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SecondaryRATDataUsageReport;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SecondaryRATDataUsageReport_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SecondaryRATDataUsageReportItem.h b/src/s1ap/asn1c/asnGenFiles/SecondaryRATDataUsageReportItem.h
new file mode 100644
index 0000000..2ec4a3a
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SecondaryRATDataUsageReportItem.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SecondaryRATDataUsageReportItem_H_
+#define _SecondaryRATDataUsageReportItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-RAB-ID.h"
+#include "SecondaryRATType.h"
+#include "E-RABUsageReportList.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* SecondaryRATDataUsageReportItem */
+typedef struct SecondaryRATDataUsageReportItem {
+ E_RAB_ID_t e_RAB_ID;
+ SecondaryRATType_t secondaryRATType;
+ E_RABUsageReportList_t e_RABUsageReportList;
+ 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;
+} SecondaryRATDataUsageReportItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SecondaryRATDataUsageReportItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_SecondaryRATDataUsageReportItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_SecondaryRATDataUsageReportItem_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SecondaryRATDataUsageReportItem_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SecondaryRATDataUsageReportList.h b/src/s1ap/asn1c/asnGenFiles/SecondaryRATDataUsageReportList.h
new file mode 100644
index 0000000..caefb64
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SecondaryRATDataUsageReportList.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SecondaryRATDataUsageReportList_H_
+#define _SecondaryRATDataUsageReportList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* SecondaryRATDataUsageReportList */
+typedef struct SecondaryRATDataUsageReportList {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SecondaryRATDataUsageReportList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SecondaryRATDataUsageReportList;
+extern asn_SET_OF_specifics_t asn_SPC_SecondaryRATDataUsageReportList_specs_1;
+extern asn_TYPE_member_t asn_MBR_SecondaryRATDataUsageReportList_1[1];
+extern asn_per_constraints_t asn_PER_type_SecondaryRATDataUsageReportList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SecondaryRATDataUsageReportList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SecondaryRATDataUsageRequest.h b/src/s1ap/asn1c/asnGenFiles/SecondaryRATDataUsageRequest.h
new file mode 100644
index 0000000..bf5830d
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SecondaryRATDataUsageRequest.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SecondaryRATDataUsageRequest_H_
+#define _SecondaryRATDataUsageRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SecondaryRATDataUsageRequest {
+ SecondaryRATDataUsageRequest_requested = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_SecondaryRATDataUsageRequest;
+
+/* SecondaryRATDataUsageRequest */
+typedef long SecondaryRATDataUsageRequest_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_SecondaryRATDataUsageRequest_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_SecondaryRATDataUsageRequest;
+extern const asn_INTEGER_specifics_t asn_SPC_SecondaryRATDataUsageRequest_specs_1;
+asn_struct_free_f SecondaryRATDataUsageRequest_free;
+asn_struct_print_f SecondaryRATDataUsageRequest_print;
+asn_constr_check_f SecondaryRATDataUsageRequest_constraint;
+ber_type_decoder_f SecondaryRATDataUsageRequest_decode_ber;
+der_type_encoder_f SecondaryRATDataUsageRequest_encode_der;
+xer_type_decoder_f SecondaryRATDataUsageRequest_decode_xer;
+xer_type_encoder_f SecondaryRATDataUsageRequest_encode_xer;
+oer_type_decoder_f SecondaryRATDataUsageRequest_decode_oer;
+oer_type_encoder_f SecondaryRATDataUsageRequest_encode_oer;
+per_type_decoder_f SecondaryRATDataUsageRequest_decode_uper;
+per_type_encoder_f SecondaryRATDataUsageRequest_encode_uper;
+per_type_decoder_f SecondaryRATDataUsageRequest_decode_aper;
+per_type_encoder_f SecondaryRATDataUsageRequest_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SecondaryRATDataUsageRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SecondaryRATType.h b/src/s1ap/asn1c/asnGenFiles/SecondaryRATType.h
new file mode 100644
index 0000000..30d5ebe
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SecondaryRATType.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SecondaryRATType_H_
+#define _SecondaryRATType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SecondaryRATType {
+ SecondaryRATType_nR = 0,
+ /*
+ * Enumeration is extensible
+ */
+ SecondaryRATType_unlicensed = 1
+} e_SecondaryRATType;
+
+/* SecondaryRATType */
+typedef long SecondaryRATType_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_SecondaryRATType_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_SecondaryRATType;
+extern const asn_INTEGER_specifics_t asn_SPC_SecondaryRATType_specs_1;
+asn_struct_free_f SecondaryRATType_free;
+asn_struct_print_f SecondaryRATType_print;
+asn_constr_check_f SecondaryRATType_constraint;
+ber_type_decoder_f SecondaryRATType_decode_ber;
+der_type_encoder_f SecondaryRATType_encode_der;
+xer_type_decoder_f SecondaryRATType_decode_xer;
+xer_type_encoder_f SecondaryRATType_encode_xer;
+oer_type_decoder_f SecondaryRATType_decode_oer;
+oer_type_encoder_f SecondaryRATType_encode_oer;
+per_type_decoder_f SecondaryRATType_decode_uper;
+per_type_encoder_f SecondaryRATType_encode_uper;
+per_type_decoder_f SecondaryRATType_decode_aper;
+per_type_encoder_f SecondaryRATType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SecondaryRATType_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SecurityContext.h b/src/s1ap/asn1c/asnGenFiles/SecurityContext.h
new file mode 100644
index 0000000..37b759b
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SecurityContext.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SecurityContext_H_
+#define _SecurityContext_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include "SecurityKey.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* SecurityContext */
+typedef struct SecurityContext {
+ long nextHopChainingCount;
+ SecurityKey_t nextHopParameter;
+ 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;
+} SecurityContext_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SecurityContext;
+extern asn_SEQUENCE_specifics_t asn_SPC_SecurityContext_specs_1;
+extern asn_TYPE_member_t asn_MBR_SecurityContext_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SecurityContext_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SecurityKey.h b/src/s1ap/asn1c/asnGenFiles/SecurityKey.h
new file mode 100644
index 0000000..cec9491
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SecurityKey.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SecurityKey_H_
+#define _SecurityKey_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SecurityKey */
+typedef BIT_STRING_t SecurityKey_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_SecurityKey_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_SecurityKey;
+asn_struct_free_f SecurityKey_free;
+asn_struct_print_f SecurityKey_print;
+asn_constr_check_f SecurityKey_constraint;
+ber_type_decoder_f SecurityKey_decode_ber;
+der_type_encoder_f SecurityKey_encode_der;
+xer_type_decoder_f SecurityKey_decode_xer;
+xer_type_encoder_f SecurityKey_encode_xer;
+oer_type_decoder_f SecurityKey_decode_oer;
+oer_type_encoder_f SecurityKey_encode_oer;
+per_type_decoder_f SecurityKey_decode_uper;
+per_type_encoder_f SecurityKey_encode_uper;
+per_type_decoder_f SecurityKey_decode_aper;
+per_type_encoder_f SecurityKey_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SecurityKey_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SerialNumber.h b/src/s1ap/asn1c/asnGenFiles/SerialNumber.h
new file mode 100644
index 0000000..11260c4
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SerialNumber.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SerialNumber_H_
+#define _SerialNumber_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SerialNumber */
+typedef BIT_STRING_t SerialNumber_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_SerialNumber_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_SerialNumber;
+asn_struct_free_f SerialNumber_free;
+asn_struct_print_f SerialNumber_print;
+asn_constr_check_f SerialNumber_constraint;
+ber_type_decoder_f SerialNumber_decode_ber;
+der_type_encoder_f SerialNumber_encode_der;
+xer_type_decoder_f SerialNumber_decode_xer;
+xer_type_encoder_f SerialNumber_encode_xer;
+oer_type_decoder_f SerialNumber_decode_oer;
+oer_type_encoder_f SerialNumber_encode_oer;
+per_type_decoder_f SerialNumber_decode_uper;
+per_type_encoder_f SerialNumber_encode_uper;
+per_type_decoder_f SerialNumber_decode_aper;
+per_type_encoder_f SerialNumber_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SerialNumber_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ServedDCNs.h b/src/s1ap/asn1c/asnGenFiles/ServedDCNs.h
new file mode 100644
index 0000000..27c539e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ServedDCNs.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ServedDCNs_H_
+#define _ServedDCNs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ServedDCNsItem;
+
+/* ServedDCNs */
+typedef struct ServedDCNs {
+ A_SEQUENCE_OF(struct ServedDCNsItem) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ServedDCNs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ServedDCNs;
+extern asn_SET_OF_specifics_t asn_SPC_ServedDCNs_specs_1;
+extern asn_TYPE_member_t asn_MBR_ServedDCNs_1[1];
+extern asn_per_constraints_t asn_PER_type_ServedDCNs_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ServedDCNs_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ServedDCNsItem.h b/src/s1ap/asn1c/asnGenFiles/ServedDCNsItem.h
new file mode 100644
index 0000000..cbead31
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ServedDCNsItem.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ServedDCNsItem_H_
+#define _ServedDCNsItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "DCN-ID.h"
+#include "RelativeMMECapacity.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ServedDCNsItem */
+typedef struct ServedDCNsItem {
+ DCN_ID_t dCN_ID;
+ RelativeMMECapacity_t relativeDCNCapacity;
+ 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;
+} ServedDCNsItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ServedDCNsItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_ServedDCNsItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_ServedDCNsItem_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ServedDCNsItem_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ServedGUMMEIs.h b/src/s1ap/asn1c/asnGenFiles/ServedGUMMEIs.h
new file mode 100644
index 0000000..6b1551a
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ServedGUMMEIs.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ServedGUMMEIs_H_
+#define _ServedGUMMEIs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ServedGUMMEIsItem;
+
+/* ServedGUMMEIs */
+typedef struct ServedGUMMEIs {
+ A_SEQUENCE_OF(struct ServedGUMMEIsItem) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ServedGUMMEIs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ServedGUMMEIs;
+extern asn_SET_OF_specifics_t asn_SPC_ServedGUMMEIs_specs_1;
+extern asn_TYPE_member_t asn_MBR_ServedGUMMEIs_1[1];
+extern asn_per_constraints_t asn_PER_type_ServedGUMMEIs_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ServedGUMMEIs_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ServedGUMMEIsItem.h b/src/s1ap/asn1c/asnGenFiles/ServedGUMMEIsItem.h
new file mode 100644
index 0000000..dece863
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ServedGUMMEIsItem.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ServedGUMMEIsItem_H_
+#define _ServedGUMMEIsItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ServedPLMNs.h"
+#include "ServedGroupIDs.h"
+#include "ServedMMECs.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* ServedGUMMEIsItem */
+typedef struct ServedGUMMEIsItem {
+ ServedPLMNs_t servedPLMNs;
+ ServedGroupIDs_t servedGroupIDs;
+ ServedMMECs_t servedMMECs;
+ 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;
+} ServedGUMMEIsItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ServedGUMMEIsItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_ServedGUMMEIsItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_ServedGUMMEIsItem_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ServedGUMMEIsItem_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ServedGroupIDs.h b/src/s1ap/asn1c/asnGenFiles/ServedGroupIDs.h
new file mode 100644
index 0000000..5b5cfdc
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ServedGroupIDs.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ServedGroupIDs_H_
+#define _ServedGroupIDs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "MME-Group-ID.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ServedGroupIDs */
+typedef struct ServedGroupIDs {
+ A_SEQUENCE_OF(MME_Group_ID_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ServedGroupIDs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ServedGroupIDs;
+extern asn_SET_OF_specifics_t asn_SPC_ServedGroupIDs_specs_1;
+extern asn_TYPE_member_t asn_MBR_ServedGroupIDs_1[1];
+extern asn_per_constraints_t asn_PER_type_ServedGroupIDs_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ServedGroupIDs_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ServedMMECs.h b/src/s1ap/asn1c/asnGenFiles/ServedMMECs.h
new file mode 100644
index 0000000..17b8f0b
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ServedMMECs.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ServedMMECs_H_
+#define _ServedMMECs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "MME-Code.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ServedMMECs */
+typedef struct ServedMMECs {
+ A_SEQUENCE_OF(MME_Code_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ServedMMECs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ServedMMECs;
+extern asn_SET_OF_specifics_t asn_SPC_ServedMMECs_specs_1;
+extern asn_TYPE_member_t asn_MBR_ServedMMECs_1[1];
+extern asn_per_constraints_t asn_PER_type_ServedMMECs_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ServedMMECs_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ServedPLMNs.h b/src/s1ap/asn1c/asnGenFiles/ServedPLMNs.h
new file mode 100644
index 0000000..1b9f890
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ServedPLMNs.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ServedPLMNs_H_
+#define _ServedPLMNs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNidentity.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ServedPLMNs */
+typedef struct ServedPLMNs {
+ A_SEQUENCE_OF(PLMNidentity_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ServedPLMNs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ServedPLMNs;
+extern asn_SET_OF_specifics_t asn_SPC_ServedPLMNs_specs_1;
+extern asn_TYPE_member_t asn_MBR_ServedPLMNs_1[1];
+extern asn_per_constraints_t asn_PER_type_ServedPLMNs_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ServedPLMNs_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/ServiceType.h b/src/s1ap/asn1c/asnGenFiles/ServiceType.h
new file mode 100644
index 0000000..f1a2210
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ServiceType.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _ServiceType_H_
+#define _ServiceType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ServiceType {
+ ServiceType_qMC_for_streaming_service = 0,
+ ServiceType_qMC_for_MTSI_service = 1
+ /*
+ * Enumeration is extensible
+ */
+} e_ServiceType;
+
+/* ServiceType */
+typedef long ServiceType_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ServiceType_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ServiceType;
+extern const asn_INTEGER_specifics_t asn_SPC_ServiceType_specs_1;
+asn_struct_free_f ServiceType_free;
+asn_struct_print_f ServiceType_print;
+asn_constr_check_f ServiceType_constraint;
+ber_type_decoder_f ServiceType_decode_ber;
+der_type_encoder_f ServiceType_encode_der;
+xer_type_decoder_f ServiceType_decode_xer;
+xer_type_encoder_f ServiceType_encode_xer;
+oer_type_decoder_f ServiceType_decode_oer;
+oer_type_encoder_f ServiceType_encode_oer;
+per_type_decoder_f ServiceType_decode_uper;
+per_type_encoder_f ServiceType_encode_uper;
+per_type_decoder_f ServiceType_decode_aper;
+per_type_encoder_f ServiceType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ServiceType_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Source-ToTarget-TransparentContainer.h b/src/s1ap/asn1c/asnGenFiles/Source-ToTarget-TransparentContainer.h
new file mode 100644
index 0000000..1822e67
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Source-ToTarget-TransparentContainer.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Source_ToTarget_TransparentContainer_H_
+#define _Source_ToTarget_TransparentContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Source-ToTarget-TransparentContainer */
+typedef OCTET_STRING_t Source_ToTarget_TransparentContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Source_ToTarget_TransparentContainer;
+asn_struct_free_f Source_ToTarget_TransparentContainer_free;
+asn_struct_print_f Source_ToTarget_TransparentContainer_print;
+asn_constr_check_f Source_ToTarget_TransparentContainer_constraint;
+ber_type_decoder_f Source_ToTarget_TransparentContainer_decode_ber;
+der_type_encoder_f Source_ToTarget_TransparentContainer_encode_der;
+xer_type_decoder_f Source_ToTarget_TransparentContainer_decode_xer;
+xer_type_encoder_f Source_ToTarget_TransparentContainer_encode_xer;
+oer_type_decoder_f Source_ToTarget_TransparentContainer_decode_oer;
+oer_type_encoder_f Source_ToTarget_TransparentContainer_encode_oer;
+per_type_decoder_f Source_ToTarget_TransparentContainer_decode_uper;
+per_type_encoder_f Source_ToTarget_TransparentContainer_encode_uper;
+per_type_decoder_f Source_ToTarget_TransparentContainer_decode_aper;
+per_type_encoder_f Source_ToTarget_TransparentContainer_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Source_ToTarget_TransparentContainer_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SourceBSS-ToTargetBSS-TransparentContainer.h b/src/s1ap/asn1c/asnGenFiles/SourceBSS-ToTargetBSS-TransparentContainer.h
new file mode 100644
index 0000000..17cbebd
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SourceBSS-ToTargetBSS-TransparentContainer.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SourceBSS_ToTargetBSS_TransparentContainer_H_
+#define _SourceBSS_ToTargetBSS_TransparentContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SourceBSS-ToTargetBSS-TransparentContainer */
+typedef OCTET_STRING_t SourceBSS_ToTargetBSS_TransparentContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SourceBSS_ToTargetBSS_TransparentContainer;
+asn_struct_free_f SourceBSS_ToTargetBSS_TransparentContainer_free;
+asn_struct_print_f SourceBSS_ToTargetBSS_TransparentContainer_print;
+asn_constr_check_f SourceBSS_ToTargetBSS_TransparentContainer_constraint;
+ber_type_decoder_f SourceBSS_ToTargetBSS_TransparentContainer_decode_ber;
+der_type_encoder_f SourceBSS_ToTargetBSS_TransparentContainer_encode_der;
+xer_type_decoder_f SourceBSS_ToTargetBSS_TransparentContainer_decode_xer;
+xer_type_encoder_f SourceBSS_ToTargetBSS_TransparentContainer_encode_xer;
+oer_type_decoder_f SourceBSS_ToTargetBSS_TransparentContainer_decode_oer;
+oer_type_encoder_f SourceBSS_ToTargetBSS_TransparentContainer_encode_oer;
+per_type_decoder_f SourceBSS_ToTargetBSS_TransparentContainer_decode_uper;
+per_type_encoder_f SourceBSS_ToTargetBSS_TransparentContainer_encode_uper;
+per_type_decoder_f SourceBSS_ToTargetBSS_TransparentContainer_decode_aper;
+per_type_encoder_f SourceBSS_ToTargetBSS_TransparentContainer_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SourceBSS_ToTargetBSS_TransparentContainer_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SourceNgRanNode-ToTargetNgRanNode-TransparentContainer.h b/src/s1ap/asn1c/asnGenFiles/SourceNgRanNode-ToTargetNgRanNode-TransparentContainer.h
new file mode 100644
index 0000000..ce132bf
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SourceNgRanNode-ToTargetNgRanNode-TransparentContainer.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SourceNgRanNode_ToTargetNgRanNode_TransparentContainer_H_
+#define _SourceNgRanNode_ToTargetNgRanNode_TransparentContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SourceNgRanNode-ToTargetNgRanNode-TransparentContainer */
+typedef OCTET_STRING_t SourceNgRanNode_ToTargetNgRanNode_TransparentContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SourceNgRanNode_ToTargetNgRanNode_TransparentContainer;
+asn_struct_free_f SourceNgRanNode_ToTargetNgRanNode_TransparentContainer_free;
+asn_struct_print_f SourceNgRanNode_ToTargetNgRanNode_TransparentContainer_print;
+asn_constr_check_f SourceNgRanNode_ToTargetNgRanNode_TransparentContainer_constraint;
+ber_type_decoder_f SourceNgRanNode_ToTargetNgRanNode_TransparentContainer_decode_ber;
+der_type_encoder_f SourceNgRanNode_ToTargetNgRanNode_TransparentContainer_encode_der;
+xer_type_decoder_f SourceNgRanNode_ToTargetNgRanNode_TransparentContainer_decode_xer;
+xer_type_encoder_f SourceNgRanNode_ToTargetNgRanNode_TransparentContainer_encode_xer;
+oer_type_decoder_f SourceNgRanNode_ToTargetNgRanNode_TransparentContainer_decode_oer;
+oer_type_encoder_f SourceNgRanNode_ToTargetNgRanNode_TransparentContainer_encode_oer;
+per_type_decoder_f SourceNgRanNode_ToTargetNgRanNode_TransparentContainer_decode_uper;
+per_type_encoder_f SourceNgRanNode_ToTargetNgRanNode_TransparentContainer_encode_uper;
+per_type_decoder_f SourceNgRanNode_ToTargetNgRanNode_TransparentContainer_decode_aper;
+per_type_encoder_f SourceNgRanNode_ToTargetNgRanNode_TransparentContainer_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SourceNgRanNode_ToTargetNgRanNode_TransparentContainer_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SourceOfUEActivityBehaviourInformation.h b/src/s1ap/asn1c/asnGenFiles/SourceOfUEActivityBehaviourInformation.h
new file mode 100644
index 0000000..9f5ef9e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SourceOfUEActivityBehaviourInformation.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SourceOfUEActivityBehaviourInformation_H_
+#define _SourceOfUEActivityBehaviourInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SourceOfUEActivityBehaviourInformation {
+ SourceOfUEActivityBehaviourInformation_subscription_information = 0,
+ SourceOfUEActivityBehaviourInformation_statistics = 1
+ /*
+ * Enumeration is extensible
+ */
+} e_SourceOfUEActivityBehaviourInformation;
+
+/* SourceOfUEActivityBehaviourInformation */
+typedef long SourceOfUEActivityBehaviourInformation_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_SourceOfUEActivityBehaviourInformation_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_SourceOfUEActivityBehaviourInformation;
+extern const asn_INTEGER_specifics_t asn_SPC_SourceOfUEActivityBehaviourInformation_specs_1;
+asn_struct_free_f SourceOfUEActivityBehaviourInformation_free;
+asn_struct_print_f SourceOfUEActivityBehaviourInformation_print;
+asn_constr_check_f SourceOfUEActivityBehaviourInformation_constraint;
+ber_type_decoder_f SourceOfUEActivityBehaviourInformation_decode_ber;
+der_type_encoder_f SourceOfUEActivityBehaviourInformation_encode_der;
+xer_type_decoder_f SourceOfUEActivityBehaviourInformation_decode_xer;
+xer_type_encoder_f SourceOfUEActivityBehaviourInformation_encode_xer;
+oer_type_decoder_f SourceOfUEActivityBehaviourInformation_decode_oer;
+oer_type_encoder_f SourceOfUEActivityBehaviourInformation_encode_oer;
+per_type_decoder_f SourceOfUEActivityBehaviourInformation_decode_uper;
+per_type_encoder_f SourceOfUEActivityBehaviourInformation_encode_uper;
+per_type_decoder_f SourceOfUEActivityBehaviourInformation_decode_aper;
+per_type_encoder_f SourceOfUEActivityBehaviourInformation_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SourceOfUEActivityBehaviourInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SourceRNC-ToTargetRNC-TransparentContainer.h b/src/s1ap/asn1c/asnGenFiles/SourceRNC-ToTargetRNC-TransparentContainer.h
new file mode 100644
index 0000000..090636f
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SourceRNC-ToTargetRNC-TransparentContainer.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SourceRNC_ToTargetRNC_TransparentContainer_H_
+#define _SourceRNC_ToTargetRNC_TransparentContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SourceRNC-ToTargetRNC-TransparentContainer */
+typedef OCTET_STRING_t SourceRNC_ToTargetRNC_TransparentContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SourceRNC_ToTargetRNC_TransparentContainer;
+asn_struct_free_f SourceRNC_ToTargetRNC_TransparentContainer_free;
+asn_struct_print_f SourceRNC_ToTargetRNC_TransparentContainer_print;
+asn_constr_check_f SourceRNC_ToTargetRNC_TransparentContainer_constraint;
+ber_type_decoder_f SourceRNC_ToTargetRNC_TransparentContainer_decode_ber;
+der_type_encoder_f SourceRNC_ToTargetRNC_TransparentContainer_encode_der;
+xer_type_decoder_f SourceRNC_ToTargetRNC_TransparentContainer_decode_xer;
+xer_type_encoder_f SourceRNC_ToTargetRNC_TransparentContainer_encode_xer;
+oer_type_decoder_f SourceRNC_ToTargetRNC_TransparentContainer_decode_oer;
+oer_type_encoder_f SourceRNC_ToTargetRNC_TransparentContainer_encode_oer;
+per_type_decoder_f SourceRNC_ToTargetRNC_TransparentContainer_decode_uper;
+per_type_encoder_f SourceRNC_ToTargetRNC_TransparentContainer_encode_uper;
+per_type_decoder_f SourceRNC_ToTargetRNC_TransparentContainer_decode_aper;
+per_type_encoder_f SourceRNC_ToTargetRNC_TransparentContainer_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SourceRNC_ToTargetRNC_TransparentContainer_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SourceeNB-ID.h b/src/s1ap/asn1c/asnGenFiles/SourceeNB-ID.h
new file mode 100644
index 0000000..6508fe4
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SourceeNB-ID.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SourceeNB_ID_H_
+#define _SourceeNB_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "Global-ENB-ID.h"
+#include "TAI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* SourceeNB-ID */
+typedef struct SourceeNB_ID {
+ Global_ENB_ID_t global_ENB_ID;
+ TAI_t selected_TAI;
+ struct ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SourceeNB_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SourceeNB_ID;
+extern asn_SEQUENCE_specifics_t asn_SPC_SourceeNB_ID_specs_1;
+extern asn_TYPE_member_t asn_MBR_SourceeNB_ID_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SourceeNB_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SourceeNB-ToTargeteNB-TransparentContainer.h b/src/s1ap/asn1c/asnGenFiles/SourceeNB-ToTargeteNB-TransparentContainer.h
new file mode 100644
index 0000000..b445ff4
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SourceeNB-ToTargeteNB-TransparentContainer.h
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SourceeNB_ToTargeteNB_TransparentContainer_H_
+#define _SourceeNB_ToTargeteNB_TransparentContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RRC-Container.h"
+#include "EUTRAN-CGI.h"
+#include "SubscriberProfileIDforRFP.h"
+#include "UE-HistoryInformation.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct E_RABInformationList;
+struct ProtocolExtensionContainer;
+
+/* SourceeNB-ToTargeteNB-TransparentContainer */
+typedef struct SourceeNB_ToTargeteNB_TransparentContainer {
+ RRC_Container_t rRC_Container;
+ struct E_RABInformationList *e_RABInformationList; /* OPTIONAL */
+ EUTRAN_CGI_t targetCell_ID;
+ SubscriberProfileIDforRFP_t *subscriberProfileIDforRFP; /* OPTIONAL */
+ UE_HistoryInformation_t uE_HistoryInformation;
+ 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;
+} SourceeNB_ToTargeteNB_TransparentContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SourceeNB_ToTargeteNB_TransparentContainer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SourceeNB_ToTargeteNB_TransparentContainer_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/StratumLevel.h b/src/s1ap/asn1c/asnGenFiles/StratumLevel.h
new file mode 100644
index 0000000..dfa38f2
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/StratumLevel.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _StratumLevel_H_
+#define _StratumLevel_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* StratumLevel */
+typedef long StratumLevel_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_StratumLevel_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_StratumLevel;
+asn_struct_free_f StratumLevel_free;
+asn_struct_print_f StratumLevel_print;
+asn_constr_check_f StratumLevel_constraint;
+ber_type_decoder_f StratumLevel_decode_ber;
+der_type_encoder_f StratumLevel_encode_der;
+xer_type_decoder_f StratumLevel_decode_xer;
+xer_type_encoder_f StratumLevel_encode_xer;
+oer_type_decoder_f StratumLevel_decode_oer;
+oer_type_encoder_f StratumLevel_encode_oer;
+per_type_decoder_f StratumLevel_decode_uper;
+per_type_encoder_f StratumLevel_encode_uper;
+per_type_decoder_f StratumLevel_decode_aper;
+per_type_encoder_f StratumLevel_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _StratumLevel_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SubscriberProfileIDforRFP.h b/src/s1ap/asn1c/asnGenFiles/SubscriberProfileIDforRFP.h
new file mode 100644
index 0000000..78b5e02
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SubscriberProfileIDforRFP.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SubscriberProfileIDforRFP_H_
+#define _SubscriberProfileIDforRFP_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SubscriberProfileIDforRFP */
+typedef long SubscriberProfileIDforRFP_t;
+
+/* Implementation */
+extern asn_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 <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Subscription-Based-UE-DifferentiationInfo.h b/src/s1ap/asn1c/asnGenFiles/Subscription-Based-UE-DifferentiationInfo.h
new file mode 100644
index 0000000..c2bd2c8
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Subscription-Based-UE-DifferentiationInfo.h
@@ -0,0 +1,91 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Subscription_Based_UE_DifferentiationInfo_H_
+#define _Subscription_Based_UE_DifferentiationInfo_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Subscription_Based_UE_DifferentiationInfo__periodicCommunicationIndicator {
+ Subscription_Based_UE_DifferentiationInfo__periodicCommunicationIndicator_periodically = 0,
+ Subscription_Based_UE_DifferentiationInfo__periodicCommunicationIndicator_ondemand = 1
+ /*
+ * Enumeration is extensible
+ */
+} e_Subscription_Based_UE_DifferentiationInfo__periodicCommunicationIndicator;
+typedef enum Subscription_Based_UE_DifferentiationInfo__stationaryIndication {
+ Subscription_Based_UE_DifferentiationInfo__stationaryIndication_stationary = 0,
+ Subscription_Based_UE_DifferentiationInfo__stationaryIndication_mobile = 1
+ /*
+ * Enumeration is extensible
+ */
+} e_Subscription_Based_UE_DifferentiationInfo__stationaryIndication;
+typedef enum Subscription_Based_UE_DifferentiationInfo__trafficProfile {
+ Subscription_Based_UE_DifferentiationInfo__trafficProfile_single_packet = 0,
+ Subscription_Based_UE_DifferentiationInfo__trafficProfile_dual_packets = 1,
+ Subscription_Based_UE_DifferentiationInfo__trafficProfile_multiple_packets = 2
+ /*
+ * Enumeration is extensible
+ */
+} e_Subscription_Based_UE_DifferentiationInfo__trafficProfile;
+typedef enum Subscription_Based_UE_DifferentiationInfo__batteryIndication {
+ Subscription_Based_UE_DifferentiationInfo__batteryIndication_battery_powered = 0,
+ Subscription_Based_UE_DifferentiationInfo__batteryIndication_battery_powered_not_rechargeable_or_replaceable = 1,
+ Subscription_Based_UE_DifferentiationInfo__batteryIndication_not_battery_powered = 2
+ /*
+ * Enumeration is extensible
+ */
+} e_Subscription_Based_UE_DifferentiationInfo__batteryIndication;
+
+/* Forward declarations */
+struct ScheduledCommunicationTime;
+struct ProtocolExtensionContainer;
+
+/* Subscription-Based-UE-DifferentiationInfo */
+typedef struct Subscription_Based_UE_DifferentiationInfo {
+ long *periodicCommunicationIndicator; /* OPTIONAL */
+ long *periodicTime; /* OPTIONAL */
+ struct ScheduledCommunicationTime *scheduledCommunicationTime; /* OPTIONAL */
+ long *stationaryIndication; /* OPTIONAL */
+ long *trafficProfile; /* OPTIONAL */
+ long *batteryIndication; /* 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;
+} Subscription_Based_UE_DifferentiationInfo_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_periodicCommunicationIndicator_2; // (Use -fall-defs-global to expose) */
+/* extern asn_TYPE_descriptor_t asn_DEF_stationaryIndication_8; // (Use -fall-defs-global to expose) */
+/* extern asn_TYPE_descriptor_t asn_DEF_trafficProfile_12; // (Use -fall-defs-global to expose) */
+/* extern asn_TYPE_descriptor_t asn_DEF_batteryIndication_17; // (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_Subscription_Based_UE_DifferentiationInfo;
+extern asn_SEQUENCE_specifics_t asn_SPC_Subscription_Based_UE_DifferentiationInfo_specs_1;
+extern asn_TYPE_member_t asn_MBR_Subscription_Based_UE_DifferentiationInfo_1[7];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Subscription_Based_UE_DifferentiationInfo_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SuccessfulOutcome.h b/src/s1ap/asn1c/asnGenFiles/SuccessfulOutcome.h
new file mode 100644
index 0000000..08a069d
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SuccessfulOutcome.h
@@ -0,0 +1,194 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Descriptions"
+ * found in "./asn1c/S1AP-PDU-Descriptions.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SuccessfulOutcome_H_
+#define _SuccessfulOutcome_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProcedureCode.h"
+#include "Criticality.h"
+#include <ANY.h>
+#include <asn_ioc.h>
+#include "HandoverRequired.h"
+#include "HandoverCommand.h"
+#include "HandoverPreparationFailure.h"
+#include "HandoverRequest.h"
+#include "HandoverRequestAcknowledge.h"
+#include "HandoverFailure.h"
+#include "PathSwitchRequest.h"
+#include "PathSwitchRequestAcknowledge.h"
+#include "PathSwitchRequestFailure.h"
+#include "E-RABSetupRequest.h"
+#include "E-RABSetupResponse.h"
+#include "E-RABModifyRequest.h"
+#include "E-RABModifyResponse.h"
+#include "E-RABReleaseCommand.h"
+#include "E-RABReleaseResponse.h"
+#include "InitialContextSetupRequest.h"
+#include "InitialContextSetupResponse.h"
+#include "InitialContextSetupFailure.h"
+#include "HandoverCancel.h"
+#include "HandoverCancelAcknowledge.h"
+#include "KillRequest.h"
+#include "KillResponse.h"
+#include "Reset.h"
+#include "ResetAcknowledge.h"
+#include "S1SetupRequest.h"
+#include "S1SetupResponse.h"
+#include "S1SetupFailure.h"
+#include "UEContextModificationRequest.h"
+#include "UEContextModificationResponse.h"
+#include "UEContextModificationFailure.h"
+#include "UEContextReleaseCommand.h"
+#include "UEContextReleaseComplete.h"
+#include "ENBConfigurationUpdate.h"
+#include "ENBConfigurationUpdateAcknowledge.h"
+#include "ENBConfigurationUpdateFailure.h"
+#include "MMEConfigurationUpdate.h"
+#include "MMEConfigurationUpdateAcknowledge.h"
+#include "MMEConfigurationUpdateFailure.h"
+#include "WriteReplaceWarningRequest.h"
+#include "WriteReplaceWarningResponse.h"
+#include "UERadioCapabilityMatchRequest.h"
+#include "UERadioCapabilityMatchResponse.h"
+#include "E-RABModificationIndication.h"
+#include "E-RABModificationConfirm.h"
+#include "UEContextModificationIndication.h"
+#include "UEContextModificationConfirm.h"
+#include "UEContextSuspendRequest.h"
+#include "UEContextSuspendResponse.h"
+#include "UEContextResumeRequest.h"
+#include "UEContextResumeResponse.h"
+#include "UEContextResumeFailure.h"
+#include "HandoverNotify.h"
+#include "E-RABReleaseIndication.h"
+#include "Paging.h"
+#include "DownlinkNASTransport.h"
+#include "InitialUEMessage.h"
+#include "UplinkNASTransport.h"
+#include "ErrorIndication.h"
+#include "NASNonDeliveryIndication.h"
+#include "UEContextReleaseRequest.h"
+#include "DownlinkS1cdma2000tunnelling.h"
+#include "UplinkS1cdma2000tunnelling.h"
+#include "UECapabilityInfoIndication.h"
+#include "ENBStatusTransfer.h"
+#include "MMEStatusTransfer.h"
+#include "DeactivateTrace.h"
+#include "TraceStart.h"
+#include "TraceFailureIndication.h"
+#include "CellTrafficTrace.h"
+#include "LocationReportingControl.h"
+#include "LocationReportingFailureIndication.h"
+#include "LocationReport.h"
+#include "OverloadStart.h"
+#include "OverloadStop.h"
+#include "ENBDirectInformationTransfer.h"
+#include "MMEDirectInformationTransfer.h"
+#include "ENBConfigurationTransfer.h"
+#include "MMEConfigurationTransfer.h"
+#include "PrivateMessage.h"
+#include "DownlinkUEAssociatedLPPaTransport.h"
+#include "UplinkUEAssociatedLPPaTransport.h"
+#include "DownlinkNonUEAssociatedLPPaTransport.h"
+#include "UplinkNonUEAssociatedLPPaTransport.h"
+#include "PWSRestartIndication.h"
+#include "RerouteNASRequest.h"
+#include "PWSFailureIndication.h"
+#include "ConnectionEstablishmentIndication.h"
+#include "NASDeliveryIndication.h"
+#include "RetrieveUEInformation.h"
+#include "UEInformationTransfer.h"
+#include "ENBCPRelocationIndication.h"
+#include "MMECPRelocationIndication.h"
+#include "SecondaryRATDataUsageReport.h"
+#include <OPEN_TYPE.h>
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SuccessfulOutcome__value_PR {
+ SuccessfulOutcome__value_PR_NOTHING, /* No components present */
+ SuccessfulOutcome__value_PR_HandoverCommand,
+ SuccessfulOutcome__value_PR_HandoverRequestAcknowledge,
+ SuccessfulOutcome__value_PR_PathSwitchRequestAcknowledge,
+ SuccessfulOutcome__value_PR_E_RABSetupResponse,
+ SuccessfulOutcome__value_PR_E_RABModifyResponse,
+ SuccessfulOutcome__value_PR_E_RABReleaseResponse,
+ SuccessfulOutcome__value_PR_InitialContextSetupResponse,
+ SuccessfulOutcome__value_PR_HandoverCancelAcknowledge,
+ SuccessfulOutcome__value_PR_KillResponse,
+ SuccessfulOutcome__value_PR_ResetAcknowledge,
+ SuccessfulOutcome__value_PR_S1SetupResponse,
+ SuccessfulOutcome__value_PR_UEContextModificationResponse,
+ SuccessfulOutcome__value_PR_UEContextReleaseComplete,
+ SuccessfulOutcome__value_PR_ENBConfigurationUpdateAcknowledge,
+ SuccessfulOutcome__value_PR_MMEConfigurationUpdateAcknowledge,
+ SuccessfulOutcome__value_PR_WriteReplaceWarningResponse,
+ SuccessfulOutcome__value_PR_UERadioCapabilityMatchResponse,
+ SuccessfulOutcome__value_PR_E_RABModificationConfirm,
+ SuccessfulOutcome__value_PR_UEContextModificationConfirm,
+ SuccessfulOutcome__value_PR_UEContextSuspendResponse,
+ SuccessfulOutcome__value_PR_UEContextResumeResponse
+} SuccessfulOutcome__value_PR;
+
+/* SuccessfulOutcome */
+typedef struct SuccessfulOutcome {
+ ProcedureCode_t procedureCode;
+ Criticality_t criticality;
+ struct SuccessfulOutcome__value {
+ SuccessfulOutcome__value_PR present;
+ union SuccessfulOutcome__value_u {
+ HandoverCommand_t HandoverCommand;
+ HandoverRequestAcknowledge_t HandoverRequestAcknowledge;
+ PathSwitchRequestAcknowledge_t PathSwitchRequestAcknowledge;
+ E_RABSetupResponse_t E_RABSetupResponse;
+ E_RABModifyResponse_t E_RABModifyResponse;
+ E_RABReleaseResponse_t E_RABReleaseResponse;
+ InitialContextSetupResponse_t InitialContextSetupResponse;
+ HandoverCancelAcknowledge_t HandoverCancelAcknowledge;
+ KillResponse_t KillResponse;
+ ResetAcknowledge_t ResetAcknowledge;
+ S1SetupResponse_t S1SetupResponse;
+ UEContextModificationResponse_t UEContextModificationResponse;
+ UEContextReleaseComplete_t UEContextReleaseComplete;
+ ENBConfigurationUpdateAcknowledge_t ENBConfigurationUpdateAcknowledge;
+ MMEConfigurationUpdateAcknowledge_t MMEConfigurationUpdateAcknowledge;
+ WriteReplaceWarningResponse_t WriteReplaceWarningResponse;
+ UERadioCapabilityMatchResponse_t UERadioCapabilityMatchResponse;
+ E_RABModificationConfirm_t E_RABModificationConfirm;
+ UEContextModificationConfirm_t UEContextModificationConfirm;
+ UEContextSuspendResponse_t UEContextSuspendResponse;
+ UEContextResumeResponse_t UEContextResumeResponse;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SuccessfulOutcome_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SuccessfulOutcome;
+extern asn_SEQUENCE_specifics_t asn_SPC_SuccessfulOutcome_specs_1;
+extern asn_TYPE_member_t asn_MBR_SuccessfulOutcome_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SuccessfulOutcome_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SupportedTAs-Item.h b/src/s1ap/asn1c/asnGenFiles/SupportedTAs-Item.h
new file mode 100644
index 0000000..c38a723
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SupportedTAs-Item.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SupportedTAs_Item_H_
+#define _SupportedTAs_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TAC.h"
+#include "BPLMNs.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* SupportedTAs-Item */
+typedef struct SupportedTAs_Item {
+ TAC_t tAC;
+ BPLMNs_t broadcastPLMNs;
+ 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;
+} SupportedTAs_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SupportedTAs_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_SupportedTAs_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_SupportedTAs_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SupportedTAs_Item_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SupportedTAs.h b/src/s1ap/asn1c/asnGenFiles/SupportedTAs.h
new file mode 100644
index 0000000..6138b99
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SupportedTAs.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SupportedTAs_H_
+#define _SupportedTAs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct SupportedTAs_Item;
+
+/* SupportedTAs */
+typedef struct SupportedTAs {
+ A_SEQUENCE_OF(struct SupportedTAs_Item) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SupportedTAs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SupportedTAs;
+extern asn_SET_OF_specifics_t asn_SPC_SupportedTAs_specs_1;
+extern asn_TYPE_member_t asn_MBR_SupportedTAs_1[1];
+extern asn_per_constraints_t asn_PER_type_SupportedTAs_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SupportedTAs_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SynchronisationInformation.h b/src/s1ap/asn1c/asnGenFiles/SynchronisationInformation.h
new file mode 100644
index 0000000..b6cbd51
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SynchronisationInformation.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SynchronisationInformation_H_
+#define _SynchronisationInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "StratumLevel.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ListeningSubframePattern;
+struct ECGI_List;
+struct ProtocolExtensionContainer;
+
+/* SynchronisationInformation */
+typedef struct SynchronisationInformation {
+ StratumLevel_t *sourceStratumLevel; /* OPTIONAL */
+ struct ListeningSubframePattern *listeningSubframePattern; /* OPTIONAL */
+ struct ECGI_List *aggressoreCGI_List; /* 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;
+} SynchronisationInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SynchronisationInformation;
+extern asn_SEQUENCE_specifics_t asn_SPC_SynchronisationInformation_specs_1;
+extern asn_TYPE_member_t asn_MBR_SynchronisationInformation_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SynchronisationInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/SynchronisationStatus.h b/src/s1ap/asn1c/asnGenFiles/SynchronisationStatus.h
new file mode 100644
index 0000000..1b3751a
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/SynchronisationStatus.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _SynchronisationStatus_H_
+#define _SynchronisationStatus_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SynchronisationStatus {
+ SynchronisationStatus_synchronous = 0,
+ SynchronisationStatus_asynchronous = 1
+ /*
+ * Enumeration is extensible
+ */
+} e_SynchronisationStatus;
+
+/* SynchronisationStatus */
+typedef long SynchronisationStatus_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_SynchronisationStatus_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_SynchronisationStatus;
+extern const asn_INTEGER_specifics_t asn_SPC_SynchronisationStatus_specs_1;
+asn_struct_free_f SynchronisationStatus_free;
+asn_struct_print_f SynchronisationStatus_print;
+asn_constr_check_f SynchronisationStatus_constraint;
+ber_type_decoder_f SynchronisationStatus_decode_ber;
+der_type_encoder_f SynchronisationStatus_encode_der;
+xer_type_decoder_f SynchronisationStatus_decode_xer;
+xer_type_encoder_f SynchronisationStatus_encode_xer;
+oer_type_decoder_f SynchronisationStatus_decode_oer;
+oer_type_encoder_f SynchronisationStatus_encode_oer;
+per_type_decoder_f SynchronisationStatus_decode_uper;
+per_type_encoder_f SynchronisationStatus_encode_uper;
+per_type_decoder_f SynchronisationStatus_decode_aper;
+per_type_encoder_f SynchronisationStatus_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SynchronisationStatus_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TABasedMDT.h b/src/s1ap/asn1c/asnGenFiles/TABasedMDT.h
new file mode 100644
index 0000000..b181a25
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TABasedMDT.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TABasedMDT_H_
+#define _TABasedMDT_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TAListforMDT.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* TABasedMDT */
+typedef struct TABasedMDT {
+ TAListforMDT_t tAListforMDT;
+ 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;
+} TABasedMDT_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TABasedMDT;
+extern asn_SEQUENCE_specifics_t asn_SPC_TABasedMDT_specs_1;
+extern asn_TYPE_member_t asn_MBR_TABasedMDT_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TABasedMDT_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TABasedQMC.h b/src/s1ap/asn1c/asnGenFiles/TABasedQMC.h
new file mode 100644
index 0000000..db85df7
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TABasedQMC.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TABasedQMC_H_
+#define _TABasedQMC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TAListforQMC.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* TABasedQMC */
+typedef struct TABasedQMC {
+ TAListforQMC_t tAListforQMC;
+ 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;
+} TABasedQMC_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TABasedQMC;
+extern asn_SEQUENCE_specifics_t asn_SPC_TABasedQMC_specs_1;
+extern asn_TYPE_member_t asn_MBR_TABasedQMC_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TABasedQMC_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TAC.h b/src/s1ap/asn1c/asnGenFiles/TAC.h
new file mode 100644
index 0000000..492e9ba
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TAC.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TAC_H_
+#define _TAC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TAC */
+typedef OCTET_STRING_t TAC_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_TAC_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_TAC;
+asn_struct_free_f TAC_free;
+asn_struct_print_f TAC_print;
+asn_constr_check_f TAC_constraint;
+ber_type_decoder_f TAC_decode_ber;
+der_type_encoder_f TAC_encode_der;
+xer_type_decoder_f TAC_decode_xer;
+xer_type_encoder_f TAC_encode_xer;
+oer_type_decoder_f TAC_decode_oer;
+oer_type_encoder_f TAC_encode_oer;
+per_type_decoder_f TAC_decode_uper;
+per_type_encoder_f TAC_encode_uper;
+per_type_decoder_f TAC_decode_aper;
+per_type_encoder_f TAC_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TAC_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TAI-Broadcast-Item.h b/src/s1ap/asn1c/asnGenFiles/TAI-Broadcast-Item.h
new file mode 100644
index 0000000..57c5c1d
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TAI-Broadcast-Item.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TAI_Broadcast_Item_H_
+#define _TAI_Broadcast_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TAI.h"
+#include "CompletedCellinTAI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* TAI-Broadcast-Item */
+typedef struct TAI_Broadcast_Item {
+ TAI_t tAI;
+ CompletedCellinTAI_t completedCellinTAI;
+ 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;
+} TAI_Broadcast_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TAI_Broadcast_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_TAI_Broadcast_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_TAI_Broadcast_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TAI_Broadcast_Item_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TAI-Broadcast.h b/src/s1ap/asn1c/asnGenFiles/TAI-Broadcast.h
new file mode 100644
index 0000000..9627c80
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TAI-Broadcast.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TAI_Broadcast_H_
+#define _TAI_Broadcast_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct TAI_Broadcast_Item;
+
+/* TAI-Broadcast */
+typedef struct TAI_Broadcast {
+ A_SEQUENCE_OF(struct TAI_Broadcast_Item) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} TAI_Broadcast_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TAI_Broadcast;
+extern asn_SET_OF_specifics_t asn_SPC_TAI_Broadcast_specs_1;
+extern asn_TYPE_member_t asn_MBR_TAI_Broadcast_1[1];
+extern asn_per_constraints_t asn_PER_type_TAI_Broadcast_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TAI_Broadcast_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TAI-Cancelled-Item.h b/src/s1ap/asn1c/asnGenFiles/TAI-Cancelled-Item.h
new file mode 100644
index 0000000..eca57ea
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TAI-Cancelled-Item.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TAI_Cancelled_Item_H_
+#define _TAI_Cancelled_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TAI.h"
+#include "CancelledCellinTAI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* TAI-Cancelled-Item */
+typedef struct TAI_Cancelled_Item {
+ TAI_t tAI;
+ CancelledCellinTAI_t cancelledCellinTAI;
+ 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;
+} TAI_Cancelled_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TAI_Cancelled_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_TAI_Cancelled_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_TAI_Cancelled_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TAI_Cancelled_Item_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TAI-Cancelled.h b/src/s1ap/asn1c/asnGenFiles/TAI-Cancelled.h
new file mode 100644
index 0000000..d3b42b0
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TAI-Cancelled.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TAI_Cancelled_H_
+#define _TAI_Cancelled_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct TAI_Cancelled_Item;
+
+/* TAI-Cancelled */
+typedef struct TAI_Cancelled {
+ A_SEQUENCE_OF(struct TAI_Cancelled_Item) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} TAI_Cancelled_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TAI_Cancelled;
+extern asn_SET_OF_specifics_t asn_SPC_TAI_Cancelled_specs_1;
+extern asn_TYPE_member_t asn_MBR_TAI_Cancelled_1[1];
+extern asn_per_constraints_t asn_PER_type_TAI_Cancelled_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TAI_Cancelled_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TAI.h b/src/s1ap/asn1c/asnGenFiles/TAI.h
new file mode 100644
index 0000000..e251ec9
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TAI.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TAI_H_
+#define _TAI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNidentity.h"
+#include "TAC.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* TAI */
+typedef struct S_TAI {
+ PLMNidentity_t pLMNidentity;
+ TAC_t tAC;
+ 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;
+} TAI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TAI;
+extern asn_SEQUENCE_specifics_t asn_SPC_TAI_specs_1;
+extern asn_TYPE_member_t asn_MBR_TAI_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TAI_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TAIBasedMDT.h b/src/s1ap/asn1c/asnGenFiles/TAIBasedMDT.h
new file mode 100644
index 0000000..b8afbeb
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TAIBasedMDT.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TAIBasedMDT_H_
+#define _TAIBasedMDT_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TAIListforMDT.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* TAIBasedMDT */
+typedef struct TAIBasedMDT {
+ TAIListforMDT_t tAIListforMDT;
+ 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;
+} TAIBasedMDT_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TAIBasedMDT;
+extern asn_SEQUENCE_specifics_t asn_SPC_TAIBasedMDT_specs_1;
+extern asn_TYPE_member_t asn_MBR_TAIBasedMDT_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TAIBasedMDT_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TAIBasedQMC.h b/src/s1ap/asn1c/asnGenFiles/TAIBasedQMC.h
new file mode 100644
index 0000000..5a84fe2
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TAIBasedQMC.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TAIBasedQMC_H_
+#define _TAIBasedQMC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TAIListforQMC.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* TAIBasedQMC */
+typedef struct TAIBasedQMC {
+ TAIListforQMC_t tAIListforQMC;
+ 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;
+} TAIBasedQMC_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TAIBasedQMC;
+extern asn_SEQUENCE_specifics_t asn_SPC_TAIBasedQMC_specs_1;
+extern asn_TYPE_member_t asn_MBR_TAIBasedQMC_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TAIBasedQMC_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TAIItem.h b/src/s1ap/asn1c/asnGenFiles/TAIItem.h
new file mode 100644
index 0000000..84f19ce
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TAIItem.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TAIItem_H_
+#define _TAIItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TAI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* TAIItem */
+typedef struct TAIItem {
+ TAI_t tAI;
+ 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;
+} TAIItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TAIItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_TAIItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_TAIItem_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TAIItem_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TAIList.h b/src/s1ap/asn1c/asnGenFiles/TAIList.h
new file mode 100644
index 0000000..85482cb
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TAIList.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TAIList_H_
+#define _TAIList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* TAIList */
+typedef struct TAIList {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} TAIList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TAIList;
+extern asn_SET_OF_specifics_t asn_SPC_TAIList_specs_1;
+extern asn_TYPE_member_t asn_MBR_TAIList_1[1];
+extern asn_per_constraints_t asn_PER_type_TAIList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TAIList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TAIListForRestart.h b/src/s1ap/asn1c/asnGenFiles/TAIListForRestart.h
new file mode 100644
index 0000000..9a3696d
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TAIListForRestart.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TAIListForRestart_H_
+#define _TAIListForRestart_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct S_TAI;
+
+/* TAIListForRestart */
+typedef struct TAIListForRestart {
+ A_SEQUENCE_OF(struct S_TAI) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} TAIListForRestart_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TAIListForRestart;
+extern asn_SET_OF_specifics_t asn_SPC_TAIListForRestart_specs_1;
+extern asn_TYPE_member_t asn_MBR_TAIListForRestart_1[1];
+extern asn_per_constraints_t asn_PER_type_TAIListForRestart_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TAIListForRestart_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TAIListforMDT.h b/src/s1ap/asn1c/asnGenFiles/TAIListforMDT.h
new file mode 100644
index 0000000..0af4b80
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TAIListforMDT.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TAIListforMDT_H_
+#define _TAIListforMDT_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct S_TAI;
+
+/* TAIListforMDT */
+typedef struct TAIListforMDT {
+ A_SEQUENCE_OF(struct S_TAI) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} TAIListforMDT_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TAIListforMDT;
+extern asn_SET_OF_specifics_t asn_SPC_TAIListforMDT_specs_1;
+extern asn_TYPE_member_t asn_MBR_TAIListforMDT_1[1];
+extern asn_per_constraints_t asn_PER_type_TAIListforMDT_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TAIListforMDT_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TAIListforQMC.h b/src/s1ap/asn1c/asnGenFiles/TAIListforQMC.h
new file mode 100644
index 0000000..173d9f6
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TAIListforQMC.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TAIListforQMC_H_
+#define _TAIListforQMC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct S_TAI;
+
+/* TAIListforQMC */
+typedef struct TAIListforQMC {
+ A_SEQUENCE_OF(struct S_TAI) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} TAIListforQMC_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TAIListforQMC;
+extern asn_SET_OF_specifics_t asn_SPC_TAIListforQMC_specs_1;
+extern asn_TYPE_member_t asn_MBR_TAIListforQMC_1[1];
+extern asn_per_constraints_t asn_PER_type_TAIListforQMC_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TAIListforQMC_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TAIListforWarning.h b/src/s1ap/asn1c/asnGenFiles/TAIListforWarning.h
new file mode 100644
index 0000000..9f896a8
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TAIListforWarning.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TAIListforWarning_H_
+#define _TAIListforWarning_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct S_TAI;
+
+/* TAIListforWarning */
+typedef struct TAIListforWarning {
+ A_SEQUENCE_OF(struct S_TAI) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} TAIListforWarning_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TAIListforWarning;
+extern asn_SET_OF_specifics_t asn_SPC_TAIListforWarning_specs_1;
+extern asn_TYPE_member_t asn_MBR_TAIListforWarning_1[1];
+extern asn_per_constraints_t asn_PER_type_TAIListforWarning_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TAIListforWarning_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TAListforMDT.h b/src/s1ap/asn1c/asnGenFiles/TAListforMDT.h
new file mode 100644
index 0000000..7702043
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TAListforMDT.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TAListforMDT_H_
+#define _TAListforMDT_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TAC.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TAListforMDT */
+typedef struct TAListforMDT {
+ A_SEQUENCE_OF(TAC_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} TAListforMDT_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TAListforMDT;
+extern asn_SET_OF_specifics_t asn_SPC_TAListforMDT_specs_1;
+extern asn_TYPE_member_t asn_MBR_TAListforMDT_1[1];
+extern asn_per_constraints_t asn_PER_type_TAListforMDT_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TAListforMDT_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TAListforQMC.h b/src/s1ap/asn1c/asnGenFiles/TAListforQMC.h
new file mode 100644
index 0000000..e654901
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TAListforQMC.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TAListforQMC_H_
+#define _TAListforQMC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TAC.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TAListforQMC */
+typedef struct TAListforQMC {
+ A_SEQUENCE_OF(TAC_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} TAListforQMC_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TAListforQMC;
+extern asn_SET_OF_specifics_t asn_SPC_TAListforQMC_specs_1;
+extern asn_TYPE_member_t asn_MBR_TAListforQMC_1[1];
+extern asn_per_constraints_t asn_PER_type_TAListforQMC_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TAListforQMC_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TBCD-STRING.h b/src/s1ap/asn1c/asnGenFiles/TBCD-STRING.h
new file mode 100644
index 0000000..4e207cf
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TBCD-STRING.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TBCD_STRING_H_
+#define _TBCD_STRING_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TBCD-STRING */
+typedef OCTET_STRING_t TBCD_STRING_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_TBCD_STRING_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_TBCD_STRING;
+asn_struct_free_f TBCD_STRING_free;
+asn_struct_print_f TBCD_STRING_print;
+asn_constr_check_f TBCD_STRING_constraint;
+ber_type_decoder_f TBCD_STRING_decode_ber;
+der_type_encoder_f TBCD_STRING_encode_der;
+xer_type_decoder_f TBCD_STRING_decode_xer;
+xer_type_encoder_f TBCD_STRING_encode_xer;
+oer_type_decoder_f TBCD_STRING_decode_oer;
+oer_type_encoder_f TBCD_STRING_encode_oer;
+per_type_decoder_f TBCD_STRING_decode_uper;
+per_type_encoder_f TBCD_STRING_encode_uper;
+per_type_decoder_f TBCD_STRING_decode_aper;
+per_type_encoder_f TBCD_STRING_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TBCD_STRING_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Target-ToSource-TransparentContainer.h b/src/s1ap/asn1c/asnGenFiles/Target-ToSource-TransparentContainer.h
new file mode 100644
index 0000000..4ccc5f3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Target-ToSource-TransparentContainer.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Target_ToSource_TransparentContainer_H_
+#define _Target_ToSource_TransparentContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Target-ToSource-TransparentContainer */
+typedef OCTET_STRING_t Target_ToSource_TransparentContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Target_ToSource_TransparentContainer;
+asn_struct_free_f Target_ToSource_TransparentContainer_free;
+asn_struct_print_f Target_ToSource_TransparentContainer_print;
+asn_constr_check_f Target_ToSource_TransparentContainer_constraint;
+ber_type_decoder_f Target_ToSource_TransparentContainer_decode_ber;
+der_type_encoder_f Target_ToSource_TransparentContainer_encode_der;
+xer_type_decoder_f Target_ToSource_TransparentContainer_decode_xer;
+xer_type_encoder_f Target_ToSource_TransparentContainer_encode_xer;
+oer_type_decoder_f Target_ToSource_TransparentContainer_decode_oer;
+oer_type_encoder_f Target_ToSource_TransparentContainer_encode_oer;
+per_type_decoder_f Target_ToSource_TransparentContainer_decode_uper;
+per_type_encoder_f Target_ToSource_TransparentContainer_encode_uper;
+per_type_decoder_f Target_ToSource_TransparentContainer_decode_aper;
+per_type_encoder_f Target_ToSource_TransparentContainer_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Target_ToSource_TransparentContainer_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TargetBSS-ToSourceBSS-TransparentContainer.h b/src/s1ap/asn1c/asnGenFiles/TargetBSS-ToSourceBSS-TransparentContainer.h
new file mode 100644
index 0000000..727fee9
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TargetBSS-ToSourceBSS-TransparentContainer.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TargetBSS_ToSourceBSS_TransparentContainer_H_
+#define _TargetBSS_ToSourceBSS_TransparentContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TargetBSS-ToSourceBSS-TransparentContainer */
+typedef OCTET_STRING_t TargetBSS_ToSourceBSS_TransparentContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TargetBSS_ToSourceBSS_TransparentContainer;
+asn_struct_free_f TargetBSS_ToSourceBSS_TransparentContainer_free;
+asn_struct_print_f TargetBSS_ToSourceBSS_TransparentContainer_print;
+asn_constr_check_f TargetBSS_ToSourceBSS_TransparentContainer_constraint;
+ber_type_decoder_f TargetBSS_ToSourceBSS_TransparentContainer_decode_ber;
+der_type_encoder_f TargetBSS_ToSourceBSS_TransparentContainer_encode_der;
+xer_type_decoder_f TargetBSS_ToSourceBSS_TransparentContainer_decode_xer;
+xer_type_encoder_f TargetBSS_ToSourceBSS_TransparentContainer_encode_xer;
+oer_type_decoder_f TargetBSS_ToSourceBSS_TransparentContainer_decode_oer;
+oer_type_encoder_f TargetBSS_ToSourceBSS_TransparentContainer_encode_oer;
+per_type_decoder_f TargetBSS_ToSourceBSS_TransparentContainer_decode_uper;
+per_type_encoder_f TargetBSS_ToSourceBSS_TransparentContainer_encode_uper;
+per_type_decoder_f TargetBSS_ToSourceBSS_TransparentContainer_decode_aper;
+per_type_encoder_f TargetBSS_ToSourceBSS_TransparentContainer_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TargetBSS_ToSourceBSS_TransparentContainer_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TargetID.h b/src/s1ap/asn1c/asnGenFiles/TargetID.h
new file mode 100644
index 0000000..7ea1e16
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TargetID.h
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TargetID_H_
+#define _TargetID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum TargetID_PR {
+ TargetID_PR_NOTHING, /* No components present */
+ TargetID_PR_targeteNB_ID,
+ TargetID_PR_targetRNC_ID,
+ TargetID_PR_cGI,
+ /* Extensions may appear below */
+ TargetID_PR_targetgNgRanNode_ID
+} TargetID_PR;
+
+/* Forward declarations */
+struct TargeteNB_ID;
+struct TargetRNC_ID;
+struct CGI;
+struct TargetNgRanNode_ID;
+
+/* TargetID */
+typedef struct TargetID {
+ TargetID_PR present;
+ union TargetID_u {
+ struct TargeteNB_ID *targeteNB_ID;
+ struct TargetRNC_ID *targetRNC_ID;
+ struct CGI *cGI;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ struct TargetNgRanNode_ID *targetgNgRanNode_ID;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} TargetID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TargetID;
+extern asn_CHOICE_specifics_t asn_SPC_TargetID_specs_1;
+extern asn_TYPE_member_t asn_MBR_TargetID_1[4];
+extern asn_per_constraints_t asn_PER_type_TargetID_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TargetID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TargetNgRanNode-ID.h b/src/s1ap/asn1c/asnGenFiles/TargetNgRanNode-ID.h
new file mode 100644
index 0000000..015fc63
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TargetNgRanNode-ID.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TargetNgRanNode_ID_H_
+#define _TargetNgRanNode_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "Global-RAN-NODE-ID.h"
+#include "FiveGSTAI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* TargetNgRanNode-ID */
+typedef struct TargetNgRanNode_ID {
+ Global_RAN_NODE_ID_t global_RAN_NODE_ID;
+ FiveGSTAI_t selected_TAI;
+ 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;
+} TargetNgRanNode_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TargetNgRanNode_ID;
+extern asn_SEQUENCE_specifics_t asn_SPC_TargetNgRanNode_ID_specs_1;
+extern asn_TYPE_member_t asn_MBR_TargetNgRanNode_ID_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TargetNgRanNode_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TargetNgRanNode-ToSourceNgRanNode-TransparentContainer.h b/src/s1ap/asn1c/asnGenFiles/TargetNgRanNode-ToSourceNgRanNode-TransparentContainer.h
new file mode 100644
index 0000000..e203b9e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TargetNgRanNode-ToSourceNgRanNode-TransparentContainer.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TargetNgRanNode_ToSourceNgRanNode_TransparentContainer_H_
+#define _TargetNgRanNode_ToSourceNgRanNode_TransparentContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TargetNgRanNode-ToSourceNgRanNode-TransparentContainer */
+typedef OCTET_STRING_t TargetNgRanNode_ToSourceNgRanNode_TransparentContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TargetNgRanNode_ToSourceNgRanNode_TransparentContainer;
+asn_struct_free_f TargetNgRanNode_ToSourceNgRanNode_TransparentContainer_free;
+asn_struct_print_f TargetNgRanNode_ToSourceNgRanNode_TransparentContainer_print;
+asn_constr_check_f TargetNgRanNode_ToSourceNgRanNode_TransparentContainer_constraint;
+ber_type_decoder_f TargetNgRanNode_ToSourceNgRanNode_TransparentContainer_decode_ber;
+der_type_encoder_f TargetNgRanNode_ToSourceNgRanNode_TransparentContainer_encode_der;
+xer_type_decoder_f TargetNgRanNode_ToSourceNgRanNode_TransparentContainer_decode_xer;
+xer_type_encoder_f TargetNgRanNode_ToSourceNgRanNode_TransparentContainer_encode_xer;
+oer_type_decoder_f TargetNgRanNode_ToSourceNgRanNode_TransparentContainer_decode_oer;
+oer_type_encoder_f TargetNgRanNode_ToSourceNgRanNode_TransparentContainer_encode_oer;
+per_type_decoder_f TargetNgRanNode_ToSourceNgRanNode_TransparentContainer_decode_uper;
+per_type_encoder_f TargetNgRanNode_ToSourceNgRanNode_TransparentContainer_encode_uper;
+per_type_decoder_f TargetNgRanNode_ToSourceNgRanNode_TransparentContainer_decode_aper;
+per_type_encoder_f TargetNgRanNode_ToSourceNgRanNode_TransparentContainer_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TargetNgRanNode_ToSourceNgRanNode_TransparentContainer_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TargetRNC-ID.h b/src/s1ap/asn1c/asnGenFiles/TargetRNC-ID.h
new file mode 100644
index 0000000..e6d0b1e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TargetRNC-ID.h
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TargetRNC_ID_H_
+#define _TargetRNC_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "LAI.h"
+#include "RAC.h"
+#include "RNC-ID.h"
+#include "ExtendedRNC-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* TargetRNC-ID */
+typedef struct TargetRNC_ID {
+ LAI_t lAI;
+ RAC_t *rAC; /* OPTIONAL */
+ RNC_ID_t rNC_ID;
+ ExtendedRNC_ID_t *extendedRNC_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;
+} TargetRNC_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TargetRNC_ID;
+extern asn_SEQUENCE_specifics_t asn_SPC_TargetRNC_ID_specs_1;
+extern asn_TYPE_member_t asn_MBR_TargetRNC_ID_1[5];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TargetRNC_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TargetRNC-ToSourceRNC-TransparentContainer.h b/src/s1ap/asn1c/asnGenFiles/TargetRNC-ToSourceRNC-TransparentContainer.h
new file mode 100644
index 0000000..387fb2f
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TargetRNC-ToSourceRNC-TransparentContainer.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TargetRNC_ToSourceRNC_TransparentContainer_H_
+#define _TargetRNC_ToSourceRNC_TransparentContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TargetRNC-ToSourceRNC-TransparentContainer */
+typedef OCTET_STRING_t TargetRNC_ToSourceRNC_TransparentContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TargetRNC_ToSourceRNC_TransparentContainer;
+asn_struct_free_f TargetRNC_ToSourceRNC_TransparentContainer_free;
+asn_struct_print_f TargetRNC_ToSourceRNC_TransparentContainer_print;
+asn_constr_check_f TargetRNC_ToSourceRNC_TransparentContainer_constraint;
+ber_type_decoder_f TargetRNC_ToSourceRNC_TransparentContainer_decode_ber;
+der_type_encoder_f TargetRNC_ToSourceRNC_TransparentContainer_encode_der;
+xer_type_decoder_f TargetRNC_ToSourceRNC_TransparentContainer_decode_xer;
+xer_type_encoder_f TargetRNC_ToSourceRNC_TransparentContainer_encode_xer;
+oer_type_decoder_f TargetRNC_ToSourceRNC_TransparentContainer_decode_oer;
+oer_type_encoder_f TargetRNC_ToSourceRNC_TransparentContainer_encode_oer;
+per_type_decoder_f TargetRNC_ToSourceRNC_TransparentContainer_decode_uper;
+per_type_encoder_f TargetRNC_ToSourceRNC_TransparentContainer_encode_uper;
+per_type_decoder_f TargetRNC_ToSourceRNC_TransparentContainer_decode_aper;
+per_type_encoder_f TargetRNC_ToSourceRNC_TransparentContainer_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TargetRNC_ToSourceRNC_TransparentContainer_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TargeteNB-ID.h b/src/s1ap/asn1c/asnGenFiles/TargeteNB-ID.h
new file mode 100644
index 0000000..7bcd748
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TargeteNB-ID.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TargeteNB_ID_H_
+#define _TargeteNB_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "Global-ENB-ID.h"
+#include "TAI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* TargeteNB-ID */
+typedef struct TargeteNB_ID {
+ Global_ENB_ID_t global_ENB_ID;
+ TAI_t selected_TAI;
+ 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;
+} TargeteNB_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TargeteNB_ID;
+extern asn_SEQUENCE_specifics_t asn_SPC_TargeteNB_ID_specs_1;
+extern asn_TYPE_member_t asn_MBR_TargeteNB_ID_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TargeteNB_ID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TargeteNB-ToSourceeNB-TransparentContainer.h b/src/s1ap/asn1c/asnGenFiles/TargeteNB-ToSourceeNB-TransparentContainer.h
new file mode 100644
index 0000000..f1049fd
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TargeteNB-ToSourceeNB-TransparentContainer.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TargeteNB_ToSourceeNB_TransparentContainer_H_
+#define _TargeteNB_ToSourceeNB_TransparentContainer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RRC-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* TargeteNB-ToSourceeNB-TransparentContainer */
+typedef struct TargeteNB_ToSourceeNB_TransparentContainer {
+ RRC_Container_t rRC_Container;
+ 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;
+} TargeteNB_ToSourceeNB_TransparentContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TargeteNB_ToSourceeNB_TransparentContainer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TargeteNB_ToSourceeNB_TransparentContainer_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Threshold-RSRP.h b/src/s1ap/asn1c/asnGenFiles/Threshold-RSRP.h
new file mode 100644
index 0000000..1778e1f
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Threshold-RSRP.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Threshold_RSRP_H_
+#define _Threshold_RSRP_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Threshold-RSRP */
+typedef long Threshold_RSRP_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Threshold_RSRP_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Threshold_RSRP;
+asn_struct_free_f Threshold_RSRP_free;
+asn_struct_print_f Threshold_RSRP_print;
+asn_constr_check_f Threshold_RSRP_constraint;
+ber_type_decoder_f Threshold_RSRP_decode_ber;
+der_type_encoder_f Threshold_RSRP_encode_der;
+xer_type_decoder_f Threshold_RSRP_decode_xer;
+xer_type_encoder_f Threshold_RSRP_encode_xer;
+oer_type_decoder_f Threshold_RSRP_decode_oer;
+oer_type_encoder_f Threshold_RSRP_encode_oer;
+per_type_decoder_f Threshold_RSRP_decode_uper;
+per_type_encoder_f Threshold_RSRP_encode_uper;
+per_type_decoder_f Threshold_RSRP_decode_aper;
+per_type_encoder_f Threshold_RSRP_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Threshold_RSRP_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Threshold-RSRQ.h b/src/s1ap/asn1c/asnGenFiles/Threshold-RSRQ.h
new file mode 100644
index 0000000..98aa8a4
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Threshold-RSRQ.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Threshold_RSRQ_H_
+#define _Threshold_RSRQ_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Threshold-RSRQ */
+typedef long Threshold_RSRQ_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Threshold_RSRQ_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Threshold_RSRQ;
+asn_struct_free_f Threshold_RSRQ_free;
+asn_struct_print_f Threshold_RSRQ_print;
+asn_constr_check_f Threshold_RSRQ_constraint;
+ber_type_decoder_f Threshold_RSRQ_decode_ber;
+der_type_encoder_f Threshold_RSRQ_encode_der;
+xer_type_decoder_f Threshold_RSRQ_decode_xer;
+xer_type_encoder_f Threshold_RSRQ_encode_xer;
+oer_type_decoder_f Threshold_RSRQ_decode_oer;
+oer_type_encoder_f Threshold_RSRQ_encode_oer;
+per_type_decoder_f Threshold_RSRQ_decode_uper;
+per_type_encoder_f Threshold_RSRQ_encode_uper;
+per_type_decoder_f Threshold_RSRQ_decode_aper;
+per_type_encoder_f Threshold_RSRQ_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Threshold_RSRQ_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Time-UE-StayedInCell-EnhancedGranularity.h b/src/s1ap/asn1c/asnGenFiles/Time-UE-StayedInCell-EnhancedGranularity.h
new file mode 100644
index 0000000..cff7569
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Time-UE-StayedInCell-EnhancedGranularity.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Time_UE_StayedInCell_EnhancedGranularity_H_
+#define _Time_UE_StayedInCell_EnhancedGranularity_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Time-UE-StayedInCell-EnhancedGranularity */
+typedef long Time_UE_StayedInCell_EnhancedGranularity_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Time_UE_StayedInCell_EnhancedGranularity_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Time_UE_StayedInCell_EnhancedGranularity;
+asn_struct_free_f Time_UE_StayedInCell_EnhancedGranularity_free;
+asn_struct_print_f Time_UE_StayedInCell_EnhancedGranularity_print;
+asn_constr_check_f Time_UE_StayedInCell_EnhancedGranularity_constraint;
+ber_type_decoder_f Time_UE_StayedInCell_EnhancedGranularity_decode_ber;
+der_type_encoder_f Time_UE_StayedInCell_EnhancedGranularity_encode_der;
+xer_type_decoder_f Time_UE_StayedInCell_EnhancedGranularity_decode_xer;
+xer_type_encoder_f Time_UE_StayedInCell_EnhancedGranularity_encode_xer;
+oer_type_decoder_f Time_UE_StayedInCell_EnhancedGranularity_decode_oer;
+oer_type_encoder_f Time_UE_StayedInCell_EnhancedGranularity_encode_oer;
+per_type_decoder_f Time_UE_StayedInCell_EnhancedGranularity_decode_uper;
+per_type_encoder_f Time_UE_StayedInCell_EnhancedGranularity_encode_uper;
+per_type_decoder_f Time_UE_StayedInCell_EnhancedGranularity_decode_aper;
+per_type_encoder_f Time_UE_StayedInCell_EnhancedGranularity_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Time_UE_StayedInCell_EnhancedGranularity_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/Time-UE-StayedInCell.h b/src/s1ap/asn1c/asnGenFiles/Time-UE-StayedInCell.h
new file mode 100644
index 0000000..490b11c
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/Time-UE-StayedInCell.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _Time_UE_StayedInCell_H_
+#define _Time_UE_StayedInCell_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Time-UE-StayedInCell */
+typedef long Time_UE_StayedInCell_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_Time_UE_StayedInCell_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_Time_UE_StayedInCell;
+asn_struct_free_f Time_UE_StayedInCell_free;
+asn_struct_print_f Time_UE_StayedInCell_print;
+asn_constr_check_f Time_UE_StayedInCell_constraint;
+ber_type_decoder_f Time_UE_StayedInCell_decode_ber;
+der_type_encoder_f Time_UE_StayedInCell_encode_der;
+xer_type_decoder_f Time_UE_StayedInCell_decode_xer;
+xer_type_encoder_f Time_UE_StayedInCell_encode_xer;
+oer_type_decoder_f Time_UE_StayedInCell_decode_oer;
+oer_type_encoder_f Time_UE_StayedInCell_encode_oer;
+per_type_decoder_f Time_UE_StayedInCell_decode_uper;
+per_type_encoder_f Time_UE_StayedInCell_encode_uper;
+per_type_decoder_f Time_UE_StayedInCell_decode_aper;
+per_type_encoder_f Time_UE_StayedInCell_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Time_UE_StayedInCell_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TimeSinceSecondaryNodeRelease.h b/src/s1ap/asn1c/asnGenFiles/TimeSinceSecondaryNodeRelease.h
new file mode 100644
index 0000000..32be652
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TimeSinceSecondaryNodeRelease.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TimeSinceSecondaryNodeRelease_H_
+#define _TimeSinceSecondaryNodeRelease_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TimeSinceSecondaryNodeRelease */
+typedef OCTET_STRING_t TimeSinceSecondaryNodeRelease_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_TimeSinceSecondaryNodeRelease_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_TimeSinceSecondaryNodeRelease;
+asn_struct_free_f TimeSinceSecondaryNodeRelease_free;
+asn_struct_print_f TimeSinceSecondaryNodeRelease_print;
+asn_constr_check_f TimeSinceSecondaryNodeRelease_constraint;
+ber_type_decoder_f TimeSinceSecondaryNodeRelease_decode_ber;
+der_type_encoder_f TimeSinceSecondaryNodeRelease_encode_der;
+xer_type_decoder_f TimeSinceSecondaryNodeRelease_decode_xer;
+xer_type_encoder_f TimeSinceSecondaryNodeRelease_encode_xer;
+oer_type_decoder_f TimeSinceSecondaryNodeRelease_decode_oer;
+oer_type_encoder_f TimeSinceSecondaryNodeRelease_encode_oer;
+per_type_decoder_f TimeSinceSecondaryNodeRelease_decode_uper;
+per_type_encoder_f TimeSinceSecondaryNodeRelease_encode_uper;
+per_type_decoder_f TimeSinceSecondaryNodeRelease_decode_aper;
+per_type_encoder_f TimeSinceSecondaryNodeRelease_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TimeSinceSecondaryNodeRelease_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TimeSynchronisationInfo.h b/src/s1ap/asn1c/asnGenFiles/TimeSynchronisationInfo.h
new file mode 100644
index 0000000..69e2c86
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TimeSynchronisationInfo.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TimeSynchronisationInfo_H_
+#define _TimeSynchronisationInfo_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "StratumLevel.h"
+#include "SynchronisationStatus.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* TimeSynchronisationInfo */
+typedef struct TimeSynchronisationInfo {
+ StratumLevel_t stratumLevel;
+ SynchronisationStatus_t synchronisationStatus;
+ 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;
+} TimeSynchronisationInfo_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TimeSynchronisationInfo;
+extern asn_SEQUENCE_specifics_t asn_SPC_TimeSynchronisationInfo_specs_1;
+extern asn_TYPE_member_t asn_MBR_TimeSynchronisationInfo_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TimeSynchronisationInfo_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TimeToWait.h b/src/s1ap/asn1c/asnGenFiles/TimeToWait.h
new file mode 100644
index 0000000..393cd73
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TimeToWait.h
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TimeToWait_H_
+#define _TimeToWait_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum TimeToWait {
+ TimeToWait_v1s = 0,
+ TimeToWait_v2s = 1,
+ TimeToWait_v5s = 2,
+ TimeToWait_v10s = 3,
+ TimeToWait_v20s = 4,
+ TimeToWait_v60s = 5
+ /*
+ * Enumeration is extensible
+ */
+} e_TimeToWait;
+
+/* TimeToWait */
+typedef long TimeToWait_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_TimeToWait_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_TimeToWait;
+extern const asn_INTEGER_specifics_t asn_SPC_TimeToWait_specs_1;
+asn_struct_free_f TimeToWait_free;
+asn_struct_print_f TimeToWait_print;
+asn_constr_check_f TimeToWait_constraint;
+ber_type_decoder_f TimeToWait_decode_ber;
+der_type_encoder_f TimeToWait_encode_der;
+xer_type_decoder_f TimeToWait_decode_xer;
+xer_type_encoder_f TimeToWait_encode_xer;
+oer_type_decoder_f TimeToWait_decode_oer;
+oer_type_encoder_f TimeToWait_encode_oer;
+per_type_decoder_f TimeToWait_decode_uper;
+per_type_encoder_f TimeToWait_encode_uper;
+per_type_decoder_f TimeToWait_decode_aper;
+per_type_encoder_f TimeToWait_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TimeToWait_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TraceActivation.h b/src/s1ap/asn1c/asnGenFiles/TraceActivation.h
new file mode 100644
index 0000000..f0587bb
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TraceActivation.h
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TraceActivation_H_
+#define _TraceActivation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-UTRAN-Trace-ID.h"
+#include "InterfacesToTrace.h"
+#include "TraceDepth.h"
+#include "TransportLayerAddress.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* TraceActivation */
+typedef struct TraceActivation {
+ E_UTRAN_Trace_ID_t e_UTRAN_Trace_ID;
+ InterfacesToTrace_t interfacesToTrace;
+ TraceDepth_t traceDepth;
+ TransportLayerAddress_t traceCollectionEntityIPAddress;
+ 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;
+} TraceActivation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TraceActivation;
+extern asn_SEQUENCE_specifics_t asn_SPC_TraceActivation_specs_1;
+extern asn_TYPE_member_t asn_MBR_TraceActivation_1[5];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TraceActivation_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TraceDepth.h b/src/s1ap/asn1c/asnGenFiles/TraceDepth.h
new file mode 100644
index 0000000..1405cb6
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TraceDepth.h
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TraceDepth_H_
+#define _TraceDepth_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum TraceDepth {
+ TraceDepth_minimum = 0,
+ TraceDepth_medium = 1,
+ TraceDepth_maximum = 2,
+ TraceDepth_minimumWithoutVendorSpecificExtension = 3,
+ TraceDepth_mediumWithoutVendorSpecificExtension = 4,
+ TraceDepth_maximumWithoutVendorSpecificExtension = 5
+ /*
+ * Enumeration is extensible
+ */
+} e_TraceDepth;
+
+/* TraceDepth */
+typedef long TraceDepth_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_TraceDepth_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_TraceDepth;
+extern const asn_INTEGER_specifics_t asn_SPC_TraceDepth_specs_1;
+asn_struct_free_f TraceDepth_free;
+asn_struct_print_f TraceDepth_print;
+asn_constr_check_f TraceDepth_constraint;
+ber_type_decoder_f TraceDepth_decode_ber;
+der_type_encoder_f TraceDepth_encode_der;
+xer_type_decoder_f TraceDepth_decode_xer;
+xer_type_encoder_f TraceDepth_encode_xer;
+oer_type_decoder_f TraceDepth_decode_oer;
+oer_type_encoder_f TraceDepth_encode_oer;
+per_type_decoder_f TraceDepth_decode_uper;
+per_type_encoder_f TraceDepth_encode_uper;
+per_type_decoder_f TraceDepth_decode_aper;
+per_type_encoder_f TraceDepth_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TraceDepth_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TraceFailureIndication.h b/src/s1ap/asn1c/asnGenFiles/TraceFailureIndication.h
new file mode 100644
index 0000000..094069e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TraceFailureIndication.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TraceFailureIndication_H_
+#define _TraceFailureIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TraceFailureIndication */
+typedef struct TraceFailureIndication {
+ ProtocolIE_Container_129P55_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} TraceFailureIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TraceFailureIndication;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TraceFailureIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TraceStart.h b/src/s1ap/asn1c/asnGenFiles/TraceStart.h
new file mode 100644
index 0000000..cf8cdc1
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TraceStart.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TraceStart_H_
+#define _TraceStart_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TraceStart */
+typedef struct TraceStart {
+ ProtocolIE_Container_129P54_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} TraceStart_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TraceStart;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TraceStart_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TrafficLoadReductionIndication.h b/src/s1ap/asn1c/asnGenFiles/TrafficLoadReductionIndication.h
new file mode 100644
index 0000000..2ecfc0c
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TrafficLoadReductionIndication.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TrafficLoadReductionIndication_H_
+#define _TrafficLoadReductionIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TrafficLoadReductionIndication */
+typedef long TrafficLoadReductionIndication_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_TrafficLoadReductionIndication_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_TrafficLoadReductionIndication;
+asn_struct_free_f TrafficLoadReductionIndication_free;
+asn_struct_print_f TrafficLoadReductionIndication_print;
+asn_constr_check_f TrafficLoadReductionIndication_constraint;
+ber_type_decoder_f TrafficLoadReductionIndication_decode_ber;
+der_type_encoder_f TrafficLoadReductionIndication_encode_der;
+xer_type_decoder_f TrafficLoadReductionIndication_decode_xer;
+xer_type_encoder_f TrafficLoadReductionIndication_encode_xer;
+oer_type_decoder_f TrafficLoadReductionIndication_decode_oer;
+oer_type_encoder_f TrafficLoadReductionIndication_encode_oer;
+per_type_decoder_f TrafficLoadReductionIndication_decode_uper;
+per_type_encoder_f TrafficLoadReductionIndication_encode_uper;
+per_type_decoder_f TrafficLoadReductionIndication_decode_aper;
+per_type_encoder_f TrafficLoadReductionIndication_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TrafficLoadReductionIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TransportInformation.h b/src/s1ap/asn1c/asnGenFiles/TransportInformation.h
new file mode 100644
index 0000000..d2e27aa
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TransportInformation.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TransportInformation_H_
+#define _TransportInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TransportLayerAddress.h"
+#include "GTP-TEID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TransportInformation */
+typedef struct TransportInformation {
+ TransportLayerAddress_t transportLayerAddress;
+ GTP_TEID_t uL_GTP_TEID;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} TransportInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TransportInformation;
+extern asn_SEQUENCE_specifics_t asn_SPC_TransportInformation_specs_1;
+extern asn_TYPE_member_t asn_MBR_TransportInformation_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TransportInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TransportLayerAddress.h b/src/s1ap/asn1c/asnGenFiles/TransportLayerAddress.h
new file mode 100644
index 0000000..07a3a18
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TransportLayerAddress.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TransportLayerAddress_H_
+#define _TransportLayerAddress_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#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 <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TriggeringMessage.h b/src/s1ap/asn1c/asnGenFiles/TriggeringMessage.h
new file mode 100644
index 0000000..e12b9b8
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TriggeringMessage.h
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-CommonDataTypes"
+ * found in "./asn1c/S1AP-CommonDataTypes.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TriggeringMessage_H_
+#define _TriggeringMessage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum TriggeringMessage {
+ TriggeringMessage_initiating_message = 0,
+ TriggeringMessage_successful_outcome = 1,
+ TriggeringMessage_unsuccessfull_outcome = 2
+} e_TriggeringMessage;
+
+/* TriggeringMessage */
+typedef long TriggeringMessage_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_TriggeringMessage_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_TriggeringMessage;
+extern const asn_INTEGER_specifics_t asn_SPC_TriggeringMessage_specs_1;
+asn_struct_free_f TriggeringMessage_free;
+asn_struct_print_f TriggeringMessage_print;
+asn_constr_check_f TriggeringMessage_constraint;
+ber_type_decoder_f TriggeringMessage_decode_ber;
+der_type_encoder_f TriggeringMessage_encode_der;
+xer_type_decoder_f TriggeringMessage_decode_xer;
+xer_type_encoder_f TriggeringMessage_encode_xer;
+oer_type_decoder_f TriggeringMessage_decode_oer;
+oer_type_encoder_f TriggeringMessage_encode_oer;
+per_type_decoder_f TriggeringMessage_decode_uper;
+per_type_encoder_f TriggeringMessage_encode_uper;
+per_type_decoder_f TriggeringMessage_decode_aper;
+per_type_encoder_f TriggeringMessage_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TriggeringMessage_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TunnelInformation.h b/src/s1ap/asn1c/asnGenFiles/TunnelInformation.h
new file mode 100644
index 0000000..8a30551
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TunnelInformation.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TunnelInformation_H_
+#define _TunnelInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TransportLayerAddress.h"
+#include "Port-Number.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* TunnelInformation */
+typedef struct TunnelInformation {
+ TransportLayerAddress_t transportLayerAddress;
+ Port_Number_t *uDP_Port_Number; /* 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;
+} TunnelInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TunnelInformation;
+extern asn_SEQUENCE_specifics_t asn_SPC_TunnelInformation_specs_1;
+extern asn_TYPE_member_t asn_MBR_TunnelInformation_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TunnelInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/TypeOfError.h b/src/s1ap/asn1c/asnGenFiles/TypeOfError.h
new file mode 100644
index 0000000..5da1c7b
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/TypeOfError.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _TypeOfError_H_
+#define _TypeOfError_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum TypeOfError {
+ TypeOfError_not_understood = 0,
+ TypeOfError_missing = 1
+ /*
+ * Enumeration is extensible
+ */
+} e_TypeOfError;
+
+/* TypeOfError */
+typedef long TypeOfError_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_TypeOfError_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_TypeOfError;
+extern const asn_INTEGER_specifics_t asn_SPC_TypeOfError_specs_1;
+asn_struct_free_f TypeOfError_free;
+asn_struct_print_f TypeOfError_print;
+asn_constr_check_f TypeOfError_constraint;
+ber_type_decoder_f TypeOfError_decode_ber;
+der_type_encoder_f TypeOfError_encode_der;
+xer_type_decoder_f TypeOfError_decode_xer;
+xer_type_encoder_f TypeOfError_encode_xer;
+oer_type_decoder_f TypeOfError_decode_oer;
+oer_type_encoder_f TypeOfError_encode_oer;
+per_type_decoder_f TypeOfError_decode_uper;
+per_type_encoder_f TypeOfError_encode_uper;
+per_type_decoder_f TypeOfError_decode_aper;
+per_type_encoder_f TypeOfError_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _TypeOfError_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UE-Application-Layer-Measurement-Capability.h b/src/s1ap/asn1c/asnGenFiles/UE-Application-Layer-Measurement-Capability.h
new file mode 100644
index 0000000..f4fe719
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UE-Application-Layer-Measurement-Capability.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UE_Application_Layer_Measurement_Capability_H_
+#define _UE_Application_Layer_Measurement_Capability_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UE-Application-Layer-Measurement-Capability */
+typedef BIT_STRING_t UE_Application_Layer_Measurement_Capability_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_UE_Application_Layer_Measurement_Capability_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_UE_Application_Layer_Measurement_Capability;
+asn_struct_free_f UE_Application_Layer_Measurement_Capability_free;
+asn_struct_print_f UE_Application_Layer_Measurement_Capability_print;
+asn_constr_check_f UE_Application_Layer_Measurement_Capability_constraint;
+ber_type_decoder_f UE_Application_Layer_Measurement_Capability_decode_ber;
+der_type_encoder_f UE_Application_Layer_Measurement_Capability_encode_der;
+xer_type_decoder_f UE_Application_Layer_Measurement_Capability_decode_xer;
+xer_type_encoder_f UE_Application_Layer_Measurement_Capability_encode_xer;
+oer_type_decoder_f UE_Application_Layer_Measurement_Capability_decode_oer;
+oer_type_encoder_f UE_Application_Layer_Measurement_Capability_encode_oer;
+per_type_decoder_f UE_Application_Layer_Measurement_Capability_decode_uper;
+per_type_encoder_f UE_Application_Layer_Measurement_Capability_encode_uper;
+per_type_decoder_f UE_Application_Layer_Measurement_Capability_decode_aper;
+per_type_encoder_f UE_Application_Layer_Measurement_Capability_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_Application_Layer_Measurement_Capability_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UE-HistoryInformation.h b/src/s1ap/asn1c/asnGenFiles/UE-HistoryInformation.h
new file mode 100644
index 0000000..ef8877d
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UE-HistoryInformation.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UE_HistoryInformation_H_
+#define _UE_HistoryInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct LastVisitedCell_Item;
+
+/* UE-HistoryInformation */
+typedef struct UE_HistoryInformation {
+ A_SEQUENCE_OF(struct LastVisitedCell_Item) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UE_HistoryInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UE_HistoryInformation;
+extern asn_SET_OF_specifics_t asn_SPC_UE_HistoryInformation_specs_1;
+extern asn_TYPE_member_t asn_MBR_UE_HistoryInformation_1[1];
+extern asn_per_constraints_t asn_PER_type_UE_HistoryInformation_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_HistoryInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UE-HistoryInformationFromTheUE.h b/src/s1ap/asn1c/asnGenFiles/UE-HistoryInformationFromTheUE.h
new file mode 100644
index 0000000..5b2700f
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UE-HistoryInformationFromTheUE.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UE_HistoryInformationFromTheUE_H_
+#define _UE_HistoryInformationFromTheUE_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UE-HistoryInformationFromTheUE */
+typedef OCTET_STRING_t UE_HistoryInformationFromTheUE_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UE_HistoryInformationFromTheUE;
+asn_struct_free_f UE_HistoryInformationFromTheUE_free;
+asn_struct_print_f UE_HistoryInformationFromTheUE_print;
+asn_constr_check_f UE_HistoryInformationFromTheUE_constraint;
+ber_type_decoder_f UE_HistoryInformationFromTheUE_decode_ber;
+der_type_encoder_f UE_HistoryInformationFromTheUE_encode_der;
+xer_type_decoder_f UE_HistoryInformationFromTheUE_decode_xer;
+xer_type_encoder_f UE_HistoryInformationFromTheUE_encode_xer;
+oer_type_decoder_f UE_HistoryInformationFromTheUE_decode_oer;
+oer_type_encoder_f UE_HistoryInformationFromTheUE_encode_oer;
+per_type_decoder_f UE_HistoryInformationFromTheUE_decode_uper;
+per_type_encoder_f UE_HistoryInformationFromTheUE_encode_uper;
+per_type_decoder_f UE_HistoryInformationFromTheUE_decode_aper;
+per_type_encoder_f UE_HistoryInformationFromTheUE_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_HistoryInformationFromTheUE_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UE-RLF-Report-Container-for-extended-bands.h b/src/s1ap/asn1c/asnGenFiles/UE-RLF-Report-Container-for-extended-bands.h
new file mode 100644
index 0000000..45aeb54
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UE-RLF-Report-Container-for-extended-bands.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UE_RLF_Report_Container_for_extended_bands_H_
+#define _UE_RLF_Report_Container_for_extended_bands_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UE-RLF-Report-Container-for-extended-bands */
+typedef OCTET_STRING_t UE_RLF_Report_Container_for_extended_bands_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UE_RLF_Report_Container_for_extended_bands;
+asn_struct_free_f UE_RLF_Report_Container_for_extended_bands_free;
+asn_struct_print_f UE_RLF_Report_Container_for_extended_bands_print;
+asn_constr_check_f UE_RLF_Report_Container_for_extended_bands_constraint;
+ber_type_decoder_f UE_RLF_Report_Container_for_extended_bands_decode_ber;
+der_type_encoder_f UE_RLF_Report_Container_for_extended_bands_encode_der;
+xer_type_decoder_f UE_RLF_Report_Container_for_extended_bands_decode_xer;
+xer_type_encoder_f UE_RLF_Report_Container_for_extended_bands_encode_xer;
+oer_type_decoder_f UE_RLF_Report_Container_for_extended_bands_decode_oer;
+oer_type_encoder_f UE_RLF_Report_Container_for_extended_bands_encode_oer;
+per_type_decoder_f UE_RLF_Report_Container_for_extended_bands_decode_uper;
+per_type_encoder_f UE_RLF_Report_Container_for_extended_bands_encode_uper;
+per_type_decoder_f UE_RLF_Report_Container_for_extended_bands_decode_aper;
+per_type_encoder_f UE_RLF_Report_Container_for_extended_bands_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_RLF_Report_Container_for_extended_bands_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UE-RLF-Report-Container.h b/src/s1ap/asn1c/asnGenFiles/UE-RLF-Report-Container.h
new file mode 100644
index 0000000..20b0ae4
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UE-RLF-Report-Container.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UE_RLF_Report_Container_H_
+#define _UE_RLF_Report_Container_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UE-RLF-Report-Container */
+typedef OCTET_STRING_t UE_RLF_Report_Container_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UE_RLF_Report_Container;
+asn_struct_free_f UE_RLF_Report_Container_free;
+asn_struct_print_f UE_RLF_Report_Container_print;
+asn_constr_check_f UE_RLF_Report_Container_constraint;
+ber_type_decoder_f UE_RLF_Report_Container_decode_ber;
+der_type_encoder_f UE_RLF_Report_Container_encode_der;
+xer_type_decoder_f UE_RLF_Report_Container_decode_xer;
+xer_type_encoder_f UE_RLF_Report_Container_encode_xer;
+oer_type_decoder_f UE_RLF_Report_Container_decode_oer;
+oer_type_encoder_f UE_RLF_Report_Container_encode_oer;
+per_type_decoder_f UE_RLF_Report_Container_decode_uper;
+per_type_encoder_f UE_RLF_Report_Container_encode_uper;
+per_type_decoder_f UE_RLF_Report_Container_decode_aper;
+per_type_encoder_f UE_RLF_Report_Container_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_RLF_Report_Container_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UE-RetentionInformation.h b/src/s1ap/asn1c/asnGenFiles/UE-RetentionInformation.h
new file mode 100644
index 0000000..0ec9fb7
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UE-RetentionInformation.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UE_RetentionInformation_H_
+#define _UE_RetentionInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum UE_RetentionInformation {
+ UE_RetentionInformation_ues_retained = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_UE_RetentionInformation;
+
+/* UE-RetentionInformation */
+typedef long UE_RetentionInformation_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_UE_RetentionInformation_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_UE_RetentionInformation;
+extern const asn_INTEGER_specifics_t asn_SPC_UE_RetentionInformation_specs_1;
+asn_struct_free_f UE_RetentionInformation_free;
+asn_struct_print_f UE_RetentionInformation_print;
+asn_constr_check_f UE_RetentionInformation_constraint;
+ber_type_decoder_f UE_RetentionInformation_decode_ber;
+der_type_encoder_f UE_RetentionInformation_encode_der;
+xer_type_decoder_f UE_RetentionInformation_decode_xer;
+xer_type_encoder_f UE_RetentionInformation_encode_xer;
+oer_type_decoder_f UE_RetentionInformation_decode_oer;
+oer_type_encoder_f UE_RetentionInformation_encode_oer;
+per_type_decoder_f UE_RetentionInformation_decode_uper;
+per_type_encoder_f UE_RetentionInformation_encode_uper;
+per_type_decoder_f UE_RetentionInformation_decode_aper;
+per_type_encoder_f UE_RetentionInformation_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_RetentionInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UE-S1AP-ID-pair.h b/src/s1ap/asn1c/asnGenFiles/UE-S1AP-ID-pair.h
new file mode 100644
index 0000000..191d8ba
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UE-S1AP-ID-pair.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UE_S1AP_ID_pair_H_
+#define _UE_S1AP_ID_pair_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "MME-UE-S1AP-ID.h"
+#include "ENB-UE-S1AP-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* UE-S1AP-ID-pair */
+typedef struct UE_S1AP_ID_pair {
+ MME_UE_S1AP_ID_t mME_UE_S1AP_ID;
+ ENB_UE_S1AP_ID_t eNB_UE_S1AP_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;
+} UE_S1AP_ID_pair_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UE_S1AP_ID_pair;
+extern asn_SEQUENCE_specifics_t asn_SPC_UE_S1AP_ID_pair_specs_1;
+extern asn_TYPE_member_t asn_MBR_UE_S1AP_ID_pair_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_S1AP_ID_pair_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UE-S1AP-IDs.h b/src/s1ap/asn1c/asnGenFiles/UE-S1AP-IDs.h
new file mode 100644
index 0000000..adc68a8
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UE-S1AP-IDs.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UE_S1AP_IDs_H_
+#define _UE_S1AP_IDs_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "MME-UE-S1AP-ID.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum UE_S1AP_IDs_PR {
+ UE_S1AP_IDs_PR_NOTHING, /* No components present */
+ UE_S1AP_IDs_PR_uE_S1AP_ID_pair,
+ UE_S1AP_IDs_PR_mME_UE_S1AP_ID
+ /* Extensions may appear below */
+
+} UE_S1AP_IDs_PR;
+
+/* Forward declarations */
+struct UE_S1AP_ID_pair;
+
+/* UE-S1AP-IDs */
+typedef struct UE_S1AP_IDs {
+ UE_S1AP_IDs_PR present;
+ union UE_S1AP_IDs_u {
+ struct UE_S1AP_ID_pair *uE_S1AP_ID_pair;
+ MME_UE_S1AP_ID_t mME_UE_S1AP_ID;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UE_S1AP_IDs_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UE_S1AP_IDs;
+extern asn_CHOICE_specifics_t asn_SPC_UE_S1AP_IDs_specs_1;
+extern asn_TYPE_member_t asn_MBR_UE_S1AP_IDs_1[2];
+extern asn_per_constraints_t asn_PER_type_UE_S1AP_IDs_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_S1AP_IDs_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UE-Usage-Type.h b/src/s1ap/asn1c/asnGenFiles/UE-Usage-Type.h
new file mode 100644
index 0000000..562d435
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UE-Usage-Type.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UE_Usage_Type_H_
+#define _UE_Usage_Type_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UE-Usage-Type */
+typedef long UE_Usage_Type_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_UE_Usage_Type_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_UE_Usage_Type;
+asn_struct_free_f UE_Usage_Type_free;
+asn_struct_print_f UE_Usage_Type_print;
+asn_constr_check_f UE_Usage_Type_constraint;
+ber_type_decoder_f UE_Usage_Type_decode_ber;
+der_type_encoder_f UE_Usage_Type_encode_der;
+xer_type_decoder_f UE_Usage_Type_decode_xer;
+xer_type_encoder_f UE_Usage_Type_encode_xer;
+oer_type_decoder_f UE_Usage_Type_decode_oer;
+oer_type_encoder_f UE_Usage_Type_encode_oer;
+per_type_decoder_f UE_Usage_Type_decode_uper;
+per_type_encoder_f UE_Usage_Type_encode_uper;
+per_type_decoder_f UE_Usage_Type_decode_aper;
+per_type_encoder_f UE_Usage_Type_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_Usage_Type_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UE-associatedLogicalS1-ConnectionItem.h b/src/s1ap/asn1c/asnGenFiles/UE-associatedLogicalS1-ConnectionItem.h
new file mode 100644
index 0000000..1676c62
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UE-associatedLogicalS1-ConnectionItem.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UE_associatedLogicalS1_ConnectionItem_H_
+#define _UE_associatedLogicalS1_ConnectionItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "MME-UE-S1AP-ID.h"
+#include "ENB-UE-S1AP-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* UE-associatedLogicalS1-ConnectionItem */
+typedef struct UE_associatedLogicalS1_ConnectionItem {
+ MME_UE_S1AP_ID_t *mME_UE_S1AP_ID; /* OPTIONAL */
+ ENB_UE_S1AP_ID_t *eNB_UE_S1AP_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_associatedLogicalS1_ConnectionItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UE_associatedLogicalS1_ConnectionItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_UE_associatedLogicalS1_ConnectionItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_UE_associatedLogicalS1_ConnectionItem_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_associatedLogicalS1_ConnectionItem_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UE-associatedLogicalS1-ConnectionListRes.h b/src/s1ap/asn1c/asnGenFiles/UE-associatedLogicalS1-ConnectionListRes.h
new file mode 100644
index 0000000..9fdb818
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UE-associatedLogicalS1-ConnectionListRes.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UE_associatedLogicalS1_ConnectionListRes_H_
+#define _UE_associatedLogicalS1_ConnectionListRes_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* UE-associatedLogicalS1-ConnectionListRes */
+typedef struct UE_associatedLogicalS1_ConnectionListRes {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UE_associatedLogicalS1_ConnectionListRes_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UE_associatedLogicalS1_ConnectionListRes;
+extern asn_SET_OF_specifics_t asn_SPC_UE_associatedLogicalS1_ConnectionListRes_specs_1;
+extern asn_TYPE_member_t asn_MBR_UE_associatedLogicalS1_ConnectionListRes_1[1];
+extern asn_per_constraints_t asn_PER_type_UE_associatedLogicalS1_ConnectionListRes_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_associatedLogicalS1_ConnectionListRes_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UE-associatedLogicalS1-ConnectionListResAck.h b/src/s1ap/asn1c/asnGenFiles/UE-associatedLogicalS1-ConnectionListResAck.h
new file mode 100644
index 0000000..ddeb17b
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UE-associatedLogicalS1-ConnectionListResAck.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UE_associatedLogicalS1_ConnectionListResAck_H_
+#define _UE_associatedLogicalS1_ConnectionListResAck_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* UE-associatedLogicalS1-ConnectionListResAck */
+typedef struct UE_associatedLogicalS1_ConnectionListResAck {
+ A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UE_associatedLogicalS1_ConnectionListResAck_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UE_associatedLogicalS1_ConnectionListResAck;
+extern asn_SET_OF_specifics_t asn_SPC_UE_associatedLogicalS1_ConnectionListResAck_specs_1;
+extern asn_TYPE_member_t asn_MBR_UE_associatedLogicalS1_ConnectionListResAck_1[1];
+extern asn_per_constraints_t asn_PER_type_UE_associatedLogicalS1_ConnectionListResAck_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UE_associatedLogicalS1_ConnectionListResAck_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UEAggregateMaximumBitrate.h b/src/s1ap/asn1c/asnGenFiles/UEAggregateMaximumBitrate.h
new file mode 100644
index 0000000..694992c
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UEAggregateMaximumBitrate.h
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UEAggregateMaximumBitrate_H_
+#define _UEAggregateMaximumBitrate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "BitRate.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* UEAggregateMaximumBitrate */
+typedef struct UEAggregateMaximumBitrate {
+ BitRate_t uEaggregateMaximumBitRateDL;
+ BitRate_t uEaggregateMaximumBitRateUL;
+ 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;
+} UEAggregateMaximumBitrate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEAggregateMaximumBitrate;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEAggregateMaximumBitrate_specs_1;
+extern asn_TYPE_member_t asn_MBR_UEAggregateMaximumBitrate_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UEAggregateMaximumBitrate_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UEAppLayerMeasConfig.h b/src/s1ap/asn1c/asnGenFiles/UEAppLayerMeasConfig.h
new file mode 100644
index 0000000..29fbc16
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UEAppLayerMeasConfig.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UEAppLayerMeasConfig_H_
+#define _UEAppLayerMeasConfig_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+#include "AreaScopeOfQMC.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* UEAppLayerMeasConfig */
+typedef struct UEAppLayerMeasConfig {
+ OCTET_STRING_t containerForAppLayerMeasConfig;
+ AreaScopeOfQMC_t areaScopeOfQMC;
+ 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;
+} UEAppLayerMeasConfig_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEAppLayerMeasConfig;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEAppLayerMeasConfig_specs_1;
+extern asn_TYPE_member_t asn_MBR_UEAppLayerMeasConfig_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UEAppLayerMeasConfig_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UECapabilityInfoIndication.h b/src/s1ap/asn1c/asnGenFiles/UECapabilityInfoIndication.h
new file mode 100644
index 0000000..e85c76e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UECapabilityInfoIndication.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UECapabilityInfoIndication_H_
+#define _UECapabilityInfoIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UECapabilityInfoIndication */
+typedef struct UECapabilityInfoIndication {
+ ProtocolIE_Container_129P51_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UECapabilityInfoIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UECapabilityInfoIndication;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UECapabilityInfoIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UECapabilityInfoRequest.h b/src/s1ap/asn1c/asnGenFiles/UECapabilityInfoRequest.h
new file mode 100644
index 0000000..beccd22
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UECapabilityInfoRequest.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UECapabilityInfoRequest_H_
+#define _UECapabilityInfoRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum UECapabilityInfoRequest {
+ UECapabilityInfoRequest_requested = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_UECapabilityInfoRequest;
+
+/* UECapabilityInfoRequest */
+typedef long UECapabilityInfoRequest_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_UECapabilityInfoRequest_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_UECapabilityInfoRequest;
+extern const asn_INTEGER_specifics_t asn_SPC_UECapabilityInfoRequest_specs_1;
+asn_struct_free_f UECapabilityInfoRequest_free;
+asn_struct_print_f UECapabilityInfoRequest_print;
+asn_constr_check_f UECapabilityInfoRequest_constraint;
+ber_type_decoder_f UECapabilityInfoRequest_decode_ber;
+der_type_encoder_f UECapabilityInfoRequest_encode_der;
+xer_type_decoder_f UECapabilityInfoRequest_decode_xer;
+xer_type_encoder_f UECapabilityInfoRequest_encode_xer;
+oer_type_decoder_f UECapabilityInfoRequest_decode_oer;
+oer_type_encoder_f UECapabilityInfoRequest_encode_oer;
+per_type_decoder_f UECapabilityInfoRequest_decode_uper;
+per_type_encoder_f UECapabilityInfoRequest_encode_uper;
+per_type_decoder_f UECapabilityInfoRequest_decode_aper;
+per_type_encoder_f UECapabilityInfoRequest_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UECapabilityInfoRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UEContextModificationConfirm.h b/src/s1ap/asn1c/asnGenFiles/UEContextModificationConfirm.h
new file mode 100644
index 0000000..4b4b5e3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UEContextModificationConfirm.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UEContextModificationConfirm_H_
+#define _UEContextModificationConfirm_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UEContextModificationConfirm */
+typedef struct UEContextModificationConfirm {
+ ProtocolIE_Container_129P80_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;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UEContextModificationConfirm_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UEContextModificationFailure.h b/src/s1ap/asn1c/asnGenFiles/UEContextModificationFailure.h
new file mode 100644
index 0000000..d42373e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UEContextModificationFailure.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UEContextModificationFailure_H_
+#define _UEContextModificationFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UEContextModificationFailure */
+typedef struct UEContextModificationFailure {
+ ProtocolIE_Container_129P28_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;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UEContextModificationFailure_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UEContextModificationIndication.h b/src/s1ap/asn1c/asnGenFiles/UEContextModificationIndication.h
new file mode 100644
index 0000000..0f5e115
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UEContextModificationIndication.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UEContextModificationIndication_H_
+#define _UEContextModificationIndication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UEContextModificationIndication */
+typedef struct UEContextModificationIndication {
+ ProtocolIE_Container_129P79_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UEContextModificationIndication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEContextModificationIndication;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UEContextModificationIndication_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UEContextModificationRequest.h b/src/s1ap/asn1c/asnGenFiles/UEContextModificationRequest.h
new file mode 100644
index 0000000..368d0b3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UEContextModificationRequest.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UEContextModificationRequest_H_
+#define _UEContextModificationRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UEContextModificationRequest */
+typedef struct UEContextModificationRequest {
+ ProtocolIE_Container_129P26_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;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UEContextModificationRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UEContextModificationResponse.h b/src/s1ap/asn1c/asnGenFiles/UEContextModificationResponse.h
new file mode 100644
index 0000000..59fd258
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UEContextModificationResponse.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UEContextModificationResponse_H_
+#define _UEContextModificationResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UEContextModificationResponse */
+typedef struct UEContextModificationResponse {
+ ProtocolIE_Container_129P27_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;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UEContextModificationResponse_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UEContextReleaseCommand.h b/src/s1ap/asn1c/asnGenFiles/UEContextReleaseCommand.h
new file mode 100644
index 0000000..251adc8
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UEContextReleaseCommand.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UEContextReleaseCommand_H_
+#define _UEContextReleaseCommand_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UEContextReleaseCommand */
+typedef struct UEContextReleaseCommand {
+ ProtocolIE_Container_129P24_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;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UEContextReleaseCommand_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UEContextReleaseComplete.h b/src/s1ap/asn1c/asnGenFiles/UEContextReleaseComplete.h
new file mode 100644
index 0000000..6ec706c
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UEContextReleaseComplete.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UEContextReleaseComplete_H_
+#define _UEContextReleaseComplete_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UEContextReleaseComplete */
+typedef struct UEContextReleaseComplete {
+ ProtocolIE_Container_129P25_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;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UEContextReleaseComplete_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UEContextReleaseRequest.h b/src/s1ap/asn1c/asnGenFiles/UEContextReleaseRequest.h
new file mode 100644
index 0000000..39bc1a8
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UEContextReleaseRequest.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UEContextReleaseRequest_H_
+#define _UEContextReleaseRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UEContextReleaseRequest */
+typedef struct UEContextReleaseRequest {
+ ProtocolIE_Container_129P23_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;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UEContextReleaseRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UEContextResumeFailure.h b/src/s1ap/asn1c/asnGenFiles/UEContextResumeFailure.h
new file mode 100644
index 0000000..cade135
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UEContextResumeFailure.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UEContextResumeFailure_H_
+#define _UEContextResumeFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UEContextResumeFailure */
+typedef struct UEContextResumeFailure {
+ ProtocolIE_Container_129P85_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UEContextResumeFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEContextResumeFailure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UEContextResumeFailure_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UEContextResumeRequest.h b/src/s1ap/asn1c/asnGenFiles/UEContextResumeRequest.h
new file mode 100644
index 0000000..1f50596
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UEContextResumeRequest.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UEContextResumeRequest_H_
+#define _UEContextResumeRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UEContextResumeRequest */
+typedef struct UEContextResumeRequest {
+ ProtocolIE_Container_129P83_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UEContextResumeRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEContextResumeRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UEContextResumeRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UEContextResumeResponse.h b/src/s1ap/asn1c/asnGenFiles/UEContextResumeResponse.h
new file mode 100644
index 0000000..000d1c2
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UEContextResumeResponse.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UEContextResumeResponse_H_
+#define _UEContextResumeResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UEContextResumeResponse */
+typedef struct UEContextResumeResponse {
+ ProtocolIE_Container_129P84_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UEContextResumeResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEContextResumeResponse;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UEContextResumeResponse_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UEContextSuspendRequest.h b/src/s1ap/asn1c/asnGenFiles/UEContextSuspendRequest.h
new file mode 100644
index 0000000..f6bd7ad
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UEContextSuspendRequest.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UEContextSuspendRequest_H_
+#define _UEContextSuspendRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UEContextSuspendRequest */
+typedef struct UEContextSuspendRequest {
+ ProtocolIE_Container_129P81_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UEContextSuspendRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEContextSuspendRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UEContextSuspendRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UEContextSuspendResponse.h b/src/s1ap/asn1c/asnGenFiles/UEContextSuspendResponse.h
new file mode 100644
index 0000000..cb12344
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UEContextSuspendResponse.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UEContextSuspendResponse_H_
+#define _UEContextSuspendResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UEContextSuspendResponse */
+typedef struct UEContextSuspendResponse {
+ ProtocolIE_Container_129P82_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UEContextSuspendResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEContextSuspendResponse;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UEContextSuspendResponse_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UEIdentityIndexValue.h b/src/s1ap/asn1c/asnGenFiles/UEIdentityIndexValue.h
new file mode 100644
index 0000000..a38565f
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UEIdentityIndexValue.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UEIdentityIndexValue_H_
+#define _UEIdentityIndexValue_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UEIdentityIndexValue */
+typedef BIT_STRING_t UEIdentityIndexValue_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_UEIdentityIndexValue_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_UEIdentityIndexValue;
+asn_struct_free_f UEIdentityIndexValue_free;
+asn_struct_print_f UEIdentityIndexValue_print;
+asn_constr_check_f UEIdentityIndexValue_constraint;
+ber_type_decoder_f UEIdentityIndexValue_decode_ber;
+der_type_encoder_f UEIdentityIndexValue_encode_der;
+xer_type_decoder_f UEIdentityIndexValue_decode_xer;
+xer_type_encoder_f UEIdentityIndexValue_encode_xer;
+oer_type_decoder_f UEIdentityIndexValue_decode_oer;
+oer_type_encoder_f UEIdentityIndexValue_encode_oer;
+per_type_decoder_f UEIdentityIndexValue_decode_uper;
+per_type_encoder_f UEIdentityIndexValue_encode_uper;
+per_type_decoder_f UEIdentityIndexValue_decode_aper;
+per_type_encoder_f UEIdentityIndexValue_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UEIdentityIndexValue_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UEInformationTransfer.h b/src/s1ap/asn1c/asnGenFiles/UEInformationTransfer.h
new file mode 100644
index 0000000..4850cc4
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UEInformationTransfer.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UEInformationTransfer_H_
+#define _UEInformationTransfer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UEInformationTransfer */
+typedef struct UEInformationTransfer {
+ ProtocolIE_Container_129P88_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UEInformationTransfer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEInformationTransfer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UEInformationTransfer_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UEPagingID.h b/src/s1ap/asn1c/asnGenFiles/UEPagingID.h
new file mode 100644
index 0000000..59d40a4
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UEPagingID.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UEPagingID_H_
+#define _UEPagingID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "IMSI.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum UEPagingID_PR {
+ UEPagingID_PR_NOTHING, /* No components present */
+ UEPagingID_PR_s_TMSI,
+ UEPagingID_PR_iMSI
+ /* Extensions may appear below */
+
+} UEPagingID_PR;
+
+/* Forward declarations */
+struct S_TMSI;
+
+/* UEPagingID */
+typedef struct UEPagingID {
+ UEPagingID_PR present;
+ union UEPagingID_u {
+ struct S_TMSI *s_TMSI;
+ IMSI_t iMSI;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UEPagingID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEPagingID;
+extern asn_CHOICE_specifics_t asn_SPC_UEPagingID_specs_1;
+extern asn_TYPE_member_t asn_MBR_UEPagingID_1[2];
+extern asn_per_constraints_t asn_PER_type_UEPagingID_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UEPagingID_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UERadioCapability.h b/src/s1ap/asn1c/asnGenFiles/UERadioCapability.h
new file mode 100644
index 0000000..92a8c4e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UERadioCapability.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UERadioCapability_H_
+#define _UERadioCapability_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UERadioCapability */
+typedef OCTET_STRING_t UERadioCapability_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UERadioCapability;
+asn_struct_free_f UERadioCapability_free;
+asn_struct_print_f UERadioCapability_print;
+asn_constr_check_f UERadioCapability_constraint;
+ber_type_decoder_f UERadioCapability_decode_ber;
+der_type_encoder_f UERadioCapability_encode_der;
+xer_type_decoder_f UERadioCapability_decode_xer;
+xer_type_encoder_f UERadioCapability_encode_xer;
+oer_type_decoder_f UERadioCapability_decode_oer;
+oer_type_encoder_f UERadioCapability_encode_oer;
+per_type_decoder_f UERadioCapability_decode_uper;
+per_type_encoder_f UERadioCapability_encode_uper;
+per_type_decoder_f UERadioCapability_decode_aper;
+per_type_encoder_f UERadioCapability_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UERadioCapability_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UERadioCapabilityForPaging.h b/src/s1ap/asn1c/asnGenFiles/UERadioCapabilityForPaging.h
new file mode 100644
index 0000000..22668d8
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UERadioCapabilityForPaging.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UERadioCapabilityForPaging_H_
+#define _UERadioCapabilityForPaging_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UERadioCapabilityForPaging */
+typedef OCTET_STRING_t UERadioCapabilityForPaging_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UERadioCapabilityForPaging;
+asn_struct_free_f UERadioCapabilityForPaging_free;
+asn_struct_print_f UERadioCapabilityForPaging_print;
+asn_constr_check_f UERadioCapabilityForPaging_constraint;
+ber_type_decoder_f UERadioCapabilityForPaging_decode_ber;
+der_type_encoder_f UERadioCapabilityForPaging_encode_der;
+xer_type_decoder_f UERadioCapabilityForPaging_decode_xer;
+xer_type_encoder_f UERadioCapabilityForPaging_encode_xer;
+oer_type_decoder_f UERadioCapabilityForPaging_decode_oer;
+oer_type_encoder_f UERadioCapabilityForPaging_encode_oer;
+per_type_decoder_f UERadioCapabilityForPaging_decode_uper;
+per_type_encoder_f UERadioCapabilityForPaging_encode_uper;
+per_type_decoder_f UERadioCapabilityForPaging_decode_aper;
+per_type_encoder_f UERadioCapabilityForPaging_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UERadioCapabilityForPaging_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UERadioCapabilityMatchRequest.h b/src/s1ap/asn1c/asnGenFiles/UERadioCapabilityMatchRequest.h
new file mode 100644
index 0000000..47f7af3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UERadioCapabilityMatchRequest.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UERadioCapabilityMatchRequest_H_
+#define _UERadioCapabilityMatchRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UERadioCapabilityMatchRequest */
+typedef struct UERadioCapabilityMatchRequest {
+ ProtocolIE_Container_129P29_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UERadioCapabilityMatchRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UERadioCapabilityMatchRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UERadioCapabilityMatchRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UERadioCapabilityMatchResponse.h b/src/s1ap/asn1c/asnGenFiles/UERadioCapabilityMatchResponse.h
new file mode 100644
index 0000000..a902253
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UERadioCapabilityMatchResponse.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UERadioCapabilityMatchResponse_H_
+#define _UERadioCapabilityMatchResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UERadioCapabilityMatchResponse */
+typedef struct UERadioCapabilityMatchResponse {
+ ProtocolIE_Container_129P30_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UERadioCapabilityMatchResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UERadioCapabilityMatchResponse;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UERadioCapabilityMatchResponse_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UESecurityCapabilities.h b/src/s1ap/asn1c/asnGenFiles/UESecurityCapabilities.h
new file mode 100644
index 0000000..94b7465
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UESecurityCapabilities.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UESecurityCapabilities_H_
+#define _UESecurityCapabilities_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "EncryptionAlgorithms.h"
+#include "IntegrityProtectionAlgorithms.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* UESecurityCapabilities */
+typedef struct UESecurityCapabilities {
+ EncryptionAlgorithms_t encryptionAlgorithms;
+ IntegrityProtectionAlgorithms_t integrityProtectionAlgorithms;
+ 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;
+} UESecurityCapabilities_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UESecurityCapabilities;
+extern asn_SEQUENCE_specifics_t asn_SPC_UESecurityCapabilities_specs_1;
+extern asn_TYPE_member_t asn_MBR_UESecurityCapabilities_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UESecurityCapabilities_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UESidelinkAggregateMaximumBitrate.h b/src/s1ap/asn1c/asnGenFiles/UESidelinkAggregateMaximumBitrate.h
new file mode 100644
index 0000000..07121d3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UESidelinkAggregateMaximumBitrate.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UESidelinkAggregateMaximumBitrate_H_
+#define _UESidelinkAggregateMaximumBitrate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "BitRate.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* UESidelinkAggregateMaximumBitrate */
+typedef struct UESidelinkAggregateMaximumBitrate {
+ BitRate_t uESidelinkAggregateMaximumBitRate;
+ 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;
+} UESidelinkAggregateMaximumBitrate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UESidelinkAggregateMaximumBitrate;
+extern asn_SEQUENCE_specifics_t asn_SPC_UESidelinkAggregateMaximumBitrate_specs_1;
+extern asn_TYPE_member_t asn_MBR_UESidelinkAggregateMaximumBitrate_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UESidelinkAggregateMaximumBitrate_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UEUserPlaneCIoTSupportIndicator.h b/src/s1ap/asn1c/asnGenFiles/UEUserPlaneCIoTSupportIndicator.h
new file mode 100644
index 0000000..d088554
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UEUserPlaneCIoTSupportIndicator.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UEUserPlaneCIoTSupportIndicator_H_
+#define _UEUserPlaneCIoTSupportIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum UEUserPlaneCIoTSupportIndicator {
+ UEUserPlaneCIoTSupportIndicator_supported = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_UEUserPlaneCIoTSupportIndicator;
+
+/* UEUserPlaneCIoTSupportIndicator */
+typedef long UEUserPlaneCIoTSupportIndicator_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_UEUserPlaneCIoTSupportIndicator_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_UEUserPlaneCIoTSupportIndicator;
+extern const asn_INTEGER_specifics_t asn_SPC_UEUserPlaneCIoTSupportIndicator_specs_1;
+asn_struct_free_f UEUserPlaneCIoTSupportIndicator_free;
+asn_struct_print_f UEUserPlaneCIoTSupportIndicator_print;
+asn_constr_check_f UEUserPlaneCIoTSupportIndicator_constraint;
+ber_type_decoder_f UEUserPlaneCIoTSupportIndicator_decode_ber;
+der_type_encoder_f UEUserPlaneCIoTSupportIndicator_encode_der;
+xer_type_decoder_f UEUserPlaneCIoTSupportIndicator_decode_xer;
+xer_type_encoder_f UEUserPlaneCIoTSupportIndicator_encode_xer;
+oer_type_decoder_f UEUserPlaneCIoTSupportIndicator_decode_oer;
+oer_type_encoder_f UEUserPlaneCIoTSupportIndicator_encode_oer;
+per_type_decoder_f UEUserPlaneCIoTSupportIndicator_decode_uper;
+per_type_encoder_f UEUserPlaneCIoTSupportIndicator_encode_uper;
+per_type_decoder_f UEUserPlaneCIoTSupportIndicator_decode_aper;
+per_type_encoder_f UEUserPlaneCIoTSupportIndicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UEUserPlaneCIoTSupportIndicator_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UL-CP-SecurityInformation.h b/src/s1ap/asn1c/asnGenFiles/UL-CP-SecurityInformation.h
new file mode 100644
index 0000000..83e6ca5
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UL-CP-SecurityInformation.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UL_CP_SecurityInformation_H_
+#define _UL_CP_SecurityInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "UL-NAS-MAC.h"
+#include "UL-NAS-Count.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* UL-CP-SecurityInformation */
+typedef struct UL_CP_SecurityInformation {
+ UL_NAS_MAC_t ul_NAS_MAC;
+ UL_NAS_Count_t ul_NAS_Count;
+ 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;
+} UL_CP_SecurityInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UL_CP_SecurityInformation;
+extern asn_SEQUENCE_specifics_t asn_SPC_UL_CP_SecurityInformation_specs_1;
+extern asn_TYPE_member_t asn_MBR_UL_CP_SecurityInformation_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UL_CP_SecurityInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UL-NAS-Count.h b/src/s1ap/asn1c/asnGenFiles/UL-NAS-Count.h
new file mode 100644
index 0000000..34af7ab
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UL-NAS-Count.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UL_NAS_Count_H_
+#define _UL_NAS_Count_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UL-NAS-Count */
+typedef BIT_STRING_t UL_NAS_Count_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_UL_NAS_Count_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_UL_NAS_Count;
+asn_struct_free_f UL_NAS_Count_free;
+asn_struct_print_f UL_NAS_Count_print;
+asn_constr_check_f UL_NAS_Count_constraint;
+ber_type_decoder_f UL_NAS_Count_decode_ber;
+der_type_encoder_f UL_NAS_Count_encode_der;
+xer_type_decoder_f UL_NAS_Count_decode_xer;
+xer_type_encoder_f UL_NAS_Count_encode_xer;
+oer_type_decoder_f UL_NAS_Count_decode_oer;
+oer_type_encoder_f UL_NAS_Count_encode_oer;
+per_type_decoder_f UL_NAS_Count_decode_uper;
+per_type_encoder_f UL_NAS_Count_encode_uper;
+per_type_decoder_f UL_NAS_Count_decode_aper;
+per_type_encoder_f UL_NAS_Count_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UL_NAS_Count_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UL-NAS-MAC.h b/src/s1ap/asn1c/asnGenFiles/UL-NAS-MAC.h
new file mode 100644
index 0000000..80b61c3
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UL-NAS-MAC.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UL_NAS_MAC_H_
+#define _UL_NAS_MAC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UL-NAS-MAC */
+typedef BIT_STRING_t UL_NAS_MAC_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_UL_NAS_MAC_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_UL_NAS_MAC;
+asn_struct_free_f UL_NAS_MAC_free;
+asn_struct_print_f UL_NAS_MAC_print;
+asn_constr_check_f UL_NAS_MAC_constraint;
+ber_type_decoder_f UL_NAS_MAC_decode_ber;
+der_type_encoder_f UL_NAS_MAC_encode_der;
+xer_type_decoder_f UL_NAS_MAC_decode_xer;
+xer_type_encoder_f UL_NAS_MAC_encode_xer;
+oer_type_decoder_f UL_NAS_MAC_decode_oer;
+oer_type_encoder_f UL_NAS_MAC_encode_oer;
+per_type_decoder_f UL_NAS_MAC_decode_uper;
+per_type_encoder_f UL_NAS_MAC_encode_uper;
+per_type_decoder_f UL_NAS_MAC_decode_aper;
+per_type_encoder_f UL_NAS_MAC_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UL_NAS_MAC_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UnlicensedSpectrumRestriction.h b/src/s1ap/asn1c/asnGenFiles/UnlicensedSpectrumRestriction.h
new file mode 100644
index 0000000..d1b593c
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UnlicensedSpectrumRestriction.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UnlicensedSpectrumRestriction_H_
+#define _UnlicensedSpectrumRestriction_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum UnlicensedSpectrumRestriction {
+ UnlicensedSpectrumRestriction_unlicensed_restricted = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_UnlicensedSpectrumRestriction;
+
+/* UnlicensedSpectrumRestriction */
+typedef long UnlicensedSpectrumRestriction_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_UnlicensedSpectrumRestriction_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_UnlicensedSpectrumRestriction;
+extern const asn_INTEGER_specifics_t asn_SPC_UnlicensedSpectrumRestriction_specs_1;
+asn_struct_free_f UnlicensedSpectrumRestriction_free;
+asn_struct_print_f UnlicensedSpectrumRestriction_print;
+asn_constr_check_f UnlicensedSpectrumRestriction_constraint;
+ber_type_decoder_f UnlicensedSpectrumRestriction_decode_ber;
+der_type_encoder_f UnlicensedSpectrumRestriction_encode_der;
+xer_type_decoder_f UnlicensedSpectrumRestriction_decode_xer;
+xer_type_encoder_f UnlicensedSpectrumRestriction_encode_xer;
+oer_type_decoder_f UnlicensedSpectrumRestriction_decode_oer;
+oer_type_encoder_f UnlicensedSpectrumRestriction_encode_oer;
+per_type_decoder_f UnlicensedSpectrumRestriction_decode_uper;
+per_type_encoder_f UnlicensedSpectrumRestriction_encode_uper;
+per_type_decoder_f UnlicensedSpectrumRestriction_decode_aper;
+per_type_encoder_f UnlicensedSpectrumRestriction_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UnlicensedSpectrumRestriction_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UnsuccessfulOutcome.h b/src/s1ap/asn1c/asnGenFiles/UnsuccessfulOutcome.h
new file mode 100644
index 0000000..374f723
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UnsuccessfulOutcome.h
@@ -0,0 +1,170 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Descriptions"
+ * found in "./asn1c/S1AP-PDU-Descriptions.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UnsuccessfulOutcome_H_
+#define _UnsuccessfulOutcome_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProcedureCode.h"
+#include "Criticality.h"
+#include <ANY.h>
+#include <asn_ioc.h>
+#include "HandoverRequired.h"
+#include "HandoverCommand.h"
+#include "HandoverPreparationFailure.h"
+#include "HandoverRequest.h"
+#include "HandoverRequestAcknowledge.h"
+#include "HandoverFailure.h"
+#include "PathSwitchRequest.h"
+#include "PathSwitchRequestAcknowledge.h"
+#include "PathSwitchRequestFailure.h"
+#include "E-RABSetupRequest.h"
+#include "E-RABSetupResponse.h"
+#include "E-RABModifyRequest.h"
+#include "E-RABModifyResponse.h"
+#include "E-RABReleaseCommand.h"
+#include "E-RABReleaseResponse.h"
+#include "InitialContextSetupRequest.h"
+#include "InitialContextSetupResponse.h"
+#include "InitialContextSetupFailure.h"
+#include "HandoverCancel.h"
+#include "HandoverCancelAcknowledge.h"
+#include "KillRequest.h"
+#include "KillResponse.h"
+#include "Reset.h"
+#include "ResetAcknowledge.h"
+#include "S1SetupRequest.h"
+#include "S1SetupResponse.h"
+#include "S1SetupFailure.h"
+#include "UEContextModificationRequest.h"
+#include "UEContextModificationResponse.h"
+#include "UEContextModificationFailure.h"
+#include "UEContextReleaseCommand.h"
+#include "UEContextReleaseComplete.h"
+#include "ENBConfigurationUpdate.h"
+#include "ENBConfigurationUpdateAcknowledge.h"
+#include "ENBConfigurationUpdateFailure.h"
+#include "MMEConfigurationUpdate.h"
+#include "MMEConfigurationUpdateAcknowledge.h"
+#include "MMEConfigurationUpdateFailure.h"
+#include "WriteReplaceWarningRequest.h"
+#include "WriteReplaceWarningResponse.h"
+#include "UERadioCapabilityMatchRequest.h"
+#include "UERadioCapabilityMatchResponse.h"
+#include "E-RABModificationIndication.h"
+#include "E-RABModificationConfirm.h"
+#include "UEContextModificationIndication.h"
+#include "UEContextModificationConfirm.h"
+#include "UEContextSuspendRequest.h"
+#include "UEContextSuspendResponse.h"
+#include "UEContextResumeRequest.h"
+#include "UEContextResumeResponse.h"
+#include "UEContextResumeFailure.h"
+#include "HandoverNotify.h"
+#include "E-RABReleaseIndication.h"
+#include "Paging.h"
+#include "DownlinkNASTransport.h"
+#include "InitialUEMessage.h"
+#include "UplinkNASTransport.h"
+#include "ErrorIndication.h"
+#include "NASNonDeliveryIndication.h"
+#include "UEContextReleaseRequest.h"
+#include "DownlinkS1cdma2000tunnelling.h"
+#include "UplinkS1cdma2000tunnelling.h"
+#include "UECapabilityInfoIndication.h"
+#include "ENBStatusTransfer.h"
+#include "MMEStatusTransfer.h"
+#include "DeactivateTrace.h"
+#include "TraceStart.h"
+#include "TraceFailureIndication.h"
+#include "CellTrafficTrace.h"
+#include "LocationReportingControl.h"
+#include "LocationReportingFailureIndication.h"
+#include "LocationReport.h"
+#include "OverloadStart.h"
+#include "OverloadStop.h"
+#include "ENBDirectInformationTransfer.h"
+#include "MMEDirectInformationTransfer.h"
+#include "ENBConfigurationTransfer.h"
+#include "MMEConfigurationTransfer.h"
+#include "PrivateMessage.h"
+#include "DownlinkUEAssociatedLPPaTransport.h"
+#include "UplinkUEAssociatedLPPaTransport.h"
+#include "DownlinkNonUEAssociatedLPPaTransport.h"
+#include "UplinkNonUEAssociatedLPPaTransport.h"
+#include "PWSRestartIndication.h"
+#include "RerouteNASRequest.h"
+#include "PWSFailureIndication.h"
+#include "ConnectionEstablishmentIndication.h"
+#include "NASDeliveryIndication.h"
+#include "RetrieveUEInformation.h"
+#include "UEInformationTransfer.h"
+#include "ENBCPRelocationIndication.h"
+#include "MMECPRelocationIndication.h"
+#include "SecondaryRATDataUsageReport.h"
+#include <OPEN_TYPE.h>
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum UnsuccessfulOutcome__value_PR {
+ UnsuccessfulOutcome__value_PR_NOTHING, /* No components present */
+ UnsuccessfulOutcome__value_PR_HandoverPreparationFailure,
+ UnsuccessfulOutcome__value_PR_HandoverFailure,
+ UnsuccessfulOutcome__value_PR_PathSwitchRequestFailure,
+ UnsuccessfulOutcome__value_PR_InitialContextSetupFailure,
+ UnsuccessfulOutcome__value_PR_S1SetupFailure,
+ UnsuccessfulOutcome__value_PR_UEContextModificationFailure,
+ UnsuccessfulOutcome__value_PR_ENBConfigurationUpdateFailure,
+ UnsuccessfulOutcome__value_PR_MMEConfigurationUpdateFailure,
+ UnsuccessfulOutcome__value_PR_UEContextResumeFailure
+} UnsuccessfulOutcome__value_PR;
+
+/* UnsuccessfulOutcome */
+typedef struct UnsuccessfulOutcome {
+ ProcedureCode_t procedureCode;
+ Criticality_t criticality;
+ struct UnsuccessfulOutcome__value {
+ UnsuccessfulOutcome__value_PR present;
+ union UnsuccessfulOutcome__value_u {
+ HandoverPreparationFailure_t HandoverPreparationFailure;
+ HandoverFailure_t HandoverFailure;
+ PathSwitchRequestFailure_t PathSwitchRequestFailure;
+ InitialContextSetupFailure_t InitialContextSetupFailure;
+ S1SetupFailure_t S1SetupFailure;
+ UEContextModificationFailure_t UEContextModificationFailure;
+ ENBConfigurationUpdateFailure_t ENBConfigurationUpdateFailure;
+ MMEConfigurationUpdateFailure_t MMEConfigurationUpdateFailure;
+ UEContextResumeFailure_t UEContextResumeFailure;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UnsuccessfulOutcome_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UnsuccessfulOutcome;
+extern asn_SEQUENCE_specifics_t asn_SPC_UnsuccessfulOutcome_specs_1;
+extern asn_TYPE_member_t asn_MBR_UnsuccessfulOutcome_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UnsuccessfulOutcome_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UplinkNASTransport.h b/src/s1ap/asn1c/asnGenFiles/UplinkNASTransport.h
new file mode 100644
index 0000000..6a18a16
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UplinkNASTransport.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UplinkNASTransport_H_
+#define _UplinkNASTransport_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UplinkNASTransport */
+typedef struct UplinkNASTransport {
+ ProtocolIE_Container_129P33_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UplinkNASTransport_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UplinkNASTransport;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UplinkNASTransport_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UplinkNonUEAssociatedLPPaTransport.h b/src/s1ap/asn1c/asnGenFiles/UplinkNonUEAssociatedLPPaTransport.h
new file mode 100644
index 0000000..2137e4e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UplinkNonUEAssociatedLPPaTransport.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UplinkNonUEAssociatedLPPaTransport_H_
+#define _UplinkNonUEAssociatedLPPaTransport_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UplinkNonUEAssociatedLPPaTransport */
+typedef struct UplinkNonUEAssociatedLPPaTransport {
+ ProtocolIE_Container_129P76_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UplinkNonUEAssociatedLPPaTransport_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UplinkNonUEAssociatedLPPaTransport;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UplinkNonUEAssociatedLPPaTransport_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UplinkS1cdma2000tunnelling.h b/src/s1ap/asn1c/asnGenFiles/UplinkS1cdma2000tunnelling.h
new file mode 100644
index 0000000..0155ad8
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UplinkS1cdma2000tunnelling.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UplinkS1cdma2000tunnelling_H_
+#define _UplinkS1cdma2000tunnelling_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UplinkS1cdma2000tunnelling */
+typedef struct UplinkS1cdma2000tunnelling {
+ ProtocolIE_Container_129P50_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UplinkS1cdma2000tunnelling_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UplinkS1cdma2000tunnelling;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UplinkS1cdma2000tunnelling_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UplinkUEAssociatedLPPaTransport.h b/src/s1ap/asn1c/asnGenFiles/UplinkUEAssociatedLPPaTransport.h
new file mode 100644
index 0000000..1ad3d28
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UplinkUEAssociatedLPPaTransport.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UplinkUEAssociatedLPPaTransport_H_
+#define _UplinkUEAssociatedLPPaTransport_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UplinkUEAssociatedLPPaTransport */
+typedef struct UplinkUEAssociatedLPPaTransport {
+ ProtocolIE_Container_129P74_t protocolIEs;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} UplinkUEAssociatedLPPaTransport_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UplinkUEAssociatedLPPaTransport;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UplinkUEAssociatedLPPaTransport_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/UserLocationInformation.h b/src/s1ap/asn1c/asnGenFiles/UserLocationInformation.h
new file mode 100644
index 0000000..81ff149
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/UserLocationInformation.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _UserLocationInformation_H_
+#define _UserLocationInformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "EUTRAN-CGI.h"
+#include "TAI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* UserLocationInformation */
+typedef struct UserLocationInformation {
+ EUTRAN_CGI_t eutran_cgi;
+ TAI_t tai;
+ 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;
+} UserLocationInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UserLocationInformation;
+extern asn_SEQUENCE_specifics_t asn_SPC_UserLocationInformation_specs_1;
+extern asn_TYPE_member_t asn_MBR_UserLocationInformation_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UserLocationInformation_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/V2XServicesAuthorized.h b/src/s1ap/asn1c/asnGenFiles/V2XServicesAuthorized.h
new file mode 100644
index 0000000..875b384
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/V2XServicesAuthorized.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _V2XServicesAuthorized_H_
+#define _V2XServicesAuthorized_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "VehicleUE.h"
+#include "PedestrianUE.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* V2XServicesAuthorized */
+typedef struct V2XServicesAuthorized {
+ VehicleUE_t *vehicleUE; /* OPTIONAL */
+ PedestrianUE_t *pedestrianUE; /* 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;
+} V2XServicesAuthorized_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_V2XServicesAuthorized;
+extern asn_SEQUENCE_specifics_t asn_SPC_V2XServicesAuthorized_specs_1;
+extern asn_TYPE_member_t asn_MBR_V2XServicesAuthorized_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _V2XServicesAuthorized_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/VehicleUE.h b/src/s1ap/asn1c/asnGenFiles/VehicleUE.h
new file mode 100644
index 0000000..bfe3da0
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/VehicleUE.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _VehicleUE_H_
+#define _VehicleUE_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum VehicleUE {
+ VehicleUE_authorized = 0,
+ VehicleUE_not_authorized = 1
+ /*
+ * Enumeration is extensible
+ */
+} e_VehicleUE;
+
+/* VehicleUE */
+typedef long VehicleUE_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_VehicleUE_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_VehicleUE;
+extern const asn_INTEGER_specifics_t asn_SPC_VehicleUE_specs_1;
+asn_struct_free_f VehicleUE_free;
+asn_struct_print_f VehicleUE_print;
+asn_constr_check_f VehicleUE_constraint;
+ber_type_decoder_f VehicleUE_decode_ber;
+der_type_encoder_f VehicleUE_encode_der;
+xer_type_decoder_f VehicleUE_decode_xer;
+xer_type_encoder_f VehicleUE_encode_xer;
+oer_type_decoder_f VehicleUE_decode_oer;
+oer_type_encoder_f VehicleUE_encode_oer;
+per_type_decoder_f VehicleUE_decode_uper;
+per_type_encoder_f VehicleUE_encode_uper;
+per_type_decoder_f VehicleUE_decode_aper;
+per_type_encoder_f VehicleUE_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _VehicleUE_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/VoiceSupportMatchIndicator.h b/src/s1ap/asn1c/asnGenFiles/VoiceSupportMatchIndicator.h
new file mode 100644
index 0000000..495c4b5
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/VoiceSupportMatchIndicator.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _VoiceSupportMatchIndicator_H_
+#define _VoiceSupportMatchIndicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum VoiceSupportMatchIndicator {
+ VoiceSupportMatchIndicator_supported = 0,
+ VoiceSupportMatchIndicator_not_supported = 1
+ /*
+ * Enumeration is extensible
+ */
+} e_VoiceSupportMatchIndicator;
+
+/* VoiceSupportMatchIndicator */
+typedef long VoiceSupportMatchIndicator_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_VoiceSupportMatchIndicator_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_VoiceSupportMatchIndicator;
+extern const asn_INTEGER_specifics_t asn_SPC_VoiceSupportMatchIndicator_specs_1;
+asn_struct_free_f VoiceSupportMatchIndicator_free;
+asn_struct_print_f VoiceSupportMatchIndicator_print;
+asn_constr_check_f VoiceSupportMatchIndicator_constraint;
+ber_type_decoder_f VoiceSupportMatchIndicator_decode_ber;
+der_type_encoder_f VoiceSupportMatchIndicator_encode_der;
+xer_type_decoder_f VoiceSupportMatchIndicator_decode_xer;
+xer_type_encoder_f VoiceSupportMatchIndicator_encode_xer;
+oer_type_decoder_f VoiceSupportMatchIndicator_decode_oer;
+oer_type_encoder_f VoiceSupportMatchIndicator_encode_oer;
+per_type_decoder_f VoiceSupportMatchIndicator_decode_uper;
+per_type_encoder_f VoiceSupportMatchIndicator_encode_uper;
+per_type_decoder_f VoiceSupportMatchIndicator_decode_aper;
+per_type_encoder_f VoiceSupportMatchIndicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _VoiceSupportMatchIndicator_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/WLANMeasConfig.h b/src/s1ap/asn1c/asnGenFiles/WLANMeasConfig.h
new file mode 100644
index 0000000..3bbd352
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/WLANMeasConfig.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _WLANMeasConfig_H_
+#define _WLANMeasConfig_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum WLANMeasConfig {
+ WLANMeasConfig_setup = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_WLANMeasConfig;
+
+/* WLANMeasConfig */
+typedef long WLANMeasConfig_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_WLANMeasConfig_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_WLANMeasConfig;
+extern const asn_INTEGER_specifics_t asn_SPC_WLANMeasConfig_specs_1;
+asn_struct_free_f WLANMeasConfig_free;
+asn_struct_print_f WLANMeasConfig_print;
+asn_constr_check_f WLANMeasConfig_constraint;
+ber_type_decoder_f WLANMeasConfig_decode_ber;
+der_type_encoder_f WLANMeasConfig_encode_der;
+xer_type_decoder_f WLANMeasConfig_decode_xer;
+xer_type_encoder_f WLANMeasConfig_encode_xer;
+oer_type_decoder_f WLANMeasConfig_decode_oer;
+oer_type_encoder_f WLANMeasConfig_encode_oer;
+per_type_decoder_f WLANMeasConfig_decode_uper;
+per_type_encoder_f WLANMeasConfig_encode_uper;
+per_type_decoder_f WLANMeasConfig_decode_aper;
+per_type_encoder_f WLANMeasConfig_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _WLANMeasConfig_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/WLANMeasConfigNameList.h b/src/s1ap/asn1c/asnGenFiles/WLANMeasConfigNameList.h
new file mode 100644
index 0000000..69bf76b
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/WLANMeasConfigNameList.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _WLANMeasConfigNameList_H_
+#define _WLANMeasConfigNameList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "WLANName.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* WLANMeasConfigNameList */
+typedef struct WLANMeasConfigNameList {
+ A_SEQUENCE_OF(WLANName_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} WLANMeasConfigNameList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_WLANMeasConfigNameList;
+extern asn_SET_OF_specifics_t asn_SPC_WLANMeasConfigNameList_specs_1;
+extern asn_TYPE_member_t asn_MBR_WLANMeasConfigNameList_1[1];
+extern asn_per_constraints_t asn_PER_type_WLANMeasConfigNameList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _WLANMeasConfigNameList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/WLANMeasurementConfiguration.h b/src/s1ap/asn1c/asnGenFiles/WLANMeasurementConfiguration.h
new file mode 100644
index 0000000..e0d9406
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/WLANMeasurementConfiguration.h
@@ -0,0 +1,69 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _WLANMeasurementConfiguration_H_
+#define _WLANMeasurementConfiguration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "WLANMeasConfig.h"
+#include <NativeEnumerated.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum WLANMeasurementConfiguration__wlan_rssi {
+ WLANMeasurementConfiguration__wlan_rssi_true = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_WLANMeasurementConfiguration__wlan_rssi;
+typedef enum WLANMeasurementConfiguration__wlan_rtt {
+ WLANMeasurementConfiguration__wlan_rtt_true = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_WLANMeasurementConfiguration__wlan_rtt;
+
+/* Forward declarations */
+struct WLANMeasConfigNameList;
+struct ProtocolExtensionContainer;
+
+/* WLANMeasurementConfiguration */
+typedef struct WLANMeasurementConfiguration {
+ WLANMeasConfig_t wlanMeasConfig;
+ struct WLANMeasConfigNameList *wlanMeasConfigNameList; /* OPTIONAL */
+ long *wlan_rssi; /* OPTIONAL */
+ long *wlan_rtt; /* 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;
+} WLANMeasurementConfiguration_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_wlan_rssi_4; // (Use -fall-defs-global to expose) */
+/* extern asn_TYPE_descriptor_t asn_DEF_wlan_rtt_7; // (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_WLANMeasurementConfiguration;
+extern asn_SEQUENCE_specifics_t asn_SPC_WLANMeasurementConfiguration_specs_1;
+extern asn_TYPE_member_t asn_MBR_WLANMeasurementConfiguration_1[5];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _WLANMeasurementConfiguration_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/WLANName.h b/src/s1ap/asn1c/asnGenFiles/WLANName.h
new file mode 100644
index 0000000..d0d7d29
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/WLANName.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _WLANName_H_
+#define _WLANName_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* WLANName */
+typedef OCTET_STRING_t WLANName_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_WLANName_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_WLANName;
+asn_struct_free_f WLANName_free;
+asn_struct_print_f WLANName_print;
+asn_constr_check_f WLANName_constraint;
+ber_type_decoder_f WLANName_decode_ber;
+der_type_encoder_f WLANName_encode_der;
+xer_type_decoder_f WLANName_decode_xer;
+xer_type_encoder_f WLANName_encode_xer;
+oer_type_decoder_f WLANName_decode_oer;
+oer_type_encoder_f WLANName_encode_oer;
+per_type_decoder_f WLANName_decode_uper;
+per_type_encoder_f WLANName_encode_uper;
+per_type_decoder_f WLANName_decode_aper;
+per_type_encoder_f WLANName_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _WLANName_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/WarningAreaCoordinates.h b/src/s1ap/asn1c/asnGenFiles/WarningAreaCoordinates.h
new file mode 100644
index 0000000..5af624a
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/WarningAreaCoordinates.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _WarningAreaCoordinates_H_
+#define _WarningAreaCoordinates_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* WarningAreaCoordinates */
+typedef OCTET_STRING_t WarningAreaCoordinates_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_WarningAreaCoordinates_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_WarningAreaCoordinates;
+asn_struct_free_f WarningAreaCoordinates_free;
+asn_struct_print_f WarningAreaCoordinates_print;
+asn_constr_check_f WarningAreaCoordinates_constraint;
+ber_type_decoder_f WarningAreaCoordinates_decode_ber;
+der_type_encoder_f WarningAreaCoordinates_encode_der;
+xer_type_decoder_f WarningAreaCoordinates_decode_xer;
+xer_type_encoder_f WarningAreaCoordinates_encode_xer;
+oer_type_decoder_f WarningAreaCoordinates_decode_oer;
+oer_type_encoder_f WarningAreaCoordinates_encode_oer;
+per_type_decoder_f WarningAreaCoordinates_decode_uper;
+per_type_encoder_f WarningAreaCoordinates_encode_uper;
+per_type_decoder_f WarningAreaCoordinates_decode_aper;
+per_type_encoder_f WarningAreaCoordinates_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _WarningAreaCoordinates_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/WarningAreaList.h b/src/s1ap/asn1c/asnGenFiles/WarningAreaList.h
new file mode 100644
index 0000000..276a89c
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/WarningAreaList.h
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _WarningAreaList_H_
+#define _WarningAreaList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum WarningAreaList_PR {
+ WarningAreaList_PR_NOTHING, /* No components present */
+ WarningAreaList_PR_cellIDList,
+ WarningAreaList_PR_trackingAreaListforWarning,
+ WarningAreaList_PR_emergencyAreaIDList
+ /* Extensions may appear below */
+
+} WarningAreaList_PR;
+
+/* Forward declarations */
+struct ECGIList;
+struct TAIListforWarning;
+struct EmergencyAreaIDList;
+
+/* WarningAreaList */
+typedef struct WarningAreaList {
+ WarningAreaList_PR present;
+ union WarningAreaList_u {
+ struct ECGIList *cellIDList;
+ struct TAIListforWarning *trackingAreaListforWarning;
+ struct EmergencyAreaIDList *emergencyAreaIDList;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} WarningAreaList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_WarningAreaList;
+extern asn_CHOICE_specifics_t asn_SPC_WarningAreaList_specs_1;
+extern asn_TYPE_member_t asn_MBR_WarningAreaList_1[3];
+extern asn_per_constraints_t asn_PER_type_WarningAreaList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _WarningAreaList_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/WarningMessageContents.h b/src/s1ap/asn1c/asnGenFiles/WarningMessageContents.h
new file mode 100644
index 0000000..2a6c3e4
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/WarningMessageContents.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _WarningMessageContents_H_
+#define _WarningMessageContents_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* WarningMessageContents */
+typedef OCTET_STRING_t WarningMessageContents_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_WarningMessageContents_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_WarningMessageContents;
+asn_struct_free_f WarningMessageContents_free;
+asn_struct_print_f WarningMessageContents_print;
+asn_constr_check_f WarningMessageContents_constraint;
+ber_type_decoder_f WarningMessageContents_decode_ber;
+der_type_encoder_f WarningMessageContents_encode_der;
+xer_type_decoder_f WarningMessageContents_decode_xer;
+xer_type_encoder_f WarningMessageContents_encode_xer;
+oer_type_decoder_f WarningMessageContents_decode_oer;
+oer_type_encoder_f WarningMessageContents_encode_oer;
+per_type_decoder_f WarningMessageContents_decode_uper;
+per_type_encoder_f WarningMessageContents_encode_uper;
+per_type_decoder_f WarningMessageContents_decode_aper;
+per_type_encoder_f WarningMessageContents_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _WarningMessageContents_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/WarningSecurityInfo.h b/src/s1ap/asn1c/asnGenFiles/WarningSecurityInfo.h
new file mode 100644
index 0000000..ec42845
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/WarningSecurityInfo.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _WarningSecurityInfo_H_
+#define _WarningSecurityInfo_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* WarningSecurityInfo */
+typedef OCTET_STRING_t WarningSecurityInfo_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_WarningSecurityInfo_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_WarningSecurityInfo;
+asn_struct_free_f WarningSecurityInfo_free;
+asn_struct_print_f WarningSecurityInfo_print;
+asn_constr_check_f WarningSecurityInfo_constraint;
+ber_type_decoder_f WarningSecurityInfo_decode_ber;
+der_type_encoder_f WarningSecurityInfo_encode_der;
+xer_type_decoder_f WarningSecurityInfo_decode_xer;
+xer_type_encoder_f WarningSecurityInfo_encode_xer;
+oer_type_decoder_f WarningSecurityInfo_decode_oer;
+oer_type_encoder_f WarningSecurityInfo_encode_oer;
+per_type_decoder_f WarningSecurityInfo_decode_uper;
+per_type_encoder_f WarningSecurityInfo_encode_uper;
+per_type_decoder_f WarningSecurityInfo_decode_aper;
+per_type_encoder_f WarningSecurityInfo_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _WarningSecurityInfo_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/WarningType.h b/src/s1ap/asn1c/asnGenFiles/WarningType.h
new file mode 100644
index 0000000..4fe2292
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/WarningType.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _WarningType_H_
+#define _WarningType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* WarningType */
+typedef OCTET_STRING_t WarningType_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_WarningType_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_WarningType;
+asn_struct_free_f WarningType_free;
+asn_struct_print_f WarningType_print;
+asn_constr_check_f WarningType_constraint;
+ber_type_decoder_f WarningType_decode_ber;
+der_type_encoder_f WarningType_encode_der;
+xer_type_decoder_f WarningType_decode_xer;
+xer_type_encoder_f WarningType_encode_xer;
+oer_type_decoder_f WarningType_decode_oer;
+oer_type_encoder_f WarningType_encode_oer;
+per_type_decoder_f WarningType_decode_uper;
+per_type_encoder_f WarningType_encode_uper;
+per_type_decoder_f WarningType_decode_aper;
+per_type_encoder_f WarningType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _WarningType_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/WriteReplaceWarningRequest.h b/src/s1ap/asn1c/asnGenFiles/WriteReplaceWarningRequest.h
new file mode 100644
index 0000000..fc454df
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/WriteReplaceWarningRequest.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _WriteReplaceWarningRequest_H_
+#define _WriteReplaceWarningRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* WriteReplaceWarningRequest */
+typedef struct WriteReplaceWarningRequest {
+ ProtocolIE_Container_129P63_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;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _WriteReplaceWarningRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/WriteReplaceWarningResponse.h b/src/s1ap/asn1c/asnGenFiles/WriteReplaceWarningResponse.h
new file mode 100644
index 0000000..5816b20
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/WriteReplaceWarningResponse.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-PDU-Contents"
+ * found in "./asn1c/S1AP-PDU-Contents.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _WriteReplaceWarningResponse_H_
+#define _WriteReplaceWarningResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* WriteReplaceWarningResponse */
+typedef struct WriteReplaceWarningResponse {
+ ProtocolIE_Container_129P64_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;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _WriteReplaceWarningResponse_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/X2TNLConfigurationInfo.h b/src/s1ap/asn1c/asnGenFiles/X2TNLConfigurationInfo.h
new file mode 100644
index 0000000..0c6cc80
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/X2TNLConfigurationInfo.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "S1AP-IEs"
+ * found in "./asn1c/S1AP-IEs.asn"
+ * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
+ */
+
+#ifndef _X2TNLConfigurationInfo_H_
+#define _X2TNLConfigurationInfo_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ENBX2TLAs.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolExtensionContainer;
+
+/* X2TNLConfigurationInfo */
+typedef struct X2TNLConfigurationInfo {
+ ENBX2TLAs_t eNBX2TransportLayerAddresses;
+ 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;
+} X2TNLConfigurationInfo_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_X2TNLConfigurationInfo;
+extern asn_SEQUENCE_specifics_t asn_SPC_X2TNLConfigurationInfo_specs_1;
+extern asn_TYPE_member_t asn_MBR_X2TNLConfigurationInfo_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _X2TNLConfigurationInfo_H_ */
+#include <asn_internal.h>
diff --git a/src/s1ap/asn1c/asnGenFiles/asn1c/S1AP-CommonDataTypes.asn b/src/s1ap/asn1c/asnGenFiles/asn1c/S1AP-CommonDataTypes.asn
new file mode 100644
index 0000000..bd44dff
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/asn1c/S1AP-CommonDataTypes.asn
@@ -0,0 +1,32 @@
+-- **************************************************************
+--
+-- Coommon definitions
+--
+-- **************************************************************
+
+S1AP-CommonDataTypes {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-CommonDataTypes (3) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+Criticality ::= ENUMERATED { reject, ignore, notify }
+
+Presence ::= ENUMERATED { optional, conditional, mandatory }
+
+PrivateIE-ID ::= CHOICE {
+ local INTEGER (0..65535),
+ global OBJECT IDENTIFIER
+}
+
+ProcedureCode ::= INTEGER (0..255)
+
+ProtocolExtensionID ::= INTEGER (0..65535)
+
+ProtocolIE-ID ::= INTEGER (0..65535)
+
+TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome }
+
+END
diff --git a/src/s1ap/asn1c/asnGenFiles/asn1c/S1AP-Constants.asn b/src/s1ap/asn1c/asnGenFiles/asn1c/S1AP-Constants.asn
new file mode 100644
index 0000000..89a60ec
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/asn1c/S1AP-Constants.asn
@@ -0,0 +1,445 @@
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+S1AP-Constants {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Constants (4) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ ProcedureCode,
+ ProtocolIE-ID
+
+FROM S1AP-CommonDataTypes;
+
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-HandoverPreparation ProcedureCode ::= 0
+id-HandoverResourceAllocation ProcedureCode ::= 1
+id-HandoverNotification ProcedureCode ::= 2
+id-PathSwitchRequest ProcedureCode ::= 3
+id-HandoverCancel ProcedureCode ::= 4
+id-E-RABSetup ProcedureCode ::= 5
+id-E-RABModify ProcedureCode ::= 6
+id-E-RABRelease ProcedureCode ::= 7
+id-E-RABReleaseIndication ProcedureCode ::= 8
+id-InitialContextSetup ProcedureCode ::= 9
+id-Paging ProcedureCode ::= 10
+id-downlinkNASTransport ProcedureCode ::= 11
+id-initialUEMessage ProcedureCode ::= 12
+id-uplinkNASTransport ProcedureCode ::= 13
+id-Reset ProcedureCode ::= 14
+id-ErrorIndication ProcedureCode ::= 15
+id-NASNonDeliveryIndication ProcedureCode ::= 16
+id-S1Setup ProcedureCode ::= 17
+id-UEContextReleaseRequest ProcedureCode ::= 18
+id-DownlinkS1cdma2000tunnelling ProcedureCode ::= 19
+id-UplinkS1cdma2000tunnelling ProcedureCode ::= 20
+id-UEContextModification ProcedureCode ::= 21
+id-UECapabilityInfoIndication ProcedureCode ::= 22
+id-UEContextRelease ProcedureCode ::= 23
+id-eNBStatusTransfer ProcedureCode ::= 24
+id-MMEStatusTransfer ProcedureCode ::= 25
+id-DeactivateTrace ProcedureCode ::= 26
+id-TraceStart ProcedureCode ::= 27
+id-TraceFailureIndication ProcedureCode ::= 28
+id-ENBConfigurationUpdate ProcedureCode ::= 29
+id-MMEConfigurationUpdate ProcedureCode ::= 30
+id-LocationReportingControl ProcedureCode ::= 31
+id-LocationReportingFailureIndication ProcedureCode ::= 32
+id-LocationReport ProcedureCode ::= 33
+id-OverloadStart ProcedureCode ::= 34
+id-OverloadStop ProcedureCode ::= 35
+id-WriteReplaceWarning ProcedureCode ::= 36
+id-eNBDirectInformationTransfer ProcedureCode ::= 37
+id-MMEDirectInformationTransfer ProcedureCode ::= 38
+id-PrivateMessage ProcedureCode ::= 39
+id-eNBConfigurationTransfer ProcedureCode ::= 40
+id-MMEConfigurationTransfer ProcedureCode ::= 41
+id-CellTrafficTrace ProcedureCode ::= 42
+id-Kill ProcedureCode ::= 43
+id-downlinkUEAssociatedLPPaTransport ProcedureCode ::= 44
+id-uplinkUEAssociatedLPPaTransport ProcedureCode ::= 45
+id-downlinkNonUEAssociatedLPPaTransport ProcedureCode ::= 46
+id-uplinkNonUEAssociatedLPPaTransport ProcedureCode ::= 47
+id-UERadioCapabilityMatch ProcedureCode ::= 48
+id-PWSRestartIndication ProcedureCode ::= 49
+id-E-RABModificationIndication ProcedureCode ::= 50
+id-PWSFailureIndication ProcedureCode ::= 51
+id-RerouteNASRequest ProcedureCode ::= 52
+id-UEContextModificationIndication ProcedureCode ::= 53
+id-ConnectionEstablishmentIndication ProcedureCode ::= 54
+id-UEContextSuspend ProcedureCode ::= 55
+id-UEContextResume ProcedureCode ::= 56
+id-NASDeliveryIndication ProcedureCode ::= 57
+id-RetrieveUEInformation ProcedureCode ::= 58
+id-UEInformationTransfer ProcedureCode ::= 59
+id-eNBCPRelocationIndication ProcedureCode ::= 60
+id-MMECPRelocationIndication ProcedureCode ::= 61
+id-SecondaryRATDataUsageReport ProcedureCode ::= 62
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+maxPrivateIEs INTEGER ::= 65535
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxnoofCSGs INTEGER ::= 256
+maxnoofE-RABs INTEGER ::= 256
+maxnoofTAIs INTEGER ::= 256
+maxnoofTACs INTEGER ::= 256
+maxnoofErrors INTEGER ::= 256
+maxnoofBPLMNs INTEGER ::= 6
+maxnoofPLMNsPerMME INTEGER ::= 32
+maxnoofEPLMNs INTEGER ::= 15
+maxnoofEPLMNsPlusOne INTEGER ::= 16
+maxnoofForbLACs INTEGER ::= 4096
+maxnoofForbTACs INTEGER ::= 4096
+maxnoofIndividualS1ConnectionsToReset INTEGER ::= 256
+maxnoofCellsinUEHistoryInfo INTEGER ::= 16
+maxnoofCellsineNB INTEGER ::= 256
+maxnoofTAIforWarning INTEGER ::= 65535
+maxnoofCellID INTEGER ::= 65535
+maxnoofDCNs INTEGER ::= 32
+maxnoofEmergencyAreaID INTEGER ::= 65535
+maxnoofCellinTAI INTEGER ::= 65535
+maxnoofCellinEAI INTEGER ::= 65535
+maxnoofeNBX2TLAs INTEGER ::= 2
+maxnoofeNBX2ExtTLAs INTEGER ::= 16
+maxnoofeNBX2GTPTLAs INTEGER ::= 16
+maxnoofRATs INTEGER ::= 8
+maxnoofGroupIDs INTEGER ::= 65535
+maxnoofMMECs INTEGER ::= 256
+maxnoofCellIDforMDT INTEGER ::= 32
+maxnoofTAforMDT INTEGER ::= 8
+maxnoofMDTPLMNs INTEGER ::= 16
+maxnoofCellsforRestart INTEGER ::= 256
+maxnoofRestartTAIs INTEGER ::= 2048
+maxnoofRestartEmergencyAreaIDs INTEGER ::= 256
+maxEARFCN INTEGER ::= 262143
+maxnoofMBSFNAreaMDT INTEGER ::= 8
+maxnoofRecommendedCells INTEGER ::= 16
+maxnoofRecommendedENBs INTEGER ::= 16
+maxnooftimeperiods INTEGER ::= 2
+maxnoofCellIDforQMC INTEGER ::= 32
+maxnoofTAforQMC INTEGER ::= 8
+maxnoofPLMNforQMC INTEGER ::= 16
+maxnoofBluetoothName INTEGER ::= 4
+maxnoofWLANName INTEGER ::= 4
+maxnoofConnectedengNBs INTEGER ::= 256
+
+
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-MME-UE-S1AP-ID ProtocolIE-ID ::= 0
+id-HandoverType ProtocolIE-ID ::= 1
+id-Cause ProtocolIE-ID ::= 2
+id-SourceID ProtocolIE-ID ::= 3
+id-TargetID ProtocolIE-ID ::= 4
+id-eNB-UE-S1AP-ID ProtocolIE-ID ::= 8
+id-E-RABSubjecttoDataForwardingList ProtocolIE-ID ::= 12
+id-E-RABtoReleaseListHOCmd ProtocolIE-ID ::= 13
+id-E-RABDataForwardingItem ProtocolIE-ID ::= 14
+id-E-RABReleaseItemBearerRelComp ProtocolIE-ID ::= 15
+id-E-RABToBeSetupListBearerSUReq ProtocolIE-ID ::= 16
+id-E-RABToBeSetupItemBearerSUReq ProtocolIE-ID ::= 17
+id-E-RABAdmittedList ProtocolIE-ID ::= 18
+id-E-RABFailedToSetupListHOReqAck ProtocolIE-ID ::= 19
+id-E-RABAdmittedItem ProtocolIE-ID ::= 20
+id-E-RABFailedtoSetupItemHOReqAck ProtocolIE-ID ::= 21
+id-E-RABToBeSwitchedDLList ProtocolIE-ID ::= 22
+id-E-RABToBeSwitchedDLItem ProtocolIE-ID ::= 23
+id-E-RABToBeSetupListCtxtSUReq ProtocolIE-ID ::= 24
+id-TraceActivation ProtocolIE-ID ::= 25
+id-NAS-PDU ProtocolIE-ID ::= 26
+id-E-RABToBeSetupItemHOReq ProtocolIE-ID ::= 27
+id-E-RABSetupListBearerSURes ProtocolIE-ID ::= 28
+id-E-RABFailedToSetupListBearerSURes ProtocolIE-ID ::= 29
+id-E-RABToBeModifiedListBearerModReq ProtocolIE-ID ::= 30
+id-E-RABModifyListBearerModRes ProtocolIE-ID ::= 31
+id-E-RABFailedToModifyList ProtocolIE-ID ::= 32
+id-E-RABToBeReleasedList ProtocolIE-ID ::= 33
+id-E-RABFailedToReleaseList ProtocolIE-ID ::= 34
+id-E-RABItem ProtocolIE-ID ::= 35
+id-E-RABToBeModifiedItemBearerModReq ProtocolIE-ID ::= 36
+id-E-RABModifyItemBearerModRes ProtocolIE-ID ::= 37
+id-E-RABReleaseItem ProtocolIE-ID ::= 38
+id-E-RABSetupItemBearerSURes ProtocolIE-ID ::= 39
+id-SecurityContext ProtocolIE-ID ::= 40
+id-HandoverRestrictionList ProtocolIE-ID ::= 41
+id-UEPagingID ProtocolIE-ID ::= 43
+id-pagingDRX ProtocolIE-ID ::= 44
+id-TAIList ProtocolIE-ID ::= 46
+id-TAIItem ProtocolIE-ID ::= 47
+id-E-RABFailedToSetupListCtxtSURes ProtocolIE-ID ::= 48
+id-E-RABReleaseItemHOCmd ProtocolIE-ID ::= 49
+id-E-RABSetupItemCtxtSURes ProtocolIE-ID ::= 50
+id-E-RABSetupListCtxtSURes ProtocolIE-ID ::= 51
+id-E-RABToBeSetupItemCtxtSUReq ProtocolIE-ID ::= 52
+id-E-RABToBeSetupListHOReq ProtocolIE-ID ::= 53
+id-GERANtoLTEHOInformationRes ProtocolIE-ID ::= 55
+id-UTRANtoLTEHOInformationRes ProtocolIE-ID ::= 57
+id-CriticalityDiagnostics ProtocolIE-ID ::= 58
+id-Global-ENB-ID ProtocolIE-ID ::= 59
+id-eNBname ProtocolIE-ID ::= 60
+id-MMEname ProtocolIE-ID ::= 61
+id-ServedPLMNs ProtocolIE-ID ::= 63
+id-SupportedTAs ProtocolIE-ID ::= 64
+id-TimeToWait ProtocolIE-ID ::= 65
+id-uEaggregateMaximumBitrate ProtocolIE-ID ::= 66
+id-TAI ProtocolIE-ID ::= 67
+id-E-RABReleaseListBearerRelComp ProtocolIE-ID ::= 69
+id-cdma2000PDU ProtocolIE-ID ::= 70
+id-cdma2000RATType ProtocolIE-ID ::= 71
+id-cdma2000SectorID ProtocolIE-ID ::= 72
+id-SecurityKey ProtocolIE-ID ::= 73
+id-UERadioCapability ProtocolIE-ID ::= 74
+id-GUMMEI-ID ProtocolIE-ID ::= 75
+id-E-RABInformationListItem ProtocolIE-ID ::= 78
+id-Direct-Forwarding-Path-Availability ProtocolIE-ID ::= 79
+id-UEIdentityIndexValue ProtocolIE-ID ::= 80
+id-cdma2000HOStatus ProtocolIE-ID ::= 83
+id-cdma2000HORequiredIndication ProtocolIE-ID ::= 84
+id-E-UTRAN-Trace-ID ProtocolIE-ID ::= 86
+id-RelativeMMECapacity ProtocolIE-ID ::= 87
+id-SourceMME-UE-S1AP-ID ProtocolIE-ID ::= 88
+id-Bearers-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 89
+id-eNB-StatusTransfer-TransparentContainer ProtocolIE-ID ::= 90
+id-UE-associatedLogicalS1-ConnectionItem ProtocolIE-ID ::= 91
+id-ResetType ProtocolIE-ID ::= 92
+id-UE-associatedLogicalS1-ConnectionListResAck ProtocolIE-ID ::= 93
+id-E-RABToBeSwitchedULItem ProtocolIE-ID ::= 94
+id-E-RABToBeSwitchedULList ProtocolIE-ID ::= 95
+id-S-TMSI ProtocolIE-ID ::= 96
+id-cdma2000OneXRAND ProtocolIE-ID ::= 97
+id-RequestType ProtocolIE-ID ::= 98
+id-UE-S1AP-IDs ProtocolIE-ID ::= 99
+id-EUTRAN-CGI ProtocolIE-ID ::= 100
+id-OverloadResponse ProtocolIE-ID ::= 101
+id-cdma2000OneXSRVCCInfo ProtocolIE-ID ::= 102
+id-E-RABFailedToBeReleasedList ProtocolIE-ID ::= 103
+id-Source-ToTarget-TransparentContainer ProtocolIE-ID ::= 104
+id-ServedGUMMEIs ProtocolIE-ID ::= 105
+id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 106
+id-UESecurityCapabilities ProtocolIE-ID ::= 107
+id-CSFallbackIndicator ProtocolIE-ID ::= 108
+id-CNDomain ProtocolIE-ID ::= 109
+id-E-RABReleasedList ProtocolIE-ID ::= 110
+id-MessageIdentifier ProtocolIE-ID ::= 111
+id-SerialNumber ProtocolIE-ID ::= 112
+id-WarningAreaList ProtocolIE-ID ::= 113
+id-RepetitionPeriod ProtocolIE-ID ::= 114
+id-NumberofBroadcastRequest ProtocolIE-ID ::= 115
+id-WarningType ProtocolIE-ID ::= 116
+id-WarningSecurityInfo ProtocolIE-ID ::= 117
+id-DataCodingScheme ProtocolIE-ID ::= 118
+id-WarningMessageContents ProtocolIE-ID ::= 119
+id-BroadcastCompletedAreaList ProtocolIE-ID ::= 120
+id-Inter-SystemInformationTransferTypeEDT ProtocolIE-ID ::= 121
+id-Inter-SystemInformationTransferTypeMDT ProtocolIE-ID ::= 122
+id-Target-ToSource-TransparentContainer ProtocolIE-ID ::= 123
+id-SRVCCOperationPossible ProtocolIE-ID ::= 124
+id-SRVCCHOIndication ProtocolIE-ID ::= 125
+id-NAS-DownlinkCount ProtocolIE-ID ::= 126
+id-CSG-Id ProtocolIE-ID ::= 127
+id-CSG-IdList ProtocolIE-ID ::= 128
+id-SONConfigurationTransferECT ProtocolIE-ID ::= 129
+id-SONConfigurationTransferMCT ProtocolIE-ID ::= 130
+id-TraceCollectionEntityIPAddress ProtocolIE-ID ::= 131
+id-MSClassmark2 ProtocolIE-ID ::= 132
+id-MSClassmark3 ProtocolIE-ID ::= 133
+id-RRC-Establishment-Cause ProtocolIE-ID ::= 134
+id-NASSecurityParametersfromE-UTRAN ProtocolIE-ID ::= 135
+id-NASSecurityParameterstoE-UTRAN ProtocolIE-ID ::= 136
+id-DefaultPagingDRX ProtocolIE-ID ::= 137
+id-Source-ToTarget-TransparentContainer-Secondary ProtocolIE-ID ::= 138
+id-Target-ToSource-TransparentContainer-Secondary ProtocolIE-ID ::= 139
+id-EUTRANRoundTripDelayEstimationInfo ProtocolIE-ID ::= 140
+id-BroadcastCancelledAreaList ProtocolIE-ID ::= 141
+id-ConcurrentWarningMessageIndicator ProtocolIE-ID ::= 142
+id-Data-Forwarding-Not-Possible ProtocolIE-ID ::= 143
+id-ExtendedRepetitionPeriod ProtocolIE-ID ::= 144
+id-CellAccessMode ProtocolIE-ID ::= 145
+id-CSGMembershipStatus ProtocolIE-ID ::= 146
+id-LPPa-PDU ProtocolIE-ID ::= 147
+id-Routing-ID ProtocolIE-ID ::= 148
+id-Time-Synchronisation-Info ProtocolIE-ID ::= 149
+id-PS-ServiceNotAvailable ProtocolIE-ID ::= 150
+id-PagingPriority ProtocolIE-ID ::= 151
+id-x2TNLConfigurationInfo ProtocolIE-ID ::= 152
+id-eNBX2ExtendedTransportLayerAddresses ProtocolIE-ID ::= 153
+id-GUMMEIList ProtocolIE-ID ::= 154
+id-GW-TransportLayerAddress ProtocolIE-ID ::= 155
+id-Correlation-ID ProtocolIE-ID ::= 156
+id-SourceMME-GUMMEI ProtocolIE-ID ::= 157
+id-MME-UE-S1AP-ID-2 ProtocolIE-ID ::= 158
+id-RegisteredLAI ProtocolIE-ID ::= 159
+id-RelayNode-Indicator ProtocolIE-ID ::= 160
+id-TrafficLoadReductionIndication ProtocolIE-ID ::= 161
+id-MDTConfiguration ProtocolIE-ID ::= 162
+id-MMERelaySupportIndicator ProtocolIE-ID ::= 163
+id-GWContextReleaseIndication ProtocolIE-ID ::= 164
+id-ManagementBasedMDTAllowed ProtocolIE-ID ::= 165
+id-PrivacyIndicator ProtocolIE-ID ::= 166
+id-Time-UE-StayedInCell-EnhancedGranularity ProtocolIE-ID ::= 167
+id-HO-Cause ProtocolIE-ID ::= 168
+id-VoiceSupportMatchIndicator ProtocolIE-ID ::= 169
+id-GUMMEIType ProtocolIE-ID ::= 170
+id-M3Configuration ProtocolIE-ID ::= 171
+id-M4Configuration ProtocolIE-ID ::= 172
+id-M5Configuration ProtocolIE-ID ::= 173
+id-MDT-Location-Info ProtocolIE-ID ::= 174
+id-MobilityInformation ProtocolIE-ID ::= 175
+id-Tunnel-Information-for-BBF ProtocolIE-ID ::= 176
+id-ManagementBasedMDTPLMNList ProtocolIE-ID ::= 177
+id-SignallingBasedMDTPLMNList ProtocolIE-ID ::= 178
+id-ULCOUNTValueExtended ProtocolIE-ID ::= 179
+id-DLCOUNTValueExtended ProtocolIE-ID ::= 180
+id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID ::= 181
+id-ECGIListForRestart ProtocolIE-ID ::= 182
+id-SIPTO-Correlation-ID ProtocolIE-ID ::= 183
+id-SIPTO-L-GW-TransportLayerAddress ProtocolIE-ID ::= 184
+id-TransportInformation ProtocolIE-ID ::= 185
+id-LHN-ID ProtocolIE-ID ::= 186
+id-AdditionalCSFallbackIndicator ProtocolIE-ID ::= 187
+id-TAIListForRestart ProtocolIE-ID ::= 188
+id-UserLocationInformation ProtocolIE-ID ::= 189
+id-EmergencyAreaIDListForRestart ProtocolIE-ID ::= 190
+id-KillAllWarningMessages ProtocolIE-ID ::= 191
+id-Masked-IMEISV ProtocolIE-ID ::= 192
+id-eNBIndirectX2TransportLayerAddresses ProtocolIE-ID ::= 193
+id-uE-HistoryInformationFromTheUE ProtocolIE-ID ::= 194
+id-ProSeAuthorized ProtocolIE-ID ::= 195
+id-ExpectedUEBehaviour ProtocolIE-ID ::= 196
+id-LoggedMBSFNMDT ProtocolIE-ID ::= 197
+id-UERadioCapabilityForPaging ProtocolIE-ID ::= 198
+id-E-RABToBeModifiedListBearerModInd ProtocolIE-ID ::= 199
+id-E-RABToBeModifiedItemBearerModInd ProtocolIE-ID ::= 200
+id-E-RABNotToBeModifiedListBearerModInd ProtocolIE-ID ::= 201
+id-E-RABNotToBeModifiedItemBearerModInd ProtocolIE-ID ::= 202
+id-E-RABModifyListBearerModConf ProtocolIE-ID ::= 203
+id-E-RABModifyItemBearerModConf ProtocolIE-ID ::= 204
+id-E-RABFailedToModifyListBearerModConf ProtocolIE-ID ::= 205
+id-SON-Information-Report ProtocolIE-ID ::= 206
+id-Muting-Availability-Indication ProtocolIE-ID ::= 207
+id-Muting-Pattern-Information ProtocolIE-ID ::= 208
+id-Synchronisation-Information ProtocolIE-ID ::= 209
+id-E-RABToBeReleasedListBearerModConf ProtocolIE-ID ::= 210
+id-AssistanceDataForPaging ProtocolIE-ID ::= 211
+id-CellIdentifierAndCELevelForCECapableUEs ProtocolIE-ID ::= 212
+id-InformationOnRecommendedCellsAndENBsForPaging ProtocolIE-ID ::= 213
+id-RecommendedCellItem ProtocolIE-ID ::= 214
+id-RecommendedENBItem ProtocolIE-ID ::= 215
+id-ProSeUEtoNetworkRelaying ProtocolIE-ID ::= 216
+id-ULCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 217
+id-DLCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 218
+id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ProtocolIE-ID ::= 219
+id-M6Configuration ProtocolIE-ID ::= 220
+id-M7Configuration ProtocolIE-ID ::= 221
+id-PWSfailedECGIList ProtocolIE-ID ::= 222
+id-MME-Group-ID ProtocolIE-ID ::= 223
+id-Additional-GUTI ProtocolIE-ID ::= 224
+id-S1-Message ProtocolIE-ID ::= 225
+id-CSGMembershipInfo ProtocolIE-ID ::= 226
+id-Paging-eDRXInformation ProtocolIE-ID ::= 227
+id-UE-RetentionInformation ProtocolIE-ID ::= 228
+id-UE-Usage-Type ProtocolIE-ID ::= 230
+id-extended-UEIdentityIndexValue ProtocolIE-ID ::= 231
+id-RAT-Type ProtocolIE-ID ::= 232
+id-BearerType ProtocolIE-ID ::= 233
+id-NB-IoT-DefaultPagingDRX ProtocolIE-ID ::= 234
+id-E-RABFailedToResumeListResumeReq ProtocolIE-ID ::= 235
+id-E-RABFailedToResumeItemResumeReq ProtocolIE-ID ::= 236
+id-E-RABFailedToResumeListResumeRes ProtocolIE-ID ::= 237
+id-E-RABFailedToResumeItemResumeRes ProtocolIE-ID ::= 238
+id-NB-IoT-Paging-eDRXInformation ProtocolIE-ID ::= 239
+id-V2XServicesAuthorized ProtocolIE-ID ::= 240
+id-UEUserPlaneCIoTSupportIndicator ProtocolIE-ID ::= 241
+id-CE-mode-B-SupportIndicator ProtocolIE-ID ::= 242
+id-SRVCCOperationNotPossible ProtocolIE-ID ::= 243
+id-NB-IoT-UEIdentityIndexValue ProtocolIE-ID ::= 244
+id-RRC-Resume-Cause ProtocolIE-ID ::= 245
+id-DCN-ID ProtocolIE-ID ::= 246
+id-ServedDCNs ProtocolIE-ID ::= 247
+id-UESidelinkAggregateMaximumBitrate ProtocolIE-ID ::= 248
+id-DLNASPDUDeliveryAckRequest ProtocolIE-ID ::= 249
+id-Coverage-Level ProtocolIE-ID ::= 250
+id-EnhancedCoverageRestricted ProtocolIE-ID ::= 251
+id-UE-Level-QoS-Parameters ProtocolIE-ID ::= 252
+id-DL-CP-SecurityInformation ProtocolIE-ID ::= 253
+id-UL-CP-SecurityInformation ProtocolIE-ID ::= 254
+id-extended-e-RAB-MaximumBitrateDL ProtocolIE-ID ::= 255
+id-extended-e-RAB-MaximumBitrateUL ProtocolIE-ID ::= 256
+id-extended-e-RAB-GuaranteedBitrateDL ProtocolIE-ID ::= 257
+id-extended-e-RAB-GuaranteedBitrateUL ProtocolIE-ID ::= 258
+id-extended-uEaggregateMaximumBitRateDL ProtocolIE-ID ::= 259
+id-extended-uEaggregateMaximumBitRateUL ProtocolIE-ID ::= 260
+id-NRrestrictioninEPSasSecondaryRAT ProtocolIE-ID ::= 261
+id-UEAppLayerMeasConfig ProtocolIE-ID ::= 262
+id-UE-Application-Layer-Measurement-Capability ProtocolIE-ID ::= 263
+id-SecondaryRATDataUsageReportList ProtocolIE-ID ::= 264
+id-SecondaryRATDataUsageReportItem ProtocolIE-ID ::= 265
+id-HandoverFlag ProtocolIE-ID ::= 266
+id-E-RABUsageReportItem ProtocolIE-ID ::= 267
+id-SecondaryRATDataUsageRequest ProtocolIE-ID ::= 268
+id-NRUESecurityCapabilities ProtocolIE-ID ::= 269
+id-UnlicensedSpectrumRestriction ProtocolIE-ID ::= 270
+id-CE-ModeBRestricted ProtocolIE-ID ::= 271
+id-LTE-M-Indication ProtocolIE-ID ::= 272
+id-DownlinkPacketLossRate ProtocolIE-ID ::= 273
+id-UplinkPacketLossRate ProtocolIE-ID ::= 274
+id-UECapabilityInfoRequest ProtocolIE-ID ::= 275
+id-serviceType ProtocolIE-ID ::= 276
+id-AerialUEsubscriptionInformation ProtocolIE-ID ::= 277
+id-Subscription-Based-UE-DifferentiationInfo ProtocolIE-ID ::= 278
+id-EndIndication ProtocolIE-ID ::= 280
+id-EDT-Session ProtocolIE-ID ::= 281
+id-CNTypeRestrictions ProtocolIE-ID ::= 282
+id-PendingDataIndication ProtocolIE-ID ::= 283
+id-BluetoothMeasurementConfiguration ProtocolIE-ID ::= 284
+id-WLANMeasurementConfiguration ProtocolIE-ID ::= 285
+id-WarningAreaCoordinates ProtocolIE-ID ::= 286
+id-NRrestrictionin5GS ProtocolIE-ID ::= 287
+id-PSCellInformation ProtocolIE-ID ::= 288
+id-LastNG-RANPLMNIdentity ProtocolIE-ID ::= 290
+id-ConnectedengNBList ProtocolIE-ID ::= 291
+id-ConnectedengNBToAddList ProtocolIE-ID ::= 292
+id-ConnectedengNBToRemoveList ProtocolIE-ID ::= 293
+id-EN-DCSONConfigurationTransfer-ECT ProtocolIE-ID ::= 294
+id-EN-DCSONConfigurationTransfer-MCT ProtocolIE-ID ::= 295
+id-IMSvoiceEPSfallbackfrom5G ProtocolIE-ID ::= 296
+id-TimeSinceSecondaryNodeRelease ProtocolIE-ID ::= 297
+id-RequestTypeAdditionalInfo ProtocolIE-ID ::= 298
+
+END
diff --git a/src/s1ap/asn1c/asnGenFiles/asn1c/S1AP-Containers.asn b/src/s1ap/asn1c/asnGenFiles/asn1c/S1AP-Containers.asn
new file mode 100644
index 0000000..23f48e5
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/asn1c/S1AP-Containers.asn
@@ -0,0 +1,204 @@
+-- **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+S1AP-Containers {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Containers (5) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ Presence,
+ PrivateIE-ID,
+ ProtocolExtensionID,
+ ProtocolIE-ID
+FROM S1AP-CommonDataTypes
+
+ maxPrivateIEs,
+ maxProtocolExtensions,
+ maxProtocolIEs
+
+FROM S1AP-Constants
+
+ Criticality,
+ maxnoofE-RABs
+
+FROM S1AP-IEs;
+
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+S1AP-PROTOCOL-IES ::= CLASS {
+ &id ProtocolIE-ID UNIQUE,
+ &criticality Criticality,
+ &Value,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ TYPE &Value
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+S1AP-PROTOCOL-IES-PAIR ::= CLASS {
+ &id ProtocolIE-ID UNIQUE,
+ &firstCriticality Criticality,
+ &FirstValue,
+ &secondCriticality Criticality,
+ &SecondValue,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ FIRST CRITICALITY &firstCriticality
+ FIRST TYPE &FirstValue
+ SECOND CRITICALITY &secondCriticality
+ SECOND TYPE &SecondValue
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Protocol Extensions
+--
+-- **************************************************************
+
+S1AP-PROTOCOL-EXTENSION ::= CLASS {
+ &id ProtocolExtensionID UNIQUE,
+ &criticality Criticality,
+ &Extension,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ EXTENSION &Extension
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Private IEs
+--
+-- **************************************************************
+
+S1AP-PRIVATE-IES ::= CLASS {
+ &id PrivateIE-ID,
+ &criticality Criticality,
+ &Value,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ TYPE &Value
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IEs
+--
+-- **************************************************************
+
+ProtocolIE-Container {S1AP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-SingleContainer {S1AP-PROTOCOL-IES : IEsSetParam} ::=
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field {S1AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+ id S1AP-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality S1AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value S1AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IE Pairs
+--
+-- **************************************************************
+
+ProtocolIE-ContainerPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-FieldPair {{IEsSetParam}}
+
+ProtocolIE-FieldPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
+ id S1AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
+ firstCriticality S1AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
+ firstValue S1AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
+ secondCriticality S1AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
+ secondValue S1AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-SingleContainer {{IEsSetParam}}
+
+ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-ContainerPair {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id S1AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality S1AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue S1AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Private IEs
+--
+-- **************************************************************
+
+PrivateIE-Container {S1AP-PRIVATE-IES : IEsSetParam } ::=
+ SEQUENCE (SIZE (1.. maxPrivateIEs)) OF
+ PrivateIE-Field {{IEsSetParam}}
+
+PrivateIE-Field {S1AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
+ id S1AP-PRIVATE-IES.&id ({IEsSetParam}),
+ criticality S1AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
+ value S1AP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
+}
+
+END
diff --git a/src/s1ap/asn1c/asnGenFiles/asn1c/S1AP-IEs.asn b/src/s1ap/asn1c/asnGenFiles/asn1c/S1AP-IEs.asn
new file mode 100644
index 0000000..f46e195
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/asn1c/S1AP-IEs.asn
@@ -0,0 +1,2817 @@
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+S1AP-IEs {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-IEs (2) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ id-E-RABInformationListItem,
+ id-E-RABItem,
+ id-Bearers-SubjectToStatusTransfer-Item,
+ id-Time-Synchronisation-Info,
+ id-x2TNLConfigurationInfo,
+ id-eNBX2ExtendedTransportLayerAddresses,
+ id-MDTConfiguration,
+ id-Time-UE-StayedInCell-EnhancedGranularity,
+ id-HO-Cause,
+ id-M3Configuration,
+ id-M4Configuration,
+ id-M5Configuration,
+ id-MDT-Location-Info,
+ id-SignallingBasedMDTPLMNList,
+ id-MobilityInformation,
+ id-ULCOUNTValueExtended,
+ id-DLCOUNTValueExtended,
+ id-ReceiveStatusOfULPDCPSDUsExtended,
+ id-eNBIndirectX2TransportLayerAddresses,
+ id-Muting-Availability-Indication,
+ id-Muting-Pattern-Information,
+ id-NRrestrictioninEPSasSecondaryRAT,
+ id-NRrestrictionin5GS,
+ id-Synchronisation-Information,
+ id-uE-HistoryInformationFromTheUE,
+ id-LoggedMBSFNMDT,
+ id-SON-Information-Report,
+ id-RecommendedCellItem,
+ id-RecommendedENBItem,
+ id-ProSeUEtoNetworkRelaying,
+ id-ULCOUNTValuePDCP-SNlength18,
+ id-DLCOUNTValuePDCP-SNlength18,
+ id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18,
+ id-M6Configuration,
+ id-M7Configuration,
+ id-RAT-Type,
+ id-extended-e-RAB-MaximumBitrateDL,
+ id-extended-e-RAB-MaximumBitrateUL,
+ id-extended-e-RAB-GuaranteedBitrateDL,
+ id-extended-e-RAB-GuaranteedBitrateUL,
+ id-extended-uEaggregateMaximumBitRateDL,
+ id-extended-uEaggregateMaximumBitRateUL,
+ id-SecondaryRATDataUsageReportItem,
+ id-E-RABUsageReportItem,
+ id-UEAppLayerMeasConfig,
+ id-serviceType,
+ id-UnlicensedSpectrumRestriction,
+ id-CNTypeRestrictions,
+ id-DownlinkPacketLossRate,
+ id-UplinkPacketLossRate,
+ id-BluetoothMeasurementConfiguration,
+ id-WLANMeasurementConfiguration,
+ id-LastNG-RANPLMNIdentity,
+ id-PSCellInformation,
+ id-IMSvoiceEPSfallbackfrom5G,
+ id-RequestTypeAdditionalInfo,
+ maxnoofE-RABs,
+ maxnoofCSGs,
+ maxnoofErrors,
+ maxnoofBPLMNs,
+ maxnoofPLMNsPerMME,
+ maxnoofTACs,
+ maxnoofEPLMNs,
+ maxnoofEPLMNsPlusOne,
+ maxnoofForbLACs,
+ maxnoofForbTACs,
+ maxnoofCellsinUEHistoryInfo,
+ maxnoofCellID,
+ maxnoofDCNs,
+ maxnoofEmergencyAreaID,
+ maxnoofTAIforWarning,
+ maxnoofCellinTAI,
+ maxnoofCellinEAI,
+ maxnoofeNBX2TLAs,
+ maxnoofeNBX2ExtTLAs,
+ maxnoofeNBX2GTPTLAs,
+ maxnoofRATs,
+ maxnoofGroupIDs,
+ maxnoofMMECs,
+ maxnoofTAforMDT,
+ maxnoofCellIDforMDT,
+ maxnoofMDTPLMNs,
+ maxnoofCellsforRestart,
+ maxnoofRestartTAIs,
+ maxnoofRestartEmergencyAreaIDs,
+ maxnoofMBSFNAreaMDT,
+ maxEARFCN,
+ maxnoofCellsineNB,
+ maxnoofRecommendedCells,
+ maxnoofRecommendedENBs,
+ maxnooftimeperiods,
+ maxnoofCellIDforQMC,
+ maxnoofTAforQMC,
+ maxnoofPLMNforQMC,
+ maxnoofBluetoothName,
+ maxnoofWLANName,
+ maxnoofConnectedengNBs
+
+
+
+
+FROM S1AP-Constants
+
+ Criticality,
+ ProcedureCode,
+ ProtocolIE-ID,
+ TriggeringMessage
+FROM S1AP-CommonDataTypes
+
+ ProtocolExtensionContainer{},
+ S1AP-PROTOCOL-EXTENSION,
+ ProtocolIE-SingleContainer{},
+ S1AP-PROTOCOL-IES
+
+FROM S1AP-Containers;
+
+-- A
+
+Additional-GUTI::= SEQUENCE {
+ gUMMEI GUMMEI,
+ m-TMSI M-TMSI,
+ iE-Extensions ProtocolExtensionContainer { {Additional-GUTI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-GUTI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AerialUEsubscriptionInformation ::= ENUMERATED {
+ allowed,
+ not-allowed,
+ ...
+}
+
+AreaScopeOfMDT ::= CHOICE {
+ cellBased CellBasedMDT,
+ tABased TABasedMDT,
+ pLMNWide NULL,
+ ...,
+ tAIBased TAIBasedMDT
+}
+
+
+AreaScopeOfQMC ::= CHOICE {
+ cellBased CellBasedQMC,
+ tABased TABasedQMC,
+ tAIBased TAIBasedQMC,
+ pLMNAreaBased PLMNAreaBasedQMC,
+ ...
+}
+
+AllocationAndRetentionPriority ::= SEQUENCE {
+ priorityLevel PriorityLevel,
+ pre-emptionCapability Pre-emptionCapability,
+ pre-emptionVulnerability Pre-emptionVulnerability,
+ iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllocationAndRetentionPriority-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AssistanceDataForCECapableUEs ::= SEQUENCE {
+ cellIdentifierAndCELevelForCECapableUEs CellIdentifierAndCELevelForCECapableUEs,
+ iE-Extensions ProtocolExtensionContainer { { InformationForCECapableUEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+InformationForCECapableUEs-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AssistanceDataForPaging ::= SEQUENCE {
+ assistanceDataForRecommendedCells AssistanceDataForRecommendedCells OPTIONAL,
+ assistanceDataForCECapableUEs AssistanceDataForCECapableUEs OPTIONAL,
+ pagingAttemptInformation PagingAttemptInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { AssistanceDataForPaging-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AssistanceDataForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AssistanceDataForRecommendedCells ::= SEQUENCE {
+ recommendedCellsForPaging RecommendedCellsForPaging,
+ iE-Extensions ProtocolExtensionContainer { { AssistanceDataForRecommendedCells-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AssistanceDataForRecommendedCells-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- B
+
+Bearers-SubjectToStatusTransferList ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { { Bearers-SubjectToStatusTransfer-ItemIEs } }
+
+Bearers-SubjectToStatusTransfer-ItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Bearers-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE Bearers-SubjectToStatusTransfer-Item PRESENCE mandatory },
+ ...
+}
+
+Bearers-SubjectToStatusTransfer-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ uL-COUNTvalue COUNTvalue,
+ dL-COUNTvalue COUNTvalue,
+ receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Bearers-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+Bearers-SubjectToStatusTransfer-ItemExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-ULCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}|
+ { ID id-DLCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}|
+ { ID id-ReceiveStatusOfULPDCPSDUsExtended CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsExtended PRESENCE optional}|
+ { ID id-ULCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}|
+ { ID id-DLCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}|
+ { ID id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 PRESENCE optional},
+ ...
+}
+
+BearerType ::= ENUMERATED {
+ non-IP,
+ ...
+}
+
+BitRate ::= INTEGER (0..10000000000)
+
+BluetoothMeasurementConfiguration ::= SEQUENCE {
+ bluetoothMeasConfig BluetoothMeasConfig,
+ bluetoothMeasConfigNameList BluetoothMeasConfigNameList OPTIONAL,
+ bt-rssi ENUMERATED {true, ...} OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { BluetoothMeasurementConfiguration-ExtIEs } } OPTIONAL,
+ ...
+}
+
+BluetoothMeasurementConfiguration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+BluetoothMeasConfigNameList ::= SEQUENCE (SIZE(1..maxnoofBluetoothName)) OF BluetoothName
+
+BluetoothMeasConfig::= ENUMERATED {setup,...}
+
+BluetoothName ::= OCTET STRING (SIZE (1..248))
+
+BPLMNs ::= SEQUENCE (SIZE(1.. maxnoofBPLMNs)) OF PLMNidentity
+
+BroadcastCancelledAreaList ::= CHOICE {
+ cellID-Cancelled CellID-Cancelled,
+ tAI-Cancelled TAI-Cancelled,
+ emergencyAreaID-Cancelled EmergencyAreaID-Cancelled,
+ ...
+}
+
+BroadcastCompletedAreaList ::= CHOICE {
+ cellID-Broadcast CellID-Broadcast,
+ tAI-Broadcast TAI-Broadcast,
+ emergencyAreaID-Broadcast EmergencyAreaID-Broadcast,
+ ...
+}
+
+
+-- C
+
+CancelledCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CancelledCellinEAI-Item
+
+CancelledCellinEAI-Item ::= SEQUENCE {
+ eCGI EUTRAN-CGI,
+ numberOfBroadcasts NumberOfBroadcasts,
+ iE-Extensions ProtocolExtensionContainer { {CancelledCellinEAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CancelledCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CancelledCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CancelledCellinTAI-Item
+
+CancelledCellinTAI-Item ::= SEQUENCE{
+ eCGI EUTRAN-CGI,
+ numberOfBroadcasts NumberOfBroadcasts,
+ iE-Extensions ProtocolExtensionContainer { {CancelledCellinTAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CancelledCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Cause ::= CHOICE {
+ radioNetwork CauseRadioNetwork,
+ transport CauseTransport,
+ nas CauseNas,
+ protocol CauseProtocol,
+ misc CauseMisc,
+ ...
+}
+
+CauseMisc ::= ENUMERATED {
+ control-processing-overload,
+ not-enough-user-plane-processing-resources,
+ hardware-failure,
+ om-intervention,
+ unspecified,
+ unknown-PLMN,
+...
+}
+
+CauseProtocol ::= ENUMERATED {
+ transfer-syntax-error,
+ abstract-syntax-error-reject,
+ abstract-syntax-error-ignore-and-notify,
+ message-not-compatible-with-receiver-state,
+ semantic-error,
+ abstract-syntax-error-falsely-constructed-message,
+ unspecified,
+ ...
+}
+
+CauseRadioNetwork ::= ENUMERATED {
+ unspecified,
+ tx2relocoverall-expiry,
+ successful-handover,
+ release-due-to-eutran-generated-reason,
+ handover-cancelled,
+ partial-handover,
+ ho-failure-in-target-EPC-eNB-or-target-system,
+ ho-target-not-allowed,
+ tS1relocoverall-expiry,
+ tS1relocprep-expiry,
+ cell-not-available,
+ unknown-targetID,
+ no-radio-resources-available-in-target-cell,
+ unknown-mme-ue-s1ap-id,
+ unknown-enb-ue-s1ap-id,
+ unknown-pair-ue-s1ap-id,
+ handover-desirable-for-radio-reason,
+ time-critical-handover,
+ resource-optimisation-handover,
+ reduce-load-in-serving-cell,
+ user-inactivity,
+ radio-connection-with-ue-lost,
+ load-balancing-tau-required,
+ cs-fallback-triggered,
+ ue-not-available-for-ps-service,
+ radio-resources-not-available,
+ failure-in-radio-interface-procedure,
+ invalid-qos-combination,
+ interrat-redirection,
+ interaction-with-other-procedure,
+ unknown-E-RAB-ID,
+ multiple-E-RAB-ID-instances,
+ encryption-and-or-integrity-protection-algorithms-not-supported,
+ s1-intra-system-handover-triggered,
+ s1-inter-system-handover-triggered,
+ x2-handover-triggered,
+ ...,
+ redirection-towards-1xRTT,
+ not-supported-QCI-value,
+ invalid-CSG-Id,
+ release-due-to-pre-emption
+
+}
+
+CauseTransport ::= ENUMERATED {
+ transport-resource-unavailable,
+ unspecified,
+ ...
+}
+
+CauseNas ::= ENUMERATED {
+ normal-release,
+ authentication-failure,
+ detach,
+ unspecified,
+ ...,
+ csg-subscription-expiry
+}
+
+CellAccessMode ::= ENUMERATED {
+ hybrid,
+ ...
+}
+
+CellIdentifierAndCELevelForCECapableUEs ::= SEQUENCE {
+ global-Cell-ID EUTRAN-CGI,
+ cELevel CELevel,
+ iE-Extensions ProtocolExtensionContainer { { CellIdentifierAndCELevelForCECapableUEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellIdentifierAndCELevelForCECapableUEs-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- Coverage Enhancement level encoded according to TS 36.331 [16] --
+CELevel ::= OCTET STRING
+
+CE-mode-B-SupportIndicator ::= ENUMERATED {
+ supported,
+ ...
+}
+
+CellIdentity ::= BIT STRING (SIZE (28))
+
+CellID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Broadcast-Item
+
+CellID-Broadcast-Item ::= SEQUENCE {
+ eCGI EUTRAN-CGI,
+ iE-Extensions ProtocolExtensionContainer { {CellID-Broadcast-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellID-Cancelled::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Cancelled-Item
+
+CellID-Cancelled-Item ::= SEQUENCE {
+ eCGI EUTRAN-CGI,
+ numberOfBroadcasts NumberOfBroadcasts,
+ iE-Extensions ProtocolExtensionContainer { {CellID-Cancelled-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellBasedMDT::= SEQUENCE {
+ cellIdListforMDT CellIdListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellBasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF EUTRAN-CGI
+
+CellBasedQMC::= SEQUENCE {
+ cellIdListforQMC CellIdListforQMC,
+ iE-Extensions ProtocolExtensionContainer { {CellBasedQMC-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellBasedQMC-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellIdListforQMC ::= SEQUENCE (SIZE(1..maxnoofCellIDforQMC)) OF EUTRAN-CGI
+
+Cdma2000PDU ::= OCTET STRING
+
+Cdma2000RATType ::= ENUMERATED {
+ hRPD,
+ onexRTT,
+ ...
+}
+
+Cdma2000SectorID ::= OCTET STRING
+
+Cdma2000HOStatus ::= ENUMERATED {
+ hOSuccess,
+ hOFailure,
+ ...
+}
+
+Cdma2000HORequiredIndication ::= ENUMERATED {
+ true,
+ ...
+}
+
+Cdma2000OneXSRVCCInfo ::= SEQUENCE {
+ cdma2000OneXMEID Cdma2000OneXMEID,
+ cdma2000OneXMSI Cdma2000OneXMSI,
+ cdma2000OneXPilot Cdma2000OneXPilot,
+ iE-Extensions ProtocolExtensionContainer { {Cdma2000OneXSRVCCInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Cdma2000OneXSRVCCInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Cdma2000OneXMEID ::= OCTET STRING
+
+Cdma2000OneXMSI ::= OCTET STRING
+
+Cdma2000OneXPilot ::= OCTET STRING
+
+Cdma2000OneXRAND ::= OCTET STRING
+
+
+Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ...}
+
+CellType ::= SEQUENCE {
+ cell-Size Cell-Size,
+ iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CellType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CGI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lAC LAC,
+ cI CI,
+ rAC RAC OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CI ::= OCTET STRING (SIZE (2))
+
+CNDomain ::= ENUMERATED {
+ ps,
+ cs
+}
+
+CNTypeRestrictions::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF CNTypeRestrictions-Item
+
+CNTypeRestrictions-Item ::= SEQUENCE {
+ pLMN-Identity PLMNidentity,
+ cNType CNType,
+ iE-Extensions ProtocolExtensionContainer { { CNTypeRestrictions-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CNTypeRestrictions-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CNType ::= ENUMERATED {
+ fiveGCForbidden,
+ ...,
+ epc-Forbiddden
+}
+
+ConcurrentWarningMessageIndicator ::= ENUMERATED {
+ true
+}
+
+ConnectedengNBList ::= SEQUENCE (SIZE(1..maxnoofConnectedengNBs)) OF ConnectedengNBItem
+
+ConnectedengNBItem ::= SEQUENCE {
+ en-gNB-ID En-gNB-ID,
+ supportedTAs SupportedTAs,
+ iE-Extensions ProtocolExtensionContainer { {ConnectedengNBItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ConnectedengNBItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Correlation-ID ::= OCTET STRING (SIZE (4))
+
+CSFallbackIndicator ::= ENUMERATED {
+ cs-fallback-required,
+ ...,
+ cs-fallback-high-priority
+}
+
+AdditionalCSFallbackIndicator ::= ENUMERATED {
+ no-restriction,
+ restriction,
+ ...
+}
+
+CSG-Id ::= BIT STRING (SIZE (27))
+
+
+CSG-IdList ::= SEQUENCE (SIZE (1.. maxnoofCSGs)) OF CSG-IdList-Item
+
+CSG-IdList-Item ::= SEQUENCE {
+ cSG-Id CSG-Id,
+ iE-Extensions ProtocolExtensionContainer { {CSG-IdList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CSG-IdList-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CSGMembershipStatus ::= ENUMERATED {
+ member,
+ not-member
+}
+
+
+COUNTvalue ::= SEQUENCE {
+ pDCP-SN PDCP-SN,
+ hFN HFN,
+ iE-Extensions ProtocolExtensionContainer { {COUNTvalue-ExtIEs} } OPTIONAL,
+ ...
+}
+COUNTvalue-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+COUNTValueExtended ::= SEQUENCE {
+ pDCP-SNExtended PDCP-SNExtended,
+ hFNModified HFNModified,
+ iE-Extensions ProtocolExtensionContainer { {COUNTValueExtended-ExtIEs} } OPTIONAL,
+ ...
+}
+
+COUNTValueExtended-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+COUNTvaluePDCP-SNlength18 ::= SEQUENCE {
+ pDCP-SNlength18 PDCP-SNlength18,
+ hFNforPDCP-SNlength18 HFNforPDCP-SNlength18,
+ iE-Extensions ProtocolExtensionContainer { {COUNTvaluePDCP-SNlength18-ExtIEs} } OPTIONAL,
+ ...
+}
+
+COUNTvaluePDCP-SNlength18-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Coverage-Level ::= ENUMERATED {
+ extendedcoverage,
+ ...
+}
+
+CriticalityDiagnostics ::= SEQUENCE {
+ procedureCode ProcedureCode OPTIONAL,
+ triggeringMessage TriggeringMessage OPTIONAL,
+ procedureCriticality Criticality OPTIONAL,
+ iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1.. maxnoofErrors)) OF CriticalityDiagnostics-IE-Item
+
+CriticalityDiagnostics-IE-Item ::= SEQUENCE {
+ iECriticality Criticality,
+ iE-ID ProtocolIE-ID,
+ typeOfError TypeOfError,
+ iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-IE-Item-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-IE-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- D
+
+DataCodingScheme ::= BIT STRING (SIZE (8))
+
+DCN-ID ::= INTEGER (0..65535)
+
+ServedDCNs ::= SEQUENCE (SIZE(0..maxnoofDCNs)) OF ServedDCNsItem
+
+ServedDCNsItem ::= SEQUENCE {
+ dCN-ID DCN-ID,
+ relativeDCNCapacity RelativeMMECapacity,
+ iE-Extensions ProtocolExtensionContainer { {ServedDCNsItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ServedDCNsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CP-SecurityInformation ::= SEQUENCE {
+ dl-NAS-MAC DL-NAS-MAC,
+ iE-Extensions ProtocolExtensionContainer { { DL-CP-SecurityInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CP-SecurityInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Forwarding ::= ENUMERATED {
+ dL-Forwarding-proposed,
+ ...
+}
+
+DL-NAS-MAC ::= BIT STRING (SIZE (16))
+
+Direct-Forwarding-Path-Availability ::= ENUMERATED {
+ directPathAvailable,
+ ...
+}
+
+Data-Forwarding-Not-Possible ::= ENUMERATED {
+ data-Forwarding-not-Possible,
+ ...
+}
+
+DLNASPDUDeliveryAckRequest ::= ENUMERATED {
+ requested,
+ ...
+}
+
+-- E
+
+EARFCN ::= INTEGER(0..maxEARFCN, ...)
+
+ECGIList ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF EUTRAN-CGI
+
+PWSfailedECGIList ::= SEQUENCE (SIZE(1..maxnoofCellsineNB)) OF EUTRAN-CGI
+
+EDT-Session ::= ENUMERATED {
+ true,
+ ...
+}
+
+EmergencyAreaIDList ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID
+
+EmergencyAreaID ::= OCTET STRING (SIZE (3))
+
+EmergencyAreaID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Broadcast-Item
+
+EmergencyAreaID-Broadcast-Item ::= SEQUENCE {
+ emergencyAreaID EmergencyAreaID,
+ completedCellinEAI CompletedCellinEAI,
+ iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Broadcast-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EmergencyAreaID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EmergencyAreaID-Cancelled ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Cancelled-Item
+
+EmergencyAreaID-Cancelled-Item ::= SEQUENCE {
+ emergencyAreaID EmergencyAreaID,
+ cancelledCellinEAI CancelledCellinEAI,
+ iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Cancelled-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EmergencyAreaID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CompletedCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CompletedCellinEAI-Item
+
+CompletedCellinEAI-Item ::= SEQUENCE {
+ eCGI EUTRAN-CGI,
+ iE-Extensions ProtocolExtensionContainer { {CompletedCellinEAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CompletedCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ECGI-List ::= SEQUENCE (SIZE(1..maxnoofCellsineNB)) OF EUTRAN-CGI
+
+EmergencyAreaIDListForRestart ::= SEQUENCE (SIZE(1..maxnoofRestartEmergencyAreaIDs)) OF EmergencyAreaID
+
+ENB-ID ::= CHOICE {
+ macroENB-ID BIT STRING (SIZE(20)),
+ homeENB-ID BIT STRING (SIZE(28)),
+ ... ,
+ short-macroENB-ID BIT STRING (SIZE(18)),
+ long-macroENB-ID BIT STRING (SIZE(21))
+}
+
+En-gNB-ID ::= BIT STRING (SIZE(22..32, ...))
+
+GERAN-Cell-ID ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC,
+ cI CI,
+ iE-Extensions ProtocolExtensionContainer { { GERAN-Cell-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GERAN-Cell-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Global-ENB-ID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ eNB-ID ENB-ID,
+ iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GlobalENB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Global-en-gNB-ID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ en-gNB-ID En-gNB-ID,
+ iE-Extensions ProtocolExtensionContainer { {Global-en-gNB-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Global-en-gNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GUMMEIList::= SEQUENCE (SIZE (1.. maxnoofMMECs)) OF GUMMEI
+
+ENB-StatusTransfer-TransparentContainer ::= SEQUENCE {
+ bearers-SubjectToStatusTransferList Bearers-SubjectToStatusTransferList,
+ iE-Extensions ProtocolExtensionContainer { {ENB-StatusTransfer-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ENB-StatusTransfer-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ENB-UE-S1AP-ID ::= INTEGER (0..16777215)
+
+ENBname ::= PrintableString (SIZE (1..150,...))
+
+ENBX2TLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2TLAs)) OF TransportLayerAddress
+
+EncryptionAlgorithms ::= BIT STRING (SIZE (16,...))
+
+EN-DCSONConfigurationTransfer ::= SEQUENCE {
+ transfertype EN-DCSONTransferType,
+ sONInformation SONInformation,
+ x2TNLConfigInfo X2TNLConfigurationInfo OPTIONAL,
+ -- This IE shall be present if the SON Information IE contains the SON Information Request IE and the SON Information Request IE is set to “X2TNL Configuration Info” --
+ iE-Extensions ProtocolExtensionContainer { {EN-DCSONConfigurationTransfer-ExtIEs} } OPTIONAL,
+...
+}
+
+EN-DCSONConfigurationTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EN-DCSONTransferType ::= CHOICE {
+ request EN-DCTransferTypeRequest,
+ reply EN-DCTransferTypeReply,
+ ...
+}
+
+EN-DCTransferTypeRequest ::= SEQUENCE {
+ sourceeNB EN-DCSONeNBIdentification,
+ targetengNB EN-DCSONengNBIdentification,
+ targeteNB EN-DCSONeNBIdentification OPTIONAL,
+ associatedTAI TAI OPTIONAL,
+ broadcast5GSTAI FiveGSTAI OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {EN-DCTransferTypeRequest-ExtIEs} } OPTIONAL,
+...
+}
+
+EN-DCTransferTypeRequest-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EN-DCTransferTypeReply ::= SEQUENCE {
+ sourceengNB EN-DCSONengNBIdentification,
+ targeteNB EN-DCSONeNBIdentification,
+ iE-Extensions ProtocolExtensionContainer { {EN-DCTransferTypeReply-ExtIEs} } OPTIONAL,
+...
+}
+
+EN-DCTransferTypeReply-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EN-DCSONeNBIdentification ::= SEQUENCE {
+ globaleNBID Global-ENB-ID,
+ selectedTAI TAI,
+ iE-Extensions ProtocolExtensionContainer { {EN-DCSONeNBIdentification-ExtIEs} } OPTIONAL,
+...
+}
+
+EN-DCSONeNBIdentification-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EN-DCSONengNBIdentification ::= SEQUENCE {
+ globalengNBID Global-en-gNB-ID,
+ selectedTAI TAI,
+ iE-Extensions ProtocolExtensionContainer { {EN-DCSONengNBIdentification-ExtIEs} } OPTIONAL,
+...
+}
+
+EN-DCSONengNBIdentification-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EndIndication ::= ENUMERATED {
+ no-further-data,
+ further-data-exists,
+ ...
+}
+
+EnhancedCoverageRestricted ::= ENUMERATED {
+ restricted,
+ ...
+}
+
+CE-ModeBRestricted ::= ENUMERATED {
+ restricted,
+ not-restricted,
+ ...
+}
+
+EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMNidentity
+EventType ::= ENUMERATED {
+ direct,
+ change-of-serve-cell,
+ stop-change-of-serve-cell,
+ ...
+}
+
+E-RAB-ID ::= INTEGER (0..15, ...)
+
+E-RABInformationList ::= SEQUENCE (SIZE (1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { { E-RABInformationListIEs } }
+
+E-RABInformationListIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABInformationListItem CRITICALITY ignore TYPE E-RABInformationListItem PRESENCE mandatory },
+ ...
+}
+
+E-RABInformationListItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ dL-Forwarding DL-Forwarding OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABInformationListItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABInformationListItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABList ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABItemIEs} }
+
+E-RABItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABItem CRITICALITY ignore TYPE E-RABItem PRESENCE mandatory },
+ ...
+}
+
+E-RABItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {E-RABItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+E-RABLevelQoSParameters ::= SEQUENCE {
+ qCI QCI,
+ allocationRetentionPriority AllocationAndRetentionPriority,
+ gbrQosInformation GBR-QosInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABQoSParameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABUsageReportList ::= SEQUENCE (SIZE(1..maxnooftimeperiods)) OF ProtocolIE-SingleContainer { {E-RABUsageReportItemIEs} }
+
+E-RABUsageReportItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABUsageReportItem CRITICALITY ignore TYPE E-RABUsageReportItem PRESENCE mandatory },
+ ...
+}
+
+E-RABUsageReportItem ::= SEQUENCE {
+ startTimestamp OCTET STRING (SIZE(4)),
+ endTimestamp OCTET STRING (SIZE(4)),
+ usageCountUL INTEGER,
+ usageCountDL INTEGER,
+ iE-Extensions ProtocolExtensionContainer { { E-RABUsageReportItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABUsageReportItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABQoSParameters-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+-- Extended for introduction of downlink and uplink packet loss rate for enhanced Voice performance –-
+ { ID id-DownlinkPacketLossRate CRITICALITY ignore EXTENSION Packet-LossRate PRESENCE optional}|
+ { ID id-UplinkPacketLossRate CRITICALITY ignore EXTENSION Packet-LossRate PRESENCE optional},
+ ...
+}
+
+
+EUTRAN-CGI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ cell-ID CellIdentity,
+ iE-Extensions ProtocolExtensionContainer { {EUTRAN-CGI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EUTRAN-CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EUTRANRoundTripDelayEstimationInfo ::= INTEGER (0..2047)
+
+ExpectedUEBehaviour ::= SEQUENCE {
+ expectedActivity ExpectedUEActivityBehaviour OPTIONAL,
+ expectedHOInterval ExpectedHOInterval OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ExpectedUEBehaviour-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ExpectedUEBehaviour-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ExpectedUEActivityBehaviour ::= SEQUENCE {
+ expectedActivityPeriod ExpectedActivityPeriod OPTIONAL,
+ expectedIdlePeriod ExpectedIdlePeriod OPTIONAL,
+ sourceofUEActivityBehaviourInformation SourceOfUEActivityBehaviourInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ExpectedUEActivityBehaviour-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ExpectedUEActivityBehaviour-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ExpectedActivityPeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...)
+
+ExpectedIdlePeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...)
+
+SourceOfUEActivityBehaviourInformation ::= ENUMERATED {
+ subscription-information,
+ statistics,
+ ...
+}
+
+ExpectedHOInterval ::= ENUMERATED {
+ sec15, sec30, sec60, sec90, sec120, sec180, long-time,
+ ...
+}
+
+ExtendedBitRate ::= INTEGER (10000000001..4000000000000, ...)
+
+ExtendedRNC-ID ::= INTEGER (4096..65535)
+
+ExtendedRepetitionPeriod ::= INTEGER (4096..131071)
+
+Extended-UEIdentityIndexValue ::= BIT STRING (SIZE (14))
+
+-- F
+
+FiveGSTAC ::= OCTET STRING (SIZE (3))
+
+FiveGSTAI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ fiveGSTAC FiveGSTAC,
+ iE-Extensions ProtocolExtensionContainer { {FiveGSTAI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FiveGSTAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ForbiddenInterRATs ::= ENUMERATED {
+ all,
+ geran,
+ utran,
+ cdma2000,
+ ...,
+ geranandutran,
+ cdma2000andutran
+
+}
+
+ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item
+
+ForbiddenTAs-Item ::= SEQUENCE {
+ pLMN-Identity PLMNidentity,
+ forbiddenTACs ForbiddenTACs,
+ iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ForbiddenTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC
+
+ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item
+
+ForbiddenLAs-Item ::= SEQUENCE {
+ pLMN-Identity PLMNidentity,
+ forbiddenLACs ForbiddenLACs,
+ iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ForbiddenLAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC
+
+-- G
+
+GBR-QosInformation ::= SEQUENCE {
+ e-RAB-MaximumBitrateDL BitRate,
+ e-RAB-MaximumBitrateUL BitRate,
+ e-RAB-GuaranteedBitrateDL BitRate,
+ e-RAB-GuaranteedBitrateUL BitRate,
+ iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GBR-QosInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+-- Extension for maximum bitrate > 10G bps --
+ { ID id-extended-e-RAB-MaximumBitrateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}|
+ { ID id-extended-e-RAB-MaximumBitrateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}|
+ { ID id-extended-e-RAB-GuaranteedBitrateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}|
+ { ID id-extended-e-RAB-GuaranteedBitrateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional},
+ ...}
+
+
+GTP-TEID ::= OCTET STRING (SIZE (4))
+
+GUMMEI ::= SEQUENCE {
+ pLMN-Identity PLMNidentity,
+ mME-Group-ID MME-Group-ID,
+ mME-Code MME-Code,
+ iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GUMMEI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GUMMEIType ::= ENUMERATED {
+ native,
+ mapped,
+ ...,
+ mappedFrom5G
+}
+
+GWContextReleaseIndication ::= ENUMERATED {
+ true,
+ ...
+}
+
+-- H
+
+HandoverFlag ::= ENUMERATED {
+ handoverPreparation,
+ ...
+}
+
+
+HandoverRestrictionList ::= SEQUENCE {
+ servingPLMN PLMNidentity,
+ equivalentPLMNs EPLMNs OPTIONAL,
+ forbiddenTAs ForbiddenTAs OPTIONAL,
+ forbiddenLAs ForbiddenLAs OPTIONAL,
+ forbiddenInterRATs ForbiddenInterRATs OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HandoverRestrictionList-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-NRrestrictioninEPSasSecondaryRAT CRITICALITY ignore EXTENSION NRrestrictioninEPSasSecondaryRAT PRESENCE optional}|
+ { ID id-UnlicensedSpectrumRestriction CRITICALITY ignore EXTENSION UnlicensedSpectrumRestriction PRESENCE optional}|
+ { ID id-CNTypeRestrictions CRITICALITY ignore EXTENSION CNTypeRestrictions PRESENCE optional}|
+ { ID id-NRrestrictionin5GS CRITICALITY ignore EXTENSION NRrestrictionin5GS PRESENCE optional}|
+ { ID id-LastNG-RANPLMNIdentity CRITICALITY ignore EXTENSION PLMNidentity PRESENCE optional},
+ ...
+}
+
+HandoverType ::= ENUMERATED {
+ intralte,
+ ltetoutran,
+ ltetogeran,
+ utrantolte,
+ gerantolte,
+ ...,
+ eps-to-5gs,
+ fivegs-to-eps
+}
+
+HFN ::= INTEGER (0..1048575)
+
+HFNModified ::= INTEGER (0..131071)
+
+HFNforPDCP-SNlength18 ::= INTEGER (0..16383)
+
+-- I
+
+Masked-IMEISV ::= BIT STRING (SIZE (64))
+
+ImmediateMDT ::= SEQUENCE {
+ measurementsToActivate MeasurementsToActivate,
+ m1reportingTrigger M1ReportingTrigger,
+ m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL,
+-- Included in case of event-triggered, or event-triggered periodic reporting for measurement M1
+ m1periodicReporting M1PeriodicReporting OPTIONAL,
+-- Included in case of periodic or event-triggered periodic reporting
+ iE-Extensions ProtocolExtensionContainer { { ImmediateMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ImmediateMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-M3Configuration CRITICALITY ignore EXTENSION M3Configuration PRESENCE conditional}|
+ { ID id-M4Configuration CRITICALITY ignore EXTENSION M4Configuration PRESENCE conditional}|
+ { ID id-M5Configuration CRITICALITY ignore EXTENSION M5Configuration PRESENCE conditional}|
+ { ID id-MDT-Location-Info CRITICALITY ignore EXTENSION MDT-Location-Info PRESENCE optional}|
+ { ID id-M6Configuration CRITICALITY ignore EXTENSION M6Configuration PRESENCE conditional}|
+ { ID id-M7Configuration CRITICALITY ignore EXTENSION M7Configuration PRESENCE conditional}|
+ { ID id-BluetoothMeasurementConfiguration CRITICALITY ignore EXTENSION BluetoothMeasurementConfiguration PRESENCE optional}|
+ { ID id-WLANMeasurementConfiguration CRITICALITY ignore EXTENSION WLANMeasurementConfiguration PRESENCE optional},
+ ...
+}
+
+IMSI ::= OCTET STRING (SIZE (3..8))
+
+InformationOnRecommendedCellsAndENBsForPaging ::= SEQUENCE {
+ recommendedCellsForPaging RecommendedCellsForPaging,
+ recommendENBsForPaging RecommendedENBsForPaging,
+ iE-Extensions ProtocolExtensionContainer { { InformationOnRecommendedCellsAndENBsForPaging-ExtIEs} } OPTIONAL,
+ ...
+}
+
+InformationOnRecommendedCellsAndENBsForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...))
+
+IntendedNumberOfPagingAttempts ::= INTEGER (1..16, ...)
+
+InterfacesToTrace ::= BIT STRING (SIZE (8))
+
+IMSvoiceEPSfallbackfrom5G ::= ENUMERATED {
+ true,
+ ...
+}
+
+
+-- J
+-- K
+
+KillAllWarningMessages ::= ENUMERATED {true}
+
+-- L
+
+
+LAC ::= OCTET STRING (SIZE (2))
+
+LAI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lAC LAC,
+ iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LastVisitedCell-Item ::= CHOICE {
+ e-UTRAN-Cell LastVisitedEUTRANCellInformation,
+ uTRAN-Cell LastVisitedUTRANCellInformation,
+ gERAN-Cell LastVisitedGERANCellInformation,
+ ...,
+ nG-RAN-Cell LastVisitedNGRANCellInformation
+}
+LastVisitedEUTRANCellInformation ::= SEQUENCE {
+ global-Cell-ID EUTRAN-CGI,
+ cellType CellType,
+ time-UE-StayedInCell Time-UE-StayedInCell,
+ iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+LastVisitedEUTRANCellInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+-- Extension for Rel-11 to support enhanced granularity for time UE stayed in cell --
+ { ID id-Time-UE-StayedInCell-EnhancedGranularity CRITICALITY ignore EXTENSION Time-UE-StayedInCell-EnhancedGranularity PRESENCE optional}|
+ { ID id-HO-Cause CRITICALITY ignore EXTENSION Cause PRESENCE optional},
+ ...
+}
+
+LastVisitedNGRANCellInformation ::= OCTET STRING
+
+LastVisitedUTRANCellInformation ::= OCTET STRING
+
+LastVisitedGERANCellInformation ::= CHOICE {
+ undefined NULL,
+ ...
+}
+
+L3-Information ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+LPPa-PDU ::= OCTET STRING
+
+LHN-ID ::= OCTET STRING(SIZE (32..256))
+
+Links-to-log ::= ENUMERATED {uplink, downlink, both-uplink-and-downlink, ...}
+
+ListeningSubframePattern ::= SEQUENCE {
+ pattern-period ENUMERATED {ms1280, ms2560, ms5120, ms10240, ...},
+ pattern-offset INTEGER (0..10239, ...),
+ iE-Extensions ProtocolExtensionContainer { { ListeningSubframePattern-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ListeningSubframePattern-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+...
+}
+
+LoggedMDT ::= SEQUENCE {
+ loggingInterval LoggingInterval,
+ loggingDuration LoggingDuration,
+ iE-Extensions ProtocolExtensionContainer { {LoggedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LoggedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-BluetoothMeasurementConfiguration CRITICALITY ignore EXTENSION BluetoothMeasurementConfiguration PRESENCE optional}|
+ { ID id-WLANMeasurementConfiguration CRITICALITY ignore EXTENSION WLANMeasurementConfiguration PRESENCE optional},
+...
+}
+
+LoggingInterval ::= ENUMERATED {ms128, ms256, ms512, ms1024, ms2048, ms3072, ms4096, ms6144}
+
+LoggingDuration ::= ENUMERATED {m10, m20, m40, m60, m90, m120}
+
+LoggedMBSFNMDT ::= SEQUENCE {
+ loggingInterval LoggingInterval,
+ loggingDuration LoggingDuration,
+ mBSFN-ResultToLog MBSFN-ResultToLog OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { LoggedMBSFNMDT-ExtIEs } } OPTIONAL,
+ ...
+}
+
+LoggedMBSFNMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LTE-M-Indication ::= ENUMERATED {lte-m, ... }
+
+-- M
+
+M3Configuration ::= SEQUENCE {
+ m3period M3period,
+ iE-Extensions ProtocolExtensionContainer { { M3Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M3Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M3period ::= ENUMERATED {ms100, ms1000, ms10000, ...,ms1024, ms1280, ms2048, ms2560, ms5120, ms10240, min1 }
+
+M4Configuration ::= SEQUENCE {
+ m4period M4period,
+ m4-links-to-log Links-to-log,
+ iE-Extensions ProtocolExtensionContainer { { M4Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M4Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... }
+
+M5Configuration ::= SEQUENCE {
+ m5period M5period,
+ m5-links-to-log Links-to-log,
+ iE-Extensions ProtocolExtensionContainer { { M5Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M5Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M5period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... }
+
+M6Configuration ::= SEQUENCE {
+ m6report-Interval M6report-Interval,
+ m6delay-threshold M6delay-threshold OPTIONAL,
+-- This IE shall be present if the M6 Links to log IE is set to “uplink” or to “both-uplink-and-downlink” --
+ m6-links-to-log Links-to-log,
+ iE-Extensions ProtocolExtensionContainer { { M6Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M6Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M6report-Interval ::= ENUMERATED { ms1024, ms2048, ms5120, ms10240, ... }
+
+M6delay-threshold ::= ENUMERATED { ms30, ms40, ms50, ms60, ms70, ms80, ms90, ms100, ms150, ms300, ms500, ms750, ... }
+
+M7Configuration ::= SEQUENCE {
+ m7period M7period,
+ m7-links-to-log Links-to-log,
+ iE-Extensions ProtocolExtensionContainer { { M7Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M7Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M7period ::= INTEGER(1..60, ...)
+
+MDT-Activation ::= ENUMERATED {
+ immediate-MDT-only,
+ immediate-MDT-and-Trace,
+ logged-MDT-only,
+ ...,
+ logged-MBSFN-MDT
+}
+
+MDT-Location-Info ::= BIT STRING (SIZE (8))
+
+MDT-Configuration ::= SEQUENCE {
+ mdt-Activation MDT-Activation,
+ areaScopeOfMDT AreaScopeOfMDT,
+ mDTMode MDTMode,
+ iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+MDT-Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-SignallingBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional },
+ ...
+}
+
+ManagementBasedMDTAllowed ::= ENUMERATED {allowed, ...}
+
+MBSFN-ResultToLog ::= SEQUENCE (SIZE(1..maxnoofMBSFNAreaMDT)) OF MBSFN-ResultToLogInfo
+
+MBSFN-ResultToLogInfo ::= SEQUENCE {
+ mBSFN-AreaId INTEGER (0..255) OPTIONAL,
+ carrierFreq EARFCN,
+ iE-Extensions ProtocolExtensionContainer { { MBSFN-ResultToLogInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBSFN-ResultToLogInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MDTPLMNList ::= SEQUENCE (SIZE(1..maxnoofMDTPLMNs)) OF PLMNidentity
+
+PrivacyIndicator ::= ENUMERATED {
+ immediate-MDT,
+ logged-MDT,
+ ...
+}
+
+MDTMode ::= CHOICE {
+ immediateMDT ImmediateMDT,
+ loggedMDT LoggedMDT,
+ ...,
+ mDTMode-Extension MDTMode-Extension
+}
+
+MDTMode-Extension ::= ProtocolIE-SingleContainer {{ MDTMode-ExtensionIE }}
+
+MDTMode-ExtensionIE S1AP-PROTOCOL-IES ::= {
+ { ID id-LoggedMBSFNMDT CRITICALITY ignore TYPE LoggedMBSFNMDT PRESENCE mandatory}
+}
+
+MeasurementsToActivate ::= BIT STRING (SIZE (8))
+
+MeasurementThresholdA2 ::= CHOICE {
+ threshold-RSRP Threshold-RSRP,
+ threshold-RSRQ Threshold-RSRQ,
+ ...
+}
+
+MessageIdentifier ::= BIT STRING (SIZE (16))
+
+MobilityInformation ::= BIT STRING (SIZE(32))
+
+MMEname ::= PrintableString (SIZE (1..150,...))
+
+MMEPagingTarget ::= CHOICE {
+ global-ENB-ID Global-ENB-ID,
+ tAI TAI,
+ ...
+}
+
+MMERelaySupportIndicator ::= ENUMERATED {true, ...}
+
+MME-Group-ID ::= OCTET STRING (SIZE (2))
+
+MME-Code ::= OCTET STRING (SIZE (1))
+
+MME-UE-S1AP-ID ::= INTEGER (0..4294967295)
+M-TMSI ::= OCTET STRING (SIZE (4))
+
+MSClassmark2 ::= OCTET STRING
+MSClassmark3 ::= OCTET STRING
+
+MutingAvailabilityIndication ::= ENUMERATED {
+ available,
+ unavailable,
+ ...
+}
+
+
+MutingPatternInformation ::= SEQUENCE {
+ muting-pattern-period ENUMERATED {ms0, ms1280, ms2560, ms5120, ms10240, ...},
+ muting-pattern-offset INTEGER (0..10239, ...) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {MutingPatternInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MutingPatternInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- N
+
+NAS-PDU ::= OCTET STRING
+
+NASSecurityParametersfromE-UTRAN ::= OCTET STRING
+
+NASSecurityParameterstoE-UTRAN ::= OCTET STRING
+
+NB-IoT-DefaultPagingDRX ::= ENUMERATED {
+ v128,
+ v256,
+ v512,
+ v1024,
+ ...
+ }
+
+NB-IoT-Paging-eDRXInformation ::= SEQUENCE {
+ nB-IoT-paging-eDRX-Cycle NB-IoT-Paging-eDRX-Cycle,
+ nB-IoT-pagingTimeWindow NB-IoT-PagingTimeWindow OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { NB-IoT-Paging-eDRXInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NB-IoT-Paging-eDRXInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NB-IoT-Paging-eDRX-Cycle ::= ENUMERATED{hf2, hf4, hf6, hf8, hf10, hf12, hf14, hf16, hf32, hf64, hf128, hf256, hf512, hf1024, ...}
+
+NB-IoT-PagingTimeWindow ::= ENUMERATED{s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, ...}
+
+NB-IoT-UEIdentityIndexValue ::= BIT STRING (SIZE (12))
+
+NextPagingAreaScope ::= ENUMERATED {
+ same,
+ changed,
+ ...
+}
+
+
+NRCellIdentity ::= BIT STRING (SIZE(36))
+
+NR-CGI ::= SEQUENCE {
+ pLMNIdentity PLMNidentity,
+ nRCellIdentity NRCellIdentity,
+ iE-Extensions ProtocolExtensionContainer { {NR-CGI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NR-CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+NRencryptionAlgorithms ::= BIT STRING (SIZE (16,...))
+NRintegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...))
+
+NRrestrictioninEPSasSecondaryRAT ::= ENUMERATED {
+ nRrestrictedinEPSasSecondaryRAT,
+ ...
+}
+
+NRrestrictionin5GS ::= ENUMERATED {
+ nRrestrictedin5GS,
+ ...
+}
+
+NRUESecurityCapabilities ::= SEQUENCE {
+ nRencryptionAlgorithms NRencryptionAlgorithms,
+ nRintegrityProtectionAlgorithms NRintegrityProtectionAlgorithms,
+ iE-Extensions ProtocolExtensionContainer { { NRUESecurityCapabilities-ExtIEs} } OPTIONAL,
+...
+}
+
+NRUESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NumberofBroadcastRequest ::= INTEGER (0..65535)
+
+NumberOfBroadcasts ::= INTEGER (0..65535)
+
+-- O
+OldBSS-ToNewBSS-Information ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+OverloadAction ::= ENUMERATED {
+ reject-non-emergency-mo-dt,
+ reject-rrc-cr-signalling,
+ permit-emergency-sessions-and-mobile-terminated-services-only,
+ ...,
+ permit-high-priority-sessions-and-mobile-terminated-services-only,
+ reject-delay-tolerant-access,
+ permit-high-priority-sessions-and-exception-reporting-and-mobile-terminated-services-only,
+ not-accept-mo-data-or-delay-tolerant-access-from-CP-CIoT
+
+}
+
+OverloadResponse ::= CHOICE {
+ overloadAction OverloadAction,
+ ...
+}
+
+
+-- P
+
+Packet-LossRate ::= INTEGER(0..1000)
+
+PagingAttemptInformation ::= SEQUENCE {
+ pagingAttemptCount PagingAttemptCount,
+ intendedNumberOfPagingAttempts IntendedNumberOfPagingAttempts,
+ nextPagingAreaScope NextPagingAreaScope OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PagingAttemptInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PagingAttemptInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PagingAttemptCount ::= INTEGER (1..16, ...)
+
+Paging-eDRXInformation ::= SEQUENCE {
+ paging-eDRX-Cycle Paging-eDRX-Cycle,
+ pagingTimeWindow PagingTimeWindow OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Paging-eDRXInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Paging-eDRXInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Paging-eDRX-Cycle ::= ENUMERATED{hfhalf, hf1, hf2, hf4, hf6, hf8, hf10, hf12, hf14, hf16, hf32, hf64, hf128, hf256, ...}
+
+PagingTimeWindow ::= ENUMERATED{s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, ...}
+
+PagingDRX ::= ENUMERATED {
+ v32,
+ v64,
+ v128,
+ v256,
+ ...
+ }
+
+PagingPriority ::= ENUMERATED {
+ priolevel1,
+ priolevel2,
+ priolevel3,
+ priolevel4,
+ priolevel5,
+ priolevel6,
+ priolevel7,
+ priolevel8,
+ ...
+}
+
+PDCP-SN ::= INTEGER (0..4095)
+
+PDCP-SNExtended ::= INTEGER (0..32767)
+
+PDCP-SNlength18 ::= INTEGER (0..262143)
+
+PendingDataIndication ::= ENUMERATED {
+ true,
+ ...
+}
+
+M1PeriodicReporting ::= SEQUENCE {
+ reportInterval ReportIntervalMDT,
+ reportAmount ReportAmountMDT,
+ iE-Extensions ProtocolExtensionContainer { { M1PeriodicReporting-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M1PeriodicReporting-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PLMNidentity ::= TBCD-STRING
+
+PLMNAreaBasedQMC ::= SEQUENCE {
+ plmnListforQMC PLMNListforQMC,
+ iE-Extensions ProtocolExtensionContainer { {PLMNAreaBasedQMC-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PLMNAreaBasedQMC-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PLMNListforQMC ::= SEQUENCE (SIZE(1..maxnoofPLMNforQMC)) OF PLMNidentity
+
+Port-Number ::= OCTET STRING (SIZE (2))
+
+Pre-emptionCapability ::= ENUMERATED {
+ shall-not-trigger-pre-emption,
+ may-trigger-pre-emption
+}
+
+Pre-emptionVulnerability ::= ENUMERATED {
+ not-pre-emptable,
+ pre-emptable
+}
+
+PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15)
+
+ProSeAuthorized ::= SEQUENCE {
+ proSeDirectDiscovery ProSeDirectDiscovery OPTIONAL,
+ proSeDirectCommunication ProSeDirectCommunication OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {ProSeAuthorized-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ProSeAuthorized-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-ProSeUEtoNetworkRelaying CRITICALITY ignore EXTENSION ProSeUEtoNetworkRelaying PRESENCE optional},
+ ...
+}
+
+ProSeDirectDiscovery ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+ProSeUEtoNetworkRelaying ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+ProSeDirectCommunication ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+PS-ServiceNotAvailable ::= ENUMERATED {
+ ps-service-not-available,
+ ...
+}
+
+PSCellInformation ::= SEQUENCE {
+ nCGI NR-CGI,
+ iE-Extensions ProtocolExtensionContainer { { PSCellInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PSCellInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- Q
+
+QCI ::= INTEGER (0..255)
+
+-- R
+
+ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096))
+
+ReceiveStatusOfULPDCPSDUsExtended ::= BIT STRING (SIZE(1..16384))
+
+ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ::= BIT STRING (SIZE(1..131072))
+
+RecommendedCellsForPaging ::= SEQUENCE {
+ recommendedCellList RecommendedCellList,
+ iE-Extensions ProtocolExtensionContainer { { RecommendedCellsForPaging-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RecommendedCellsForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RecommendedCellList ::= SEQUENCE (SIZE(1.. maxnoofRecommendedCells)) OF ProtocolIE-SingleContainer { { RecommendedCellItemIEs } }
+
+RecommendedCellItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-RecommendedCellItem CRITICALITY ignore TYPE RecommendedCellItem PRESENCE mandatory },
+ ...
+}
+
+RecommendedCellItem::= SEQUENCE {
+ eUTRAN-CGI EUTRAN-CGI,
+ timeStayedInCell INTEGER (0..4095) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RecommendedCellsForPagingItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RecommendedCellsForPagingItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RecommendedENBsForPaging ::= SEQUENCE {
+ recommendedENBList RecommendedENBList,
+ iE-Extensions ProtocolExtensionContainer { { RecommendedENBsForPaging-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RecommendedENBsForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RecommendedENBList::= SEQUENCE (SIZE(1.. maxnoofRecommendedENBs)) OF ProtocolIE-SingleContainer { { RecommendedENBItemIEs } }
+
+RecommendedENBItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-RecommendedENBItem CRITICALITY ignore TYPE RecommendedENBItem PRESENCE mandatory },
+ ...
+}
+
+RecommendedENBItem ::= SEQUENCE {
+ mMEPagingTarget MMEPagingTarget,
+ iE-Extensions ProtocolExtensionContainer { { RecommendedENBItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RecommendedENBItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RelativeMMECapacity ::= INTEGER (0..255)
+
+RelayNode-Indicator ::= ENUMERATED {
+ true,
+ ...
+}
+
+RAC ::= OCTET STRING (SIZE (1))
+
+RAT-Type ::= ENUMERATED {
+ nbiot,
+ ...
+}
+
+ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity}
+
+ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60}
+
+M1ReportingTrigger ::= ENUMERATED{
+ periodic,
+ a2eventtriggered,
+ ...,
+ a2eventtriggered-periodic
+}
+
+RequestType ::= SEQUENCE {
+ eventType EventType,
+ reportArea ReportArea,
+ iE-Extensions ProtocolExtensionContainer { { RequestType-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+RequestType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-RequestTypeAdditionalInfo CRITICALITY ignore EXTENSION RequestTypeAdditionalInfo PRESENCE optional },
+ ...
+}
+
+RequestTypeAdditionalInfo ::= ENUMERATED {
+ includePSCell,
+ ...
+}
+
+RIMTransfer ::= SEQUENCE {
+ rIMInformation RIMInformation,
+ rIMRoutingAddress RIMRoutingAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RIMTransfer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RIMTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RIMInformation ::= OCTET STRING
+
+RIMRoutingAddress ::= CHOICE {
+ gERAN-Cell-ID GERAN-Cell-ID,
+ ...,
+ targetRNC-ID TargetRNC-ID,
+ eHRPD-Sector-ID OCTET STRING (SIZE(16))
+}
+
+ReportArea ::= ENUMERATED {
+ ecgi,
+ ...
+}
+
+RepetitionPeriod ::= INTEGER (0..4095)
+
+RLFReportInformation ::= SEQUENCE {
+ uE-RLF-Report-Container UE-RLF-Report-Container,
+ uE-RLF-Report-Container-for-extended-bands UE-RLF-Report-Container-for-extended-bands OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{ RLFReportInformation-ExtIEs}} OPTIONAL,
+ ...
+}
+
+RLFReportInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RNC-ID ::= INTEGER (0..4095)
+
+RRC-Container ::= OCTET STRING
+
+RRC-Establishment-Cause ::= ENUMERATED {
+ emergency,
+ highPriorityAccess,
+ mt-Access,
+ mo-Signalling,
+ mo-Data,
+ ...,
+ delay-TolerantAccess,
+ mo-VoiceCall,
+ mo-ExceptionData
+}
+
+ECGIListForRestart ::= SEQUENCE (SIZE(1..maxnoofCellsforRestart)) OF EUTRAN-CGI
+
+Routing-ID ::= INTEGER (0..255)
+
+-- S
+
+
+SecurityKey ::= BIT STRING (SIZE(256))
+
+
+
+SecurityContext ::= SEQUENCE {
+ nextHopChainingCount INTEGER (0..7),
+ nextHopParameter SecurityKey,
+ iE-Extensions ProtocolExtensionContainer { { SecurityContext-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+SecurityContext-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SecondaryRATType ::= ENUMERATED {
+ nR,
+ ...,
+ unlicensed
+}
+
+
+SecondaryRATDataUsageRequest ::= ENUMERATED {
+ requested,
+ ...
+}
+
+SecondaryRATDataUsageReportList ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {SecondaryRATDataUsageReportItemIEs} }
+
+SecondaryRATDataUsageReportItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SecondaryRATDataUsageReportItem CRITICALITY ignore TYPE SecondaryRATDataUsageReportItem PRESENCE mandatory },
+ ...
+}
+
+SecondaryRATDataUsageReportItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ secondaryRATType SecondaryRATType,
+ e-RABUsageReportList E-RABUsageReportList,
+ iE-Extensions ProtocolExtensionContainer { { SecondaryRATDataUsageReportItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SecondaryRATDataUsageReportItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SerialNumber ::= BIT STRING (SIZE (16))
+
+ServiceType ::= ENUMERATED{
+ qMC-for-streaming-service,
+ qMC-for-MTSI-service,
+ ...
+}
+
+SONInformation ::= CHOICE{
+ sONInformationRequest SONInformationRequest,
+ sONInformationReply SONInformationReply,
+ ...,
+ sONInformation-Extension SONInformation-Extension
+}
+
+SONInformation-Extension ::= ProtocolIE-SingleContainer {{ SONInformation-ExtensionIE }}
+
+SONInformation-ExtensionIE S1AP-PROTOCOL-IES ::= {
+ { ID id-SON-Information-Report CRITICALITY ignore TYPE SONInformationReport PRESENCE mandatory}
+}
+
+SONInformationRequest ::= ENUMERATED {
+ x2TNL-Configuration-Info,
+ ...,
+ time-Synchronisation-Info,
+ activate-Muting,
+ deactivate-Muting}
+
+SONInformationReply ::= SEQUENCE {
+ x2TNLConfigurationInfo X2TNLConfigurationInfo OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{SONInformationReply-ExtIEs}} OPTIONAL,
+ ...
+}
+
+SONInformationReply-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 9 to transfer Time synchronisation information --
+ {ID id-Time-Synchronisation-Info CRITICALITY ignore EXTENSION TimeSynchronisationInfo PRESENCE optional},
+ ...,
+ {ID id-Muting-Pattern-Information CRITICALITY ignore EXTENSION MutingPatternInformation PRESENCE optional}
+}
+
+SONInformationReport ::= CHOICE{
+ rLFReportInformation RLFReportInformation,
+ ...
+}
+
+SONConfigurationTransfer ::= SEQUENCE {
+ targeteNB-ID TargeteNB-ID,
+ sourceeNB-ID SourceeNB-ID,
+ sONInformation SONInformation,
+ iE-Extensions ProtocolExtensionContainer { { SONConfigurationTransfer-ExtIEs} } OPTIONAL,
+...
+}
+
+SONConfigurationTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 10 to transfer the IP addresses of the eNB initiating the ANR action --
+ {ID id-x2TNLConfigurationInfo CRITICALITY ignore EXTENSION X2TNLConfigurationInfo PRESENCE conditional
+ -- This IE shall be present if the SON Information IE contains the SON Information Request IE and the SON Information Request IE is set to “X2TNL Configuration Info” --}|
+-- Extension for Release 12 to transfer information concerning the source cell of synchronisation and the aggressor cell --
+ {ID id-Synchronisation-Information CRITICALITY ignore EXTENSION SynchronisationInformation PRESENCE conditional
+ -- This IE shall be present if the SON Information IE contains the SON Information Request IE set to “ Activate Muting ” --},
+ ...
+}
+
+
+SynchronisationInformation ::= SEQUENCE {
+ sourceStratumLevel StratumLevel OPTIONAL,
+ listeningSubframePattern ListeningSubframePattern OPTIONAL,
+ aggressoreCGI-List ECGI-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {SynchronisationInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SynchronisationInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Source-ToTarget-TransparentContainer ::= OCTET STRING
+-- This IE includes a transparent container from the source RAN node to the target RAN node.
+-- The octets of the OCTET STRING are encoded according to the specifications of the target system.
+
+SourceBSS-ToTargetBSS-TransparentContainer ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+SourceeNB-ID ::= SEQUENCE {
+ global-ENB-ID Global-ENB-ID,
+ selected-TAI TAI,
+ iE-Extensions ProtocolExtensionContainer { {SourceeNB-ID-ExtIEs} } OPTIONAL
+}
+
+SourceeNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRVCCOperationNotPossible ::= ENUMERATED {
+ notPossible,
+ ...
+}
+
+SRVCCOperationPossible ::= ENUMERATED {
+ possible,
+ ...
+}
+
+SRVCCHOIndication ::= ENUMERATED {
+ pSandCS,
+ cSonly,
+ ...
+}
+
+SourceeNB-ToTargeteNB-TransparentContainer ::= SEQUENCE {
+ rRC-Container RRC-Container,
+ e-RABInformationList E-RABInformationList OPTIONAL,
+ targetCell-ID EUTRAN-CGI,
+ subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL,
+ uE-HistoryInformation UE-HistoryInformation,
+ iE-Extensions ProtocolExtensionContainer { {SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ {ID id-MobilityInformation CRITICALITY ignore EXTENSION MobilityInformation PRESENCE optional}|
+ {ID id-uE-HistoryInformationFromTheUE CRITICALITY ignore EXTENSION UE-HistoryInformationFromTheUE PRESENCE optional}|
+ {ID id-IMSvoiceEPSfallbackfrom5G CRITICALITY ignore EXTENSION IMSvoiceEPSfallbackfrom5G PRESENCE optional},
+ ...
+}
+
+
+SourceRNC-ToTargetRNC-TransparentContainer ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+SourceNgRanNode-ToTargetNgRanNode-TransparentContainer ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+ServedGUMMEIs ::= SEQUENCE (SIZE (1.. maxnoofRATs)) OF ServedGUMMEIsItem
+
+ServedGUMMEIsItem ::= SEQUENCE {
+ servedPLMNs ServedPLMNs,
+ servedGroupIDs ServedGroupIDs,
+ servedMMECs ServedMMECs,
+ iE-Extensions ProtocolExtensionContainer { {ServedGUMMEIsItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ServedGUMMEIsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ServedGroupIDs ::= SEQUENCE (SIZE(1.. maxnoofGroupIDs)) OF MME-Group-ID
+ServedMMECs ::= SEQUENCE (SIZE(1.. maxnoofMMECs)) OF MME-Code
+
+ServedPLMNs ::= SEQUENCE (SIZE(1.. maxnoofPLMNsPerMME)) OF PLMNidentity
+
+SubscriberProfileIDforRFP ::= INTEGER (1..256)
+
+Subscription-Based-UE-DifferentiationInfo ::= SEQUENCE {
+ periodicCommunicationIndicator ENUMERATED {periodically, ondemand, ...} OPTIONAL,
+ periodicTime INTEGER (1..3600, ...) OPTIONAL,
+ scheduledCommunicationTime ScheduledCommunicationTime OPTIONAL,
+ stationaryIndication ENUMERATED {stationary, mobile, ...} OPTIONAL,
+ trafficProfile ENUMERATED {single-packet, dual-packets, multiple-packets, ...} OPTIONAL,
+ batteryIndication ENUMERATED {battery-powered, battery-powered-not-rechargeable-or-replaceable, not-battery-powered, ...} OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Subscription-Based-UE-DifferentiationInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Subscription-Based-UE-DifferentiationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ScheduledCommunicationTime ::= SEQUENCE {
+ dayofWeek BIT STRING (SIZE(7)) OPTIONAL,
+ timeofDayStart INTEGER (0..86399, ...) OPTIONAL,
+ timeofDayEnd INTEGER (0..86399, ...) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ScheduledCommunicationTime-ExtIEs}} OPTIONAL,
+ ...
+}
+
+ScheduledCommunicationTime-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SupportedTAs ::= SEQUENCE (SIZE(1.. maxnoofTACs)) OF SupportedTAs-Item
+
+SupportedTAs-Item ::= SEQUENCE {
+ tAC TAC,
+ broadcastPLMNs BPLMNs,
+ iE-Extensions ProtocolExtensionContainer { {SupportedTAs-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SupportedTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ -- Extension for Release 13 to transfer RAT-Type per TAC --
+ {ID id-RAT-Type CRITICALITY reject EXTENSION RAT-Type PRESENCE optional},
+ ...
+}
+
+StratumLevel ::= INTEGER (0..3, ...)
+
+SynchronisationStatus ::= ENUMERATED { synchronous, asynchronous, ... }
+
+TimeSynchronisationInfo ::= SEQUENCE {
+ stratumLevel StratumLevel,
+ synchronisationStatus SynchronisationStatus,
+ iE-Extensions ProtocolExtensionContainer { { TimeSynchronisationInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TimeSynchronisationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ -- Extension for Release 12 to transfer Muting Availability Indication --
+ {ID id-Muting-Availability-Indication CRITICALITY ignore EXTENSION MutingAvailabilityIndication PRESENCE optional},
+ ...
+}
+
+S-TMSI ::= SEQUENCE {
+ mMEC MME-Code,
+ m-TMSI M-TMSI,
+ iE-Extensions ProtocolExtensionContainer { {S-TMSI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+S-TMSI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- T
+
+TAC ::= OCTET STRING (SIZE (2))
+
+TAIBasedMDT ::= SEQUENCE {
+ tAIListforMDT TAIListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {TAIBasedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAIBasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAIListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAI
+
+TAIListforWarning ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI
+
+TAI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ tAC TAC,
+ iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAI-Broadcast ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Broadcast-Item
+
+TAI-Broadcast-Item ::= SEQUENCE {
+ tAI TAI,
+ completedCellinTAI CompletedCellinTAI,
+ iE-Extensions ProtocolExtensionContainer { {TAI-Broadcast-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAI-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAI-Cancelled ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Cancelled-Item
+
+TAI-Cancelled-Item ::= SEQUENCE {
+ tAI TAI,
+ cancelledCellinTAI CancelledCellinTAI,
+ iE-Extensions ProtocolExtensionContainer { {TAI-Cancelled-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAI-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TABasedMDT ::= SEQUENCE {
+ tAListforMDT TAListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TABasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC
+
+TABasedQMC ::= SEQUENCE {
+ tAListforQMC TAListforQMC,
+ iE-Extensions ProtocolExtensionContainer { {TABasedQMC-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TABasedQMC-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAListforQMC ::= SEQUENCE (SIZE(1..maxnoofTAforQMC)) OF TAC
+
+TAIBasedQMC ::= SEQUENCE {
+ tAIListforQMC TAIListforQMC,
+ iE-Extensions ProtocolExtensionContainer { {TAIBasedQMC-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAIBasedQMC-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAIListforQMC ::= SEQUENCE (SIZE(1..maxnoofTAforQMC)) OF TAI
+
+CompletedCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CompletedCellinTAI-Item
+
+CompletedCellinTAI-Item ::= SEQUENCE{
+ eCGI EUTRAN-CGI,
+ iE-Extensions ProtocolExtensionContainer { {CompletedCellinTAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CompletedCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TBCD-STRING ::= OCTET STRING (SIZE (3))
+
+TargetID ::= CHOICE {
+ targeteNB-ID TargeteNB-ID,
+ targetRNC-ID TargetRNC-ID,
+ cGI CGI,
+ ...,
+ targetgNgRanNode-ID TargetNgRanNode-ID
+}
+
+TargeteNB-ID ::= SEQUENCE {
+ global-ENB-ID Global-ENB-ID,
+ selected-TAI TAI,
+ iE-Extensions ProtocolExtensionContainer { {TargeteNB-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TargeteNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TargetRNC-ID ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC OPTIONAL,
+ rNC-ID RNC-ID,
+ extendedRNC-ID ExtendedRNC-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {TargetRNC-ID-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+
+TargetRNC-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TargetNgRanNode-ID ::= SEQUENCE {
+ global-RAN-NODE-ID Global-RAN-NODE-ID,
+ selected-TAI FiveGSTAI,
+ iE-Extensions ProtocolExtensionContainer { { TargetNgRanNode-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TargetNgRanNode-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Global-RAN-NODE-ID::= CHOICE {
+ gNB GNB,
+ ng-eNB NG-eNB,
+ ...
+}
+
+GNB ::= SEQUENCE {
+ global-gNB-ID Global-GNB-ID,
+ iE-Extensions ProtocolExtensionContainer { {GNB-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GNB-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Global-GNB-ID ::= SEQUENCE {
+ pLMN-Identity PLMNidentity,
+ gNB-ID GNB-Identity,
+ iE-Extensions ProtocolExtensionContainer { { Global-GNB-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Global-GNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GNB-Identity ::= CHOICE {
+ gNB-ID GNB-ID,
+ ...
+}
+
+NG-eNB ::= SEQUENCE {
+ global-ng-eNB-ID Global-ENB-ID,
+ iE-Extensions ProtocolExtensionContainer { { NG-eNB-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NG-eNB-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GNB-ID ::= BIT STRING (SIZE(22..32))
+
+TargeteNB-ToSourceeNB-TransparentContainer ::= SEQUENCE {
+ rRC-Container RRC-Container,
+ iE-Extensions ProtocolExtensionContainer { {TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Target-ToSource-TransparentContainer ::= OCTET STRING
+-- This IE includes a transparent container from the target RAN node to the source RAN node.
+-- The octets of the OCTET STRING are coded according to the specifications of the target system.
+
+TargetRNC-ToSourceRNC-TransparentContainer ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+TargetBSS-ToSourceBSS-TransparentContainer ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+TargetNgRanNode-ToSourceNgRanNode-TransparentContainer ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+M1ThresholdEventA2 ::= SEQUENCE {
+ measurementThreshold MeasurementThresholdA2,
+ iE-Extensions ProtocolExtensionContainer { { M1ThresholdEventA2-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M1ThresholdEventA2-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Threshold-RSRP ::= INTEGER(0..97)
+
+Threshold-RSRQ ::= INTEGER(0..34)
+
+TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...}
+
+Time-UE-StayedInCell ::= INTEGER (0..4095)
+
+Time-UE-StayedInCell-EnhancedGranularity ::= INTEGER (0..40950)
+
+TimeSinceSecondaryNodeRelease ::= OCTET STRING (SIZE(4))
+
+TransportInformation ::= SEQUENCE {
+ transportLayerAddress TransportLayerAddress,
+ uL-GTP-TEID GTP-TEID,
+ ...
+}
+
+TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...))
+
+TraceActivation ::= SEQUENCE {
+ e-UTRAN-Trace-ID E-UTRAN-Trace-ID,
+ interfacesToTrace InterfacesToTrace,
+traceDepth TraceDepth,
+traceCollectionEntityIPAddress TransportLayerAddress,
+ iE-Extensions ProtocolExtensionContainer { { TraceActivation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TraceActivation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+-- Extension for Rel-10 to support MDT --
+ { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional }|
+-- Extension for Rel-15 to support QMC –
+ { ID id-UEAppLayerMeasConfig CRITICALITY ignore EXTENSION UEAppLayerMeasConfig PRESENCE optional },
+ ...
+}
+
+TraceDepth ::= ENUMERATED {
+ minimum,
+ medium,
+ maximum,
+ minimumWithoutVendorSpecificExtension,
+ mediumWithoutVendorSpecificExtension,
+ maximumWithoutVendorSpecificExtension,
+ ...
+}
+
+E-UTRAN-Trace-ID ::= OCTET STRING (SIZE (8))
+
+TrafficLoadReductionIndication ::= INTEGER (1..99)
+
+TunnelInformation ::= SEQUENCE {
+ transportLayerAddress TransportLayerAddress,
+ uDP-Port-Number Port-Number OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Tunnel-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Tunnel-Information-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TypeOfError ::= ENUMERATED {
+ not-understood,
+ missing,
+ ...
+}
+
+TAIListForRestart ::= SEQUENCE (SIZE(1..maxnoofRestartTAIs)) OF TAI
+
+-- U
+
+UEAggregateMaximumBitrate ::= SEQUENCE {
+ uEaggregateMaximumBitRateDL BitRate,
+ uEaggregateMaximumBitRateUL BitRate,
+ iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrates-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UEAggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+-- Extension for maximum bitrate > 10G bps --
+ { ID id-extended-uEaggregateMaximumBitRateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}|
+ { ID id-extended-uEaggregateMaximumBitRateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional},
+ ...
+}
+
+UEAppLayerMeasConfig ::= SEQUENCE {
+ containerForAppLayerMeasConfig OCTET STRING (SIZE(1..1000)),
+ areaScopeOfQMC AreaScopeOfQMC,
+ iE-Extensions ProtocolExtensionContainer { {UEAppLayerMeasConfig-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UEAppLayerMeasConfig-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ {ID id-serviceType CRITICALITY ignore EXTENSION ServiceType PRESENCE optional},
+ ...
+}
+
+UECapabilityInfoRequest ::= ENUMERATED {
+ requested,
+ ...
+}
+
+UE-RetentionInformation ::= ENUMERATED {
+ ues-retained,
+ ...}
+
+UE-S1AP-IDs ::= CHOICE{
+ uE-S1AP-ID-pair UE-S1AP-ID-pair,
+ mME-UE-S1AP-ID MME-UE-S1AP-ID,
+ ...
+}
+
+UE-S1AP-ID-pair ::= SEQUENCE{
+ mME-UE-S1AP-ID MME-UE-S1AP-ID,
+ eNB-UE-S1AP-ID ENB-UE-S1AP-ID,
+ iE-Extensions ProtocolExtensionContainer { {UE-S1AP-ID-pair-ExtIEs} } OPTIONAL,
+ ...
+}
+UE-S1AP-ID-pair-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+UE-associatedLogicalS1-ConnectionItem ::= SEQUENCE {
+ mME-UE-S1AP-ID MME-UE-S1AP-ID OPTIONAL,
+ eNB-UE-S1AP-ID ENB-UE-S1AP-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UE-associatedLogicalS1-ConnectionItemExtIEs} } OPTIONAL,
+ ...
+}
+
+
+UE-associatedLogicalS1-ConnectionItemExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UEIdentityIndexValue ::= BIT STRING (SIZE (10))
+
+UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCellsinUEHistoryInfo)) OF LastVisitedCell-Item
+
+UE-HistoryInformationFromTheUE ::= OCTET STRING
+-- This IE is a transparent container and shall be encoded as the VisitedCellInfoList field contained in the UEInformationResponse message as defined in TS 36.331 [16]
+
+UEPagingID ::= CHOICE {
+ s-TMSI S-TMSI,
+ iMSI IMSI,
+ ...
+ }
+
+UERadioCapability ::= OCTET STRING
+
+UERadioCapabilityForPaging ::= OCTET STRING
+
+UE-RLF-Report-Container ::= OCTET STRING
+-- This IE is a transparent container and shall be encoded as the rlf-Report-r9 field contained in the UEInformationResponse message as defined in TS 36.331 [16]
+
+UE-RLF-Report-Container-for-extended-bands ::= OCTET STRING
+-- This IE is a transparent container and shall be encoded as the rlf-Report-v9e0 contained in the UEInformationResponse message as defined in TS 36.331 [16]
+
+UESecurityCapabilities ::= SEQUENCE {
+ encryptionAlgorithms EncryptionAlgorithms,
+ integrityProtectionAlgorithms IntegrityProtectionAlgorithms,
+ iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL,
+...
+}
+
+UESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UESidelinkAggregateMaximumBitrate ::= SEQUENCE {
+ uESidelinkAggregateMaximumBitRate BitRate,
+ iE-Extensions ProtocolExtensionContainer { {UE-Sidelink-Aggregate-MaximumBitrates-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UE-Sidelink-Aggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UE-Usage-Type ::= INTEGER (0..255)
+
+UL-CP-SecurityInformation ::= SEQUENCE {
+ ul-NAS-MAC UL-NAS-MAC,
+ ul-NAS-Count UL-NAS-Count,
+ iE-Extensions ProtocolExtensionContainer { { UL-CP-SecurityInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CP-SecurityInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-NAS-MAC ::= BIT STRING (SIZE (16))
+
+UL-NAS-Count ::= BIT STRING (SIZE (5))
+
+UnlicensedSpectrumRestriction ::= ENUMERATED {
+ unlicensed-restricted,
+ ...
+}
+
+
+UserLocationInformation ::= SEQUENCE {
+ eutran-cgi EUTRAN-CGI,
+ tai TAI,
+ iE-Extensions ProtocolExtensionContainer { { UserLocationInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UserLocationInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-PSCellInformation CRITICALITY ignore EXTENSION PSCellInformation PRESENCE optional},
+ ...
+}
+
+UEUserPlaneCIoTSupportIndicator ::= ENUMERATED {
+ supported,
+ ...
+}
+
+UE-Application-Layer-Measurement-Capability ::= BIT STRING (SIZE (8))
+
+-- First bit: QoE Measurement for streaming service
+-- Second bit: QoE Measurement for MTSI service
+
+-- Note that undefined bits are considered as a spare bit and spare bits shall be set to 0 by the transmitter and shall be ignored by the receiver.
+
+-- V
+
+VoiceSupportMatchIndicator ::= ENUMERATED {
+ supported,
+ not-supported,
+ ...
+}
+
+V2XServicesAuthorized ::= SEQUENCE {
+ vehicleUE VehicleUE OPTIONAL,
+ pedestrianUE PedestrianUE OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {V2XServicesAuthorized-ExtIEs} } OPTIONAL,
+ ...
+}
+
+V2XServicesAuthorized-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+VehicleUE ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+PedestrianUE ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+-- W
+
+WarningAreaCoordinates ::= OCTET STRING (SIZE(1..1024))
+
+WarningAreaList ::= CHOICE {
+ cellIDList ECGIList,
+ trackingAreaListforWarning TAIListforWarning,
+ emergencyAreaIDList EmergencyAreaIDList,
+ ...
+}
+
+
+WarningType ::= OCTET STRING (SIZE (2))
+
+WarningSecurityInfo ::= OCTET STRING (SIZE (50))
+
+
+WarningMessageContents ::= OCTET STRING (SIZE(1..9600))
+
+WLANMeasurementConfiguration ::= SEQUENCE {
+ wlanMeasConfig WLANMeasConfig,
+ wlanMeasConfigNameList WLANMeasConfigNameList OPTIONAL,
+ wlan-rssi ENUMERATED {true, ...} OPTIONAL,
+ wlan-rtt ENUMERATED {true, ...} OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { WLANMeasurementConfiguration-ExtIEs } } OPTIONAL,
+ ...
+}
+
+WLANMeasurementConfiguration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+WLANMeasConfigNameList ::= SEQUENCE (SIZE(1..maxnoofWLANName)) OF WLANName
+
+WLANMeasConfig::= ENUMERATED {setup,...}
+
+WLANName ::= OCTET STRING (SIZE (1..32))
+
+-- X
+
+
+X2TNLConfigurationInfo ::= SEQUENCE {
+ eNBX2TransportLayerAddresses ENBX2TLAs,
+ iE-Extensions ProtocolExtensionContainer { { X2TNLConfigurationInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+X2TNLConfigurationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 10 to transfer the IPsec and U-plane addresses during ANR action --
+ {ID id-eNBX2ExtendedTransportLayerAddresses CRITICALITY ignore EXTENSION ENBX2ExtTLAs PRESENCE optional}|
+-- Extension for Release 12 to transfer the IP addresses of the X2 GW --
+ {ID id-eNBIndirectX2TransportLayerAddresses CRITICALITY ignore EXTENSION ENBIndirectX2TransportLayerAddresses PRESENCE optional},
+ ...
+}
+
+ENBX2ExtTLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2ExtTLAs)) OF ENBX2ExtTLA
+
+ENBX2ExtTLA ::= SEQUENCE {
+ iPsecTLA TransportLayerAddress OPTIONAL,
+ gTPTLAa ENBX2GTPTLAs OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ENBX2ExtTLA-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ENBX2ExtTLA-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ENBX2GTPTLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2GTPTLAs)) OF TransportLayerAddress
+
+ENBIndirectX2TransportLayerAddresses ::= SEQUENCE (SIZE(1..maxnoofeNBX2TLAs)) OF TransportLayerAddress
+
+-- Y
+-- Z
+
+END
diff --git a/src/s1ap/asn1c/asnGenFiles/asn1c/S1AP-PDU-Contents.asn b/src/s1ap/asn1c/asnGenFiles/asn1c/S1AP-PDU-Contents.asn
new file mode 100644
index 0000000..f0e2003
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/asn1c/S1AP-PDU-Contents.asn
@@ -0,0 +1,3131 @@
+-- **************************************************************
+--
+-- PDU definitions for S1AP.
+--
+-- **************************************************************
+
+S1AP-PDU-Contents {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Contents (1) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+
+ UEAggregateMaximumBitrate,
+ BearerType,
+ Cause,
+ CellAccessMode,
+ Cdma2000HORequiredIndication,
+ Cdma2000HOStatus,
+ Cdma2000OneXSRVCCInfo,
+ Cdma2000OneXRAND,
+ Cdma2000PDU,
+ Cdma2000RATType,
+ Cdma2000SectorID,
+ EUTRANRoundTripDelayEstimationInfo,
+ CNDomain,
+ ConcurrentWarningMessageIndicator,
+ CriticalityDiagnostics,
+ CSFallbackIndicator,
+ CSG-Id,
+ CSG-IdList,
+ CSGMembershipStatus,
+ Data-Forwarding-Not-Possible,
+ Direct-Forwarding-Path-Availability,
+ Global-ENB-ID,
+ EUTRAN-CGI,
+ ENBname,
+ ENB-StatusTransfer-TransparentContainer,
+ ENB-UE-S1AP-ID,
+ ExtendedRepetitionPeriod,
+ GTP-TEID,
+ GUMMEI,
+ GUMMEIType,
+ HandoverRestrictionList,
+ HandoverType,
+ Masked-IMEISV,
+ LAI,
+ LPPa-PDU,
+ ManagementBasedMDTAllowed,
+ MDTPLMNList,
+ MMEname,
+ MMERelaySupportIndicator,
+ MME-UE-S1AP-ID,
+ MSClassmark2,
+ MSClassmark3,
+ NAS-PDU,
+ NASSecurityParametersfromE-UTRAN,
+ NASSecurityParameterstoE-UTRAN,
+ OverloadResponse,
+ PagingDRX,
+ PagingPriority,
+ PLMNidentity,
+ ProSeAuthorized,
+ RIMTransfer,
+ RelativeMMECapacity,
+ RequestType,
+ E-RAB-ID,
+ E-RABLevelQoSParameters,
+ E-RABList,
+ RelayNode-Indicator,
+ Routing-ID,
+ SecurityKey,
+ SecurityContext,
+ ServedGUMMEIs,
+ SONConfigurationTransfer,
+ Source-ToTarget-TransparentContainer,
+ SourceBSS-ToTargetBSS-TransparentContainer,
+ SourceeNB-ToTargeteNB-TransparentContainer,
+ SourceRNC-ToTargetRNC-TransparentContainer,
+ SubscriberProfileIDforRFP,
+ SRVCCOperationNotPossible,
+ SRVCCOperationPossible,
+ SRVCCHOIndication,
+ SupportedTAs,
+ TAI,
+ Target-ToSource-TransparentContainer,
+ TargetBSS-ToSourceBSS-TransparentContainer,
+ TargeteNB-ToSourceeNB-TransparentContainer,
+ TargetID,
+ TargetRNC-ToSourceRNC-TransparentContainer,
+ TimeToWait,
+ TraceActivation,
+ TrafficLoadReductionIndication,
+ E-UTRAN-Trace-ID,
+ TransportLayerAddress,
+ UEIdentityIndexValue,
+ UEPagingID,
+ UERadioCapability,
+ UERadioCapabilityForPaging,
+ UE-RetentionInformation,
+ UE-S1AP-IDs,
+ UE-associatedLogicalS1-ConnectionItem,
+ UESecurityCapabilities,
+ S-TMSI,
+ MessageIdentifier,
+ SerialNumber,
+ WarningAreaList,
+ RepetitionPeriod,
+ NumberofBroadcastRequest,
+ WarningType,
+ WarningSecurityInfo,
+ DataCodingScheme,
+ WarningMessageContents,
+ BroadcastCompletedAreaList,
+ RRC-Establishment-Cause,
+ BroadcastCancelledAreaList,
+ PS-ServiceNotAvailable,
+ GUMMEIList,
+ Correlation-ID,
+ GWContextReleaseIndication,
+ PrivacyIndicator,
+ VoiceSupportMatchIndicator,
+ TunnelInformation,
+ KillAllWarningMessages,
+ TransportInformation,
+ LHN-ID,
+ UserLocationInformation,
+ AdditionalCSFallbackIndicator,
+ ECGIListForRestart,
+ TAIListForRestart,
+ EmergencyAreaIDListForRestart,
+ ExpectedUEBehaviour,
+ Paging-eDRXInformation,
+ Extended-UEIdentityIndexValue,
+ MME-Group-ID,
+ Additional-GUTI,
+ PWSfailedECGIList,
+ CellIdentifierAndCELevelForCECapableUEs,
+ AssistanceDataForPaging,
+ InformationOnRecommendedCellsAndENBsForPaging,
+ UE-Usage-Type,
+ UEUserPlaneCIoTSupportIndicator,
+ NB-IoT-DefaultPagingDRX,
+ NB-IoT-Paging-eDRXInformation,
+ CE-mode-B-SupportIndicator,
+ NB-IoT-UEIdentityIndexValue,
+ V2XServicesAuthorized,
+ DCN-ID,
+ ServedDCNs,
+ UESidelinkAggregateMaximumBitrate,
+ DLNASPDUDeliveryAckRequest,
+ Coverage-Level,
+ EnhancedCoverageRestricted,
+ DL-CP-SecurityInformation,
+ UL-CP-SecurityInformation,
+ SecondaryRATDataUsageRequest,
+ SecondaryRATDataUsageReportList,
+ HandoverFlag,
+ NRUESecurityCapabilities,
+ UE-Application-Layer-Measurement-Capability,
+ CE-ModeBRestricted,
+ Packet-LossRate,
+ UECapabilityInfoRequest,
+ SourceNgRanNode-ToTargetNgRanNode-TransparentContainer,
+ TargetNgRanNode-ToSourceNgRanNode-TransparentContainer,
+ EndIndication,
+ EDT-Session,
+ LTE-M-Indication,
+ AerialUEsubscriptionInformation,
+ PendingDataIndication,
+ WarningAreaCoordinates,
+ Subscription-Based-UE-DifferentiationInfo,
+ PSCellInformation,
+ NR-CGI,
+ maxnoofE-RABs,
+ ConnectedengNBList,
+ EN-DCSONConfigurationTransfer,
+ TimeSinceSecondaryNodeRelease
+
+
+
+
+FROM S1AP-IEs
+
+ PrivateIE-Container{},
+ ProtocolExtensionContainer{},
+ ProtocolIE-Container{},
+ ProtocolIE-ContainerList{},
+ ProtocolIE-ContainerPair{},
+ ProtocolIE-ContainerPairList{},
+ ProtocolIE-SingleContainer{},
+ S1AP-PRIVATE-IES,
+ S1AP-PROTOCOL-EXTENSION,
+ S1AP-PROTOCOL-IES,
+ S1AP-PROTOCOL-IES-PAIR
+FROM S1AP-Containers
+
+
+ id-AssistanceDataForPaging,
+ id-AerialUEsubscriptionInformation,
+ id-uEaggregateMaximumBitrate,
+ id-BearerType,
+ id-Cause,
+ id-CellAccessMode,
+ id-CellIdentifierAndCELevelForCECapableUEs,
+ id-cdma2000HORequiredIndication,
+ id-cdma2000HOStatus,
+ id-cdma2000OneXSRVCCInfo,
+ id-cdma2000OneXRAND,
+ id-cdma2000PDU,
+ id-cdma2000RATType,
+ id-cdma2000SectorID,
+ id-EUTRANRoundTripDelayEstimationInfo,
+ id-CNDomain,
+ id-ConcurrentWarningMessageIndicator,
+ id-CriticalityDiagnostics,
+ id-CSFallbackIndicator,
+ id-CSG-Id,
+ id-CSG-IdList,
+ id-CSGMembershipStatus,
+ id-Data-Forwarding-Not-Possible,
+ id-DefaultPagingDRX,
+ id-Direct-Forwarding-Path-Availability,
+ id-Global-ENB-ID,
+ id-EUTRAN-CGI,
+ id-eNBname,
+ id-eNB-StatusTransfer-TransparentContainer,
+ id-eNB-UE-S1AP-ID,
+ id-GERANtoLTEHOInformationRes,
+ id-GUMMEI-ID,
+ id-GUMMEIType,
+ id-HandoverRestrictionList,
+ id-HandoverType,
+ id-Masked-IMEISV,
+ id-InformationOnRecommendedCellsAndENBsForPaging,
+ id-InitialContextSetup,
+ id-Inter-SystemInformationTransferTypeEDT,
+ id-Inter-SystemInformationTransferTypeMDT,
+ id-LPPa-PDU,
+ id-NAS-DownlinkCount,
+ id-ManagementBasedMDTAllowed,
+ id-ManagementBasedMDTPLMNList,
+ id-MMEname,
+ id-MME-UE-S1AP-ID,
+ id-MSClassmark2,
+ id-MSClassmark3,
+ id-NAS-PDU,
+ id-NASSecurityParametersfromE-UTRAN,
+ id-NASSecurityParameterstoE-UTRAN,
+ id-OverloadResponse,
+ id-pagingDRX,
+ id-PagingPriority,
+ id-RelativeMMECapacity,
+ id-RequestType,
+ id-Routing-ID,
+ id-E-RABAdmittedItem,
+ id-E-RABAdmittedList,
+ id-E-RABDataForwardingItem,
+ id-E-RABFailedToModifyList,
+ id-E-RABFailedToReleaseList,
+ id-E-RABFailedtoSetupItemHOReqAck,
+ id-E-RABFailedToSetupListBearerSURes,
+ id-E-RABFailedToSetupListCtxtSURes,
+ id-E-RABFailedToSetupListHOReqAck,
+ id-E-RABFailedToBeReleasedList,
+ id-E-RABFailedToResumeListResumeReq,
+ id-E-RABFailedToResumeItemResumeReq,
+ id-E-RABFailedToResumeListResumeRes,
+ id-E-RABFailedToResumeItemResumeRes,
+ id-E-RABModify,
+ id-E-RABModifyItemBearerModRes,
+ id-E-RABModifyListBearerModRes,
+ id-E-RABRelease,
+ id-E-RABReleaseItemBearerRelComp,
+ id-E-RABReleaseItemHOCmd,
+ id-E-RABReleaseListBearerRelComp,
+ id-E-RABReleaseIndication,
+ id-E-RABSetup,
+ id-E-RABSetupItemBearerSURes,
+ id-E-RABSetupItemCtxtSURes,
+ id-E-RABSetupListBearerSURes,
+ id-E-RABSetupListCtxtSURes,
+ id-E-RABSubjecttoDataForwardingList,
+ id-E-RABToBeModifiedItemBearerModReq,
+ id-E-RABToBeModifiedListBearerModReq,
+ id-E-RABToBeModifiedListBearerModInd,
+ id-E-RABToBeModifiedItemBearerModInd,
+ id-E-RABNotToBeModifiedListBearerModInd,
+ id-E-RABNotToBeModifiedItemBearerModInd,
+ id-E-RABModifyListBearerModConf,
+ id-E-RABModifyItemBearerModConf,
+ id-E-RABFailedToModifyListBearerModConf,
+ id-E-RABToBeReleasedListBearerModConf,
+ id-E-RABToBeReleasedList,
+ id-E-RABReleasedList,
+ id-E-RABToBeSetupItemBearerSUReq,
+ id-E-RABToBeSetupItemCtxtSUReq,
+ id-E-RABToBeSetupItemHOReq,
+ id-E-RABToBeSetupListBearerSUReq,
+ id-E-RABToBeSetupListCtxtSUReq,
+ id-E-RABToBeSetupListHOReq,
+ id-E-RABToBeSwitchedDLItem,
+ id-E-RABToBeSwitchedDLList,
+ id-E-RABToBeSwitchedULList,
+ id-E-RABToBeSwitchedULItem,
+ id-E-RABtoReleaseListHOCmd,
+ id-ProSeAuthorized,
+ id-SecurityKey,
+ id-SecurityContext,
+ id-ServedGUMMEIs,
+ id-SONConfigurationTransferECT,
+ id-SONConfigurationTransferMCT,
+ id-Source-ToTarget-TransparentContainer,
+ id-Source-ToTarget-TransparentContainer-Secondary,
+ id-SourceMME-UE-S1AP-ID,
+ id-SRVCCOperationNotPossible,
+ id-SRVCCOperationPossible,
+ id-SRVCCHOIndication,
+ id-SubscriberProfileIDforRFP,
+ id-SupportedTAs,
+ id-S-TMSI,
+ id-TAI,
+ id-TAIItem,
+ id-TAIList,
+ id-Target-ToSource-TransparentContainer,
+ id-Target-ToSource-TransparentContainer-Secondary,
+ id-TargetID,
+ id-TimeToWait,
+ id-TraceActivation,
+ id-TrafficLoadReductionIndication,
+ id-E-UTRAN-Trace-ID,
+ id-UEIdentityIndexValue,
+ id-UEPagingID,
+ id-UERadioCapability,
+ id-UERadioCapabilityForPaging,
+ id-UTRANtoLTEHOInformationRes,
+ id-UE-associatedLogicalS1-ConnectionListResAck,
+ id-UE-associatedLogicalS1-ConnectionItem,
+ id-UE-RetentionInformation,
+ id-UESecurityCapabilities,
+ id-UE-S1AP-IDs,
+ id-V2XServicesAuthorized,
+ id-ResetType,
+ id-MessageIdentifier,
+ id-SerialNumber,
+ id-WarningAreaList,
+ id-RepetitionPeriod,
+ id-NumberofBroadcastRequest,
+ id-WarningType,
+ id-WarningSecurityInfo,
+ id-DataCodingScheme,
+ id-WarningMessageContents,
+ id-BroadcastCompletedAreaList,
+ id-BroadcastCancelledAreaList,
+ id-RRC-Establishment-Cause,
+ id-TraceCollectionEntityIPAddress,
+ maxnoofTAIs,
+ maxnoofErrors,
+ maxnoofIndividualS1ConnectionsToReset,
+ maxnoofEmergencyAreaID,
+ maxnoofCellID,
+ maxnoofTAIforWarning,
+ maxnoofCellinTAI,
+ maxnoofCellinEAI,
+ id-ExtendedRepetitionPeriod,
+ id-PS-ServiceNotAvailable,
+ id-RegisteredLAI,
+ id-GUMMEIList,
+ id-SourceMME-GUMMEI,
+ id-MME-UE-S1AP-ID-2,
+ id-GW-TransportLayerAddress,
+ id-RelayNode-Indicator,
+ id-Correlation-ID,
+ id-MMERelaySupportIndicator,
+ id-GWContextReleaseIndication,
+ id-PrivacyIndicator,
+ id-VoiceSupportMatchIndicator,
+ id-Tunnel-Information-for-BBF,
+ id-SIPTO-Correlation-ID,
+ id-SIPTO-L-GW-TransportLayerAddress,
+ id-KillAllWarningMessages,
+ id-TransportInformation,
+ id-LHN-ID,
+ id-UserLocationInformation,
+ id-AdditionalCSFallbackIndicator,
+ id-ECGIListForRestart,
+ id-TAIListForRestart,
+ id-EmergencyAreaIDListForRestart,
+ id-ExpectedUEBehaviour,
+ id-Paging-eDRXInformation,
+ id-extended-UEIdentityIndexValue,
+ id-CSGMembershipInfo,
+ id-MME-Group-ID,
+ id-Additional-GUTI,
+ id-S1-Message,
+ id-PWSfailedECGIList,
+ id-PWSFailureIndication,
+ id-UE-Usage-Type,
+ id-UEUserPlaneCIoTSupportIndicator,
+ id-NB-IoT-DefaultPagingDRX,
+ id-NB-IoT-Paging-eDRXInformation,
+ id-CE-mode-B-SupportIndicator,
+ id-NB-IoT-UEIdentityIndexValue,
+ id-RRC-Resume-Cause,
+ id-DCN-ID,
+ id-ServedDCNs,
+ id-UESidelinkAggregateMaximumBitrate,
+ id-DLNASPDUDeliveryAckRequest,
+ id-Coverage-Level,
+ id-EnhancedCoverageRestricted,
+ id-UE-Level-QoS-Parameters,
+ id-DL-CP-SecurityInformation,
+ id-UL-CP-SecurityInformation,
+ id-SecondaryRATDataUsageRequest,
+ id-SecondaryRATDataUsageReportList,
+ id-HandoverFlag,
+ id-NRUESecurityCapabilities,
+ id-UE-Application-Layer-Measurement-Capability,
+ id-CE-ModeBRestricted,
+ id-DownlinkPacketLossRate,
+ id-UplinkPacketLossRate,
+ id-UECapabilityInfoRequest,
+ id-EndIndication,
+ id-EDT-Session,
+ id-LTE-M-Indication,
+ id-PendingDataIndication,
+ id-WarningAreaCoordinates,
+ id-Subscription-Based-UE-DifferentiationInfo,
+ id-PSCellInformation,
+ id-ConnectedengNBList,
+ id-ConnectedengNBToAddList,
+ id-ConnectedengNBToRemoveList,
+ id-EN-DCSONConfigurationTransfer-ECT,
+ id-EN-DCSONConfigurationTransfer-MCT,
+ id-TimeSinceSecondaryNodeRelease
+
+
+
+FROM S1AP-Constants;
+
+-- **************************************************************
+--
+-- Common Container Lists
+--
+-- **************************************************************
+
+E-RAB-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofE-RABs, {IEsSetParam} }
+E-RAB-IE-ContainerPairList { S1AP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxnoofE-RABs, {IEsSetParam} }
+ProtocolError-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofE-RABs, {IEsSetParam} }
+
+-- **************************************************************
+--
+-- HANDOVER PREPARATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Handover Required
+--
+-- **************************************************************
+
+HandoverRequired ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverRequiredIEs} },
+ ...
+}
+
+HandoverRequiredIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-TargetID CRITICALITY reject TYPE TargetID PRESENCE mandatory}|
+ { ID id-Direct-Forwarding-Path-Availability CRITICALITY ignore TYPE Direct-Forwarding-Path-Availability PRESENCE optional}|
+ { ID id-SRVCCHOIndication CRITICALITY reject TYPE SRVCCHOIndication PRESENCE optional}|
+ { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory}|
+ { ID id-Source-ToTarget-TransparentContainer-Secondary CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE optional}|
+ { ID id-MSClassmark2 CRITICALITY reject TYPE MSClassmark2 PRESENCE conditional}|
+ { ID id-MSClassmark3 CRITICALITY ignore TYPE MSClassmark3 PRESENCE conditional}|
+ { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}|
+ { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional}|
+ { ID id-PS-ServiceNotAvailable CRITICALITY ignore TYPE PS-ServiceNotAvailable PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Handover Command
+--
+-- **************************************************************
+
+HandoverCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverCommandIEs} },
+ ...
+}
+
+HandoverCommandIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}|
+ { ID id-NASSecurityParametersfromE-UTRAN CRITICALITY reject TYPE NASSecurityParametersfromE-UTRAN PRESENCE conditional
+ -- This IE shall be present if HandoverType IE is set to value "LTEtoUTRAN" or "LTEtoGERAN" --}|
+ { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional}|
+ { ID id-E-RABtoReleaseListHOCmd CRITICALITY ignore TYPE E-RABList PRESENCE optional}|
+ { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory}|
+ { ID id-Target-ToSource-TransparentContainer-Secondary CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+E-RABSubjecttoDataForwardingList ::= E-RAB-IE-ContainerList { {E-RABDataForwardingItemIEs} }
+
+E-RABDataForwardingItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABDataForwardingItem CRITICALITY ignore TYPE E-RABDataForwardingItem PRESENCE mandatory },
+ ...
+}
+
+E-RABDataForwardingItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ dL-transportLayerAddress TransportLayerAddress OPTIONAL,
+ dL-gTP-TEID GTP-TEID OPTIONAL,
+ uL-TransportLayerAddress TransportLayerAddress OPTIONAL,
+ uL-GTP-TEID GTP-TEID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-RABDataForwardingItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABDataForwardingItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- Handover Preparation Failure
+--
+-- **************************************************************
+
+HandoverPreparationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverPreparationFailureIEs} },
+ ...
+}
+
+HandoverPreparationFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- HANDOVER RESOURCE ALLOCATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Handover Request
+--
+-- **************************************************************
+
+HandoverRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {HandoverRequestIEs} },
+ ...
+}
+
+HandoverRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory}|
+ { ID id-E-RABToBeSetupListHOReq CRITICALITY reject TYPE E-RABToBeSetupListHOReq PRESENCE mandatory}|
+ { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory}|
+ { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory}|
+ { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}|
+ { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}|
+ { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE optional}|
+ { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}|
+ { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}|
+ { ID id-NASSecurityParameterstoE-UTRAN CRITICALITY reject TYPE NASSecurityParameterstoE-UTRAN PRESENCE conditional
+ -- This IE shall be present if the Handover Type IE is set to the value "UTRANtoLTE" or "GERANtoLTE" -- }|
+ { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}|
+ { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional}|
+ { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}|
+ { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional}|
+ { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional}|
+ { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}|
+ { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}|
+ { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}|
+ { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}|
+ { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}|
+ { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}|
+ { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}|
+ { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}|
+ { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}|
+ { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}|
+ { ID id-PendingDataIndication CRITICALITY ignore TYPE PendingDataIndication PRESENCE optional}|
+ { ID id-Subscription-Based-UE-DifferentiationInfo CRITICALITY ignore TYPE Subscription-Based-UE-DifferentiationInfo PRESENCE optional},
+ ...
+}
+
+E-RABToBeSetupListHOReq ::= E-RAB-IE-ContainerList { {E-RABToBeSetupItemHOReqIEs} }
+
+E-RABToBeSetupItemHOReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSetupItemHOReq CRITICALITY reject TYPE E-RABToBeSetupItemHOReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSetupItemHOReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ e-RABlevelQosParameters E-RABLevelQoSParameters,
+ iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemHOReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABToBeSetupItemHOReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-Data-Forwarding-Not-Possible CRITICALITY ignore EXTENSION Data-Forwarding-Not-Possible PRESENCE optional}|
+ { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- Handover Request Acknowledge
+--
+-- **************************************************************
+
+HandoverRequestAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {HandoverRequestAcknowledgeIEs} },
+ ...
+}
+
+HandoverRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-E-RABAdmittedList CRITICALITY ignore TYPE E-RABAdmittedList PRESENCE mandatory}|
+ { ID id-E-RABFailedToSetupListHOReqAck CRITICALITY ignore TYPE E-RABFailedtoSetupListHOReqAck PRESENCE optional}|
+ { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory}|
+ { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode PRESENCE optional}|
+ { ID id-CE-mode-B-SupportIndicator CRITICALITY ignore TYPE CE-mode-B-SupportIndicator PRESENCE optional},
+ ...
+}
+
+E-RABAdmittedList ::= E-RAB-IE-ContainerList { {E-RABAdmittedItemIEs} }
+
+E-RABAdmittedItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABAdmittedItem CRITICALITY ignore TYPE E-RABAdmittedItem PRESENCE mandatory },
+ ...
+}
+
+E-RABAdmittedItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ dL-transportLayerAddress TransportLayerAddress OPTIONAL,
+ dL-gTP-TEID GTP-TEID OPTIONAL,
+ uL-TransportLayerAddress TransportLayerAddress OPTIONAL,
+ uL-GTP-TEID GTP-TEID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABAdmittedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABAdmittedItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABFailedtoSetupListHOReqAck ::= E-RAB-IE-ContainerList { {E-RABFailedtoSetupItemHOReqAckIEs} }
+
+E-RABFailedtoSetupItemHOReqAckIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABFailedtoSetupItemHOReqAck CRITICALITY ignore TYPE E-RABFailedToSetupItemHOReqAck PRESENCE mandatory },
+ ...
+}
+
+E-RABFailedToSetupItemHOReqAck ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { E-RABFailedToSetupItemHOReqAckExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABFailedToSetupItemHOReqAckExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Handover Failure
+--
+-- **************************************************************
+
+HandoverFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverFailureIEs} },
+ ...
+}
+
+HandoverFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- HANDOVER NOTIFICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Handover Notify
+--
+-- **************************************************************
+
+HandoverNotify ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverNotifyIEs} },
+ ...
+}
+
+HandoverNotifyIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}|
+-- Extension for Release 11 to support BBAI --
+ { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}|
+ { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}|
+ { ID id-PSCellInformation CRITICALITY ignore TYPE PSCellInformation PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- PATH SWITCH REQUEST ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Path Switch Request
+--
+-- **************************************************************
+
+PathSwitchRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { PathSwitchRequestIEs} },
+ ...
+}
+
+PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-E-RABToBeSwitchedDLList CRITICALITY reject TYPE E-RABToBeSwitchedDLList PRESENCE mandatory}|
+ { ID id-SourceMME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}|
+ { ID id-UESecurityCapabilities CRITICALITY ignore TYPE UESecurityCapabilities PRESENCE mandatory}|
+ { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional}|
+ { ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode PRESENCE optional}|
+ { ID id-SourceMME-GUMMEI CRITICALITY ignore TYPE GUMMEI PRESENCE optional}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}|
+-- Extension for Release 11 to support BBAI --
+ { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}|
+ { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}|
+ { ID id-RRC-Resume-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE optional }|
+ { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}|
+ { ID id-PSCellInformation CRITICALITY ignore TYPE PSCellInformation PRESENCE optional },
+ ...
+}
+
+E-RABToBeSwitchedDLList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedDLItemIEs} }
+
+E-RABToBeSwitchedDLItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSwitchedDLItem CRITICALITY reject TYPE E-RABToBeSwitchedDLItem PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSwitchedDLItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedDLItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABToBeSwitchedDLItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Path Switch Request Acknowledge
+--
+-- **************************************************************
+
+PathSwitchRequestAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { PathSwitchRequestAcknowledgeIEs} },
+ ...
+}
+
+PathSwitchRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional}|
+ { ID id-E-RABToBeSwitchedULList CRITICALITY ignore TYPE E-RABToBeSwitchedULList PRESENCE optional}|
+ { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE optional}|
+ { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}|
+ { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}|
+ { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}|
+ { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}|
+ { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}|
+ { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}|
+ { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}|
+ { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}|
+ { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}|
+ { ID id-PendingDataIndication CRITICALITY ignore TYPE PendingDataIndication PRESENCE optional}|
+ { ID id-Subscription-Based-UE-DifferentiationInfo CRITICALITY ignore TYPE Subscription-Based-UE-DifferentiationInfo PRESENCE optional},
+ ...
+}
+
+E-RABToBeSwitchedULList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedULItemIEs} }
+
+E-RABToBeSwitchedULItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSwitchedULItem CRITICALITY ignore TYPE E-RABToBeSwitchedULItem PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSwitchedULItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedULItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABToBeSwitchedULItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Path Switch Request Failure
+--
+-- **************************************************************
+
+PathSwitchRequestFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { PathSwitchRequestFailureIEs} },
+ ...
+}
+
+PathSwitchRequestFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- HANDOVER CANCEL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Handover Cancel
+--
+-- **************************************************************
+
+HandoverCancel ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverCancelIEs} },
+ ...
+}
+
+HandoverCancelIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- Handover Cancel Request Acknowledge
+--
+-- **************************************************************
+
+HandoverCancelAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverCancelAcknowledgeIEs} },
+ ...
+}
+
+HandoverCancelAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- E-RAB SETUP ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Setup Request
+--
+-- **************************************************************
+
+E-RABSetupRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABSetupRequestIEs} },
+ ...
+}
+
+E-RABSetupRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-E-RABToBeSetupListBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupListBearerSUReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSetupListBearerSUReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemBearerSUReqIEs} }
+
+E-RABToBeSetupItemBearerSUReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSetupItemBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupItemBearerSUReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSetupItemBearerSUReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RABlevelQoSParameters E-RABLevelQoSParameters,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ nAS-PDU NAS-PDU,
+ iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemBearerSUReqExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABToBeSetupItemBearerSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}|
+ { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}|
+ { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- E-RAB Setup Response
+--
+-- **************************************************************
+
+E-RABSetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABSetupResponseIEs} },
+ ...
+}
+
+E-RABSetupResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-RABSetupListBearerSURes CRITICALITY ignore TYPE E-RABSetupListBearerSURes PRESENCE optional }|
+ { ID id-E-RABFailedToSetupListBearerSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+E-RABSetupListBearerSURes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemBearerSUResIEs} }
+
+E-RABSetupItemBearerSUResIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABSetupItemBearerSURes CRITICALITY ignore TYPE E-RABSetupItemBearerSURes PRESENCE mandatory },
+ ...
+}
+
+E-RABSetupItemBearerSURes ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemBearerSUResExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABSetupItemBearerSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- E-RAB MODIFY ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Modify Request
+--
+-- **************************************************************
+
+E-RABModifyRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABModifyRequestIEs} },
+ ...
+}
+
+E-RABModifyRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-E-RABToBeModifiedListBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedListBearerModReq PRESENCE mandatory }|
+ { ID id-SecondaryRATDataUsageRequest CRITICALITY ignore TYPE SecondaryRATDataUsageRequest PRESENCE optional },
+ ...
+}
+
+E-RABToBeModifiedListBearerModReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeModifiedItemBearerModReqIEs} }
+
+E-RABToBeModifiedItemBearerModReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeModifiedItemBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedItemBearerModReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeModifiedItemBearerModReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RABLevelQoSParameters E-RABLevelQoSParameters,
+ nAS-PDU NAS-PDU,
+ iE-Extensions ProtocolExtensionContainer { {E-RABToBeModifyItemBearerModReqExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABToBeModifyItemBearerModReqExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-TransportInformation CRITICALITY reject EXTENSION TransportInformation PRESENCE optional},
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- E-RAB Modify Response
+--
+-- **************************************************************
+
+E-RABModifyResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABModifyResponseIEs} },
+ ...
+}
+
+E-RABModifyResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-RABModifyListBearerModRes CRITICALITY ignore TYPE E-RABModifyListBearerModRes PRESENCE optional }|
+ { ID id-E-RABFailedToModifyList CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
+ { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional },
+ ...
+}
+
+
+E-RABModifyListBearerModRes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABModifyItemBearerModResIEs} }
+
+E-RABModifyItemBearerModResIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABModifyItemBearerModRes CRITICALITY ignore TYPE E-RABModifyItemBearerModRes PRESENCE mandatory},
+ ...
+}
+
+E-RABModifyItemBearerModRes ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABModifyItemBearerModResExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABModifyItemBearerModResExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+
+-- **************************************************************
+--
+-- E-RAB RELEASE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Release Command
+--
+-- **************************************************************
+
+E-RABReleaseCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABReleaseCommandIEs} },
+ ...
+}
+
+E-RABReleaseCommandIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }|
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- E-RAB Release Response
+--
+-- **************************************************************
+
+E-RABReleaseResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { E-RABReleaseResponseIEs } },
+ ...
+}
+
+E-RABReleaseResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-RABReleaseListBearerRelComp CRITICALITY ignore TYPE E-RABReleaseListBearerRelComp PRESENCE optional }|
+ { ID id-E-RABFailedToReleaseList CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
+-- Extension for Release 12 to support User Location Information --
+ { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }|
+ { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional },
+ ...
+}
+
+
+E-RABReleaseListBearerRelComp ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABReleaseItemBearerRelCompIEs} }
+
+E-RABReleaseItemBearerRelCompIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABReleaseItemBearerRelComp CRITICALITY ignore TYPE E-RABReleaseItemBearerRelComp PRESENCE mandatory },
+ ...
+}
+
+E-RABReleaseItemBearerRelComp ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABReleaseItemBearerRelCompExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABReleaseItemBearerRelCompExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- E-RAB RELEASE INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Release Indication
+--
+-- **************************************************************
+
+E-RABReleaseIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABReleaseIndicationIEs} },
+ ...
+}
+
+E-RABReleaseIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-RABReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }|
+-- Extension for Release 12 to support User Location Information --
+ { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }|
+ { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- INITIAL CONTEXT SETUP ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Initial Context Setup Request
+--
+-- **************************************************************
+
+InitialContextSetupRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {InitialContextSetupRequestIEs} },
+ ...
+}
+
+InitialContextSetupRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory}|
+ { ID id-E-RABToBeSetupListCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupListCtxtSUReq PRESENCE mandatory}|
+ { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory}|
+ { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE mandatory}|
+ { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}|
+ { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}|
+ { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}|
+ { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}|
+ { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional}|
+ { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}|
+ { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}|
+ { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional}|
+ { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}|
+ { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional}|
+ { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional}|
+ { ID id-AdditionalCSFallbackIndicator CRITICALITY ignore TYPE AdditionalCSFallbackIndicator PRESENCE conditional}|
+ { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}|
+ { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}|
+ { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}|
+ { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}|
+ { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}|
+ { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}|
+ { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}|
+ { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}|
+ { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}|
+ { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}|
+ { ID id-PendingDataIndication CRITICALITY ignore TYPE PendingDataIndication PRESENCE optional}|
+ { ID id-Subscription-Based-UE-DifferentiationInfo CRITICALITY ignore TYPE Subscription-Based-UE-DifferentiationInfo PRESENCE optional},
+ ...
+}
+
+
+
+
+E-RABToBeSetupListCtxtSUReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemCtxtSUReqIEs} }
+
+E-RABToBeSetupItemCtxtSUReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSetupItemCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupItemCtxtSUReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSetupItemCtxtSUReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RABlevelQoSParameters E-RABLevelQoSParameters,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ nAS-PDU NAS-PDU OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemCtxtSUReqExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABToBeSetupItemCtxtSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}|
+ { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}|
+ { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Initial Context Setup Response
+--
+-- **************************************************************
+
+InitialContextSetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {InitialContextSetupResponseIEs} },
+ ...
+}
+
+InitialContextSetupResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-RABSetupListCtxtSURes CRITICALITY ignore TYPE E-RABSetupListCtxtSURes PRESENCE mandatory }|
+ { ID id-E-RABFailedToSetupListCtxtSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+E-RABSetupListCtxtSURes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemCtxtSUResIEs} }
+
+E-RABSetupItemCtxtSUResIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABSetupItemCtxtSURes CRITICALITY ignore TYPE E-RABSetupItemCtxtSURes PRESENCE mandatory },
+ ...
+}
+
+E-RABSetupItemCtxtSURes ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemCtxtSUResExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABSetupItemCtxtSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Initial Context Setup Failure
+--
+-- **************************************************************
+
+InitialContextSetupFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {InitialContextSetupFailureIEs} },
+ ...
+}
+
+InitialContextSetupFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- PAGING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+
+-- **************************************************************
+--
+-- Paging
+--
+-- **************************************************************
+
+Paging ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PagingIEs}},
+ ...
+}
+
+PagingIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-UEIdentityIndexValue CRITICALITY ignore TYPE UEIdentityIndexValue PRESENCE mandatory}|
+ { ID id-UEPagingID CRITICALITY ignore TYPE UEPagingID PRESENCE mandatory}|
+ { ID id-pagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional}|
+ { ID id-CNDomain CRITICALITY ignore TYPE CNDomain PRESENCE mandatory}|
+ { ID id-TAIList CRITICALITY ignore TYPE TAIList PRESENCE mandatory}|
+ { ID id-CSG-IdList CRITICALITY ignore TYPE CSG-IdList PRESENCE optional}|
+ { ID id-PagingPriority CRITICALITY ignore TYPE PagingPriority PRESENCE optional}|
+ { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional}|
+-- Extension for Release 13 to support Paging Optimisation and Coverage Enhancement paging –-
+ { ID id-AssistanceDataForPaging CRITICALITY ignore TYPE AssistanceDataForPaging PRESENCE optional}|
+ { ID id-Paging-eDRXInformation CRITICALITY ignore TYPE Paging-eDRXInformation PRESENCE optional}|
+ { ID id-extended-UEIdentityIndexValue CRITICALITY ignore TYPE Extended-UEIdentityIndexValue PRESENCE optional}|
+ { ID id-NB-IoT-Paging-eDRXInformation CRITICALITY ignore TYPE NB-IoT-Paging-eDRXInformation PRESENCE optional}|
+ { ID id-NB-IoT-UEIdentityIndexValue CRITICALITY ignore TYPE NB-IoT-UEIdentityIndexValue PRESENCE optional}|
+ { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}|
+ { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional},
+ ...
+}
+
+TAIList::= SEQUENCE (SIZE(1.. maxnoofTAIs)) OF ProtocolIE-SingleContainer {{TAIItemIEs}}
+
+TAIItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-TAIItem CRITICALITY ignore TYPE TAIItem PRESENCE mandatory },
+ ...
+}
+
+TAIItem ::= SEQUENCE {
+ tAI TAI,
+ iE-Extensions ProtocolExtensionContainer { {TAIItemExtIEs} } OPTIONAL,
+ ...
+}
+
+
+TAIItemExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- UE CONTEXT RELEASE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Context Release Request
+--
+-- **************************************************************
+
+UEContextReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UEContextReleaseRequest-IEs}},
+ ...
+}
+
+UEContextReleaseRequest-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-GWContextReleaseIndication CRITICALITY reject TYPE GWContextReleaseIndication PRESENCE optional }|
+ { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Context Release Command
+--
+-- **************************************************************
+
+UEContextReleaseCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UEContextReleaseCommand-IEs}},
+ ...
+}
+
+UEContextReleaseCommand-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-UE-S1AP-IDs CRITICALITY reject TYPE UE-S1AP-IDs PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Context Release Complete
+--
+-- **************************************************************
+
+UEContextReleaseComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UEContextReleaseComplete-IEs}},
+ ...
+}
+
+UEContextReleaseComplete-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+-- Extension for Release 12 to support User Location Information --
+ { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional}|
+-- Extension for Release 13 to support Paging Optimisation
+ { ID id-InformationOnRecommendedCellsAndENBsForPaging CRITICALITY ignore TYPE InformationOnRecommendedCellsAndENBsForPaging PRESENCE optional}|
+-- Extension for Release 13 to support coverage enhancement paging –
+ { ID id-CellIdentifierAndCELevelForCECapableUEs CRITICALITY ignore TYPE CellIdentifierAndCELevelForCECapableUEs PRESENCE optional}|
+ { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional }|
+ { ID id-TimeSinceSecondaryNodeRelease CRITICALITY ignore TYPE TimeSinceSecondaryNodeRelease PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UE CONTEXT MODIFICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Context Modification Request
+--
+-- **************************************************************
+
+UEContextModificationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationRequestIEs} },
+ ...
+}
+
+UEContextModificationRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE optional}|
+ { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}|
+ { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional}|
+ { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional}|
+ { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE optional}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}|
+ { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}|
+ { ID id-AdditionalCSFallbackIndicator CRITICALITY ignore TYPE AdditionalCSFallbackIndicator PRESENCE conditional}|
+ { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}|
+ { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}|
+ { ID id-SRVCCOperationNotPossible CRITICALITY ignore TYPE SRVCCOperationNotPossible PRESENCE optional}|
+ { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}|
+ { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}|
+ { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}|
+ { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional},
+ ...
+}
+-- **************************************************************
+--
+-- UE Context Modification Response
+--
+-- **************************************************************
+
+UEContextModificationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationResponseIEs} },
+ ...
+}
+
+UEContextModificationResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- UE Context Modification Failure
+--
+-- **************************************************************
+
+UEContextModificationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationFailureIEs} },
+ ...
+}
+
+UEContextModificationFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- UE RADIO CAPABILITY MATCH ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Radio Capability Match Request
+--
+-- **************************************************************
+
+UERadioCapabilityMatchRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UERadioCapabilityMatchRequestIEs} },
+ ...
+}
+
+UERadioCapabilityMatchRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Radio Capability Match Response
+--
+-- **************************************************************
+
+UERadioCapabilityMatchResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UERadioCapabilityMatchResponseIEs} },
+ ...
+}
+
+UERadioCapabilityMatchResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-VoiceSupportMatchIndicator CRITICALITY reject TYPE VoiceSupportMatchIndicator PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- NAS TRANSPORT ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- DOWNLINK NAS TRANSPORT
+--
+-- **************************************************************
+
+DownlinkNASTransport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DownlinkNASTransport-IEs}},
+ ...
+}
+
+DownlinkNASTransport-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}|
+ { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}|
+ { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}|
+ { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}|
+ { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}|
+ { ID id-DLNASPDUDeliveryAckRequest CRITICALITY ignore TYPE DLNASPDUDeliveryAckRequest PRESENCE optional}|
+ { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}|
+ { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}|
+ { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}|
+ { ID id-UECapabilityInfoRequest CRITICALITY ignore TYPE UECapabilityInfoRequest PRESENCE optional}|
+ { ID id-EndIndication CRITICALITY ignore TYPE EndIndication PRESENCE optional}|
+ { ID id-PendingDataIndication CRITICALITY ignore TYPE PendingDataIndication PRESENCE optional}|
+ { ID id-Subscription-Based-UE-DifferentiationInfo CRITICALITY ignore TYPE Subscription-Based-UE-DifferentiationInfo PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- INITIAL UE MESSAGE
+--
+-- **************************************************************
+
+InitialUEMessage ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InitialUEMessage-IEs}},
+ ...
+}
+
+InitialUEMessage-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}|
+ { ID id-TAI CRITICALITY reject TYPE TAI PRESENCE mandatory}|
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ { ID id-RRC-Establishment-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE mandatory}|
+ { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE optional}|
+ { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}|
+ { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE optional}|
+ { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional}|
+ { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}|
+ { ID id-RelayNode-Indicator CRITICALITY reject TYPE RelayNode-Indicator PRESENCE optional}|
+ { ID id-GUMMEIType CRITICALITY ignore TYPE GUMMEIType PRESENCE optional}|
+-- Extension for Release 11 to support BBAI --
+ { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}|
+ { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}|
+ { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}|
+ { ID id-MME-Group-ID CRITICALITY ignore TYPE MME-Group-ID PRESENCE optional}|
+ { ID id-UE-Usage-Type CRITICALITY ignore TYPE UE-Usage-Type PRESENCE optional}|
+ { ID id-CE-mode-B-SupportIndicator CRITICALITY ignore TYPE CE-mode-B-SupportIndicator PRESENCE optional}|
+ { ID id-DCN-ID CRITICALITY ignore TYPE DCN-ID PRESENCE optional}|
+ { ID id-Coverage-Level CRITICALITY ignore TYPE Coverage-Level PRESENCE optional}|
+ { ID id-UE-Application-Layer-Measurement-Capability CRITICALITY ignore TYPE UE-Application-Layer-Measurement-Capability PRESENCE optional}|
+ { ID id-EDT-Session CRITICALITY ignore TYPE EDT-Session PRESENCE optional},
+
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UPLINK NAS TRANSPORT
+--
+-- **************************************************************
+
+UplinkNASTransport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UplinkNASTransport-IEs}},
+ ...
+}
+
+UplinkNASTransport-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}|
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}|
+ { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}|
+ { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}|
+ { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}|
+ { ID id-PSCellInformation CRITICALITY ignore TYPE PSCellInformation PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- NAS NON DELIVERY INDICATION
+--
+-- **************************************************************
+
+NASNonDeliveryIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{NASNonDeliveryIndication-IEs}},
+ ...
+}
+
+NASNonDeliveryIndication-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- REROUTE NAS REQUEST
+--
+-- **************************************************************
+
+RerouteNASRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RerouteNASRequest-IEs}},
+ ...
+}
+
+RerouteNASRequest-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}|
+ { ID id-S1-Message CRITICALITY reject TYPE OCTET STRING PRESENCE mandatory}|
+ { ID id-MME-Group-ID CRITICALITY reject TYPE MME-Group-ID PRESENCE mandatory}|
+ { ID id-Additional-GUTI CRITICALITY ignore TYPE Additional-GUTI PRESENCE optional}|
+ { ID id-UE-Usage-Type CRITICALITY ignore TYPE UE-Usage-Type PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- NAS DELIVERY INDICATION
+--
+-- **************************************************************
+
+NASDeliveryIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { NASDeliveryIndicationIEs} },
+ ...
+}
+
+NASDeliveryIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory},
+ ...
+}
+
+-- **************************************************************
+--
+-- RESET ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Reset
+--
+-- **************************************************************
+
+Reset ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetIEs} },
+ ...
+}
+
+ResetIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-ResetType CRITICALITY reject TYPE ResetType PRESENCE mandatory },
+ ...
+}
+
+ResetType ::= CHOICE {
+ s1-Interface ResetAll,
+ partOfS1-Interface UE-associatedLogicalS1-ConnectionListRes,
+ ...
+}
+
+
+
+ResetAll ::= ENUMERATED {
+ reset-all,
+ ...
+}
+
+UE-associatedLogicalS1-ConnectionListRes ::= SEQUENCE (SIZE(1.. maxnoofIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemRes } }
+
+UE-associatedLogicalS1-ConnectionItemRes S1AP-PROTOCOL-IES ::= {
+ { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY reject TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Reset Acknowledge
+--
+-- **************************************************************
+
+ResetAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} },
+ ...
+}
+
+ResetAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-UE-associatedLogicalS1-ConnectionListResAck CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionListResAck PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+UE-associatedLogicalS1-ConnectionListResAck ::= SEQUENCE (SIZE(1.. maxnoofIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemResAck } }
+
+UE-associatedLogicalS1-ConnectionItemResAck S1AP-PROTOCOL-IES ::= {
+ { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- ERROR INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Error Indication
+--
+-- **************************************************************
+
+ErrorIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ErrorIndicationIEs}},
+ ...
+}
+
+ErrorIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE optional }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- S1 SETUP ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- S1 Setup Request
+--
+-- **************************************************************
+
+S1SetupRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {S1SetupRequestIEs} },
+ ...
+}
+
+S1SetupRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}|
+ { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional}|
+ { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE mandatory}|
+ { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE mandatory}|
+ { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}|
+ { ID id-UE-RetentionInformation CRITICALITY ignore TYPE UE-RetentionInformation PRESENCE optional}|
+ { ID id-NB-IoT-DefaultPagingDRX CRITICALITY ignore TYPE NB-IoT-DefaultPagingDRX PRESENCE optional}|
+ { ID id-ConnectedengNBList CRITICALITY ignore TYPE ConnectedengNBList PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- S1 Setup Response
+--
+-- **************************************************************
+
+S1SetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {S1SetupResponseIEs} },
+ ...
+}
+
+
+S1SetupResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional}|
+ { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE mandatory}|
+ { ID id-RelativeMMECapacity CRITICALITY ignore TYPE RelativeMMECapacity PRESENCE mandatory}|
+ { ID id-MMERelaySupportIndicator CRITICALITY ignore TYPE MMERelaySupportIndicator PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-UE-RetentionInformation CRITICALITY ignore TYPE UE-RetentionInformation PRESENCE optional}|
+ { ID id-ServedDCNs CRITICALITY ignore TYPE ServedDCNs PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- S1 Setup Failure
+--
+-- **************************************************************
+
+S1SetupFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {S1SetupFailureIEs} },
+ ...
+}
+
+S1SetupFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- ENB CONFIGURATION UPDATE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- eNB Configuration Update
+--
+-- **************************************************************
+
+ENBConfigurationUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateIEs} },
+ ...
+}
+
+ENBConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional}|
+ { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE optional}|
+ { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}|
+ { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional}|
+ { ID id-NB-IoT-DefaultPagingDRX CRITICALITY ignore TYPE NB-IoT-DefaultPagingDRX PRESENCE optional}|
+ { ID id-ConnectedengNBToAddList CRITICALITY ignore TYPE ConnectedengNBList PRESENCE optional}|
+ { ID id-ConnectedengNBToRemoveList CRITICALITY ignore TYPE ConnectedengNBList PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- eNB Configuration Update Acknowledge
+--
+-- **************************************************************
+
+ENBConfigurationUpdateAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateAcknowledgeIEs} },
+ ...
+}
+
+
+ENBConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- eNB Configuration Update Failure
+--
+-- **************************************************************
+
+ENBConfigurationUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateFailureIEs} },
+ ...
+}
+
+ENBConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+...
+}
+
+
+-- **************************************************************
+--
+-- MME CONFIGURATION UPDATE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MME Configuration Update
+--
+-- **************************************************************
+
+MMEConfigurationUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateIEs} },
+ ...
+}
+
+MMEConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional }|
+ { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE optional }|
+ { ID id-RelativeMMECapacity CRITICALITY reject TYPE RelativeMMECapacity PRESENCE optional }|
+ { ID id-ServedDCNs CRITICALITY ignore TYPE ServedDCNs PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- MME Configuration Update Acknowledge
+--
+-- **************************************************************
+
+MMEConfigurationUpdateAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateAcknowledgeIEs} },
+ ...
+}
+
+
+MMEConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- MME Configuration Update Failure
+--
+-- **************************************************************
+
+MMEConfigurationUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateFailureIEs} },
+ ...
+}
+
+MMEConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- DOWNLINK S1 CDMA2000 TUNNELLING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Downlink S1 CDMA2000 Tunnelling
+--
+-- **************************************************************
+
+DownlinkS1cdma2000tunnelling ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DownlinkS1cdma2000tunnellingIEs} },
+ ...
+}
+
+DownlinkS1cdma2000tunnellingIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional }|
+ { ID id-cdma2000HOStatus CRITICALITY ignore TYPE Cdma2000HOStatus PRESENCE optional }|
+ { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory }|
+ { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- UPLINK S1 CDMA2000 TUNNELLING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Uplink S1 CDMA2000 Tunnelling
+--
+-- **************************************************************
+
+UplinkS1cdma2000tunnelling ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {UplinkS1cdma2000tunnellingIEs} },
+ ...
+}
+
+UplinkS1cdma2000tunnellingIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory }|
+ { ID id-cdma2000SectorID CRITICALITY reject TYPE Cdma2000SectorID PRESENCE mandatory }|
+ { ID id-cdma2000HORequiredIndication CRITICALITY ignore TYPE Cdma2000HORequiredIndication PRESENCE optional }|
+ { ID id-cdma2000OneXSRVCCInfo CRITICALITY reject TYPE Cdma2000OneXSRVCCInfo PRESENCE optional }|
+ { ID id-cdma2000OneXRAND CRITICALITY reject TYPE Cdma2000OneXRAND PRESENCE optional }|
+ { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory }|
+ { ID id-EUTRANRoundTripDelayEstimationInfo CRITICALITY ignore TYPE EUTRANRoundTripDelayEstimationInfo PRESENCE optional },
+ -- Extension for Release 9 to assist target HRPD access with the acquisition of the UE --
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UE CAPABILITY INFO INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Capability Info Indication
+--
+-- **************************************************************
+
+UECapabilityInfoIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UECapabilityInfoIndicationIEs} },
+ ...
+}
+
+UECapabilityInfoIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE mandatory}|
+ { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional}|
+ { ID id-UE-Application-Layer-Measurement-Capability CRITICALITY ignore TYPE UE-Application-Layer-Measurement-Capability PRESENCE optional}|
+ { ID id-LTE-M-Indication CRITICALITY ignore TYPE LTE-M-Indication PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- eNB STATUS TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- eNB Status Transfer
+--
+-- **************************************************************
+
+ENBStatusTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ENBStatusTransferIEs} },
+ ...
+}
+
+ENBStatusTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- MME STATUS TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MME Status Transfer
+--
+-- **************************************************************
+
+MMEStatusTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MMEStatusTransferIEs} },
+ ...
+}
+
+MMEStatusTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- TRACE ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+-- **************************************************************
+--
+-- Trace Start
+--
+-- **************************************************************
+
+TraceStart ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {TraceStartIEs} },
+ ...
+}
+
+TraceStartIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- Trace Failure Indication
+--
+-- **************************************************************
+
+TraceFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {TraceFailureIndicationIEs} },
+ ...
+}
+
+TraceFailureIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- DEACTIVATE TRACE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Deactivate Trace
+--
+-- **************************************************************
+
+DeactivateTrace ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { DeactivateTraceIEs} },
+ ...
+}
+
+DeactivateTraceIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL TRAFFIC TRACE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Cell Traffic Trace
+--
+-- **************************************************************
+
+CellTrafficTrace ::= SEQUENCE {
+protocolIEs ProtocolIE-Container { { CellTrafficTraceIEs } },
+...
+}
+
+CellTrafficTraceIEs S1AP-PROTOCOL-IES ::= {
+ {ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ {ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ {ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }|
+ {ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }|
+ {ID id-TraceCollectionEntityIPAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE mandatory }|
+ {ID id-PrivacyIndicator CRITICALITY ignore TYPE PrivacyIndicator PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- LOCATION ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Location Reporting Control
+--
+-- **************************************************************
+
+LocationReportingControl ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { LocationReportingControlIEs} },
+ ...
+}
+
+LocationReportingControlIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- Location Report Failure Indication
+--
+-- **************************************************************
+
+LocationReportingFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { LocationReportingFailureIndicationIEs} },
+ ...
+}
+
+LocationReportingFailureIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- Location Report
+--
+-- **************************************************************
+
+LocationReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { LocationReportIEs} },
+ ...
+}
+
+LocationReportIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }|
+ { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory }|
+ { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory }|
+ { ID id-PSCellInformation CRITICALITY ignore TYPE PSCellInformation PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- OVERLOAD ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Overload Start
+--
+-- **************************************************************
+
+OverloadStart ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {OverloadStartIEs} },
+ ...
+}
+
+OverloadStartIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-OverloadResponse CRITICALITY reject TYPE OverloadResponse PRESENCE mandatory }|
+ { ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional }|
+ { ID id-TrafficLoadReductionIndication CRITICALITY ignore TYPE TrafficLoadReductionIndication PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- Overload Stop
+--
+-- **************************************************************
+
+OverloadStop ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {OverloadStopIEs} },
+ ...
+}
+
+OverloadStopIEs S1AP-PROTOCOL-IES ::= {
+{ ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- WRITE-REPLACE WARNING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Write-Replace Warning Request
+--
+-- **************************************************************
+
+
+WriteReplaceWarningRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {WriteReplaceWarningRequestIEs} },
+ ...
+}
+
+WriteReplaceWarningRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }|
+ { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }|
+ { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional }|
+ { ID id-RepetitionPeriod CRITICALITY reject TYPE RepetitionPeriod PRESENCE mandatory }|
+ { ID id-ExtendedRepetitionPeriod CRITICALITY reject TYPE ExtendedRepetitionPeriod PRESENCE optional }|
+ { ID id-NumberofBroadcastRequest CRITICALITY reject TYPE NumberofBroadcastRequest PRESENCE mandatory }|
+ { ID id-WarningType CRITICALITY ignore TYPE WarningType PRESENCE optional }|
+ { ID id-WarningSecurityInfo CRITICALITY ignore TYPE WarningSecurityInfo PRESENCE optional }|
+ { ID id-DataCodingScheme CRITICALITY ignore TYPE DataCodingScheme PRESENCE optional }|
+ { ID id-WarningMessageContents CRITICALITY ignore TYPE WarningMessageContents PRESENCE optional }|
+ { ID id-ConcurrentWarningMessageIndicator CRITICALITY reject TYPE ConcurrentWarningMessageIndicator PRESENCE optional }|
+ { ID id-WarningAreaCoordinates CRITICALITY ignore TYPE WarningAreaCoordinates PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- Write-Replace Warning Response
+--
+-- **************************************************************
+
+WriteReplaceWarningResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {WriteReplaceWarningResponseIEs} },
+ ...
+}
+
+WriteReplaceWarningResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }|
+ { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }|
+ { ID id-BroadcastCompletedAreaList CRITICALITY ignore TYPE BroadcastCompletedAreaList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- eNB DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- eNB Direct Information Transfer
+--
+-- **************************************************************
+
+ENBDirectInformationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ ENBDirectInformationTransferIEs}},
+ ...
+}
+
+ENBDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Inter-SystemInformationTransferTypeEDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory },
+ ...
+}
+
+Inter-SystemInformationTransferType ::= CHOICE {
+ rIMTransfer RIMTransfer,
+ ...
+}
+
+-- **************************************************************
+--
+-- MME DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MME Direct Information Transfer
+--
+-- **************************************************************
+
+MMEDirectInformationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ MMEDirectInformationTransferIEs}},
+ ...
+}
+
+MMEDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Inter-SystemInformationTransferTypeMDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory },
+ ...
+}
+-- **************************************************************
+--
+-- eNB CONFIGURATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- eNB Configuration Transfer
+--
+-- **************************************************************
+
+ENBConfigurationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ ENBConfigurationTransferIEs}},
+ ...
+}
+
+ENBConfigurationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SONConfigurationTransferECT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional }|
+ { ID id-EN-DCSONConfigurationTransfer-ECT CRITICALITY ignore TYPE EN-DCSONConfigurationTransfer PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- MME CONFIGURATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MME Configuration Transfer
+--
+-- **************************************************************
+
+MMEConfigurationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ MMEConfigurationTransferIEs}},
+ ...
+}
+
+MMEConfigurationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SONConfigurationTransferMCT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional }|
+ { ID id-EN-DCSONConfigurationTransfer-MCT CRITICALITY ignore TYPE EN-DCSONConfigurationTransfer PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Private Message
+--
+-- **************************************************************
+
+PrivateMessage ::= SEQUENCE {
+ privateIEs PrivateIE-Container {{PrivateMessageIEs}},
+ ...
+}
+
+PrivateMessageIEs S1AP-PRIVATE-IES ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- KILL PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Kill Request
+--
+-- **************************************************************
+
+
+KillRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {KillRequestIEs} },
+ ...
+}
+
+KillRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory}|
+ { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory}|
+ { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional}|
+ { ID id-KillAllWarningMessages CRITICALITY reject TYPE KillAllWarningMessages PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- Kill Response
+--
+-- **************************************************************
+
+KillResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {KillResponseIEs} },
+ ...
+}
+
+KillResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }|
+ { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }|
+ { ID id-BroadcastCancelledAreaList CRITICALITY ignore TYPE BroadcastCancelledAreaList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- PWS RESTART INDICATION PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- PWS Restart Indication
+--
+-- **************************************************************
+
+PWSRestartIndication::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ PWSRestartIndicationIEs}},
+ ...
+}
+
+PWSRestartIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-ECGIListForRestart CRITICALITY reject TYPE ECGIListForRestart PRESENCE mandatory}|
+ { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}|
+ { ID id-TAIListForRestart CRITICALITY reject TYPE TAIListForRestart PRESENCE mandatory}|
+ { ID id-EmergencyAreaIDListForRestart CRITICALITY reject TYPE EmergencyAreaIDListForRestart PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- PWS Failure Indication
+--
+-- **************************************************************
+
+PWSFailureIndication::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ PWSFailureIndicationIEs}},
+ ...
+}
+
+PWSFailureIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-PWSfailedECGIList CRITICALITY reject TYPE PWSfailedECGIList PRESENCE mandatory}|
+ { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory},
+ ...
+}
+
+-- **************************************************************
+--
+-- LPPA TRANSPORT ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- DOWNLINK UE ASSOCIATED LPPA TRANSPORT
+--
+-- **************************************************************
+
+DownlinkUEAssociatedLPPaTransport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DownlinkUEAssociatedLPPaTransport-IEs}},
+ ...
+}
+
+DownlinkUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }|
+ { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- UPLINK UE ASSOCIATED LPPA TRANSPORT
+--
+-- **************************************************************
+
+UplinkUEAssociatedLPPaTransport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UplinkUEAssociatedLPPaTransport-IEs}},
+ ...
+}
+
+UplinkUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }|
+ { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- DOWNLINK NON UE ASSOCIATED LPPA TRANSPORT
+--
+-- **************************************************************
+
+DownlinkNonUEAssociatedLPPaTransport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DownlinkNonUEAssociatedLPPaTransport-IEs}},
+ ...
+}
+
+DownlinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }|
+ { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- UPLINK NON UE ASSOCIATED LPPA TRANSPORT
+--
+-- **************************************************************
+
+UplinkNonUEAssociatedLPPaTransport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UplinkNonUEAssociatedLPPaTransport-IEs}},
+ ...
+}
+
+UplinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }|
+ { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- E-RAB MODIFICATION INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Modification Indication
+--
+-- **************************************************************
+
+E-RABModificationIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { E-RABModificationIndicationIEs} },
+ ...
+}
+
+E-RABModificationIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-E-RABToBeModifiedListBearerModInd CRITICALITY reject TYPE E-RABToBeModifiedListBearerModInd PRESENCE mandatory}|
+ { ID id-E-RABNotToBeModifiedListBearerModInd CRITICALITY reject TYPE E-RABNotToBeModifiedListBearerModInd PRESENCE optional}|
+ { ID id-CSGMembershipInfo CRITICALITY reject TYPE CSGMembershipInfo PRESENCE optional}|
+-- Extension for Release 11 to support BBAI --
+ { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}|
+ { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional },
+ ...
+}
+
+E-RABToBeModifiedListBearerModInd ::= E-RAB-IE-ContainerList { {E-RABToBeModifiedItemBearerModIndIEs} }
+
+E-RABToBeModifiedItemBearerModIndIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeModifiedItemBearerModInd CRITICALITY reject TYPE E-RABToBeModifiedItemBearerModInd PRESENCE mandatory},
+ ...
+}
+
+E-RABToBeModifiedItemBearerModInd ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ dL-GTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { { E-RABToBeModifiedItemBearerModInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABToBeModifiedItemBearerModInd-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABNotToBeModifiedListBearerModInd ::= E-RAB-IE-ContainerList { {E-RABNotToBeModifiedItemBearerModIndIEs} }
+
+E-RABNotToBeModifiedItemBearerModIndIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABNotToBeModifiedItemBearerModInd CRITICALITY reject TYPE E-RABNotToBeModifiedItemBearerModInd PRESENCE mandatory},
+ ...
+}
+
+E-RABNotToBeModifiedItemBearerModInd ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ dL-GTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { { E-RABNotToBeModifiedItemBearerModInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABNotToBeModifiedItemBearerModInd-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CSGMembershipInfo ::= SEQUENCE {
+ cSGMembershipStatus CSGMembershipStatus,
+ cSG-Id CSG-Id,
+ cellAccessMode CellAccessMode OPTIONAL,
+ pLMNidentity PLMNidentity OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CSGMembershipInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CSGMembershipInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- E-RAB Modification Confirm
+--
+-- **************************************************************
+
+E-RABModificationConfirm ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABModificationConfirmIEs} },
+ ...
+}
+
+E-RABModificationConfirmIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-E-RABModifyListBearerModConf CRITICALITY ignore TYPE E-RABModifyListBearerModConf PRESENCE optional}|
+ { ID id-E-RABFailedToModifyListBearerModConf CRITICALITY ignore TYPE E-RABList PRESENCE optional}|
+ { ID id-E-RABToBeReleasedListBearerModConf CRITICALITY ignore TYPE E-RABList PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional},
+ ...
+}
+
+E-RABModifyListBearerModConf ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABModifyItemBearerModConfIEs} }
+
+E-RABModifyItemBearerModConfIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABModifyItemBearerModConf CRITICALITY ignore TYPE E-RABModifyItemBearerModConf PRESENCE mandatory},
+ ...
+}
+
+E-RABModifyItemBearerModConf ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABModifyItemBearerModConfExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABModifyItemBearerModConfExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UE CONTEXT MODIFICATION INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Context Modification Indication
+--
+-- **************************************************************
+
+UEContextModificationIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationIndicationIEs} },
+ ...
+}
+
+UEContextModificationIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-CSGMembershipInfo CRITICALITY reject TYPE CSGMembershipInfo PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UE Context Modification Confirm
+--
+-- **************************************************************
+
+UEContextModificationConfirm ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {UEContextModificationConfirmIEs} },
+ ...
+}
+
+UEContextModificationConfirmIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- UE CONTEXT SUSPEND ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Context Suspend Request
+--
+-- **************************************************************
+
+UEContextSuspendRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextSuspendRequestIEs} },
+ ...
+}
+
+UEContextSuspendRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-InformationOnRecommendedCellsAndENBsForPaging CRITICALITY ignore TYPE InformationOnRecommendedCellsAndENBsForPaging PRESENCE optional}|
+ { ID id-CellIdentifierAndCELevelForCECapableUEs CRITICALITY ignore TYPE CellIdentifierAndCELevelForCECapableUEs PRESENCE optional}|
+ { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional }|
+ { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }|
+ { ID id-TimeSinceSecondaryNodeRelease CRITICALITY ignore TYPE TimeSinceSecondaryNodeRelease PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Context Suspend Response
+--
+-- **************************************************************
+
+UEContextSuspendResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {UEContextSuspendResponseIEs} },
+ ...
+}
+
+UEContextSuspendResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- UE CONTEXT RESUME ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Context Resume Request
+--
+-- **************************************************************
+
+UEContextResumeRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextResumeRequestIEs} },
+ ...
+}
+
+UEContextResumeRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-E-RABFailedToResumeListResumeReq CRITICALITY reject TYPE E-RABFailedToResumeListResumeReq PRESENCE optional}|
+ { ID id-RRC-Resume-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE optional},
+ ...
+}
+
+E-RABFailedToResumeListResumeReq ::= E-RAB-IE-ContainerList { {E-RABFailedToResumeItemResumeReqIEs} }
+
+E-RABFailedToResumeItemResumeReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABFailedToResumeItemResumeReq CRITICALITY reject TYPE E-RABFailedToResumeItemResumeReq PRESENCE mandatory},
+ ...
+}
+
+E-RABFailedToResumeItemResumeReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { E-RABFailedToResumeItemResumeReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABFailedToResumeItemResumeReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Context Resume Response
+--
+-- **************************************************************
+
+UEContextResumeResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextResumeResponseIEs} },
+ ...
+}
+
+UEContextResumeResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-E-RABFailedToResumeListResumeRes CRITICALITY reject TYPE E-RABFailedToResumeListResumeRes PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE optional}|
+ { ID id-PendingDataIndication CRITICALITY ignore TYPE PendingDataIndication PRESENCE optional},
+ ...
+}
+
+E-RABFailedToResumeListResumeRes ::= E-RAB-IE-ContainerList { {E-RABFailedToResumeItemResumeResIEs} }
+
+E-RABFailedToResumeItemResumeResIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABFailedToResumeItemResumeRes CRITICALITY reject TYPE E-RABFailedToResumeItemResumeRes PRESENCE mandatory},
+ ...
+}
+
+E-RABFailedToResumeItemResumeRes ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { E-RABFailedToResumeItemResumeRes-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABFailedToResumeItemResumeRes-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Context Resume Failure
+--
+-- **************************************************************
+
+UEContextResumeFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextResumeFailureIEs} },
+ ...
+}
+
+UEContextResumeFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- Connection Establishment Indication
+--
+-- **************************************************************
+
+ConnectionEstablishmentIndication::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ConnectionEstablishmentIndicationIEs} },
+ ...
+}
+
+ConnectionEstablishmentIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional }|
+ { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional }|
+ { ID id-DL-CP-SecurityInformation CRITICALITY ignore TYPE DL-CP-SecurityInformation PRESENCE optional }|
+ { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}|
+ { ID id-EndIndication CRITICALITY ignore TYPE EndIndication PRESENCE optional}|
+ { ID id-Subscription-Based-UE-DifferentiationInfo CRITICALITY ignore TYPE Subscription-Based-UE-DifferentiationInfo PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- Retrieve UE Information
+--
+-- **************************************************************
+
+RetrieveUEInformation ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { RetrieveUEInformationIEs} },
+ ...
+}
+
+RetrieveUEInformationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE mandatory},
+...
+
+}
+
+
+-- **************************************************************
+
+-- UE Information Transfer
+--
+-- **************************************************************
+UEInformationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEInformationTransferIEs} },
+ ...
+}
+
+UEInformationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE mandatory}|
+ { ID id-UE-Level-QoS-Parameters CRITICALITY ignore TYPE E-RABLevelQoSParameters PRESENCE optional}|
+ { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}|
+ { ID id-Subscription-Based-UE-DifferentiationInfo CRITICALITY ignore TYPE Subscription-Based-UE-DifferentiationInfo PRESENCE optional}|
+ { ID id-PendingDataIndication CRITICALITY ignore TYPE PendingDataIndication PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- eNB CP Relocation Indication
+--
+-- **************************************************************
+
+ENBCPRelocationIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { ENBCPRelocationIndicationIEs} },
+ ...
+}
+
+ENBCPRelocationIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE mandatory}|
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}|
+ { ID id-UL-CP-SecurityInformation CRITICALITY reject TYPE UL-CP-SecurityInformation PRESENCE mandatory},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- MME CP Relocation Indication
+--
+-- **************************************************************
+
+MMECPRelocationIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MMECPRelocationIndicationIEs} },
+ ...
+}
+
+MMECPRelocationIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Secondary RAT Data Usage Report
+--
+-- **************************************************************
+
+SecondaryRATDataUsageReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { SecondaryRATDataUsageReportIEs} },
+ ...
+}
+
+SecondaryRATDataUsageReportIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE mandatory}|
+ { ID id-HandoverFlag CRITICALITY ignore TYPE HandoverFlag PRESENCE optional}|
+ { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional}|
+ { ID id-TimeSinceSecondaryNodeRelease CRITICALITY ignore TYPE TimeSinceSecondaryNodeRelease PRESENCE optional },
+ ...
+}
+
+END
diff --git a/src/s1ap/asn1c/asnGenFiles/asn1c/S1AP-PDU-Descriptions.asn b/src/s1ap/asn1c/asnGenFiles/asn1c/S1AP-PDU-Descriptions.asn
new file mode 100644
index 0000000..a1f1efb
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/asn1c/S1AP-PDU-Descriptions.asn
@@ -0,0 +1,737 @@
+--
+-- **************************************************************
+
+S1AP-PDU-Descriptions {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Descriptions (0)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ ProcedureCode
+FROM S1AP-CommonDataTypes
+
+ CellTrafficTrace,
+ DeactivateTrace,
+ DownlinkUEAssociatedLPPaTransport,
+ DownlinkNASTransport,
+ DownlinkNonUEAssociatedLPPaTransport,
+ DownlinkS1cdma2000tunnelling,
+ ENBDirectInformationTransfer,
+ ENBStatusTransfer,
+ ENBConfigurationUpdate,
+ ENBConfigurationUpdateAcknowledge,
+ ENBConfigurationUpdateFailure,
+ ErrorIndication,
+ HandoverCancel,
+ HandoverCancelAcknowledge,
+ HandoverCommand,
+ HandoverFailure,
+ HandoverNotify,
+ HandoverPreparationFailure,
+ HandoverRequest,
+ HandoverRequestAcknowledge,
+ HandoverRequired,
+ InitialContextSetupFailure,
+ InitialContextSetupRequest,
+ InitialContextSetupResponse,
+ InitialUEMessage,
+ KillRequest,
+ KillResponse,
+ LocationReportingControl,
+ LocationReportingFailureIndication,
+ LocationReport,
+ MMEConfigurationUpdate,
+ MMEConfigurationUpdateAcknowledge,
+ MMEConfigurationUpdateFailure,
+ MMEDirectInformationTransfer,
+ MMEStatusTransfer,
+ NASNonDeliveryIndication,
+ OverloadStart,
+ OverloadStop,
+ Paging,
+ PathSwitchRequest,
+ PathSwitchRequestAcknowledge,
+ PathSwitchRequestFailure,
+ PrivateMessage,
+ Reset,
+ ResetAcknowledge,
+ S1SetupFailure,
+ S1SetupRequest,
+ S1SetupResponse,
+ E-RABModifyRequest,
+ E-RABModifyResponse,
+ E-RABModificationIndication,
+ E-RABModificationConfirm,
+ E-RABReleaseCommand,
+ E-RABReleaseResponse,
+ E-RABReleaseIndication,
+ E-RABSetupRequest,
+ E-RABSetupResponse,
+ TraceFailureIndication,
+ TraceStart,
+ UECapabilityInfoIndication,
+ UEContextModificationFailure,
+ UEContextModificationRequest,
+ UEContextModificationResponse,
+ UEContextReleaseCommand,
+ UEContextReleaseComplete,
+ UEContextReleaseRequest,
+ UERadioCapabilityMatchRequest,
+ UERadioCapabilityMatchResponse,
+ UplinkUEAssociatedLPPaTransport,
+ UplinkNASTransport,
+ UplinkNonUEAssociatedLPPaTransport,
+ UplinkS1cdma2000tunnelling,
+ WriteReplaceWarningRequest,
+ WriteReplaceWarningResponse,
+ ENBConfigurationTransfer,
+ MMEConfigurationTransfer,
+ PWSRestartIndication,
+ UEContextModificationIndication,
+ UEContextModificationConfirm,
+ RerouteNASRequest,
+ PWSFailureIndication,
+ UEContextSuspendRequest,
+ UEContextSuspendResponse,
+ UEContextResumeRequest,
+ UEContextResumeResponse,
+ UEContextResumeFailure,
+ ConnectionEstablishmentIndication,
+ NASDeliveryIndication,
+ RetrieveUEInformation,
+ UEInformationTransfer,
+ ENBCPRelocationIndication,
+ MMECPRelocationIndication,
+ SecondaryRATDataUsageReport
+
+
+FROM S1AP-PDU-Contents
+
+ id-CellTrafficTrace,
+ id-DeactivateTrace,
+ id-downlinkUEAssociatedLPPaTransport,
+ id-downlinkNASTransport,
+ id-downlinkNonUEAssociatedLPPaTransport,
+ id-DownlinkS1cdma2000tunnelling,
+ id-eNBStatusTransfer,
+ id-ErrorIndication,
+ id-HandoverCancel,
+ id-HandoverNotification,
+ id-HandoverPreparation,
+ id-HandoverResourceAllocation,
+ id-InitialContextSetup,
+ id-initialUEMessage,
+ id-ENBConfigurationUpdate,
+ id-Kill,
+ id-LocationReportingControl,
+ id-LocationReportingFailureIndication,
+ id-LocationReport,
+ id-eNBDirectInformationTransfer,
+ id-MMEConfigurationUpdate,
+ id-MMEDirectInformationTransfer,
+ id-MMEStatusTransfer,
+ id-NASNonDeliveryIndication,
+ id-OverloadStart,
+ id-OverloadStop,
+ id-Paging,
+ id-PathSwitchRequest,
+ id-PrivateMessage,
+ id-Reset,
+ id-S1Setup,
+ id-E-RABModify,
+ id-E-RABModificationIndication,
+ id-E-RABRelease,
+ id-E-RABReleaseIndication,
+ id-E-RABSetup,
+ id-TraceFailureIndication,
+ id-TraceStart,
+ id-UECapabilityInfoIndication,
+ id-UEContextModification,
+ id-UEContextRelease,
+ id-UEContextReleaseRequest,
+ id-UERadioCapabilityMatch,
+ id-uplinkUEAssociatedLPPaTransport,
+ id-uplinkNASTransport,
+ id-uplinkNonUEAssociatedLPPaTransport,
+ id-UplinkS1cdma2000tunnelling,
+ id-WriteReplaceWarning,
+ id-eNBConfigurationTransfer,
+ id-MMEConfigurationTransfer,
+ id-PWSRestartIndication,
+ id-UEContextModificationIndication,
+ id-RerouteNASRequest,
+ id-PWSFailureIndication,
+ id-UEContextSuspend,
+ id-UEContextResume,
+ id-ConnectionEstablishmentIndication,
+ id-NASDeliveryIndication,
+ id-RetrieveUEInformation,
+ id-UEInformationTransfer,
+ id-eNBCPRelocationIndication,
+ id-MMECPRelocationIndication,
+ id-SecondaryRATDataUsageReport
+
+
+FROM S1AP-Constants;
+
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+S1AP-ELEMENTARY-PROCEDURE ::= CLASS {
+ &InitiatingMessage ,
+ &SuccessfulOutcome OPTIONAL,
+ &UnsuccessfulOutcome OPTIONAL,
+ &procedureCode ProcedureCode UNIQUE,
+ &criticality Criticality DEFAULT ignore
+}
+WITH SYNTAX {
+ INITIATING MESSAGE &InitiatingMessage
+ [SUCCESSFUL OUTCOME &SuccessfulOutcome]
+ [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
+ PROCEDURE CODE &procedureCode
+ [CRITICALITY &criticality]
+}
+
+-- **************************************************************
+--
+-- Interface PDU Definition
+--
+-- **************************************************************
+
+S1AP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ successfulOutcome SuccessfulOutcome,
+ unsuccessfulOutcome UnsuccessfulOutcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}),
+ criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value S1AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}),
+ criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value S1AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}),
+ criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value S1AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+S1AP-ELEMENTARY-PROCEDURES S1AP-ELEMENTARY-PROCEDURE ::= {
+ S1AP-ELEMENTARY-PROCEDURES-CLASS-1 |
+ S1AP-ELEMENTARY-PROCEDURES-CLASS-2,
+ ...
+}
+
+
+S1AP-ELEMENTARY-PROCEDURES-CLASS-1 S1AP-ELEMENTARY-PROCEDURE ::= {
+ handoverPreparation |
+ handoverResourceAllocation |
+ pathSwitchRequest |
+ e-RABSetup |
+ e-RABModify |
+ e-RABRelease |
+ initialContextSetup |
+ handoverCancel |
+ kill |
+ reset |
+ s1Setup |
+ uEContextModification |
+ uEContextRelease |
+ eNBConfigurationUpdate |
+ mMEConfigurationUpdate |
+ writeReplaceWarning ,
+ ...,
+ uERadioCapabilityMatch |
+ e-RABModificationIndication |
+ uEContextModificationIndication |
+ uEContextSuspend |
+ uEContextResume
+}
+
+S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= {
+ handoverNotification |
+ e-RABReleaseIndication |
+ paging |
+ downlinkNASTransport |
+ initialUEMessage |
+ uplinkNASTransport |
+ errorIndication |
+ nASNonDeliveryIndication |
+ uEContextReleaseRequest |
+ downlinkS1cdma2000tunnelling |
+ uplinkS1cdma2000tunnelling |
+ uECapabilityInfoIndication |
+ eNBStatusTransfer |
+ mMEStatusTransfer |
+ deactivateTrace |
+ traceStart |
+ traceFailureIndication |
+ cellTrafficTrace |
+ locationReportingControl |
+ locationReportingFailureIndication |
+ locationReport |
+ overloadStart |
+ overloadStop |
+ eNBDirectInformationTransfer |
+ mMEDirectInformationTransfer |
+ eNBConfigurationTransfer |
+ mMEConfigurationTransfer |
+ privateMessage ,
+ ...,
+ downlinkUEAssociatedLPPaTransport |
+ uplinkUEAssociatedLPPaTransport |
+ downlinkNonUEAssociatedLPPaTransport |
+ uplinkNonUEAssociatedLPPaTransport |
+ pWSRestartIndication |
+ rerouteNASRequest |
+ pWSFailureIndication |
+ connectionEstablishmentIndication |
+ nASDeliveryIndication |
+ retrieveUEInformation |
+ uEInformationTransfer |
+ eNBCPRelocationIndication |
+ mMECPRelocationIndication |
+ secondaryRATDataUsageReport
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+handoverPreparation S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE HandoverRequired
+ SUCCESSFUL OUTCOME HandoverCommand
+ UNSUCCESSFUL OUTCOME HandoverPreparationFailure
+ PROCEDURE CODE id-HandoverPreparation
+ CRITICALITY reject
+}
+
+handoverResourceAllocation S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE HandoverRequest
+ SUCCESSFUL OUTCOME HandoverRequestAcknowledge
+ UNSUCCESSFUL OUTCOME HandoverFailure
+ PROCEDURE CODE id-HandoverResourceAllocation
+ CRITICALITY reject
+}
+
+handoverNotification S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE HandoverNotify
+ PROCEDURE CODE id-HandoverNotification
+ CRITICALITY ignore
+}
+
+pathSwitchRequest S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PathSwitchRequest
+ SUCCESSFUL OUTCOME PathSwitchRequestAcknowledge
+ UNSUCCESSFUL OUTCOME PathSwitchRequestFailure
+ PROCEDURE CODE id-PathSwitchRequest
+ CRITICALITY reject
+}
+
+e-RABSetup S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABSetupRequest
+ SUCCESSFUL OUTCOME E-RABSetupResponse
+ PROCEDURE CODE id-E-RABSetup
+ CRITICALITY reject
+}
+
+e-RABModify S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABModifyRequest
+ SUCCESSFUL OUTCOME E-RABModifyResponse
+ PROCEDURE CODE id-E-RABModify
+ CRITICALITY reject
+}
+
+e-RABRelease S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABReleaseCommand
+ SUCCESSFUL OUTCOME E-RABReleaseResponse
+ PROCEDURE CODE id-E-RABRelease
+ CRITICALITY reject
+}
+
+e-RABReleaseIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABReleaseIndication
+ PROCEDURE CODE id-E-RABReleaseIndication
+ CRITICALITY ignore
+}
+
+initialContextSetup S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InitialContextSetupRequest
+ SUCCESSFUL OUTCOME InitialContextSetupResponse
+ UNSUCCESSFUL OUTCOME InitialContextSetupFailure
+ PROCEDURE CODE id-InitialContextSetup
+ CRITICALITY reject
+}
+
+uEContextReleaseRequest S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextReleaseRequest
+ PROCEDURE CODE id-UEContextReleaseRequest
+ CRITICALITY ignore
+}
+
+paging S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Paging
+ PROCEDURE CODE id-Paging
+ CRITICALITY ignore
+}
+
+downlinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DownlinkNASTransport
+ PROCEDURE CODE id-downlinkNASTransport
+ CRITICALITY ignore
+}
+
+initialUEMessage S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InitialUEMessage
+ PROCEDURE CODE id-initialUEMessage
+ CRITICALITY ignore
+}
+
+uplinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UplinkNASTransport
+ PROCEDURE CODE id-uplinkNASTransport
+ CRITICALITY ignore
+}
+nASNonDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE NASNonDeliveryIndication
+ PROCEDURE CODE id-NASNonDeliveryIndication
+ CRITICALITY ignore
+}
+
+handoverCancel S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE HandoverCancel
+ SUCCESSFUL OUTCOME HandoverCancelAcknowledge
+ PROCEDURE CODE id-HandoverCancel
+ CRITICALITY reject
+}
+
+reset S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Reset
+ SUCCESSFUL OUTCOME ResetAcknowledge
+ PROCEDURE CODE id-Reset
+ CRITICALITY reject
+}
+
+errorIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ PROCEDURE CODE id-ErrorIndication
+ CRITICALITY ignore
+}
+
+s1Setup S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE S1SetupRequest
+ SUCCESSFUL OUTCOME S1SetupResponse
+ UNSUCCESSFUL OUTCOME S1SetupFailure
+ PROCEDURE CODE id-S1Setup
+ CRITICALITY reject
+}
+
+eNBConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBConfigurationUpdate
+ SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge
+ UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure
+ PROCEDURE CODE id-ENBConfigurationUpdate
+ CRITICALITY reject
+}
+
+mMEConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMEConfigurationUpdate
+ SUCCESSFUL OUTCOME MMEConfigurationUpdateAcknowledge
+ UNSUCCESSFUL OUTCOME MMEConfigurationUpdateFailure
+ PROCEDURE CODE id-MMEConfigurationUpdate
+ CRITICALITY reject
+}
+
+downlinkS1cdma2000tunnelling S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DownlinkS1cdma2000tunnelling
+ PROCEDURE CODE id-DownlinkS1cdma2000tunnelling
+ CRITICALITY ignore
+}
+
+uplinkS1cdma2000tunnelling S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UplinkS1cdma2000tunnelling
+ PROCEDURE CODE id-UplinkS1cdma2000tunnelling
+ CRITICALITY ignore
+}
+
+uEContextModification S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextModificationRequest
+ SUCCESSFUL OUTCOME UEContextModificationResponse
+ UNSUCCESSFUL OUTCOME UEContextModificationFailure
+ PROCEDURE CODE id-UEContextModification
+ CRITICALITY reject
+}
+
+uECapabilityInfoIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UECapabilityInfoIndication
+ PROCEDURE CODE id-UECapabilityInfoIndication
+ CRITICALITY ignore
+}
+
+uEContextRelease S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextReleaseCommand
+ SUCCESSFUL OUTCOME UEContextReleaseComplete
+ PROCEDURE CODE id-UEContextRelease
+ CRITICALITY reject
+}
+
+eNBStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBStatusTransfer
+ PROCEDURE CODE id-eNBStatusTransfer
+ CRITICALITY ignore
+}
+
+mMEStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMEStatusTransfer
+ PROCEDURE CODE id-MMEStatusTransfer
+ CRITICALITY ignore
+}
+
+deactivateTrace S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DeactivateTrace
+ PROCEDURE CODE id-DeactivateTrace
+ CRITICALITY ignore
+}
+
+traceStart S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE TraceStart
+ PROCEDURE CODE id-TraceStart
+ CRITICALITY ignore
+}
+
+traceFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE TraceFailureIndication
+ PROCEDURE CODE id-TraceFailureIndication
+ CRITICALITY ignore
+}
+cellTrafficTrace S1AP-ELEMENTARY-PROCEDURE ::={
+INITIATING MESSAGE CellTrafficTrace
+PROCEDURE CODE id-CellTrafficTrace
+CRITICALITY ignore
+}
+
+locationReportingControl S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReportingControl
+ PROCEDURE CODE id-LocationReportingControl
+ CRITICALITY ignore
+}
+
+locationReportingFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReportingFailureIndication
+ PROCEDURE CODE id-LocationReportingFailureIndication
+ CRITICALITY ignore
+}
+
+locationReport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReport
+ PROCEDURE CODE id-LocationReport
+ CRITICALITY ignore
+}
+
+overloadStart S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE OverloadStart
+ PROCEDURE CODE id-OverloadStart
+ CRITICALITY ignore
+}
+
+overloadStop S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE OverloadStop
+ PROCEDURE CODE id-OverloadStop
+ CRITICALITY reject
+}
+
+writeReplaceWarning S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE WriteReplaceWarningRequest
+ SUCCESSFUL OUTCOME WriteReplaceWarningResponse
+ PROCEDURE CODE id-WriteReplaceWarning
+ CRITICALITY reject
+}
+
+eNBDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBDirectInformationTransfer
+ PROCEDURE CODE id-eNBDirectInformationTransfer
+ CRITICALITY ignore
+}
+
+mMEDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMEDirectInformationTransfer
+ PROCEDURE CODE id-MMEDirectInformationTransfer
+ CRITICALITY ignore
+}
+
+eNBConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBConfigurationTransfer
+ PROCEDURE CODE id-eNBConfigurationTransfer
+ CRITICALITY ignore
+}
+
+mMEConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMEConfigurationTransfer
+ PROCEDURE CODE id-MMEConfigurationTransfer
+ CRITICALITY ignore
+}
+
+
+privateMessage S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+ PROCEDURE CODE id-PrivateMessage
+ CRITICALITY ignore
+}
+
+pWSRestartIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PWSRestartIndication
+ PROCEDURE CODE id-PWSRestartIndication
+ CRITICALITY ignore
+}
+
+kill S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE KillRequest
+ SUCCESSFUL OUTCOME KillResponse
+ PROCEDURE CODE id-Kill
+ CRITICALITY reject
+}
+
+downlinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DownlinkUEAssociatedLPPaTransport
+ PROCEDURE CODE id-downlinkUEAssociatedLPPaTransport
+ CRITICALITY ignore
+}
+
+uplinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UplinkUEAssociatedLPPaTransport
+ PROCEDURE CODE id-uplinkUEAssociatedLPPaTransport
+ CRITICALITY ignore
+}
+downlinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DownlinkNonUEAssociatedLPPaTransport
+ PROCEDURE CODE id-downlinkNonUEAssociatedLPPaTransport
+ CRITICALITY ignore
+}
+
+uplinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UplinkNonUEAssociatedLPPaTransport
+ PROCEDURE CODE id-uplinkNonUEAssociatedLPPaTransport
+ CRITICALITY ignore
+}
+
+uERadioCapabilityMatch S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UERadioCapabilityMatchRequest
+ SUCCESSFUL OUTCOME UERadioCapabilityMatchResponse
+ PROCEDURE CODE id-UERadioCapabilityMatch
+ CRITICALITY reject
+}
+
+e-RABModificationIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABModificationIndication
+ SUCCESSFUL OUTCOME E-RABModificationConfirm
+ PROCEDURE CODE id-E-RABModificationIndication
+ CRITICALITY reject
+}
+
+uEContextModificationIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextModificationIndication
+ SUCCESSFUL OUTCOME UEContextModificationConfirm
+ PROCEDURE CODE id-UEContextModificationIndication
+ CRITICALITY reject
+}
+
+rerouteNASRequest S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RerouteNASRequest
+ PROCEDURE CODE id-RerouteNASRequest
+ CRITICALITY reject
+}
+
+pWSFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PWSFailureIndication
+ PROCEDURE CODE id-PWSFailureIndication
+ CRITICALITY ignore
+}
+
+uEContextSuspend S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextSuspendRequest
+ SUCCESSFUL OUTCOME UEContextSuspendResponse
+ PROCEDURE CODE id-UEContextSuspend
+ CRITICALITY reject
+}
+
+uEContextResume S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextResumeRequest
+ SUCCESSFUL OUTCOME UEContextResumeResponse
+ UNSUCCESSFUL OUTCOME UEContextResumeFailure
+ PROCEDURE CODE id-UEContextResume
+ CRITICALITY reject
+}
+
+connectionEstablishmentIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ConnectionEstablishmentIndication
+ PROCEDURE CODE id-ConnectionEstablishmentIndication
+ CRITICALITY reject
+}
+
+nASDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE NASDeliveryIndication
+ PROCEDURE CODE id-NASDeliveryIndication
+ CRITICALITY ignore
+}
+
+retrieveUEInformation S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RetrieveUEInformation
+ PROCEDURE CODE id-RetrieveUEInformation
+ CRITICALITY reject
+}
+
+uEInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEInformationTransfer
+ PROCEDURE CODE id-UEInformationTransfer
+ CRITICALITY reject
+}
+
+eNBCPRelocationIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBCPRelocationIndication
+ PROCEDURE CODE id-eNBCPRelocationIndication
+ CRITICALITY reject
+}
+
+mMECPRelocationIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMECPRelocationIndication
+ PROCEDURE CODE id-MMECPRelocationIndication
+ CRITICALITY reject
+}
+
+secondaryRATDataUsageReport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SecondaryRATDataUsageReport
+ PROCEDURE CODE id-SecondaryRATDataUsageReport
+ CRITICALITY ignore
+}
+
+
+END
diff --git a/src/s1ap/asn1c/asnGenFiles/asn1tostruct.py b/src/s1ap/asn1c/asnGenFiles/asn1tostruct.py
new file mode 100644
index 0000000..adf5455
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/asn1tostruct.py
@@ -0,0 +1,810 @@
+#
+# Copyright (c) 2015, EURECOM (www.eurecom.fr)
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those
+# of the authors and should not be interpreted as representing official policies,
+# either expressed or implied, of the FreeBSD Project.
+
+import re, os, sys, string
+import datetime
+import getopt
+import getpass
+
+version = "1.0.2"
+
+lines = ""
+iesDefs = {}
+ieofielist = {}
+outdir = './'
+
+filenames = []
+verbosity = 0
+prefix = ""
+
+FAIL = '\033[91m'
+WARN = '\033[93m'
+ENDC = '\033[0m'
+
+fileprefix = ""
+fileprefix_first_upper = ""
+
+def printFail(string):
+ sys.stderr.write(FAIL + string + ENDC + "\n")
+
+def printWarning(string):
+ print WARN + string + ENDC
+
+def printDebug(string):
+ if verbosity > 0:
+ print string
+
+def outputHeaderToFile(f, filename):
+ now = datetime.datetime.now()
+ f.write("""/*
+ * Copyright (c) 2015, EURECOM (www.eurecom.fr)
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those
+ * of the authors and should not be interpreted as representing official policies,
+ * either expressed or implied, of the FreeBSD Project.
+ */
+
+""")
+ f.write("/*******************************************************************************\n")
+ f.write(" * This file had been created by asn1tostruct.py script v%s\n" % (version))
+ f.write(" * Please do not modify this file but regenerate it via script.\n")
+ f.write(" * Created on: %s by %s\n * from %s\n" % (str(now), getpass.getuser(), filenames))
+ f.write(" ******************************************************************************/\n")
+
+def lowerFirstCamelWord(word):
+ """ puts the first word in a CamelCase Word in lowercase.
+
+ I.e. CustomerID becomes customerID, XMLInfoTest becomes xmlInfoTest
+ """
+ newstr = ''
+ swapped = word.swapcase()
+ idx = 0
+
+ # if it's all-caps, return an all-lowered version
+ lowered = word.lower()
+
+ if swapped == lowered:
+ return lowered
+
+ for c in swapped:
+ if c in string.lowercase:
+ newstr += c
+ idx += 1
+ else:
+ break
+ if idx < 2:
+ newstr += word[idx:]
+ else:
+ newstr = newstr[:-1]+ word[idx-1:]
+
+ return newstr
+
+def usage():
+ print "Python parser for asn1 v%s" % (version)
+ print "Usage: python asn1tostruct.py [options]"
+ print "Available options:"
+ print "-d Enable script debug"
+ print "-f [file] Input file to parse"
+ print "-o [dir] Output files to given directory"
+ print "-h Print this help and return"
+
+try:
+ opts, args = getopt.getopt(sys.argv[1:], "df:ho:", ["debug", "file", "help", "outdir"])
+except getopt.GetoptError as err:
+ # print help information and exit:
+ usage()
+ sys.exit(2)
+
+for o, a in opts:
+ if o in ("-f", "--file"):
+ filenames.append(a)
+ if o in ("-d", "--debug"):
+ verbosity = 1
+ if o in ("-o", "--outdir"):
+ outdir = a
+ if outdir.rfind('/') != len(outdir):
+ outdir += '/'
+ if o in ("-h", "--help"):
+ usage()
+ sys.exit(2)
+
+for filename in filenames:
+ file = open(filename, 'r')
+ for line in file:
+ # Removing any comment
+ if line.find('--') >= 0:
+ line = line[:line.find('--')]
+ # Removing any carriage return
+ lines += re.sub('\r', '', line)
+
+ for m in re.findall(r'([a-zA-Z0-9-]+)\s*::=\s+SEQUENCE\s+\(\s*SIZE\s*\(\s*\d+\s*\.\.\s*[0-9a-zA-Z-]+\s*\)\s*\)\s*OF\s+[a-zA-Z-]+\s*\{\s*\{\s*([0-9a-zA-Z-]+)\s*\}\s*\}', lines, re.MULTILINE):
+ ieofielist[m[0]] = m[1]
+ for m in re.findall(r'([a-zA-Z0-9-]+)\s*::=\s+E-RAB-IE-ContainerList\s*\{\s*\{\s*([a-zA-Z0-9-]+)\s*\}\s*\}', lines, re.MULTILINE):
+ ieofielist[m[0]] = m[1]
+
+ for i in re.findall(r'([a-zA-Z0-9-]+)\s+([A-Z0-9-]+)\s*::=\s*\{\s+([\,\|\{\}\t\n\.{3}\ \-a-zA-Z0-9]+)\s+}\n', lines, re.MULTILINE):
+ ies = []
+ maxLength = 0
+ # TODO: handle extensions
+ if i[1].find('EXTENSION') >= 0:
+ continue
+ if fileprefix == "":
+ fileprefix = i[1][:i[1].find('-')].lower()
+ for j in re.findall(r'\s*\{\s*([a-zA-Z0-9-\ \t]+)\s*\}\s*[\|,]*', i[2], re.MULTILINE):
+ for k in re.findall(r'ID\s*([a-zA-Z0-9\-]+)\s*CRITICALITY\s*([a-zA-Z0-9\-]+)\s+[A-Z]+\s+([a-zA-Z0-9\-]+)\s*PRESENCE\s*([a-zA-Z0-9\-]+)', j, re.MULTILINE):
+ printDebug("Got new ie for message " + i[0] + ": " + str(k))
+ if len(k[2]) > maxLength:
+ maxLength = len(k[2])
+ ies.append(k)
+
+ if len(ies) > 0:
+ iesDefs[i[0]] = { "length": maxLength, "ies": ies }
+ else:
+ printWarning("Didn't find any information element for message: " + i[0])
+
+if len(iesDefs) == 0:
+ printFail("No Information Element parsed, exiting")
+ sys.exit(0)
+
+fileprefix_first_upper = fileprefix[0].upper() + fileprefix[1:]
+
+f = open(outdir + fileprefix + '_ies_defs.h', 'w')
+outputHeaderToFile(f, filename)
+f.write("#include \"%s_common.h\"\n\n" % (fileprefix))
+f.write("#ifndef %s_IES_DEFS_H_\n#define %s_IES_DEFS_H_\n\n" % (fileprefix.upper(), fileprefix.upper()))
+f.write("/* Define the version of script used to generate this file */\n")
+f.write("#define %s_SCRIPT_VERSION (%s)\n\n" % (fileprefix.upper(), re.sub('\.', '', version)))
+
+for key in iesDefs:
+
+ if key not in ieofielist.values():
+ continue
+
+ for (i, j) in ieofielist.items():
+ if j == key:
+ break
+
+ f.write("typedef struct %sIEs_s {\n" % (re.sub('-', '_', i)))
+ f.write(" A_SEQUENCE_OF(struct %s_s) %s;\n" % (re.sub('IEs', '', re.sub('-', '_', ieofielist[i])), lowerFirstCamelWord(re.sub('IEs', '', re.sub('-', '_', ieofielist[i])))))
+ f.write("} %sIEs_t;\n\n" % (re.sub('-', '_', i)))
+
+for key in iesDefs:
+ keyupperunderscore = re.sub('-', '_', key.upper())
+ keylowerunderscore = re.sub('-', '_', key.lower())
+ shift = 0
+
+ if len(iesDefs[key]["ies"]) == 0:
+ continue
+
+ # Presence mask
+ for ie in iesDefs[key]["ies"]:
+ ieupperunderscore = re.sub('-', '_', re.sub('id-', '', ie[0])).upper()
+
+ if ie[3] == "optional" or ie[3] == "conditional":
+ f.write("#define {0:<{pad}} {1}\n".format("%s_%s_PRESENT" % (keyupperunderscore, ieupperunderscore), "(1 << %d)" % shift,
+ pad=iesDefs[key]["length"] + len(keyupperunderscore) + 9))
+ shift += 1
+ if (shift > 0):
+ f.write("\n")
+
+ f.write("typedef struct %s_s {\n" % (re.sub('-', '_', key)))
+ if (shift > 0):
+ f.write(" {0:<{pad}} {1};\n".format("uint16_t", "presenceMask", pad=iesDefs[key]["length"] + 2))
+ for ie in iesDefs[key]["ies"]:
+ ieunderscore = re.sub('-', '_', ie[2])
+ iename = re.sub('id-', '', ie[0])
+ ienameunderscore = lowerFirstCamelWord(re.sub('-', '_', iename))
+ if ie[2] in ieofielist:
+ f.write(" %sIEs_t %s;" % (re.sub('-', '_', ie[2]), ienameunderscore))
+ else:
+ f.write(" {0:<{pad}} {1};".format("%s_t" % ieunderscore, ienameunderscore, pad=iesDefs[key]["length"] + 2))
+ if ie[3] == "optional":
+ f.write(" ///< Optional field")
+ elif ie[3] == "conditional":
+ f.write(" ///< Conditional field")
+ f.write("\n")
+
+ f.write("} %s_t;\n\n" % (re.sub('-', '_', key)))
+
+f.write("typedef struct %s_message_s {\n" % (fileprefix))
+f.write(" %s_ProcedureCode_t procedureCode;\n" % (fileprefix_first_upper))
+f.write(" %s_Criticality_t criticality;\n" % (fileprefix_first_upper))
+f.write(" uint8_t direction;\n")
+f.write(" union {\n")
+
+messageList = iesDefs.keys()
+messageList.sort()
+for message in messageList:
+ if message in ieofielist.values():
+ continue
+ if len(iesDefs[message]["ies"]) == 0:
+ continue
+ f.write(" %s_t %s;\n" % (re.sub('-', '_', message), lowerFirstCamelWord(re.sub('-', '_', message))))
+f.write(" } msg;\n")
+f.write("} %s_message;\n\n" % (fileprefix))
+
+for key in iesDefs:
+ if key in ieofielist.values():
+ continue
+ structName = re.sub('ies', '', key)
+ asn1cStruct = re.sub('-', '_', re.sub('IEs', '', re.sub('-IEs', '', key)))
+ asn1cStruct = re.sub('Item', 'List', asn1cStruct)
+ keylowerunderscore = re.sub('-', '_', key.lower())
+ firstlower = re.sub('Item', 'List', re.sub('enb', 'eNB', lowerFirstCamelWord(asn1cStruct)))
+ f.write("/** \\brief Decode function for %s ies.\n" % (key))
+ if len(iesDefs[key]["ies"]) != 0:
+ f.write(" * \\param %s Pointer to ASN1 structure in which data will be stored\n" % (lowerFirstCamelWord(re.sub('-', '_', key))))
+ f.write(" * \\param any_p Pointer to the ANY value to decode.\n")
+ f.write(" **/\n")
+ f.write("int %s_decode_%s(\n" % (fileprefix, keylowerunderscore))
+
+ if len(iesDefs[key]["ies"]) != 0:
+ f.write(" %s_t *%s,\n" % (re.sub('-', '_', key), lowerFirstCamelWord(re.sub('-', '_', key))))
+ f.write(" ANY_t *any_p);\n\n")
+
+ if len(iesDefs[key]["ies"]) == 0:
+ continue
+
+ f.write("/** \\brief Encode function for %s ies.\n" % (key))
+ f.write(" * \\param %s Pointer to the ASN1 structure.\n" % (firstlower))
+ f.write(" * \\param %s Pointer to the IES structure.\n" % (lowerFirstCamelWord(re.sub('-', '_', key))))
+ f.write(" **/\n")
+ f.write("int %s_encode_%s(\n" % (fileprefix, re.sub('-', '_', structName.lower())))
+ f.write(" %s_t *%s,\n" % (asn1cStruct, firstlower))
+ f.write(" %s_t *%s);\n\n" % (re.sub('-', '_', key), lowerFirstCamelWord(re.sub('-', '_', key))))
+
+for key in iesDefs:
+ if key not in ieofielist.values():
+ continue
+ asn1cStruct = re.sub('-', '_', re.sub('IEs', '', key))
+ asn1cStruct = re.sub('Item', 'List', asn1cStruct)
+ firstlower = re.sub('Item', 'List', re.sub('enb', 'eNB', lowerFirstCamelWord(asn1cStruct)))
+ f.write("/** \\brief Encode function for %s ies.\n" % (key))
+ f.write(" * \\param %s Pointer to the ASN1 structure.\n" % (firstlower))
+ f.write(" * \\param %s Pointer to the IES structure.\n" % (lowerFirstCamelWord(re.sub('-', '_', key))))
+ f.write(" **/\n")
+ f.write("int %s_encode_%s(\n" % (fileprefix, firstlower.lower()))
+ f.write(" %s_t *%s,\n" % (asn1cStruct, firstlower))
+ f.write(" %sIEs_t *%sIEs);\n\n" % (asn1cStruct, firstlower))
+ f.write("/** \\brief Decode function for %s ies.\n" % (key))
+ f.write(" * \\param any_p Pointer to the ANY value to decode.\n")
+ f.write(" * \\param callback Callback function called when any_p is successfully decoded.\n")
+ f.write(" **/\n")
+ f.write("int %s_decode_%s(\n" % (fileprefix, firstlower.lower()))
+ f.write(" %sIEs_t *%sIEs,\n" % (asn1cStruct, firstlower))
+ f.write(" %s_t *%s);\n\n" % (asn1cStruct, lowerFirstCamelWord(asn1cStruct)))
+
+for key in iesDefs:
+ asn1cStruct = re.sub('-', '_', re.sub('IEs', '', key))
+ asn1cStruct = re.sub('Item', 'List', asn1cStruct)
+ firstlower = re.sub('Item', 'List', re.sub('enb', 'eNB', lowerFirstCamelWord(asn1cStruct)))
+
+ if key in ieofielist.values():
+ f.write("/** \\brief Display %s encapsulated IE using XER encoding.\n" % (asn1cStruct))
+ f.write(" * \\param %s Pointer to the IES structure.\n" % (lowerFirstCamelWord(re.sub('-', '_', key))))
+ f.write(" * \\param file File descriptor to write output.\n")
+ f.write(" **/\n")
+ f.write("asn_enc_rval_t %s_xer_print_%s(\n" % (fileprefix, re.sub('item', 'list', firstlower.lower())))
+ f.write(" asn_app_consume_bytes_f *cb,\n")
+ f.write(" void *app_key,\n")
+ f.write(" %sIEs_t *%sIEs);\n\n" % (re.sub('item', 'list', asn1cStruct), firstlower))
+ else:
+ f.write("/** \\brief Display %s message using XER encoding.\n" % (asn1cStruct))
+ f.write(" * \\param message_p Pointer to root message.\n")
+ f.write(" * \\param file File descriptor to write output.\n")
+ f.write(" **/\n")
+ f.write("asn_enc_rval_t %s_xer_print_%s(\n" % (fileprefix, firstlower.lower()))
+ f.write(" asn_app_consume_bytes_f *cb,\n")
+ f.write(" void *app_key,\n")
+ f.write(" %s_message *message_p);\n\n" % (fileprefix))
+
+f.write("int %s_xer__print2sp(const void *buffer, size_t size, void *app_key);\n\n" % (fileprefix.lower()))
+f.write("int %s_xer__print2fp(const void *buffer, size_t size, void *app_key);\n\n" % (fileprefix.lower()))
+f.write("extern size_t %s_string_total_size;\n\n" % (fileprefix.lower()))
+
+for key in iesDefs:
+ if len(iesDefs[key]["ies"]) == 0:
+ continue
+ keyupperunderscore = re.sub('-', '_', key.upper())
+ keylowerunderscore = re.sub('-', '_', key.lower())
+ structName = re.sub('ies', '', key, flags=re.IGNORECASE)
+ f.write("int free_%s(\n" % (re.sub('-', '_', structName.lower())))
+ f.write(" %s_t *%s);\n\n" % (prefix + re.sub('-', '_', key), lowerFirstCamelWord(re.sub('-', '_', key))))
+f.write("#endif /* %s_IES_DEFS_H_ */\n\n" % (fileprefix.upper()))
+
+#Generate Decode functions
+f = open(outdir + fileprefix + '_decoder.c', 'w')
+outputHeaderToFile(f, filename)
+f.write("#include \"%s_common.h\"\n#include \"%s_ies_defs.h\"\n#include \"log.h\"\n\n" % (fileprefix, fileprefix))
+for key in iesDefs:
+ if key in ieofielist.values():
+ continue
+ structName = re.sub('ies', '', key)
+ asn1cStruct = re.sub('-', '_', re.sub('IEs', '', key))
+ if asn1cStruct.rfind('_') == len(asn1cStruct) - 1:
+ asn1cStruct = asn1cStruct[:-1]
+ asn1cStruct = re.sub('Item', 'List', asn1cStruct)
+ ielistname = re.sub('UE', 'ue', asn1cStruct)
+ ielistnamefirstlower = ielistname[:1].lower() + ielistname[1:]
+ asn1cStructfirstlower = asn1cStruct[:1].lower() + asn1cStruct[1:]
+ keyName = re.sub('-', '_', key)
+ keyupperunderscore = keyName.upper()
+ firstlower = re.sub('Item', 'List', re.sub('enb', 'eNB', lowerFirstCamelWord(asn1cStruct)))
+
+ iesaccess = ""
+ if key not in ieofielist.values():
+ iesaccess = "%s_ies." % (firstlower)
+
+ f.write("int %s_decode_%s(\n" % (fileprefix, re.sub('-', '_', structName.lower())))
+ if len(iesDefs[key]["ies"]) != 0:
+ f.write(" %s_t *%s,\n" % (re.sub('-', '_', key), lowerFirstCamelWord(re.sub('-', '_', key))))
+ f.write(" ANY_t *any_p) {\n\n")
+
+ f.write(" %s_t %s;\n %s_t *%s_p = &%s;\n" % (asn1cStruct, asn1cStructfirstlower, asn1cStruct, asn1cStructfirstlower, asn1cStructfirstlower))
+ f.write(" int i, decoded = 0;\n")
+ if len(iesDefs[key]["ies"]) != 0:
+ f.write(" int tempDecoded = 0;\n")
+
+ f.write(" assert(any_p != NULL);\n")
+ if len(iesDefs[key]["ies"]) != 0:
+ f.write(" assert(%s != NULL);\n\n" % (lowerFirstCamelWord(re.sub('-', '_', key))))
+ f.write(" memset(%s, 0, sizeof(%s_t));\n" % (lowerFirstCamelWord(re.sub('-', '_', key)), prefix + re.sub('-', '_', key)))
+
+ f.write(" OAILOG_DEBUG (LOG_%s, \"Decoding message %s (%%s:%%d)\\n\", __FILE__, __LINE__);\n\n" % (fileprefix.upper(), re.sub('-', '_', keyName)))
+ f.write(" ANY_to_type_aper(any_p, &asn_DEF_%s, (void**)&%s_p);\n\n" % (asn1cStruct, asn1cStructfirstlower))
+ f.write(" for (i = 0; i < %s_p->%slist.count; i++) {\n" % (asn1cStructfirstlower, iesaccess))
+ f.write(" %s_IE_t *ie_p;\n" % (fileprefix[0].upper() + fileprefix[1:]))
+ f.write(" ie_p = %s_p->%slist.array[i];\n" % (asn1cStructfirstlower, iesaccess))
+ f.write(" switch(ie_p->id) {\n")
+ for ie in iesDefs[key]["ies"]:
+ iename = re.sub('id-', '', ie[0])
+ ienameunderscore = lowerFirstCamelWord(re.sub('-', '_', iename))
+ ienameunderscorefirstlower = lowerFirstCamelWord(ienameunderscore)
+ ietypesubst = re.sub('-', '', ie[2])
+ ietypeunderscore = re.sub('-', '_', ie[2])
+ ieupperunderscore = re.sub('-', '_', re.sub('id-', '', ie[0])).upper()
+
+ if ie[3] == "optional":
+ f.write(" /* Optional field */\n")
+ elif ie[3] == "conditional":
+ f.write(" /* Conditional field */\n")
+ f.write(" case %s_ProtocolIE_ID_%s:\n" % (fileprefix_first_upper, re.sub('-', '_', ie[0])))
+ f.write(" {\n")
+ f.write(" %s_t *%s_p = NULL;\n" % (ietypeunderscore, lowerFirstCamelWord(ietypesubst)))
+ if ie[3] != "mandatory":
+ f.write(" %s->presenceMask |= %s_%s_PRESENT;\n" % (lowerFirstCamelWord(re.sub('-', '_', key)), keyupperunderscore, ieupperunderscore))
+ f.write(" tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_%s, (void**)&%s_p);\n" % (ietypeunderscore, lowerFirstCamelWord(ietypesubst)))
+ f.write(" if (tempDecoded < 0 || %s_p == NULL) {\n" % (lowerFirstCamelWord(ietypesubst)))
+ f.write(" OAILOG_ERROR (LOG_%s, \"Decoding of IE %s failed\\n\");\n" % (fileprefix.upper(), ienameunderscore))
+ f.write(" if (%s_p)\n" % (lowerFirstCamelWord(ietypesubst)))
+ f.write(" ASN_STRUCT_FREE(asn_DEF_%s, %s_p);\n" % (ietypeunderscore, lowerFirstCamelWord(ietypesubst)))
+ f.write(" return -1;\n")
+ f.write(" }\n")
+ f.write(" decoded += tempDecoded;\n")
+ f.write(" if (asn1_xer_print)\n")
+ f.write(" xer_fprint(stdout, &asn_DEF_%s, %s_p);\n" % (ietypeunderscore, lowerFirstCamelWord(ietypesubst)))
+ if ie[2] in ieofielist.keys():
+ f.write(" if (%s_decode_%s(&%s->%s, %s_p) < 0) {\n" % (fileprefix, ietypeunderscore.lower(), lowerFirstCamelWord(re.sub('-', '_', key)), ienameunderscore, lowerFirstCamelWord(ietypesubst)))
+ f.write(" OAILOG_ERROR (LOG_%s, \"Decoding of encapsulated IE %s failed (1) \\n\");\n" % (fileprefix.upper(), lowerFirstCamelWord(ietypesubst)))
+# f.write(" ASN_STRUCT_FREE(asn_DEF_%s, %s_p);\n" % (ietypeunderscore, lowerFirstCamelWord(ietypesubst)))
+ f.write(" }\n")
+ f.write(" ASN_STRUCT_FREE(asn_DEF_%s, %s_p);\n" % (ietypeunderscore, lowerFirstCamelWord(ietypesubst)))
+ else:
+ f.write(" memcpy(&%s->%s, %s_p, sizeof(%s_t));\n" % (lowerFirstCamelWord(re.sub('-', '_', key)), ienameunderscore, lowerFirstCamelWord(ietypesubst), ietypeunderscore))
+ f.write(" FREEMEM(%s_p);\n" % (lowerFirstCamelWord(ietypesubst)))
+ f.write(" %s_p = NULL;\n" % (lowerFirstCamelWord(ietypesubst)))
+ f.write(" } break;\n")
+ f.write(" default:\n")
+ f.write(" OAILOG_ERROR (LOG_%s, \"Unknown protocol IE id (%%d) for message %s\\n\", (int)ie_p->id);\n" % (fileprefix.upper(), re.sub('-', '_', structName.lower())))
+ f.write(" return -1;\n")
+ f.write(" }\n")
+ f.write(" }\n")
+ f.write(" ASN_STRUCT_FREE(asn_DEF_%s, %s_p);\n" % (asn1cStruct, asn1cStructfirstlower))
+ f.write(" return decoded;\n")
+ f.write("}\n\n")
+
+
+# Generate free functions for encapsulated IEs
+for key in iesDefs:
+ if key not in ieofielist.values():
+ continue
+ if len(iesDefs[key]["ies"]) == 0:
+ continue
+ # TODO: Check if the encapsulated IE also contains further encap.
+ ie = iesDefs[key]["ies"][0]
+ ietypeunderscore = prefix + re.sub('-', '_', ie[2])
+ keyname = re.sub('IEs', '', re.sub('Item', 'List', key))
+ iesStructName = lowerFirstCamelWord(re.sub('Item', 'List', re.sub('-', '_', key)))
+ f.write("int free_%s(\n" % (re.sub('-', '_', keyname).lower()))
+ f.write(" %sIEs_t *%s) {\n\n" % (re.sub('-', '_', keyname), iesStructName))
+ f.write(" assert(%s != NULL);\n\n" % (iesStructName))
+ f.write(" for (int i = 0; i < %s->%s.count; i++) {\n" %
+ (iesStructName, re.sub('IEs', '', lowerFirstCamelWord(re.sub('-', '_', key)))))
+ f.write(" ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_%s, %s->%s.array[i]);\n" %
+ (ietypeunderscore, iesStructName, re.sub('IEs', '',lowerFirstCamelWord(re.sub('-', '_', key)))))
+ f.write(" FREEMEM(%s->%s.array[i]);\n" %
+ (iesStructName, re.sub('IEs', '',lowerFirstCamelWord(re.sub('-', '_', key)))))
+ f.write(" }\n")
+ f.write(" /* Remove the array containing the elements. */\n")
+ f.write(" FREEMEM(%s->%s.array);\n" %
+ (iesStructName, re.sub('IEs', '',lowerFirstCamelWord(re.sub('-', '_', key)))))
+ f.write(" return 0;\n")
+ f.write("}\n\n")
+
+
+
+for key in iesDefs:
+ if len(iesDefs[key]["ies"]) == 0:
+ continue
+ keyupperunderscore = re.sub('-', '_', key.upper())
+ keylowerunderscore = re.sub('-', '_', key.lower())
+ structName = re.sub('ies', '', key, flags=re.IGNORECASE)
+
+
+ f.write("int free_%s(\n" % (re.sub('-', '_', structName.lower())))
+ f.write(" %s_t *%s) {\n\n" % (prefix + re.sub('-', '_', key),
+ lowerFirstCamelWord(re.sub('-', '_', key))))
+
+ for ie in iesDefs[key]["ies"]:
+ ietypeunderscore = prefix + re.sub('-', '_', ie[2])
+ ieupperunderscore = re.sub('-', '_', re.sub('id-', '', ie[0])).upper()
+ if ie[3] != "mandatory":
+ if ie[3] == "optional":
+ f.write(" /* Optional field */\n")
+ elif ie[3] == "conditional":
+ f.write(" /* Conditional field */\n")
+ f.write(" if ((%s->presenceMask & %s_%s_PRESENT)\n" % (lowerFirstCamelWord(re.sub('-', '_', key)), keyupperunderscore, ieupperunderscore))
+ f.write(" == %s_%s_PRESENT) \n " % (keyupperunderscore, ieupperunderscore))
+
+ iename = re.sub('id-', '', ie[0])
+ ienameunderscore = lowerFirstCamelWord(re.sub('-', '_', iename))
+ # Check if this is an encapsulated IE, if so call the free function.
+ if ie[2] in ieofielist.keys():
+ keyname = re.sub('IEs', '', re.sub('Item', 'List', ie[2]))
+ f.write(" free_%s(&%s->%s);\n" % (re.sub('-', '_', keyname).lower(),
+ lowerFirstCamelWord(re.sub('-', '_', key)), ienameunderscore))
+ else:
+ f.write(" ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_%s, &%s->%s);\n" % (ietypeunderscore, lowerFirstCamelWord(re.sub('-', '_', key)), ienameunderscore))
+ f.write(" return 0;\n")
+ f.write("}\n\n")
+
+for key in iesDefs:
+ if key not in ieofielist.values():
+ continue
+
+ keyname = re.sub('IEs', '', re.sub('Item', 'List', key))
+
+ f.write("int %s_decode_%s(\n" % (fileprefix, re.sub('-', '_', keyname).lower()))
+ f.write(" %sIEs_t *%sIEs,\n" % (re.sub('-', '_', keyname), lowerFirstCamelWord(re.sub('-', '_', keyname))))
+ f.write(" %s_t *%s) {\n\n" % (re.sub('-', '_', keyname), lowerFirstCamelWord(re.sub('-', '_', keyname))))
+ f.write(" int i, decoded = 0;\n")
+ f.write(" int tempDecoded = 0;\n\n")
+
+ f.write(" assert(%s != NULL);\n" % (lowerFirstCamelWord(re.sub('-', '_', keyname))))
+ f.write(" assert(%sIEs != NULL);\n\n" % (lowerFirstCamelWord(re.sub('-', '_', keyname))))
+
+ f.write(" for (i = 0; i < %s->list.count; i++) {\n" % (lowerFirstCamelWord(re.sub('-', '_', keyname))))
+ f.write(" %s_IE_t *ie_p = %s->list.array[i];\n" % (fileprefix[0].upper() + fileprefix[1:], lowerFirstCamelWord(re.sub('-', '_', keyname))))
+ f.write(" switch (ie_p->id) {\n")
+ for ie in iesDefs[key]["ies"]:
+ iename = re.sub('id-', '', ie[0])
+ ienameunderscore = lowerFirstCamelWord(re.sub('-', '_', iename))
+ f.write(" case %s_ProtocolIE_ID_%s:\n" % (fileprefix_first_upper, re.sub('-', '_', ie[0])))
+ f.write(" {\n")
+ f.write(" %s_t *%s_p = NULL;\n" % (re.sub('-', '_', ie[2]), lowerFirstCamelWord(re.sub('-', '', ie[2]))))
+ f.write(" tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_%s, (void**)&%s_p);\n" % (re.sub('-', '_', ie[2]), lowerFirstCamelWord(re.sub('-', '', ie[2]))))
+ f.write(" if (tempDecoded < 0 || %s_p == NULL) {\n" % (lowerFirstCamelWord(re.sub('-', '', ie[2]))))
+ f.write(" OAILOG_ERROR (LOG_%s, \"Decoding of IE %s for message %s failed (2) \\n\");\n" % (fileprefix.upper(), ienameunderscore, re.sub('-', '_', keyname)))
+ f.write(" if (%s_p)\n" % (lowerFirstCamelWord(re.sub('-', '', ie[2]))))
+ f.write(" ASN_STRUCT_FREE(asn_DEF_%s, %s_p);\n" % (re.sub('-', '_', ie[2]), lowerFirstCamelWord(re.sub('-', '', ie[2]))))
+ f.write(" return -1;\n")
+ f.write(" }\n")
+ f.write(" decoded += tempDecoded;\n")
+ f.write(" if (asn1_xer_print)\n")
+ f.write(" xer_fprint(stdout, &asn_DEF_%s, %s_p);\n" % (re.sub('-', '_', ie[2]), lowerFirstCamelWord(re.sub('-', '', ie[2]))))
+ f.write(" ASN_SEQUENCE_ADD(&%sIEs->%s, %s_p);\n" % (lowerFirstCamelWord(re.sub('-', '_', keyname)),
+ re.sub('IEs', '', lowerFirstCamelWord(re.sub('-', '_', key))), lowerFirstCamelWord(re.sub('-', '', ie[2]))))
+ f.write(" } break;\n")
+ f.write(" default:\n")
+ f.write(" OAILOG_ERROR (LOG_%s, \"Unknown protocol IE id (%%d) for message %s\\n\", (int)ie_p->id);\n" % (fileprefix.upper(), re.sub('-', '_', structName.lower())))
+ f.write(" return -1;\n")
+ f.write(" }\n")
+ f.write(" }\n")
+ f.write(" return decoded;\n")
+ f.write("}\n\n")
+
+
+#Generate IES Encode functions
+f = open(outdir + fileprefix + '_encoder.c', 'w')
+outputHeaderToFile(f,filename)
+f.write("#include \"%s_common.h\"\n" % (fileprefix))
+f.write("#include \"%s_ies_defs.h\"\n\n" % (fileprefix))
+for key in iesDefs:
+ if key in ieofielist.values():
+ continue
+
+ structName = re.sub('ies', '', key)
+ asn1cStruct = re.sub('-', '_', re.sub('IEs', '', key))
+ asn1cStruct = re.sub('Item', 'List', asn1cStruct)
+ if asn1cStruct.rfind('_') == len(asn1cStruct) - 1:
+ asn1cStruct = asn1cStruct[:-1]
+ asn1cStructfirstlower = asn1cStruct[:1].lower() + asn1cStruct[1:]
+ firstwordlower = re.sub('Item', 'List', re.sub('enb', 'eNB', lowerFirstCamelWord(asn1cStruct)))
+
+ iesaccess = ""
+ if key not in ieofielist.values():
+ iesaccess = "%s_ies." % (firstwordlower)
+
+ keyName = re.sub('-', '_', key)
+ keyupperunderscore = keyName.upper()
+ # No IE to encode...
+ if len(iesDefs[key]["ies"]) == 0:
+ continue
+
+ f.write("int %s_encode_%s(\n" % (fileprefix, re.sub('-', '_', structName.lower())))
+ f.write(" %s_t *%s,\n" % (asn1cStruct, firstwordlower))
+ f.write(" %s_t *%s) {\n\n" % (re.sub('-', '_', key), lowerFirstCamelWord(re.sub('-', '_', key))))
+
+ f.write(" %s_IE_t *ie;\n\n" % (fileprefix_first_upper))
+
+ f.write(" assert(%s != NULL);\n" % (firstwordlower));
+ f.write(" assert(%s != NULL);\n\n" % (lowerFirstCamelWord(re.sub('-', '_', key))));
+
+ for ie in iesDefs[key]["ies"]:
+ iename = re.sub('-', '_', re.sub('id-', '', ie[0]))
+ ienameunderscore = re.sub('-', '_', iename)
+ ienamefirstwordlower = lowerFirstCamelWord(iename)
+ ieupperunderscore = re.sub('-', '_', re.sub('id-', '', ie[0])).upper()
+ ietypeunderscore = re.sub('-', '_', ie[2])
+
+ if ie[3] != "mandatory":
+ if ie[3] == "optional":
+ f.write(" /* Optional field */\n")
+ elif ie[3] == "conditional":
+ f.write(" /* Conditional field */\n")
+ f.write(" if (%s->presenceMask & %s_%s_PRESENT) {\n" % (lowerFirstCamelWord(re.sub('-', '_', key)), keyupperunderscore, ieupperunderscore))
+ #f.write(" == %s_%s_PRESENT) {\n" % (keyupperunderscore, ieupperunderscore))
+ f.write(" if ((ie = %s_new_ie(%s_ProtocolIE_ID_%s,\n" % (fileprefix, fileprefix_first_upper, re.sub('-', '_', ie[0])))
+ f.write(" %s_Criticality_%s,\n" % (fileprefix_first_upper, ie[1]))
+ f.write(" &asn_DEF_%s,\n" % (ietypeunderscore))
+ f.write(" &%s->%s)) == NULL) {\n" % (lowerFirstCamelWord(re.sub('-', '_', key)), ienamefirstwordlower))
+ f.write(" return -1;\n")
+ f.write(" }\n")
+ f.write(" ASN_SEQUENCE_ADD(&%s->%slist, ie);\n" % (firstwordlower, iesaccess))
+ f.write(" }\n\n")
+ else:
+ if ie[2] in ieofielist.keys():
+ f.write(" %s_t %s;\n\n" % (ietypeunderscore, ienamefirstwordlower))
+ f.write(" memset(&%s, 0, sizeof(%s_t));\n" % (ienamefirstwordlower, ietypeunderscore))
+ f.write("\n")
+ f.write(" if (%s_encode_%s(&%s, &%s->%s) < 0) return -1;\n" % (fileprefix, ietypeunderscore.lower(), ienamefirstwordlower, lowerFirstCamelWord(re.sub('-', '_', key)), ienamefirstwordlower))
+ f.write(" if ((ie = %s_new_ie(%s_ProtocolIE_ID_%s,\n" % (fileprefix, fileprefix_first_upper, re.sub('-', '_', ie[0])))
+ f.write(" %s_Criticality_%s,\n" % (fileprefix_first_upper, ie[1]))
+ f.write(" &asn_DEF_%s,\n" % (ietypeunderscore))
+ if ie[2] in ieofielist.keys():
+ f.write(" &%s)) == NULL) {\n" % (ienamefirstwordlower))
+ else:
+ f.write(" &%s->%s)) == NULL) {\n" % (lowerFirstCamelWord(re.sub('-', '_', key)), ienamefirstwordlower))
+ f.write(" return -1;\n")
+ f.write(" }\n")
+ f.write(" ASN_SEQUENCE_ADD(&%s->%slist, ie);\n\n" % (firstwordlower, iesaccess))
+ if ie[2] in ieofielist.keys():
+ f.write(" /* Free any dynamic allocation that is no more used */\n")
+ f.write(" ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_%s, &%s);\n\n" % (ietypeunderscore, ienamefirstwordlower))
+
+ f.write(" return 0;\n")
+ f.write("}\n\n")
+
+for (key, value) in iesDefs.items():
+ if key not in ieofielist.values():
+ continue
+
+ ie = value["ies"][0]
+ ietypeunderscore = re.sub('-', '_', ie[2])
+ asn1cStruct = re.sub('-', '_', re.sub('IEs', '', re.sub('-IEs', '', key)))
+ asn1cStruct = re.sub('Item', 'List', asn1cStruct)
+ firstwordlower = re.sub('Item', 'List', re.sub('enb', 'eNB', lowerFirstCamelWord(asn1cStruct)))
+
+ for (i, j) in ieofielist.items():
+ if j == key:
+ break
+ f.write("int %s_encode_%s(\n" % (fileprefix, re.sub('-', '_', i).lower()))
+ f.write(" %s_t *%s,\n" % (asn1cStruct, firstwordlower))
+ f.write(" %sIEs_t *%sIEs) {\n\n" % (re.sub('-', '_', i), lowerFirstCamelWord(re.sub('-', '_', i))))
+ f.write(" int i;\n")
+
+ f.write(" %s_IE_t *ie;\n\n" % (fileprefix_first_upper))
+
+ f.write(" assert(%s != NULL);\n" % (firstwordlower));
+ f.write(" assert(%sIEs != NULL);\n\n" % (lowerFirstCamelWord(re.sub('-', '_', i))));
+
+ f.write(" for (i = 0; i < %sIEs->%s.count; i++) {\n" % (firstwordlower, re.sub('IEs', '', lowerFirstCamelWord(re.sub('-', '_', key)))))
+ f.write(" if ((ie = %s_new_ie(%s_ProtocolIE_ID_%s,\n" % (fileprefix, fileprefix_first_upper, re.sub('-', '_', ie[0])))
+ f.write(" %s_Criticality_%s,\n" % (fileprefix_first_upper, ie[1]))
+ f.write(" &asn_DEF_%s,\n" % (ietypeunderscore))
+ f.write(" %sIEs->%s.array[i])) == NULL) {\n" % (firstwordlower, re.sub('IEs', '', lowerFirstCamelWord(re.sub('-', '_', key)))))
+ f.write(" return -1;\n")
+ f.write(" }\n")
+ f.write(" ASN_SEQUENCE_ADD(&%s->list, ie);\n" % (firstwordlower))
+ f.write(" }\n")
+ f.write(" return 0;\n")
+ f.write("}\n\n")
+
+#Generate xer print functions
+f = open(outdir + fileprefix + '_xer_print.c', 'w')
+outputHeaderToFile(f, filename)
+f.write("#include <stdlib.h>\n")
+f.write("#include <stdio.h>\n\n")
+f.write("#include <asn_application.h>\n#include <asn_internal.h>\n\n")
+f.write("#include \"%s_common.h\"\n#include \"%s_ies_defs.h\"\n\n" % (fileprefix, fileprefix))
+
+f.write("size_t %s_string_total_size = 0;\n\n" % (fileprefix.lower()))
+f.write("""int
+%s_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;
+}
+
+""" % (fileprefix.lower()))
+
+f.write("""int %s_xer__print2sp(const void *buffer, size_t size, void *app_key) {
+ char *string = (char *)app_key;
+
+ /* Copy buffer to the formatted string */
+ memcpy(&string[%s_string_total_size], buffer, size);
+
+ %s_string_total_size += size;
+
+ return 0;
+}
+
+""" % (fileprefix.lower(), fileprefix.lower(), fileprefix.lower()))
+
+f.write("""static asn_enc_rval_t
+xer_encode_local(asn_TYPE_descriptor_t *td, void *sptr,
+ asn_app_consume_bytes_f *cb, void *app_key, int indent) {
+ asn_enc_rval_t er, tmper;
+ const char *mname;
+ size_t mlen;
+ int xcan = 2;
+
+ if(!td || !sptr) goto cb_failed;
+
+ mname = td->xml_tag;
+ mlen = strlen(mname);
+
+ _i_ASN_TEXT_INDENT(0, indent);
+ _ASN_CALLBACK3("<", 1, mname, mlen, ">", 1);
+
+ tmper = td->xer_encoder(td, sptr, indent + 1, XER_F_BASIC, cb, app_key);
+ if(tmper.encoded == -1) return tmper;
+
+ _ASN_CALLBACK3("</", 2, mname, mlen, ">\\n", xcan);
+
+ er.encoded = 4 + xcan + (2 * mlen) + tmper.encoded;
+
+ _ASN_ENCODED_OK(er);
+cb_failed:
+ _ASN_ENCODE_FAILED;
+}
+""")
+
+for (key, value) in iesDefs.items():
+ keyName = re.sub('-', '_', key)
+ keyupperunderscore = keyName.upper()
+ iesStructName = lowerFirstCamelWord(re.sub('-', '_', key))
+
+ ie = value["ies"][0]
+ ietypeunderscore = re.sub('-', '_', ie[2])
+
+ if key in ieofielist.values():
+ f.write("asn_enc_rval_t %s_xer_print_%s(\n" % (fileprefix, re.sub('ies', '', re.sub('item', 'list', re.sub('-', '_', key).lower()))))
+ else:
+ f.write("asn_enc_rval_t %s_xer_print_%s(\n" % (fileprefix, re.sub('ies', '', re.sub('-', '_', key).lower())))
+ #f.write(" FILE *file,\n")
+ f.write(" asn_app_consume_bytes_f *cb,\n")
+ f.write(" void *app_key,\n")
+ if key in ieofielist.values():
+ iesStructName = lowerFirstCamelWord(re.sub('Item', 'List', re.sub('-', '_', key)))
+ f.write(" %sIEs_t *%s) {\n\n" % (re.sub('IEs', '', re.sub('Item', 'List', re.sub('-', '_', key))), iesStructName))
+ f.write(" int i;\n")
+ f.write(" asn_enc_rval_t er;\n")
+ else:
+ f.write(" %s_message *message_p)\n{\n" % (fileprefix))
+ f.write(" %s_t *%s;\n" % (re.sub('-', '_', key), iesStructName))
+ f.write(" asn_enc_rval_t er;\n")
+ #f.write(" void *app_key = (void *)file;\n")
+ #f.write(" asn_app_consume_bytes_f *cb = %s_xer__print2fp;\n\n" % (fileprefix.lower()))
+
+ f.write(" %s = &message_p->msg.%s;\n\n" % (iesStructName, iesStructName))
+
+ if key in ieofielist.values():
+ # Increase indentation level
+ f.write(" for (i = 0; i < %s->%s.count; i++) {\n" % (iesStructName, re.sub('IEs', '', lowerFirstCamelWord(re.sub('-', '_', key)))))
+ #f.write(" xer_fprint(file, &asn_DEF_%s, %s->%s.array[i]);\n" % (ietypeunderscore, iesStructName, re.sub('IEs', '', lowerFirstCamelWord(re.sub('-', '_', key)))))
+ f.write(" er = xer_encode(&asn_DEF_%s, %s->%s.array[i], XER_F_BASIC, cb, app_key);\n" % (ietypeunderscore, iesStructName, re.sub('IEs', '', lowerFirstCamelWord(re.sub('-', '_', key)))))
+ f.write(" }\n")
+ else:
+ f.write(" cb(\"<%s-PDU>\\n\", %d, app_key);\n" % (key, len("<%s-PDU>\n" % (key))))
+ f.write(" xer_encode_local(&asn_DEF_%s_Criticality, &message_p->criticality, cb, app_key, 1);\n" % fileprefix_first_upper)
+ f.write(" xer_encode_local(&asn_DEF_%s_ProcedureCode, &message_p->procedureCode, cb, app_key, 1);\n" % fileprefix_first_upper)
+
+ f.write(" cb(\" <%s>\\n\", %d, app_key);\n" % (key, len(" <%s>\n" % (key))))
+
+ for ie in iesDefs[key]["ies"]:
+ iename = re.sub('-', '_', re.sub('id-', '', ie[0]))
+ ienameunderscore = re.sub('-', '_', iename)
+ ienamefirstwordlower = lowerFirstCamelWord(iename)
+ ietypeunderscore = re.sub('-', '_', ie[2])
+ ieupperunderscore = re.sub('-', '_', re.sub('id-', '', ie[0])).upper()
+
+ if ie[3] != "mandatory":
+ if ie[3] == "optional":
+ f.write(" /* Optional field */\n")
+ elif ie[3] == "conditional":
+ f.write(" /* Conditional field */\n")
+ f.write(" if (%s->presenceMask & %s_%s_PRESENT)\n " % (iesStructName, keyupperunderscore, ieupperunderscore))
+
+ # Is it an encapsulated IE ?
+ if ie[2] in ieofielist.keys():
+ f.write(" %s_xer_print_%s(cb, app_key, &%s->%s);\n" % (fileprefix, re.sub('ies', '', re.sub('-', '_', ie[2]).lower()), iesStructName, ienamefirstwordlower))
+ else:
+ f.write(" xer_encode_local(&asn_DEF_%s, &%s->%s, cb, app_key, 2);\n" % (ietypeunderscore, iesStructName, ienamefirstwordlower))
+ f.write(" cb(\" </%s>\\n\", %d, app_key);\n" % (key, len(" </%s>\n" % (key))))
+ f.write(" cb(\"</%s-PDU>\\n\", %d, app_key);\n" % (key, len("</%s-PDU>\n" % (key))))
+
+ f.write(" _ASN_ENCODED_OK(er);\n")
+ #if key not in ieofielist.values():
+ #f.write("cb_failed:\n")
+ #f.write(" return er;\n")
+ f.write("}\n\n")
diff --git a/src/s1ap/asn1c/asnGenFiles/asn_SEQUENCE_OF.h b/src/s1ap/asn1c/asnGenFiles/asn_SEQUENCE_OF.h
new file mode 100644
index 0000000..e35bc44
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/asn_SEQUENCE_OF.h
@@ -0,0 +1,52 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef ASN_SEQUENCE_OF_H
+#define ASN_SEQUENCE_OF_H
+
+#include <asn_SET_OF.h>
+
+#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/s1ap/asn1c/asnGenFiles/asn_SET_OF.h b/src/s1ap/asn1c/asnGenFiles/asn_SET_OF.h
new file mode 100644
index 0000000..882e1a4
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/asn_SET_OF.h
@@ -0,0 +1,72 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. 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/s1ap/asn1c/asnGenFiles/asn_application.h b/src/s1ap/asn1c/asnGenFiles/asn_application.h
new file mode 100644
index 0000000..034f646
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/asn_application.h
@@ -0,0 +1,171 @@
+/*-
+ * Copyright (c) 2004-2017 Lev Walkin <vlm@lionet.info>. 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/s1ap/asn1c/asnGenFiles/asn_bit_data.h b/src/s1ap/asn1c/asnGenFiles/asn_bit_data.h
new file mode 100644
index 0000000..59de7af
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/asn_bit_data.h
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2005-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef ASN_BIT_DATA
+#define ASN_BIT_DATA
+
+#include <asn_system.h> /* 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/s1ap/asn1c/asnGenFiles/asn_codecs.h b/src/s1ap/asn1c/asnGenFiles/asn_codecs.h
new file mode 100644
index 0000000..e75c270
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/asn_codecs.h
@@ -0,0 +1,108 @@
+/*
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. 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/s1ap/asn1c/asnGenFiles/asn_codecs_prim.h b/src/s1ap/asn1c/asnGenFiles/asn_codecs_prim.h
new file mode 100644
index 0000000..fbc5576
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/asn_codecs_prim.h
@@ -0,0 +1,51 @@
+/*-
+ * Copyright (c) 2004-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef ASN_CODECS_PRIM_H
+#define ASN_CODECS_PRIM_H
+
+#include <asn_application.h>
+
+#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/s1ap/asn1c/asnGenFiles/asn_constant.h b/src/s1ap/asn1c/asnGenFiles/asn_constant.h
new file mode 100644
index 0000000..8148b4a
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/asn_constant.h
@@ -0,0 +1,64 @@
+/*
+ * 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 maxnoofCSGs (256)
+#define maxnoofE_RABs (256)
+#define maxnoofTAIs (256)
+#define maxnoofTACs (256)
+#define maxnoofErrors (256)
+#define maxnoofBPLMNs (6)
+#define maxnoofPLMNsPerMME (32)
+#define maxnoofEPLMNs (15)
+#define maxnoofEPLMNsPlusOne (16)
+#define maxnoofForbLACs (4096)
+#define maxnoofForbTACs (4096)
+#define maxnoofIndividualS1ConnectionsToReset (256)
+#define maxnoofCellsinUEHistoryInfo (16)
+#define maxnoofCellsineNB (256)
+#define maxnoofTAIforWarning (65535)
+#define maxnoofCellID (65535)
+#define maxnoofDCNs (32)
+#define maxnoofEmergencyAreaID (65535)
+#define maxnoofCellinTAI (65535)
+#define maxnoofCellinEAI (65535)
+#define maxnoofeNBX2TLAs (2)
+#define maxnoofeNBX2ExtTLAs (16)
+#define maxnoofeNBX2GTPTLAs (16)
+#define maxnoofRATs (8)
+#define maxnoofGroupIDs (65535)
+#define maxnoofMMECs (256)
+#define maxnoofCellIDforMDT (32)
+#define maxnoofTAforMDT (8)
+#define maxnoofMDTPLMNs (16)
+#define maxnoofCellsforRestart (256)
+#define maxnoofRestartTAIs (2048)
+#define maxnoofRestartEmergencyAreaIDs (256)
+#define maxEARFCN (262143)
+#define maxnoofMBSFNAreaMDT (8)
+#define maxnoofRecommendedCells (16)
+#define maxnoofRecommendedENBs (16)
+#define maxnooftimeperiods (2)
+#define maxnoofCellIDforQMC (32)
+#define maxnoofTAforQMC (8)
+#define maxnoofPLMNforQMC (16)
+#define maxnoofBluetoothName (4)
+#define maxnoofWLANName (4)
+#define maxnoofConnectedengNBs (256)
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ASN_CONSTANT_H */
diff --git a/src/s1ap/asn1c/asnGenFiles/asn_internal.h b/src/s1ap/asn1c/asnGenFiles/asn_internal.h
new file mode 100644
index 0000000..77b270c
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/asn_internal.h
@@ -0,0 +1,153 @@
+/*
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+/*
+ * Declarations internally useful for the ASN.1 support code.
+ */
+#ifndef ASN_INTERNAL_H
+#define ASN_INTERNAL_H
+#ifndef __EXTENSIONS__
+#define __EXTENSIONS__ /* for Sun */
+#endif
+
+#include "asn_application.h" /* Application-visible API */
+
+#ifndef __NO_ASSERT_H__ /* Include assert.h only for internal use. */
+#include <assert.h> /* 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 __STDC_VERSION__ >= 199901L
+#ifdef ASN_THREAD_SAFE
+/* Thread safety requires sacrifice in output indentation:
+ * Retain empty definition of ASN_DEBUG_INDENT_ADD. */
+#else /* !ASN_THREAD_SAFE */
+#undef ASN_DEBUG_INDENT_ADD
+#undef asn_debug_indent
+int asn_debug_indent;
+#define ASN_DEBUG_INDENT_ADD(i) do { asn_debug_indent += i; } while(0)
+#endif /* ASN_THREAD_SAFE */
+#define ASN_DEBUG(fmt, args...) do { \
+ int adi = asn_debug_indent; \
+ while(adi--) fprintf(stderr, " "); \
+ fprintf(stderr, fmt, ##args); \
+ fprintf(stderr, " (%s:%d)\n", \
+ __FILE__, __LINE__); \
+ } while(0)
+#else /* !C99 */
+void CC_PRINTFLIKE(1, 2) ASN_DEBUG_f(const char *fmt, ...);
+#define ASN_DEBUG ASN_DEBUG_f
+#endif /* C99 */
+#else /* ASN_EMIT_DEBUG != 1 */
+#if __STDC_VERSION__ >= 199901L
+#define ASN_DEBUG(...) do{}while(0)
+#else /* not C99 */
+static void CC_PRINTFLIKE(1, 2) ASN_DEBUG(const char *fmt, ...) { (void)fmt; }
+#endif /* C99 or better */
+#endif /* ASN_EMIT_DEBUG */
+#endif /* ASN_DEBUG */
+
+/*
+ * Print to a callback.
+ * The callback is expected to return negative values on error.
+ * 0 and positive values are treated as success.
+ * RETURN VALUES:
+ * -1: Failed to format or invoke the callback.
+ * >0: Size of the data that got delivered to the callback.
+ */
+ssize_t CC_PRINTFLIKE(3, 4)
+asn__format_to_callback(
+ int (*callback)(const void *, size_t, void *key), void *key,
+ const char *fmt, ...);
+
+/*
+ * Invoke the application-supplied callback and fail, if something is wrong.
+ */
+#define ASN__E_cbc(buf, size) (cb((buf), (size), app_key) < 0)
+#define ASN__E_CALLBACK(size, foo) \
+ do { \
+ if(foo) goto cb_failed; \
+ er.encoded += (size); \
+ } while(0)
+#define ASN__CALLBACK(buf, size) ASN__E_CALLBACK(size, ASN__E_cbc(buf, size))
+#define ASN__CALLBACK2(buf1, size1, buf2, size2) \
+ ASN__E_CALLBACK((size1) + (size2), \
+ ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2))
+#define ASN__CALLBACK3(buf1, size1, buf2, size2, buf3, size3) \
+ ASN__E_CALLBACK((size1) + (size2) + (size3), \
+ ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2) \
+ || ASN__E_cbc(buf3, size3))
+
+#define ASN__TEXT_INDENT(nl, level) \
+ do { \
+ int tmp_level = (level); \
+ int tmp_nl = ((nl) != 0); \
+ int tmp_i; \
+ if(tmp_nl) ASN__CALLBACK("\n", 1); \
+ if(tmp_level < 0) tmp_level = 0; \
+ for(tmp_i = 0; tmp_i < tmp_level; tmp_i++) ASN__CALLBACK(" ", 4); \
+ } while(0)
+
+#define _i_INDENT(nl) do { \
+ int tmp_i; \
+ if((nl) && cb("\n", 1, app_key) < 0) \
+ return -1; \
+ for(tmp_i = 0; tmp_i < ilevel; tmp_i++) \
+ if(cb(" ", 4, app_key) < 0) \
+ return -1; \
+ } while(0)
+
+/*
+ * Check stack against overflow, if limit is set.
+ */
+#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/s1ap/asn1c/asnGenFiles/asn_ioc.h b/src/s1ap/asn1c/asnGenFiles/asn_ioc.h
new file mode 100644
index 0000000..7de210e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/asn_ioc.h
@@ -0,0 +1,51 @@
+/*
+ * Run-time support for Information Object Classes.
+ * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef ASN_IOC_H
+#define ASN_IOC_H
+
+#include <asn_system.h> /* 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/s1ap/asn1c/asnGenFiles/asn_random_fill.h b/src/s1ap/asn1c/asnGenFiles/asn_random_fill.h
new file mode 100644
index 0000000..47f9b8a
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/asn_random_fill.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>. 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/s1ap/asn1c/asnGenFiles/asn_system.h b/src/s1ap/asn1c/asnGenFiles/asn_system.h
new file mode 100644
index 0000000..fa8cf11
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/asn_system.h
@@ -0,0 +1,150 @@
+/*
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. 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 <stdio.h> /* For snprintf(3) */
+#include <stdlib.h> /* For *alloc(3) */
+#include <string.h> /* For memcpy(3) */
+#include <sys/types.h> /* For size_t */
+#include <limits.h> /* For LONG_MAX */
+#include <stdarg.h> /* For va_start */
+#include <stddef.h> /* for offsetof and ptrdiff_t */
+
+#ifdef _WIN32
+
+#include <malloc.h>
+#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 <stdint.h>
+#endif /* _MSC_VER < 1600 */
+#endif /* ASSUMESTDTYPES */
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <float.h>
+#define isnan _isnan
+#define finite _finite
+#define copysign _copysign
+#define ilogb _logb
+#else /* !_MSC_VER */
+#include <stdint.h>
+#endif /* _MSC_VER */
+
+#else /* !_WIN32 */
+
+#if defined(__vxworks)
+#include <types/vxTypes.h>
+#else /* !defined(__vxworks) */
+
+#include <inttypes.h> /* C99 specifies this file */
+#include <netinet/in.h> /* 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 <stddef.h> */
+#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/s1ap/asn1c/asnGenFiles/ber_decoder.h b/src/s1ap/asn1c/asnGenFiles/ber_decoder.h
new file mode 100644
index 0000000..1ac2a5e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ber_decoder.h
@@ -0,0 +1,66 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef _BER_DECODER_H_
+#define _BER_DECODER_H_
+
+#include <asn_application.h>
+
+#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/s1ap/asn1c/asnGenFiles/ber_tlv_length.h b/src/s1ap/asn1c/asnGenFiles/ber_tlv_length.h
new file mode 100644
index 0000000..d1e4d48
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ber_tlv_length.h
@@ -0,0 +1,50 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. 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/s1ap/asn1c/asnGenFiles/ber_tlv_tag.h b/src/s1ap/asn1c/asnGenFiles/ber_tlv_tag.h
new file mode 100644
index 0000000..ce227ad
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/ber_tlv_tag.h
@@ -0,0 +1,60 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. 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/s1ap/asn1c/asnGenFiles/constr_CHOICE.h b/src/s1ap/asn1c/asnGenFiles/constr_CHOICE.h
new file mode 100644
index 0000000..a1999ed
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/constr_CHOICE.h
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef _CONSTR_CHOICE_H_
+#define _CONSTR_CHOICE_H_
+
+#include <asn_application.h>
+
+#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/s1ap/asn1c/asnGenFiles/constr_SEQUENCE.h b/src/s1ap/asn1c/asnGenFiles/constr_SEQUENCE.h
new file mode 100644
index 0000000..a22ed3a
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/constr_SEQUENCE.h
@@ -0,0 +1,68 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef _CONSTR_SEQUENCE_H_
+#define _CONSTR_SEQUENCE_H_
+
+#include <asn_application.h>
+
+#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/s1ap/asn1c/asnGenFiles/constr_SEQUENCE_OF.h b/src/s1ap/asn1c/asnGenFiles/constr_SEQUENCE_OF.h
new file mode 100644
index 0000000..6857f0f
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/constr_SEQUENCE_OF.h
@@ -0,0 +1,41 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef _CONSTR_SEQUENCE_OF_H_
+#define _CONSTR_SEQUENCE_OF_H_
+
+#include <asn_application.h>
+#include <constr_SET_OF.h> /* 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/s1ap/asn1c/asnGenFiles/constr_SET_OF.h b/src/s1ap/asn1c/asnGenFiles/constr_SET_OF.h
new file mode 100644
index 0000000..7681062
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/constr_SET_OF.h
@@ -0,0 +1,49 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef CONSTR_SET_OF_H
+#define CONSTR_SET_OF_H
+
+#include <asn_application.h>
+
+#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/s1ap/asn1c/asnGenFiles/constr_TYPE.h b/src/s1ap/asn1c/asnGenFiles/constr_TYPE.h
new file mode 100644
index 0000000..d80dea5
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/constr_TYPE.h
@@ -0,0 +1,262 @@
+/*
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. 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 <ber_tlv_length.h>
+#include <ber_tlv_tag.h>
+
+#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 <ber_decoder.h> /* Basic Encoding Rules decoder */
+#include <der_encoder.h> /* Distinguished Encoding Rules encoder */
+#include <xer_decoder.h> /* Decoder of XER (XML, text) */
+#include <xer_encoder.h> /* Encoder into XER (XML, text) */
+#include <per_decoder.h> /* Packet Encoding Rules decoder */
+#include <per_encoder.h> /* Packet Encoding Rules encoder */
+#include <constraints.h> /* Subtype constraints support */
+#include <asn_random_fill.h> /* 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 <oer_decoder.h> /* Octet Encoding Rules encoder */
+#include <oer_encoder.h> /* 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; /* <optional, internal> */
+} 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 <value> */
+ int (*default_value_set)(void **sptr); /* Set DEFAULT <value> */
+ 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/s1ap/asn1c/asnGenFiles/constraints.h b/src/s1ap/asn1c/asnGenFiles/constraints.h
new file mode 100644
index 0000000..0bd86a9
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/constraints.h
@@ -0,0 +1,62 @@
+/*-
+ * Copyright (c) 2004-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef ASN1_CONSTRAINTS_VALIDATOR_H
+#define ASN1_CONSTRAINTS_VALIDATOR_H
+
+#include <asn_system.h> /* 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/s1ap/asn1c/asnGenFiles/converter-example.mk b/src/s1ap/asn1c/asnGenFiles/converter-example.mk
new file mode 100644
index 0000000..d062e7e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/converter-example.mk
@@ -0,0 +1,32 @@
+include Makefile.am.libasncodec
+
+LIBS += -lm
+CFLAGS += $(ASN_MODULE_CFLAGS) -DPDU=S1AP_PDU -I.
+ASN_LIBRARY ?= libasncodec.a
+ASN_PROGRAM ?= converter-example
+ASN_PROGRAM_SRCS ?= \
+ converter-example.c
+
+all: $(ASN_PROGRAM)
+
+$(ASN_PROGRAM): $(ASN_LIBRARY) $(ASN_PROGRAM_SRCS:.c=.o)
+ $(CC) $(CFLAGS) $(CPPFLAGS) -o $(ASN_PROGRAM) $(ASN_PROGRAM_SRCS:.c=.o) $(LDFLAGS) $(ASN_LIBRARY) $(LIBS)
+
+$(ASN_LIBRARY): $(ASN_MODULE_SRCS:.c=.o)
+ $(AR) rcs $@ $(ASN_MODULE_SRCS:.c=.o)
+
+.SUFFIXES:
+.SUFFIXES: .c .o
+
+.c.o:
+ $(CC) $(CFLAGS) -o $@ -c $<
+
+clean:
+ rm -f $(ASN_PROGRAM) $(ASN_LIBRARY)
+ rm -f $(ASN_MODULE_SRCS:.c=.o) $(ASN_PROGRAM_SRCS:.c=.o)
+
+regen: regenerate-from-asn1-source
+
+regenerate-from-asn1-source:
+ asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU ./asn1c/S1AP-CommonDataTypes.asn ./asn1c/S1AP-Constants.asn ./asn1c/S1AP-Containers.asn ./asn1c/S1AP-IEs.asn ./asn1c/S1AP-PDU-Contents.asn ./asn1c/S1AP-PDU-Descriptions.asn
+
diff --git a/src/s1ap/asn1c/asnGenFiles/der_encoder.h b/src/s1ap/asn1c/asnGenFiles/der_encoder.h
new file mode 100644
index 0000000..e93944e
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/der_encoder.h
@@ -0,0 +1,68 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef _DER_ENCODER_H_
+#define _DER_ENCODER_H_
+
+#include <asn_application.h>
+
+#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/s1ap/asn1c/asnGenFiles/libasncodec.a b/src/s1ap/asn1c/asnGenFiles/libasncodec.a
new file mode 100644
index 0000000..4f82353
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/libasncodec.a
Binary files differ
diff --git a/src/s1ap/asn1c/asnGenFiles/oer_decoder.h b/src/s1ap/asn1c/asnGenFiles/oer_decoder.h
new file mode 100644
index 0000000..40992e9
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/oer_decoder.h
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef OER_DECODER_H
+#define OER_DECODER_H
+
+#include <asn_application.h>
+#include <oer_support.h>
+
+#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/s1ap/asn1c/asnGenFiles/oer_encoder.h b/src/s1ap/asn1c/asnGenFiles/oer_encoder.h
new file mode 100644
index 0000000..6a7b681
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/oer_encoder.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef OER_ENCODER_H
+#define OER_ENCODER_H
+
+#include <asn_application.h>
+
+#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/s1ap/asn1c/asnGenFiles/oer_support.h b/src/s1ap/asn1c/asnGenFiles/oer_support.h
new file mode 100644
index 0000000..dbc9b5f
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/oer_support.h
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef OER_SUPPORT_H
+#define OER_SUPPORT_H
+
+#include <asn_system.h> /* 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/s1ap/asn1c/asnGenFiles/per_decoder.h b/src/s1ap/asn1c/asnGenFiles/per_decoder.h
new file mode 100644
index 0000000..eea474a
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/per_decoder.h
@@ -0,0 +1,82 @@
+/*-
+ * Copyright (c) 2005-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef _PER_DECODER_H_
+#define _PER_DECODER_H_
+
+#include <asn_application.h>
+#include <per_support.h>
+
+#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/s1ap/asn1c/asnGenFiles/per_encoder.h b/src/s1ap/asn1c/asnGenFiles/per_encoder.h
new file mode 100644
index 0000000..b615ef0
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/per_encoder.h
@@ -0,0 +1,93 @@
+/*-
+ * Copyright (c) 2006-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef _PER_ENCODER_H_
+#define _PER_ENCODER_H_
+
+#include <asn_application.h>
+#include <per_support.h>
+
+#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/s1ap/asn1c/asnGenFiles/per_opentype.h b/src/s1ap/asn1c/asnGenFiles/per_opentype.h
new file mode 100644
index 0000000..1493b2d
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/per_opentype.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2007-2017 Lev Walkin <vlm@lionet.info>. 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/s1ap/asn1c/asnGenFiles/per_support.h b/src/s1ap/asn1c/asnGenFiles/per_support.h
new file mode 100644
index 0000000..d13f504
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/per_support.h
@@ -0,0 +1,130 @@
+/*
+ * Copyright (c) 2005-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef _PER_SUPPORT_H_
+#define _PER_SUPPORT_H_
+
+#include <asn_system.h> /* Platform-specific types */
+#include <asn_bit_data.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Pre-computed PER constraints.
+ */
+typedef struct asn_per_constraint_s {
+ enum asn_per_constraint_flags {
+ APC_UNCONSTRAINED = 0x0, /* No PER visible constraints */
+ APC_SEMI_CONSTRAINED = 0x1, /* Constrained at "lb" */
+ APC_CONSTRAINED = 0x2, /* Fully constrained */
+ APC_EXTENSIBLE = 0x4 /* May have extension */
+ } flags;
+ int range_bits; /* Full number of bits in the range */
+ int effective_bits; /* Effective bits */
+ intmax_t lower_bound; /* "lb" value */
+ intmax_t upper_bound; /* "ub" value */
+} asn_per_constraint_t;
+typedef struct asn_per_constraints_s {
+ asn_per_constraint_t value;
+ asn_per_constraint_t size;
+ int (*value2code)(unsigned int value);
+ int (*code2value)(unsigned int code);
+} asn_per_constraints_t;
+
+/* Temporary compatibility layer. Will get removed. */
+typedef struct asn_bit_data_s asn_per_data_t;
+#define per_get_few_bits(data, bits) asn_get_few_bits(data, bits)
+#define per_get_undo(data, bits) asn_get_undo(data, bits)
+#define per_get_many_bits(data, dst, align, bits) \
+ asn_get_many_bits(data, dst, align, bits)
+
+/*
+ * 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, uintmax_t *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, intmax_t lb, intmax_t ub, unsigned long *output);
+int per_imax_range_rebase(intmax_t v, intmax_t lb, intmax_t ub, uintmax_t *output);
+/* The inverse operation: restores the value by the offset and its bounds. */
+int per_long_range_unrebase(unsigned long inp, intmax_t lb, intmax_t ub, long *outp);
+int per_imax_range_unrebase(uintmax_t inp, intmax_t lb, intmax_t ub, intmax_t *outp);
+
+/* X.691-2008/11, #11.5 */
+int uper_put_constrained_whole_number_u(asn_per_outp_t *po, 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,
+ int *opt_need_eom);
+
+/* Align the current bit position to octet bundary */
+int aper_put_align(asn_per_outp_t *po);
+int32_t aper_get_align(asn_per_data_t *pd);
+
+/*
+ * Put the normally small length "n" to the Unaligned PER stream.
+ * Returns 0 or -1.
+ */
+int 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/s1ap/asn1c/asnGenFiles/s1ap-converter b/src/s1ap/asn1c/asnGenFiles/s1ap-converter
new file mode 100644
index 0000000..4f24298
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/s1ap-converter
Binary files differ
diff --git a/src/s1ap/asn1c/asnGenFiles/xer_decoder.h b/src/s1ap/asn1c/asnGenFiles/xer_decoder.h
new file mode 100644
index 0000000..b951c41
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/xer_decoder.h
@@ -0,0 +1,106 @@
+/*-
+ * Copyright (c) 2004-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef _XER_DECODER_H_
+#define _XER_DECODER_H_
+
+#include <asn_application.h>
+
+#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 <opening> tag */
+ XCT_CLOSING = 2, /* This is the </closing> tag */
+ XCT_BOTH = 3, /* This is the <modified/> tag */
+ XCT__UNK__MASK = 4, /* Mask of everything unexpected */
+ XCT_UNKNOWN_OP = 5, /* Unexpected <opening> tag */
+ XCT_UNKNOWN_CL = 6, /* Unexpected </closing> tag */
+ XCT_UNKNOWN_BO = 7 /* Unexpected <modified/> 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/s1ap/asn1c/asnGenFiles/xer_encoder.h b/src/s1ap/asn1c/asnGenFiles/xer_encoder.h
new file mode 100644
index 0000000..9d75922
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/xer_encoder.h
@@ -0,0 +1,83 @@
+/*-
+ * Copyright (c) 2004-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef _XER_ENCODER_H_
+#define _XER_ENCODER_H_
+
+#include <asn_application.h>
+
+#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/s1ap/asn1c/asnGenFiles/xer_support.h b/src/s1ap/asn1c/asnGenFiles/xer_support.h
new file mode 100644
index 0000000..c3a36e7
--- /dev/null
+++ b/src/s1ap/asn1c/asnGenFiles/xer_support.h
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2003, 2004 X/IO Labs, xiolabs.com.
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef _XER_SUPPORT_H_
+#define _XER_SUPPORT_H_
+
+#include <asn_system.h> /* 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 "<!--" and "-->". */
+ /*
+ * 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/s1ap/conf/s1ap.json b/src/s1ap/conf/s1ap.json
new file mode 100644
index 0000000..48ecf11
--- /dev/null
+++ b/src/s1ap/conf/s1ap.json
@@ -0,0 +1,37 @@
+{
+ "mme": {
+ "ip_addr": "192.168.1.55",
+ "name": "vmmestandalone",
+ "group_id": 1,
+ "code": 1,
+ "__comment__": "Here is comment",
+ "mcc": {
+ "dig1": 2,
+ "dig2": 0,
+ "dig3": 8
+ },
+ "mnc": {
+ "dig1": 0,
+ "dig2": 1,
+ "dig3": -1
+ }
+ },
+ "s1ap": {
+ "s1ap_local_addr": "192.168.1.55",
+ "sctp_port": 36412,
+ "enb_addr": "127.0.0.1",
+ "enb_port": 5003,
+ "egtp_default_hostname": "sutlej.ccin.ccpu.com"
+ },
+ "s11": {
+ "egtp_local_addr": "192.168.1.55",
+ "egtp_default_port": 2123,
+ "sgw_addr": "127.0.0.1",
+ "pgw_addr": "192.168.1.105"
+ },
+ "s6a": {
+ "host_type": "freediameter",
+ "host": "hss.openair4G.eur",
+ "realm": "openair4G.eur"
+ }
+}
diff --git a/src/s1ap/conf/s1ap.json.bkup b/src/s1ap/conf/s1ap.json.bkup
new file mode 100644
index 0000000..1f8b80c
--- /dev/null
+++ b/src/s1ap/conf/s1ap.json.bkup
@@ -0,0 +1,37 @@
+{
+ "mme": {
+ "ip_addr": "192.168.1.55",
+ "name": "vmmestandalone",
+ "group_id": 1,
+ "code": 1,
+ "__comment__": "Here is comment",
+ "mcc": {
+ "dig1": 2,
+ "dig2": 0,
+ "dig3": 8
+ },
+ "mnc": {
+ "dig1": 0,
+ "dig2": 1,
+ "dig3": -1
+ }
+ },
+ "s1ap": {
+ "s1ap_local_addr": "127.0.0.1",
+ "sctp_port": 36412,
+ "enb_addr": "127.0.0.1",
+ "enb_port": 5003,
+ "egtp_default_hostname": "sutlej.ccin.ccpu.com"
+ },
+ "s11": {
+ "egtp_local_addr": "192.168.1.55",
+ "egtp_default_port": 2123,
+ "sgw_addr": "10.1.10.20",
+ "pgw_addr": "192.168.1.105"
+ },
+ "s6a": {
+ "host_type": "freediameter",
+ "host": "hss.openair4G.eur",
+ "realm": "openair4G.eur"
+ }
+}
diff --git a/src/s1ap/handlers/attach_authreq.c b/src/s1ap/handlers/attach_authreq.c
new file mode 100644
index 0000000..46981f3
--- /dev/null
+++ b/src/s1ap/handlers/attach_authreq.c
@@ -0,0 +1,224 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ * Copyright (c) 2019, Infosys Ltd.
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <pthread.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "log.h"
+#include "err_codes.h"
+#include "s1ap.h"
+#include "message_queues.h"
+#include "ipc_api.h"
+#include "main.h"
+#include "sctp_conn.h"
+#include "msgType.h"
+
+void
+buffer_copy(struct Buffer *buffer, void *value, size_t size)
+{
+ memcpy(buffer->buf + buffer->pos , value, size);
+ buffer->pos += size;
+ return;
+}
+
+/**
+* Get ProtocolIE value for Auth Request sent by mme-app
+*/
+static int
+get_authreq_protoie_value(struct proto_IE *value, struct authreq_info *g_authreqInfo)
+{
+ value->no_of_IEs = AUTH_REQ_NO_OF_IES;
+
+ value->data = (proto_IEs *) malloc(SEC_MODE_NO_OF_IES *
+ sizeof(proto_IEs));
+
+ value->data[0].val.mme_ue_s1ap_id = g_authreqInfo->ue_idx;
+ value->data[1].val.enb_ue_s1ap_id = g_authreqInfo->enb_s1ap_ue_id;
+
+ log_msg(LOG_INFO, "mme_ue_s1ap_id %d and enb_ue_s1ap_id %d\n",
+ g_authreqInfo->ue_idx, g_authreqInfo->enb_s1ap_ue_id);
+
+ /* TODO: Add enum for security header type */
+ value->data[2].val.nas.header.security_header_type = 0;
+ value->data[2].val.nas.header.proto_discriminator = EPSMobilityManagementMessages;
+ value->data[2].val.nas.header.message_type = AuthenticationRequest;
+ value->data[2].val.nas.header.nas_security_param = AUTHREQ_NAS_SECURITY_PARAM;
+
+ value->data[2].val.nas.elements = (nas_pdu_elements *)
+ malloc(AUTH_REQ_NO_OF_NAS_IES * sizeof(nas_pdu_elements));
+
+ memcpy(value->data[2].val.nas.elements[0].pduElement.rand,
+ g_authreqInfo->rand, NAS_RAND_SIZE);
+ memcpy(value->data[2].val.nas.elements[1].pduElement.autn,
+ g_authreqInfo->autn, NAS_AUTN_SIZE);
+
+
+ return SUCCESS;
+}
+
+
+/**
+* Stage specific message processing.
+*/
+static int
+authreq_processing(struct authreq_info *g_authreqInfo)
+{
+ struct Buffer g_buffer;
+ struct Buffer g_value_buffer;
+ struct Buffer g_nas_buffer;
+
+ struct s1ap_PDU s1apPDU= {0};
+
+ /* Assigning values to s1apPDU */
+ s1apPDU.procedurecode = id_downlinkNASTransport;
+ s1apPDU.criticality = CRITICALITY_IGNORE;
+
+ get_authreq_protoie_value(&s1apPDU.value, g_authreqInfo);
+
+ /* Copy values to buffer from s1apPDU */
+
+ g_buffer.pos = 0;
+
+ uint8_t initiating_message = 0; /* TODO: Add enum */
+ buffer_copy(&g_buffer, &initiating_message,
+ sizeof(initiating_message));
+
+ buffer_copy(&g_buffer, &s1apPDU.procedurecode,
+ sizeof(s1apPDU.procedurecode));
+
+ buffer_copy(&g_buffer, &s1apPDU.criticality,
+ sizeof(s1apPDU.criticality));
+
+ /* Copy values in g_value_buffer */
+ g_value_buffer.pos = 0;
+
+ /* TODO remove hardcoded values */
+ unsigned char chProtoIENo[3] = {0,0,3};
+
+ buffer_copy(&g_value_buffer, chProtoIENo, 3);
+
+ unsigned char tmpStr[4];
+ /* id-MME-UE-S1AP-ID */
+ uint16_t protocolIe_Id = id_MME_UE_S1AP_ID;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_value_buffer, tmpStr,
+ sizeof(protocolIe_Id));
+
+ uint8_t protocolIe_criticality = CRITICALITY_REJECT;
+ buffer_copy(&g_value_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+
+ uint8_t datalen = 2;
+
+ /* TODO needs proper handling*/
+ unsigned char mme_ue_id[3];
+ datalen = copyU16(mme_ue_id,
+ s1apPDU.value.data[0].val.mme_ue_s1ap_id);
+ buffer_copy(&g_value_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_value_buffer, mme_ue_id, datalen);
+
+ /* id-eNB-UE-S1AP-ID */
+
+ protocolIe_Id = id_eNB_UE_S1AP_ID;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_value_buffer, tmpStr,
+ sizeof(protocolIe_Id));
+
+ buffer_copy(&g_value_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+
+
+ /* TODO needs proper handling*/
+ unsigned char enb_ue_id[3];
+ datalen = copyU16(enb_ue_id,
+ s1apPDU.value.data[1].val.enb_ue_s1ap_id);
+ buffer_copy(&g_value_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_value_buffer, enb_ue_id, datalen);
+ //STIMER_GET_CURRENT_TP(g_attach_stats[s1apPDU.value.enb_ue_s1ap_id].esm_in);
+
+ /* id-NAS-PDU */
+ protocolIe_Id = id_NAS_PDU;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_value_buffer, tmpStr,
+ sizeof(protocolIe_Id));
+
+ buffer_copy(&g_value_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+
+ struct nasPDU *nas = &(s1apPDU.value.data[2].val.nas);
+ uint8_t value = (nas->header.security_header_type) |
+ nas->header.proto_discriminator;
+
+ g_nas_buffer.pos = 0;
+
+ buffer_copy(&g_nas_buffer, &value, sizeof(value));
+
+ buffer_copy(&g_nas_buffer, &nas->header.message_type,
+ sizeof(nas->header.message_type));
+
+ buffer_copy(&g_nas_buffer, &nas->header.nas_security_param,
+ sizeof(nas->header.nas_security_param));
+
+ buffer_copy(&g_nas_buffer,
+ &nas->elements[0].pduElement.rand,
+ sizeof(nas->elements[0].pduElement.rand));
+
+ datalen = 16;
+ buffer_copy(&g_nas_buffer, &datalen, sizeof(datalen));
+
+ buffer_copy(&g_nas_buffer,
+ &nas->elements[1].pduElement.autn,
+ sizeof(nas->elements[1].pduElement.autn));
+
+ datalen = g_nas_buffer.pos + 1;
+ buffer_copy(&g_value_buffer, &datalen,
+ sizeof(datalen));
+
+ buffer_copy(&g_value_buffer, &g_nas_buffer.pos,
+ sizeof(g_nas_buffer.pos));
+
+
+ buffer_copy(&g_value_buffer, &g_nas_buffer,
+ g_nas_buffer.pos);
+
+ buffer_copy(&g_buffer, &g_value_buffer.pos,
+ sizeof(g_value_buffer.pos));
+
+ buffer_copy(&g_buffer, &g_value_buffer,
+ g_value_buffer.pos);
+
+ free(s1apPDU.value.data[2].val.nas.elements);
+ free(s1apPDU.value.data);
+
+ send_sctp_msg(g_authreqInfo->enb_fd, g_buffer.buf, g_buffer.pos, 1);
+
+ return SUCCESS;
+}
+
+void*
+authreq_handler(void *data)
+{
+ log_msg(LOG_INFO, "AuthReq handler.\n");
+
+ authreq_processing((struct authreq_info *)data);
+
+ return NULL;
+}
diff --git a/src/s1ap/handlers/attach_authresp.c b/src/s1ap/handlers/attach_authresp.c
new file mode 100644
index 0000000..c8aae42
--- /dev/null
+++ b/src/s1ap/handlers/attach_authresp.c
@@ -0,0 +1,151 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ * Copyright (c) 2019, Infosys Ltd.
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <pthread.h>
+
+#include "err_codes.h"
+#include "options.h"
+#include "ipc_api.h"
+#include "main.h"
+#include "s1ap.h"
+#include "s1ap_config.h"
+#include "sctp_conn.h"
+#include "s1ap_structs.h"
+#include "s1ap_msg_codes.h"
+#include "msgType.h"
+
+
+extern int g_enb_fd;
+extern ipc_handle ipc_S1ap_Hndl;
+extern struct time_stat g_attach_stats[];
+
+int
+s1_auth_resp_handler(struct proto_IE *s1_auth_resp_ies)
+{
+ //TODO: use static instead of synamic for perf.
+ struct s1_incoming_msg_data_t auth_resp= {0};
+
+ /*****Message structure***
+ */
+ log_msg(LOG_INFO, "Parse s1ap auth resp message:--\n");
+
+ /*Validate all eNB info*/
+
+ /*Add eNB info to hash*/
+
+ /*Create Q structure for stage 1 to MME.
+ contains init UE information.*/
+ auth_resp.msg_type = auth_response;
+
+ for(int i = 0; i < s1_auth_resp_ies->no_of_IEs; i++)
+ {
+ switch(s1_auth_resp_ies->data[i].IE_type)
+ {
+ case S1AP_IE_MME_UE_ID:
+ {
+ auth_resp.ue_idx = s1_auth_resp_ies->data[i].val.mme_ue_s1ap_id;
+ }break;
+ case S1AP_IE_NAS_PDU:
+ {
+ if(s1_auth_resp_ies->data[i].val.nas.header.message_type != NAS_AUTH_RESP)
+ {
+ auth_resp.msg_data.authresp_Q_msg_m.status = S1AP_AUTH_FAILED;//Error in authentication
+ }
+ else
+ {
+ auth_resp.msg_data.authresp_Q_msg_m.status = SUCCESS;
+ }
+
+ memcpy(&(auth_resp.msg_data.authresp_Q_msg_m.res),
+ &(s1_auth_resp_ies->data[i].val.nas.elements[0].pduElement.auth_resp),
+ sizeof(struct XRES));
+ }break;
+ default:
+ log_msg(LOG_WARNING,"Unhandled IE");
+ }
+ }
+
+ auth_resp.destInstAddr = htonl(mmeAppInstanceNum_c);
+ auth_resp.srcInstAddr = htonl(s1apAppInstanceNum_c);
+
+ //STIMER_GET_CURRENT_TP(g_attach_stats[s1_auth_resp_ies->data[1].enb_ue_s1ap_id].auth_to_mme);
+ send_tipc_message(ipc_S1ap_Hndl, mmeAppInstanceNum_c, (char *)&auth_resp, S1_READ_MSG_BUF_SIZE);
+
+ /*Send S1Setup response*/
+ log_msg(LOG_INFO, "Auth resp send to mme-app stage3.\n");
+
+ //TODO: free IEs
+ return SUCCESS;
+}
+
+int
+s1_auth_fail_handler(struct proto_IE *s1_auth_resp_ies)
+{
+ //TODO: use static instead of synamic for perf.
+ struct s1_incoming_msg_data_t auth_resp;
+
+ /*****Message structure***
+ */
+ log_msg(LOG_INFO, "Parse s1ap auth fail resp:--\n");
+
+ /*Validate all eNB info*/
+
+ /*Add eNB info to hash*/
+
+ /*Create Q structure for stage 1 to MME.
+ contains init UE information.*/
+
+ /* msg_type for auth_failure
+ ?auth_resp.msg_type =?;*/
+ for(int i = 0; i < s1_auth_resp_ies->no_of_IEs; i++)
+ {
+ switch(s1_auth_resp_ies->data[i].IE_type)
+ {
+ case S1AP_IE_MME_UE_ID:
+ {
+ auth_resp.ue_idx = s1_auth_resp_ies->data[i].val.mme_ue_s1ap_id;
+ }break;
+ case S1AP_IE_NAS_PDU:
+ {
+ auth_resp.msg_data.authresp_Q_msg_m.status = S1AP_AUTH_FAILED;//Error in authentication
+ memcpy(&(auth_resp.msg_data.authresp_Q_msg_m.auts),
+ &(s1_auth_resp_ies->data[i].val.nas.elements[0].pduElement.auth_fail_resp),
+ sizeof(struct AUTS));
+ }break;
+ default:
+ log_msg(LOG_WARNING,"Unhandled IE");
+ }
+ }
+
+ auth_resp.destInstAddr = htonl(mmeAppInstanceNum_c);
+ auth_resp.srcInstAddr = htonl(s1apAppInstanceNum_c);
+
+ //STIMER_GET_CURRENT_TP(g_attach_stats[s1_auth_resp_ies->data[1].enb_ue_s1ap_id].auth_to_mme);
+ send_tipc_message(ipc_S1ap_Hndl, mmeAppInstanceNum_c, (char *)&auth_resp, S1_READ_MSG_BUF_SIZE);
+
+ /*Send S1Setup response*/
+ log_msg(LOG_INFO, "Auth resp send to mme-app stage3.\n");
+
+ //TODO: free IEs
+ return SUCCESS;
+}
+
diff --git a/src/s1ap/handlers/attach_complete.c b/src/s1ap/handlers/attach_complete.c
new file mode 100644
index 0000000..d2a9a67
--- /dev/null
+++ b/src/s1ap/handlers/attach_complete.c
@@ -0,0 +1,90 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ * Copyright (c) 2019, Infosys Ltd.
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <pthread.h>
+
+#include "err_codes.h"
+#include "options.h"
+#include "ipc_api.h"
+#include "main.h"
+#include "s1ap.h"
+#include "s1ap_config.h"
+#include "sctp_conn.h"
+#include "s1ap_structs.h"
+#include "s1ap_msg_codes.h"
+#include "msgType.h"
+
+
+extern int g_enb_fd;
+extern int g_sctp_fd;
+extern ipc_handle ipc_S1ap_Hndl;
+
+int
+s1_attach_complete_handler(struct proto_IE *s1_esm_resp_ies)
+{
+ struct s1_incoming_msg_data_t attachComplete= {0};
+
+ /*****Message structure***
+ */
+ log_msg(LOG_INFO, "Parse s1ap-nas attach complete message:--\n");
+
+ /*Validate all eNB info*/
+
+ /*Create Q structure for stage 1 to MME.
+ contains init UE information.*/
+ attachComplete.msg_type = attach_complete;
+ for(int i = 0; i < s1_esm_resp_ies->no_of_IEs; i++)
+ {
+ switch(s1_esm_resp_ies->data[i].IE_type)
+ {
+ case S1AP_IE_MME_UE_ID:
+ {
+ attachComplete.ue_idx = s1_esm_resp_ies->data[i].val.mme_ue_s1ap_id;
+ }break;
+ default:
+ log_msg(LOG_WARNING,"Unhandled IE");
+ }
+ }
+
+ attachComplete.msg_data.attach_complete_Q_msg_m.status = SUCCESS;
+
+
+ attachComplete.destInstAddr = htonl(mmeAppInstanceNum_c);
+ attachComplete.srcInstAddr = htonl(s1apAppInstanceNum_c);
+
+ int i = send_tipc_message(ipc_S1ap_Hndl, mmeAppInstanceNum_c, (char *)&attachComplete, S1_READ_MSG_BUF_SIZE);
+
+ if (i < 0) {
+ log_msg(LOG_ERROR, "Error to write in s1_attach_complete_handler\n");
+ } else {
+ /*Send S1Setup response*/
+ log_msg(LOG_INFO, "Attach complete send to mme-app stage8. Bytes send %d\n", i);
+ }
+
+ //Anjana: Socket cleanup
+ /*close(g_sctp_fd);
+ if (g_enb_fd != 0)
+ close(g_enb_fd);*/
+ //TODO: free IEs
+ return SUCCESS;
+}
+
diff --git a/src/s1ap/handlers/attach_esmreq.c b/src/s1ap/handlers/attach_esmreq.c
new file mode 100644
index 0000000..39f16bb
--- /dev/null
+++ b/src/s1ap/handlers/attach_esmreq.c
@@ -0,0 +1,226 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <pthread.h>
+#include <string.h>
+#include <unistd.h>
+#include <stdint.h>
+
+#include "err_codes.h"
+#include "ipc_api.h"
+#include "main.h"
+#include "msgType.h"
+#include "s1ap.h"
+#include "log.h"
+#include "snow_3g.h"
+
+/****Globals and externs ***/
+
+/*Making global just to avoid stack passing*/
+static Buffer g_esm_buffer;
+static Buffer g_esm_value_buffer;
+static Buffer g_esm_nas_buffer;
+
+
+/****Global and externs end***/
+extern ipc_handle ipc_S1ap_Hndl;
+/**
+* Get ProtocolIE value for Sec Request sent by mme-app
+*/
+static int
+get_esmreq_protoie_value(struct proto_IE *value, struct esm_req_Q_msg * g_esmReqInfo)
+{
+ value->no_of_IEs = ESM_REQ_NO_OF_IES;
+
+ value->data = (proto_IEs *) malloc(ESM_REQ_NO_OF_IES *
+ sizeof(proto_IEs));
+
+ value->data[0].val.mme_ue_s1ap_id = g_esmReqInfo->ue_idx;
+ value->data[1].val.enb_ue_s1ap_id = g_esmReqInfo->enb_s1ap_ue_id;
+
+ value->data[2].val.nas.header.security_header_type =
+ IntegrityProtectedCiphered;
+
+ value->data[2].val.nas.header.proto_discriminator =
+ EPSMobilityManagementMessages;
+
+ /* placeholder for mac. mac value will be calculated later */
+ uint8_t mac[MAC_SIZE] = {0};
+ memcpy(value->data[2].val.nas.header.mac, mac, MAC_SIZE);
+
+ value->data[2].val.nas.header.seq_no = g_esmReqInfo->dl_seq_no;
+
+ value->data[2].val.nas.header.message_type = ESMInformationRequest;
+
+ /* TODO: Remove hardcoded value */
+ value->data[2].val.nas.header.eps_bearer_identity = 0;
+ value->data[2].val.nas.header.procedure_trans_identity = g_esmReqInfo->pti;
+
+ return SUCCESS;
+}
+
+
+/**
+* Stage specific message processing.
+*/
+static int
+esmreq_processing(struct esm_req_Q_msg * g_esmReqInfo)
+{
+ unsigned char tmpStr[4];
+ struct s1ap_PDU s1apPDU= {0};
+ uint8_t mac_data_pos;
+
+ s1apPDU.procedurecode = id_downlinkNASTransport;
+ s1apPDU.criticality = CRITICALITY_IGNORE;
+
+ get_esmreq_protoie_value(&s1apPDU.value, g_esmReqInfo);
+
+ /* Copy values to g_sec_nas_buffer */
+
+ /* id-NAS-PDU */
+ g_esm_nas_buffer.pos = 0;
+ nasPDU nas = s1apPDU.value.data[2].val.nas;
+
+ unsigned char value = (nas.header.security_header_type << 4 |
+ nas.header.proto_discriminator);
+ buffer_copy(&g_esm_nas_buffer, &value, sizeof(value));
+
+ /* placeholder for mac. mac value will be calculated later */
+ buffer_copy(&g_esm_nas_buffer, &nas.header.mac, MAC_SIZE);
+ mac_data_pos = g_esm_nas_buffer.pos;
+
+ buffer_copy(&g_esm_nas_buffer, &nas.header.seq_no,
+ sizeof(nas.header.seq_no));
+
+ nas.header.proto_discriminator = EPSSessionManagementMessage;
+ value = (nas.header.eps_bearer_identity << 4 |
+ nas.header.proto_discriminator);
+ buffer_copy(&g_esm_nas_buffer, &value, sizeof(value));
+
+ buffer_copy(&g_esm_nas_buffer,
+ &nas.header.procedure_trans_identity,
+ sizeof(nas.header.procedure_trans_identity));
+
+ buffer_copy(&g_esm_nas_buffer, &nas.header.message_type,
+ sizeof(nas.header.message_type));
+
+ /* Calculate mac */
+ uint8_t direction = 1;
+ uint8_t bearer = 0;
+
+ calculate_mac(g_esmReqInfo->int_key, nas.header.seq_no, direction,
+ bearer, &g_esm_nas_buffer.buf[mac_data_pos],
+ g_esm_nas_buffer.pos - mac_data_pos,
+ &g_esm_nas_buffer.buf[mac_data_pos - MAC_SIZE]);
+
+ /* Copy values in g_sec_value_buffer */
+ g_esm_value_buffer.pos = 0;
+
+ /* TODO remove hardcoded values */
+ char chProtoIENo[3] = {0,0,3};
+ buffer_copy(&g_esm_value_buffer, chProtoIENo, 3);
+
+ /* id-MME-UE-S1AP-ID */
+ uint16_t protocolIe_Id = id_MME_UE_S1AP_ID;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_esm_value_buffer, tmpStr,
+ sizeof(protocolIe_Id));
+
+ unsigned char protocolIe_criticality = CRITICALITY_REJECT;
+ buffer_copy(&g_esm_value_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+
+ unsigned char datalen = 2;
+
+ /* TODO need to add proper handling*/
+ unsigned char mme_ue_id[3];
+ datalen = copyU16(mme_ue_id, s1apPDU.value.data[0].val.mme_ue_s1ap_id);
+ buffer_copy(&g_esm_value_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_esm_value_buffer, mme_ue_id, datalen);
+
+ /* id-eNB-UE-S1AP-ID */
+ protocolIe_Id = id_eNB_UE_S1AP_ID;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_esm_value_buffer, tmpStr,
+ sizeof(protocolIe_Id));
+
+ buffer_copy(&g_esm_value_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+
+ /* TODO needs proper handling*/
+ unsigned char enb_ue_id[3];
+ datalen = copyU16(enb_ue_id, s1apPDU.value.data[1].val.enb_ue_s1ap_id);
+ buffer_copy(&g_esm_value_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_esm_value_buffer, enb_ue_id, datalen);
+
+
+ /* id-NAS-PDU */
+ protocolIe_Id = id_NAS_PDU;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_esm_value_buffer, tmpStr,
+ sizeof(protocolIe_Id));
+
+ buffer_copy(&g_esm_value_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+
+
+ datalen = g_esm_nas_buffer.pos + 1;
+ buffer_copy(&g_esm_value_buffer, &datalen,
+ sizeof(datalen));
+
+ buffer_copy(&g_esm_value_buffer, &g_esm_nas_buffer.pos,
+ sizeof(g_esm_nas_buffer.pos));
+
+ buffer_copy(&g_esm_value_buffer, &g_esm_nas_buffer,
+ g_esm_nas_buffer.pos);
+
+ /* Copy values in g_sec_buffer */
+ g_esm_buffer.pos = 0;
+
+ unsigned char initiating_message = 0; /* TODO: Add enum */
+ buffer_copy(&g_esm_buffer, &initiating_message,
+ sizeof(initiating_message));
+
+ buffer_copy(&g_esm_buffer, &s1apPDU.procedurecode,
+ sizeof(s1apPDU.procedurecode));
+
+ buffer_copy(&g_esm_buffer, &s1apPDU.criticality,
+ sizeof(s1apPDU.criticality));
+
+ buffer_copy(&g_esm_buffer, &g_esm_value_buffer.pos,
+ sizeof(g_esm_value_buffer.pos));
+
+ buffer_copy(&g_esm_buffer, &g_esm_value_buffer,
+ g_esm_value_buffer.pos);
+
+ send_sctp_msg(g_esmReqInfo->enb_fd, g_esm_buffer.buf, g_esm_buffer.pos, 1);
+
+ free(s1apPDU.value.data);
+
+ return SUCCESS;
+}
+
+void*
+esmreq_handler(void *data)
+{
+ log_msg(LOG_INFO, "ESM Info Request handler\n");
+ esmreq_processing((struct esm_req_Q_msg *)data);
+
+ return NULL;
+}
diff --git a/src/s1ap/handlers/attach_esmresp.c b/src/s1ap/handlers/attach_esmresp.c
new file mode 100644
index 0000000..99522a2
--- /dev/null
+++ b/src/s1ap/handlers/attach_esmresp.c
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <pthread.h>
+
+#include "err_codes.h"
+#include "options.h"
+#include "ipc_api.h"
+#include "main.h"
+#include "s1ap.h"
+#include "s1ap_config.h"
+#include "sctp_conn.h"
+#include "s1ap_structs.h"
+#include "s1ap_msg_codes.h"
+#include "msgType.h"
+
+extern int g_enb_fd;
+extern ipc_handle ipc_S1ap_Hndl;
+
+int
+s1_esm_resp_handler(struct proto_IE *s1_esm_resp_ies)
+{
+ struct s1_incoming_msg_data_t esm_resp= {0};
+ esm_resp.msg_type = esm_info_response;
+
+ /*****Message structure***
+ */
+ log_msg(LOG_INFO, "Parse s1ap ESM response message:--\n");
+
+ /*Validate all eNB info*/
+
+ /*Add eNB info to hash*/
+
+ /*Create Q structure for stage 1 to MME.
+ contains init UE information.*/
+ for(int i = 0; i < s1_esm_resp_ies->no_of_IEs; i++)
+ {
+ switch(s1_esm_resp_ies->data[i].IE_type)
+ {
+ case S1AP_IE_MME_UE_ID:
+ {
+ esm_resp.ue_idx = s1_esm_resp_ies->data[i].val.mme_ue_s1ap_id;
+ }break;
+ case S1AP_IE_NAS_PDU:
+ {
+ if(s1_esm_resp_ies->data[i].val.nas.header.message_type != NAS_ESM_RESP)
+ {
+ esm_resp.msg_data.esm_resp_Q_msg_m.status = S1AP_SECMODE_FAILED;//Error in authentication
+ }
+ else
+ {
+ esm_resp.msg_data.esm_resp_Q_msg_m.status = SUCCESS;
+ memcpy(&(esm_resp.msg_data.esm_resp_Q_msg_m.apn), &(s1_esm_resp_ies->data[i].val.nas.elements[0].pduElement.apn),
+ sizeof(struct apn_name));
+ }
+
+ }break;
+ default:
+ log_msg(LOG_WARNING,"Unhandled IE");
+ }
+ }
+
+
+ esm_resp.destInstAddr = htonl(mmeAppInstanceNum_c);
+ esm_resp.srcInstAddr = htonl(s1apAppInstanceNum_c);
+
+ //STIMER_GET_CURRENT_TP(g_attach_stats[s1_auth_resp_ies->data[1].enb_ue_s1ap_id].auth_to_mme);
+ send_tipc_message(ipc_S1ap_Hndl, mmeAppInstanceNum_c, (char *)&esm_resp, S1_READ_MSG_BUF_SIZE);
+
+ /*Send S1Setup response*/
+ log_msg(LOG_INFO, "ESM Info resp send to mme-app\n");
+
+ //TODO: free IEs
+ return SUCCESS;
+}
+
diff --git a/src/s1ap/handlers/attach_icsreq.c b/src/s1ap/handlers/attach_icsreq.c
new file mode 100644
index 0000000..23c00a5
--- /dev/null
+++ b/src/s1ap/handlers/attach_icsreq.c
@@ -0,0 +1,744 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ * Copyright (c) 2019, Infosys Ltd.
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <pthread.h>
+#include <string.h>
+#include <unistd.h>
+#include <stdint.h>
+
+#include "log.h"
+#include "err_codes.h"
+#include "message_queues.h"
+#include "ipc_api.h"
+#include "s1ap_config.h"
+#include "main.h"
+#include "s1ap.h"
+#include "msgType.h"
+
+extern s1ap_config g_s1ap_cfg;
+
+static void
+get_negotiated_qos_value(struct esm_qos *qos)
+{
+ qos->delay_class = 1;
+ qos->reliability_class = 3;
+ qos->peak_throughput = 5;
+ qos->precedence_class = 2;
+ qos->mean_throughput = 31;
+ qos->traffic_class = 3;
+ qos->delivery_order = 2;
+ qos->delivery_err_sdu = 3;
+ qos->max_sdu_size = 140;
+ qos->mbr_ul = 254;
+ qos->mbr_dl = 86;
+ qos->residual_ber = 7;
+ qos->sdu_err_ratio = 6;
+ qos->transfer_delay = 18;
+ qos->trffic_prio = 3;
+ qos->gbr_ul = 86;
+ qos->gbr_dl = 86;
+ qos->sig_ind = 0;
+ qos->src_stat_desc = 0;
+ qos->mbr_dl_ext = 108;
+ qos->gbr_dl_ext = 0;
+ qos->mbr_ul_ext = 108;
+ qos->gbr_ul_ext = 0;
+
+ return;
+}
+
+/**
+* Get ProtocolIE value for ICS Request sent by mme-app
+*/
+static int
+get_icsreq_protoie_value(struct proto_IE *value, struct init_ctx_req_Q_msg *g_icsReqInfo)
+{
+ uint8_t ieCnt = 0;
+ uint8_t nasIeCnt = 0;
+
+ value->no_of_IEs = ICS_REQ_NO_OF_IES;
+
+ value->data = (proto_IEs *) malloc(ICS_REQ_NO_OF_IES *
+ sizeof(proto_IEs));
+
+
+ value->data[ieCnt].val.mme_ue_s1ap_id = g_icsReqInfo->ue_idx;
+ ieCnt++;
+
+ value->data[ieCnt].val.enb_ue_s1ap_id = g_icsReqInfo->enb_s1ap_ue_id;
+ ieCnt++;
+
+ log_msg(LOG_INFO, "mme_ue_s1ap_id %d and enb_ue_s1ap_id %d\n",
+ g_icsReqInfo->ue_idx, g_icsReqInfo->enb_s1ap_ue_id);
+
+ value->data[ieCnt].val.ue_aggrt_max_bit_rate.uEaggregateMaxBitRateDL =
+ g_icsReqInfo->exg_max_dl_bitrate;
+ value->data[ieCnt].val.ue_aggrt_max_bit_rate.uEaggregateMaxBitRateUL =
+ g_icsReqInfo->exg_max_ul_bitrate;
+ ieCnt++;
+
+ /* E-RABToBeSetupItemCtxtSUReq start */
+ ERABSetup *e_rab = &(value->data[ieCnt].val.E_RABToBeSetupItemCtxtSUReq);
+ /* TODO: Remove hardcoded values. */
+ e_rab->e_RAB_ID = 1;
+ e_rab->e_RAB_QoS_Params.qci = 9;
+ e_rab->e_RAB_QoS_Params.arPrio.prioLevel = 15;
+ e_rab->e_RAB_QoS_Params.arPrio.preEmptionCapab = 1;
+ e_rab->e_RAB_QoS_Params.arPrio.preEmptionVulnebility = 1;
+
+ /*S1u information : transport layer addr and teid*/
+ e_rab->transportLayerAddress = htonl(g_icsReqInfo->gtp_teid.ip.ipv4.s_addr);
+ //e_rab->gtp_teid = htonl(g_icsReqInfo->gtp_teid.header.teid_gre);
+ {
+ char *dst = (char *)&(e_rab->gtp_teid);
+ char *src = (char *)&(g_icsReqInfo->gtp_teid.header.teid_gre);
+ memcpy(dst, src+3, 1);
+ memcpy(dst+1, src+2, 1);
+ memcpy(dst+2, src+1, 1);
+ memcpy(dst+3, src, 1);
+ }
+
+ /* NAS PDU values start */
+ e_rab->nas.header.security_header_type =
+ IntegrityProtectedCiphered;
+ e_rab->nas.header.proto_discriminator =
+ EPSMobilityManagementMessages;
+
+ /* placeholder for mac. mac value will be calculated later */
+ uint8_t mac[MAC_SIZE] = {0};
+ memcpy(e_rab->nas.header.mac, mac, MAC_SIZE);
+
+ e_rab->nas.header.seq_no = g_icsReqInfo->dl_seq_no;
+ e_rab->nas.header.message_type = AttachAccept;
+ /* TODO: Remove hardcoded value */
+ e_rab->nas.header.eps_bearer_identity = 0;
+ e_rab->nas.header.procedure_trans_identity = 1;
+
+ e_rab->nas.elements_len = ICS_REQ_NO_OF_NAS_IES;
+ e_rab->nas.elements = (nas_pdu_elements *)
+ malloc(ICS_REQ_NO_OF_NAS_IES * sizeof(nas_pdu_elements));
+
+ nas_pdu_elements *nasIEs = e_rab->nas.elements;
+ nasIEs[nasIeCnt].pduElement.attach_res = 2; /* EPS Only */
+ nasIeCnt++;
+
+ /* Refer : 24008. Section - 10.5.7.3. We want to disable TAU request coming from UE.
+ */
+//#define DISABLE_TAU 0
+#if DISABLE_TAU
+ nasIEs[nasIeCnt].pduElement.t3412 = 224;
+#else
+ nasIEs[nasIeCnt].pduElement.t3412 = 0x21; // per min
+#endif
+ nasIeCnt++;
+
+ nasIEs[nasIeCnt].pduElement.tailist.type = 1;
+ nasIEs[nasIeCnt].pduElement.tailist.num_of_elements = 0;
+
+ /* S1AP TAI mcc 123, mnc 456 : 214365 */
+ /* NAS GUTI mcc 123, mnc 456 : 216354 */
+ if ((g_icsReqInfo->tai.plmn_id.idx[1] & 0xF0) != 0xF0)
+ {
+ unsigned char x3 = g_icsReqInfo->tai.plmn_id.idx[2];
+ unsigned char x2 = g_icsReqInfo->tai.plmn_id.idx[1];
+ unsigned char x31 = x3 >> 4;
+ unsigned char x32 = x3 & 0xf;
+ unsigned char x21 = x2 >> 4;
+ unsigned char x22 = x2 & 0xf;
+ x3 = x21 | (x32 <<4);
+ x2 = (x31 << 4) | x22;
+ g_icsReqInfo->tai.plmn_id.idx[1] = x2;
+ g_icsReqInfo->tai.plmn_id.idx[2] = x3;
+ }
+
+ memcpy(&(nasIEs[nasIeCnt].pduElement.tailist.partial_list[0]),
+ &(g_icsReqInfo->tai), sizeof(g_icsReqInfo->tai));
+ nasIeCnt++;
+
+ nasIEs[nasIeCnt].pduElement.esm_msg.eps_bearer_id = 5; /* TODO: revisit */
+ nasIEs[nasIeCnt].pduElement.esm_msg.proto_discriminator = 2;
+ memcpy(&(nasIEs[nasIeCnt].pduElement.esm_msg.procedure_trans_identity), &(g_icsReqInfo->pti), 1);
+ nasIEs[nasIeCnt].pduElement.esm_msg.session_management_msgs =
+ ESM_MSG_ACTV_DEF_BEAR__CTX_REQ;
+ nasIEs[nasIeCnt].pduElement.esm_msg.eps_qos = 9;
+
+ /* TODO: Remove hardcoded value */
+ /*char apnname[4] = "apn1";
+ memcpy(&(nasIEs[nasIeCnt].esm_msg.apn.val), apnname, 4);
+ nasIEs[nasIeCnt].esm_msg.apn.len = 4;
+ */
+ nasIEs[nasIeCnt].pduElement.esm_msg.apn.len = g_icsReqInfo->apn.len;
+ memcpy(nasIEs[nasIeCnt].pduElement.esm_msg.apn.val,
+ g_icsReqInfo->apn.val, g_icsReqInfo->apn.len);
+
+
+ nasIEs[nasIeCnt].pduElement.esm_msg.pdn_addr.type = 1;
+ /*TODO : endian issue */
+ nasIEs[nasIeCnt].pduElement.esm_msg.pdn_addr.ipv4 = htonl(g_icsReqInfo->pdn_addr.ip_type.ipv4.s_addr);
+ nasIEs[nasIeCnt].pduElement.esm_msg.linked_ti.flag = 0;
+ nasIEs[nasIeCnt].pduElement.esm_msg.linked_ti.val = 0;
+ get_negotiated_qos_value(&nasIEs[nasIeCnt].pduElement.esm_msg.negotiated_qos);
+ nasIeCnt++;
+
+ /* Send the allocated GUTI to UE */
+ nasIEs[nasIeCnt].pduElement.mi_guti.odd_even_indication = 0;
+ nasIEs[nasIeCnt].pduElement.mi_guti.id_type = 6;
+
+ memcpy(&(nasIEs[nasIeCnt].pduElement.mi_guti.plmn_id),
+ &(g_icsReqInfo->tai.plmn_id), sizeof(struct PLMN));
+ nasIEs[nasIeCnt].pduElement.mi_guti.mme_grp_id = htons(g_s1ap_cfg.mme_group_id);
+ nasIEs[nasIeCnt].pduElement.mi_guti.mme_code = g_s1ap_cfg.mme_code;
+ /* TODO : Revisit, temp fix for handling detach request retransmit.
+ * M-TMSI should come from MME */
+ nasIEs[nasIeCnt].pduElement.mi_guti.m_TMSI = htonl(g_icsReqInfo->m_tmsi);
+ nasIeCnt++;
+
+ ieCnt++;
+ /* NAS PDU values end */
+ /* E-RABToBeSetupItemCtxtSUReq values end */
+
+
+ /* TODO Get value of ue_sec_capabilities
+ *
+ * value->data[ieCnt].ue_sec_capabilities = ??
+ *
+ * */
+
+
+ ieCnt++;
+
+ /* TODO: remove hard coded value */
+ /*char sec_key[32] = "abcdefghijklmnopqrstuvwxyz012345";
+ memcpy(value->data[ieCnt].sec_key, sec_key,
+ SECURITY_KEY_SIZE);
+ */
+
+ memcpy(value->data[ieCnt].val.sec_key, g_icsReqInfo->sec_key,
+ SECURITY_KEY_SIZE);
+
+ ieCnt++;
+
+ return SUCCESS;
+}
+
+
+
+/**
+* Stage specific message processing.
+*/
+static int
+icsreq_processing(struct init_ctx_req_Q_msg *g_icsReqInfo)
+{
+
+ Buffer g_ics_buffer;
+ Buffer g_s1ap_buffer;
+ Buffer g_rab1_buffer;
+ Buffer g_rab2_buffer;
+ Buffer g_nas_buffer;
+
+ unsigned char tmpStr[4];
+ struct s1ap_PDU s1apPDU;
+ uint16_t protocolIe_Id;
+ uint8_t protocolIe_criticality;
+ uint8_t initiating_msg = 0;
+ uint8_t datalen = 0;
+ //uint8_t s1ap_len_pos;
+ //uint8_t erab_len_pos;
+ //uint8_t erab_item_len_pos;
+ //uint8_t nas_len_pos;
+ uint16_t esm_len_pos;
+ uint8_t u8value = 0;
+ uint8_t mac_data_pos;
+
+ s1apPDU.procedurecode = id_InitialContextSetup;
+ s1apPDU.criticality = CRITICALITY_REJECT;
+
+ get_icsreq_protoie_value(&s1apPDU.value, g_icsReqInfo);
+
+ g_ics_buffer.pos = 0;
+
+ buffer_copy(&g_ics_buffer, &initiating_msg,
+ sizeof(initiating_msg));
+
+ buffer_copy(&g_ics_buffer, &s1apPDU.procedurecode,
+ sizeof(s1apPDU.procedurecode));
+
+ buffer_copy(&g_ics_buffer, &s1apPDU.criticality,
+ sizeof(s1apPDU.criticality));
+
+ /* TODO: revisit , why 128 (0x80) required */
+#if 0
+ s1ap_len_pos = g_ics_buffer.pos;
+ u8value = 128;
+ buffer_copy(&g_ics_buffer, &u8value, sizeof(u8value));
+
+
+
+
+ u8value = 0;
+ buffer_copy(&g_ics_buffer, &u8value, sizeof(u8value));
+#endif
+
+ g_s1ap_buffer.pos = 0;
+
+ /* TODO remove hardcoded values */
+ uint8_t chProtoIENo[3] = {0,0,6};
+ buffer_copy(&g_s1ap_buffer, chProtoIENo, 3);
+
+ /* id-MME-UE-S1AP-ID */
+ protocolIe_Id = id_MME_UE_S1AP_ID;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_s1ap_buffer, tmpStr, sizeof(protocolIe_Id));
+ protocolIe_criticality = CRITICALITY_REJECT;
+ buffer_copy(&g_s1ap_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+ datalen = 2;
+ /* TODO need to add proper handling*/
+ unsigned char mme_ue_id[3];
+ datalen = copyU16(mme_ue_id, s1apPDU.value.data[0].val.mme_ue_s1ap_id);
+ buffer_copy(&g_s1ap_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_s1ap_buffer, mme_ue_id, datalen);
+
+ /* id-eNB-UE-S1AP-ID */
+ protocolIe_Id = id_eNB_UE_S1AP_ID;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_s1ap_buffer, tmpStr, sizeof(protocolIe_Id));
+ buffer_copy(&g_s1ap_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+ /* TODO needs proper handling*/
+ unsigned char enb_ue_id[3];
+ datalen = copyU16(enb_ue_id, s1apPDU.value.data[1].val.enb_ue_s1ap_id);
+ buffer_copy(&g_s1ap_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_s1ap_buffer, enb_ue_id, datalen);
+
+ protocolIe_Id = id_uEaggregatedMaximumBitrate;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_s1ap_buffer, tmpStr, sizeof(protocolIe_Id));
+ buffer_copy(&g_s1ap_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+ datalen = 10;
+
+ uint8_t maximum_bit_rate_dl = 0x18;
+ uint8_t maximum_bit_rate_ul = 0x60;
+
+ buffer_copy(&g_s1ap_buffer, &datalen, sizeof(datalen));
+
+ buffer_copy(&g_s1ap_buffer, &maximum_bit_rate_dl, sizeof(maximum_bit_rate_dl));
+
+ uint32_t temp_bitrate = htonl(g_icsReqInfo->exg_max_dl_bitrate);
+ memset(tmpStr, 0, sizeof(tmpStr));
+ memcpy(tmpStr, &temp_bitrate, sizeof(temp_bitrate));
+
+ buffer_copy(&g_s1ap_buffer, tmpStr,
+ sizeof(tmpStr));
+
+ temp_bitrate = 0;
+ temp_bitrate = htonl(g_icsReqInfo->exg_max_ul_bitrate);
+ memset(tmpStr, 0, sizeof(tmpStr));
+ memcpy(tmpStr, &temp_bitrate, sizeof(temp_bitrate));
+
+ buffer_copy(&g_s1ap_buffer, &maximum_bit_rate_ul,
+ sizeof(maximum_bit_rate_ul));
+ buffer_copy(&g_s1ap_buffer, tmpStr,
+ sizeof(tmpStr));
+
+
+ /* id-E-RABToBeSetupListCtxtSUReq */
+ ERABSetup *erab = &(s1apPDU.value.data[3].val.E_RABToBeSetupItemCtxtSUReq);
+ protocolIe_Id = id_ERABToBeSetupListCtxtSUReq;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_s1ap_buffer, tmpStr, sizeof(protocolIe_Id));
+ buffer_copy(&g_s1ap_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+
+ /* Lets put this in new buffer */
+ /*rab_len_1 */
+#if 0
+ erab_len_pos = g_s1ap_buffer.pos;
+ datalen = 0;
+ buffer_copy(&g_ics_buffer, &datalen, sizeof(datalen));
+#endif
+ g_rab1_buffer.pos = 0;
+
+ buffer_copy(&g_rab1_buffer, &initiating_msg,
+ sizeof(initiating_msg));
+
+ protocolIe_Id = id_ERABToBeSetupItemCtxtSUReq;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_rab1_buffer, tmpStr, sizeof(protocolIe_Id));
+ buffer_copy(&g_rab1_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+
+ /*rab_len_2 */
+#if 0
+ erab_item_len_pos = g_rab1_buffer.pos;
+ datalen = 0;
+ buffer_copy(&g_ics_buffer, &datalen, sizeof(datalen));
+#endif
+
+ /*
+ buffer_copy(&g_ics_buffer, &(erab->e_RAB_ID),
+ sizeof(erab->e_RAB_ID));
+ */
+ g_rab2_buffer.pos = 0;
+ /* TODO : Remove hardcoded value of erab id */
+ u8value =69; // 0x45 //1;
+ buffer_copy(&g_rab2_buffer, &u8value, sizeof(u8value));
+ /* TODO: Need to revisit why add 00 before qci value? */
+ u8value = 0;
+ buffer_copy(&g_rab2_buffer, &u8value, sizeof(u8value));
+ buffer_copy(&g_rab2_buffer, &(erab->e_RAB_QoS_Params.qci),
+ sizeof(erab->e_RAB_QoS_Params.qci));
+ buffer_copy(&g_rab2_buffer, &(erab->e_RAB_QoS_Params.arPrio),
+ sizeof(erab->e_RAB_QoS_Params.arPrio));
+
+ /* TODO: Revisit why we need to add 0f 80 before transport add? */
+
+ u8value = 15;
+ buffer_copy(&g_rab2_buffer, &u8value, sizeof(u8value));
+ u8value = 128;
+ buffer_copy(&g_rab2_buffer, &u8value, sizeof(u8value));
+
+ buffer_copy(&g_rab2_buffer, &(erab->transportLayerAddress),
+ sizeof(erab->transportLayerAddress));
+
+ buffer_copy(&g_rab2_buffer, &(erab->gtp_teid),
+ sizeof(erab->gtp_teid));
+
+
+ /* E_RABToBeSetupListCtxtSUReq NAS PDU start */
+ // at the end we will do.... rab2_buf + <nas_len> + nas_buffer
+
+#if 0
+ nas_len_pos = g_rab2_buffer.pos;
+ datalen = 0;
+ buffer_copy(&g_ics_buffer, &datalen, sizeof(datalen));
+#endif
+
+ nas_pdu_header *nas_hdr = &(erab->nas.header);
+
+ g_nas_buffer.pos = 0;
+ /* security header and protocol discriminator */
+ u8value = (nas_hdr->security_header_type << 4 |
+ nas_hdr->proto_discriminator);
+ buffer_copy(&g_nas_buffer, &u8value, sizeof(u8value));
+
+ /* mac */
+ /* placeholder for mac. mac value will be calculated later */
+ buffer_copy(&g_nas_buffer, nas_hdr->mac, MAC_SIZE);
+ mac_data_pos = g_nas_buffer.pos;
+
+ /* sequence number */
+ buffer_copy(&g_nas_buffer, &(nas_hdr->seq_no),
+ sizeof(nas_hdr->seq_no));
+
+ /* security header and protocol discriminator */
+ nas_hdr->security_header_type = Plain;
+ u8value = (nas_hdr->security_header_type << 4 |
+ nas_hdr->proto_discriminator);
+ buffer_copy(&g_nas_buffer, &u8value, sizeof(u8value));
+
+ /* message type */
+ buffer_copy(&g_nas_buffer, &(nas_hdr->message_type),
+ sizeof(nas_hdr->message_type));
+
+ nas_pdu_elements *ies = erab->nas.elements;
+
+ /* eps attach result */
+ buffer_copy(&g_nas_buffer, &(ies[0].pduElement.attach_res), sizeof(u8value));
+
+ /* GPRS timer */
+#define DISABLE_TAU 1
+#if DISABLE_TAU
+ uint8_t temp_timer = 224; /*e0*/
+#else
+ uint8_t temp_timer = 0x21; /*per min */
+#endif
+ //buffer_copy(&g_ics_buffer, &(ies[1].t3412), sizeof(ies[1].t3412));
+ buffer_copy(&g_nas_buffer, &temp_timer, sizeof(temp_timer));
+
+ /* TAI list */
+ u8value = 6;
+ buffer_copy(&g_nas_buffer, &u8value, sizeof(u8value));
+ u8value = 32; /* TODO: use value from tai list */
+ buffer_copy(&g_nas_buffer, &u8value, sizeof(u8value));
+ buffer_copy(&g_nas_buffer, &(ies[2].pduElement.tailist.partial_list[0].plmn_id.idx), 3);
+ buffer_copy(&g_nas_buffer, &(ies[2].pduElement.tailist.partial_list[0].tac), 2);
+
+ esm_len_pos = g_nas_buffer.pos;
+
+ /* esm message container length */
+ char tmplen[2] = {0, 0};
+ buffer_copy(&g_nas_buffer, tmplen, 2);
+
+ /* ESM message container start */
+
+ /* esm message bearer id and protocol discriminator */
+ u8value = (ies[3].pduElement.esm_msg.eps_bearer_id << 4 |
+ ies[3].pduElement.esm_msg.proto_discriminator);
+ buffer_copy(&g_nas_buffer, &u8value, sizeof(u8value));
+
+ /* esm message procedure identity */
+ buffer_copy(&g_nas_buffer, &(ies[3].pduElement.esm_msg.procedure_trans_identity),
+ sizeof(ies[3].pduElement.esm_msg.procedure_trans_identity));
+
+ /* esm message session management message */
+ buffer_copy(&g_nas_buffer, &(ies[3].pduElement.esm_msg.session_management_msgs),
+ sizeof(ies[3].pduElement.esm_msg.session_management_msgs));
+
+ /* eps qos */
+ datalen = 1;
+ buffer_copy(&g_nas_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_nas_buffer, &(ies[3].pduElement.esm_msg.eps_qos),
+ sizeof(ies[3].pduElement.esm_msg.eps_qos));
+
+ /* apn */
+ char apn_name[25]={};
+ strncpy(apn_name, (char *)ies[3].pduElement.esm_msg.apn.val,
+ ies[3].pduElement.esm_msg.apn.len);
+ datalen = ies[3].pduElement.esm_msg.apn.len;
+ buffer_copy(&g_nas_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_nas_buffer, (char *)ies[3].pduElement.esm_msg.apn.val, datalen);
+
+ /* pdn address */
+ //datalen = sizeof(ies[3].esm_msg.pdn_addr);
+ datalen = 5; //sizeof(ies[3].esm_msg.pdn_addr);
+ buffer_copy(&g_nas_buffer, &datalen, sizeof(datalen));
+ u8value = 1;
+ buffer_copy(&g_nas_buffer, &u8value, sizeof(u8value));
+ //buffer_copy(&g_ics_buffer, &(ies[3].esm_msg.pdn_addr.pdn_type), 1);
+ buffer_copy(&g_nas_buffer, &(ies[3].pduElement.esm_msg.pdn_addr.ipv4), datalen-1);
+
+ /* linked ti */
+ u8value = 0x5d; /* element id TODO: define macro or enum */
+ buffer_copy(&g_nas_buffer, &u8value, sizeof(u8value));
+ datalen = 1;//sizeof(ies[3].esm_msg.linked_ti);
+ buffer_copy(&g_nas_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_nas_buffer, &(ies[3].pduElement.esm_msg.linked_ti), datalen);
+
+ /* negotiated qos */
+ u8value = 0x30; /* element id TODO: define macro or enum */
+ buffer_copy(&g_nas_buffer, &u8value, sizeof(u8value));
+ datalen = 16;//sizeof(ies[3].esm_msg.negotiated_qos);
+ buffer_copy(&g_nas_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_nas_buffer, &(ies[3].pduElement.esm_msg.negotiated_qos), datalen);
+
+ /* apn ambr */
+#if 0
+ u8value = 0x5e; /* element id TODO: define macro or enum */
+ buffer_copy(&g_ics_buffer, &u8value, sizeof(u8value));
+ datalen = sizeof(ies[3].esm_msg.apn_ambr);
+ buffer_copy(&g_ics_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_ics_buffer, &(ies[3].esm_msg.apn_ambr), datalen);
+#endif
+ /* TODO: remove hardcoded values of apn ambr */
+ char apn_ambr[8] = {0x5e, 0x06, 0x80, 0x00, 0x04, 0x05, 0x06, 0x07};
+ buffer_copy(&g_nas_buffer, apn_ambr, 8);
+
+#if 1
+ char pco_options[29] = {0x27, 0x1B, 0x80, 0x80, 0x21, 0x10, 0x03, 0x00, 0x00,0x10, 0x81, 0x06, 0x08,0x08,0x08, 0x08,0x83,0x06,0x08,0x08,0x08,0x04,0x00,0x0d, 0x04,0x08,0x08,0x08,0x08};
+ buffer_copy(&g_nas_buffer, &pco_options[0], 29);
+#endif
+
+ /* ESM message container end */
+
+ /* Copy esm container length to esm container length field */
+ uint16_t esm_datalen = g_nas_buffer.pos - esm_len_pos - 2;
+ unsigned char esm_len[2];
+ copyU16(esm_len, esm_datalen);
+ /* memcpy(&g_ics_buffer.buf[esm_len_pos], tmplen, sizeof(esm_datalen)); */
+ /*TODO: needs proper handling */
+ g_nas_buffer.buf[esm_len_pos] = esm_len[0];
+ g_nas_buffer.buf[esm_len_pos + 1] = esm_len[1];
+
+ /* EPS mobile identity GUTI */
+#if 0
+ u8value = 0x50; /* element id TODO: define macro or enum */
+ buffer_copy(&g_ics_buffer, &u8value, sizeof(u8value));
+ datalen = sizeof(ies[4].mi_guti);
+ buffer_copy(&g_ics_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_ics_buffer, &(ies[4].mi_guti), datalen);
+#endif
+
+ u8value = 0x50; /* element id TODO: define macro or enum */
+ buffer_copy(&g_nas_buffer, &u8value, sizeof(u8value));
+ datalen = 11;
+ buffer_copy(&g_nas_buffer, &datalen, sizeof(datalen));
+
+ u8value = 246; /* TODO: remove hard coding */
+ buffer_copy(&g_nas_buffer, &u8value, sizeof(u8value));
+ buffer_copy(&g_nas_buffer, &(ies[4].pduElement.mi_guti.plmn_id.idx), 3);
+ buffer_copy(&g_nas_buffer, &(ies[4].pduElement.mi_guti.mme_grp_id),
+ sizeof(ies[4].pduElement.mi_guti.mme_grp_id));
+ buffer_copy(&g_nas_buffer, &(ies[4].pduElement.mi_guti.mme_code),
+ sizeof(ies[4].pduElement.mi_guti.mme_code));
+ buffer_copy(&g_nas_buffer, &(ies[4].pduElement.mi_guti.m_TMSI),
+ sizeof(ies[4].pduElement.mi_guti.m_TMSI));
+
+#if 0
+ {
+ // sending mobile identity to UE
+ /*TODO : Experiment */
+ u8value = 0x23; /* element id TODO: define macro or enum */
+ buffer_copy(&g_nas_buffer, &u8value, sizeof(u8value));
+ datalen = 0x05;
+ buffer_copy(&g_nas_buffer, &datalen, sizeof(datalen));
+ u8value = 0xf4; //
+ buffer_copy(&g_nas_buffer, &u8value, sizeof(u8value));
+ buffer_copy(&g_nas_buffer, &(ies[4].pduElement.mi_guti.m_TMSI),
+ sizeof(ies[4].pduElement.mi_guti.m_TMSI));
+ }
+#endif
+ /* E_RABToBeSetupListCtxtSUReq NAS PDU end */
+
+ /* Calculate mac */
+ uint8_t direction = 1;
+ uint8_t bearer = 0;
+
+ calculate_mac(g_icsReqInfo->int_key, nas_hdr->seq_no,
+ direction, bearer, &g_nas_buffer.buf[mac_data_pos],
+ g_nas_buffer.pos - mac_data_pos,
+ &g_nas_buffer.buf[mac_data_pos - MAC_SIZE]);
+
+ /* Copy nas length to nas length field */
+ //uint16_t nas_pay_len = g_nas_buffer.pos - nas_len_pos - 1;
+ log_msg(LOG_INFO, "NAS payload length %d\n", g_nas_buffer.pos);
+
+ /* start: RAB2 + NAS start */
+ /* Now lets append NAS buffer to rab2....so rab2 = rab2_buf + nas_length + nas_buf */
+ if(g_nas_buffer.pos <= 127 )
+ {
+ /* datalen = g_nas_buffer.pos - nas_len_pos - 1; */
+ datalen = g_nas_buffer.pos;
+ buffer_copy(&g_rab2_buffer, &datalen, sizeof(datalen));
+ }
+ else
+ {
+ uint16_t nas_pay_len = g_nas_buffer.pos | 0x8000; // set MSB to 1
+ unsigned char lenStr[2];
+ lenStr[0] = nas_pay_len >> 8;
+ lenStr[1] = nas_pay_len & 0xff;
+ buffer_copy(&g_rab2_buffer, lenStr, sizeof(lenStr));
+ }
+ buffer_copy(&g_rab2_buffer, &g_nas_buffer.buf[0], g_nas_buffer.pos);
+ /* end : RAB2 + NAS done */
+
+ log_msg(LOG_INFO, "RAB2 payload length %d\n", g_rab2_buffer.pos);
+ /* Now lets append rab2 to rab1 */
+ if(g_rab2_buffer.pos <= 127)
+ {
+ datalen = g_rab2_buffer.pos;
+ buffer_copy(&g_rab1_buffer, &datalen, sizeof(datalen));
+ }
+ else
+ {
+ uint16_t rab2_pay_len = g_rab2_buffer.pos | 0x8000; // set MSB to 1
+ unsigned char lenStr[2];
+ lenStr[0] = rab2_pay_len >> 8;
+ lenStr[1] = rab2_pay_len & 0xff;
+ buffer_copy(&g_rab1_buffer, lenStr, sizeof(lenStr));
+ }
+ buffer_copy(&g_rab1_buffer, &g_rab2_buffer.buf[0], g_rab2_buffer.pos);
+ /* rab1 + rab2 is appended */
+ // rab1 is combined now ...
+
+ /*g_s1ap_buffer is having rab appended to it.. */
+
+ log_msg(LOG_INFO, "RAB1 payload length %d\n", g_rab1_buffer.pos);
+ if(g_rab1_buffer.pos <= 127)
+ {
+ datalen = g_rab1_buffer.pos;
+ buffer_copy(&(g_s1ap_buffer), &datalen, sizeof(datalen));
+ }
+ else
+ {
+ uint16_t rab1_pay_len = g_rab1_buffer.pos | 0x8000; // set MSB to 1
+ unsigned char lenStr[2];
+ lenStr[0] = rab1_pay_len >> 8;
+ lenStr[1] = rab1_pay_len & 0xff;
+ buffer_copy(&g_s1ap_buffer, lenStr, sizeof(lenStr));
+ }
+ buffer_copy(&g_s1ap_buffer, &g_rab1_buffer.buf[0], g_rab1_buffer.pos);
+ /* RAB is appended to s1ap payload now */
+
+ /* id-UESecurityCapabilities */
+ char ue_sec_capab[5] = {0x1c, 0x00, 0x0c, 0x00, 0x00};
+ protocolIe_Id = id_UESecurityCapabilities;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_s1ap_buffer, tmpStr, sizeof(protocolIe_Id));
+ protocolIe_criticality = CRITICALITY_REJECT;
+ buffer_copy(&g_s1ap_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+ datalen = 5;
+ buffer_copy(&g_s1ap_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_s1ap_buffer, ue_sec_capab, 5);
+
+ protocolIe_Id = id_SecurityKey;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_s1ap_buffer, tmpStr, sizeof(protocolIe_Id));
+ protocolIe_criticality = CRITICALITY_REJECT;
+ buffer_copy(&g_s1ap_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+ datalen = SECURITY_KEY_SIZE;
+ buffer_copy(&g_s1ap_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_s1ap_buffer, s1apPDU.value.data[5].val.sec_key,
+ SECURITY_KEY_SIZE);
+
+ /* Copy length to s1ap length field */
+ //datalen = g_s1ap_buffer.pos - s1ap_len_pos - 1;
+ //uint16_t s1aplen = g_s1ap_buffer.pos - s1ap_len_pos - 1;
+ log_msg(LOG_INFO, "S1AP payload length %d\n", g_s1ap_buffer.pos);
+ uint16_t s1aplen = g_s1ap_buffer.pos;
+ if(s1aplen <= 127 )
+ {
+ datalen = s1aplen;
+ buffer_copy(&g_ics_buffer, &datalen, sizeof(datalen));
+ }
+ else
+ {
+ s1aplen = g_s1ap_buffer.pos | 0x8000; // set MSB to 1
+ unsigned char lenStr[2];
+ lenStr[0] = s1aplen >> 8;
+ lenStr[1] = s1aplen & 0xff;
+ buffer_copy(&g_ics_buffer, lenStr, sizeof(lenStr));
+ }
+
+ /* this is my final s1ap buffer */
+ buffer_copy(&g_ics_buffer, &g_s1ap_buffer.buf[0], g_s1ap_buffer.pos);
+
+ free(s1apPDU.value.data[3].val.E_RABToBeSetupItemCtxtSUReq.nas.elements);
+ free(s1apPDU.value.data);
+
+ send_sctp_msg(g_icsReqInfo->enb_fd, g_ics_buffer.buf, g_ics_buffer.pos, 1);
+ log_msg(LOG_INFO,"Initial Context Setup Request sent successfully\n");
+ return SUCCESS;
+}
+
+void*
+icsreq_handler(void *data)
+{
+ log_msg(LOG_INFO, "icsreq handler ready.\n");
+
+
+ icsreq_processing((struct init_ctx_req_Q_msg *)data);
+
+
+ return NULL;
+}
diff --git a/src/s1ap/handlers/attach_id_req.c b/src/s1ap/handlers/attach_id_req.c
new file mode 100644
index 0000000..45b1dcc
--- /dev/null
+++ b/src/s1ap/handlers/attach_id_req.c
@@ -0,0 +1,213 @@
+/*
+* Copyright 2019-present Open Networking Foundation
+*
+* SPDX-License-Identifier: Apache-2.0
+*
+* 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 <stdio.h>
+#include <stdlib.h>
+#include <pthread.h>
+#include <string.h>
+#include <unistd.h>
+#include <stdint.h>
+
+#include "log.h"
+#include "err_codes.h"
+#include "s1ap.h"
+#include "message_queues.h"
+#include "ipc_api.h"
+
+#include "main.h"
+#include "sctp_conn.h"
+#include "msgType.h"
+
+
+
+/**
+* Get ProtocolIE value ID Request sent by mme-app
+*/
+static int
+get_attach_id_request_protoie_value(struct proto_IE *value,struct attachIdReq_info *g_attachIdReqInfo)
+{
+
+
+ value->no_of_IEs = ATTACH_ID_REQUEST_NO_OF_IES;
+
+ value->data = (proto_IEs *) malloc(ATTACH_ID_REQUEST_NO_OF_IES*
+ sizeof(proto_IEs));
+
+
+ value->data[0].val.mme_ue_s1ap_id = g_attachIdReqInfo->ue_idx;
+
+ value->data[1].val.enb_ue_s1ap_id = g_attachIdReqInfo->s1ap_enb_ue_id;
+
+
+ log_msg(LOG_INFO, "mme_ue_s1ap_id %d and enb_ue_s1ap_id %d\n",
+ g_attachIdReqInfo->ue_idx, g_attachIdReqInfo->s1ap_enb_ue_id);
+
+ /* TODO: Add enum for security header type */
+ value->data[2].val.nas.header.security_header_type = 0;
+ value->data[2].val.nas.header.proto_discriminator = EPSMobilityManagementMessages;
+ value->data[2].val.nas.header.message_type = IdentityRequest;
+ value->data[2].val.nas.header.nas_security_param = 0;
+
+ return SUCCESS;
+}
+
+
+/**
+* Stage specific message processing.
+*/
+static int
+s1ap_attach_id_req_processing(struct attachIdReq_info *g_attachIdReqInfo)
+{
+ struct Buffer g_buffer;
+ struct Buffer g_value_buffer;
+ struct Buffer g_nas_buffer;
+
+ struct s1ap_PDU s1apPDU= {0};
+
+
+ s1apPDU.procedurecode = id_downlinkNASTransport;
+ s1apPDU.criticality = CRITICALITY_IGNORE;
+
+ get_attach_id_request_protoie_value(&s1apPDU.value,g_attachIdReqInfo);
+
+ /* Copy values to buffer from s1apPDU */
+
+ g_buffer.pos = 0;
+
+ uint8_t initiating_message = 0; /* TODO: Add enum */
+ buffer_copy(&g_buffer, &initiating_message,
+ sizeof(initiating_message));
+
+ buffer_copy(&g_buffer, &s1apPDU.procedurecode,
+ sizeof(s1apPDU.procedurecode));
+
+ buffer_copy(&g_buffer, &s1apPDU.criticality,
+ sizeof(s1apPDU.criticality));
+
+ /* Copy values in g_value_buffer */
+ g_value_buffer.pos = 0;
+
+ /* TODO remove hardcoded values */
+ unsigned char chProtoIENo[3] = {0,0,3};
+
+ buffer_copy(&g_value_buffer, chProtoIENo, 3);
+
+ unsigned char tmpStr[4];
+ /* id-MME-UE-S1AP-ID */
+ uint16_t protocolIe_Id = id_MME_UE_S1AP_ID;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_value_buffer, tmpStr,
+ sizeof(protocolIe_Id));
+
+ uint8_t protocolIe_criticality = CRITICALITY_REJECT;
+ buffer_copy(&g_value_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+
+ uint8_t datalen = 2;
+
+ /* TODO needs proper handling*/
+ unsigned char mme_ue_id[3];
+ datalen = copyU16(mme_ue_id,
+ s1apPDU.value.data[0].val.mme_ue_s1ap_id);
+ buffer_copy(&g_value_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_value_buffer, mme_ue_id, datalen);
+
+ /* id-eNB-UE-S1AP-ID */
+
+ protocolIe_Id = id_eNB_UE_S1AP_ID;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_value_buffer, tmpStr,
+ sizeof(protocolIe_Id));
+
+ buffer_copy(&g_value_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+
+
+ /* TODO needs proper handling*/
+ unsigned char enb_ue_id[3];
+ datalen = copyU16(enb_ue_id,
+ s1apPDU.value.data[1].val.enb_ue_s1ap_id);
+ buffer_copy(&g_value_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_value_buffer, enb_ue_id, datalen);
+
+
+ /* id-NAS-PDU */
+ protocolIe_Id = id_NAS_PDU;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_value_buffer, tmpStr,
+ sizeof(protocolIe_Id));
+
+ buffer_copy(&g_value_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+
+ struct nasPDU *nas = &(s1apPDU.value.data[2].val.nas);
+ uint8_t value = (nas->header.security_header_type) |
+ nas->header.proto_discriminator;
+
+ g_nas_buffer.pos = 0;
+
+ buffer_copy(&g_nas_buffer, &value, sizeof(value));
+
+ buffer_copy(&g_nas_buffer, &nas->header.message_type,
+ sizeof(nas->header.message_type));
+
+ value = g_attachIdReqInfo->ue_type;
+ buffer_copy(&g_nas_buffer, &value, sizeof(value));
+
+ datalen = g_nas_buffer.pos + 1;
+
+ buffer_copy(&g_value_buffer, &datalen,
+ sizeof(datalen));
+
+ buffer_copy(&g_value_buffer, &g_nas_buffer.pos,
+ sizeof(g_nas_buffer.pos));
+
+
+ buffer_copy(&g_value_buffer, &g_nas_buffer,
+ g_nas_buffer.pos);
+
+ buffer_copy(&g_buffer, &g_value_buffer.pos,
+ sizeof(g_value_buffer.pos));
+
+ buffer_copy(&g_buffer, &g_value_buffer,
+ g_value_buffer.pos);
+
+ free(s1apPDU.value.data[2].val.nas.elements);
+ free(s1apPDU.value.data);
+
+ send_sctp_msg(g_attachIdReqInfo->enb_fd, g_buffer.buf, g_buffer.pos, 1);
+
+ return SUCCESS;
+}
+
+
+
+/**
+* Thread function for stage.
+*/
+void*
+idreq_handler(void *data)
+{
+
+ log_msg(LOG_INFO, "S1Ap attach Id Request handler ready.\n");
+
+ s1ap_attach_id_req_processing((struct attachIdReq_info *)data);
+
+ return NULL;
+}
+
diff --git a/src/s1ap/handlers/attach_id_resp.c b/src/s1ap/handlers/attach_id_resp.c
new file mode 100644
index 0000000..3c8c4c8
--- /dev/null
+++ b/src/s1ap/handlers/attach_id_resp.c
@@ -0,0 +1,96 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <pthread.h>
+
+#include "err_codes.h"
+#include "options.h"
+#include "ipc_api.h"
+#include "main.h"
+#include "s1ap.h"
+#include "s1ap_config.h"
+#include "sctp_conn.h"
+#include "s1ap_structs.h"
+#include "s1ap_msg_codes.h"
+#include "msgType.h"
+
+
+extern int g_enb_fd;
+extern ipc_handle ipc_S1ap_Hndl;
+extern struct time_stat g_attach_stats[];
+
+int
+s1_identity_resp_handler(struct proto_IE *s1_id_resp_ies)
+{
+ struct s1_incoming_msg_data_t id_resp= {0};
+
+ /*****Message structure***
+ */
+ log_msg(LOG_INFO, "Parse s1ap identity resp message:--\n");
+
+ /*Validate all eNB info*/
+
+ /*Add eNB info to hash*/
+
+ /*Create Q structure for stage 1 to MME.
+ contains init UE information.*/
+ id_resp.msg_type = id_response;
+ for(int i = 0; i < s1_id_resp_ies->no_of_IEs; i++)
+ {
+ switch(s1_id_resp_ies->data[i].IE_type)
+ {
+ case S1AP_IE_MME_UE_ID:
+ {
+ id_resp.ue_idx = s1_id_resp_ies->data[i].val.mme_ue_s1ap_id;
+ }break;
+ case S1AP_IE_NAS_PDU:
+ {
+ if(s1_id_resp_ies->data[i].val.nas.header.message_type != NAS_IDENTITY_RESPONSE)
+ {
+ id_resp.msg_data.identityResp_Q_msg_m.status = S1AP_IDENTITY_FAILED;
+ }
+ else
+ {
+ id_resp.msg_data.identityResp_Q_msg_m.status = SUCCESS;
+ }
+
+ memcpy(&(id_resp.msg_data.identityResp_Q_msg_m.IMSI),
+ &(s1_id_resp_ies->data[i].val.nas.elements[0].pduElement.IMSI),
+ BINARY_IMSI_LEN);
+ }break;
+ default:
+ log_msg(LOG_WARNING,"Unhandled IE In identification Response %d",s1_id_resp_ies->data[i].IE_type);
+ }
+ }
+ id_resp.destInstAddr = htonl(mmeAppInstanceNum_c);
+ id_resp.srcInstAddr = htonl(s1apAppInstanceNum_c);
+
+ //STIMER_GET_CURRENT_TP(g_attach_stats[s1_id_resp_ies->data[1].enb_ue_s1ap_id].auth_to_mme);
+ send_tipc_message(ipc_S1ap_Hndl, mmeAppInstanceNum_c, (char *)&id_resp, S1_READ_MSG_BUF_SIZE);
+
+ /*Send S1Setup response*/
+ log_msg(LOG_INFO, "Id resp send to mme-app stage3.\n");
+
+ //TODO: free IEs
+ return SUCCESS;
+}
+
+
diff --git a/src/s1ap/handlers/attach_initctxresp.c b/src/s1ap/handlers/attach_initctxresp.c
new file mode 100644
index 0000000..3c3404b
--- /dev/null
+++ b/src/s1ap/handlers/attach_initctxresp.c
@@ -0,0 +1,90 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ * Copyright (c) 2019, Infosys Ltd.
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <pthread.h>
+
+#include "err_codes.h"
+#include "options.h"
+#include "ipc_api.h"
+#include "main.h"
+#include "s1ap.h"
+#include "s1ap_config.h"
+#include "sctp_conn.h"
+#include "s1ap_structs.h"
+#include "s1ap_msg_codes.h"
+#include "msgType.h"
+
+
+extern int g_enb_fd;
+extern ipc_handle ipc_S1ap_Hndl;
+
+int
+s1_init_ctx_resp_handler(SuccessfulOutcome_t *msg)
+{
+ struct proto_IE s1_ics_ies;
+ struct s1_incoming_msg_data_t ics_resp= {0};
+
+ /*****Message structure****/
+ log_msg(LOG_INFO, "Parse int ctx s1ap response message:--\n");
+ /*parse_IEs(msg+2, &s1_ics_ies, S1AP_INITIAL_CTX_RESP_CODE);*/
+ convertInitCtxRspToProtoIe(msg, &s1_ics_ies);
+
+ ics_resp.msg_type = init_ctxt_response;
+
+ for(int i = 0; i < s1_ics_ies.no_of_IEs; i++)
+ {
+ switch(s1_ics_ies.data[i].IE_type)
+ {
+ case S1AP_IE_MME_UE_ID:
+ {
+ ics_resp.ue_idx = s1_ics_ies.data[i].val.mme_ue_s1ap_id;
+ }break;
+ case S1AP_ERAB_SETUP_CTX_SUR:
+ {
+ for(int j = 0; j < s1_ics_ies.data[i].val.erab.no_of_elements; j++)
+ {
+ /*TBD: Handle multiple erabs in ics rsp*/
+ ics_resp.msg_data.initctx_resp_Q_msg_m.transp_layer_addr = s1_ics_ies.data[i].val.erab.elements[j].su_res.transp_layer_addr;
+ ics_resp.msg_data.initctx_resp_Q_msg_m.gtp_teid = s1_ics_ies.data[i].val.erab.elements[j].su_res.gtp_teid;
+ break;
+ }
+ }break;
+ default:
+ log_msg(LOG_WARNING,"Unhandled IE");
+ }
+ }
+
+
+
+ ics_resp.destInstAddr = htonl(mmeAppInstanceNum_c);
+ ics_resp.srcInstAddr = htonl(s1apAppInstanceNum_c);
+ int i = send_tipc_message(ipc_S1ap_Hndl, mmeAppInstanceNum_c, (char *)&ics_resp, S1_READ_MSG_BUF_SIZE);
+
+ if (i < 0) {
+ log_msg(LOG_ERROR, "Error to write in s1_init_ctx_resp_handler\n");
+ }
+ /*Send S1Setup response*/
+ log_msg(LOG_INFO, "Init ctx resp send to mme-app stage7. Bytes send %d\n", i);
+
+ //TODO: free IEs
+ return SUCCESS;
+}
diff --git a/src/s1ap/handlers/attach_initue.c b/src/s1ap/handlers/attach_initue.c
new file mode 100644
index 0000000..f62394f
--- /dev/null
+++ b/src/s1ap/handlers/attach_initue.c
@@ -0,0 +1,174 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ * Copyright (c) 2019, Infosys Ltd.
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <pthread.h>
+
+#include "err_codes.h"
+#include "options.h"
+#include "ipc_api.h"
+#include "main.h"
+#include "s1ap.h"
+#include "s1ap_config.h"
+#include "sctp_conn.h"
+#include "s1ap_structs.h"
+#include "s1ap_msg_codes.h"
+#include "msgType.h"
+
+extern int g_enb_fd;
+extern ipc_handle ipc_S1ap_Hndl;
+extern struct time_stat g_attach_stats[];
+
+int
+s1_init_ue_handler(struct proto_IE *s1_init_ies, int enodeb_fd)
+{
+ struct s1_incoming_msg_data_t ue_info = {0};
+ int nas_index = 0;
+
+ /*****Message structure***
+ */
+ log_msg(LOG_INFO, "Parse s1ap initial UE message\n");
+
+ /*Validate all eNB info*/
+
+ /*Add eNB info to hash*/
+ //STIMER_GET_CURRENT_TP(g_attach_stats[s1_init_ies->data[0].enb_ue_s1ap_id].init_ue);
+
+ /*Create Q structure for stage 1 to MME.
+ contains init UE information.*/
+ ue_info.msg_type = attach_request;
+
+ ue_info.msg_data.ue_attach_info_m.enb_fd = enodeb_fd;
+ ue_info.msg_data.ue_attach_info_m.criticality = s1_init_ies->criticality;//TBD
+ for(int i = 0; i < s1_init_ies->no_of_IEs; i++)
+ {
+ switch(s1_init_ies->data[i].IE_type)
+ {
+ case S1AP_IE_ENB_UE_ID:
+ {
+ ue_info.msg_data.ue_attach_info_m.s1ap_enb_ue_id = s1_init_ies->data[i].val.enb_ue_s1ap_id;
+ }break;
+ case S1AP_IE_TAI:
+ {
+ memcpy(&(ue_info.msg_data.ue_attach_info_m.tai), &(s1_init_ies->data[i].val.tai), sizeof(struct TAI));
+ }break;
+ case S1AP_IE_UTRAN_CGI:
+ {
+ memcpy(&(ue_info.msg_data.ue_attach_info_m.utran_cgi), &(s1_init_ies->data[i].val.utran_cgi),
+ sizeof(struct CGI));
+ }break;
+ case S1AP_IE_NAS_PDU:
+ {
+ while(nas_index < s1_init_ies->data[i].val.nas.elements_len)
+ {
+ log_msg(LOG_INFO, "nasIndex %d, msgType %d\n",
+ nas_index,
+ s1_init_ies->data[i].val.nas.elements[nas_index].msgType);
+ ue_info.msg_data.ue_attach_info_m.seq_no = s1_init_ies->data[i].val.nas.header.seq_no;
+ switch(s1_init_ies->data[i].val.nas.elements[nas_index].msgType)
+ {
+ case NAS_IE_TYPE_ESM_MSG:
+ {
+ break;
+ }
+ case NAS_IE_TYPE_EPS_MOBILE_ID_IMSI:
+ {
+ ue_info.msg_data.ue_attach_info_m.flags = s1_init_ies->data[i].val.nas.flags;
+ if(UE_ID_IMSI(s1_init_ies->data[i].val.nas.flags))
+ {
+ memcpy(&(ue_info.msg_data.ue_attach_info_m.IMSI),
+ &(s1_init_ies->data[i].val.nas.elements[nas_index].pduElement.IMSI),
+ BINARY_IMSI_LEN);
+ }
+ else if(UE_ID_GUTI(s1_init_ies->data[i].val.nas.flags))
+ {
+ memcpy(&(ue_info.msg_data.ue_attach_info_m.mi_guti), &(s1_init_ies->data[i].val.nas.elements[nas_index].pduElement.mi_guti),
+ sizeof(struct guti));
+ }
+ break;
+ }
+ case NAS_IE_TYPE_UE_NETWORK_CAPABILITY:
+ {
+ memcpy(&(ue_info.msg_data.ue_attach_info_m.ue_net_capab),
+ &(s1_init_ies->data[i].val.nas.\
+ elements[nas_index].pduElement.ue_network),
+ sizeof(struct UE_net_capab));
+
+ break;
+ }
+ case NAS_IE_TYPE_MS_NETWORK_CAPABILITY:
+ {
+ memcpy(&(ue_info.msg_data.ue_attach_info_m.ms_net_capab),
+ &(s1_init_ies->data[i].val.nas.\
+ elements[nas_index].pduElement.ms_network),
+ sizeof(struct MS_net_capab));
+
+ break;
+ }
+ case NAS_IE_TYPE_TX_FLAG:
+ {
+ ue_info.msg_data.ue_attach_info_m.esm_info_tx_required =
+ s1_init_ies->data[i].val.nas.elements[nas_index].pduElement.esm_info_tx_required;
+ log_msg(LOG_INFO, "ESM info flag %d \n", ue_info.msg_data.ue_attach_info_m.esm_info_tx_required);
+ break;
+ }
+ case NAS_IE_TYPE_PTI:
+ {
+ ue_info.msg_data.ue_attach_info_m.pti =
+ s1_init_ies->data[i].val.nas.elements[nas_index].pduElement.pti;
+ break;
+ }
+ case NAS_IE_TYPE_PCO:
+ {
+ for(int pco=0; pco < 10; pco++)
+ {
+ ue_info.msg_data.ue_attach_info_m.pco_options[pco] =
+ s1_init_ies->data[i].val.nas.elements[nas_index].pduElement.pco_options[pco];
+ }
+ break;
+ }
+ default:
+ {
+ log_msg(LOG_INFO, "nas element not handled\n");
+ }
+ }
+
+ nas_index++;
+ }
+
+ }break;
+ default:
+ log_msg(LOG_WARNING,"Unhandled IE");
+ }
+ }
+
+ ue_info.destInstAddr = htonl(mmeAppInstanceNum_c);
+ ue_info.srcInstAddr = htonl(s1apAppInstanceNum_c);
+
+ send_tipc_message(ipc_S1ap_Hndl, mmeAppInstanceNum_c, (char *)&ue_info, S1_READ_MSG_BUF_SIZE);
+
+ /*Send S1Setup response*/
+ log_msg(LOG_INFO, "Send to mme-app stage1.\n");
+
+ return SUCCESS;
+}
+
+
diff --git a/src/s1ap/handlers/attach_reject.c b/src/s1ap/handlers/attach_reject.c
new file mode 100644
index 0000000..38c20dd
--- /dev/null
+++ b/src/s1ap/handlers/attach_reject.c
@@ -0,0 +1,231 @@
+/*
+* Copyright 2019-present Open Networking Foundation
+*
+* SPDX-License-Identifier: Apache-2.0
+*
+* 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 <stdio.h>
+#include <stdlib.h>
+#include <pthread.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "log.h"
+#include "err_codes.h"
+#include "s1ap.h"
+#include "message_queues.h"
+#include "ipc_api.h"
+#include "main.h"
+#include "sctp_conn.h"
+#include "msgType.h"
+
+
+
+
+/**
+* Get ProtocolIE value for Auth Request sent by mme-app
+*/
+static int
+get_attachReject_protoie_value(struct proto_IE *value, struct attachReqRej_info *g_attachReqRejInfo)
+{
+ value->no_of_IEs = AUTH_REQ_NO_OF_IES;
+
+ value->data = (proto_IEs *) malloc(ATTACH_REJECT_NO_OF_IES*
+ sizeof(proto_IEs));
+
+ value->data[0].val.mme_ue_s1ap_id = g_attachReqRejInfo->ue_idx;
+ value->data[1].val.enb_ue_s1ap_id = g_attachReqRejInfo->s1ap_enb_ue_id;
+
+ log_msg(LOG_INFO, "mme_ue_s1ap_id %d and enb_ue_s1ap_id %d\n",
+ g_attachReqRejInfo->ue_idx, g_attachReqRejInfo->s1ap_enb_ue_id);
+
+ /* TODO: Add enum for security header type */
+ value->data[2].val.nas.header.security_header_type = 0;
+ value->data[2].val.nas.header.proto_discriminator = EPSMobilityManagementMessages;
+ value->data[2].val.nas.header.message_type = AttachReject;
+ value->data[2].val.nas.header.nas_security_param = 0;
+
+#if 0
+ value->data[2].nas.elements = (nas_pdu_elements *)
+ malloc(AUTH_REQ_NO_OF_NAS_IES * sizeof(nas_pdu_elements));
+
+ memcpy(value->data[2].nas.elements[0].rand,
+ g_attachReqRejInfo->rand, NAS_RAND_SIZE);
+ memcpy(value->data[2].nas.elements[1].autn,
+ g_attachReqRejInfo->autn, NAS_AUTN_SIZE);
+#endif
+
+
+ return SUCCESS;
+}
+
+
+/**
+* Stage specific message processing.
+*/
+static int
+s1ap_attach_reject_processing(struct attachReqRej_info *g_attachReqRejInfo)
+{
+ struct Buffer g_buffer;
+ struct Buffer g_value_buffer;
+ struct Buffer g_nas_buffer;
+ struct s1ap_PDU s1apPDU= {0};
+
+
+
+ /* Assigning values to s1apPDU */
+ s1apPDU.procedurecode = id_downlinkNASTransport;
+ s1apPDU.criticality = CRITICALITY_IGNORE;
+
+ get_attachReject_protoie_value(&s1apPDU.value,g_attachReqRejInfo);
+
+ /* Copy values to buffer from s1apPDU */
+
+ g_buffer.pos = 0;
+
+ uint8_t initiating_message = 0; /* TODO: Add enum */
+ buffer_copy(&g_buffer, &initiating_message,
+ sizeof(initiating_message));
+
+ buffer_copy(&g_buffer, &s1apPDU.procedurecode,
+ sizeof(s1apPDU.procedurecode));
+
+ buffer_copy(&g_buffer, &s1apPDU.criticality,
+ sizeof(s1apPDU.criticality));
+
+ /* Copy values in g_value_buffer */
+ g_value_buffer.pos = 0;
+
+ /* TODO remove hardcoded values */
+ unsigned char chProtoIENo[3] = {0,0,3};
+
+ buffer_copy(&g_value_buffer, chProtoIENo, 3);
+
+ unsigned char tmpStr[4];
+
+ /* id-MME-UE-S1AP-ID */
+ uint16_t protocolIe_Id = id_MME_UE_S1AP_ID;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_value_buffer, tmpStr,
+ sizeof(protocolIe_Id));
+
+ uint8_t protocolIe_criticality = CRITICALITY_REJECT;
+ buffer_copy(&g_value_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+
+ uint8_t datalen = 2;
+
+ /* TODO needs proper handling*/
+ unsigned char mme_ue_id[3];
+ datalen = copyU16(mme_ue_id,
+ s1apPDU.value.data[0].val.mme_ue_s1ap_id);
+ buffer_copy(&g_value_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_value_buffer, mme_ue_id, datalen);
+
+ /* id-eNB-UE-S1AP-ID */
+
+ protocolIe_Id = id_eNB_UE_S1AP_ID;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_value_buffer, tmpStr,
+ sizeof(protocolIe_Id));
+
+ buffer_copy(&g_value_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+
+
+ /* TODO needs proper handling*/
+ unsigned char enb_ue_id[3];
+ datalen = copyU16(enb_ue_id,
+ s1apPDU.value.data[1].val.enb_ue_s1ap_id);
+ buffer_copy(&g_value_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_value_buffer, enb_ue_id, datalen);
+
+ /* id-NAS-PDU */
+ protocolIe_Id = id_NAS_PDU;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_value_buffer, tmpStr,
+ sizeof(protocolIe_Id));
+
+ buffer_copy(&g_value_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+
+ struct nasPDU *nas = &(s1apPDU.value.data[2].val.nas);
+ uint8_t value = (nas->header.security_header_type) |
+ nas->header.proto_discriminator;
+
+ g_nas_buffer.pos = 0;
+
+ buffer_copy(&g_nas_buffer, &value, sizeof(value));
+
+ buffer_copy(&g_nas_buffer, &nas->header.message_type,
+ sizeof(nas->header.message_type));
+
+#if 0
+ buffer_copy(&g_nas_buffer, &nas->header.nas_security_param,
+ sizeof(nas->header.nas_security_param));
+
+#endif
+ value = 0x09; // UE identity can not be derived by the network
+ buffer_copy(&g_nas_buffer, &value, sizeof(value));
+
+#if 0
+ buffer_copy(&g_nas_buffer, &nas->elements[0].pduElement.rand,
+ sizeof(nas->elements[0].pduElement.rand));
+
+ datalen = 16;
+ buffer_copy(&g_nas_buffer, &datalen, sizeof(datalen));
+
+ buffer_copy(&g_nas_buffer, &nas->elements[1].pduElement.autn,
+ sizeof(nas->elements[1].pduElement.autn));
+
+ /* Done with filling NAS message */
+#endif
+ datalen = g_nas_buffer.pos + 1;
+
+ buffer_copy(&g_value_buffer, &datalen,
+ sizeof(datalen));
+
+ buffer_copy(&g_value_buffer, &g_nas_buffer.pos,
+ sizeof(g_nas_buffer.pos));
+
+
+ buffer_copy(&g_value_buffer, &g_nas_buffer,
+ g_nas_buffer.pos);
+
+ buffer_copy(&g_buffer, &g_value_buffer.pos,
+ sizeof(g_value_buffer.pos));
+
+ buffer_copy(&g_buffer, &g_value_buffer,
+ g_value_buffer.pos);
+
+ free(s1apPDU.value.data[2].val.nas.elements);
+ free(s1apPDU.value.data);
+ send_sctp_msg(g_attachReqRejInfo->enb_fd, g_buffer.buf, g_buffer.pos,1);
+ return SUCCESS;
+}
+
+
+void*
+attach_reject_handler(void *data)
+{
+
+ log_msg(LOG_INFO, "S1Ap attach Reject handler ready.\n");
+
+s1ap_attach_reject_processing((struct attachReqRej_info *)data);
+
+
+ return NULL;
+}
+
diff --git a/src/s1ap/handlers/attach_secmoderesp.c b/src/s1ap/handlers/attach_secmoderesp.c
new file mode 100644
index 0000000..0215075
--- /dev/null
+++ b/src/s1ap/handlers/attach_secmoderesp.c
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ * Copyright (c) 2019, Infosys Ltd.
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <pthread.h>
+
+#include "err_codes.h"
+#include "options.h"
+#include "ipc_api.h"
+#include "main.h"
+#include "s1ap.h"
+#include "s1ap_config.h"
+#include "sctp_conn.h"
+#include "s1ap_structs.h"
+#include "s1ap_msg_codes.h"
+#include "msgType.h"
+
+
+extern int g_enb_fd;
+extern ipc_handle ipc_S1ap_Hndl;
+
+int
+s1_secmode_resp_handler(struct proto_IE *s1_sec_resp_ies)
+{
+ //TODO: use static instead of synamic for perf.
+ struct s1_incoming_msg_data_t secmode_resp= {0};
+
+ /*****Message structure***
+ */
+ log_msg(LOG_INFO, "Parse s1ap sec mode complete message:--\n");
+
+ /*Validate all eNB info*/
+
+ /*Add eNB info to hash*/
+
+ /*Create Q structure for stage 1 to MME.
+ contains init UE information.*/
+ secmode_resp.msg_type = sec_mode_complete;
+
+ for(int i = 0; i < s1_sec_resp_ies->no_of_IEs; i++)
+ {
+ switch(s1_sec_resp_ies->data[i].IE_type)
+ {
+ case S1AP_IE_MME_UE_ID:
+ {
+ secmode_resp.ue_idx = s1_sec_resp_ies->data[i].val.mme_ue_s1ap_id;
+ }break;
+ case S1AP_IE_NAS_PDU:
+ {
+ if(s1_sec_resp_ies->data[i].val.nas.header.message_type != NAS_SEC_MODE_COMPLETE)
+ {
+ secmode_resp.msg_data.secmode_resp_Q_msg_m.status = S1AP_SECMODE_FAILED;//Error in authentication
+ }
+ else
+ {
+ secmode_resp.msg_data.secmode_resp_Q_msg_m.status = SUCCESS;
+ }
+
+ }break;
+ default:
+ log_msg(LOG_WARNING,"Unhandled IE");
+ }
+ }
+
+ /*Copy xres from response, send to mme for verification*/
+ //...
+ //auth_res.res.len = a1_secmode_resp_ies[2].data.nas.authresp_len;
+ //memcpy(&(auth_res.res.val, s1_sec_resp_ies[2].data.nas.RES, authres.res.len);
+
+ secmode_resp.destInstAddr = htonl(mmeAppInstanceNum_c);
+ secmode_resp.srcInstAddr = htonl(s1apAppInstanceNum_c);
+ send_tipc_message(ipc_S1ap_Hndl, mmeAppInstanceNum_c, (char *)&secmode_resp, S1_READ_MSG_BUF_SIZE);
+
+ /*Send S1Setup response*/
+ log_msg(LOG_INFO, "Auth resp send to mme-app stage4.\n");
+
+ //TODO: free IEs
+ return SUCCESS;
+}
+
diff --git a/src/s1ap/handlers/attach_secreq.c b/src/s1ap/handlers/attach_secreq.c
new file mode 100644
index 0000000..8dfff86
--- /dev/null
+++ b/src/s1ap/handlers/attach_secreq.c
@@ -0,0 +1,293 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ * Copyright (c) 2019, Infosys Ltd.
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <pthread.h>
+#include <string.h>
+#include <unistd.h>
+#include <stdint.h>
+
+#include "err_codes.h"
+#include "message_queues.h"
+#include "ipc_api.h"
+#include "log.h"
+#include "main.h"
+#include "s1ap.h"
+#include "sctp_conn.h"
+#include "msgType.h"
+#include "snow_3g.h"
+
+/**
+* Get ProtocolIE value for Sec Request sent by mme-app
+*/
+static int
+get_secreq_protoie_value(struct proto_IE *value, struct sec_mode_Q_msg * g_secReqInfo)
+{
+ value->no_of_IEs = SEC_MODE_NO_OF_IES;
+
+ value->data = (proto_IEs *) malloc(SEC_MODE_NO_OF_IES *
+ sizeof(proto_IEs));
+
+ value->data[0].val.mme_ue_s1ap_id = g_secReqInfo->ue_idx;
+ value->data[1].val.enb_ue_s1ap_id = g_secReqInfo->enb_s1ap_ue_id;
+
+ value->data[2].val.nas.header.security_header_type =
+ IntegrityProtectedEPSSecCntxt;
+
+ value->data[2].val.nas.header.proto_discriminator =
+ EPSMobilityManagementMessages;
+
+ /* placeholder for mac. mac value will be calculated later */
+ uint8_t mac[MAC_SIZE] = {0};
+ memcpy(value->data[2].val.nas.header.mac, mac, MAC_SIZE);
+
+ value->data[2].val.nas.header.seq_no = g_secReqInfo->dl_seq_no;
+
+ value->data[2].val.nas.header.message_type = SecurityModeCommand;
+
+ value->data[2].val.nas.header.security_encryption_algo = Algo_EEA0;
+
+ value->data[2].val.nas.header.security_integrity_algo = Algo_128EIA1;
+
+ /* Security Param (1 octet) =
+ * Spare half octet, Type of Security, NAS KSI
+ * TODO: Remove hard coded value
+ */
+ value->data[2].val.nas.header.nas_security_param = AUTHREQ_NAS_SECURITY_PARAM;
+
+ value->data[2].val.nas.elements_len = SEC_MODE_NO_OF_NAS_IES;
+
+ value->data[2].val.nas.elements = (nas_pdu_elements *)
+ malloc(SEC_MODE_NO_OF_NAS_IES * sizeof(nas_pdu_elements));
+
+ value->data[2].val.nas.elements->pduElement.ue_network.len =
+ g_secReqInfo->ue_network.len;
+ if(g_secReqInfo->ue_network.len >= 4)
+ {
+ /*Copy first 4 bytes of security algo info*/
+ memcpy(value->data[2].val.nas.elements->pduElement.ue_network.capab,
+ g_secReqInfo->ue_network.capab, 4);
+
+ log_msg(LOG_DEBUG, "UE network length : %d", g_secReqInfo->ue_network.len);
+ if(g_secReqInfo->ms_net_capab.pres == true)
+ {
+ /*The MS Network capability contains the GEA
+ * capability. The MSB of 1st Byte and the 2nd to
+ * 7th Bit of 2nd byte contain the GEA info.
+ * Thus the masks 0x7F : for GEA/1
+ * and mask 0x7D: for GEA2 -GEA7
+ */
+ log_msg(LOG_DEBUG, "MS network present");
+ value->data[2].val.nas.elements->pduElement.ue_network.len = 5;
+ unsigned char val = 0x00;
+ val = g_secReqInfo->ms_net_capab.capab[0]&0x80;
+ val |= g_secReqInfo->ms_net_capab.capab[1]&0x7E;
+ val >>= 1;
+ value->data[2].val.nas.elements->pduElement.ue_network.capab[4] = val;
+ }
+ else
+ {
+ /*If MS capability is not present. Then only
+ * Capability till UMTS Algorithms is sent.*/
+ log_msg(LOG_DEBUG, "MS network not present");
+ value->data[2].val.nas.elements->pduElement.ue_network.len = 4;
+ }
+ }
+ else
+ {
+ /*Copy as much info of UE network capability
+ * as received.
+ */
+ log_msg(LOG_DEBUG, "UE network length again: %d", g_secReqInfo->ue_network.len);
+ memcpy(value->data[2].val.nas.elements->pduElement.ue_network.capab,
+ g_secReqInfo->ue_network.capab, g_secReqInfo->ue_network.len);
+ }
+
+ return SUCCESS;
+}
+
+
+/**
+* Stage specific message processing.
+*/
+static int
+secreq_processing(struct sec_mode_Q_msg * g_secReqInfo)
+{
+ Buffer g_sec_buffer;
+ Buffer g_sec_value_buffer;
+ Buffer g_sec_nas_buffer;
+
+ unsigned char tmpStr[4];
+ struct s1ap_PDU s1apPDU= {0};
+ uint8_t mac_data_pos;
+
+ s1apPDU.procedurecode = id_downlinkNASTransport;
+ s1apPDU.criticality = CRITICALITY_IGNORE;
+
+ get_secreq_protoie_value(&s1apPDU.value, g_secReqInfo);
+
+ /* Copy values to g_sec_nas_buffer */
+
+ /* id-NAS-PDU */
+ g_sec_nas_buffer.pos = 0;
+ nasPDU nas = s1apPDU.value.data[2].val.nas;
+
+ unsigned char value = (nas.header.security_header_type << 4 |
+ nas.header.proto_discriminator);
+
+ buffer_copy(&g_sec_nas_buffer, &value, sizeof(value));
+
+ /* placeholder for mac. mac value will be calculated later */
+ buffer_copy(&g_sec_nas_buffer, &nas.header.mac, MAC_SIZE);
+
+ mac_data_pos = g_sec_nas_buffer.pos;
+
+ buffer_copy(&g_sec_nas_buffer, &nas.header.seq_no,
+ sizeof(nas.header.seq_no));
+
+ nas.header.security_header_type = Plain;
+ value = nas.header.security_header_type |
+ nas.header.proto_discriminator;
+ buffer_copy(&g_sec_nas_buffer, &value, sizeof(value));
+
+ buffer_copy(&g_sec_nas_buffer, &nas.header.message_type,
+ sizeof(nas.header.message_type));
+
+ value = (nas.header.security_encryption_algo << 4 |
+ nas.header.security_integrity_algo);
+ buffer_copy(&g_sec_nas_buffer, &value, sizeof(value));
+
+ buffer_copy(&g_sec_nas_buffer, &nas.header.nas_security_param,
+ sizeof(nas.header.nas_security_param));
+
+ buffer_copy(&g_sec_nas_buffer, &nas.elements->pduElement.ue_network.len,
+ sizeof(nas.elements->pduElement.ue_network.len));
+
+ buffer_copy(&g_sec_nas_buffer, &nas.elements->pduElement.ue_network.capab,
+ nas.elements->pduElement.ue_network.len);
+
+ /* Calculate mac */
+ uint8_t direction = 1;
+ uint8_t bearer = 0;
+
+ calculate_mac(g_secReqInfo->int_key, nas.header.seq_no,
+ direction, bearer, &g_sec_nas_buffer.buf[mac_data_pos],
+ g_sec_nas_buffer.pos - mac_data_pos,
+ &g_sec_nas_buffer.buf[mac_data_pos - MAC_SIZE]);
+
+ /* Copy values in g_sec_value_buffer */
+ g_sec_value_buffer.pos = 0;
+
+ /* TODO remove hardcoded values */
+ char chProtoIENo[3] = {0,0,3};
+ buffer_copy(&g_sec_value_buffer, chProtoIENo, 3);
+
+ /* id-MME-UE-S1AP-ID */
+ uint16_t protocolIe_Id = id_MME_UE_S1AP_ID;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_sec_value_buffer, tmpStr,
+ sizeof(protocolIe_Id));
+
+ unsigned char protocolIe_criticality = CRITICALITY_REJECT;
+ buffer_copy(&g_sec_value_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+
+ unsigned char datalen = 2;
+
+ /* TODO need to add proper handling*/
+ unsigned char mme_ue_id[3];
+ datalen = copyU16(mme_ue_id, s1apPDU.value.data[0].val.mme_ue_s1ap_id);
+ buffer_copy(&g_sec_value_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_sec_value_buffer, mme_ue_id, datalen);
+
+ /* id-eNB-UE-S1AP-ID */
+ protocolIe_Id = id_eNB_UE_S1AP_ID;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_sec_value_buffer, tmpStr,
+ sizeof(protocolIe_Id));
+
+ buffer_copy(&g_sec_value_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+
+ /* TODO needs proper handling*/
+ unsigned char enb_ue_id[3];
+ datalen = copyU16(enb_ue_id, s1apPDU.value.data[1].val.enb_ue_s1ap_id);
+ buffer_copy(&g_sec_value_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_sec_value_buffer, enb_ue_id, datalen);
+
+ /* id-NAS-PDU */
+ protocolIe_Id = id_NAS_PDU;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_sec_value_buffer, tmpStr,
+ sizeof(protocolIe_Id));
+
+ buffer_copy(&g_sec_value_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+
+
+ datalen = g_sec_nas_buffer.pos + 1;
+ buffer_copy(&g_sec_value_buffer, &datalen,
+ sizeof(datalen));
+
+ buffer_copy(&g_sec_value_buffer, &g_sec_nas_buffer.pos,
+ sizeof(g_sec_nas_buffer.pos));
+
+ buffer_copy(&g_sec_value_buffer, &g_sec_nas_buffer,
+ g_sec_nas_buffer.pos);
+
+ /* Copy values in g_sec_buffer */
+ g_sec_buffer.pos = 0;
+
+ unsigned char initiating_message = 0; /* TODO: Add enum */
+ buffer_copy(&g_sec_buffer, &initiating_message,
+ sizeof(initiating_message));
+
+ buffer_copy(&g_sec_buffer, &s1apPDU.procedurecode,
+ sizeof(s1apPDU.procedurecode));
+
+ buffer_copy(&g_sec_buffer, &s1apPDU.criticality,
+ sizeof(s1apPDU.criticality));
+
+ buffer_copy(&g_sec_buffer, &g_sec_value_buffer.pos,
+ sizeof(g_sec_value_buffer.pos));
+
+ buffer_copy(&g_sec_buffer, &g_sec_value_buffer,
+ g_sec_value_buffer.pos);
+
+ free(s1apPDU.value.data[2].val.nas.elements);
+ free(s1apPDU.value.data);
+ //STIMER_GET_CURRENT_TP(g_attach_stats[s1apPDU.value.data[1].enb_ue_s1ap_id].secreq_out);
+
+ send_sctp_msg(g_secReqInfo->enb_fd, g_sec_buffer.buf, g_sec_buffer.pos, 1);
+
+ return SUCCESS;
+}
+
+/**
+* Thread function for stage.
+*/
+void*
+secreq_handler(void *data)
+{
+ log_msg(LOG_INFO, "SecReq handler ready.\n");
+
+ secreq_processing((struct sec_mode_Q_msg *)data);
+
+ return NULL;
+}
diff --git a/src/s1ap/handlers/ctxrelease_cmp.c b/src/s1ap/handlers/ctxrelease_cmp.c
new file mode 100644
index 0000000..009f23d
--- /dev/null
+++ b/src/s1ap/handlers/ctxrelease_cmp.c
@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) 2019, Infosys Ltd.
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <pthread.h>
+
+#include "err_codes.h"
+#include "options.h"
+#include "ipc_api.h"
+#include "main.h"
+#include "s1ap.h"
+#include "s1ap_config.h"
+#include "sctp_conn.h"
+#include "s1ap_structs.h"
+#include "s1ap_msg_codes.h"
+#include "msgType.h"
+
+
+extern int g_enb_fd;
+extern ipc_handle ipc_S1ap_Hndl;
+
+int
+s1_ctx_release_complete_handler(SuccessfulOutcome_t *msg)
+{
+ struct s1_incoming_msg_data_t release_complete= {0};
+ struct proto_IE s1_ctx_release_ies;
+
+ log_msg(LOG_INFO, "Parse s1ap context release complete message:--\n");
+
+ convertUeCtxRelComplToProtoIe(msg, &s1_ctx_release_ies);
+
+ /*TODO: Validate all eNB info*/
+ for(int i = 0; i < s1_ctx_release_ies.no_of_IEs; i++)
+ {
+ switch(s1_ctx_release_ies.data[i].IE_type)
+ {
+ case S1AP_IE_MME_UE_ID:
+ {
+ release_complete.ue_idx = s1_ctx_release_ies.data[i].val.mme_ue_s1ap_id;
+ }break;
+ default:
+ log_msg(LOG_WARNING,"Unhandled IE");
+ }
+ }
+
+ release_complete.msg_type = s1_release_complete;
+ release_complete.destInstAddr = htonl(mmeAppInstanceNum_c);
+ release_complete.srcInstAddr = htonl(s1apAppInstanceNum_c);
+ int i = 0;
+ i = send_tipc_message(ipc_S1ap_Hndl,mmeAppInstanceNum_c,
+ (char *)&release_complete,
+ S1_READ_MSG_BUF_SIZE);
+ if (i < 0) {
+
+ log_msg(LOG_ERROR,"Error To write in s1_ctx_release_code_handler\n");
+ }
+
+ log_msg(LOG_INFO, "Ctx Release complete sent to mme-app."
+ "Bytes sent %d\n", i);
+
+ //TODO: free IEs
+ return SUCCESS;
+}
+
diff --git a/src/s1ap/handlers/ctxrelease_req.c b/src/s1ap/handlers/ctxrelease_req.c
new file mode 100644
index 0000000..2a9305a
--- /dev/null
+++ b/src/s1ap/handlers/ctxrelease_req.c
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2019, Infosys Ltd.
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <pthread.h>
+
+#include "err_codes.h"
+#include "options.h"
+#include "ipc_api.h"
+#include "main.h"
+#include "s1ap.h"
+#include "s1ap_config.h"
+#include "sctp_conn.h"
+#include "s1ap_structs.h"
+#include "s1ap_msg_codes.h"
+#include "msgType.h"
+
+
+extern int g_enb_fd;
+extern ipc_handle ipc_S1ap_Hndl;
+
+int
+s1_ctx_release_request_handler(InitiatingMessage_t *msg)
+{
+ struct s1_incoming_msg_data_t release_request= {0};
+ struct proto_IE s1_ctx_rel_req_ies;
+
+ log_msg(LOG_INFO, "Parse s1ap context release request message:--\n");
+
+ convertUeCtxRelReqToProtoIe(msg, &s1_ctx_rel_req_ies);
+
+ /*TODO: Validate all eNB info*/
+ for(int i = 0; i < s1_ctx_rel_req_ies.no_of_IEs; i++)
+ {
+ switch(s1_ctx_rel_req_ies.data[i].IE_type)
+ {
+ case S1AP_IE_MME_UE_ID:
+ {
+ release_request.ue_idx = s1_ctx_rel_req_ies.data[i].val.mme_ue_s1ap_id;
+ }break;
+ default:
+ log_msg(LOG_WARNING,"Unhandled IE.\n");
+ }
+ }
+
+
+ release_request.msg_type = s1_release_request;
+ release_request.destInstAddr = htonl(mmeAppInstanceNum_c);
+ release_request.srcInstAddr = htonl(s1apAppInstanceNum_c);
+ int i = 0;
+ i = send_tipc_message(ipc_S1ap_Hndl,mmeAppInstanceNum_c,
+ (char *)&release_request,
+ S1_READ_MSG_BUF_SIZE);
+
+ if (i < 0) {
+
+ log_msg(LOG_ERROR,"Error To write in s1_ctx_release_request_handler\n");
+ }
+
+ log_msg(LOG_INFO, "Ctx Release request sent to mme-app."
+ "Bytes send %d\n", i);
+
+ //TODO: free IEs
+ return SUCCESS;
+}
diff --git a/src/s1ap/handlers/ctxrelease_resp.c b/src/s1ap/handlers/ctxrelease_resp.c
new file mode 100644
index 0000000..4489ae4
--- /dev/null
+++ b/src/s1ap/handlers/ctxrelease_resp.c
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ * Copyright (c) 2019, Infosys Ltd.
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <pthread.h>
+
+#include "err_codes.h"
+#include "options.h"
+#include "ipc_api.h"
+#include "main.h"
+#include "s1ap.h"
+#include "s1ap_config.h"
+#include "sctp_conn.h"
+#include "s1ap_structs.h"
+#include "s1ap_msg_codes.h"
+#include "msgType.h"
+
+
+extern int g_enb_fd;
+extern ipc_handle ipc_S1ap_Hndl;
+
+int
+s1_ctx_release_resp_handler(SuccessfulOutcome_t *msg)
+{
+ struct s1_incoming_msg_data_t release_complete= {0};
+ struct proto_IE s1_ctx_release_ies;
+
+ log_msg(LOG_INFO, "Parse s1ap context release complete message:--\n");
+
+ convertUeCtxRelComplToProtoIe(msg, &s1_ctx_release_ies);
+
+ /*TODO: Validate all eNB info*/
+ for(int i = 0; i < s1_ctx_release_ies.no_of_IEs; i++)
+ {
+ switch(s1_ctx_release_ies.data[i].IE_type)
+ {
+ case S1AP_IE_MME_UE_ID:
+ {
+ release_complete.ue_idx = s1_ctx_release_ies.data[i].val.mme_ue_s1ap_id;
+ }break;
+ default:
+ log_msg(LOG_WARNING,"Unhandled IE");
+ }
+ }
+
+ release_complete.msg_type = s1_release_complete;
+ release_complete.destInstAddr = htonl(mmeAppInstanceNum_c);
+ release_complete.srcInstAddr = htonl(s1apAppInstanceNum_c);
+ int i = 0;
+ i = send_tipc_message(ipc_S1ap_Hndl,mmeAppInstanceNum_c,
+ (char *)&release_complete,
+ S1_READ_MSG_BUF_SIZE);
+ if (i < 0) {
+
+ log_msg(LOG_ERROR,"Error To write in s1_ctx_release_code_handler\n");
+ }
+
+ log_msg(LOG_INFO, "Ctx Release complete sent to mme-app."
+ "Bytes sent %d\n", i);
+
+ //TODO: free IEs
+ return SUCCESS;
+}
+
diff --git a/src/s1ap/handlers/detach_accept.c b/src/s1ap/handlers/detach_accept.c
new file mode 100644
index 0000000..b0e8c1f
--- /dev/null
+++ b/src/s1ap/handlers/detach_accept.c
@@ -0,0 +1,328 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <pthread.h>
+#include <string.h>
+#include <unistd.h>
+#include <stdint.h>
+
+#include "log.h"
+#include "err_codes.h"
+#include "message_queues.h"
+#include "ipc_api.h"
+#include "s1ap.h"
+#include "s1ap_config.h"
+#include "main.h"
+#include "msgType.h"
+
+static int
+get_detach_accept_protoie_value(struct proto_IE *value, struct detach_accept_Q_msg *g_acptReqInfo)
+{
+ uint8_t ieCnt = 0;
+
+ value->no_of_IEs = DTCH_ACCEPT_NO_OF_IES;
+
+ value->data = (proto_IEs *) malloc(DTCH_ACCEPT_NO_OF_IES *
+ sizeof(proto_IEs));
+
+ value->data[ieCnt].val.mme_ue_s1ap_id = g_acptReqInfo->ue_idx;
+ ieCnt++;
+
+ value->data[ieCnt].val.enb_ue_s1ap_id = g_acptReqInfo->enb_s1ap_ue_id;
+ ieCnt++;
+
+ struct nasPDU *nas = &(value->data[ieCnt].val.nas);
+ nas->header.security_header_type = IntegrityProtectedCiphered;
+ nas->header.proto_discriminator = EPSMobilityManagementMessages;
+
+ /* placeholder for mac. mac value will be calculated later */
+ uint8_t mac[MAC_SIZE] = {0};
+ memcpy(nas->header.mac, mac, MAC_SIZE);
+
+ nas->header.seq_no = g_acptReqInfo->dl_seq_no;
+ nas->header.message_type = DetachAccept;
+
+ ieCnt++;
+
+ return SUCCESS;
+}
+
+/**
+* Stage specific message processing.
+*/
+static int
+detach_accept_processing(struct detach_accept_Q_msg *g_acptReqInfo)
+{
+ unsigned char tmpStr[4];
+ struct s1ap_PDU s1apPDU= {0};
+ uint16_t protocolIe_Id;
+ uint8_t protocolIe_criticality = CRITICALITY_REJECT;
+ uint8_t initiating_msg = 0;
+ uint8_t datalen = 0;
+ uint8_t s1ap_len_pos;
+ uint8_t nas_len_pos;
+ uint8_t u8value = 0;
+ uint8_t mac_data_pos;
+
+ Buffer g_acpt_buffer;
+
+ s1apPDU.procedurecode = id_downlinkNASTransport;
+ s1apPDU.criticality = CRITICALITY_IGNORE;
+
+ get_detach_accept_protoie_value(&s1apPDU.value, g_acptReqInfo);
+
+ g_acpt_buffer.pos = 0;
+
+ buffer_copy(&g_acpt_buffer, &initiating_msg,
+ sizeof(initiating_msg));
+
+ buffer_copy(&g_acpt_buffer, &s1apPDU.procedurecode,
+ sizeof(s1apPDU.procedurecode));
+
+ buffer_copy(&g_acpt_buffer, &s1apPDU.criticality,
+ sizeof(s1apPDU.criticality));
+
+ s1ap_len_pos = g_acpt_buffer.pos;
+
+ /* length of Detach Accept */
+ u8value = 0;
+ buffer_copy(&g_acpt_buffer, &u8value, sizeof(u8value));
+
+ /* TODO remove hardcoded values */
+ uint8_t chProtoIENo[3] = {0,0,3};
+ buffer_copy(&g_acpt_buffer, chProtoIENo, 3);
+
+ /* id-MME-UE-S1AP-ID */
+ protocolIe_Id = id_MME_UE_S1AP_ID;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_acpt_buffer, tmpStr, sizeof(protocolIe_Id));
+ buffer_copy(&g_acpt_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+ datalen = 2;
+ /* TODO need to add proper handling*/
+ unsigned char mme_ue_id[3];
+ datalen = copyU16(mme_ue_id, s1apPDU.value.data[0].val.mme_ue_s1ap_id);
+ buffer_copy(&g_acpt_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_acpt_buffer, mme_ue_id, datalen);
+
+ /* id-eNB-UE-S1AP-ID */
+ protocolIe_Id = id_eNB_UE_S1AP_ID;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_acpt_buffer, tmpStr, sizeof(protocolIe_Id));
+ buffer_copy(&g_acpt_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+ /* TODO needs proper handling*/
+ unsigned char enb_ue_id[3];
+ datalen = copyU16(enb_ue_id, s1apPDU.value.data[1].val.enb_ue_s1ap_id);
+ buffer_copy(&g_acpt_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_acpt_buffer, enb_ue_id, datalen);
+
+ /* NAS PDU start */
+ protocolIe_Id = id_NAS_PDU;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_acpt_buffer, tmpStr, sizeof(protocolIe_Id));
+ buffer_copy(&g_acpt_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+
+ nas_len_pos = g_acpt_buffer.pos;
+
+ datalen = 0;
+ buffer_copy(&g_acpt_buffer, &datalen, sizeof(datalen));
+
+ buffer_copy(&g_acpt_buffer, &datalen, sizeof(datalen));
+
+ nas_pdu_header *nas_hdr = &(s1apPDU.value.data[2].val.nas.header);
+
+ /* security header and protocol discriminator */
+ u8value = (nas_hdr->security_header_type << 4 |
+ nas_hdr->proto_discriminator);
+ buffer_copy(&g_acpt_buffer, &u8value, sizeof(u8value));
+
+ /* mac */
+ /* placeholder for mac. mac value will be calculated later */
+ buffer_copy(&g_acpt_buffer, nas_hdr->mac, MAC_SIZE);
+ mac_data_pos = g_acpt_buffer.pos;
+
+ /* sequence number */
+ buffer_copy(&g_acpt_buffer, &(nas_hdr->seq_no),
+ sizeof(nas_hdr->seq_no));
+
+ /* security header and protocol discriminator */
+ nas_hdr->security_header_type = Plain;
+ u8value = (nas_hdr->security_header_type << 4 |
+ nas_hdr->proto_discriminator);
+ buffer_copy(&g_acpt_buffer, &u8value, sizeof(u8value));
+
+ /* message type */
+ buffer_copy(&g_acpt_buffer, &(nas_hdr->message_type),
+ sizeof(nas_hdr->message_type));
+
+ /* NAS PDU end */
+
+ /* Calculate mac */
+ uint8_t direction = 1;
+ uint8_t bearer = 0;
+
+ calculate_mac(g_acptReqInfo->int_key, nas_hdr->seq_no,
+ direction, bearer, &g_acpt_buffer.buf[mac_data_pos],
+ g_acpt_buffer.pos - mac_data_pos,
+ &g_acpt_buffer.buf[mac_data_pos - MAC_SIZE]);
+
+ /* Copy nas length to nas length field */
+ datalen = g_acpt_buffer.pos - nas_len_pos -1;
+ memcpy(&(g_acpt_buffer.buf[nas_len_pos]), &datalen, sizeof(datalen));
+
+ /* Copy nas length to nas length field */
+ datalen = g_acpt_buffer.pos - nas_len_pos - 2;
+ memcpy(&(g_acpt_buffer.buf[nas_len_pos + 1]), &datalen, sizeof(datalen));
+
+ /* Copy length to s1ap length field */
+ datalen = g_acpt_buffer.pos - s1ap_len_pos - 1;
+ memcpy(g_acpt_buffer.buf + s1ap_len_pos, &datalen, sizeof(datalen));
+
+ /* TODO: temp fix */
+ //g_ics_buffer.buf[1] = 0x09;
+ send_sctp_msg(g_acptReqInfo->enb_fd, g_acpt_buffer.buf, g_acpt_buffer.pos,1);
+
+ log_msg(LOG_INFO, "Detach Accept sent to UE.");
+
+ return SUCCESS;
+}
+
+/**
+* essage processing for ue context release
+*/
+static int
+ue_ctx_release_processing(struct detach_accept_Q_msg *g_acptReqInfo)
+{
+ Buffer g_ctxrel_buffer;
+ unsigned char tmpStr[4];
+ struct s1ap_PDU s1apPDU;
+ uint16_t protocolIe_Id;
+ uint8_t protocolIe_criticality = CRITICALITY_REJECT;
+ uint8_t initiating_msg = 0;
+ uint8_t datalen = 0;
+ uint8_t s1ap_len_pos;
+ uint8_t u8value = 0;
+
+ s1apPDU.procedurecode = id_UEContexRelease;
+ s1apPDU.criticality = CRITICALITY_IGNORE;
+
+ g_ctxrel_buffer.pos = 0;
+
+ buffer_copy(&g_ctxrel_buffer, &initiating_msg,
+ sizeof(initiating_msg));
+
+ buffer_copy(&g_ctxrel_buffer, &s1apPDU.procedurecode,
+ sizeof(s1apPDU.procedurecode));
+
+ buffer_copy(&g_ctxrel_buffer, &s1apPDU.criticality,
+ sizeof(s1apPDU.criticality));
+
+ s1ap_len_pos = g_ctxrel_buffer.pos;
+
+ /* length of UE Context Release */
+ u8value = 0;
+ buffer_copy(&g_ctxrel_buffer, &u8value, sizeof(u8value));
+
+ /* TODO remove hardcoded values */
+ uint8_t chProtoIENo[3] = {0,0,2};
+ buffer_copy(&g_ctxrel_buffer, chProtoIENo, 3);
+
+ /* id-UE-S1AP-IDs */
+ protocolIe_Id = id_UE_S1AP_IDs;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_ctxrel_buffer, tmpStr, sizeof(protocolIe_Id));
+ buffer_copy(&g_ctxrel_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+
+ uint8_t mme_ue_id[4];
+ uint8_t mme_ue_id_len = copyU16(mme_ue_id,
+ s1apPDU.value.data[0].val.mme_ue_s1ap_id);
+
+ if (mme_ue_id[0] == 0x40 || mme_ue_id[0] == 0x80)
+ mme_ue_id[0] = ((mme_ue_id[0] & 0x0F)<<4 |
+ (mme_ue_id[0] & 0xF0)>>4);
+
+ uint8_t enb_ue_id[4];
+ uint8_t enb_ue_id_len = copyU16(enb_ue_id,
+ s1apPDU.value.data[1].val.enb_ue_s1ap_id);
+
+ datalen = mme_ue_id_len + enb_ue_id_len;
+ buffer_copy(&g_ctxrel_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_ctxrel_buffer, mme_ue_id, mme_ue_id_len);
+ buffer_copy(&g_ctxrel_buffer, enb_ue_id, enb_ue_id_len);
+
+#if 0
+ /* id-MME-UE-S1AP-ID */
+ protocolIe_Id = id_MME_UE_S1AP_ID;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_ctxrel_buffer, tmpStr,
+ sizeof(protocolIe_Id));
+
+ protocolIe_criticality = CRITICALITY_REJECT;
+ buffer_copy(&g_ctxrel_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+
+ datalen = 2;
+
+ /* TODO needs proper handling*/
+ unsigned char mme_ue_id[4];
+ datalen = copyU16(mme_ue_id, s1apPDU.value.data[0].val.mme_ue_s1ap_id);
+ buffer_copy(&g_ctxrel_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_ctxrel_buffer, mme_ue_id, datalen);
+#endif
+
+ /* id-Cause */
+ protocolIe_Id = id_Cause;
+ protocolIe_criticality = CRITICALITY_IGNORE;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_ctxrel_buffer, tmpStr, sizeof(protocolIe_Id));
+ buffer_copy(&g_ctxrel_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+ datalen = 1;
+ buffer_copy(&g_ctxrel_buffer, &datalen, sizeof(datalen));
+ /* TODO : Revisit. cause : nas(2) and value : detach (2), why 0x24 ? */
+ u8value = 0x24;
+ buffer_copy(&g_ctxrel_buffer, &u8value, sizeof(u8value));
+
+ /* Copy length to s1ap length field */
+ datalen = g_ctxrel_buffer.pos - s1ap_len_pos - 1;
+ memcpy(g_ctxrel_buffer.buf + s1ap_len_pos, &datalen, sizeof(datalen));
+ send_sctp_msg(g_acptReqInfo->enb_fd, g_ctxrel_buffer.buf, g_ctxrel_buffer.pos,1);
+
+ log_msg(LOG_INFO,"S1 Release sent to UE");
+
+ return SUCCESS;
+}
+
+/**
+* Thread function for stage.
+*/
+void*
+detach_accept_handler(void *data)
+{
+ log_msg(LOG_INFO, "detach accept handler ready.\n");
+ struct detach_accept_Q_msg *msg = (struct detach_accept_Q_msg *)data;
+
+ detach_accept_processing(msg);
+ ue_ctx_release_processing(msg);
+
+ return NULL;
+}
diff --git a/src/s1ap/handlers/detach_accept_from_ue.c b/src/s1ap/handlers/detach_accept_from_ue.c
new file mode 100644
index 0000000..1489af5
--- /dev/null
+++ b/src/s1ap/handlers/detach_accept_from_ue.c
@@ -0,0 +1,91 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <pthread.h>
+
+#include "err_codes.h"
+#include "options.h"
+#include "ipc_api.h"
+#include "main.h"
+#include "s1ap.h"
+#include "s1ap_config.h"
+#include "sctp_conn.h"
+#include "s1ap_structs.h"
+#include "s1ap_msg_codes.h"
+#include "msgType.h"
+//#include "detach_stage1_info.h"
+
+extern int g_enb_fd;
+extern ipc_handle ipc_S1ap_Hndl;
+
+int
+detach_accept_from_ue_handler(struct proto_IE *detach_ies, bool retransmit)
+{
+ struct s1_incoming_msg_data_t acpt= {0};
+
+ /*****Message structure***
+ */
+ log_msg(LOG_INFO, "Parse s1ap ni detach accept message\n");
+
+
+ /*Validate all eNB info*/
+
+ /*Add eNB info to hash*/
+
+ /*Create Q structure for detach stage 1 to MME.
+ contains init UE information.*/
+ /* TODO : Revisit, in InitialContextSetup Request we are sending
+ * MME UE S1AP Id as M-TMSI.
+ */
+ acpt.msg_type = detach_accept_from_ue;
+ for(int i = 0; i < detach_ies->no_of_IEs; i++)
+ {
+ switch(detach_ies->data[i].IE_type)
+ {
+ case S1AP_IE_MME_UE_ID:
+ {
+ if (!retransmit)
+ {
+ acpt.ue_idx = detach_ies->data[i].val.mme_ue_s1ap_id;
+ }
+ }
+ break;
+ case S1AP_IE_ENB_UE_ID:
+ {
+ acpt.s1ap_enb_ue_id = detach_ies->data[i].val.enb_ue_s1ap_id;
+ }
+ break;
+ default:
+ log_msg(LOG_WARNING,"Unhandled IE");
+ }
+ }
+
+ acpt.destInstAddr = htonl(mmeAppInstanceNum_c);
+ acpt.srcInstAddr = htonl(s1apAppInstanceNum_c);
+ send_tipc_message(ipc_S1ap_Hndl, mmeAppInstanceNum_c, (char *)&acpt, S1_READ_MSG_BUF_SIZE);
+
+ /*Send S1Setup response*/
+ log_msg(LOG_INFO, "Send to mme-app stage1.\n");
+
+ return SUCCESS;
+}
+
+
diff --git a/src/s1ap/handlers/detach_req.c b/src/s1ap/handlers/detach_req.c
new file mode 100644
index 0000000..5ff68d2
--- /dev/null
+++ b/src/s1ap/handlers/detach_req.c
@@ -0,0 +1,96 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ * Copyright (c) 2019, Infosys Ltd.
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <pthread.h>
+
+#include "err_codes.h"
+#include "options.h"
+#include "ipc_api.h"
+#include "main.h"
+#include "s1ap.h"
+#include "s1ap_config.h"
+#include "sctp_conn.h"
+#include "s1ap_structs.h"
+#include "s1ap_msg_codes.h"
+#include "msgType.h"
+
+
+extern int g_enb_fd;
+extern ipc_handle ipc_S1ap_Hndl;
+
+int
+detach_stage1_handler(struct proto_IE *detach_ies, bool retransmit)
+{
+ struct s1_incoming_msg_data_t req= {0};
+
+ /*****Message structure***
+ */
+ log_msg(LOG_INFO, "Parse s1ap detach request message\n");
+
+ /*Validate all eNB info*/
+
+ /*Add eNB info to hash*/
+
+ /*Create Q structure for detach stage 1 to MME.
+ contains init UE information.*/
+ /* TODO : Revisit, in InitialContextSetup Request we are sending
+ * MME UE S1AP Id as M-TMSI.
+ */
+ req.msg_type = detach_request;
+ for(int i = 0; i < detach_ies->no_of_IEs; i++)
+ {
+ switch(detach_ies->data[i].IE_type)
+ {
+ case S1AP_IE_MME_UE_ID:
+ {
+ if (!retransmit)
+ {
+ req.ue_idx = detach_ies->data[i].val.mme_ue_s1ap_id;
+ }
+ }break;
+ case S1AP_IE_ENB_UE_ID:
+ {
+ req.s1ap_enb_ue_id = detach_ies->data[i].val.enb_ue_s1ap_id;
+ }break;
+ case S1AP_IE_NAS_PDU:
+ {
+ if(retransmit)
+ {
+ req.msg_data.detachReq_Q_msg_m.ue_m_tmsi = ntohl(detach_ies->data[i].val.nas.elements[0].pduElement.mi_guti.m_TMSI);
+ }
+ }break;
+ default:
+ log_msg(LOG_WARNING,"Unhandled IE");
+ }
+ }
+
+ req.destInstAddr = htonl(mmeAppInstanceNum_c);
+ req.srcInstAddr = htonl(s1apAppInstanceNum_c);
+ send_tipc_message(ipc_S1ap_Hndl, mmeAppInstanceNum_c, (char *)&req, S1_READ_MSG_BUF_SIZE);
+
+ /*Send S1Setup response*/
+ log_msg(LOG_INFO, "Send to mme-app stage1.\n");
+
+ return SUCCESS;
+}
+
+
diff --git a/src/s1ap/handlers/ics_req_paging.c b/src/s1ap/handlers/ics_req_paging.c
new file mode 100644
index 0000000..a26db1a
--- /dev/null
+++ b/src/s1ap/handlers/ics_req_paging.c
@@ -0,0 +1,112 @@
+/*
+ * Copyright (c) 2019, Infosys Ltd.
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <pthread.h>
+#include <string.h>
+#include <unistd.h>
+#include <stdint.h>
+#include "common_proc_info.h"
+#include "log.h"
+#include "err_codes.h"
+#include "message_queues.h"
+#include "ipc_api.h"
+#include "s1ap.h"
+#include "s1ap_config.h"
+#include "main.h"
+#include "msgType.h"
+
+
+/*static int
+get_uectxtrelcmd_protoie_value(struct proto_IE *value, struct s1relcmd_info *g_uectxtrelcmd)
+{
+ //uint8_t ieCnt = 0;
+
+ value->no_of_IEs = UE_CTX_RELEASE_NO_OF_IES;
+
+ value->data = (proto_IEs *) malloc(UE_CTX_RELEASE_NO_OF_IES *
+ sizeof(proto_IEs));
+
+ value->data[0].mme_ue_s1ap_id = g_uectxtrelcmd->ue_idx;
+
+ value->data[1].enb_ue_s1ap_id = g_uectxtrelcmd->enb_s1ap_ue_id;
+
+ log_msg(LOG_INFO, "mme_ue_s1ap_id %d and enb_ue_s1ap_id %d\n",
+ g_uectxtrelcmd->ue_idx,g_uectxtrelcmd->enb_s1ap_ue_id);
+ return SUCCESS;
+}*/
+
+/**
+* Stage specific message processing.
+*/
+static int
+ics_req_paging_processing(struct ics_req_paging_Q_msg *g_icsreq)
+{
+ log_msg(LOG_DEBUG,"Process Init Ctxt Req for service Request.");
+ uint32_t length = 0;
+ uint8_t *buffer = NULL;
+
+ Buffer g_ics_req_buffer;
+ struct s1ap_common_req_Q_msg req= {0};
+
+ log_msg(LOG_DEBUG,"Inside ics_req_paging processing\n");
+
+ req.IE_type = S1AP_INIT_CTXT_SETUP_REQ;
+ req.ue_idx = g_icsreq->ue_idx;
+ req.enb_fd = g_icsreq->enb_fd;
+ req.enb_s1ap_ue_id = g_icsreq->enb_s1ap_ue_id;
+ req.mme_s1ap_ue_id = g_icsreq->ue_idx;
+ req.ueag_max_dl_bitrate = g_icsreq->ueag_max_dl_bitrate;
+ req.ueag_max_ul_bitrate = g_icsreq->ueag_max_ul_bitrate;
+ req.bearer_id = g_icsreq->bearer_id;
+ memcpy(&(req.gtp_teid), &(g_icsreq->gtp_teid), sizeof(struct fteid));
+ memcpy(&(req.sec_key), &(g_icsreq->sec_key), KENB_SIZE);
+
+ log_msg(LOG_DEBUG,"Before s1ap_encoder\n");
+
+ int ret = s1ap_mme_encode_initiating(&req, &buffer, &length);
+ log_msg(LOG_DEBUG,"Invoked s1ap_encoder\n");
+ if(ret == -1)
+ {
+ log_msg(LOG_ERROR, "Encoding ics_req_paging failed.\n");
+ return E_FAIL;
+ }
+
+ buffer_copy(&g_ics_req_buffer, buffer, length);
+ send_sctp_msg(g_icsreq->enb_fd, g_ics_req_buffer.buf, g_ics_req_buffer.pos,1);
+ log_msg(LOG_INFO, "\n----ICS Req for paging sent to UE.---\n");
+ return SUCCESS;
+
+}
+
+
+/**
+* Thread function for stage.
+*/
+void*
+ics_req_paging_handler(void *data)
+{
+
+ log_msg(LOG_INFO,"ICS Req for paging handler ready.\n");
+
+ ics_req_paging_processing((struct ics_req_paging_Q_msg *)data);
+
+ return NULL;
+}
+
+
diff --git a/src/s1ap/handlers/ie_parsers.c b/src/s1ap/handlers/ie_parsers.c
new file mode 100644
index 0000000..1d9cfc0
--- /dev/null
+++ b/src/s1ap/handlers/ie_parsers.c
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ * Copyright (c) 2019, Infosys Ltd.
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <pthread.h>
+#include <string.h>
+#include <unistd.h>
+#include <arpa/inet.h>
+
+#include "log.h"
+#include "err_codes.h"
+#include "message_queues.h"
+#include "s1ap_ie.h"
+
+void*
+ie_parse_global_enb_id(char *msg, int len)
+{
+ /*8 bytes
+ 1- ignore
+ 2,3,4 - plmn
+ 5,6,7,8 - mactoeNBID*/
+ static struct ie_global_enb_id global_enb_id;
+
+ memcpy(&(global_enb_id.plmn), msg, sizeof(int));
+ memcpy(&(global_enb_id.macro_enb_id), msg+(sizeof(int)), MACRO_ENB_ID_SIZE);
+ global_enb_id.plmn = ntohl(global_enb_id.plmn);
+ //global_enb_id.macro_enb_id = ntohl(global_enb_id.macro_enb_id);
+ log_msg(LOG_INFO, "plmn %x\n", global_enb_id.plmn);
+ log_msg(LOG_INFO, "Macro enb id %x-%x-%x-%x\n", global_enb_id.macro_enb_id[0],
+ global_enb_id.macro_enb_id[4],global_enb_id.macro_enb_id[8],global_enb_id.macro_enb_id[12]);
+
+ return (void*)&global_enb_id;
+}
+
+void*
+ie_parse_enb_name(char *msg, int len)
+{
+ return NULL;
+}
+
+void*
+ie_parse_supported_TAs(char *msg, int len)
+{
+ return NULL;
+}
+
+void*
+ie_parse_pagins_DRX(char *msg, int len)
+{
+ return NULL;
+}
diff --git a/src/s1ap/handlers/mme_msg_delegator.c b/src/s1ap/handlers/mme_msg_delegator.c
new file mode 100644
index 0000000..6ba0162
--- /dev/null
+++ b/src/s1ap/handlers/mme_msg_delegator.c
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2019, Infosys Ltd.
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <pthread.h>
+
+#include "options.h"
+#include "ipc_api.h"
+#include "main.h"
+#include "s1ap.h"
+#include "s1ap_config.h"
+#include "sctp_conn.h"
+#include "s1ap_structs.h"
+#include "s1ap_msg_codes.h"
+#include "s1ap_ie.h"
+#include "err_codes.h"
+#include "msgType.h"
+
+extern void* authreq_handler(void *data);
+extern void* secreq_handler(void *data);
+extern void* icsreq_handler(void *data);
+extern void* detach_accept_handler(void *data);
+extern void* ni_detach_request_handler(void *data);
+extern void* paging_handler(void *data);
+extern void* ics_req_paging_handler(void *data);
+extern void* tau_response_handler(void *data);
+
+void
+handle_mmeapp_message(void * data)
+{
+ log_msg(LOG_INFO, "handle mme-app message ");
+
+ char *msg = ((char *) data) + (sizeof(uint32_t)*2);
+
+ msg_type_t* msg_type = (msg_type_t*)(msg);
+
+ switch(*msg_type)
+ {
+ case id_request:
+ idreq_handler(msg);
+ break;
+ case auth_request:
+ authreq_handler(msg);
+ break;
+ case sec_mode_command:
+ secreq_handler(msg);
+ break;
+ case esm_info_request:
+ esmreq_handler(msg);
+ break;
+ case init_ctxt_request:
+ icsreq_handler(msg);
+ break;
+ case detach_accept:
+ detach_accept_handler(msg);
+ break;
+ case s1_release_command:
+ s1_release_command_handler(msg);
+ break;
+ case ni_detach_request:
+ ni_detach_request_handler(msg);
+ break;
+ case paging_request:
+ paging_handler(msg);
+ break;
+ case ics_req_paging:
+ ics_req_paging_handler(msg);
+ break;
+ case tau_response:
+ tau_response_handler(msg);
+ break;
+ default:
+ log_msg(LOG_ERROR,"Unhandled mme-app message\n");
+ break;
+ }
+ free(data);
+}
diff --git a/src/s1ap/handlers/ni_detach_request.c b/src/s1ap/handlers/ni_detach_request.c
new file mode 100644
index 0000000..6ecd11c
--- /dev/null
+++ b/src/s1ap/handlers/ni_detach_request.c
@@ -0,0 +1,228 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <pthread.h>
+#include <string.h>
+#include <unistd.h>
+#include <stdint.h>
+
+#include "log.h"
+#include "err_codes.h"
+#include "message_queues.h"
+#include "ipc_api.h"
+#include "s1ap.h"
+#include "s1ap_config.h"
+#include "main.h"
+#include "msgType.h"
+
+static int
+get_ni_detach_request_protoie_value(struct proto_IE *value, struct ni_detach_request_Q_msg *g_acptReqInfo)
+{
+ uint8_t ieCnt = 0;
+
+ value->no_of_IEs = NI_DTCH_REQUEST_NO_OF_IES;
+
+ value->data = (proto_IEs *) malloc(NI_DTCH_REQUEST_NO_OF_IES *
+ sizeof(proto_IEs));
+
+ value->data[ieCnt].val.mme_ue_s1ap_id = g_acptReqInfo->ue_idx;
+ ieCnt++;
+
+ value->data[ieCnt].val.enb_ue_s1ap_id = g_acptReqInfo->enb_s1ap_ue_id;
+ ieCnt++;
+
+ struct nasPDU *nas = &(value->data[ieCnt].val.nas);
+ nas->header.security_header_type = IntegrityProtectedCiphered;
+ nas->header.proto_discriminator = EPSMobilityManagementMessages;
+
+ /* placeholder for mac. mac value will be calculated later */
+ uint8_t mac[MAC_SIZE] = {0};
+ memcpy(nas->header.mac, mac, MAC_SIZE);
+
+ nas->header.seq_no = g_acptReqInfo->dl_seq_no;
+ nas->header.message_type = DetachRequest;
+ nas->header.detach_type = 00000002;
+ log_msg(LOG_DEBUG,"NAS Msg Type: %x\n",nas->header.message_type);
+
+ ieCnt++;
+
+ return SUCCESS;
+}
+
+/**
+* Stage specific message processing.
+*/
+static int
+ni_detach_request_processing(struct ni_detach_request_Q_msg *g_acptReqInfo)
+{
+ unsigned char tmpStr[4];
+ struct s1ap_PDU s1apPDU= {0};
+ uint16_t protocolIe_Id;
+ uint8_t protocolIe_criticality = CRITICALITY_REJECT;
+ uint8_t initiating_msg = 0;
+ uint8_t datalen = 0;
+ uint8_t s1ap_len_pos;
+ uint8_t nas_len_pos;
+ uint8_t u8value = 0;
+ uint8_t mac_data_pos;
+
+ Buffer g_acpt_buffer;
+
+ s1apPDU.procedurecode = id_downlinkNASTransport;
+ s1apPDU.criticality = CRITICALITY_IGNORE;
+
+ get_ni_detach_request_protoie_value(&s1apPDU.value, g_acptReqInfo);
+
+ g_acpt_buffer.pos = 0;
+
+ buffer_copy(&g_acpt_buffer, &initiating_msg,
+ sizeof(initiating_msg));
+
+ buffer_copy(&g_acpt_buffer, &s1apPDU.procedurecode,
+ sizeof(s1apPDU.procedurecode));
+
+ buffer_copy(&g_acpt_buffer, &s1apPDU.criticality,
+ sizeof(s1apPDU.criticality));
+
+ s1ap_len_pos = g_acpt_buffer.pos;
+
+ /* length of NI Detach Request */
+ u8value = 0;
+ buffer_copy(&g_acpt_buffer, &u8value, sizeof(u8value));
+
+ /* TODO remove hardcoded values */
+ uint8_t chProtoIENo[3] = {0,0,3};
+ buffer_copy(&g_acpt_buffer, chProtoIENo, 3);
+
+ /* id-MME-UE-S1AP-ID */
+ protocolIe_Id = id_MME_UE_S1AP_ID;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_acpt_buffer, tmpStr, sizeof(protocolIe_Id));
+ buffer_copy(&g_acpt_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+ datalen = 2;
+ /* TODO need to add proper handling*/
+ unsigned char mme_ue_id[3];
+ datalen = copyU16(mme_ue_id, s1apPDU.value.data[0].val.mme_ue_s1ap_id);
+ buffer_copy(&g_acpt_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_acpt_buffer, mme_ue_id, datalen);
+
+ /* id-eNB-UE-S1AP-ID */
+ protocolIe_Id = id_eNB_UE_S1AP_ID;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_acpt_buffer, tmpStr, sizeof(protocolIe_Id));
+ buffer_copy(&g_acpt_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+ /* TODO needs proper handling*/
+ unsigned char enb_ue_id[3];
+ datalen = copyU16(enb_ue_id, s1apPDU.value.data[1].val.enb_ue_s1ap_id);
+ buffer_copy(&g_acpt_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_acpt_buffer, enb_ue_id, datalen);
+
+ /* NAS PDU start */
+ protocolIe_Id = id_NAS_PDU;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_acpt_buffer, tmpStr, sizeof(protocolIe_Id));
+ buffer_copy(&g_acpt_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+
+ nas_len_pos = g_acpt_buffer.pos;
+
+ datalen = 0;
+ buffer_copy(&g_acpt_buffer, &datalen, sizeof(datalen));
+
+ buffer_copy(&g_acpt_buffer, &datalen, sizeof(datalen));
+
+ nas_pdu_header *nas_hdr = &(s1apPDU.value.data[2].val.nas.header);
+
+ /* security header and protocol discriminator */
+ u8value = (nas_hdr->security_header_type << 4 |
+ nas_hdr->proto_discriminator);
+ buffer_copy(&g_acpt_buffer, &u8value, sizeof(u8value));
+
+ /* mac */
+ /* placeholder for mac. mac value will be calculated later */
+ buffer_copy(&g_acpt_buffer, nas_hdr->mac, MAC_SIZE);
+ mac_data_pos = g_acpt_buffer.pos;
+
+ /* sequence number */
+ buffer_copy(&g_acpt_buffer, &(nas_hdr->seq_no),
+ sizeof(nas_hdr->seq_no));
+
+ /* security header and protocol discriminator */
+ nas_hdr->security_header_type = Plain;
+ u8value = (nas_hdr->security_header_type << 4 |
+ nas_hdr->proto_discriminator);
+ buffer_copy(&g_acpt_buffer, &u8value, sizeof(u8value));
+
+ /* message type */
+ buffer_copy(&g_acpt_buffer, &(nas_hdr->message_type),
+ sizeof(nas_hdr->message_type));
+ /* detach type */
+ buffer_copy(&g_acpt_buffer, &(nas_hdr->detach_type),
+ sizeof(nas_hdr->detach_type));
+
+ /* NAS PDU end */
+
+ /* Calculate mac */
+ uint8_t direction = 1;
+ uint8_t bearer = 0;
+
+ calculate_mac(g_acptReqInfo->int_key, nas_hdr->seq_no,
+ direction, bearer, &g_acpt_buffer.buf[mac_data_pos],
+ g_acpt_buffer.pos - mac_data_pos,
+ &g_acpt_buffer.buf[mac_data_pos - MAC_SIZE]);
+
+ /* Copy nas length to nas length field */
+ datalen = g_acpt_buffer.pos - nas_len_pos -1;
+ memcpy(&(g_acpt_buffer.buf[nas_len_pos]), &datalen, sizeof(datalen));
+
+ /* Copy nas length to nas length field */
+ datalen = g_acpt_buffer.pos - nas_len_pos - 2;
+ memcpy(&(g_acpt_buffer.buf[nas_len_pos + 1]), &datalen, sizeof(datalen));
+
+ /* Copy length to s1ap length field */
+ datalen = g_acpt_buffer.pos - s1ap_len_pos - 1;
+ memcpy(g_acpt_buffer.buf + s1ap_len_pos, &datalen, sizeof(datalen));
+
+ /* TODO: temp fix */
+ //g_ics_buffer.buf[1] = 0x09;
+ send_sctp_msg(g_acptReqInfo->enb_fd, g_acpt_buffer.buf, g_acpt_buffer.pos,1);
+
+ log_msg(LOG_INFO, "NI Detach Request sent to UE.");
+
+ return SUCCESS;
+}
+
+
+
+/**
+* Thread function for stage.
+*/
+void*
+ni_detach_request_handler(void *data)
+{
+ log_msg(LOG_INFO, "NI detach request handler ready.\n");
+ struct ni_detach_request_Q_msg *msg = (struct ni_detach_request_Q_msg *)data;
+
+ ni_detach_request_processing(msg);
+
+ return NULL;
+}
+
diff --git a/src/s1ap/handlers/paging.c b/src/s1ap/handlers/paging.c
new file mode 100644
index 0000000..d2c6bf1
--- /dev/null
+++ b/src/s1ap/handlers/paging.c
@@ -0,0 +1,91 @@
+/*
+ * Copyright (c) 2019, Infosys Ltd.
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <pthread.h>
+#include <string.h>
+#include <unistd.h>
+#include <stdint.h>
+
+#include "ProtocolIE-Container.h"
+#include "ProtocolIE-ID.h"
+#include "ProtocolIE-Field.h"
+#include "log.h"
+#include "err_codes.h"
+#include "message_queues.h"
+#include "ipc_api.h"
+#include "s1ap.h"
+#include "s1ap_config.h"
+#include "main.h"
+#include "msgType.h"
+#include "common_proc_info.h"
+
+
+/*Stage specific message processing.
+*/
+static int
+paging_processing(struct paging_req_Q_msg *g_paging)
+{
+ log_msg(LOG_DEBUG,"Process paging.");
+ uint32_t length = 0;
+ uint8_t *buffer = NULL;
+
+ Buffer g_paging_buffer;
+ struct s1ap_common_req_Q_msg req= {0};
+
+ req.IE_type = S1AP_PAGING_REQ;
+ req.enb_fd = g_paging->enb_fd;
+ req.ue_idx = g_paging->ue_idx;
+ req.enb_s1ap_ue_id = g_paging->enb_s1ap_ue_id;
+ req.cn_domain = g_paging->cn_domain;
+ memcpy(req.imsi, g_paging->IMSI, BINARY_IMSI_LEN);
+ memcpy(&req.tai, &g_paging->tai, sizeof(struct TAI));
+
+
+
+ int ret = s1ap_mme_encode_initiating(&req, &buffer, &length);
+
+ if(ret == -1)
+ {
+ log_msg(LOG_ERROR, "Encoding paging request failed.\n");
+ return E_FAIL;
+ }
+
+
+ buffer_copy(&g_paging_buffer, buffer, length);
+ send_sctp_msg(g_paging->enb_fd, g_paging_buffer.buf, g_paging_buffer.pos,1);
+ log_msg(LOG_INFO, "\n-----Paging sent to UE.---\n");
+ return SUCCESS;
+}
+
+
+/**
+* Thread function for stage.
+*/
+void*
+paging_handler(void *data)
+{
+
+ log_msg(LOG_INFO, "paging handler ready.\n");
+
+ paging_processing((struct paging_req_Q_msg*)data);
+
+ return NULL;
+}
+
+
diff --git a/src/s1ap/handlers/s1ap_encoder.c b/src/s1ap/handlers/s1ap_encoder.c
new file mode 100644
index 0000000..46ea3ce
--- /dev/null
+++ b/src/s1ap/handlers/s1ap_encoder.c
@@ -0,0 +1,471 @@
+/*
+ *
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ * Copyright (c) 2019-Present, Infosys Ltd.
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <pthread.h>
+
+#include "options.h"
+#include "ipc_api.h"
+#include "main.h"
+#include "s1ap.h"
+#include "s1ap_config.h"
+#include "sctp_conn.h"
+#include "s1ap_structs.h"
+#include "s1ap_msg_codes.h"
+#include "s1ap_ie.h"
+#include "ProtocolIE-ID.h"
+#include "ProtocolIE-Field.h"
+#include "common_proc_info.h"
+#include "InitiatingMessage.h"
+#include "UE-S1AP-ID-pair.h"
+#include "msgType.h"
+
+extern s1ap_config g_s1ap_cfg;
+
+int s1ap_mme_encode_initiating(
+ struct s1ap_common_req_Q_msg *message_p,
+ uint8_t **buffer,
+ uint32_t *length)
+{
+ log_msg(LOG_INFO, "MME initiating msg Encode.\n");
+ switch (message_p->IE_type) {
+ case S1AP_CTX_REL_CMD:
+ log_msg(LOG_INFO, "Ue Context release Command Encode.\n");
+ return s1ap_mme_encode_ue_context_release_command(
+ message_p, buffer, length);
+ case S1AP_PAGING_REQ:
+ log_msg(LOG_INFO, "Paging req Encode.\n");
+ return s1ap_mme_encode_paging_request(
+ message_p, buffer, length);
+ case S1AP_INIT_CTXT_SETUP_REQ:
+ log_msg(LOG_INFO, "Init context setup req encode\n");
+ return s1ap_mme_encode_initial_context_setup_request(
+ message_p, buffer, length);
+ default:
+ log_msg(
+ LOG_WARNING,
+ "Unknown procedure ID (%d) for initiating message_p\n",
+ (int) message_p->IE_type);
+ }
+
+ return -1;
+}
+
+int s1ap_mme_encode_ue_context_release_command(
+ struct s1ap_common_req_Q_msg *s1apPDU,
+ uint8_t **buffer,
+ uint32_t *length)
+{
+ log_msg(LOG_DEBUG,"Inside s1ap_encoder\n");
+
+ S1AP_PDU_t pdu = {(S1AP_PDU_PR_NOTHING)};
+ InitiatingMessage_t *initiating_msg = NULL;
+ S1AP_PDU_t *pdu_p = &pdu;
+ int enc_ret = -1;
+ memset ((void *)pdu_p, 0, sizeof (S1AP_PDU_t));
+
+ pdu.present = S1AP_PDU_PR_initiatingMessage;
+ pdu.choice.initiatingMessage = calloc(sizeof(InitiatingMessage_t), sizeof(uint8_t));
+ if(pdu.choice.initiatingMessage == NULL)
+ {
+ log_msg(LOG_ERROR,"calloc failed.\n");
+ return -1;
+ }
+ initiating_msg = pdu.choice.initiatingMessage;
+ initiating_msg->procedureCode = ProcedureCode_id_UEContextRelease;
+ initiating_msg->criticality = 0;
+ initiating_msg->value.present = InitiatingMessage__value_PR_UEContextReleaseCommand;
+
+ UEContextReleaseCommand_IEs_t val[2];
+ memset(val, 0, 2 * sizeof(UEContextReleaseCommand_IEs_t));
+
+ UE_S1AP_IDs_t ue_id_val;
+ memset(&ue_id_val, 0, sizeof(UE_S1AP_IDs_t));
+
+ struct UE_S1AP_ID_pair s1apId_pair;
+ if((s1apPDU->mme_s1ap_ue_id != 0xFFFFFFFF)
+ && (s1apPDU->enb_s1ap_ue_id != 0xFFFFFFFF))
+ {
+ log_msg(LOG_INFO,"S1ap Id pair.\n");
+ ue_id_val.present = UE_S1AP_IDs_PR_uE_S1AP_ID_pair;
+ s1apId_pair.eNB_UE_S1AP_ID = s1apPDU->enb_s1ap_ue_id;
+ s1apId_pair.mME_UE_S1AP_ID = s1apPDU->mme_s1ap_ue_id;
+ ue_id_val.choice.uE_S1AP_ID_pair = calloc(sizeof(struct UE_S1AP_ID_pair), sizeof(uint8_t));
+ if(ue_id_val.choice.uE_S1AP_ID_pair == NULL)
+ {
+ log_msg(LOG_ERROR,"calloc failed.\n");
+ free(pdu.choice.initiatingMessage);
+ return -1;
+ }
+ memcpy(ue_id_val.choice.uE_S1AP_ID_pair, &s1apId_pair, sizeof(struct UE_S1AP_ID_pair));
+ }
+ else if(s1apPDU->mme_s1ap_ue_id != 0xFFFFFFFF)
+ {
+ ue_id_val.present = UE_S1AP_IDs_PR_mME_UE_S1AP_ID;
+ ue_id_val.choice.mME_UE_S1AP_ID = s1apPDU->mme_s1ap_ue_id;
+ }
+ else
+ {
+ ue_id_val.present = UE_S1AP_IDs_PR_NOTHING;
+ }
+
+ val[0].id = ProtocolIE_ID_id_UE_S1AP_IDs;
+ val[0].criticality = 0;
+ val[0].value.present = UEContextReleaseCommand_IEs__value_PR_UE_S1AP_IDs;
+ memcpy(&val[0].value.choice.UE_S1AP_IDs, &ue_id_val, sizeof(UE_S1AP_IDs_t));
+
+ val[1].id = ProtocolIE_ID_id_Cause;
+ val[1].criticality = 1;
+ val[1].value.present = UEContextReleaseCommand_IEs__value_PR_Cause;
+ //memcpy(&val[1].value.choice.Cause, &s1apPDU->cause, sizeof(Cause_t));
+ val[1].value.choice.Cause.present = s1apPDU->cause.present;
+ switch(s1apPDU->cause.present)
+ {
+ case Cause_PR_radioNetwork:
+ val[1].value.choice.Cause.choice.radioNetwork
+ = s1apPDU->cause.choice.radioNetwork;
+ break;
+ case Cause_PR_transport:
+ val[1].value.choice.Cause.choice.transport
+ = s1apPDU->cause.choice.transport;
+ break;
+ case Cause_PR_nas:
+ val[1].value.choice.Cause.choice.nas
+ = s1apPDU->cause.choice.nas;
+ break;
+ case Cause_PR_protocol:
+ val[1].value.choice.Cause.choice.protocol
+ = s1apPDU->cause.choice.protocol;
+ break;
+ case Cause_PR_misc:
+ val[1].value.choice.Cause.choice.misc
+ = s1apPDU->cause.choice.misc;
+ break;
+ case Cause_PR_NOTHING:
+ default:
+ log_msg(LOG_WARNING,"Unknown Cause type:%d\n",s1apPDU->cause.present);
+ }
+
+ log_msg(LOG_INFO,"Add values to list.\n");
+ ASN_SEQUENCE_ADD(&initiating_msg->value.choice.UEContextReleaseCommand.protocolIEs.list, &val[0]);
+ ASN_SEQUENCE_ADD(&initiating_msg->value.choice.UEContextReleaseCommand.protocolIEs.list, &val[1]);
+
+ if ((enc_ret = aper_encode_to_new_buffer (&asn_DEF_S1AP_PDU, 0, &pdu, (void **)buffer)) < 0)
+ {
+ log_msg(LOG_ERROR, "Encoding of Ctx Release Cmd failed\n");
+ return -1;
+ }
+
+ log_msg(LOG_INFO,"free allocated msgs");
+ free(ue_id_val.choice.uE_S1AP_ID_pair);
+ free(pdu.choice.initiatingMessage);
+
+ *length = enc_ret;
+ return enc_ret;
+}
+
+int s1ap_mme_encode_initial_context_setup_request(
+ struct s1ap_common_req_Q_msg *s1apPDU,
+ uint8_t **buffer,
+ uint32_t *length)
+{
+ S1AP_PDU_t pdu = {(S1AP_PDU_PR_NOTHING)};
+ InitiatingMessage_t *initiating_msg = NULL;
+ S1AP_PDU_t *pdu_p = &pdu;
+ int enc_ret = -1;
+ memset ((void *)pdu_p, 0, sizeof (S1AP_PDU_t));
+
+ pdu.present = S1AP_PDU_PR_initiatingMessage;
+ pdu.choice.initiatingMessage = calloc (sizeof(InitiatingMessage_t), sizeof(uint8_t));
+ if(pdu.choice.initiatingMessage == NULL)
+ {
+ log_msg(LOG_ERROR,"calloc failed.\n");
+ return -1;
+ }
+ initiating_msg = pdu.choice.initiatingMessage;
+ initiating_msg->procedureCode = ProcedureCode_id_InitialContextSetup;
+ initiating_msg->criticality = 0;
+ initiating_msg->value.present = InitiatingMessage__value_PR_InitialContextSetupRequest;
+
+ InitialContextSetupRequestIEs_t val[6];
+ memset(val, 0, 6 * (sizeof(InitialContextSetupRequestIEs_t)));
+
+ val[0].id = ProtocolIE_ID_id_MME_UE_S1AP_ID;
+ val[0].criticality = 0;
+ val[0].value.present = InitialContextSetupRequestIEs__value_PR_MME_UE_S1AP_ID;
+ val[0].value.choice.MME_UE_S1AP_ID = s1apPDU->mme_s1ap_ue_id;
+
+ val[1].id = ProtocolIE_ID_id_eNB_UE_S1AP_ID;
+ val[1].criticality = 0;
+ val[1].value.present = InitialContextSetupRequestIEs__value_PR_ENB_UE_S1AP_ID;
+ val[1].value.choice.ENB_UE_S1AP_ID = s1apPDU->enb_s1ap_ue_id;
+
+ val[2].id = ProtocolIE_ID_id_uEaggregateMaximumBitrate;
+ val[2].criticality = 0;
+ val[2].value.present = InitialContextSetupRequestIEs__value_PR_UEAggregateMaximumBitrate;
+
+ val[2].value.choice.UEAggregateMaximumBitrate.uEaggregateMaximumBitRateDL.size = 5;
+ val[2].value.choice.UEAggregateMaximumBitrate.uEaggregateMaximumBitRateDL.buf = calloc (5, sizeof(uint8_t));
+ val[2].value.choice.UEAggregateMaximumBitrate.uEaggregateMaximumBitRateDL.buf[0] = 0x0;
+ uint32_t temp_bitrate = htonl(s1apPDU->ueag_max_dl_bitrate);
+ memcpy (&(val[2].value.choice.UEAggregateMaximumBitrate.uEaggregateMaximumBitRateDL.buf[1]), &temp_bitrate, sizeof(uint32_t));
+
+ val[2].value.choice.UEAggregateMaximumBitrate.uEaggregateMaximumBitRateUL.size = 5;
+ val[2].value.choice.UEAggregateMaximumBitrate.uEaggregateMaximumBitRateUL.buf = calloc (5, sizeof(uint8_t));
+ val[2].value.choice.UEAggregateMaximumBitrate.uEaggregateMaximumBitRateUL.buf[0] = 0x0;
+ temp_bitrate = htonl(s1apPDU->ueag_max_ul_bitrate);
+ memcpy (&(val[2].value.choice.UEAggregateMaximumBitrate.uEaggregateMaximumBitRateUL.buf[1]), &temp_bitrate, sizeof(uint32_t));
+
+ val[3].id = ProtocolIE_ID_id_E_RABToBeSetupListCtxtSUReq;
+ val[3].criticality = 0;
+ val[3].value.present = InitialContextSetupRequestIEs__value_PR_E_RABToBeSetupListCtxtSUReq;
+
+ E_RABToBeSetupItemCtxtSUReqIEs_t erab_to_be_setup_item;
+ memset(&erab_to_be_setup_item, 0, sizeof(E_RABToBeSetupItemCtxtSUReqIEs_t));
+ E_RABToBeSetupItemCtxtSUReq_t* erab_to_be_setup = &(erab_to_be_setup_item.value.choice.E_RABToBeSetupItemCtxtSUReq);
+
+ erab_to_be_setup_item.id = ProtocolIE_ID_id_E_RABToBeSetupItemCtxtSUReq;
+ erab_to_be_setup_item.criticality = 0;
+ erab_to_be_setup_item.value.present = E_RABToBeSetupItemCtxtSUReqIEs__value_PR_E_RABToBeSetupItemCtxtSUReq;
+
+ erab_to_be_setup->e_RAB_ID = 5;
+
+ erab_to_be_setup->e_RABlevelQoSParameters.allocationRetentionPriority.priorityLevel = 15;
+ erab_to_be_setup->e_RABlevelQoSParameters.allocationRetentionPriority.pre_emptionCapability = 1;
+ erab_to_be_setup->e_RABlevelQoSParameters.allocationRetentionPriority.pre_emptionVulnerability = 1;
+ erab_to_be_setup->e_RABlevelQoSParameters.qCI = 9;
+
+ erab_to_be_setup->transportLayerAddress.size = 4;
+ erab_to_be_setup->transportLayerAddress.buf = calloc(4, sizeof(uint8_t));
+ uint32_t transport_layer_address = htonl(s1apPDU->gtp_teid.ip.ipv4.s_addr);
+ memcpy(erab_to_be_setup->transportLayerAddress.buf, &transport_layer_address, sizeof(uint32_t));
+
+
+ erab_to_be_setup->gTP_TEID.size = 4;
+ erab_to_be_setup->gTP_TEID.buf = calloc(4, sizeof(uint8_t));
+ erab_to_be_setup->gTP_TEID.buf[0] = s1apPDU->gtp_teid.header.teid_gre >> 24;
+ erab_to_be_setup->gTP_TEID.buf[1] = s1apPDU->gtp_teid.header.teid_gre >> 16;
+ erab_to_be_setup->gTP_TEID.buf[2] = s1apPDU->gtp_teid.header.teid_gre >> 8;
+ erab_to_be_setup->gTP_TEID.buf[3] = s1apPDU->gtp_teid.header.teid_gre;
+
+ ASN_SEQUENCE_ADD(&(val[3].value.choice.E_RABToBeSetupListCtxtSUReq.list), &erab_to_be_setup_item);
+
+ val[4].id = ProtocolIE_ID_id_UESecurityCapabilities;
+ val[4].criticality = 0;
+ val[4].value.present = InitialContextSetupRequestIEs__value_PR_UESecurityCapabilities;
+ val[4].value.choice.UESecurityCapabilities.encryptionAlgorithms.buf = calloc(2, sizeof(uint8_t));
+ val[4].value.choice.UESecurityCapabilities.encryptionAlgorithms.size = 2;
+ val[4].value.choice.UESecurityCapabilities.encryptionAlgorithms.buf[0] = 0xe0;
+ val[4].value.choice.UESecurityCapabilities.encryptionAlgorithms.buf[1] = 0x00;
+ val[4].value.choice.UESecurityCapabilities.integrityProtectionAlgorithms.buf = calloc(2, sizeof(uint8_t));
+ val[4].value.choice.UESecurityCapabilities.integrityProtectionAlgorithms.size = 2;
+ val[4].value.choice.UESecurityCapabilities.integrityProtectionAlgorithms.buf[0] = 0xc0;
+ val[4].value.choice.UESecurityCapabilities.integrityProtectionAlgorithms.buf[1] = 0x00;
+
+ val[5].id = ProtocolIE_ID_id_SecurityKey;
+ val[5].criticality = 0;
+ val[5].value.present = InitialContextSetupRequestIEs__value_PR_SecurityKey;
+ val[5].value.choice.SecurityKey.size = SECURITY_KEY_SIZE;
+ val[5].value.choice.SecurityKey.buf = calloc(SECURITY_KEY_SIZE, sizeof(uint8_t));
+ memcpy(val[5].value.choice.SecurityKey.buf, s1apPDU->sec_key, SECURITY_KEY_SIZE);
+
+ ASN_SEQUENCE_ADD(&initiating_msg->value.choice.InitialContextSetupRequest.protocolIEs.list, &val[0]);
+ ASN_SEQUENCE_ADD(&initiating_msg->value.choice.InitialContextSetupRequest.protocolIEs.list, &val[1]);
+ ASN_SEQUENCE_ADD(&initiating_msg->value.choice.InitialContextSetupRequest.protocolIEs.list, &val[2]);
+ ASN_SEQUENCE_ADD(&initiating_msg->value.choice.InitialContextSetupRequest.protocolIEs.list, &val[3]);
+ ASN_SEQUENCE_ADD(&initiating_msg->value.choice.InitialContextSetupRequest.protocolIEs.list, &val[4]);
+ ASN_SEQUENCE_ADD(&initiating_msg->value.choice.InitialContextSetupRequest.protocolIEs.list, &val[5]);
+
+ if ((enc_ret = aper_encode_to_new_buffer (&asn_DEF_S1AP_PDU, 0, &pdu, (void **)buffer)) < 0)
+ {
+ log_msg(LOG_ERROR, "Encoding of Initial Context Setup Request failed\n");
+ return -1;
+ }
+
+ log_msg(LOG_INFO,"free allocated messages\n");
+
+ free(val[5].value.choice.SecurityKey.buf);
+ free(val[4].value.choice.UESecurityCapabilities.integrityProtectionAlgorithms.buf);
+ free(val[4].value.choice.UESecurityCapabilities.encryptionAlgorithms.buf);
+ free(erab_to_be_setup->gTP_TEID.buf);
+ free(erab_to_be_setup->transportLayerAddress.buf);
+ free(val[2].value.choice.UEAggregateMaximumBitrate.uEaggregateMaximumBitRateUL.buf);
+ free(val[2].value.choice.UEAggregateMaximumBitrate.uEaggregateMaximumBitRateDL.buf);
+ free(pdu.choice.initiatingMessage);
+
+ *length = enc_ret;
+ return enc_ret;
+}
+
+int s1ap_mme_encode_paging_request(
+ struct s1ap_common_req_Q_msg *s1apPDU,
+ uint8_t **buffer,
+ uint32_t *length)
+{
+
+
+ S1AP_PDU_t pdu = {(S1AP_PDU_PR_NOTHING)};
+ InitiatingMessage_t *initiating_msg = NULL;
+ S1AP_PDU_t *pdu_p = &pdu;
+ int enc_ret = -1;
+ memset ((void *)pdu_p, 0, sizeof (S1AP_PDU_t));
+
+ pdu.present = S1AP_PDU_PR_initiatingMessage;
+ pdu.choice.initiatingMessage = calloc (sizeof(InitiatingMessage_t), sizeof(uint8_t));
+ if(pdu.choice.initiatingMessage == NULL)
+ {
+ log_msg(LOG_ERROR,"calloc failed.\n");
+ return -1;
+ }
+
+ initiating_msg = pdu.choice.initiatingMessage;
+ initiating_msg->procedureCode = ProcedureCode_id_Paging;
+ initiating_msg->criticality = 0;
+ initiating_msg->value.present = InitiatingMessage__value_PR_Paging;
+
+ PagingIEs_t val[4];
+ memset(val, 0, 4 * sizeof(PagingIEs_t));
+
+ val[0].id = ProtocolIE_ID_id_UEIdentityIndexValue;
+ val[0].criticality = 0;
+ val[0].value.present = PagingIEs__value_PR_UEIdentityIndexValue;
+
+ UEIdentityIndexValue_t* UEIdentityIndexValue = &val[0].value.choice.UEIdentityIndexValue;
+ uint64_t ue_imsi_value = 0;
+ /* Set UE Identity Index value : IMSI mod 4096 */
+ UEIdentityIndexValue->size = 2;
+ UEIdentityIndexValue->buf = calloc(2, sizeof(uint8_t));
+
+ /* Conver string to value */
+ uint8_t imsi_bcd[BCD_IMSI_STR_LEN];
+ convert_imsi_to_bcd_str(s1apPDU->imsi, imsi_bcd);
+ for (int i = 0; i < BCD_IMSI_STR_LEN; i++)
+ {
+ ue_imsi_value = ue_imsi_value*10 + (imsi_bcd[i] - '0');
+ }
+
+ /* index(10bit) = ue_imsi_value mod 1024 */
+ uint16_t index_value = ue_imsi_value % 1024;
+ UEIdentityIndexValue->buf[0] = index_value >> 2;
+ UEIdentityIndexValue->buf[1] = (index_value & 0x3f) << 6;
+ UEIdentityIndexValue->bits_unused = 6;
+
+ log_msg(LOG_DEBUG,"Encoding STMSI\n");
+
+ val[1].id = ProtocolIE_ID_id_UEPagingID;
+ val[1].criticality = 0;
+ val[1].value.present = PagingIEs__value_PR_UEPagingID;
+
+ UEPagingID_t pagingId;
+ pagingId.present = UEPagingID_PR_s_TMSI;
+ pagingId.choice.s_TMSI = calloc(sizeof(struct S_TMSI), sizeof(uint8_t));
+ if(pagingId.choice.s_TMSI == NULL)
+ {
+ log_msg(LOG_ERROR,"malloc failed.\n");
+ free(pdu.choice.initiatingMessage);
+ return -1;
+ }
+
+ pagingId.choice.s_TMSI->mMEC.buf = calloc(1, sizeof(uint8_t));
+ if(NULL == pagingId.choice.s_TMSI->mMEC.buf)
+ {
+ log_msg(LOG_ERROR,"malloc failed.\n");
+ free(pdu.choice.initiatingMessage);
+ free(pagingId.choice.s_TMSI);
+ return -1;
+ }
+
+ memcpy(pagingId.choice.s_TMSI->mMEC.buf, &g_s1ap_cfg.mme_code, sizeof(uint8_t));
+ pagingId.choice.s_TMSI->mMEC.size = sizeof(uint8_t);
+
+ pagingId.choice.s_TMSI->m_TMSI.buf = calloc(sizeof(uint32_t), sizeof(uint8_t));
+ if(NULL == pagingId.choice.s_TMSI->m_TMSI.buf)
+ {
+ log_msg(LOG_ERROR,"malloc failed.\n");
+ free(pdu.choice.initiatingMessage);
+ free(pagingId.choice.s_TMSI);
+ free(pagingId.choice.s_TMSI->mMEC.buf);
+ return -1;
+ }
+
+ uint32_t ue_idx = htonl(s1apPDU->ue_idx);
+ memcpy(pagingId.choice.s_TMSI->m_TMSI.buf, &ue_idx, sizeof(uint32_t));
+ pagingId.choice.s_TMSI->m_TMSI.size = sizeof(uint32_t);
+ memcpy(&val[1].value.choice.UEPagingID, &pagingId, sizeof(UEPagingID_t));
+
+ log_msg(LOG_INFO, "Encoding CNDomain\n");
+
+ val[2].id = ProtocolIE_ID_id_CNDomain;
+ val[2].criticality = 0;
+ val[2].value.present = PagingIEs__value_PR_CNDomain;
+ val[2].value.choice.CNDomain = s1apPDU->cn_domain;
+
+ log_msg(LOG_DEBUG,"Encoding TAI List\n");
+
+ val[3].id = ProtocolIE_ID_id_TAIList;
+ val[3].criticality = 0;
+ val[3].value.present = PagingIEs__value_PR_TAIList;
+
+ TAIItemIEs_t tai_item;
+ memset(&tai_item, 0, sizeof(TAIItemIEs_t));
+
+ tai_item.id = ProtocolIE_ID_id_TAIItem;
+ tai_item.criticality = 0;
+ tai_item.value.present = TAIItemIEs__value_PR_TAIItem;
+
+ log_msg(LOG_DEBUG,"TAI List - Encode PLMN ID\n");
+ tai_item.value.choice.TAIItem.tAI.pLMNidentity.size = 3;
+ tai_item.value.choice.TAIItem.tAI.pLMNidentity.buf = calloc(3, sizeof(uint8_t));
+ memcpy(tai_item.value.choice.TAIItem.tAI.pLMNidentity.buf, &s1apPDU->tai.plmn_id.idx, 3);
+
+ log_msg(LOG_DEBUG,"TAI List - Encode TAC\n");
+ tai_item.value.choice.TAIItem.tAI.tAC.size = 2;
+ tai_item.value.choice.TAIItem.tAI.tAC.buf = calloc(2, sizeof(uint8_t));
+ memcpy(tai_item.value.choice.TAIItem.tAI.tAC.buf, &s1apPDU->tai.tac, 2);
+
+ ASN_SEQUENCE_ADD(&val[3].value.choice.TAIList.list, &tai_item);
+
+ log_msg(LOG_INFO,"Add values to list.\n");
+ ASN_SEQUENCE_ADD(&initiating_msg->value.choice.Paging.protocolIEs.list, &val[0]);
+ ASN_SEQUENCE_ADD(&initiating_msg->value.choice.Paging.protocolIEs.list, &val[1]);
+ ASN_SEQUENCE_ADD(&initiating_msg->value.choice.Paging.protocolIEs.list, &val[2]);
+ ASN_SEQUENCE_ADD(&initiating_msg->value.choice.Paging.protocolIEs.list, &val[3]);
+
+ if ((enc_ret = aper_encode_to_new_buffer (&asn_DEF_S1AP_PDU, 0, &pdu, (void **)buffer)) < 0)
+ {
+ log_msg(LOG_ERROR, "Encoding of Paging failed\n");
+ return -1;
+ }
+
+ log_msg(LOG_INFO,"free allocated msgs");
+ free(pdu.choice.initiatingMessage);
+ free(UEIdentityIndexValue->buf);
+ free(pagingId.choice.s_TMSI->mMEC.buf);
+ free(pagingId.choice.s_TMSI->m_TMSI.buf);
+ free(pagingId.choice.s_TMSI);
+ free(tai_item.value.choice.TAIItem.tAI.pLMNidentity.buf);
+ free(tai_item.value.choice.TAIItem.tAI.tAC.buf);
+
+ *length = enc_ret;
+ return enc_ret;
+}
diff --git a/src/s1ap/handlers/s1ap_msg_delegator.c b/src/s1ap/handlers/s1ap_msg_delegator.c
new file mode 100644
index 0000000..735652c
--- /dev/null
+++ b/src/s1ap/handlers/s1ap_msg_delegator.c
@@ -0,0 +1,1524 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <pthread.h>
+
+#include "options.h"
+#include "ipc_api.h"
+#include "main.h"
+#include "s1ap.h"
+#include "s1ap_config.h"
+#include "sctp_conn.h"
+#include "s1ap_structs.h"
+#include "s1ap_msg_codes.h"
+#include "s1ap_ie.h"
+#include "ProtocolIE-ID.h"
+#include "ProtocolIE-Field.h"
+static void
+parse_erab_pdu(char *msg, int nas_msg_len, struct eRAB_elements *erab)
+{
+ //struct eRAB_header *header = (struct eRAB*)msg;
+
+ //char *ie = msg + 5; /*ID(2)+crit(1)+len(1)+mistry(1)*/
+
+ /*TODO: write parse_IEs for erab IEs here going ahead*/
+ /*For now copying directly as it is single structure*/
+ char *ie = msg + 5; /*ID(2)+crit(1)+len(1)*/
+
+ erab->no_of_elements = 1;
+ erab->elements = (union eRAB_IE*)calloc(sizeof(union eRAB_IE), 1);
+ if(NULL == erab->elements) {
+ log_msg(LOG_ERROR, "Memory alloc failed\n");
+ exit(-1);
+ }
+
+ erab->elements[0].su_res.eRAB_id = *ie;
+ ++ie;
+ ++ie; //what is this identify.
+ memcpy(&(erab->elements[0].su_res.transp_layer_addr), ie, sizeof(unsigned int));
+ erab->elements[0].su_res.transp_layer_addr = ntohl(erab->elements[0].su_res.transp_layer_addr);
+ log_msg(LOG_INFO, "eRAB - Transport layer address : %d\n", erab->elements[0].su_res.transp_layer_addr);
+ //ntohl ??
+ ie+=sizeof(unsigned int);
+
+ memcpy(&(erab->elements[0].su_res.gtp_teid), ie, sizeof(unsigned int));
+ erab->elements[0].su_res.gtp_teid = ntohl(erab->elements[0].su_res.gtp_teid);
+ log_msg(LOG_INFO, "eRAB - Teid : %d\n", erab->elements[0].su_res.gtp_teid);
+ //ntohl ??
+}
+
+void
+parse_nas_pdu(char *msg, int nas_msg_len, struct nasPDU *nas,
+ unsigned short proc_code)
+{
+ log_msg(LOG_INFO, "NAS PDU proc code: %u\n", proc_code);
+
+ unsigned short msg_len = nas_msg_len;
+ char* msg_end = msg + nas_msg_len;
+
+ char *buffer = NULL;
+ log_msg(LOG_INFO, "NAS PDU msg: %s\n", msg_to_hex_str(msg, msg_len, &buffer));
+ log_buffer_free(&buffer);
+
+#if 0
+ if(S1AP_UL_NAS_TX_MSG_CODE == proc_code) {
+ /*check whether there is security header*/
+ unsigned char header_type;
+ memcpy(&header_type, msg+1, 1);
+ header_type >>= 4;
+ if(0 == header_type) { /*not security header*/
+ log_msg(LOG_INFO, "No security header\n");
+ memcpy(&(nas->header), msg+1, 2);/*copy only till msg type*/
+ } else {
+ log_msg(LOG_INFO, "Security header\n");
+ /*now for esm resp, there is procedure tx identity, why the hell it was not there before.*/
+ /*one more donkey logic, do something!!*/
+ if(4 == header_type || ((7 == (*(msg+7) & 7)))) {
+ memcpy(&(nas->header), msg+7, 2);/*copy only till msg type*/
+ offset = 9;
+ } else {
+ unsigned char tmp;
+ memcpy(&(nas->header.message_type), msg+9, 1);/*copy only till msg type*/
+ memcpy(&(tmp), msg+7, 1);/*copy only till msg type*/
+ nas->header.security_header_type = tmp;
+ offset = 10;
+ }
+ }
+ } else {
+ memcpy(&(nas->header), msg+2, sizeof(nas_pdu_header));
+ }
+
+ if(S1AP_UL_NAS_TX_MSG_CODE == proc_code) {
+ /*check whether there is security header*/
+ unsigned char header_type = 0;
+
+ memcpy(&header_type, msg+1, 1);
+ header_type >>= 4;
+ if(0 == header_type) { /*not security header*/
+ log_msg(LOG_INFO, "No security header\n");
+ memcpy(&(nas->header), msg+1, 2);/*copy only till msg type*/
+ } else {
+ log_msg(LOG_INFO, "Security header\n");
+ /*now for esm resp, there is procedure tx identity, why the hell it was not there before.*/
+ /*one more donkey logic, do something!!*/
+ if(4 == header_type || ((7 == (*(msg+7) & 7)))) {
+ log_msg(LOG_INFO, "header == 4 || 7\n");
+ if(header_type == 4 || header_type == 2) {
+ log_msg(LOG_INFO, "security - cihpered\n");
+ memcpy(&(nas->header), msg+7, 2);/*copy only till msg type*/
+ offset = 9;
+ }
+ else {
+ log_msg(LOG_INFO, "security - noned\n");
+ memcpy(&(nas->header), msg+1, 2);/*copy only till msg type*/
+ offset = 3;
+ }
+ } else {
+ unsigned char tmp;
+ memcpy(&(nas->header.message_type), msg+9, 1);/*copy only till msg type*/
+ memcpy(&(tmp), msg+7, 1);/*copy only till msg type*/
+ nas->header.security_header_type = tmp;
+ offset = 10;
+ }
+ }
+ } else if (S1AP_INITIAL_UE_MSG_CODE == proc_code ) {
+#endif
+
+ nas_pdu_header_sec nas_header_sec;
+ nas_pdu_header_short nas_header_short;
+ nas_pdu_header_long nas_header_long;
+
+ unsigned char sec_header_type;
+ unsigned char protocol_discr;
+
+ sec_header_type = (msg[0] >> 4) & 0x0F;
+ protocol_discr = msg[0] & 0x0F;
+ unsigned char is_ESM = ((unsigned short)protocol_discr == 0x02); // see TS 24.007
+ log_msg(LOG_INFO, "Security header=%d\n", sec_header_type);
+ log_msg(LOG_INFO, "Protocol discriminator=%d\n", protocol_discr);
+ log_msg(LOG_INFO, "is_ESM=%d\n", is_ESM);
+
+ if(0 != sec_header_type) { /*security header*/
+ log_msg(LOG_INFO, "Security header\n");
+ if(SERVICE_REQ_SECURITY_HEADER == sec_header_type)
+ {
+ log_msg(LOG_INFO, "Recvd security header for Service request.");
+ nas->header.security_header_type = sec_header_type;
+ nas->header.proto_discriminator = protocol_discr;
+ msg += 1;
+ nas->header.ksi = msg[0] >> 4;
+ nas->header.seq_no = msg[0] & 0x0F;
+ msg += 1;
+ memcpy(nas->header.short_mac, msg, SHORT_MAC_SIZE);
+ nas->header.message_type = NAS_SERVICE_REQUEST;
+ return;
+ }
+
+ memcpy(&nas_header_sec, msg, sizeof(nas_pdu_header_sec));
+
+ char *buffer = NULL;
+ log_msg(LOG_INFO, "mac=%s\n", msg_to_hex_str((char *)nas_header_sec.mac, MAC_SIZE, &buffer));
+ log_buffer_free(&buffer);
+
+ log_msg(LOG_INFO, "seq no=%x\n", nas_header_sec.seq_no);
+ nas->header.seq_no = nas_header_sec.seq_no;
+ msg += 6;
+
+ sec_header_type = msg[0] >> 4;
+ protocol_discr = msg[0] & 0x0F;
+ unsigned char is_ESM = ((unsigned short)protocol_discr == 0x02); // see TS 24.007
+ log_msg(LOG_INFO, "Security header=%d\n", sec_header_type);
+ log_msg(LOG_INFO, "Protocol discriminator=%d\n", protocol_discr);
+ log_msg(LOG_INFO, "is_ESM=%d\n", is_ESM);
+ if (is_ESM) {
+ log_msg(LOG_INFO, "NAS PDU is ESM\n");
+ memcpy(&nas_header_long, msg, sizeof(nas_header_long)); /*copy only till msg type*/
+ msg += 3;
+
+ nas->header.security_header_type = nas_header_long.security_header_type;
+ nas->header.proto_discriminator = nas_header_long.proto_discriminator;
+ nas->header.procedure_trans_identity = nas_header_long.procedure_trans_identity;
+ nas->header.message_type = nas_header_long.message_type;
+ } else {
+ log_msg(LOG_INFO, "NAS PDU is EMM\n");
+ memcpy(&nas_header_short, msg, sizeof(nas_header_short)); /*copy only till msg type*/
+ msg += 2;
+
+ nas->header.security_header_type = nas_header_short.security_header_type;
+ nas->header.proto_discriminator = nas_header_short.proto_discriminator;
+ nas->header.message_type = nas_header_short.message_type;
+ }
+ } else {
+ log_msg(LOG_INFO, "No security header\n");
+ memcpy(&nas_header_short, msg, sizeof(nas_header_short)); /*copy only till msg type*/
+ msg += 2;
+
+ nas->header.security_header_type = nas_header_short.security_header_type;
+ nas->header.proto_discriminator = nas_header_short.proto_discriminator;
+ nas->header.message_type = nas_header_short.message_type;
+ }
+
+
+ log_msg(LOG_INFO, "Nas msg type: %X\n", nas->header.message_type);
+
+ switch(nas->header.message_type) {
+ case NAS_ESM_RESP:{
+ log_msg(LOG_INFO, "NAS_ESM_RESP recvd\n");
+
+ unsigned char element_id;
+ memcpy(&element_id, msg, 1);
+ msg++;
+ nas->elements_len +=1;
+
+ nas->elements = calloc(sizeof(nas_pdu_elements), 2);
+ //if(NULL == nas.elements)...
+
+ nas->elements[0].msgType = NAS_IE_TYPE_APN;
+ memcpy(&(nas->elements[0].pduElement.apn.len), msg, 1);
+ msg++;
+ memcpy(nas->elements[0].pduElement.apn.val, msg, nas->elements[0].pduElement.apn.len);
+ log_msg(LOG_INFO, "APN name - %s\n", nas->elements[0].pduElement.apn.val);
+ break;
+ }
+
+ case NAS_SEC_MODE_COMPLETE:
+ log_msg(LOG_INFO, "NAS_SEC_MODE_COMPLETE recvd\n");
+ break;
+
+ case NAS_AUTH_RESP:
+ log_msg(LOG_INFO, "NAS_AUTH_RESP recvd\n");
+ nas->elements_len = 1;
+ nas->elements = calloc(sizeof(nas_pdu_elements), 5);
+ //if(NULL == nas.elements)...
+ unsigned short len = get_length(&msg);
+ memcpy(&(nas->elements[0].pduElement.auth_resp), msg, sizeof(struct XRES));
+
+ break;
+
+ case NAS_IDENTITY_RESPONSE: {
+ log_msg(LOG_INFO, "NAS_IDENTITY_RESPONSE recvd\n");
+ nas->elements_len = 1;
+ nas->elements = calloc(sizeof(nas_pdu_elements), 1);
+ unsigned short imsi_len = get_length(&msg);
+ /*EPS mobility identity. TODO : More error checking */
+ memcpy(&(nas->elements[0].pduElement.IMSI), msg, imsi_len);
+ break;
+ }
+
+ case NAS_TAU_REQUEST:
+ log_msg(LOG_INFO, "NAS_TAU_REQUEST recvd\n");
+ break;
+
+ case NAS_AUTH_FAILURE:
+ {
+ nas->elements_len = 1;
+ nas->elements = calloc(sizeof(nas_pdu_elements), 1);
+ //if(NULL == nas.elements)...
+ char err = *(char*)(msg);
+ if(err == AUTH_SYNC_FAILURE)
+ {
+ log_msg(LOG_INFO, "AUTH Sync Failure. Start Re-Sync");
+ nas->elements[0].msgType = NAS_IE_TYPE_AUTH_FAIL_PARAM;
+ memcpy(&(nas->elements[0].pduElement.auth_fail_resp), msg + 2, sizeof(struct AUTS));
+ }
+ else
+ {
+ log_msg(LOG_ERROR, "Authentication Failure. Mac Failure");
+ }
+
+ }break;
+ case NAS_ATTACH_REQUEST:{
+ log_msg(LOG_INFO, "NAS_ATTACH_REQUEST recvd\n");
+
+ unsigned char tmp = msg[0];
+ nas->header.security_encryption_algo = (tmp & 0xF0) >> 4;
+ nas->header.security_integrity_algo = tmp & 0x0F;
+ msg++;
+
+ nas->elements_len = 7;
+ nas->elements = calloc(sizeof(nas_pdu_elements), nas->elements_len);
+
+
+ int index = 0;
+ unsigned short imsi_len = get_length(&msg);
+
+ bool odd = msg[0] & 0x08;
+ unsigned char eps_identity = msg[0] & 0x07;
+ switch(eps_identity) {
+ case 0x01: {
+ // Mobile Identity contains imsi
+ nas->flags |= NAS_MSG_UE_IE_IMSI;
+ log_msg(LOG_INFO, "IMSI len=%u - %u\n", imsi_len, BINARY_IMSI_LEN);
+ nas->elements[index].msgType = NAS_IE_TYPE_EPS_MOBILE_ID_IMSI;
+ memcpy(&(nas->elements[index].pduElement.IMSI), msg, imsi_len);
+ break;
+ }
+ case 0x06: {
+ log_msg(LOG_INFO, "Mobile identity GUTI Rcvd \n");
+ // Mobile Identity contains GUTI
+ // MCC+MNC offset = 3
+ // MME Group Id = 2
+ // MME Code = 1
+ // MTMSI offset from start of this AVP = 3 + 2 + 1
+ nas->elements[index].msgType = NAS_IE_TYPE_EPS_MOBILE_ID_IMSI;
+ memcpy(&nas->elements[index].pduElement.mi_guti.plmn_id.idx, &msg[1], 3);
+ nas->elements[index].pduElement.mi_guti.mme_grp_id = ntohs(*(short int *)(&msg[4]));
+ nas->elements[index].pduElement.mi_guti.mme_code = msg[6];
+ nas->elements[index].pduElement.mi_guti.m_TMSI = ntohl(*((unsigned int *)(&msg[7])));
+ log_msg(LOG_INFO, "NAS Attach Request Rcvd ID: GUTI. PLMN id %d %d %d \n", nas->elements[index].pduElement.mi_guti.plmn_id.idx[0],
+ nas->elements[index].pduElement.mi_guti.plmn_id.idx[1],
+ nas->elements[index].pduElement.mi_guti.plmn_id.idx[2] );
+ log_msg(LOG_INFO, "NAS Attach Request Rcvd ID: GUTI. mme group id = %d, MME code %d mtmsi = %d\n",
+ nas->elements[index].pduElement.mi_guti.mme_grp_id,
+ nas->elements[index].pduElement.mi_guti.mme_code,
+ nas->elements[index].pduElement.mi_guti.m_TMSI);
+ nas->flags |= NAS_MSG_UE_IE_GUTI;
+ break;
+ }
+ case 0x03: {
+ // Mobile Identity contains imei
+ break;
+ }
+ }
+
+ msg += imsi_len;
+ char *buffer = NULL;
+ log_msg(LOG_INFO, "IMSI=%s [to be read nibble-swapped]\n",
+ msg_to_hex_str((char *)nas->elements[index].pduElement.IMSI, imsi_len, &buffer));
+ log_buffer_free(&buffer);
+
+ /*UE network capacity*/
+ index++;
+ nas->elements[index].msgType =
+ NAS_IE_TYPE_UE_NETWORK_CAPABILITY;
+ nas->elements[index].pduElement.ue_network.len = msg[0];
+ msg++;
+ memcpy(
+ (nas->elements[index].pduElement.ue_network.capab)
+ ,msg,
+ nas->elements[index].pduElement.ue_network.len);
+ msg += nas->elements[index].pduElement.ue_network.len;
+
+ index++;
+ /*ESM msg container*/
+ len = msg[0] << 8 | msg[1];
+ msg += 2;
+ //now msg points to ESM message contents
+ log_msg(LOG_INFO, "len=%x\n", len);
+ log_msg(LOG_INFO, "msg[0]=%x\n", msg[0]);
+ nas->elements[index].pduElement.pti = msg[1];
+ nas->elements[index].msgType = NAS_IE_TYPE_PTI;
+ log_msg(LOG_INFO, "pti=%x\n", nas->elements[index].pduElement.pti);
+ unsigned short int msg_offset = 4;
+ /*ESM message header len is 4: bearer_id_flags(1)+proc_tx_id(1)+msg_id(1)
+ * +pdn_type(1)*/
+ /*element id 13(1101....) = "esm required" flag*/
+ //if tx_flag is absent then it means flag is set to false
+ //nas->elements[index].pduElement.esm_info_tx_required = false;
+ while(msg_offset < len)
+ {
+ unsigned char val = msg[msg_offset];
+ log_msg(LOG_INFO, "ESM container AVP val=%x\n", val);
+ if(13 == (val>>4))
+ {
+ index++;
+ nas->elements[index].msgType = NAS_IE_TYPE_TX_FLAG;
+ // byte 0 - EBI+PD, byte1 - pti, byte2 - message type, byte3 - pdntype+reqtype, byte4 - ESM info transfer flag == Total 5 bytes... msg[0] to msg[4]
+ //nas->elements[2].esm_info_tx_required = true;
+ if(val & 1) {
+ nas->elements[index].pduElement.esm_info_tx_required = true;
+ log_msg(LOG_INFO, "ESM information requested ");
+ }
+ msg_offset++; /* just one byte AVP */
+ continue;
+
+ }
+
+ if(0x27 == val)
+ {
+ unsigned short int pco_offset = msg_offset;
+ unsigned char pco_length = msg[msg_offset+1];
+ pco_offset += 2; // now points to first pco payload byte
+ pco_offset += 1; // 1 byte header skipping Extension + Configuration Protocol
+ unsigned short int pco_options=0;
+ log_msg(LOG_INFO, "PCO length %d Msg offset = %d , pco offset = %d ", pco_length, msg_offset, pco_offset);
+ index++;
+ nas->elements[index].msgType = NAS_IE_TYPE_PCO;
+ while(pco_offset < (msg_offset + pco_length))
+ {
+ log_msg(LOG_INFO, "Inside PCO length %d Msg offset = %d , pco offset = %d ", pco_length, msg_offset, pco_offset);
+ unsigned short int type;
+ unsigned char oct_len;
+ memcpy(&type, &msg[pco_offset], sizeof(type));
+ type = htons(type);
+ pco_offset += 2;
+ oct_len = msg[pco_offset];
+ pco_offset += 1;
+ log_msg(LOG_INFO, "pco element_id=%x len %d \n", type, oct_len);
+ if(type == 0x8021)
+ {
+ nas->elements[index].pduElement.pco_options[pco_options] = 0x8021;
+ pco_options++;
+ }
+ else if(type == 0x000d)
+ {
+ nas->elements[index].pduElement.pco_options[pco_options] = 0x000d;
+ pco_options++;
+ }
+ else if(type == 0x000a)
+ {
+ nas->elements[index].pduElement.pco_options[pco_options] = 0x000a;
+ pco_options++;
+ }
+ else if(type == 0x0005)
+ {
+ nas->elements[index].pduElement.pco_options[pco_options] = 0x0005;
+ pco_options++;
+ }
+ else if(type == 0x0010)
+ {
+ nas->elements[index].pduElement.pco_options[pco_options] = 0x0010;
+ pco_options++;
+ }
+ else if(type == 0x0011)
+ {
+ nas->elements[index].pduElement.pco_options[pco_options] = 0x0011;
+ pco_options++;
+ }
+ pco_offset += oct_len;
+ }
+
+ //pco
+ msg_offset = pco_length + 2; // msg offset was already at PCO AVP type. Now it should point to next AVP type
+ continue;
+ }
+ break; // unhandled ESM AVP...Add support..for now just break out..else we would be in tight loop
+ }
+ msg += len;
+
+ unsigned char elem_id = msg[0];
+ while(msg != msg_end)
+ {
+ elem_id = msg[0];
+ elem_id >>= 4;
+ if((NAS_IE_TYPE_GUTI_TYPE == elem_id)
+ || (NAS_IE_TYPE_TMSI_STATUS == elem_id)
+ || (NAS_IE_TYPE_MS_NETWORK_FEATURE_SUPPORT == elem_id))
+ {
+ switch(elem_id)
+ {
+ case NAS_IE_TYPE_GUTI_TYPE:
+ {
+ log_msg(LOG_DEBUG, "Old guti type : Skipping.\n");
+ msg++;
+ }break;
+ case NAS_IE_TYPE_TMSI_STATUS:
+ {
+ log_msg(LOG_DEBUG, "TMSI Status : Skipping.\n");
+ msg++;
+ }break;
+ case NAS_IE_TYPE_MS_NETWORK_FEATURE_SUPPORT:
+ {
+ log_msg(LOG_DEBUG, "MS Network feature support : Skipping.\n");
+ msg++;
+ }break;
+ default:
+ log_msg(LOG_WARNING, "Unknown AVP in attach msg. %d \n",elem_id);
+ msg++;
+ }
+
+ continue;
+ }
+ else
+ {
+ elem_id = msg[0];
+ switch(elem_id)
+ {
+ case NAS_IE_TYPE_DRX_PARAM:
+ {
+ log_msg(LOG_DEBUG, "DRX Param : Skipping.\n");
+ msg += 3;
+ }break;
+ case NAS_IE_TYPE_TAI:
+ {
+ log_msg(LOG_DEBUG, "TAI : Skipping.\n");
+ msg += 6;
+ }break;
+ case NAS_IE_TYPE_MS_CLASSMARK_2:
+ {
+ log_msg(LOG_DEBUG, "MS classmark 2 : Skipping.\n");
+ int len = msg[1];
+ msg += len + 2; //msgid + len field + len;
+ }break;
+ case NAS_IE_TYPE_VOICE_DOMAIN_PREF_UE_USAGE_SETTING:
+ {
+ log_msg(LOG_DEBUG, "Voice domain UE Usage : Skipping.\n");
+ int len = msg[1];
+ msg += len + 2; //msgid + len field + len;
+ }break;
+ case NAS_IE_TYPE_MS_NETWORK_CAPABILITY:
+ {
+ log_msg(LOG_DEBUG, "MS Network capability : Handling.\n");
+ index++;
+ nas->elements[index].msgType = NAS_IE_TYPE_MS_NETWORK_CAPABILITY;
+ nas->elements[index].pduElement.ms_network.pres = true;
+ nas->elements[index].pduElement.ms_network.element_id
+ = msg[0];
+ msg++;
+ nas->elements[index].pduElement.ms_network.len = msg[0];
+ msg++;
+ memcpy(
+ (nas->elements[index].pduElement.ms_network.capab),
+ msg,
+ nas->elements[index].pduElement.ms_network.len);
+ msg +=
+ nas->elements[index].pduElement.ms_network.len;
+ }break;
+ default:
+ log_msg(LOG_WARNING, "Unknown AVP in Attach Req %d \n", elem_id);
+ msg++;
+ }
+
+ continue;
+ }
+ }
+ break;
+ }
+
+ case NAS_ATTACH_COMPLETE:
+ log_msg(LOG_INFO, "NAS_ATTACH_COMPLETE recvd\n");
+ /*Other than error check there seems no information to pass to mme. Marking TODO for protocol study*/
+ break;
+
+ case NAS_DETACH_REQUEST: {
+ log_msg(LOG_INFO, "NAS_DETACH_REQUEST recvd\n");
+ nas->elements_len = 1;
+ nas->elements = calloc(sizeof(nas_pdu_elements), 1);
+
+ /*EPS mobility identity*/
+ memcpy(&(nas->elements[0].pduElement.mi_guti), msg + 11, sizeof(guti));
+ log_msg(LOG_INFO, "M-TMSI - %d\n", nas->elements[0].pduElement.mi_guti.m_TMSI);
+ break;
+ }
+
+ case NAS_DETACH_ACCEPT: {
+ log_msg(LOG_INFO, "NAS_DETACH_ACCEPT recvd\n");
+ break;
+ }
+
+ default:
+ log_msg(LOG_ERROR, "Unknown NAS Message type- 0x%x\n", nas->header.message_type);
+ break;
+
+ }
+}
+
+
+int
+parse_IEs(char *msg, struct proto_IE *proto_ies, unsigned short proc_code)
+{
+ unsigned short int no_of_IEs=0;
+
+ //short data_size=0;
+ //msg +=1;
+ //memcpy(&data_size, msg, 1);
+
+ //msg +=2;
+ memcpy(&no_of_IEs, msg, 2);
+ //no_of_IEs=msg[0];
+ no_of_IEs = ntohs(no_of_IEs);
+
+ /*Dumb logic....protocol or is creepy. Len sometimes comes in 3 bytes. How to know that??*/
+ if(0 == no_of_IEs) {
+ ++msg;
+ memcpy(&no_of_IEs, msg, 2);
+ no_of_IEs = ntohs(no_of_IEs);
+ }
+
+ log_msg(LOG_INFO, "No. of IEs = %d\n", no_of_IEs);
+ proto_ies->no_of_IEs = no_of_IEs;
+ proto_ies->data = calloc(sizeof(struct proto_IE_data), no_of_IEs);
+ //alloc fail chk
+ msg+=2;
+
+ for(int i=0; i < no_of_IEs; ++i) {
+ struct proto_IE_data *ie = &(proto_ies->data[i]);
+ unsigned short IE_type, IE_data_len = 0;
+
+ memcpy(&IE_type, msg, sizeof(short int));
+ IE_type = ntohs(IE_type);
+ ie->IE_type = IE_type;
+ msg +=2;//next to ie type
+ msg +=1;//next to criticality
+
+ IE_data_len = get_length(&msg);
+ log_msg(LOG_INFO, "IE [%d]: type = %d\n", i, IE_type);
+ log_msg(LOG_INFO, "IE [%d]: data len= %x - %u\n", i, IE_data_len, IE_data_len);
+
+ char *buffer = NULL;
+ log_msg(LOG_INFO, "IE [%d]: value= %s\n", i, msg_to_hex_str(msg, IE_data_len, &buffer));
+ log_buffer_free(&buffer);
+
+ /*Based on IE_Type call the parser to read IE info*/
+ /*TODO: optimize with function ptr etc.*/
+ switch(IE_type) {
+ case S1AP_IE_GLOBAL_ENB_ID:
+ log_msg(LOG_INFO, "IE [%d]: parse global eNB ID\n", i);
+ ie_parse_global_enb_id(msg+6, IE_data_len);
+ break;
+
+ case S1AP_IE_ENB_NAME:
+ log_msg(LOG_INFO, "IE [%d]: parse global eNB name\n", i);
+ ie_parse_enb_name(msg, IE_data_len);
+ break;
+
+ case S1AP_IE_SUPPORTED_TAS:
+ break;
+
+ case S1AP_IE_DEF_PAGING_DRX:
+ break;
+
+ case S1AP_IE_MME_UE_ID:{
+ ie->val.mme_ue_s1ap_id = decode_int_val((unsigned char *)msg,
+ IE_data_len);
+ log_msg(LOG_INFO, "IE [%d]: parse MME_UE_S1AP_ID - %d\n", i,
+ ie->val.mme_ue_s1ap_id);
+ break;
+ }
+
+ case S1AP_IE_ENB_UE_ID:{
+ ie->val.enb_ue_s1ap_id = decode_int_val((unsigned char *)msg,
+ IE_data_len);
+ log_msg(LOG_INFO, "IE [%d]: parse ENB_UE_S1AP_ID - %d\n", i,
+ ie->val.enb_ue_s1ap_id);
+ break;
+ }
+
+ case S1AP_IE_TAI:{
+ log_msg(LOG_INFO, "IE [%d]: TAI parse\n", i);
+ memcpy(&(ie->val.tai), msg+1, sizeof(struct TAI));
+ log_msg(LOG_INFO, "IE [%d]: plmn-%x %x %x, tac-%d\n", i,
+ ie->val.tai.plmn_id.idx[0],
+ ie->val.tai.plmn_id.idx[1], ie->val.tai.plmn_id.idx[2],
+ ie->val.tai.tac);
+ break;
+ }
+
+ case S1AP_IE_UTRAN_CGI:{
+ log_msg(LOG_INFO, "IE [%d]: EUTRAN CGI\n", i);
+ memset(&(ie->val.utran_cgi), 0, sizeof(struct CGI));
+ memcpy(&(ie->val.utran_cgi), msg+1, sizeof(struct CGI));
+ log_msg(LOG_INFO, "IE [%d]: plmn-%x %x %x, cell-%d\n", i,
+ ie->val.utran_cgi.plmn_id.idx[0],
+ ie->val.utran_cgi.plmn_id.idx[1], ie->val.utran_cgi.plmn_id.idx[2],
+ ie->val.utran_cgi.cell_id);
+ break;
+ }
+
+ case S1AP_IE_NAS_PDU: {
+ log_msg(LOG_INFO, "IE [%d]: NAS msg type parsed = %x\n", i,
+ ie->val.nas.header.message_type);
+ parse_nas_pdu(msg, IE_data_len, &ie->val.nas, proc_code);
+ break;
+ }
+
+ case S1AP_IE_RRC_EST_CAUSE: {
+ log_msg(LOG_INFO, "IE [%d]: parse RRC establishment code - %d\n", i,
+ ie->val.rrc_est_cause);
+ break;
+ }
+
+ case S1AP_ERAB_SETUP_CTX_SUR:
+ log_msg(LOG_INFO, "IE [%d]: parse S1AP_ERAB_SETUP_CTX_SUR parse_erab_pdu \n", i);
+ parse_erab_pdu(msg, IE_data_len, &ie->val.erab);
+ break;
+
+ default:
+ log_msg(LOG_INFO, "IE [%d]: Check IE type %d\n", i, IE_type);
+ break;
+ }
+
+ msg += (IE_data_len);
+ if(128 == IE_data_len) ++msg;//TODO: byte size issue. chk thi.
+ }
+ return 0;
+}
+
+int convertToInitUeProtoIe(InitiatingMessage_t *msg, struct proto_IE* proto_ies)
+{
+ proto_ies->procedureCode = msg->procedureCode;
+ proto_ies->criticality = msg->criticality;
+
+ if(msg->value.present == InitiatingMessage__value_PR_InitialUEMessage)
+ {
+ ProtocolIE_Container_129P32_t* protocolIes = &msg->value.choice.InitialUEMessage.protocolIEs;
+ proto_ies->no_of_IEs = protocolIes->list.count;
+
+ log_msg(LOG_INFO, "No of IEs = %d\n", proto_ies->no_of_IEs);
+ proto_ies->data = calloc(sizeof(struct proto_IE_data), proto_ies->no_of_IEs);
+ if(proto_ies->data == NULL) {
+ log_msg(LOG_ERROR,"Calloc failed for protocol IE.");
+ return -1;
+ }
+ for (int i = 0; i < protocolIes->list.count; i++) {
+ InitialUEMessage_IEs_t *ie_p;
+ ie_p = protocolIes->list.array[i];
+ switch(ie_p->id) {
+ case ProtocolIE_ID_id_eNB_UE_S1AP_ID:
+ {
+ ENB_UE_S1AP_ID_t *s1apENBUES1APID_p = NULL;
+ if(InitialUEMessage_IEs__value_PR_ENB_UE_S1AP_ID == ie_p->value.present)
+ {
+ s1apENBUES1APID_p = &ie_p->value.choice.ENB_UE_S1AP_ID;
+ }
+
+ if (s1apENBUES1APID_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE eNB_UE_S1AP_ID failed\n");
+ return -1;
+ }
+
+ log_msg(LOG_DEBUG, "ENB UE S1ap ID decode Success\n");
+ proto_ies->data[i].IE_type = S1AP_IE_ENB_UE_ID;
+ memcpy(&proto_ies->data[i].val.enb_ue_s1ap_id, s1apENBUES1APID_p, sizeof(ENB_UE_S1AP_ID_t));
+ s1apENBUES1APID_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_NAS_PDU:
+ {
+ NAS_PDU_t *s1apNASPDU_p = NULL;
+ if(InitialUEMessage_IEs__value_PR_NAS_PDU == ie_p->value.present)
+ {
+ s1apNASPDU_p = &ie_p->value.choice.NAS_PDU;
+ }
+
+ if (s1apNASPDU_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE NAS PDU failed\n");
+ return -1;
+ }
+
+ log_msg(LOG_DEBUG, "NAS PDU decode Success\n");
+ proto_ies->data[i].IE_type = S1AP_IE_NAS_PDU;
+ parse_nas_pdu((char*)s1apNASPDU_p->buf, s1apNASPDU_p->size,
+ &proto_ies->data[i].val.nas, msg->procedureCode);
+ s1apNASPDU_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_TAI:
+ {
+ TAI_t *s1apTAI_p = NULL;
+ if(InitialUEMessage_IEs__value_PR_TAI == ie_p->value.present)
+ {
+ s1apTAI_p = &ie_p->value.choice.TAI;
+ }
+
+ if (s1apTAI_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE TAI failed\n");
+ return -1;
+ }
+
+ log_msg(LOG_DEBUG, "TAI decode Success\n");
+ proto_ies->data[i].IE_type = S1AP_IE_TAI;
+ memcpy(&proto_ies->data[i].val.tai.tac, s1apTAI_p->tAC.buf, s1apTAI_p->tAC.size);
+ memcpy(proto_ies->data[i].val.tai.plmn_id.idx,
+ s1apTAI_p->pLMNidentity.buf, s1apTAI_p->pLMNidentity.size);
+ s1apTAI_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_EUTRAN_CGI:
+ {
+ EUTRAN_CGI_t* s1apCGI_p = NULL;;
+ if(InitialUEMessage_IEs__value_PR_EUTRAN_CGI == ie_p->value.present)
+ {
+ s1apCGI_p = &ie_p->value.choice.EUTRAN_CGI;
+ }
+
+ if (s1apCGI_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE CGI failed\n");
+ return -1;
+ }
+
+ log_msg(LOG_DEBUG, "CGI decode Success\n");
+ proto_ies->data[i].IE_type = S1AP_IE_UTRAN_CGI;
+ memcpy(&proto_ies->data[i].val.utran_cgi.cell_id,
+ s1apCGI_p->cell_ID.buf, s1apCGI_p->cell_ID.size);
+ memcpy(proto_ies->data[i].val.utran_cgi.plmn_id.idx,
+ s1apCGI_p->pLMNidentity.buf, s1apCGI_p->pLMNidentity.size);
+ s1apCGI_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_RRC_Establishment_Cause:
+ {
+ RRC_Establishment_Cause_t *s1apRRCEstCause_p;
+ if(InitialUEMessage_IEs__value_PR_RRC_Establishment_Cause == ie_p->value.present)
+ {
+ s1apRRCEstCause_p = &ie_p->value.choice.RRC_Establishment_Cause;
+ }
+
+ if (s1apRRCEstCause_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE RRC Cause failed\n");
+ return -1;
+ }
+
+ log_msg(LOG_DEBUG, "RRC Cause decode Success\n");
+ proto_ies->data[i].IE_type = S1AP_IE_RRC_EST_CAUSE;
+ proto_ies->data[i].val.rrc_est_cause = (enum ie_RRC_est_cause) *s1apRRCEstCause_p;
+ s1apRRCEstCause_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_S_TMSI:
+ {
+ S_TMSI_t* s1apStmsi_p = NULL;;
+ if(InitialUEMessage_IEs__value_PR_S_TMSI == ie_p->value.present)
+ {
+ s1apStmsi_p = &ie_p->value.choice.S_TMSI;
+ }
+
+ if (s1apStmsi_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE STMSI failed\n");
+ return -1;
+ }
+
+ //struct STMSI s_tmsi
+ proto_ies->data[i].IE_type = S1AP_IE_S_TMSI;
+ memcpy(&proto_ies->data[i].val.s_tmsi.mme_code,
+ s1apStmsi_p->mMEC.buf, sizeof(uint8_t));
+ memcpy(&proto_ies->data[i].val.s_tmsi.m_TMSI,
+ s1apStmsi_p->m_TMSI.buf, sizeof(uint32_t));
+ s1apStmsi_p = NULL;
+ } break;
+ default:
+ {
+ log_msg(LOG_WARNING, "Unhandled IE %d in initial UE message ", ie_p->id);
+ }
+ }
+ }
+ }
+
+ return 0;
+}
+
+static int
+init_ue_msg_handler(InitiatingMessage_t *msg, int enb_fd)
+{
+ //TODO: use static instead of synamic for perf.
+ struct proto_IE proto_ies;
+
+ log_msg(LOG_INFO, "S1AP_INITIAL_UE_MSG msg: \n");
+
+ /* TODO : Error handling. Bad message will lead crash.
+ * Preferably reject the message, increment stats.
+ */
+ int decode_result = convertToInitUeProtoIe(msg, &proto_ies);
+ if(decode_result < 0 )
+ {
+ log_msg(LOG_ERROR, "S1ap message decode failed. Dropping message");
+ return E_FAIL;
+ }
+
+ /*Check nas message type*/
+ //TODO: check through all proto IEs for which is nas
+ //currentlyy hard coding to 2 looking at packets
+ log_msg(LOG_INFO, "NAS msg type parsed = %x\n", proto_ies.data[1].val.nas.header.message_type);
+ switch(proto_ies.data[1].val.nas.header.message_type) {
+ case NAS_ATTACH_REQUEST:
+ s1_init_ue_handler(&proto_ies, enb_fd);
+ break;
+
+ case NAS_SERVICE_REQUEST:
+ s1_init_ue_service_req_handler(&proto_ies, enb_fd);
+ break;
+
+ case NAS_DETACH_REQUEST:
+ detach_stage1_handler(&proto_ies, true);
+ break;
+
+ case NAS_DETACH_ACCEPT:
+ detach_accept_from_ue_handler(&proto_ies, true);
+ break;
+
+ case NAS_TAU_REQUEST:
+ tau_request_handler(&proto_ies, enb_fd);
+ break;
+ }
+
+ free(proto_ies.data);
+ //TODO: free IEs
+ return SUCCESS;
+}
+
+static int
+UL_NAS_msg_handler(InitiatingMessage_t *msg, int enb_fd)
+{
+ //TODO: use static instead of synamic for perf.
+ struct proto_IE proto_ies;
+
+ log_msg(LOG_INFO, "S1AP_UL_NAS_TX_MSG msg \n");
+
+ convertUplinkNasToProtoIe(msg, &proto_ies);
+
+ /*Check nas message type*/
+ //TODO: check through all proto IEs for which is nas
+ //currentlyy hard coding to 2 looking at packets
+ log_msg(LOG_INFO, "NAS msg type = %x\n", proto_ies.data[2].val.nas.header.message_type);
+ switch(proto_ies.data[2].val.nas.header.message_type) {
+ case NAS_AUTH_RESP:
+ s1_auth_resp_handler(&proto_ies);
+ break;
+
+ case NAS_AUTH_FAILURE:
+ s1_auth_fail_handler(&proto_ies);
+ break;
+
+ case NAS_ATTACH_REQUEST:
+ s1_init_ue_handler(&proto_ies, enb_fd);
+ break;
+
+ case NAS_SEC_MODE_COMPLETE:
+ s1_secmode_resp_handler(&proto_ies);
+ break;
+
+ case NAS_ESM_RESP:
+ s1_esm_resp_handler(&proto_ies);
+ break;
+
+ case NAS_ATTACH_COMPLETE:
+ s1_attach_complete_handler(&proto_ies);
+ break;
+
+ case NAS_DETACH_REQUEST:
+ detach_stage1_handler(&proto_ies, false);
+ break;
+
+ case NAS_DETACH_ACCEPT:
+ detach_accept_from_ue_handler(&proto_ies, false);
+ break;
+
+ case NAS_IDENTITY_RESPONSE:
+ s1_identity_resp_handler(&proto_ies);
+ break;
+
+ case NAS_TAU_REQUEST:
+ tau_request_handler(&proto_ies, enb_fd);
+ break;
+ }
+
+ //TODO: free IEs
+ free(proto_ies.data);
+ return SUCCESS;
+}
+
+void
+handle_s1ap_message(void *msg)
+{
+ log_msg(LOG_INFO, "Inside handle_s1ap_message.\n");
+ /*convert message from network to host*/
+
+ /*Call handler for the procedure code. TBD: Tasks pool for handlers*/
+
+ int enb_fd = 0;
+ int msg_size = 0;
+ memcpy(&enb_fd, msg, sizeof(int));
+ memcpy(&msg_size, msg + sizeof(int), sizeof(int));
+ char *message = ((char *) msg) + 2*sizeof(int);
+ S1AP_PDU_t pdu = {(S1AP_PDU_PR_NOTHING)};
+ S1AP_PDU_t *pdu_p = &pdu;
+ asn_dec_rval_t dec_ret = {(RC_OK)};
+ memset ((void *)pdu_p, 0, sizeof (S1AP_PDU_t));
+ dec_ret = aper_decode (NULL, &asn_DEF_S1AP_PDU, (void **)&pdu_p, message, msg_size, 0, 0);
+
+ if (dec_ret.code != RC_OK) {
+ log_msg(LOG_ERROR, "ASN Decode PDU Failed %d\n", dec_ret.consumed);
+ ASN__DECODE_FAILED;
+ free(msg);
+ return;
+ }
+
+ switch (pdu_p->present) {
+ case S1AP_PDU_PR_initiatingMessage:
+ s1ap_mme_decode_initiating (pdu_p->choice.initiatingMessage, enb_fd);
+ break;
+ case S1AP_PDU_PR_successfulOutcome:
+ s1ap_mme_decode_successfull_outcome (pdu_p->choice.successfulOutcome);
+ break;
+ case S1AP_PDU_PR_unsuccessfulOutcome:
+ s1ap_mme_decode_unsuccessfull_outcome (pdu_p->choice.unsuccessfulOutcome);
+ break;
+ default:
+ log_msg(LOG_WARNING, "Unknown message outcome (%d) or not implemented", (int)pdu_p->present);
+ break;
+ }
+
+ return;
+}
+
+int
+s1ap_mme_decode_successfull_outcome (SuccessfulOutcome_t* msg)
+{
+ log_msg(LOG_DEBUG,"successful outcome decode :");
+ log_msg(LOG_INFO, "proc code %d\n", msg->procedureCode);
+ switch (msg->procedureCode) {
+
+ case S1AP_INITIAL_CTX_RESP_CODE:
+ s1_init_ctx_resp_handler(msg);
+ break;
+
+ case S1AP_UE_CONTEXT_RELEASE_CODE:
+ s1_ctx_release_complete_handler(msg);
+ break;
+
+ default:
+ log_msg(LOG_ERROR, "Unknown procedure code - %d\n",
+ msg->procedureCode & 0x00FF);
+ break;
+ }
+
+ return 0;
+}
+
+int
+s1ap_mme_decode_unsuccessfull_outcome (UnsuccessfulOutcome_t *msg)
+{
+ log_msg(LOG_DEBUG,"unsuccessful outcome decode : TBD");
+ return 0;
+}
+
+int
+s1ap_mme_decode_initiating (InitiatingMessage_t *initiating_p, int enb_fd)
+{
+ log_msg(LOG_INFO, "proc code %d\n", initiating_p->procedureCode);
+ switch (initiating_p->procedureCode) {
+
+ case S1AP_SETUP_REQUEST_CODE:
+ s1_setup_handler(initiating_p, enb_fd);
+ break;
+
+ case S1AP_INITIAL_UE_MSG_CODE:
+ init_ue_msg_handler(initiating_p, enb_fd);
+ break;
+
+ case S1AP_UL_NAS_TX_MSG_CODE:
+ UL_NAS_msg_handler(initiating_p, enb_fd);
+ break;
+
+
+ case S1AP_UE_CONTEXT_RELEASE_REQUEST_CODE:
+ s1_ctx_release_request_handler(initiating_p);
+ break;
+
+ default:
+ log_msg(LOG_ERROR, "Unknown procedure code - %d\n",
+ initiating_p->procedureCode & 0x00FF);
+ break;
+ }
+
+ //free(msg);
+ return 0;
+}
+
+int convertUplinkNasToProtoIe(InitiatingMessage_t *msg, struct proto_IE* proto_ies)
+{
+ proto_ies->procedureCode = msg->procedureCode;
+ proto_ies->criticality = msg->criticality;
+ int no_of_IEs = 0;
+
+ if(msg->value.present == InitiatingMessage__value_PR_UplinkNASTransport)
+ {
+ ProtocolIE_Container_129P33_t* protocolIes = &msg->value.choice.UplinkNASTransport.protocolIEs;
+ no_of_IEs = protocolIes->list.count;
+ proto_ies->no_of_IEs = no_of_IEs;
+
+ log_msg(LOG_INFO, "No of IEs = %d\n", no_of_IEs);
+ proto_ies->data = calloc(sizeof(struct proto_IE_data), no_of_IEs);
+ if(proto_ies->data == NULL)
+ {
+ log_msg(LOG_ERROR,"Malloc failed for protocol IE.");
+ return -1;
+ }
+ for (int i = 0; i < protocolIes->list.count; i++) {
+ UplinkNASTransport_IEs_t *ie_p;
+ ie_p = protocolIes->list.array[i];
+ switch(ie_p->id) {
+ case ProtocolIE_ID_id_eNB_UE_S1AP_ID:
+ {
+ ENB_UE_S1AP_ID_t *s1apENBUES1APID_p = NULL;
+ if(UplinkNASTransport_IEs__value_PR_ENB_UE_S1AP_ID == ie_p->value.present)
+ {
+ s1apENBUES1APID_p = &ie_p->value.choice.ENB_UE_S1AP_ID;
+ }
+
+ if (s1apENBUES1APID_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE eNB_UE_S1AP_ID failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].IE_type = S1AP_IE_ENB_UE_ID;
+ memcpy(&proto_ies->data[i].val.enb_ue_s1ap_id, s1apENBUES1APID_p, sizeof(ENB_UE_S1AP_ID_t));
+ s1apENBUES1APID_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_MME_UE_S1AP_ID:
+ {
+ MME_UE_S1AP_ID_t *s1apMMEUES1APID_p = NULL;
+ if(UplinkNASTransport_IEs__value_PR_MME_UE_S1AP_ID == ie_p->value.present)
+ {
+ s1apMMEUES1APID_p = &ie_p->value.choice.MME_UE_S1AP_ID;
+ }
+
+ if (s1apMMEUES1APID_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE MME_UE_S1AP_ID failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].IE_type = S1AP_IE_MME_UE_ID;
+ memcpy(&proto_ies->data[i].val.mme_ue_s1ap_id, s1apMMEUES1APID_p, sizeof(MME_UE_S1AP_ID_t));
+ s1apMMEUES1APID_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_NAS_PDU:
+ {
+ NAS_PDU_t *s1apNASPDU_p = NULL;
+ if(UplinkNASTransport_IEs__value_PR_NAS_PDU == ie_p->value.present)
+ {
+ s1apNASPDU_p = &ie_p->value.choice.NAS_PDU;
+ }
+
+ if (s1apNASPDU_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE NAS PDU failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].IE_type = S1AP_IE_NAS_PDU;
+ parse_nas_pdu((char*)s1apNASPDU_p->buf, s1apNASPDU_p->size,
+ &proto_ies->data[i].val.nas, msg->procedureCode);
+ s1apNASPDU_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_TAI:
+ {
+ TAI_t *s1apTAI_p = NULL;
+ if(UplinkNASTransport_IEs__value_PR_TAI == ie_p->value.present)
+ {
+ s1apTAI_p = &ie_p->value.choice.TAI;
+ }
+
+ if (s1apTAI_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE TAI failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].IE_type = S1AP_IE_TAI;
+ memcpy(&proto_ies->data[i].val.tai.tac, s1apTAI_p->tAC.buf, s1apTAI_p->tAC.size);
+ memcpy(&proto_ies->data[i].val.tai.plmn_id,
+ s1apTAI_p->pLMNidentity.buf, s1apTAI_p->pLMNidentity.size);
+ s1apTAI_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_EUTRAN_CGI:
+ {
+ EUTRAN_CGI_t* s1apCGI_p = NULL;;
+ if(UplinkNASTransport_IEs__value_PR_EUTRAN_CGI == ie_p->value.present)
+ {
+ s1apCGI_p = &ie_p->value.choice.EUTRAN_CGI;
+ }
+
+ if (s1apCGI_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE CGI failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].IE_type = S1AP_IE_UTRAN_CGI;
+ memcpy(&proto_ies->data[i].val.utran_cgi.cell_id,
+ s1apCGI_p->cell_ID.buf, s1apCGI_p->cell_ID.size);
+ memcpy(&proto_ies->data[i].val.utran_cgi.plmn_id.idx,
+ s1apCGI_p->pLMNidentity.buf, s1apCGI_p->pLMNidentity.size);
+ s1apCGI_p = NULL;
+ } break;
+ default:
+ {
+ log_msg(LOG_WARNING, "Unhandled IE %d", ie_p->id);
+ }
+ }
+ }
+ }
+
+ return 0;
+}
+
+int convertInitCtxRspToProtoIe(SuccessfulOutcome_t *msg, struct proto_IE* proto_ies)
+{
+ proto_ies->procedureCode = msg->procedureCode;
+ proto_ies->criticality = msg->criticality;
+ int no_of_IEs = 0;
+
+ if(msg->value.present == SuccessfulOutcome__value_PR_InitialContextSetupResponse)
+ {
+ ProtocolIE_Container_129P20_t* protocolIes
+ = &msg->value.choice.InitialContextSetupResponse.protocolIEs;
+ no_of_IEs = protocolIes->list.count;
+ proto_ies->no_of_IEs = no_of_IEs;
+
+ log_msg(LOG_INFO, "No of IEs = %d\n", no_of_IEs);
+ proto_ies->data = calloc(sizeof(struct proto_IE_data), no_of_IEs);
+ if(proto_ies->data == NULL)
+ {
+ log_msg(LOG_ERROR,"Malloc failed for protocol IE.");
+ return -1;
+ }
+ for (int i = 0; i < protocolIes->list.count; i++) {
+ InitialContextSetupResponseIEs_t *ie_p;
+ ie_p = protocolIes->list.array[i];
+ switch(ie_p->id) {
+ case ProtocolIE_ID_id_eNB_UE_S1AP_ID:
+ {
+ ENB_UE_S1AP_ID_t *s1apENBUES1APID_p = NULL;
+ if(InitialContextSetupResponseIEs__value_PR_ENB_UE_S1AP_ID == ie_p->value.present)
+ {
+ s1apENBUES1APID_p = &ie_p->value.choice.ENB_UE_S1AP_ID;
+ }
+
+ if (s1apENBUES1APID_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE eNB_UE_S1AP_ID failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].IE_type = S1AP_IE_ENB_UE_ID;
+ memcpy(&proto_ies->data[i].val.enb_ue_s1ap_id, s1apENBUES1APID_p, sizeof(ENB_UE_S1AP_ID_t));
+ s1apENBUES1APID_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_MME_UE_S1AP_ID:
+ {
+ MME_UE_S1AP_ID_t *s1apMMEUES1APID_p = NULL;
+ if(InitialContextSetupResponseIEs__value_PR_MME_UE_S1AP_ID == ie_p->value.present)
+ {
+ s1apMMEUES1APID_p = &ie_p->value.choice.MME_UE_S1AP_ID;
+ }
+
+ if (s1apMMEUES1APID_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE MME_UE_S1AP_ID failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].IE_type = S1AP_IE_MME_UE_ID;
+ memcpy(&proto_ies->data[i].val.mme_ue_s1ap_id, s1apMMEUES1APID_p, sizeof(MME_UE_S1AP_ID_t));
+ s1apMMEUES1APID_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_E_RABSetupListCtxtSURes:
+ {
+ E_RABSetupListCtxtSURes_t *s1apErabSetupList_p = NULL;
+ if(InitialContextSetupResponseIEs__value_PR_E_RABSetupListCtxtSURes == ie_p->value.present)
+ {
+ s1apErabSetupList_p = &ie_p->value.choice.E_RABSetupListCtxtSURes;
+ }
+
+ if (s1apErabSetupList_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE s1apErabSetupList failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].IE_type = S1AP_ERAB_SETUP_CTX_SUR;
+ proto_ies->data[i].val.erab.no_of_elements = s1apErabSetupList_p->list.count;
+ proto_ies->data[i].val.erab.elements = calloc(sizeof(union eRAB_IE),
+ s1apErabSetupList_p->list.count);
+ if(proto_ies->data[i].val.erab.elements == NULL)
+ {
+ log_msg(LOG_ERROR,"Malloc failed for protocol IE: Erab elements.");
+ break;;
+ }
+ for (int j = 0;
+ j < s1apErabSetupList_p->list.count; j++)
+ {
+ E_RABSetupItemCtxtSUResIEs_t *ie_p;
+ ie_p = (E_RABSetupItemCtxtSUResIEs_t*)s1apErabSetupList_p->list.array[j];
+ switch(ie_p->id) {
+ case ProtocolIE_ID_id_E_RABSetupItemCtxtSURes:
+ {
+ E_RABSetupItemCtxtSURes_t* s1apErabSetupItem_p = NULL;
+ if(E_RABSetupItemCtxtSUResIEs__value_PR_E_RABSetupItemCtxtSURes == ie_p->value.present)
+ {
+ s1apErabSetupItem_p = &ie_p->value.choice.E_RABSetupItemCtxtSURes;
+ }
+
+ if (s1apErabSetupItem_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE s1apErabSetupItem failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].val.erab.elements[j].su_res.eRAB_id
+ = (unsigned short)s1apErabSetupItem_p->e_RAB_ID;
+ memcpy(
+ &(proto_ies->data[i].val.erab.elements[j].su_res.gtp_teid),
+ s1apErabSetupItem_p->gTP_TEID.buf,
+ s1apErabSetupItem_p->gTP_TEID.size);
+ proto_ies->data[i].val.erab.elements[j].su_res.gtp_teid
+ = ntohl(proto_ies->data[i].val.erab.elements[j].su_res.gtp_teid);
+
+ memcpy(
+ &(proto_ies->data[i].val.erab.elements[j].su_res.transp_layer_addr),
+ s1apErabSetupItem_p->transportLayerAddress.buf,
+ s1apErabSetupItem_p->transportLayerAddress.size);
+ proto_ies->data[i].val.erab.elements[j].su_res.transp_layer_addr
+ = ntohl(proto_ies->data[i].val.erab.elements[j].su_res.transp_layer_addr);
+ s1apErabSetupItem_p = NULL;
+ }break;
+ default:
+ {
+ log_msg(LOG_WARNING, "Unhandled List item %d", ie_p->id);
+ }
+ }
+ }
+
+ s1apErabSetupList_p = NULL;
+ } break;
+ default:
+ {
+ log_msg(LOG_WARNING, "Unhandled IE %d", ie_p->id);
+ }
+ }
+ }
+ }
+
+ return 0;
+}
+
+int convertUeCtxRelComplToProtoIe(SuccessfulOutcome_t *msg, struct proto_IE* proto_ies)
+{
+ proto_ies->procedureCode = msg->procedureCode;
+ proto_ies->criticality = msg->criticality;
+ int no_of_IEs = 0;
+
+ if(msg->value.present == SuccessfulOutcome__value_PR_UEContextReleaseComplete)
+ {
+ ProtocolIE_Container_129P25_t* protocolIes
+ = &msg->value.choice.UEContextReleaseComplete.protocolIEs;
+ no_of_IEs = protocolIes->list.count;
+ proto_ies->no_of_IEs = no_of_IEs;
+
+ log_msg(LOG_INFO, "No of IEs = %d\n", no_of_IEs);
+ proto_ies->data = calloc(sizeof(struct proto_IE_data), no_of_IEs);
+ if(proto_ies->data == NULL)
+ {
+ log_msg(LOG_ERROR,"Malloc failed for protocol IE.");
+ return -1;
+ }
+ for (int i = 0; i < protocolIes->list.count; i++) {
+ UEContextReleaseComplete_IEs_t *ie_p;
+ ie_p = protocolIes->list.array[i];
+ switch(ie_p->id) {
+ case ProtocolIE_ID_id_eNB_UE_S1AP_ID:
+ {
+ ENB_UE_S1AP_ID_t *s1apENBUES1APID_p = NULL;
+ if(UEContextReleaseComplete_IEs__value_PR_ENB_UE_S1AP_ID == ie_p->value.present)
+ {
+ s1apENBUES1APID_p = &ie_p->value.choice.ENB_UE_S1AP_ID;
+ }
+
+ if (s1apENBUES1APID_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE eNB_UE_S1AP_ID failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].IE_type = S1AP_IE_ENB_UE_ID;
+ memcpy(&proto_ies->data[i].val.enb_ue_s1ap_id, s1apENBUES1APID_p, sizeof(ENB_UE_S1AP_ID_t));
+ s1apENBUES1APID_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_MME_UE_S1AP_ID:
+ {
+ MME_UE_S1AP_ID_t *s1apMMEUES1APID_p = NULL;
+ if(UEContextReleaseComplete_IEs__value_PR_MME_UE_S1AP_ID == ie_p->value.present)
+ {
+ s1apMMEUES1APID_p = &ie_p->value.choice.MME_UE_S1AP_ID;
+ }
+
+ if (s1apMMEUES1APID_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE MME_UE_S1AP_ID failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].IE_type = S1AP_IE_MME_UE_ID;
+ memcpy(&proto_ies->data[i].val.mme_ue_s1ap_id, s1apMMEUES1APID_p, sizeof(MME_UE_S1AP_ID_t));
+ s1apMMEUES1APID_p = NULL;
+ } break;
+ default:
+ {
+ log_msg(LOG_WARNING, "Unhandled IE %d\n", ie_p->id);
+ }
+ }
+ }
+ }
+
+ return 0;
+}
+
+int convertUeCtxRelReqToProtoIe(InitiatingMessage_t *msg, struct proto_IE* proto_ies)
+{
+ proto_ies->procedureCode = msg->procedureCode;
+ proto_ies->criticality = msg->criticality;
+ int no_of_IEs = 0;
+
+ if(msg->value.present == InitiatingMessage__value_PR_UEContextReleaseRequest)
+ {
+ ProtocolIE_Container_129P23_t* protocolIes
+ = &msg->value.choice.UEContextReleaseRequest.protocolIEs;
+ no_of_IEs = protocolIes->list.count;
+ proto_ies->no_of_IEs = no_of_IEs;
+
+ log_msg(LOG_INFO, "No of IEs = %d\n", no_of_IEs);
+ proto_ies->data = calloc(sizeof(struct proto_IE_data), no_of_IEs);
+ if(proto_ies->data == NULL)
+ {
+ log_msg(LOG_ERROR,"Malloc failed for protocol IE.");
+ return -1;
+ }
+ for (int i = 0; i < protocolIes->list.count; i++) {
+ UEContextReleaseRequest_IEs_t *ie_p;
+ ie_p = protocolIes->list.array[i];
+ switch(ie_p->id) {
+ case ProtocolIE_ID_id_eNB_UE_S1AP_ID:
+ {
+ ENB_UE_S1AP_ID_t *s1apENBUES1APID_p = NULL;
+ if(UEContextReleaseRequest_IEs__value_PR_ENB_UE_S1AP_ID == ie_p->value.present)
+ {
+ s1apENBUES1APID_p = &ie_p->value.choice.ENB_UE_S1AP_ID;
+ }
+
+ if (s1apENBUES1APID_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE eNB_UE_S1AP_ID failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].IE_type = S1AP_IE_ENB_UE_ID;
+ memcpy(&proto_ies->data[i].val.enb_ue_s1ap_id, s1apENBUES1APID_p, sizeof(ENB_UE_S1AP_ID_t));
+ s1apENBUES1APID_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_MME_UE_S1AP_ID:
+ {
+ MME_UE_S1AP_ID_t *s1apMMEUES1APID_p = NULL;
+ if(UEContextReleaseRequest_IEs__value_PR_MME_UE_S1AP_ID == ie_p->value.present)
+ {
+ s1apMMEUES1APID_p = &ie_p->value.choice.MME_UE_S1AP_ID;
+ }
+
+ if (s1apMMEUES1APID_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE MME_UE_S1AP_ID failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].IE_type = S1AP_IE_MME_UE_ID;
+ memcpy(&proto_ies->data[i].val.mme_ue_s1ap_id, s1apMMEUES1APID_p, sizeof(MME_UE_S1AP_ID_t));
+ s1apMMEUES1APID_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_Cause:
+ {
+ Cause_t *s1apCause_p = NULL;
+ if(UEContextReleaseRequest_IEs__value_PR_Cause == ie_p->value.present)
+ {
+ s1apCause_p = &ie_p->value.choice.Cause;
+ }
+
+ if (s1apCause_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE Cause failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].IE_type = S1AP_IE_CAUSE;
+ proto_ies->data[i].val.cause.present = s1apCause_p->present;
+ switch(s1apCause_p->present)
+ {
+ case Cause_PR_radioNetwork:
+ log_msg (LOG_DEBUG, "RadioNetwork case : %d\n",
+ s1apCause_p->choice.radioNetwork);
+ proto_ies->data[i].val.cause.choice.radioNetwork
+ = s1apCause_p->choice.radioNetwork;
+ break;
+ case Cause_PR_transport:
+ log_msg (LOG_DEBUG, "Transport case : %d\n",
+ s1apCause_p->choice.transport);
+ proto_ies->data[i].val.cause.choice.transport
+ = s1apCause_p->choice.transport;
+ break;
+ case Cause_PR_nas:
+ log_msg (LOG_DEBUG, "Nas case : %d\n",
+ s1apCause_p->choice.nas);
+ proto_ies->data[i].val.cause.choice.nas
+ = s1apCause_p->choice.nas;
+ break;
+ case Cause_PR_protocol:
+ log_msg (LOG_DEBUG, "Protocol case : %d\n",
+ s1apCause_p->choice.protocol);
+ proto_ies->data[i].val.cause.choice.protocol
+ = s1apCause_p->choice.protocol;
+ break;
+ case Cause_PR_misc:
+ log_msg (LOG_DEBUG, "Misc case : %d\n",
+ s1apCause_p->choice.misc);
+ proto_ies->data[i].val.cause.choice.misc
+ = s1apCause_p->choice.misc;
+ break;
+ case Cause_PR_NOTHING:
+ default:
+ log_msg(LOG_WARNING, "Unknown cause %d\n", s1apCause_p->present);
+
+ }
+ s1apCause_p = NULL;
+ } break;
+ default:
+ {
+ log_msg(LOG_WARNING, "Unhandled IE %d\n", ie_p->id);
+ }
+ }
+ }
+ }
+
+ return 0;
+}
+
diff --git a/src/s1ap/handlers/s1ap_msg_delegator.c.bkup b/src/s1ap/handlers/s1ap_msg_delegator.c.bkup
new file mode 100644
index 0000000..9732c6d
--- /dev/null
+++ b/src/s1ap/handlers/s1ap_msg_delegator.c.bkup
@@ -0,0 +1,1279 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <pthread.h>
+
+#include "options.h"
+#include "ipc_api.h"
+#include "main.h"
+#include "s1ap.h"
+#include "s1ap_config.h"
+#include "sctp_conn.h"
+#include "s1ap_structs.h"
+#include "s1ap_msg_codes.h"
+#include "s1ap_ie.h"
+#include "ProtocolIE-ID.h"
+#include "ProtocolIE-Field.h"
+static void
+parse_erab_pdu(char *msg, int nas_msg_len, struct eRAB_elements *erab)
+{
+ //struct eRAB_header *header = (struct eRAB*)msg;
+
+ //char *ie = msg + 5; /*ID(2)+crit(1)+len(1)+mistry(1)*/
+
+ /*TODO: write parse_IEs for erab IEs here going ahead*/
+ /*For now copying directly as it is single structure*/
+ char *ie = msg + 5; /*ID(2)+crit(1)+len(1)*/
+
+ erab->no_of_elements = 1;
+ erab->elements = (union eRAB_IE*)calloc(sizeof(union eRAB_IE), 1);
+ if(NULL == erab->elements) {
+ log_msg(LOG_ERROR, "Memory alloc failed\n");
+ exit(-1);
+ }
+
+ erab->elements[0].su_res.eRAB_id = *ie;
+ ++ie;
+ ++ie; //what is this identify.
+ memcpy(&(erab->elements[0].su_res.transp_layer_addr), ie, sizeof(unsigned int));
+ erab->elements[0].su_res.transp_layer_addr = ntohl(erab->elements[0].su_res.transp_layer_addr);
+ log_msg(LOG_INFO, "eRAB - Transport layer address : %d\n", erab->elements[0].su_res.transp_layer_addr);
+ //ntohl ??
+ ie+=sizeof(unsigned int);
+
+ memcpy(&(erab->elements[0].su_res.gtp_teid), ie, sizeof(unsigned int));
+ erab->elements[0].su_res.gtp_teid = ntohl(erab->elements[0].su_res.gtp_teid);
+ log_msg(LOG_INFO, "eRAB - Teid : %d\n", erab->elements[0].su_res.gtp_teid);
+ //ntohl ??
+}
+
+void
+parse_nas_pdu(char *msg, int nas_msg_len, struct nasPDU *nas,
+ unsigned short proc_code)
+{
+ log_msg(LOG_INFO, "NAS PDU proc code: %u\n", proc_code);
+
+ unsigned short msg_len = nas_msg_len;
+
+ char *buffer = NULL;
+ log_msg(LOG_INFO, "NAS PDU msg: %s\n", msg_to_hex_str(msg, msg_len, &buffer));
+ log_buffer_free(&buffer);
+
+#if 0
+ if(S1AP_UL_NAS_TX_MSG_CODE == proc_code) {
+ /*check whether there is security header*/
+ unsigned char header_type;
+ memcpy(&header_type, msg+1, 1);
+ header_type >>= 4;
+ if(0 == header_type) { /*not security header*/
+ log_msg(LOG_INFO, "No security header\n");
+ memcpy(&(nas->header), msg+1, 2);/*copy only till msg type*/
+ } else {
+ log_msg(LOG_INFO, "Security header\n");
+ /*now for esm resp, there is procedure tx identity, why the hell it was not there before.*/
+ /*one more donkey logic, do something!!*/
+ if(4 == header_type || ((7 == (*(msg+7) & 7)))) {
+ memcpy(&(nas->header), msg+7, 2);/*copy only till msg type*/
+ offset = 9;
+ } else {
+ unsigned char tmp;
+ memcpy(&(nas->header.message_type), msg+9, 1);/*copy only till msg type*/
+ memcpy(&(tmp), msg+7, 1);/*copy only till msg type*/
+ nas->header.security_header_type = tmp;
+ offset = 10;
+ }
+ }
+ } else {
+ memcpy(&(nas->header), msg+2, sizeof(nas_pdu_header));
+ }
+
+ if(S1AP_UL_NAS_TX_MSG_CODE == proc_code) {
+ /*check whether there is security header*/
+ unsigned char header_type = 0;
+
+ memcpy(&header_type, msg+1, 1);
+ header_type >>= 4;
+ if(0 == header_type) { /*not security header*/
+ log_msg(LOG_INFO, "No security header\n");
+ memcpy(&(nas->header), msg+1, 2);/*copy only till msg type*/
+ } else {
+ log_msg(LOG_INFO, "Security header\n");
+ /*now for esm resp, there is procedure tx identity, why the hell it was not there before.*/
+ /*one more donkey logic, do something!!*/
+ if(4 == header_type || ((7 == (*(msg+7) & 7)))) {
+ log_msg(LOG_INFO, "header == 4 || 7\n");
+ if(header_type == 4 || header_type == 2) {
+ log_msg(LOG_INFO, "security - cihpered\n");
+ memcpy(&(nas->header), msg+7, 2);/*copy only till msg type*/
+ offset = 9;
+ }
+ else {
+ log_msg(LOG_INFO, "security - noned\n");
+ memcpy(&(nas->header), msg+1, 2);/*copy only till msg type*/
+ offset = 3;
+ }
+ } else {
+ unsigned char tmp;
+ memcpy(&(nas->header.message_type), msg+9, 1);/*copy only till msg type*/
+ memcpy(&(tmp), msg+7, 1);/*copy only till msg type*/
+ nas->header.security_header_type = tmp;
+ offset = 10;
+ }
+ }
+ } else if (S1AP_INITIAL_UE_MSG_CODE == proc_code ) {
+#endif
+
+ nas_pdu_header_sec nas_header_sec;
+ nas_pdu_header_short nas_header_short;
+ nas_pdu_header_long nas_header_long;
+
+ unsigned char sec_header_type;
+ unsigned char protocol_discr;
+
+ sec_header_type = msg[0] >> 4;
+ protocol_discr = msg[0] & 0x0F;
+ unsigned char is_ESM = ((unsigned short)protocol_discr == 0x02); // see TS 24.007
+ log_msg(LOG_INFO, "Security header=%d\n", sec_header_type);
+ log_msg(LOG_INFO, "Protocol discriminator=%d\n", protocol_discr);
+ log_msg(LOG_INFO, "is_ESM=%d\n", is_ESM);
+
+ if(0 != sec_header_type) { /*security header*/
+ log_msg(LOG_INFO, "Security header\n");
+
+ memcpy(&nas_header_sec, msg, sizeof(nas_pdu_header_sec));
+
+ char *buffer = NULL;
+ log_msg(LOG_INFO, "mac=%s\n", msg_to_hex_str((char *)nas_header_sec.mac, MAC_SIZE, &buffer));
+ log_buffer_free(&buffer);
+
+ log_msg(LOG_INFO, "seq no=%x\n", nas_header_sec.seq_no);
+ msg += 6;
+
+ sec_header_type = msg[0] >> 4;
+ protocol_discr = msg[0] & 0x0F;
+ unsigned char is_ESM = ((unsigned short)protocol_discr == 0x02); // see TS 24.007
+ log_msg(LOG_INFO, "Security header=%d\n", sec_header_type);
+ log_msg(LOG_INFO, "Protocol discriminator=%d\n", protocol_discr);
+ log_msg(LOG_INFO, "is_ESM=%d\n", is_ESM);
+ if (is_ESM) {
+ log_msg(LOG_INFO, "NAS PDU is ESM\n");
+ memcpy(&nas_header_long, msg, sizeof(nas_header_long)); /*copy only till msg type*/
+ msg += 3;
+
+ nas->header.security_header_type = nas_header_long.security_header_type;
+ nas->header.proto_discriminator = nas_header_long.proto_discriminator;
+ nas->header.procedure_trans_identity = nas_header_long.procedure_trans_identity;
+ nas->header.message_type = nas_header_long.message_type;
+ } else {
+ log_msg(LOG_INFO, "NAS PDU is EMM\n");
+ memcpy(&nas_header_short, msg, sizeof(nas_header_short)); /*copy only till msg type*/
+ msg += 2;
+
+ nas->header.security_header_type = nas_header_short.security_header_type;
+ nas->header.proto_discriminator = nas_header_short.proto_discriminator;
+ nas->header.message_type = nas_header_short.message_type;
+ }
+ } else {
+ log_msg(LOG_INFO, "No security header\n");
+ memcpy(&nas_header_short, msg, sizeof(nas_header_short)); /*copy only till msg type*/
+ msg += 2;
+
+ nas->header.security_header_type = nas_header_short.security_header_type;
+ nas->header.proto_discriminator = nas_header_short.proto_discriminator;
+ nas->header.message_type = nas_header_short.message_type;
+ }
+
+
+ log_msg(LOG_INFO, "Nas msg type: %X\n", nas->header.message_type);
+
+ switch(nas->header.message_type) {
+ case NAS_ESM_RESP:{
+ log_msg(LOG_INFO, "NAS_ESM_RESP recvd\n");
+
+ unsigned char element_id;
+ memcpy(&element_id, msg, 1);
+ msg++;
+ nas->elements_len +=1;
+
+ nas->elements = calloc(sizeof(nas_pdu_elements), 2);
+ //if(NULL == nas.elements)...
+
+ memcpy(&(nas->elements[0].apn.len), msg, 1);
+ msg++;
+ memcpy(nas->elements[0].apn.val, msg, nas->elements[0].apn.len);
+ log_msg(LOG_INFO, "APN name - %s\n", nas->elements[0].apn.val);
+ break;
+ }
+
+ case NAS_SEC_MODE_COMPLETE:
+ log_msg(LOG_INFO, "NAS_SEC_MODE_COMPLETE recvd\n");
+ break;
+
+ case NAS_AUTH_RESP:
+ log_msg(LOG_INFO, "NAS_AUTH_RESP recvd\n");
+ nas->elements_len = 1;
+ nas->elements = calloc(sizeof(nas_pdu_elements), 5);
+ //if(NULL == nas.elements)...
+ unsigned short len = get_length(&msg);
+ memcpy(&(nas->elements[0].auth_resp), msg, sizeof(struct XRES));
+
+ break;
+
+/* case NAS_AUTH_FAILURE:
+ nas->elements_len = 1;
+ nas->elements = calloc(sizeof(nas_pdu_elements), 1);
+ //if(NULL == nas.elements)...
+ char err = *(char*)(msg);
+ if(err == AUTH_SYNC_FAILURE)
+ {
+ log_msg(LOG_INFO, "AUTH Sync Failure. Start Re-Sync");
+ memcpy(&(nas->elements[0].auth_fail_resp), msg + 2, sizeof(struct AUTS));
+ }
+ else
+ {
+ log_msg(LOG_ERROR, "Authentication Failure. Mac Failure");
+ }
+
+ break;
+*/
+ case NAS_ATTACH_REQUEST:{
+ log_msg(LOG_INFO, "NAS_ATTACH_REQUEST recvd\n");
+ //msg += offset;
+ //short offset = 0;
+ unsigned char tmp = msg[0];
+ nas->header.security_encryption_algo = (tmp & 0xF0) >> 4;
+ nas->header.security_integrity_algo = tmp & 0x0F;
+ msg++;
+
+ nas->elements_len = 6;
+ nas->elements = calloc(sizeof(nas_pdu_elements), 6);
+ //if(NULL == nas.elements)...
+
+ /*EPS mobility identity*/
+ //memcpy(&(nas->elements[0].IMSI), msg+6, BINARY_IMSI_LEN);
+ /*TODO: This encoding/decoding has issue with sprirent and ng40. IMSI
+ * is packed differently.*/
+ /*Code working with ng40 */
+ unsigned short imsi_len = get_length(&msg);
+ log_msg(LOG_INFO, "IMSI len=%u - %u\n", imsi_len, BINARY_IMSI_LEN);
+ memcpy(&(nas->elements[0].IMSI), msg, imsi_len);
+ msg += imsi_len;
+
+ /*Code working with sprirent and Polaris*/
+ /*
+ memcpy(&(nas->elements[0].IMSI), msg+5, BINARY_IMSI_LEN);
+ offset = 5 + BINARY_IMSI_LEN ;
+ */
+
+ char *buffer = NULL;
+ log_msg(LOG_INFO, "IMSI=%s [to be read nibble-swapped]\n",
+ msg_to_hex_str((char *)nas->elements[0].IMSI, imsi_len, &buffer));
+ log_buffer_free(&buffer);
+
+ /*UE network capacity*/
+ nas->elements[1].ue_network.len = msg[0];
+ msg++;
+ memcpy((nas->elements[1].ue_network.capab), msg, nas->elements[1].ue_network.len);
+ msg += nas->elements[1].ue_network.len;
+
+ /*ESM msg container*/
+ len = msg[0] << 8 | msg[1];
+ msg += 2;
+ log_msg(LOG_INFO, "len=%x\n", len);
+ log_msg(LOG_INFO, "msg[0]=%x\n", msg[0]);
+ nas->elements[5].pti = msg[1];
+ unsigned char val = msg[4];
+ log_msg(LOG_INFO, "pti=%x\n", nas->elements[5].pti);
+ log_msg(LOG_INFO, "val=%x\n", val);
+ /*ESM message header len is 4: bearer_id_flags(1)+proc_tx_id(1)+msg_id(1)
+ * +pdn_type(1)*/
+ /*element id 13(1101....) = "esm required" flag*/
+ nas->elements[2].esm_info_tx_required = false;
+ if(13 == (val>>4)) {
+ nas->elements[2].esm_info_tx_required = true;
+ if(val & 1) {
+ nas->elements[2].esm_info_tx_required = true;
+ }
+ }
+ msg += len;
+
+ /*DRX parameter*/
+ msg += 3;
+
+ /*MS network capability*/
+ nas->elements[4].ms_network.element_id = msg[0];
+ msg++;
+ nas->elements[4].ms_network.len = msg[0];
+ msg++;
+ memcpy(nas->elements[4].ms_network.capab, msg,
+ nas->elements[4].ms_network.len);
+ log_msg(LOG_INFO, "element_id=%x\n", nas->elements[4].ms_network.element_id);
+ log_msg(LOG_INFO, "len=%x\n", nas->elements[4].ms_network.len);
+ log_msg(LOG_INFO, "network.capab=%s\n", msg_to_hex_str((char *)nas->elements[4].ms_network.capab, nas->elements[4].ms_network.len, &buffer));
+ log_buffer_free(&buffer);
+
+ break;
+ }
+
+ case NAS_ATTACH_COMPLETE:
+ log_msg(LOG_INFO, "NAS_ATTACH_COMPLETE recvd\n");
+ /*Other than error check there seems no information to pass to mme. Marking TODO for protocol study*/
+ break;
+
+ case NAS_DETACH_REQUEST: {
+ log_msg(LOG_INFO, "NAS_DETACH_REQUEST recvd\n");
+ nas->elements_len = 1;
+ nas->elements = calloc(sizeof(nas_pdu_elements), 1);
+
+ /*EPS mobility identity*/
+ memcpy(&(nas->elements[0].mi_guti), msg + 11, sizeof(guti));
+ log_msg(LOG_INFO, "M-TMSI - %d\n", nas->elements[0].mi_guti.m_TMSI);
+ break;
+ }
+
+ case NAS_DETACH_ACCEPT: {
+ log_msg(LOG_INFO, "NAS_DETACH_ACCEPT recvd\n");
+ nas->elements_len = 1;
+ nas->elements = calloc(sizeof(nas_pdu_elements), 1);
+
+ /*EPS mobility identity*/
+ memcpy(&(nas->elements[0].mi_guti), msg + 11, sizeof(guti));
+ log_msg(LOG_INFO, "M-TMSI - %d\n", nas->elements[0].mi_guti.m_TMSI);
+ break;
+ }
+
+ default:
+ log_msg(LOG_ERROR, "Unknown NAS IE type- 0x%x\n", nas->header.message_type);
+ break;
+
+ }
+}
+
+
+int
+parse_IEs(char *msg, struct proto_IE *proto_ies, unsigned short proc_code)
+{
+ unsigned short int no_of_IEs=0;
+
+ //short data_size=0;
+ //msg +=1;
+ //memcpy(&data_size, msg, 1);
+
+ //msg +=2;
+ memcpy(&no_of_IEs, msg, 2);
+ //no_of_IEs=msg[0];
+ no_of_IEs = ntohs(no_of_IEs);
+
+ /*Dumb logic....protocol or is creepy. Len sometimes comes in 3 bytes. How to know that??*/
+ if(0 == no_of_IEs) {
+ ++msg;
+ memcpy(&no_of_IEs, msg, 2);
+ no_of_IEs = ntohs(no_of_IEs);
+ }
+
+ log_msg(LOG_INFO, "No. of IEs = %d\n", no_of_IEs);
+ proto_ies->no_of_IEs = no_of_IEs;
+ proto_ies->data = calloc(sizeof(struct proto_IE_data), no_of_IEs);
+ //alloc fail chk
+ msg+=2;
+
+ for(int i=0; i < no_of_IEs; ++i) {
+ struct proto_IE_data *ie = &(proto_ies->data[i]);
+ unsigned short IE_type, IE_data_len = 0;
+
+ memcpy(&IE_type, msg, sizeof(short int));
+ IE_type = ntohs(IE_type);
+ ie->IE_type = IE_type;
+ msg +=2;//next to ie type
+ msg +=1;//next to criticality
+
+ IE_data_len = get_length(&msg);
+ log_msg(LOG_INFO, "IE [%d]: type = %d\n", i, IE_type);
+ log_msg(LOG_INFO, "IE [%d]: data len= %x - %u\n", i, IE_data_len, IE_data_len);
+
+ char *buffer = NULL;
+ log_msg(LOG_INFO, "IE [%d]: value= %s\n", i, msg_to_hex_str(msg, IE_data_len, &buffer));
+ log_buffer_free(&buffer);
+
+ /*Based on IE_Type call the parser to read IE info*/
+ /*TODO: optimize with function ptr etc.*/
+ switch(IE_type) {
+ case S1AP_IE_GLOBAL_ENB_ID:
+ log_msg(LOG_INFO, "IE [%d]: parse global eNB ID\n", i);
+ ie_parse_global_enb_id(msg+6, IE_data_len);
+ break;
+
+ case S1AP_IE_ENB_NAME:
+ log_msg(LOG_INFO, "IE [%d]: parse global eNB name\n", i);
+ ie_parse_enb_name(msg, IE_data_len);
+ break;
+
+ case S1AP_IE_SUPPORTED_TAS:
+ break;
+
+ case S1AP_IE_DEF_PAGING_DRX:
+ break;
+
+ case S1AP_IE_MME_UE_ID:{
+ ie->val.mme_ue_s1ap_id = decode_int_val((unsigned char *)msg,
+ IE_data_len);
+ log_msg(LOG_INFO, "IE [%d]: parse MME_UE_S1AP_ID - %d\n", i,
+ ie->val.mme_ue_s1ap_id);
+ break;
+ }
+
+ case S1AP_IE_ENB_UE_ID:{
+ ie->val.enb_ue_s1ap_id = decode_int_val((unsigned char *)msg,
+ IE_data_len);
+ log_msg(LOG_INFO, "IE [%d]: parse ENB_UE_S1AP_ID - %d\n", i,
+ ie->val.enb_ue_s1ap_id);
+ break;
+ }
+
+ case S1AP_IE_TAI:{
+ log_msg(LOG_INFO, "IE [%d]: TAI parse\n", i);
+ memcpy(&(ie->val.tai), msg+1, sizeof(struct TAI));
+ log_msg(LOG_INFO, "IE [%d]: plmn-%x %x %x, tac-%d\n", i,
+ ie->val.tai.plmn_id.idx[0],
+ ie->val.tai.plmn_id.idx[1], ie->val.tai.plmn_id.idx[2],
+ ie->val.tai.tac);
+ break;
+ }
+
+ case S1AP_IE_UTRAN_CGI:{
+ log_msg(LOG_INFO, "IE [%d]: EUTRAN CGI\n", i);
+ memset(&(ie->val.utran_cgi), 0, sizeof(struct CGI));
+ memcpy(&(ie->val.utran_cgi), msg+1, sizeof(struct CGI));
+ log_msg(LOG_INFO, "IE [%d]: plmn-%x %x %x, cell-%d\n", i,
+ ie->val.utran_cgi.plmn_id.idx[0],
+ ie->val.utran_cgi.plmn_id.idx[1], ie->val.utran_cgi.plmn_id.idx[2],
+ ie->val.utran_cgi.cell_id);
+ break;
+ }
+
+ case S1AP_IE_NAS_PDU: {
+ log_msg(LOG_INFO, "IE [%d]: NAS msg type parsed = %x\n", i,
+ ie->val.nas.header.message_type);
+ parse_nas_pdu(msg, IE_data_len, &ie->val.nas, proc_code);
+ break;
+ }
+
+ case S1AP_IE_RRC_EST_CAUSE: {
+ log_msg(LOG_INFO, "IE [%d]: parse RRC establishment code - %d\n", i,
+ ie->val.rrc_est_cause);
+ break;
+ }
+
+ case S1AP_ERAB_SETUP_CTX_SUR:
+ log_msg(LOG_INFO, "IE [%d]: parse S1AP_ERAB_SETUP_CTX_SUR parse_erab_pdu \n", i);
+ parse_erab_pdu(msg, IE_data_len, &ie->val.erab);
+ break;
+
+ default:
+ log_msg(LOG_INFO, "IE [%d]: Check IE type %d\n", i, IE_type);
+ break;
+ }
+
+ msg += (IE_data_len);
+ if(128 == IE_data_len) ++msg;//TODO: byte size issue. chk thi.
+ }
+ return 0;
+}
+
+int convertToInitUeProtoIe(InitiatingMessage_t *msg, struct proto_IE* proto_ies)
+{
+ proto_ies->procedureCode = msg->procedureCode;
+ proto_ies->criticality = msg->criticality;
+ int no_of_IEs = 0;
+
+ if(msg->value.present == InitiatingMessage__value_PR_InitialUEMessage)
+ {
+ ProtocolIE_Container_129P32_t* protocolIes = &msg->value.choice.InitialUEMessage.protocolIEs;
+ no_of_IEs = protocolIes->list.count;
+ proto_ies->no_of_IEs = no_of_IEs;
+
+ log_msg(LOG_INFO, "No of IEs = %d\n", no_of_IEs);
+ proto_ies->data = calloc(sizeof(struct proto_IE_data), no_of_IEs);
+ if(proto_ies->data == NULL)
+ {
+ log_msg(LOG_ERROR,"Malloc failed for protocol IE.");
+ return -1;
+ }
+ for (int i = 0; i < protocolIes->list.count; i++) {
+ InitialUEMessage_IEs_t *ie_p;
+ ie_p = protocolIes->list.array[i];
+ switch(ie_p->id) {
+ case ProtocolIE_ID_id_eNB_UE_S1AP_ID:
+ {
+ ENB_UE_S1AP_ID_t *s1apENBUES1APID_p = NULL;
+ if(InitialUEMessage_IEs__value_PR_ENB_UE_S1AP_ID == ie_p->value.present)
+ {
+ s1apENBUES1APID_p = &ie_p->value.choice.ENB_UE_S1AP_ID;
+ }
+
+ if (s1apENBUES1APID_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE eNB_UE_S1AP_ID failed\n");
+ return -1;
+ }
+
+ log_msg(LOG_DEBUG, "ENB UE S1ap ID decode Success\n", no_of_IEs);
+ proto_ies->data[i].IE_type = S1AP_IE_ENB_UE_ID;
+ memcpy(&proto_ies->data[i].val.enb_ue_s1ap_id, s1apENBUES1APID_p, sizeof(ENB_UE_S1AP_ID_t));
+ s1apENBUES1APID_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_NAS_PDU:
+ {
+ NAS_PDU_t *s1apNASPDU_p = NULL;
+ if(InitialUEMessage_IEs__value_PR_NAS_PDU == ie_p->value.present)
+ {
+ s1apNASPDU_p = &ie_p->value.choice.NAS_PDU;
+ }
+
+ if (s1apNASPDU_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE NAS PDU failed\n");
+ return -1;
+ }
+
+ log_msg(LOG_DEBUG, "NAS PDU decode Success\n", no_of_IEs);
+ proto_ies->data[i].IE_type = S1AP_IE_NAS_PDU;
+ parse_nas_pdu((char*)s1apNASPDU_p->buf, s1apNASPDU_p->size,
+ &proto_ies->data[i].val.nas, msg->procedureCode);
+ s1apNASPDU_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_TAI:
+ {
+ TAI_t *s1apTAI_p = NULL;
+ if(InitialUEMessage_IEs__value_PR_TAI == ie_p->value.present)
+ {
+ s1apTAI_p = &ie_p->value.choice.TAI;
+ }
+
+ if (s1apTAI_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE TAI failed\n");
+ return -1;
+ }
+
+ log_msg(LOG_DEBUG, "TAI decode Success\n", no_of_IEs);
+ proto_ies->data[i].IE_type = S1AP_IE_TAI;
+ memcpy(&proto_ies->data[i].val.tai.tac, s1apTAI_p->tAC.buf, s1apTAI_p->tAC.size);
+ memcpy(&proto_ies->data[i].val.tai.plmn_id,
+ s1apTAI_p->pLMNidentity.buf, s1apTAI_p->pLMNidentity.size);
+ s1apTAI_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_EUTRAN_CGI:
+ {
+ EUTRAN_CGI_t* s1apCGI_p = NULL;;
+ if(InitialUEMessage_IEs__value_PR_EUTRAN_CGI == ie_p->value.present)
+ {
+ s1apCGI_p = &ie_p->value.choice.EUTRAN_CGI;
+ }
+
+ if (s1apCGI_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE CGI failed\n");
+ return -1;
+ }
+
+ log_msg(LOG_DEBUG, "CGI decode Success\n", no_of_IEs);
+ proto_ies->data[i].IE_type = S1AP_IE_UTRAN_CGI;
+ memcpy(&proto_ies->data[i].val.utran_cgi.cell_id,
+ s1apCGI_p->cell_ID.buf, s1apCGI_p->cell_ID.size);
+ memcpy(&proto_ies->data[i].val.utran_cgi.plmn_id.idx,
+ s1apCGI_p->pLMNidentity.buf, s1apCGI_p->pLMNidentity.size);
+ s1apCGI_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_RRC_Establishment_Cause:
+ {
+ RRC_Establishment_Cause_t *s1apRRCEstCause_p;
+ if(InitialUEMessage_IEs__value_PR_RRC_Establishment_Cause == ie_p->value.present)
+ {
+ s1apRRCEstCause_p = &ie_p->value.choice.RRC_Establishment_Cause;
+ }
+
+ if (s1apRRCEstCause_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE RRC Cause failed\n");
+ return -1;
+ }
+
+ log_msg(LOG_DEBUG, "RRC Cause decode Success\n", no_of_IEs);
+ proto_ies->data[i].IE_type = S1AP_IE_RRC_EST_CAUSE;
+ proto_ies->data[i].val.rrc_est_cause = (enum ie_RRC_est_cause) *s1apRRCEstCause_p;
+ s1apRRCEstCause_p = NULL;
+ } break;
+ default:
+ {
+ log_msg(LOG_WARNING, "Unhandled IE %d", ie_p->id);
+ }
+ }
+ }
+ }
+
+ return 0;
+}
+
+static int
+init_ue_msg_handler(InitiatingMessage_t *msg, int enb_fd)
+{
+ //TODO: use static instead of synamic for perf.
+ struct proto_IE proto_ies;
+
+ log_msg(LOG_INFO, "S1AP_INITIAL_UE_MSG msg: \n");
+
+ convertToInitUeProtoIe(msg, &proto_ies);
+ /*Check nas message type*/
+ //TODO: check through all proto IEs for which is nas
+ //currentlyy hard coding to 2 looking at packets
+ log_msg(LOG_INFO, "NAS msg type parsed = %x\n", proto_ies.data[1].val.nas.header.message_type);
+ switch(proto_ies.data[1].val.nas.header.message_type) {
+ case NAS_ATTACH_REQUEST:
+ s1_init_ue_handler(&proto_ies, enb_fd);
+ break;
+
+ case NAS_DETACH_REQUEST:
+ detach_stage1_handler(&proto_ies, true);
+ break;
+
+ case NAS_DETACH_ACCEPT:
+ detach_accept_from_ue_handler(&proto_ies, true);
+ break;
+ }
+
+ free(proto_ies.data);
+ //TODO: free IEs
+ return SUCCESS;
+}
+
+static int
+UL_NAS_msg_handler(InitiatingMessage_t *msg, int enb_fd)
+{
+ //TODO: use static instead of synamic for perf.
+ struct proto_IE proto_ies;
+
+ log_msg(LOG_INFO, "S1AP_UL_NAS_TX_MSG msg \n");
+
+ convertUplinkNasToProtoIe(msg, &proto_ies);
+
+ /*Check nas message type*/
+ //TODO: check through all proto IEs for which is nas
+ //currentlyy hard coding to 2 looking at packets
+ log_msg(LOG_INFO, "NAS msg type = %x\n", proto_ies.data[2].val.nas.header.message_type);
+ switch(proto_ies.data[2].val.nas.header.message_type) {
+ case NAS_AUTH_RESP:
+ s1_auth_resp_handler(&proto_ies);
+ break;
+/*
+ case NAS_AUTH_FAILURE:
+ s1_auth_fail_handler(&proto_ies);
+ break;
+*/
+ case NAS_ATTACH_REQUEST:
+ s1_init_ue_handler(&proto_ies, enb_fd);
+ break;
+
+ case NAS_SEC_MODE_COMPLETE:
+ s1_secmode_resp_handler(&proto_ies);
+ break;
+
+/* case NAS_ESM_RESP:
+ s1_esm_resp_handler(&proto_ies);
+ break;
+*/
+ case NAS_ATTACH_COMPLETE:
+ s1_attach_complete_handler(&proto_ies);
+ break;
+
+ case NAS_DETACH_REQUEST:
+ detach_stage1_handler(&proto_ies, false);
+ break;
+
+ case NAS_DETACH_ACCEPT:
+ detach_accept_from_ue_handler(&proto_ies, false);
+ break;
+ }
+
+ //TODO: free IEs
+ free(proto_ies.data);
+ return SUCCESS;
+}
+
+void
+handle_s1ap_message(void *msg)
+{
+ log_msg(LOG_INFO, "Inside handle_s1ap_message.\n");
+ /*convert message from network to host*/
+
+ /*Call handler for the procedure code. TBD: Tasks pool for handlers*/
+
+ int enb_fd = 0;
+ int msg_size = 0;
+ memcpy(&enb_fd, msg, sizeof(int));
+ memcpy(&msg_size, msg + sizeof(int), sizeof(int));
+ char *message = ((char *) msg) + 2*sizeof(int);
+ S1AP_PDU_t pdu = {(S1AP_PDU_PR_NOTHING)};
+ S1AP_PDU_t *pdu_p = &pdu;
+ asn_dec_rval_t dec_ret = {(RC_OK)};
+ memset ((void *)pdu_p, 0, sizeof (S1AP_PDU_t));
+ dec_ret = aper_decode (NULL, &asn_DEF_S1AP_PDU, (void **)&pdu_p, message, msg_size, 0, 0);
+
+ if (dec_ret.code != RC_OK) {
+ log_msg(LOG_ERROR, "ASN Decode PDU Failed %d\n", dec_ret.consumed);
+ free(msg);
+ return;
+ }
+
+ switch (pdu_p->present) {
+ case S1AP_PDU_PR_initiatingMessage:
+ s1ap_mme_decode_initiating (pdu_p->choice.initiatingMessage, enb_fd);
+ break;
+ case S1AP_PDU_PR_successfulOutcome:
+ s1ap_mme_decode_successfull_outcome (pdu_p->choice.successfulOutcome);
+ break;
+ case S1AP_PDU_PR_unsuccessfulOutcome:
+ s1ap_mme_decode_unsuccessfull_outcome (pdu_p->choice.unsuccessfulOutcome);
+ break;
+ default:
+ log_msg(LOG_WARNING, "Unknown message outcome (%d) or not implemented", (int)pdu_p->present);
+ break;
+ }
+
+ return;
+}
+
+int
+s1ap_mme_decode_successfull_outcome (SuccessfulOutcome_t* msg)
+{
+ log_msg(LOG_DEBUG,"successful outcome decode :");
+ log_msg(LOG_INFO, "proc code %d\n", msg->procedureCode);
+ switch (msg->procedureCode) {
+
+ case S1AP_INITIAL_CTX_RESP_CODE:
+ s1_init_ctx_resp_handler(msg);
+ break;
+
+ case S1AP_UE_CONTEXT_RELEASE_CODE:
+ s1_ctx_release_complete_handler(msg);
+ break;
+
+ default:
+ log_msg(LOG_ERROR, "Unknown procedure code - %d\n",
+ msg->procedureCode & 0x00FF);
+ break;
+ }
+
+ return 0;
+}
+
+int
+s1ap_mme_decode_unsuccessfull_outcome (UnsuccessfulOutcome_t *msg)
+{
+ log_msg(LOG_DEBUG,"unsuccessful outcome decode : TBD");
+ return 0;
+}
+
+int
+s1ap_mme_decode_initiating (InitiatingMessage_t *initiating_p, int enb_fd)
+{
+ log_msg(LOG_INFO, "proc code %d\n", initiating_p->procedureCode);
+ switch (initiating_p->procedureCode) {
+
+ case S1AP_SETUP_REQUEST_CODE:
+ s1_setup_handler(initiating_p, enb_fd);
+ break;
+
+ case S1AP_INITIAL_UE_MSG_CODE:
+ init_ue_msg_handler(initiating_p, enb_fd);
+ break;
+
+ case S1AP_UL_NAS_TX_MSG_CODE:
+ UL_NAS_msg_handler(initiating_p, enb_fd);
+ break;
+
+ /*case S1AP_UE_CTX_RELEASE_CODE:
+ s1_ctx_release_resp_handler(initiating_p);
+ break;*/
+
+ case S1AP_UE_CONTEXT_RELEASE_REQUEST:
+ s1_ctx_release_request_handler(initiating_p);
+ break;
+
+ default:
+ log_msg(LOG_ERROR, "Unknown procedure code - %d\n",
+ initiating_p->procedureCode & 0x00FF);
+ break;
+ }
+
+ //free(msg);
+ return 0;
+}
+
+int convertUplinkNasToProtoIe(InitiatingMessage_t *msg, struct proto_IE* proto_ies)
+{
+ proto_ies->procedureCode = msg->procedureCode;
+ proto_ies->criticality = msg->criticality;
+ int no_of_IEs = 0;
+
+ if(msg->value.present == InitiatingMessage__value_PR_UplinkNASTransport)
+ {
+ ProtocolIE_Container_129P33_t* protocolIes = &msg->value.choice.UplinkNASTransport.protocolIEs;
+ no_of_IEs = protocolIes->list.count;
+ proto_ies->no_of_IEs = no_of_IEs;
+
+ log_msg(LOG_INFO, "No of IEs = %d\n", no_of_IEs);
+ proto_ies->data = calloc(sizeof(struct proto_IE_data), no_of_IEs);
+ if(proto_ies->data == NULL)
+ {
+ log_msg(LOG_ERROR,"Malloc failed for protocol IE.");
+ return -1;
+ }
+ for (int i = 0; i < protocolIes->list.count; i++) {
+ UplinkNASTransport_IEs_t *ie_p;
+ ie_p = protocolIes->list.array[i];
+ switch(ie_p->id) {
+ case ProtocolIE_ID_id_eNB_UE_S1AP_ID:
+ {
+ ENB_UE_S1AP_ID_t *s1apENBUES1APID_p = NULL;
+ if(UplinkNASTransport_IEs__value_PR_ENB_UE_S1AP_ID == ie_p->value.present)
+ {
+ s1apENBUES1APID_p = &ie_p->value.choice.ENB_UE_S1AP_ID;
+ }
+
+ if (s1apENBUES1APID_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE eNB_UE_S1AP_ID failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].IE_type = S1AP_IE_ENB_UE_ID;
+ memcpy(&proto_ies->data[i].val.enb_ue_s1ap_id, s1apENBUES1APID_p, sizeof(ENB_UE_S1AP_ID_t));
+ s1apENBUES1APID_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_MME_UE_S1AP_ID:
+ {
+ MME_UE_S1AP_ID_t *s1apMMEUES1APID_p = NULL;
+ if(UplinkNASTransport_IEs__value_PR_MME_UE_S1AP_ID == ie_p->value.present)
+ {
+ s1apMMEUES1APID_p = &ie_p->value.choice.MME_UE_S1AP_ID;
+ }
+
+ if (s1apMMEUES1APID_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE MME_UE_S1AP_ID failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].IE_type = S1AP_IE_MME_UE_ID;
+ memcpy(&proto_ies->data[i].val.mme_ue_s1ap_id, s1apMMEUES1APID_p, sizeof(MME_UE_S1AP_ID_t));
+ s1apMMEUES1APID_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_NAS_PDU:
+ {
+ NAS_PDU_t *s1apNASPDU_p = NULL;
+ if(UplinkNASTransport_IEs__value_PR_NAS_PDU == ie_p->value.present)
+ {
+ s1apNASPDU_p = &ie_p->value.choice.NAS_PDU;
+ }
+
+ if (s1apNASPDU_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE NAS PDU failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].IE_type = S1AP_IE_NAS_PDU;
+ parse_nas_pdu((char*)s1apNASPDU_p->buf, s1apNASPDU_p->size,
+ &proto_ies->data[i].val.nas, msg->procedureCode);
+ s1apNASPDU_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_TAI:
+ {
+ TAI_t *s1apTAI_p = NULL;
+ if(UplinkNASTransport_IEs__value_PR_TAI == ie_p->value.present)
+ {
+ s1apTAI_p = &ie_p->value.choice.TAI;
+ }
+
+ if (s1apTAI_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE TAI failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].IE_type = S1AP_IE_TAI;
+ memcpy(&proto_ies->data[i].val.tai.tac, s1apTAI_p->tAC.buf, s1apTAI_p->tAC.size);
+ memcpy(&proto_ies->data[i].val.tai.plmn_id,
+ s1apTAI_p->pLMNidentity.buf, s1apTAI_p->pLMNidentity.size);
+ s1apTAI_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_EUTRAN_CGI:
+ {
+ EUTRAN_CGI_t* s1apCGI_p = NULL;;
+ if(UplinkNASTransport_IEs__value_PR_EUTRAN_CGI == ie_p->value.present)
+ {
+ s1apCGI_p = &ie_p->value.choice.EUTRAN_CGI;
+ }
+
+ if (s1apCGI_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE CGI failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].IE_type = S1AP_IE_UTRAN_CGI;
+ memcpy(&proto_ies->data[i].val.utran_cgi.cell_id,
+ s1apCGI_p->cell_ID.buf, s1apCGI_p->cell_ID.size);
+ memcpy(&proto_ies->data[i].val.utran_cgi.plmn_id.idx,
+ s1apCGI_p->pLMNidentity.buf, s1apCGI_p->pLMNidentity.size);
+ s1apCGI_p = NULL;
+ } break;
+ default:
+ {
+ log_msg(LOG_WARNING, "Unhandled IE %d", ie_p->id);
+ }
+ }
+ }
+ }
+
+ return 0;
+}
+
+int convertInitCtxRspToProtoIe(SuccessfulOutcome_t *msg, struct proto_IE* proto_ies)
+{
+ proto_ies->procedureCode = msg->procedureCode;
+ proto_ies->criticality = msg->criticality;
+ int no_of_IEs = 0;
+
+ if(msg->value.present == SuccessfulOutcome__value_PR_InitialContextSetupResponse)
+ {
+ ProtocolIE_Container_129P20_t* protocolIes
+ = &msg->value.choice.InitialContextSetupResponse.protocolIEs;
+ no_of_IEs = protocolIes->list.count;
+ proto_ies->no_of_IEs = no_of_IEs;
+
+ log_msg(LOG_INFO, "No of IEs = %d\n", no_of_IEs);
+ proto_ies->data = calloc(sizeof(struct proto_IE_data), no_of_IEs);
+ if(proto_ies->data == NULL)
+ {
+ log_msg(LOG_ERROR,"Malloc failed for protocol IE.");
+ return -1;
+ }
+ for (int i = 0; i < protocolIes->list.count; i++) {
+ InitialContextSetupResponseIEs_t *ie_p;
+ ie_p = protocolIes->list.array[i];
+ switch(ie_p->id) {
+ case ProtocolIE_ID_id_eNB_UE_S1AP_ID:
+ {
+ ENB_UE_S1AP_ID_t *s1apENBUES1APID_p = NULL;
+ if(InitialContextSetupResponseIEs__value_PR_ENB_UE_S1AP_ID == ie_p->value.present)
+ {
+ s1apENBUES1APID_p = &ie_p->value.choice.ENB_UE_S1AP_ID;
+ }
+
+ if (s1apENBUES1APID_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE eNB_UE_S1AP_ID failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].IE_type = S1AP_IE_ENB_UE_ID;
+ memcpy(&proto_ies->data[i].val.enb_ue_s1ap_id, s1apENBUES1APID_p, sizeof(ENB_UE_S1AP_ID_t));
+ s1apENBUES1APID_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_MME_UE_S1AP_ID:
+ {
+ MME_UE_S1AP_ID_t *s1apMMEUES1APID_p = NULL;
+ if(InitialContextSetupResponseIEs__value_PR_MME_UE_S1AP_ID == ie_p->value.present)
+ {
+ s1apMMEUES1APID_p = &ie_p->value.choice.MME_UE_S1AP_ID;
+ }
+
+ if (s1apMMEUES1APID_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE MME_UE_S1AP_ID failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].IE_type = S1AP_IE_MME_UE_ID;
+ memcpy(&proto_ies->data[i].val.mme_ue_s1ap_id, s1apMMEUES1APID_p, sizeof(MME_UE_S1AP_ID_t));
+ s1apMMEUES1APID_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_E_RABSetupListCtxtSURes:
+ {
+ E_RABSetupListCtxtSURes_t *s1apErabSetupList_p = NULL;
+ if(InitialContextSetupResponseIEs__value_PR_E_RABSetupListCtxtSURes == ie_p->value.present)
+ {
+ s1apErabSetupList_p = &ie_p->value.choice.E_RABSetupListCtxtSURes;
+ }
+
+ if (s1apErabSetupList_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE s1apErabSetupList failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].IE_type = S1AP_ERAB_SETUP_CTX_SUR;
+ proto_ies->data[i].val.erab.no_of_elements = s1apErabSetupList_p->list.count;
+ proto_ies->data[i].val.erab.elements = calloc(sizeof(union eRAB_IE),
+ s1apErabSetupList_p->list.count);
+ if(proto_ies->data[i].val.erab.elements == NULL)
+ {
+ log_msg(LOG_ERROR,"Malloc failed for protocol IE: Erab elements.");
+ break;;
+ }
+ for (int j = 0;
+ j < s1apErabSetupList_p->list.count; j++)
+ {
+ E_RABSetupItemCtxtSUResIEs_t *ie_p;
+ ie_p = (E_RABSetupItemCtxtSUResIEs_t*)s1apErabSetupList_p->list.array[j];
+ switch(ie_p->id) {
+ case ProtocolIE_ID_id_E_RABSetupItemCtxtSURes:
+ {
+ E_RABSetupItemCtxtSURes_t* s1apErabSetupItem_p = NULL;
+ if(E_RABSetupItemCtxtSUResIEs__value_PR_E_RABSetupItemCtxtSURes == ie_p->value.present)
+ {
+ s1apErabSetupItem_p = &ie_p->value.choice.E_RABSetupItemCtxtSURes;
+ }
+
+ if (s1apErabSetupItem_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE s1apErabSetupItem failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].val.erab.elements[j].su_res.eRAB_id
+ = (unsigned short)s1apErabSetupItem_p->e_RAB_ID;
+ memcpy(
+ &(proto_ies->data[i].val.erab.elements[j].su_res.gtp_teid),
+ s1apErabSetupItem_p->gTP_TEID.buf,
+ s1apErabSetupItem_p->gTP_TEID.size);
+ proto_ies->data[i].val.erab.elements[j].su_res.gtp_teid
+ = ntohl(proto_ies->data[i].val.erab.elements[j].su_res.gtp_teid);
+
+ memcpy(
+ &(proto_ies->data[i].val.erab.elements[j].su_res.transp_layer_addr),
+ s1apErabSetupItem_p->transportLayerAddress.buf,
+ s1apErabSetupItem_p->transportLayerAddress.size);
+ proto_ies->data[i].val.erab.elements[j].su_res.transp_layer_addr
+ = ntohl(proto_ies->data[i].val.erab.elements[j].su_res.transp_layer_addr);
+ s1apErabSetupItem_p = NULL;
+ }break;
+ default:
+ {
+ log_msg(LOG_WARNING, "Unhandled List item %d", ie_p->id);
+ }
+ }
+ }
+
+ s1apErabSetupList_p = NULL;
+ } break;
+ default:
+ {
+ log_msg(LOG_WARNING, "Unhandled IE %d", ie_p->id);
+ }
+ }
+ }
+ }
+
+ return 0;
+}
+
+int convertUeCtxRelComplToProtoIe(SuccessfulOutcome_t *msg, struct proto_IE* proto_ies)
+{
+ proto_ies->procedureCode = msg->procedureCode;
+ proto_ies->criticality = msg->criticality;
+ int no_of_IEs = 0;
+
+ if(msg->value.present == SuccessfulOutcome__value_PR_UEContextReleaseComplete)
+ {
+ ProtocolIE_Container_129P25_t* protocolIes
+ = &msg->value.choice.UEContextReleaseComplete.protocolIEs;
+ no_of_IEs = protocolIes->list.count;
+ proto_ies->no_of_IEs = no_of_IEs;
+
+ log_msg(LOG_INFO, "No of IEs = %d\n", no_of_IEs);
+ proto_ies->data = calloc(sizeof(struct proto_IE_data), no_of_IEs);
+ if(proto_ies->data == NULL)
+ {
+ log_msg(LOG_ERROR,"Malloc failed for protocol IE.");
+ return -1;
+ }
+ for (int i = 0; i < protocolIes->list.count; i++) {
+ UEContextReleaseComplete_IEs_t *ie_p;
+ ie_p = protocolIes->list.array[i];
+ switch(ie_p->id) {
+ case ProtocolIE_ID_id_eNB_UE_S1AP_ID:
+ {
+ ENB_UE_S1AP_ID_t *s1apENBUES1APID_p = NULL;
+ if(UEContextReleaseComplete_IEs__value_PR_ENB_UE_S1AP_ID == ie_p->value.present)
+ {
+ s1apENBUES1APID_p = &ie_p->value.choice.ENB_UE_S1AP_ID;
+ }
+
+ if (s1apENBUES1APID_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE eNB_UE_S1AP_ID failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].IE_type = S1AP_IE_ENB_UE_ID;
+ memcpy(&proto_ies->data[i].val.enb_ue_s1ap_id, s1apENBUES1APID_p, sizeof(ENB_UE_S1AP_ID_t));
+ s1apENBUES1APID_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_MME_UE_S1AP_ID:
+ {
+ MME_UE_S1AP_ID_t *s1apMMEUES1APID_p = NULL;
+ if(UEContextReleaseComplete_IEs__value_PR_MME_UE_S1AP_ID == ie_p->value.present)
+ {
+ s1apMMEUES1APID_p = &ie_p->value.choice.MME_UE_S1AP_ID;
+ }
+
+ if (s1apMMEUES1APID_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE MME_UE_S1AP_ID failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].IE_type = S1AP_IE_MME_UE_ID;
+ memcpy(&proto_ies->data[i].val.mme_ue_s1ap_id, s1apMMEUES1APID_p, sizeof(MME_UE_S1AP_ID_t));
+ s1apMMEUES1APID_p = NULL;
+ } break;
+ default:
+ {
+ log_msg(LOG_WARNING, "Unhandled IE %d\n", ie_p->id);
+ }
+ }
+ }
+ }
+
+ return 0;
+}
+
+int convertUeCtxRelReqToProtoIe(InitiatingMessage_t *msg, struct proto_IE* proto_ies)
+{
+ proto_ies->procedureCode = msg->procedureCode;
+ proto_ies->criticality = msg->criticality;
+ int no_of_IEs = 0;
+
+ if(msg->value.present == InitiatingMessage__value_PR_UEContextReleaseRequest)
+ {
+ ProtocolIE_Container_129P23_t* protocolIes
+ = &msg->value.choice.UEContextReleaseRequest.protocolIEs;
+ no_of_IEs = protocolIes->list.count;
+ proto_ies->no_of_IEs = no_of_IEs;
+
+ log_msg(LOG_INFO, "No of IEs = %d\n", no_of_IEs);
+ proto_ies->data = calloc(sizeof(struct proto_IE_data), no_of_IEs);
+ if(proto_ies->data == NULL)
+ {
+ log_msg(LOG_ERROR,"Malloc failed for protocol IE.");
+ return -1;
+ }
+ for (int i = 0; i < protocolIes->list.count; i++) {
+ UEContextReleaseRequest_IEs_t *ie_p;
+ ie_p = protocolIes->list.array[i];
+ switch(ie_p->id) {
+ case ProtocolIE_ID_id_eNB_UE_S1AP_ID:
+ {
+ ENB_UE_S1AP_ID_t *s1apENBUES1APID_p = NULL;
+ if(UEContextReleaseRequest_IEs__value_PR_ENB_UE_S1AP_ID == ie_p->value.present)
+ {
+ s1apENBUES1APID_p = &ie_p->value.choice.ENB_UE_S1AP_ID;
+ }
+
+ if (s1apENBUES1APID_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE eNB_UE_S1AP_ID failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].IE_type = S1AP_IE_ENB_UE_ID;
+ memcpy(&proto_ies->data[i].val.enb_ue_s1ap_id, s1apENBUES1APID_p, sizeof(ENB_UE_S1AP_ID_t));
+ s1apENBUES1APID_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_MME_UE_S1AP_ID:
+ {
+ MME_UE_S1AP_ID_t *s1apMMEUES1APID_p = NULL;
+ if(UEContextReleaseRequest_IEs__value_PR_MME_UE_S1AP_ID == ie_p->value.present)
+ {
+ s1apMMEUES1APID_p = &ie_p->value.choice.MME_UE_S1AP_ID;
+ }
+
+ if (s1apMMEUES1APID_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE MME_UE_S1AP_ID failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].IE_type = S1AP_IE_MME_UE_ID;
+ memcpy(&proto_ies->data[i].val.mme_ue_s1ap_id, s1apMMEUES1APID_p, sizeof(MME_UE_S1AP_ID_t));
+ s1apMMEUES1APID_p = NULL;
+ } break;
+ case ProtocolIE_ID_id_Cause:
+ {
+ Cause_t *s1apCause_p = NULL;
+ if(UEContextReleaseRequest_IEs__value_PR_Cause == ie_p->value.present)
+ {
+ s1apCause_p = &ie_p->value.choice.Cause;
+ }
+
+ if (s1apCause_p == NULL) {
+ log_msg (LOG_ERROR, "Decoding of IE Cause failed\n");
+ return -1;
+ }
+
+ proto_ies->data[i].IE_type = S1AP_IE_CAUSE;
+ proto_ies->data[i].val.cause.present = s1apCause_p->present;
+ switch(s1apCause_p->present)
+ {
+ case Cause_PR_radioNetwork:
+ log_msg (LOG_DEBUG, "RadioNetwork case : %d\n",
+ s1apCause_p->choice.radioNetwork);
+ proto_ies->data[i].val.cause.choice.radioNetwork
+ = s1apCause_p->choice.radioNetwork;
+ break;
+ case Cause_PR_transport:
+ log_msg (LOG_DEBUG, "Transport case : %d\n",
+ s1apCause_p->choice.transport);
+ proto_ies->data[i].val.cause.choice.transport
+ = s1apCause_p->choice.transport;
+ break;
+ case Cause_PR_nas:
+ log_msg (LOG_DEBUG, "Nas case : %d\n",
+ s1apCause_p->choice.nas);
+ proto_ies->data[i].val.cause.choice.nas
+ = s1apCause_p->choice.nas;
+ break;
+ case Cause_PR_protocol:
+ log_msg (LOG_DEBUG, "Protocol case : %d\n",
+ s1apCause_p->choice.protocol);
+ proto_ies->data[i].val.cause.choice.protocol
+ = s1apCause_p->choice.protocol;
+ break;
+ case Cause_PR_misc:
+ log_msg (LOG_DEBUG, "Misc case : %d\n",
+ s1apCause_p->choice.misc);
+ proto_ies->data[i].val.cause.choice.misc
+ = s1apCause_p->choice.misc;
+ break;
+ case Cause_PR_NOTHING:
+ default:
+ log_msg(LOG_WARNING, "Unknown cause %d\n", s1apCause_p->present);
+
+ }
+ s1apCause_p = NULL;
+ } break;
+ default:
+ {
+ log_msg(LOG_WARNING, "Unhandled IE %d\n", ie_p->id);
+ }
+ }
+ }
+ }
+
+ return 0;
+}
+
diff --git a/src/s1ap/handlers/s1ap_tau_request_handler.c b/src/s1ap/handlers/s1ap_tau_request_handler.c
new file mode 100644
index 0000000..ae93f88
--- /dev/null
+++ b/src/s1ap/handlers/s1ap_tau_request_handler.c
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2019-present Open Networking Foundation
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ */
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <pthread.h>
+
+
+#include "err_codes.h"
+#include "options.h"
+#include "ipc_api.h"
+#include "main.h"
+#include "s1ap.h"
+#include "s1ap_config.h"
+#include "sctp_conn.h"
+#include "s1ap_structs.h"
+#include "s1ap_msg_codes.h"
+#include "msgType.h"
+
+
+extern int g_enb_fd;
+extern ipc_handle ipc_S1ap_Hndl;
+
+int
+tau_request_handler(struct proto_IE *s1_tau_req_ies, int enb_fd)
+{
+ struct s1_incoming_msg_data_t req= {0};
+
+ log_msg(LOG_INFO, "S1ap received tau Request:--\n");
+
+ req.msg_type = tau_request;
+ req.msg_data.tauReq_Q_msg_m.enb_fd = enb_fd;
+
+ for(int i = 0; i < s1_tau_req_ies->no_of_IEs; i++)
+ {
+ switch(s1_tau_req_ies->data[i].IE_type)
+ {
+ case S1AP_IE_ENB_UE_ID:
+ {
+ req.s1ap_enb_ue_id = s1_tau_req_ies->data[i].val.enb_ue_s1ap_id;
+ }break;
+
+ case S1AP_IE_MME_UE_ID:
+ {
+ req.ue_idx = s1_tau_req_ies->data[i].val.mme_ue_s1ap_id;
+ }break;
+
+ case S1AP_IE_NAS_PDU:
+ {
+ nas_pdu_header *hdr = &s1_tau_req_ies->data[i].val.nas.header;
+ req.msg_data.tauReq_Q_msg_m.seq_num = hdr->seq_no;
+ }break;
+ default:
+ // Once MME starts handlign this request we can parse and send the content
+ log_msg(LOG_WARNING,"Unhandled IE In tau request %d",s1_tau_req_ies->data[i].IE_type);
+ }
+ }
+
+ req.destInstAddr = htonl(mmeAppInstanceNum_c);
+ req.srcInstAddr = htonl(s1apAppInstanceNum_c);
+ send_tipc_message(ipc_S1ap_Hndl, mmeAppInstanceNum_c, (char *)&req, S1_READ_MSG_BUF_SIZE);
+
+
+ log_msg(LOG_INFO, "Sent TAU request to mme-app\n");
+ return SUCCESS;
+}
+
diff --git a/src/s1ap/handlers/s1ap_tau_response_handler.c b/src/s1ap/handlers/s1ap_tau_response_handler.c
new file mode 100644
index 0000000..8838da3
--- /dev/null
+++ b/src/s1ap/handlers/s1ap_tau_response_handler.c
@@ -0,0 +1,345 @@
+/*
+ * Copyright 2019-present Open Networking Foundation
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ */
+#include <stdio.h>
+#include <stdlib.h>
+#include <pthread.h>
+#include <string.h>
+#include <unistd.h>
+#include <stdint.h>
+
+
+
+#include "log.h"
+#include "err_codes.h"
+#include "options.h"
+#include "ipc_api.h"
+#include "main.h"
+#include "s1ap.h"
+#include "s1ap_config.h"
+#include "sctp_conn.h"
+#include "s1ap_structs.h"
+#include "s1ap_msg_codes.h"
+#include "msgType.h"
+extern s1ap_config g_s1ap_cfg;
+extern ipc_handle ipc_S1ap_Hndl;
+static Buffer g_buffer;
+static int
+get_tau_rsp_protoie_value(struct proto_IE *value, struct tauResp_Q_msg *g_tauRespInfo)
+{
+
+ value->no_of_IEs = TAU_RSP_NO_OF_IES;
+
+ value->data = (proto_IEs *) malloc(TAU_RSP_NO_OF_IES*
+ sizeof(proto_IEs));
+
+ value->data[0].val.mme_ue_s1ap_id = g_tauRespInfo->ue_idx;
+ value->data[1].val.enb_ue_s1ap_id = g_tauRespInfo->s1ap_enb_ue_id;
+
+ log_msg(LOG_INFO, "mme_ue_s1ap_id %d and enb_ue_s1ap_id %d\n",
+ g_tauRespInfo->ue_idx, g_tauRespInfo->s1ap_enb_ue_id);
+
+ /* TODO: Add enum for security header type */
+ value->data[2].val.nas.header.security_header_type = IntegrityProtectedCiphered;
+ value->data[2].val.nas.header.proto_discriminator = EPSMobilityManagementMessages;
+ if(g_tauRespInfo->status == 0)
+ value->data[2].val.nas.header.message_type = TauAccept;
+ else
+ value->data[2].val.nas.header.message_type = TauReject;
+ value->data[2].val.nas.header.nas_security_param = 0;
+ /* placeholder for mac. mac value will be calculated later */
+ uint8_t mac[MAC_SIZE] = {0};
+ memcpy(value->data[2].val.nas.header.mac, mac, MAC_SIZE);
+ value->data[2].val.nas.header.seq_no = g_tauRespInfo->dl_seq_no;
+ value->data[2].val.nas.header.eps_bearer_identity = 0;
+ value->data[2].val.nas.header.procedure_trans_identity = 1;
+ value->data[2].val.nas.elements_len = TAU_RSP_NO_OF_NAS_IES;
+ value->data[2].val.nas.elements = (nas_pdu_elements *) malloc(TAU_RSP_NO_OF_NAS_IES * sizeof(nas_pdu_elements));
+ nas_pdu_elements *nasIEs = value->data[2].val.nas.elements;
+ uint8_t nasIeCnt = 0;
+ nasIEs[nasIeCnt].pduElement.eps_res = 0; /* TA updated */
+ nasIeCnt++;
+ nasIEs[nasIeCnt].pduElement.spare = 0; /* TA updated */
+ nasIeCnt++;
+
+ return SUCCESS;
+}
+
+static int
+tau_rsp_processing(struct tauResp_Q_msg *g_tauRespInfo)
+{
+
+ struct s1ap_PDU s1apPDU= {0};
+
+ uint8_t nas_len_pos;
+ uint8_t s1ap_len_pos;
+ uint8_t mac_data_pos;
+ uint8_t datalen;
+ uint8_t u8value;
+
+ if(g_tauRespInfo->status != 0)
+ {
+ /* Assigning values to s1apPDU */
+ s1apPDU.procedurecode = id_errorIndication;
+ s1apPDU.criticality = CRITICALITY_IGNORE;
+ get_tau_rsp_protoie_value(&s1apPDU.value,g_tauRespInfo);
+ g_buffer.pos = 0;
+
+ uint8_t initiating_message = 0; /* TODO: Add enum */
+ buffer_copy(&g_buffer, &initiating_message,
+ sizeof(initiating_message));
+
+ buffer_copy(&g_buffer, &s1apPDU.procedurecode,
+ sizeof(s1apPDU.procedurecode));
+
+ buffer_copy(&g_buffer, &s1apPDU.criticality,
+ sizeof(s1apPDU.criticality));
+
+ s1ap_len_pos = g_buffer.pos;
+
+ /* length of S1ap message */
+ u8value = 0;
+ buffer_copy(&g_buffer, &u8value, sizeof(u8value));
+
+ /* TODO remove hardcoded values */
+ unsigned char chProtoIENo[3] = {0,0,2};
+
+ buffer_copy(&g_buffer, chProtoIENo, 3);
+
+ unsigned char tmpStr[4];
+
+ /* id-eNB-UE-S1AP-ID */
+
+ uint16_t protocolIe_Id = id_eNB_UE_S1AP_ID;
+ uint8_t protocolIe_criticality = CRITICALITY_REJECT;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_buffer, tmpStr,
+ sizeof(protocolIe_Id));
+
+ buffer_copy(&g_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+
+
+ /* TODO needs proper handling*/
+ unsigned char enb_ue_id[3];
+ datalen = copyU16(enb_ue_id,
+ s1apPDU.value.data[1].val.enb_ue_s1ap_id);
+ buffer_copy(&g_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_buffer, enb_ue_id, datalen);
+
+ unsigned char cause[6] = {0,2,40,2,4, 0};
+ buffer_copy(&g_buffer, cause, sizeof(cause));
+
+ /* Copy length to s1ap length field */
+ datalen = g_buffer.pos - s1ap_len_pos - 1;
+ memcpy(g_buffer.buf + s1ap_len_pos, &datalen, sizeof(datalen));
+ return E_FAIL;
+ }
+ /* Assigning values to s1apPDU */
+ s1apPDU.procedurecode = id_downlinkNASTransport;
+ s1apPDU.criticality = CRITICALITY_IGNORE;
+
+ get_tau_rsp_protoie_value(&s1apPDU.value,g_tauRespInfo);
+
+ /* Copy values to buffer from s1apPDU */
+
+ g_buffer.pos = 0;
+
+ uint8_t initiating_message = 0; /* TODO: Add enum */
+ buffer_copy(&g_buffer, &initiating_message,
+ sizeof(initiating_message));
+
+ buffer_copy(&g_buffer, &s1apPDU.procedurecode,
+ sizeof(s1apPDU.procedurecode));
+
+ buffer_copy(&g_buffer, &s1apPDU.criticality,
+ sizeof(s1apPDU.criticality));
+
+ s1ap_len_pos = g_buffer.pos;
+
+ /* length of S1ap message */
+ u8value = 0;
+ buffer_copy(&g_buffer, &u8value, sizeof(u8value));
+
+ /* TODO remove hardcoded values */
+ unsigned char chProtoIENo[3] = {0,0,3};
+
+ buffer_copy(&g_buffer, chProtoIENo, 3);
+
+ unsigned char tmpStr[4];
+
+ /* id-MME-UE-S1AP-ID */
+ uint16_t protocolIe_Id = id_MME_UE_S1AP_ID;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_buffer, tmpStr,
+ sizeof(protocolIe_Id));
+
+ uint8_t protocolIe_criticality = CRITICALITY_REJECT;
+ buffer_copy(&g_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+
+ /* TODO needs proper handling*/
+ unsigned char mme_ue_id[3];
+ datalen = copyU16(mme_ue_id,
+ s1apPDU.value.data[0].val.mme_ue_s1ap_id);
+ buffer_copy(&g_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_buffer, mme_ue_id, datalen);
+
+ /* id-eNB-UE-S1AP-ID */
+
+ protocolIe_Id = id_eNB_UE_S1AP_ID;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_buffer, tmpStr,
+ sizeof(protocolIe_Id));
+
+ buffer_copy(&g_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+
+ /* TODO needs proper handling*/
+ unsigned char enb_ue_id[3];
+ datalen = copyU16(enb_ue_id,
+ s1apPDU.value.data[1].val.enb_ue_s1ap_id);
+ buffer_copy(&g_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_buffer, enb_ue_id, datalen);
+
+ /* id-NAS-PDU */
+ protocolIe_Id = id_NAS_PDU;
+ copyU16(tmpStr, protocolIe_Id);
+ buffer_copy(&g_buffer, tmpStr,
+ sizeof(protocolIe_Id));
+ buffer_copy(&g_buffer, &protocolIe_criticality,
+ sizeof(protocolIe_criticality));
+
+ nas_len_pos = g_buffer.pos;
+ datalen = 0;
+ buffer_copy(&g_buffer, &datalen, sizeof(datalen));
+ buffer_copy(&g_buffer, &datalen, sizeof(datalen));
+
+ struct nasPDU *nas = &(s1apPDU.value.data[2].val.nas);
+ struct nas_pdu_header *nas_hdr = &(s1apPDU.value.data[2].val.nas.header);
+
+ u8value = (nas->header.security_header_type << 4) |
+ nas->header.proto_discriminator;
+ buffer_copy(&g_buffer, &u8value, sizeof(u8value));
+
+ /* mac */
+ /* placeholder for mac. mac value will be calculated later */
+ buffer_copy(&g_buffer, nas_hdr->mac, MAC_SIZE);
+ mac_data_pos = g_buffer.pos;
+
+ /* sequence number */
+ buffer_copy(&g_buffer, &(nas_hdr->seq_no),
+ sizeof(nas_hdr->seq_no));
+
+ /* security header and protocol discriminator */
+ nas_hdr->security_header_type = Plain;
+ u8value = (0 << 4 | nas_hdr->proto_discriminator);
+ buffer_copy(&g_buffer, &u8value, sizeof(u8value));
+
+ /* message type */
+ buffer_copy(&g_buffer, &nas->header.message_type,
+ sizeof(nas->header.message_type));
+
+
+ u8value = 0;
+ buffer_copy(&g_buffer, &u8value, sizeof(u8value));
+ u8value = 0x5a;
+ buffer_copy(&g_buffer, &u8value, sizeof(u8value));
+#define DISABLE_TAU 0
+#if DISABLE_TAU
+ u8value = 0xe0;
+#else
+ u8value = 0x21;
+#endif
+ buffer_copy(&g_buffer, &u8value, sizeof(u8value));
+
+#if 1
+ /* adding GUTI */
+ u8value = 0x50; /* element id TODO: define macro or enum */
+ buffer_copy(&g_buffer, &u8value, sizeof(u8value));
+ datalen = 11;
+ buffer_copy(&g_buffer, &datalen, sizeof(datalen));
+ u8value = 246; /* TODO: remove hard coding */
+ buffer_copy(&g_buffer, &u8value, sizeof(u8value));
+
+ unsigned char x3 = g_tauRespInfo->tai.plmn_id.idx[2];
+ unsigned char x2 = g_tauRespInfo->tai.plmn_id.idx[1];
+ unsigned char x31 = x3 >> 4;
+ unsigned char x32 = x3 & 0xf;
+ unsigned char x21 = x2 >> 4;
+ unsigned char x22 = x2 & 0xf;
+ x3 = x21 | (x32 <<4);
+ x2 = (x31 << 4) | x22;
+ g_tauRespInfo->tai.plmn_id.idx[1] = x2;
+ g_tauRespInfo->tai.plmn_id.idx[2] = x3;
+
+ buffer_copy(&g_buffer, &g_tauRespInfo->tai.plmn_id, 3);
+
+ uint16_t grpid = htons(g_s1ap_cfg.mme_group_id);
+ buffer_copy(&g_buffer, &grpid, sizeof(grpid));
+
+ u8value = g_s1ap_cfg.mme_code;
+ buffer_copy(&g_buffer, &u8value, sizeof(u8value));
+
+ uint32_t mtmsi = htonl(g_tauRespInfo->m_tmsi);
+ buffer_copy(&g_buffer, &(mtmsi), sizeof(mtmsi));
+#endif
+
+
+
+#if 1
+ /*TODO : Experiment */
+ u8value = 0x23; /* element id TODO: define macro or enum */
+ buffer_copy(&g_buffer, &u8value, sizeof(u8value));
+ datalen = 0x05;
+ buffer_copy(&g_buffer, &datalen, sizeof(datalen));
+
+ u8value = 0xf4; //
+ buffer_copy(&g_buffer, &u8value, sizeof(u8value));
+
+ mtmsi = htonl(g_tauRespInfo->ue_idx);
+ buffer_copy(&g_buffer, &(mtmsi), sizeof(mtmsi));
+#endif
+ /* NAS PDU end */
+
+ /* Calculate mac */
+ uint8_t direction = 1;
+ uint8_t bearer = 0;
+
+ calculate_mac(g_tauRespInfo->int_key, nas_hdr->seq_no,
+ direction, bearer, &g_buffer.buf[mac_data_pos],
+ g_buffer.pos - mac_data_pos,
+ &g_buffer.buf[mac_data_pos - MAC_SIZE]);
+
+
+ /* Copy nas length to nas length field */
+ datalen = g_buffer.pos - nas_len_pos - 1;
+ memcpy(&g_buffer.buf[nas_len_pos], &datalen, sizeof(datalen));
+
+ /* Copy nas length to nas length field */
+ datalen = g_buffer.pos - nas_len_pos - 2;
+ memcpy(&(g_buffer.buf[nas_len_pos + 1]), &datalen, sizeof(datalen));
+
+ /* Copy length to s1ap length field */
+ datalen = g_buffer.pos - s1ap_len_pos - 1;
+ memcpy(g_buffer.buf + s1ap_len_pos, &datalen, sizeof(datalen));
+
+ send_sctp_msg(g_tauRespInfo->enb_fd, g_buffer.buf, g_buffer.pos,1);
+ log_msg(LOG_INFO, "\nTAU RESP received from MME\n");
+ return SUCCESS;
+}
+
+
+void*
+tau_response_handler(void *data)
+{
+
+ log_msg(LOG_INFO, "TAU response handler ready.\n");
+
+ tau_rsp_processing((struct tauResp_Q_msg *)data);
+
+ return NULL;
+}
diff --git a/src/s1ap/handlers/s1setup.c b/src/s1ap/handlers/s1setup.c
new file mode 100644
index 0000000..60e92d7
--- /dev/null
+++ b/src/s1ap/handlers/s1setup.c
@@ -0,0 +1,162 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <pthread.h>
+
+#include "err_codes.h"
+#include "options.h"
+#include "ipc_api.h"
+#include "main.h"
+#include "s1ap.h"
+#include "s1ap_config.h"
+#include "sctp_conn.h"
+#include "s1ap_structs.h"
+#include "s1ap_msg_codes.h"
+
+extern int g_enb_fd;
+extern s1ap_config g_s1ap_cfg;
+static struct Buffer resp_buf;
+
+int
+create_s1setup_response(/*enb info,*/unsigned char **s1_setup_resp)
+{
+ unsigned char data_len = 0;
+ unsigned char msg[50];
+ struct Buffer proto_ies;
+ struct Buffer gummies;
+ uint16_t proto_ie_id;
+ unsigned char tmp_str[4];
+ uint8_t criticality;
+
+ /*Leave a byte to fill length*/
+ resp_buf.pos = 0;
+ /*Only in case of s1setup resp, first byte is 0x20, not for any other
+ s1ap message. Nothing found in specs, please check.*/
+ /**procedureCode: id-S1Setup (17)**/
+ msg[0] = 0x20;
+ msg[1] = S1AP_SETUP_REQUEST_CODE;
+ msg[2] = CRITICALITY_REJECT;
+ buffer_copy(&resp_buf, msg, 3);
+
+ /**IE1*/
+ /**Item 0: id-MMEname*/
+ proto_ie_id = S1AP_IE_MMENAME;
+ copyU16(tmp_str, proto_ie_id);
+ buffer_copy(&proto_ies, tmp_str, sizeof(proto_ie_id));
+ criticality = CRITICALITY_IGNORE;
+ buffer_copy(&proto_ies, &criticality, sizeof(criticality));
+
+ data_len = strlen(g_s1ap_cfg.mme_name);
+ data_len = copyU16(tmp_str, data_len);
+ tmp_str[1] = tmp_str[1]+2;
+ buffer_copy(&proto_ies, &tmp_str[1], 1);
+ proto_ies.buf[proto_ies.pos++] = 0x06;/*quest: what is this in encoding?*/
+ proto_ies.buf[proto_ies.pos++] = 0x80;
+ buffer_copy(&proto_ies, g_s1ap_cfg.mme_name, strlen(g_s1ap_cfg.mme_name));
+
+ /*IE2*/
+ /**Item 1: id-ServedGUMMEIs*/
+ proto_ie_id = S1AP_IE_SERVED_GUMMEIES;
+ copyU16(tmp_str, proto_ie_id);
+ buffer_copy(&proto_ies, tmp_str, sizeof(proto_ie_id));
+ criticality = CRITICALITY_REJECT;
+ buffer_copy(&proto_ies, &criticality, sizeof(criticality));
+
+ //msg[i++] = 0x0b;//len
+ gummies.buf[0]=0x0;
+ gummies.buf[1]=0x0;
+ gummies.pos = 2;
+
+ /**Item 1: id-ServedGUMMEIs
+ * servedPLMNs: 1 item*/
+ buffer_copy(&gummies, &(g_s1ap_cfg.mme_plmn_id), sizeof(struct PLMN));
+ gummies.buf[gummies.pos++]=0x0;
+ gummies.buf[gummies.pos++]=0x0;
+
+ /**Item 1: id-ServedGUMMEIs
+ * servedGroupIDs: 1 item*/
+ data_len = copyU16(tmp_str, g_s1ap_cfg.mme_group_id);
+ buffer_copy(&gummies, tmp_str, data_len);
+
+ /**Item 1: id-ServedGUMMEIs
+ * servedMMECs: 1 item*/
+ gummies.buf[gummies.pos++]=0x0;
+ gummies.buf[gummies.pos++] = g_s1ap_cfg.mme_code;
+
+ data_len = copyU16(tmp_str, gummies.pos);
+ buffer_copy(&proto_ies, &(tmp_str[1]), 1);
+ buffer_copy(&proto_ies, &gummies.buf, gummies.pos);
+
+ /*IE3*/
+ /**id: id-RelativeMMECapacity (87)*/
+ proto_ie_id = S1AP_IE_REL_MME_CAPACITY;
+ copyU16(tmp_str, proto_ie_id);
+ buffer_copy(&proto_ies, tmp_str, sizeof(proto_ie_id));
+ criticality = CRITICALITY_IGNORE;
+ buffer_copy(&proto_ies, &criticality, sizeof(criticality));
+ data_len = 1;
+ buffer_copy(&proto_ies, &(data_len), 1);
+ g_s1ap_cfg.rel_cap = 1;
+ buffer_copy(&proto_ies, &(g_s1ap_cfg.rel_cap), 1);
+
+ /*number of proto IEs = 3*/
+ data_len = copyU16(tmp_str, 3);
+
+ data_len = data_len + proto_ies.pos + 1;
+ buffer_copy(&resp_buf, &data_len, 1);
+
+ resp_buf.buf[resp_buf.pos++] = 0;/*quest: packed value should be 2 bytes...
+ here it needs 3 bytes*/
+ buffer_copy(&resp_buf, tmp_str, 2);
+
+ buffer_copy(&resp_buf, &proto_ies, proto_ies.pos);
+ *s1_setup_resp = resp_buf.buf;
+
+ return resp_buf.pos;
+}
+
+int
+s1_setup_handler(InitiatingMessage_t *msg, int enb_fd)
+{
+ unsigned char *resp_msg = NULL;
+ int resp_len = 0;
+ /*struct proto_IE s1_init_ies;
+
+ /*****Message structure***
+ */
+ /*parse_IEs(msg+2, &s1_init_ies, S1AP_SETUP_REQUEST_CODE);
+
+ /*Validate all eNB info*/
+
+ /*Add eNB info to hash*/
+
+ /*Create S1Setup response*/
+ resp_len = create_s1setup_response(/*enb info,*/ &resp_msg);
+
+ /*Send S1Setup response*/
+ log_msg(LOG_INFO, "Send s1setup response.\n");
+ resp_len = send_sctp_msg(enb_fd, resp_msg, resp_len, 0);
+ log_msg(LOG_INFO, "send len %d\n", resp_len);
+ //free(resp_msg);
+
+ return SUCCESS;
+}
+
diff --git a/src/s1ap/handlers/service_req.c b/src/s1ap/handlers/service_req.c
new file mode 100644
index 0000000..eff8140
--- /dev/null
+++ b/src/s1ap/handlers/service_req.c
@@ -0,0 +1,123 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <pthread.h>
+
+#include "err_codes.h"
+#include "options.h"
+#include "ipc_api.h"
+#include "main.h"
+#include "s1ap.h"
+#include "s1ap_config.h"
+#include "sctp_conn.h"
+#include "s1ap_structs.h"
+#include "s1ap_msg_codes.h"
+#include "msgType.h"
+
+extern int g_enb_fd;
+extern s1ap_config g_s1ap_cfg;
+extern ipc_handle ipc_S1ap_Hndl;
+
+int
+s1_init_ue_service_req_handler(struct proto_IE *service_req_ies, int enb_fd)
+{
+ struct s1_incoming_msg_data_t req= {0};
+
+ /*****Message structure***
+ */
+ log_msg(LOG_INFO, "Parse s1ap Service request message\n");
+
+ /*Validate all eNB info*/
+
+ /*Add eNB info to hash*/
+
+ /*Create Q structure for Service req to MME.
+ contains init UE information.*/
+ /* TODO : Revisit, in InitialContextSetup Request we are sending
+ * MME UE S1AP Id as M-TMSI.
+ */
+ req.msg_type = service_request;
+ req.msg_data.service_req_Q_msg_m.enb_fd = enb_fd;
+ for(int i = 0; i < service_req_ies->no_of_IEs; i++)
+ {
+ switch(service_req_ies->data[i].IE_type)
+ {
+ case S1AP_IE_ENB_UE_ID:
+ {
+ log_msg(LOG_INFO, "Service Req S1AP_IE_ENB_UE_ID.\n");
+ req.s1ap_enb_ue_id = service_req_ies->data[i].val.enb_ue_s1ap_id;
+ }break;
+ case S1AP_IE_NAS_PDU:
+ {
+ log_msg(LOG_INFO, "Service Req NAS PDU.\n");
+ req.msg_data.service_req_Q_msg_m.ksi = service_req_ies->data[i].val.nas.header.ksi;;
+ req.msg_data.service_req_Q_msg_m.seq_no = service_req_ies->data[i].val.nas.header.seq_no;
+ memcpy(&req.msg_data.service_req_Q_msg_m.mac, service_req_ies->data[i].val.nas.header.short_mac, sizeof(uint16_t));
+ }break;
+ case S1AP_IE_TAI:
+ {
+ log_msg(LOG_INFO, "Service Req TAI.\n");
+ memcpy(&req.msg_data.service_req_Q_msg_m.tai,
+ &service_req_ies->data[i].val.tai,
+ sizeof(struct TAI));
+ }break;
+ case S1AP_IE_UTRAN_CGI:
+ {
+ log_msg(LOG_INFO, "Service Req CGI.\n");
+ memcpy(&req.msg_data.service_req_Q_msg_m.utran_cgi,
+ &service_req_ies->data[i].val.utran_cgi,
+ sizeof(struct CGI));
+ }break;
+ case S1AP_IE_S_TMSI:
+ {
+ log_msg(LOG_INFO, "Service Req STMSI.\n");
+ if(service_req_ies->data[i].val.s_tmsi.mme_code
+ == g_s1ap_cfg.mme_code)
+ {
+ log_msg(LOG_INFO, "Service Req MME Code matched.\n");
+ req.ue_idx = ntohl(service_req_ies->data[i].val.s_tmsi.m_TMSI);
+ memcpy(&req.msg_data.service_req_Q_msg_m.s_tmsi,
+ &service_req_ies->data[i].val.s_tmsi,
+ sizeof(struct STMSI));
+ }
+ else
+ {
+ log_msg(LOG_ERROR, "MME code mismatch. Send Service Reject. TBD");
+ return -E_FAIL;
+ }
+ }break;
+ default:
+ log_msg(LOG_WARNING,"Unhandled IE");
+ }
+ }
+
+ req.destInstAddr = htonl(mmeAppInstanceNum_c);
+ req.srcInstAddr = htonl(s1apAppInstanceNum_c);
+ send_tipc_message(ipc_S1ap_Hndl, mmeAppInstanceNum_c, (char *)&req, S1_READ_MSG_BUF_SIZE);
+
+
+ /*Send Service req to mme-app*/
+ log_msg(LOG_INFO, "Send to mme-app service req handler.\n");
+
+ return SUCCESS;
+}
+
+
diff --git a/src/s1ap/handlers/uectxtrelease_cmd.c b/src/s1ap/handlers/uectxtrelease_cmd.c
new file mode 100644
index 0000000..3e93a36
--- /dev/null
+++ b/src/s1ap/handlers/uectxtrelease_cmd.c
@@ -0,0 +1,108 @@
+/*
+ * Copyright (c) 2019, Infosys Ltd.
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <pthread.h>
+#include <string.h>
+#include <unistd.h>
+#include <stdint.h>
+#include "common_proc_info.h"
+#include "log.h"
+#include "err_codes.h"
+#include "message_queues.h"
+#include "ipc_api.h"
+#include "s1ap.h"
+#include "s1ap_config.h"
+#include "main.h"
+#include "msgType.h"
+
+
+/*static int
+get_uectxtrelcmd_protoie_value(struct proto_IE *value, struct s1relcmd_info *g_uectxtrelcmd)
+{
+ //uint8_t ieCnt = 0;
+
+ value->no_of_IEs = UE_CTX_RELEASE_NO_OF_IES;
+
+ value->data = (proto_IEs *) malloc(UE_CTX_RELEASE_NO_OF_IES *
+ sizeof(proto_IEs));
+
+ value->data[0].mme_ue_s1ap_id = g_uectxtrelcmd->ue_idx;
+
+ value->data[1].enb_ue_s1ap_id = g_uectxtrelcmd->enb_s1ap_ue_id;
+
+ log_msg(LOG_INFO, "mme_ue_s1ap_id %d and enb_ue_s1ap_id %d\n",
+ g_uectxtrelcmd->ue_idx,g_uectxtrelcmd->enb_s1ap_ue_id);
+ return SUCCESS;
+}*/
+
+/**
+* Stage specific message processing.
+*/
+static int
+relcmd_processing(struct s1relcmd_info *g_uectxtrelcmd)
+{
+ log_msg(LOG_DEBUG,"Process Ctx rel cmd.");
+ uint32_t length = 0;
+ uint8_t *buffer = NULL;
+
+ Buffer g_ctxrel_buffer;
+ struct s1ap_common_req_Q_msg req= {0};
+
+ log_msg(LOG_DEBUG,"Inside relcmd processing\n");
+
+ req.IE_type = S1AP_CTX_REL_CMD;
+ req.enb_fd = g_uectxtrelcmd->enb_fd;
+ req.mme_s1ap_ue_id = g_uectxtrelcmd->ue_idx;
+ req.enb_s1ap_ue_id = g_uectxtrelcmd->enb_s1ap_ue_id;
+ req.cause.present = g_uectxtrelcmd->cause.present;
+ req.cause.choice.radioNetwork = g_uectxtrelcmd->cause.choice.radioNetwork;
+
+ log_msg(LOG_DEBUG,"Before s1ap_encoder\n");
+
+ int ret = s1ap_mme_encode_initiating(&req, &buffer, &length);
+ log_msg(LOG_DEBUG,"Invoked s1ap_encoder\n");
+ if(ret == -1)
+ {
+ log_msg(LOG_ERROR, "Encoding ctx rel cmd failed.\n");
+ return E_FAIL;
+ }
+
+ buffer_copy(&g_ctxrel_buffer, buffer, length);
+ send_sctp_msg(g_uectxtrelcmd->enb_fd, g_ctxrel_buffer.buf, g_ctxrel_buffer.pos,1);
+ log_msg(LOG_INFO, "\n-----S1 Release Command sent to UE.---\n");
+ return SUCCESS;
+
+}
+
+
+/**
+* Thread function for stage.
+*/
+void*
+s1_release_command_handler(void *data)
+{
+
+ log_msg(LOG_INFO, "s1 release command handler ready.\n");
+
+ relcmd_processing((struct s1relcmd_info *)data);
+
+ return NULL;
+}
+
+
diff --git a/src/s1ap/json_config.c b/src/s1ap/json_config.c
new file mode 100644
index 0000000..f31de01
--- /dev/null
+++ b/src/s1ap/json_config.c
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ * Copyright (c) 2019, Infosys Ltd.
+ *
+ * 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 "json_data.h"
+#include "s1ap_config.h"
+#include "err_codes.h"
+
+s1ap_config g_s1ap_cfg;
+
+void
+init_parser(char *path)
+{
+ load_json(path);
+}
+
+int
+parse_s1ap_conf()
+{
+ char mcc_dig1;
+ char mcc_dig2;
+ char mcc_dig3;
+ char mnc_dig1;
+ char mnc_dig2;
+ char mnc_dig3;
+
+ /*s1ap information*/
+ g_s1ap_cfg.mme_name = get_string_scalar("mme.name");
+ if(NULL == g_s1ap_cfg.mme_name) return -1;
+
+ g_s1ap_cfg.s1ap_local_ip = get_ip_scalar("s1ap.s1ap_local_addr");
+ if(-1 == g_s1ap_cfg.s1ap_local_ip) return -1;
+ g_s1ap_cfg.sctp_port = get_int_scalar("s1ap.sctp_port");
+ if(-1 == g_s1ap_cfg.sctp_port) return -1;
+
+ g_s1ap_cfg.enb_ip = get_ip_scalar("s1ap.enb_addr");
+ if(-1 == g_s1ap_cfg.enb_ip) return -1;
+ g_s1ap_cfg.enb_port = get_int_scalar("s1ap.enb_port");
+ if(-1 == g_s1ap_cfg.enb_port) return -1;
+
+ g_s1ap_cfg.mme_group_id = get_int_scalar("mme.group_id");
+ if(-1 == g_s1ap_cfg.mme_group_id) return -1;
+
+ g_s1ap_cfg.mme_code = get_int_scalar("mme.code");
+ if(-1 == g_s1ap_cfg.mme_code) return -1;
+
+ mcc_dig1 = get_int_scalar("mme.mcc.dig1");
+ if(E_PARSING_FAILED == mcc_dig1) return E_PARSING_FAILED;
+ mcc_dig2 = get_int_scalar("mme.mcc.dig2");
+ if(E_PARSING_FAILED == mcc_dig1) return E_PARSING_FAILED;
+ mcc_dig3 = get_int_scalar("mme.mcc.dig3");
+ if(E_PARSING_FAILED == mcc_dig1) return E_PARSING_FAILED;
+ mnc_dig1 = get_int_scalar("mme.mnc.dig1");
+ if(E_PARSING_FAILED == mcc_dig1) return E_PARSING_FAILED;
+ mnc_dig2 = get_int_scalar("mme.mnc.dig2");
+ if(E_PARSING_FAILED == mcc_dig1) return E_PARSING_FAILED;
+ mnc_dig3 = get_int_scalar("mme.mnc.dig3");
+ if(E_PARSING_FAILED == mcc_dig1) return E_PARSING_FAILED;
+
+ g_s1ap_cfg.mme_plmn_id.idx[0] = mcc_dig2 << 4 | mcc_dig1;
+ g_s1ap_cfg.mme_plmn_id.idx[1] = mnc_dig3 << 4 | mcc_dig3;
+ g_s1ap_cfg.mme_plmn_id.idx[2] = mnc_dig2 << 4 | mnc_dig1;
+
+ return SUCCESS;
+}
diff --git a/src/s1ap/main.c b/src/s1ap/main.c
new file mode 100644
index 0000000..8948c35
--- /dev/null
+++ b/src/s1ap/main.c
@@ -0,0 +1,502 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ * Copyright (c) 2019, Infosys Ltd.
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <pthread.h>
+#include <arpa/inet.h>
+#include <errno.h>
+
+#include "options.h"
+#include "ipc_api.h"
+#include "main.h"
+#include "s1ap.h"
+#include "s1ap_config.h"
+#include "sctp_conn.h"
+#include "s1ap_structs.h"
+#include "message_queues.h"
+#include "thread_pool.h"
+#include "tpool_queue.h"
+#include "snow_3g.h"
+#include "f9.h"
+#include "err_codes.h"
+#include <sys/ioctl.h>
+#include <sys/types.h>
+
+/*Global and externs **/
+extern s1ap_config g_s1ap_cfg;
+pthread_t s1ap_iam_t;
+
+int g_enb_fd = 0;
+int g_sctp_fd = 0;
+struct thread_pool *g_tpool;
+struct thread_pool *g_tpool_tipc_reader;
+
+ipc_handle ipc_S1ap_Hndl;
+
+ipc_handle ipc_tipc_reader;
+
+ipc_handle ipcHndl_sctpsend_reader;
+ipc_handle ipcHndl_sctpsend_writer;
+
+pthread_t tipcReader_t;
+pthread_t acceptSctp_t;
+
+struct time_stat g_attach_stats[65535];
+/**End: global and externs**/
+
+extern char processName[255];
+extern int pid;
+
+extern void
+handle_mmeapp_message(void * data);
+
+#define MAX_ENB 10
+#define BUFFER_LEN 1024
+
+/**
+ * @brief Decode int value from the byte array received in the s1ap incoming
+ * packet.
+ * @param[in] bytes - Array of bytes in packet
+ * @param[in] len - Length of the bytes array from which to extract the int
+ * @return Integer value extracted out of bytes array. 0 if failed.
+ */
+char *msg_to_hex_str(const char *msg, int len, char **buffer) {
+
+ char chars[]= "0123456789abcdef";
+ char *local;
+
+ if (!len)
+ return NULL;
+
+ if (!((*buffer) = (char *)malloc(2 * len + 1)))
+ return NULL;
+
+ local = *buffer;
+ for (int i = 0; i < len; i++) {
+ local[2 * i] = chars[(msg[i] >> 4) & 0x0F];
+ local[2 * i + 1] = chars[(msg[i]) & 0x0F];
+ }
+ local[2 * len] = '\0';
+
+ return local;
+}
+
+unsigned short get_length(char **msg) {
+ /* get length and consume msg bytes accordingly */
+
+ unsigned short ie_len = 0;
+
+ unsigned char val = ((*msg)[0] & 0xc0) >> 6;
+ if(val == 2) {
+ //log_msg(LOG_INFO, "length more than 128\n");
+ unsigned short higher = (unsigned char)(*msg)[0] & 0x3f;
+ (*msg)++;
+ unsigned short lower = (unsigned char)(*msg)[0];
+ ie_len = (higher << 8) | lower;
+ } else {
+ //log_msg(LOG_INFO, "length less than 128\n");
+ ie_len = (unsigned short)(*msg)[0];
+ }
+ (*msg)++;
+ return ie_len;
+}
+
+int
+decode_int_val(unsigned char *bytes, short len)
+{
+ switch(len) {
+ case 1:
+ case 2:
+ return (bytes[1] & 0xff);
+
+ case 3:
+ return (bytes[2] & 0xff) |
+ (0xff00 & ((unsigned short)(bytes[1] << 8)));
+
+ case 4:
+ return (((((unsigned int)(bytes[1]) << 16) & 0xffff00) |
+ ((unsigned int)(bytes[2]) << 8)) & 0xffff00) |
+ ((unsigned int)(bytes[3]) & 0xff);
+ };
+ return 0;
+}
+
+/**
+ * @brief Pack short number value in to the buffer
+ * @param[out] buffer to fill the value
+ * @param[in] value to fill
+ * @return number of bytes filled in to the buffer
+ */
+int
+copyU16(unsigned char *buffer, uint32_t val)
+{
+ if (val < 255) {
+ buffer[0] = (val >> 8) & 0xFF;
+ buffer[1] = val & 0xFF;
+ return 2;
+ } else if (val < 65535) {
+ buffer[0] = 0x40;
+ buffer[1] = (val >> 8) & 0xFF;
+ buffer[2] = val & 0xFF;
+ return 3;
+ } else {
+ buffer[0] = 0x80;
+ buffer[1] = (val >> 16) & 0xFF;
+ buffer[2] = (val >> 8) & 0xFF;
+ buffer[3] = val & 0xFF;
+ return 4;
+ }
+}
+
+void
+calculate_mac(uint8_t *int_key, uint32_t seq_no, uint8_t direction,
+ uint8_t bearer, uint8_t *data, uint16_t data_len,
+ uint8_t *mac)
+{
+ uint8_t *out;
+
+ out = f9(int_key, seq_no, bearer, direction, data, data_len * 8);
+
+ memcpy(mac, out, MAC_SIZE);
+
+ return;
+}
+
+int
+init_s1ap_workers()
+{
+ pthread_attr_t attr;
+
+ pthread_attr_init(&attr);
+ /* set the thread detach state */
+ pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+
+ pthread_attr_destroy(&attr);
+ return 0;
+}
+
+/**
+ * @brief Thread to read and distribute sctp request received. Messages will
+ * be passed to s1ap handler function for further processing.
+ * @param[in] thread data
+ * @return thread return data
+ */
+void *
+accept_sctp(void *data)
+{
+ log_msg(LOG_INFO, "accept connection on sctp sock\n");
+ int new_socket = 0;
+ int activity = 0;
+ int i = 0;
+ int valread = 0;
+ int sd = 0;
+ int max_sd = 0;
+ int enb_socket[MAX_ENB] = {0};
+ unsigned char buffer[BUFFER_LEN] = {0};
+
+ while(1) {
+ log_msg(LOG_INFO, "WHILE LOOP\n");
+
+ fd_set readfds;
+ memset (buffer, 0, BUFFER_LEN);
+ valread = 0;
+
+ FD_ZERO(&readfds);
+ FD_SET(g_sctp_fd, &readfds);
+ max_sd = g_sctp_fd;
+
+ for (i = 0; i < MAX_ENB; i++) {
+ sd = enb_socket[i];
+
+ if (sd > 0) {
+ FD_SET(sd, &readfds);
+ }
+
+ if (sd > max_sd) {
+ max_sd = sd;
+ }
+ }
+
+ activity = select(max_sd + 1, &readfds, NULL, NULL, NULL);
+
+ if ((activity < 0) && (errno != EINTR)) {
+ log_msg(LOG_ERROR, "select error.\n");
+ }
+
+ if (FD_ISSET(g_sctp_fd, &readfds)) {
+
+ if ((new_socket = accept_sctp_socket(g_sctp_fd)) == -1) {
+ log_msg(LOG_ERROR, "Error in accept on sctp socket.\n");
+ }
+
+ log_msg(LOG_INFO, "New Connection Established\n.");
+
+ for (i = 0; i < MAX_ENB; i++) {
+
+ if( enb_socket[i] == 0 ) {
+
+ enb_socket[i] = new_socket;
+ g_enb_fd = new_socket;
+ log_msg(LOG_INFO, "Adding to list of sockets at %d value %d\n" , i, new_socket);
+
+ break;
+ }
+ }
+ }
+
+ for (i = 0; i < MAX_ENB; i++) {
+
+ sd = enb_socket[i];
+
+ if (FD_ISSET(sd, &readfds)) {
+
+ if ((valread = recv_sctp_msg(sd, buffer, SCTP_BUF_SIZE)) == 0) {
+
+ log_msg(LOG_INFO, "Host Disconnected\n");
+ close(sd);
+ enb_socket[i] = 0;
+
+ } else {
+
+ unsigned char *tmpBuf = (unsigned char *)
+ malloc(sizeof(char) * valread + (2*sizeof(int)) );
+ memcpy(tmpBuf, &sd, sizeof(sd));
+ memcpy(tmpBuf + sizeof(int), &valread, sizeof(int));
+ memcpy(tmpBuf + (2*sizeof(int)), buffer, valread);
+ //tmpBuf[len] = '\0';
+ log_msg(LOG_INFO, "SCTP Received msg len : %d on fd %d\n",
+ valread, sd);
+ insert_job(g_tpool, handle_s1ap_message, tmpBuf);
+
+ }
+ }
+ }
+
+ }/* while */
+
+ return NULL;
+}
+
+void * tipc_msg_handler()
+{
+ int bytesRead = 0;
+ while (1)
+ {
+ unsigned char buffer[BUFFER_LEN] = {0};
+ if ((bytesRead = read_tipc_msg(ipc_tipc_reader, buffer,BUFFER_LEN)) > 0)
+ {
+ unsigned char *tmpBuf = (unsigned char *) malloc(sizeof(char) * bytesRead);
+ memcpy(tmpBuf, buffer, bytesRead);
+ log_msg(LOG_INFO, "S1AP message received from mme-app");
+ insert_job(g_tpool_tipc_reader, handle_mmeapp_message, tmpBuf);
+ }
+ }
+}
+
+/**
+ * @brief Initialize sctp socket connection for eNB
+ * @return Error code SUCCESS or FAIL
+*/
+int
+init_sctp()
+{
+ log_msg(LOG_INFO, "Create sctp sock, ip:%d, port:%d\n",
+ g_s1ap_cfg.s1ap_local_ip, g_s1ap_cfg.sctp_port);
+ /*Create MME sctp listned socket*/
+ g_sctp_fd = create_sctp_socket(g_s1ap_cfg.s1ap_local_ip,
+ g_s1ap_cfg.sctp_port);
+
+ if (g_sctp_fd == -1) {
+ log_msg(LOG_ERROR, "Error in creating sctp socket. \n");
+ return -E_FAIL;
+ }
+
+ pthread_attr_t attr;
+
+ pthread_attr_init(&attr);
+ /* set the thread detach state */
+ pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+
+ int ret = pthread_create(&acceptSctp_t, &attr,&accept_sctp, NULL);
+ if(ret < 0) {
+ log_msg(LOG_ERROR,"SCTP ACCEPTS THREAD FAILED\n");
+ return -E_FAIL;
+ }
+
+ pthread_attr_destroy(&attr);
+ return SUCCESS;
+}
+
+
+/**
+ * @brief Init all writer IPC channels for s1ap program
+ * @return Success/fail error code
+ */
+int
+init_writer_ipc()
+{
+ if ((ipc_S1ap_Hndl = create_tipc_socket()) <= 0)
+ return -E_FAIL;
+
+ log_msg(LOG_INFO, "Writer IPCs initialized\n");
+
+ return SUCCESS;
+}
+
+/**
+ * @brief Init handlers to process messages coming from mme-app
+ * @return error code.
+ */
+int
+start_mme_resp_handlers()
+{
+ if ((ipc_tipc_reader = create_tipc_socket()) <= 0)
+ {
+ log_msg(LOG_ERROR, "Failed to create IPC Reader tipc socket \n");
+ return -E_FAIL;
+ }
+ if ( bind_tipc_socket(ipc_tipc_reader, s1apAppInstanceNum_c) != 1)
+ {
+ log_msg(LOG_ERROR, "Failed to bind IPC Reader tipc socket \n");
+ return -E_FAIL;
+ }
+
+ /* Initialize thread pool for mme-app messages */
+ g_tpool_tipc_reader = thread_pool_new(5);
+
+ if (g_tpool_tipc_reader == NULL) {
+ log_msg(LOG_ERROR, "Error in creating thread pool. \n");
+ return -E_FAIL_INIT;
+ }
+
+ log_msg(LOG_INFO, "S1AP Listener theadpool initalized.\n");
+
+ // thread to read incoming ipc messages from tipc socket
+ pthread_attr_t attr;
+ pthread_attr_init(&attr);
+ pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+ pthread_create(&tipcReader_t, &attr, &tipc_msg_handler, NULL);
+ pthread_attr_destroy(&attr);
+
+
+ return SUCCESS;
+}
+
+/**
+ *@Thread to handle send messages to sctp thread
+ * NOT user currently.
+ */
+void *
+sctp_write(void *args)
+{
+ while(1) {
+
+ sleep(10);
+
+ }
+}
+
+int
+start_sctp_threads()
+{
+ pthread_t sctp_writer;
+ pthread_attr_t attr;
+ int res = SUCCESS;
+
+ res = pthread_attr_init(&attr);
+ if (res != 0)
+ return -E_FAIL;
+
+ res = pthread_attr_setdetachstate(&attr,
+ PTHREAD_CREATE_DETACHED);
+ if (res != 0)
+ return -E_FAIL;
+
+ res = pthread_create(&sctp_writer, &attr,
+ sctp_write, NULL);
+ if (res != 0) {
+ log_msg(LOG_ERROR, "Error in creating sctp writer thread.\n");
+ pthread_attr_destroy(&attr);
+ return -E_FAIL;
+ }
+
+ pthread_attr_destroy(&attr);
+
+ return SUCCESS;
+}
+
+/**
+ * @brief - main entry point for s1ap application. Read json config,
+ * start all the handlers. Connect with configured enb
+ */
+int
+main(int argc, char **argv)
+{
+ memcpy (processName, argv[0], strlen(argv[0]));
+ pid = getpid();
+
+ parse_args(argc, argv);
+
+ init_parser("conf/s1ap.json");
+ parse_s1ap_conf();
+
+ if (init_writer_ipc() != SUCCESS) {
+ log_msg(LOG_ERROR, "Error in initializing writer ipc.\n");
+ return -E_FAIL_INIT;
+ }
+
+ if (start_mme_resp_handlers() != SUCCESS) {
+ log_msg(LOG_ERROR, "Error in starting mme response handlers.\n");
+ return -E_FAIL_INIT;
+ }
+
+ /* Initialize thread pool for sctp request parsers */
+ g_tpool = thread_pool_new(THREADPOOL_SIZE);
+
+ if (g_tpool == NULL) {
+ log_msg(LOG_ERROR, "Error in creating thread pool. \n");
+ return -E_FAIL_INIT;
+ }
+ log_msg(LOG_INFO, "S1AP Listener theadpool initalized.\n");
+
+
+ if (init_sctp() != SUCCESS) {
+ log_msg(LOG_ERROR, "Error in initializing sctp server.\n");
+ return -E_FAIL_INIT;
+ }
+
+ log_msg(LOG_INFO, "Connection accespted from enb \n");
+
+ if (start_sctp_threads() != SUCCESS) {
+ log_msg(LOG_ERROR, "Error in creating sctp reader/writer thread.\n");
+ return -E_FAIL_INIT;
+ }
+
+ log_msg(LOG_INFO, "sctp reader/writer thread started.\n");
+
+
+ while (1) {
+ sleep(10);
+ }
+
+ return SUCCESS;
+}
diff --git a/src/s1ap/options.c b/src/s1ap/options.c
new file mode 100644
index 0000000..fbfae3c
--- /dev/null
+++ b/src/s1ap/options.c
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ * Copyright (c) 2019, Infosys Ltd.
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <getopt.h>
+
+#include "log.h"
+#include "options.h"
+
+void parse_args(int argc, char **argv)
+{
+ int args_set = 0;
+ int c = 0;
+
+ const struct option long_options[] = {
+ {"config_file", required_argument, NULL, 'f'},
+ {0, 0, 0, 0}
+ };
+
+ do {
+ int option_index = 0;
+
+ c = getopt_long(argc, argv, "f:", long_options,
+ &option_index);
+
+ if (c == -1)
+ break;
+
+ switch (c) {
+ case 'f':
+ break;
+ default:
+ log_msg(LOG_ERROR, "Unknown argument - %s.", argv[optind]);
+ exit(0);
+ }
+ } while (c != -1);
+
+ if ((args_set & REQ_ARGS) != REQ_ARGS) {
+ log_msg(LOG_ERROR, "Usage: %s\n", argv[0]);
+ for (c = 0; long_options[c].name; ++c) {
+ log_msg(LOG_ERROR, "\t[ -%s | -%c ] %s\n",
+ long_options[c].name,
+ long_options[c].val,
+ long_options[c].name);
+ }
+ exit(0);
+ }
+}
+
+void log_buffer_free(char** buffer)
+{
+ if(*buffer != NULL)
+ free(*buffer);
+ *buffer = NULL;
+}
+
+void convert_imsi_to_bcd_str(uint8_t *src, uint8_t* dest)
+{
+ if (!src || !dest)
+ {
+ log_msg(LOG_ERROR, "invalid buffer pointers.\n");
+ return;
+ }
+
+ int len = BINARY_IMSI_LEN;
+ int i = 0;
+ for (; i < len - 1; i++) {
+ dest[2 * i] = '0' + ((src[i] >> 4) & 0x0F);
+ dest[2 * i + 1] = '0' + ((src[i]) & 0x0F);
+ }
+
+ dest[2 * (len-1)] = '0' + ((src[i] >> 4) & 0x0F);
+
+ return;
+}
+
+
diff --git a/src/s1ap/sctp_conn.c b/src/s1ap/sctp_conn.c
new file mode 100644
index 0000000..05310e8
--- /dev/null
+++ b/src/s1ap/sctp_conn.c
@@ -0,0 +1,112 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ * Copyright (c) 2019, Infosys Ltd.
+ *
+ * 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 <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/socket.h>
+#include <sys/types.h>
+#include <arpa/inet.h>
+#include <netinet/in.h>
+#include <netinet/sctp.h>
+
+#include "log.h"
+#include "sctp_conn.h"
+#define ENB_PORT 62324
+#define S1AP_PPID 18
+int create_sctp_socket(unsigned int remote_ip, unsigned short port)
+{
+ int connSock;
+ struct sockaddr_in servaddr;
+ int ret;
+
+ connSock = socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP);
+
+ if (connSock == -1)
+ {
+ log_msg(LOG_ERROR, "Socket creation failed\n");
+ return -1;
+ }
+
+ //TODO: use remote_ip
+ bzero ((void *) &servaddr, sizeof (servaddr));
+ servaddr.sin_family = AF_INET;
+ servaddr.sin_addr.s_addr = htonl(remote_ip);
+ //servaddr.sin_addr.s_addr = htonl (INADDR_ANY);
+ servaddr.sin_port = htons(port);
+
+ ret = bind(connSock, (struct sockaddr *) &servaddr, sizeof (servaddr));
+
+ if(ret == -1 )
+ {
+ perror("Bind:");
+ log_msg(LOG_ERROR, "Bind failed \n");
+ close(connSock);
+ return -1;
+ }
+
+ /* Specify maximum streams available per socket */
+ struct sctp_initmsg initmsg;
+ memset (&initmsg, 0, sizeof (initmsg));
+ initmsg.sinit_num_ostreams = MAX_STREAM;
+ initmsg.sinit_max_instreams = MAX_STREAM;
+ initmsg.sinit_max_attempts = 4;
+ ret = setsockopt(connSock, IPPROTO_SCTP, SCTP_INITMSG,
+ &initmsg, sizeof (initmsg));
+
+ if(ret == -1 )
+ {
+ log_msg(LOG_ERROR, "setsockopt() failed \n");
+ close(connSock);
+ return -1;
+ }
+
+ ret = listen(connSock, MAX_PENDING_CONN);
+ if(ret == -1 )
+ {
+ log_msg(LOG_ERROR, "listen() failed \n");
+ close(connSock);
+ return -1;
+ }
+ return connSock;
+}
+
+int accept_sctp_socket(int connSock)
+{
+ return accept(connSock, (struct sockaddr *) NULL, (socklen_t *) NULL);
+}
+
+int recv_sctp_msg(int connSock, unsigned char *buffer, size_t len)
+{
+ struct sctp_sndrcvinfo sndrcvinfo;
+ int flags;
+ return sctp_recvmsg(connSock, buffer, len,
+ (struct sockaddr *) NULL, 0, &sndrcvinfo, &flags);
+}
+
+int send_sctp_msg(int connSock, unsigned char *buffer, size_t len, uint16_t stream_no)
+{
+ uint32_t ppid = S1AP_PPID;
+ return sctp_sendmsg(connSock, (void *)buffer, len,
+ NULL, 0, htonl(ppid), 0, stream_no, 0, 0);
+}
+
+int close_sctp_socket(int connSock)
+{
+ return close(connSock);
+}