diff --git a/src/rua/RUA_IntraDomainNasNodeSelector.h b/src/rua/RUA_IntraDomainNasNodeSelector.h
new file mode 100644
index 0000000..61e708b
--- /dev/null
+++ b/src/rua/RUA_IntraDomainNasNodeSelector.h
@@ -0,0 +1,80 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RUA-IEs"
+ * 	found in "../../asn1/rua/RUA-IEs.asn"
+ */
+
+#ifndef	_RUA_IntraDomainNasNodeSelector_H_
+#define	_RUA_IntraDomainNasNodeSelector_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RUA_Gsm-map-IDNNS.h"
+#include "RUA_Ansi-41-IDNNS.h"
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum version_PR {
+	version_PR_NOTHING,	/* No components present */
+	version_PR_release99,
+	version_PR_later
+} version_PR;
+typedef enum cn_Type_PR {
+	cn_Type_PR_NOTHING,	/* No components present */
+	cn_Type_PR_gsm_Map_IDNNS,
+	cn_Type_PR_ansi_41_IDNNS
+} cn_Type_PR;
+
+/* RUA_IntraDomainNasNodeSelector */
+typedef struct RUA_IntraDomainNasNodeSelector {
+	struct version {
+		version_PR present;
+		union RUA_IntraDomainNasNodeSelector__version_u {
+			struct release99 {
+				struct cn_Type {
+					cn_Type_PR present;
+					union RUA_IntraDomainNasNodeSelector__version__release99__cn_Type_u {
+						RUA_Gsm_map_IDNNS_t	 gsm_Map_IDNNS;
+						RUA_Ansi_41_IDNNS_t	 ansi_41_IDNNS;
+					} choice;
+					
+					/* Context for parsing across buffer boundaries */
+					asn_struct_ctx_t _asn_ctx;
+				} cn_Type;
+				
+				/* Context for parsing across buffer boundaries */
+				asn_struct_ctx_t _asn_ctx;
+			} release99;
+			struct later {
+				BIT_STRING_t	 futurecoding;
+				
+				/* Context for parsing across buffer boundaries */
+				asn_struct_ctx_t _asn_ctx;
+			} later;
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} version;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RUA_IntraDomainNasNodeSelector_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RUA_IntraDomainNasNodeSelector;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RUA_IntraDomainNasNodeSelector_H_ */
+#include <asn_internal.h>
