diff --git a/3rdparty/libe2ap/RICcause.c b/3rdparty/libe2ap/RICcause.c
new file mode 100644
index 0000000..52d4cd2
--- /dev/null
+++ b/3rdparty/libe2ap/RICcause.c
@@ -0,0 +1,92 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-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`
+ */
+
+#include "RICcause.h"
+
+asn_per_constraints_t asn_PER_type_RICcause_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  4 }	/* (0..4,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_RICcause_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RICcause, choice.radioNetwork),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_CauseRadioNetwork,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"radioNetwork"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RICcause, choice.transport),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_CauseTransport,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"transport"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RICcause, choice.protocol),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_CauseProtocol,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"protocol"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RICcause, choice.misc),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_CauseMisc,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"misc"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RICcause, choice.ric),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_CauseRIC,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICcause_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioNetwork */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* misc */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ric */
+};
+asn_CHOICE_specifics_t asn_SPC_RICcause_specs_1 = {
+	sizeof(struct RICcause),
+	offsetof(struct RICcause, _asn_ctx),
+	offsetof(struct RICcause, present),
+	sizeof(((struct RICcause *)0)->present),
+	asn_MAP_RICcause_tag2el_1,
+	5,	/* Count of tags in the map */
+	0, 0,
+	5	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RICcause = {
+	"RICcause",
+	"RICcause",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ 0, &asn_PER_type_RICcause_constr_1, CHOICE_constraint },
+	asn_MBR_RICcause_1,
+	5,	/* Elements count */
+	&asn_SPC_RICcause_specs_1	/* Additional specs */
+};
+
