diff --git a/src/ranap/RANAP_ProtocolIE-FieldPair.c b/src/ranap/RANAP_ProtocolIE-FieldPair.c
new file mode 100644
index 0000000..aa3031b
--- /dev/null
+++ b/src/ranap/RANAP_ProtocolIE-FieldPair.c
@@ -0,0 +1,101 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-PDU"
+ * 	found in "../../asn1/ranap/RANAP-PDU.asn"
+ */
+
+#include "RANAP_ProtocolIE-FieldPair.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_ProtocolIE_FieldPair_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_ProtocolIE_FieldPair, id),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_ProtocolIE_ID,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"id"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_ProtocolIE_FieldPair, firstCriticality),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Criticality,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"firstCriticality"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_ProtocolIE_FieldPair, firstValue),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_ANY,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"firstValue"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_ProtocolIE_FieldPair, secondCriticality),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Criticality,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"secondCriticality"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_ProtocolIE_FieldPair, secondValue),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_ANY,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"secondValue"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANAP_ProtocolIE_FieldPair_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_ProtocolIE_FieldPair_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* firstCriticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* firstValue */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* secondCriticality */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* secondValue */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_ProtocolIE_FieldPair_specs_1 = {
+	sizeof(struct RANAP_ProtocolIE_FieldPair),
+	offsetof(struct RANAP_ProtocolIE_FieldPair, _asn_ctx),
+	asn_MAP_RANAP_ProtocolIE_FieldPair_tag2el_1,
+	5,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_ProtocolIE_FieldPair = {
+	"RANAP_ProtocolIE-FieldPair",
+	"RANAP_ProtocolIE-FieldPair",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RANAP_ProtocolIE_FieldPair_tags_1,
+	sizeof(asn_DEF_RANAP_ProtocolIE_FieldPair_tags_1)
+		/sizeof(asn_DEF_RANAP_ProtocolIE_FieldPair_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_ProtocolIE_FieldPair_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_ProtocolIE_FieldPair_tags_1)
+		/sizeof(asn_DEF_RANAP_ProtocolIE_FieldPair_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_ProtocolIE_FieldPair_1,
+	5,	/* Elements count */
+	&asn_SPC_RANAP_ProtocolIE_FieldPair_specs_1	/* Additional specs */
+};
+
