diff --git a/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrateInf.c b/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrateInf.c
new file mode 100644
index 0000000..6bd2fec
--- /dev/null
+++ b/src/ranap/RANAP_Alt-RAB-Parameter-MaxBitrateInf.c
@@ -0,0 +1,73 @@
+/*
+ * 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_Alt-RAB-Parameter-MaxBitrateInf.h"
+
+static asn_TYPE_member_t asn_MBR_RANAP_Alt_RAB_Parameter_MaxBitrateInf_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANAP_Alt_RAB_Parameter_MaxBitrateInf, altMaxBitrateType),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateType,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"altMaxBitrateType"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANAP_Alt_RAB_Parameter_MaxBitrateInf, altMaxBitrates),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrates,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"altMaxBitrates"
+		},
+};
+static const int asn_MAP_RANAP_Alt_RAB_Parameter_MaxBitrateInf_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateInf_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANAP_Alt_RAB_Parameter_MaxBitrateInf_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* altMaxBitrateType */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* altMaxBitrates */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RANAP_Alt_RAB_Parameter_MaxBitrateInf_specs_1 = {
+	sizeof(struct RANAP_Alt_RAB_Parameter_MaxBitrateInf),
+	offsetof(struct RANAP_Alt_RAB_Parameter_MaxBitrateInf, _asn_ctx),
+	asn_MAP_RANAP_Alt_RAB_Parameter_MaxBitrateInf_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_RANAP_Alt_RAB_Parameter_MaxBitrateInf_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	1,	/* Start extensions */
+	3	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateInf = {
+	"RANAP_Alt-RAB-Parameter-MaxBitrateInf",
+	"RANAP_Alt-RAB-Parameter-MaxBitrateInf",
+	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_Alt_RAB_Parameter_MaxBitrateInf_tags_1,
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateInf_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateInf_tags_1[0]), /* 1 */
+	asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateInf_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateInf_tags_1)
+		/sizeof(asn_DEF_RANAP_Alt_RAB_Parameter_MaxBitrateInf_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RANAP_Alt_RAB_Parameter_MaxBitrateInf_1,
+	2,	/* Elements count */
+	&asn_SPC_RANAP_Alt_RAB_Parameter_MaxBitrateInf_specs_1	/* Additional specs */
+};
+
