diff --git a/src/ranap/RANAP_GA-PointWithAltitude.c b/src/ranap/RANAP_GA-PointWithAltitude.c
new file mode 100644
index 0000000..92686d9
--- /dev/null
+++ b/src/ranap/RANAP_GA-PointWithAltitude.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RANAP-IEs"
+ * 	found in "../../asn1/ranap/RANAP-IEs.asn"
+ */
+
+#include "RANAP_GA-PointWithAltitude.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_GA_PointWithAltitude_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GA_PointWithAltitude, geographicalCoordinates),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_GeographicalCoordinates,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"geographicalCoordinates"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_GA_PointWithAltitude, altitudeAndDirection),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_GA_AltitudeAndDirection,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"altitudeAndDirection"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_GA_PointWithAltitude, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_RANAP_GA_PointWithAltitude_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANAP_GA_PointWithAltitude_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_GA_PointWithAltitude_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* geographicalCoordinates */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* altitudeAndDirection */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_GA_PointWithAltitude_specs_1 = {
+	sizeof(struct RANAP_GA_PointWithAltitude),
+	offsetof(struct RANAP_GA_PointWithAltitude, _asn_ctx),
+	asn_MAP_RANAP_GA_PointWithAltitude_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANAP_GA_PointWithAltitude_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_GA_PointWithAltitude = {
+	"RANAP_GA-PointWithAltitude",
+	"RANAP_GA-PointWithAltitude",
+	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_GA_PointWithAltitude_tags_1,
+	sizeof(asn_DEF_RANAP_GA_PointWithAltitude_tags_1)
+		/sizeof(asn_DEF_RANAP_GA_PointWithAltitude_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_GA_PointWithAltitude_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_GA_PointWithAltitude_tags_1)
+		/sizeof(asn_DEF_RANAP_GA_PointWithAltitude_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_GA_PointWithAltitude_1,
+	3,	/* Elements count */
+	&asn_SPC_RANAP_GA_PointWithAltitude_specs_1	/* Additional specs */
+};
+
