diff --git a/src/ranap/RANAP_RABDataVolumeReport.c b/src/ranap/RANAP_RABDataVolumeReport.c
index 06d21b6..966b4db 100644
--- a/src/ranap/RANAP_RABDataVolumeReport.c
+++ b/src/ranap/RANAP_RABDataVolumeReport.c
@@ -11,8 +11,8 @@
 	{ APC_CONSTRAINED,	 1,  1,  1l,  2l }	/* (SIZE(1..2)) */,
 	0, 0	/* No PER value map */
 };
-static asn_TYPE_member_t asn_MBR_Member_2[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct Member, dl_UnsuccessfullyTransmittedDataVolume),
+static asn_TYPE_member_t asn_MBR_MemberN_2[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct MemberN, dl_UnsuccessfullyTransmittedDataVolume),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_RANAP_UnsuccessfullyTransmittedDataVolume,
@@ -21,7 +21,7 @@
 		0,
 		"dl-UnsuccessfullyTransmittedDataVolume"
 		},
-	{ ATF_POINTER, 2, offsetof(struct Member, dataVolumeReference),
+	{ ATF_POINTER, 2, offsetof(struct MemberN, dataVolumeReference),
 		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
 		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_RANAP_DataVolumeReference,
@@ -30,7 +30,7 @@
 		0,
 		"dataVolumeReference"
 		},
-	{ ATF_POINTER, 1, offsetof(struct Member, iE_Extensions),
+	{ ATF_POINTER, 1, offsetof(struct MemberN, iE_Extensions),
 		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
 		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_RANAP_IE_Extensions,
@@ -40,27 +40,27 @@
 		"iE-Extensions"
 		},
 };
-static const int asn_MAP_Member_oms_2[] = { 1, 2 };
-static const ber_tlv_tag_t asn_DEF_Member_tags_2[] = {
+static const int asn_MAP_MemberN_oms_2[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_MemberN_tags_2[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static const asn_TYPE_tag2member_t asn_MAP_Member_tag2el_2[] = {
+static const asn_TYPE_tag2member_t asn_MAP_MemberN_tag2el_2[] = {
     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dl-UnsuccessfullyTransmittedDataVolume */
     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dataVolumeReference */
     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
 };
-static asn_SEQUENCE_specifics_t asn_SPC_Member_specs_2 = {
-	sizeof(struct Member),
-	offsetof(struct Member, _asn_ctx),
-	asn_MAP_Member_tag2el_2,
+static asn_SEQUENCE_specifics_t asn_SPC_MemberN_specs_2 = {
+	sizeof(struct MemberN),
+	offsetof(struct MemberN, _asn_ctx),
+	asn_MAP_MemberN_tag2el_2,
 	3,	/* Count of tags in the map */
-	asn_MAP_Member_oms_2,	/* Optional members */
+	asn_MAP_MemberN_oms_2,	/* Optional members */
 	2, 0,	/* Root/Additions */
 	2,	/* Start extensions */
 	4	/* Stop extensions */
 };
 static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_Member_2 = {
+asn_TYPE_descriptor_t asn_DEF_MemberN_2 = {
 	"SEQUENCE",
 	"SEQUENCE",
 	SEQUENCE_free,
@@ -75,23 +75,23 @@
 	SEQUENCE_decode_aper,
 	SEQUENCE_encode_aper,
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_Member_tags_2,
-	sizeof(asn_DEF_Member_tags_2)
-		/sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
-	asn_DEF_Member_tags_2,	/* Same as above */
-	sizeof(asn_DEF_Member_tags_2)
-		/sizeof(asn_DEF_Member_tags_2[0]), /* 1 */
+	asn_DEF_MemberN_tags_2,
+	sizeof(asn_DEF_MemberN_tags_2)
+		/sizeof(asn_DEF_MemberN_tags_2[0]), /* 1 */
+	asn_DEF_MemberN_tags_2,	/* Same as above */
+	sizeof(asn_DEF_MemberN_tags_2)
+		/sizeof(asn_DEF_MemberN_tags_2[0]), /* 1 */
 	0,	/* No PER visible constraints */
-	asn_MBR_Member_2,
+	asn_MBR_MemberN_2,
 	3,	/* Elements count */
-	&asn_SPC_Member_specs_2	/* Additional specs */
+	&asn_SPC_MemberN_specs_2	/* Additional specs */
 };
 
 static asn_TYPE_member_t asn_MBR_RANAP_RABDataVolumeReport_1[] = {
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
-		&asn_DEF_Member_2,
+		&asn_DEF_MemberN_2,
 		0,	/* Defer constraints checking to the member type */
 		0,	/* No PER visible constraints */
 		0,
