diff --git a/3rdparty/libe2ap/EUTRA-Mode-Info.h b/3rdparty/libe2ap/EUTRA-Mode-Info.h
new file mode 100644
index 0000000..628e79e
--- /dev/null
+++ b/3rdparty/libe2ap/EUTRA-Mode-Info.h
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "X2AP-IEs"
+ * 	found in "Spec/e2_and_x2-combined-and-minimized.asn1"
+ * 	`asn1c -pdu=auto -fincludes-quoted -fcompound-names -fno-include-deps -gen-PER -no-gen-OER -no-gen-example`
+ */
+
+#ifndef	_EUTRA_Mode_Info_H_
+#define	_EUTRA_Mode_Info_H_
+
+
+#include "asn_application.h"
+
+/* Including external dependencies */
+#include "FDD-Info.h"
+#include "TDD-Info.h"
+#include "constr_CHOICE.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum EUTRA_Mode_Info_PR {
+	EUTRA_Mode_Info_PR_NOTHING,	/* No components present */
+	EUTRA_Mode_Info_PR_fDD,
+	EUTRA_Mode_Info_PR_tDD
+	/* Extensions may appear below */
+	
+} EUTRA_Mode_Info_PR;
+
+/* EUTRA-Mode-Info */
+typedef struct EUTRA_Mode_Info {
+	EUTRA_Mode_Info_PR present;
+	union EUTRA_Mode_Info_u {
+		FDD_Info_t	 fDD;
+		TDD_Info_t	 tDD;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} EUTRA_Mode_Info_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EUTRA_Mode_Info;
+extern asn_CHOICE_specifics_t asn_SPC_EUTRA_Mode_Info_specs_1;
+extern asn_TYPE_member_t asn_MBR_EUTRA_Mode_Info_1[2];
+extern asn_per_constraints_t asn_PER_type_EUTRA_Mode_Info_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _EUTRA_Mode_Info_H_ */
+#include "asn_internal.h"
