diff --git a/src/rspro/TpduFlags.c b/src/rspro/TpduFlags.c
new file mode 100644
index 0000000..a43ec7a
--- /dev/null
+++ b/src/rspro/TpduFlags.c
@@ -0,0 +1,89 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#include <osmocom/rspro/TpduFlags.h>
+
+static asn_TYPE_member_t asn_MBR_TpduFlags_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct TpduFlags, tpduHeaderPresent),
+		(ASN_TAG_CLASS_UNIVERSAL | (1 << 2)),
+		0,
+		&asn_DEF_BOOLEAN,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* PER is not compiled, use -gen-PER */
+		0,
+		"tpduHeaderPresent"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct TpduFlags, finalPart),
+		(ASN_TAG_CLASS_UNIVERSAL | (1 << 2)),
+		0,
+		&asn_DEF_BOOLEAN,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* PER is not compiled, use -gen-PER */
+		0,
+		"finalPart"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct TpduFlags, procByteContinueTx),
+		(ASN_TAG_CLASS_UNIVERSAL | (1 << 2)),
+		0,
+		&asn_DEF_BOOLEAN,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* PER is not compiled, use -gen-PER */
+		0,
+		"procByteContinueTx"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct TpduFlags, procByteContinueRx),
+		(ASN_TAG_CLASS_UNIVERSAL | (1 << 2)),
+		0,
+		&asn_DEF_BOOLEAN,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* PER is not compiled, use -gen-PER */
+		0,
+		"procByteContinueRx"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_TpduFlags_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_TpduFlags_tag2el_1[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)), 0, 0, 3 }, /* tpduHeaderPresent */
+    { (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)), 1, -1, 2 }, /* finalPart */
+    { (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)), 2, -2, 1 }, /* procByteContinueTx */
+    { (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)), 3, -3, 0 } /* procByteContinueRx */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_TpduFlags_specs_1 = {
+	sizeof(struct TpduFlags),
+	offsetof(struct TpduFlags, _asn_ctx),
+	asn_MAP_TpduFlags_tag2el_1,
+	4,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	3,	/* Start extensions */
+	5	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_TpduFlags = {
+	"TpduFlags",
+	"TpduFlags",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	0, 0,	/* No UPER support, use "-gen-PER" to enable */
+	0, 0,	/* No APER support, use "-gen-PER" to enable */
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_TpduFlags_tags_1,
+	sizeof(asn_DEF_TpduFlags_tags_1)
+		/sizeof(asn_DEF_TpduFlags_tags_1[0]), /* 1 */
+	asn_DEF_TpduFlags_tags_1,	/* Same as above */
+	sizeof(asn_DEF_TpduFlags_tags_1)
+		/sizeof(asn_DEF_TpduFlags_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_TpduFlags_1,
+	4,	/* Elements count */
+	&asn_SPC_TpduFlags_specs_1	/* Additional specs */
+};
+
