diff --git a/e2sim/ASN1c/RadioframeAllocationPeriod.h b/e2sim/ASN1c/RadioframeAllocationPeriod.h
new file mode 100644
index 0000000..67a5d2d
--- /dev/null
+++ b/e2sim/ASN1c/RadioframeAllocationPeriod.h
@@ -0,0 +1,76 @@
+/*****************************************************************************
+#                                                                            *
+# Copyright 2019 AT&T Intellectual Property                                  *
+#                                                                            *
+# Licensed under the Apache License, Version 2.0 (the "License");            *
+# you may not use this file except in compliance with the License.           *
+# You may obtain a copy of the License at                                    *
+#                                                                            *
+#      http://www.apache.org/licenses/LICENSE-2.0                            *
+#                                                                            *
+# Unless required by applicable law or agreed to in writing, software        *
+# distributed under the License is distributed on an "AS IS" BASIS,          *
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   *
+# See the License for the specific language governing permissions and        *
+# limitations under the License.                                             *
+#                                                                            *
+******************************************************************************/
+
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ * 	found in "../../asnFiles/X2AP-IEs.asn"
+ * 	`asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.`
+ */
+
+#ifndef	_RadioframeAllocationPeriod_H_
+#define	_RadioframeAllocationPeriod_H_
+
+
+#include "asn_application.h"
+
+/* Including external dependencies */
+#include "NativeEnumerated.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RadioframeAllocationPeriod {
+	RadioframeAllocationPeriod_n1	= 0,
+	RadioframeAllocationPeriod_n2	= 1,
+	RadioframeAllocationPeriod_n4	= 2,
+	RadioframeAllocationPeriod_n8	= 3,
+	RadioframeAllocationPeriod_n16	= 4,
+	RadioframeAllocationPeriod_n32	= 5
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RadioframeAllocationPeriod;
+
+/* RadioframeAllocationPeriod */
+typedef long	 RadioframeAllocationPeriod_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RadioframeAllocationPeriod_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RadioframeAllocationPeriod;
+extern const asn_INTEGER_specifics_t asn_SPC_RadioframeAllocationPeriod_specs_1;
+asn_struct_free_f RadioframeAllocationPeriod_free;
+asn_struct_print_f RadioframeAllocationPeriod_print;
+asn_constr_check_f RadioframeAllocationPeriod_constraint;
+ber_type_decoder_f RadioframeAllocationPeriod_decode_ber;
+der_type_encoder_f RadioframeAllocationPeriod_encode_der;
+xer_type_decoder_f RadioframeAllocationPeriod_decode_xer;
+xer_type_encoder_f RadioframeAllocationPeriod_encode_xer;
+per_type_decoder_f RadioframeAllocationPeriod_decode_uper;
+per_type_encoder_f RadioframeAllocationPeriod_encode_uper;
+per_type_decoder_f RadioframeAllocationPeriod_decode_aper;
+per_type_encoder_f RadioframeAllocationPeriod_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RadioframeAllocationPeriod_H_ */
+#include "asn_internal.h"
