initial checkin of osmo-remsim

This adds some initial code, particularly the ASN.1 definition of the
RSPRO protocol, related makefile to build it using ffasn1c, and our
usual autoconf infrastructure to build it.

Change-Id: Ibaa993b59e9a65a0242b0f42b27d9cd29f8e1878
diff --git a/include/Makefile.am b/include/Makefile.am
new file mode 100644
index 0000000..3578a80
--- /dev/null
+++ b/include/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = osmocom
diff --git a/include/osmocom/Makefile.am b/include/osmocom/Makefile.am
new file mode 100644
index 0000000..dda6b88
--- /dev/null
+++ b/include/osmocom/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = rspro
diff --git a/include/osmocom/rspro/ATR.h b/include/osmocom/rspro/ATR.h
new file mode 100644
index 0000000..e737109
--- /dev/null
+++ b/include/osmocom/rspro/ATR.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_ATR_H_
+#define	_ATR_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ATR */
+typedef OCTET_STRING_t	 ATR_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ATR;
+asn_struct_free_f ATR_free;
+asn_struct_print_f ATR_print;
+asn_constr_check_f ATR_constraint;
+ber_type_decoder_f ATR_decode_ber;
+der_type_encoder_f ATR_encode_der;
+xer_type_decoder_f ATR_decode_xer;
+xer_type_encoder_f ATR_encode_xer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _ATR_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/BankId.h b/include/osmocom/rspro/BankId.h
new file mode 100644
index 0000000..e24f7c5
--- /dev/null
+++ b/include/osmocom/rspro/BankId.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_BankId_H_
+#define	_BankId_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* BankId */
+typedef long	 BankId_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_BankId;
+asn_struct_free_f BankId_free;
+asn_struct_print_f BankId_print;
+asn_constr_check_f BankId_constraint;
+ber_type_decoder_f BankId_decode_ber;
+der_type_encoder_f BankId_encode_der;
+xer_type_decoder_f BankId_decode_xer;
+xer_type_encoder_f BankId_encode_xer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _BankId_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/BankSlot.h b/include/osmocom/rspro/BankSlot.h
new file mode 100644
index 0000000..44cf95d
--- /dev/null
+++ b/include/osmocom/rspro/BankSlot.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_BankSlot_H_
+#define	_BankSlot_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/rspro/BankId.h>
+#include <osmocom/rspro/SlotNumber.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* BankSlot */
+typedef struct BankSlot {
+	BankId_t	 bankId;
+	SlotNumber_t	 slotNr;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} BankSlot_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_BankSlot;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _BankSlot_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/BankSlotStatusInd.h b/include/osmocom/rspro/BankSlotStatusInd.h
new file mode 100644
index 0000000..08b6fbb
--- /dev/null
+++ b/include/osmocom/rspro/BankSlotStatusInd.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_BankSlotStatusInd_H_
+#define	_BankSlotStatusInd_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/rspro/BankSlot.h>
+#include <osmocom/rspro/ClientSlot.h>
+#include <osmocom/rspro/SlotPhysStatus.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* BankSlotStatusInd */
+typedef struct BankSlotStatusInd {
+	BankSlot_t	 fromBankSlot;
+	ClientSlot_t	 toClientSlot;
+	SlotPhysStatus_t	 slotPhysStatus;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} BankSlotStatusInd_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_BankSlotStatusInd;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _BankSlotStatusInd_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/ClientId.h b/include/osmocom/rspro/ClientId.h
new file mode 100644
index 0000000..9c7201f
--- /dev/null
+++ b/include/osmocom/rspro/ClientId.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_ClientId_H_
+#define	_ClientId_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ClientId */
+typedef long	 ClientId_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ClientId;
+asn_struct_free_f ClientId_free;
+asn_struct_print_f ClientId_print;
+asn_constr_check_f ClientId_constraint;
+ber_type_decoder_f ClientId_decode_ber;
+der_type_encoder_f ClientId_encode_der;
+xer_type_decoder_f ClientId_decode_xer;
+xer_type_encoder_f ClientId_encode_xer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _ClientId_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/ClientSlot.h b/include/osmocom/rspro/ClientSlot.h
new file mode 100644
index 0000000..ee36650
--- /dev/null
+++ b/include/osmocom/rspro/ClientSlot.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_ClientSlot_H_
+#define	_ClientSlot_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/rspro/ClientId.h>
+#include <osmocom/rspro/SlotNumber.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ClientSlot */
+typedef struct ClientSlot {
+	ClientId_t	 clientId;
+	SlotNumber_t	 slotNr;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} ClientSlot_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ClientSlot;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _ClientSlot_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/ClientSlotStatusInd.h b/include/osmocom/rspro/ClientSlotStatusInd.h
new file mode 100644
index 0000000..075a41a
--- /dev/null
+++ b/include/osmocom/rspro/ClientSlotStatusInd.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_ClientSlotStatusInd_H_
+#define	_ClientSlotStatusInd_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/rspro/ClientSlot.h>
+#include <osmocom/rspro/BankSlot.h>
+#include <osmocom/rspro/SlotPhysStatus.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ClientSlotStatusInd */
+typedef struct ClientSlotStatusInd {
+	ClientSlot_t	 fromClientSlot;
+	BankSlot_t	 toBankSlot;
+	SlotPhysStatus_t	 slotPhysStatus;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} ClientSlotStatusInd_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ClientSlotStatusInd;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _ClientSlotStatusInd_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/ComponentIdentity.h b/include/osmocom/rspro/ComponentIdentity.h
new file mode 100644
index 0000000..166e670
--- /dev/null
+++ b/include/osmocom/rspro/ComponentIdentity.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_ComponentIdentity_H_
+#define	_ComponentIdentity_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/rspro/ComponentType.h>
+#include <osmocom/rspro/ComponentName.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ComponentIdentity */
+typedef struct ComponentIdentity {
+	ComponentType_t	 type;
+	ComponentName_t	 name;
+	ComponentName_t	 software;
+	ComponentName_t	 swVersion;
+	ComponentName_t	*hwManufacturer	/* OPTIONAL */;
+	ComponentName_t	*hwModel	/* OPTIONAL */;
+	ComponentName_t	*hwSerialNr	/* OPTIONAL */;
+	ComponentName_t	*hwVersion	/* OPTIONAL */;
+	ComponentName_t	*fwVersion	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} ComponentIdentity_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ComponentIdentity;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _ComponentIdentity_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/ComponentName.h b/include/osmocom/rspro/ComponentName.h
new file mode 100644
index 0000000..d57557a
--- /dev/null
+++ b/include/osmocom/rspro/ComponentName.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_ComponentName_H_
+#define	_ComponentName_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <IA5String.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ComponentName */
+typedef IA5String_t	 ComponentName_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ComponentName;
+asn_struct_free_f ComponentName_free;
+asn_struct_print_f ComponentName_print;
+asn_constr_check_f ComponentName_constraint;
+ber_type_decoder_f ComponentName_decode_ber;
+der_type_encoder_f ComponentName_encode_der;
+xer_type_decoder_f ComponentName_decode_xer;
+xer_type_encoder_f ComponentName_encode_xer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _ComponentName_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/ComponentType.h b/include/osmocom/rspro/ComponentType.h
new file mode 100644
index 0000000..2eb2fc6
--- /dev/null
+++ b/include/osmocom/rspro/ComponentType.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_ComponentType_H_
+#define	_ComponentType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ComponentType {
+	ComponentType_remsimClient	= 0,
+	ComponentType_remsimServer	= 1,
+	ComponentType_remsimBankd	= 2
+} e_ComponentType;
+
+/* ComponentType */
+typedef long	 ComponentType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ComponentType;
+asn_struct_free_f ComponentType_free;
+asn_struct_print_f ComponentType_print;
+asn_constr_check_f ComponentType_constraint;
+ber_type_decoder_f ComponentType_decode_ber;
+der_type_encoder_f ComponentType_encode_der;
+xer_type_decoder_f ComponentType_decode_xer;
+xer_type_encoder_f ComponentType_encode_xer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _ComponentType_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/ConfigClientReq.h b/include/osmocom/rspro/ConfigClientReq.h
new file mode 100644
index 0000000..670fb68
--- /dev/null
+++ b/include/osmocom/rspro/ConfigClientReq.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_ConfigClientReq_H_
+#define	_ConfigClientReq_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/rspro/ClientId.h>
+#include <osmocom/rspro/IpPort.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ConfigClientReq */
+typedef struct ConfigClientReq {
+	ClientId_t	 clientId;
+	IpPort_t	 bankd;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} ConfigClientReq_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ConfigClientReq;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _ConfigClientReq_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/ConfigClientRes.h b/include/osmocom/rspro/ConfigClientRes.h
new file mode 100644
index 0000000..96c4441
--- /dev/null
+++ b/include/osmocom/rspro/ConfigClientRes.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_ConfigClientRes_H_
+#define	_ConfigClientRes_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/rspro/ResultCode.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ConfigClientRes */
+typedef struct ConfigClientRes {
+	ResultCode_t	 result;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} ConfigClientRes_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ConfigClientRes;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _ConfigClientRes_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/ConnectBankReq.h b/include/osmocom/rspro/ConnectBankReq.h
new file mode 100644
index 0000000..468f8ba
--- /dev/null
+++ b/include/osmocom/rspro/ConnectBankReq.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_ConnectBankReq_H_
+#define	_ConnectBankReq_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/rspro/ComponentIdentity.h>
+#include <osmocom/rspro/BankId.h>
+#include <osmocom/rspro/SlotNumber.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ConnectBankReq */
+typedef struct ConnectBankReq {
+	ComponentIdentity_t	 identity;
+	BankId_t	 bankId;
+	SlotNumber_t	 numberOfSlots;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} ConnectBankReq_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ConnectBankReq;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _ConnectBankReq_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/ConnectBankRes.h b/include/osmocom/rspro/ConnectBankRes.h
new file mode 100644
index 0000000..20be498
--- /dev/null
+++ b/include/osmocom/rspro/ConnectBankRes.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_ConnectBankRes_H_
+#define	_ConnectBankRes_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/rspro/ComponentIdentity.h>
+#include <osmocom/rspro/ResultCode.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ConnectBankRes */
+typedef struct ConnectBankRes {
+	ComponentIdentity_t	 identity;
+	ResultCode_t	 result;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} ConnectBankRes_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ConnectBankRes;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _ConnectBankRes_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/ConnectClientReq.h b/include/osmocom/rspro/ConnectClientReq.h
new file mode 100644
index 0000000..16eebec
--- /dev/null
+++ b/include/osmocom/rspro/ConnectClientReq.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_ConnectClientReq_H_
+#define	_ConnectClientReq_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/rspro/ComponentIdentity.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ConnectClientReq */
+typedef struct ConnectClientReq {
+	ComponentIdentity_t	 identity;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} ConnectClientReq_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ConnectClientReq;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _ConnectClientReq_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/ConnectClientRes.h b/include/osmocom/rspro/ConnectClientRes.h
new file mode 100644
index 0000000..84fbe65
--- /dev/null
+++ b/include/osmocom/rspro/ConnectClientRes.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_ConnectClientRes_H_
+#define	_ConnectClientRes_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/rspro/ComponentIdentity.h>
+#include <osmocom/rspro/ResultCode.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ConnectClientRes */
+typedef struct ConnectClientRes {
+	ComponentIdentity_t	 identity;
+	ResultCode_t	 result;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} ConnectClientRes_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ConnectClientRes;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _ConnectClientRes_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/CreateMappingReq.h b/include/osmocom/rspro/CreateMappingReq.h
new file mode 100644
index 0000000..a6e2560
--- /dev/null
+++ b/include/osmocom/rspro/CreateMappingReq.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_CreateMappingReq_H_
+#define	_CreateMappingReq_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/rspro/ClientSlot.h>
+#include <osmocom/rspro/BankSlot.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* CreateMappingReq */
+typedef struct CreateMappingReq {
+	ClientSlot_t	 client;
+	BankSlot_t	 bank;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} CreateMappingReq_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CreateMappingReq;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _CreateMappingReq_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/CreateMappingRes.h b/include/osmocom/rspro/CreateMappingRes.h
new file mode 100644
index 0000000..b95c20d
--- /dev/null
+++ b/include/osmocom/rspro/CreateMappingRes.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_CreateMappingRes_H_
+#define	_CreateMappingRes_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/rspro/ResultCode.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* CreateMappingRes */
+typedef struct CreateMappingRes {
+	ResultCode_t	 result;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} CreateMappingRes_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CreateMappingRes;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _CreateMappingRes_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/IpAddress.h b/include/osmocom/rspro/IpAddress.h
new file mode 100644
index 0000000..7e029e2
--- /dev/null
+++ b/include/osmocom/rspro/IpAddress.h
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_IpAddress_H_
+#define	_IpAddress_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/rspro/Ipv4Address.h>
+#include <osmocom/rspro/Ipv6Address.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum IpAddress_PR {
+	IpAddress_PR_NOTHING,	/* No components present */
+	IpAddress_PR_ipv4,
+	IpAddress_PR_ipv6
+} IpAddress_PR;
+
+/* IpAddress */
+typedef struct IpAddress {
+	IpAddress_PR present;
+	union IpAddress_u {
+		Ipv4Address_t	 ipv4;
+		Ipv6Address_t	 ipv6;
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} IpAddress_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_IpAddress;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _IpAddress_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/IpPort.h b/include/osmocom/rspro/IpPort.h
new file mode 100644
index 0000000..2ad3b27
--- /dev/null
+++ b/include/osmocom/rspro/IpPort.h
@@ -0,0 +1,39 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_IpPort_H_
+#define	_IpPort_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/rspro/IpAddress.h>
+#include <osmocom/rspro/PortNumber.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* IpPort */
+typedef struct IpPort {
+	IpAddress_t	 ip;
+	PortNumber_t	 port;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} IpPort_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_IpPort;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _IpPort_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/Ipv4Address.h b/include/osmocom/rspro/Ipv4Address.h
new file mode 100644
index 0000000..054bb2e
--- /dev/null
+++ b/include/osmocom/rspro/Ipv4Address.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_Ipv4Address_H_
+#define	_Ipv4Address_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Ipv4Address */
+typedef OCTET_STRING_t	 Ipv4Address_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Ipv4Address;
+asn_struct_free_f Ipv4Address_free;
+asn_struct_print_f Ipv4Address_print;
+asn_constr_check_f Ipv4Address_constraint;
+ber_type_decoder_f Ipv4Address_decode_ber;
+der_type_encoder_f Ipv4Address_encode_der;
+xer_type_decoder_f Ipv4Address_decode_xer;
+xer_type_encoder_f Ipv4Address_encode_xer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _Ipv4Address_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/Ipv6Address.h b/include/osmocom/rspro/Ipv6Address.h
new file mode 100644
index 0000000..9a2eca3
--- /dev/null
+++ b/include/osmocom/rspro/Ipv6Address.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_Ipv6Address_H_
+#define	_Ipv6Address_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Ipv6Address */
+typedef OCTET_STRING_t	 Ipv6Address_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Ipv6Address;
+asn_struct_free_f Ipv6Address_free;
+asn_struct_print_f Ipv6Address_print;
+asn_constr_check_f Ipv6Address_constraint;
+ber_type_decoder_f Ipv6Address_decode_ber;
+der_type_encoder_f Ipv6Address_encode_der;
+xer_type_decoder_f Ipv6Address_decode_xer;
+xer_type_encoder_f Ipv6Address_encode_xer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _Ipv6Address_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/Makefile.am b/include/osmocom/rspro/Makefile.am
new file mode 100644
index 0000000..0bb7b82
--- /dev/null
+++ b/include/osmocom/rspro/Makefile.am
@@ -0,0 +1,38 @@
+noinst_HEADERS = \
+	ATR.h \
+	BankId.h \
+	BankSlot.h \
+	BankSlotStatusInd.h \
+	ClientId.h \
+	ClientSlot.h \
+	ClientSlotStatusInd.h \
+	ComponentIdentity.h \
+	ComponentName.h \
+	ComponentType.h \
+	ConfigClientReq.h \
+	ConfigClientRes.h \
+	ConnectBankReq.h \
+	ConnectBankRes.h \
+	ConnectClientReq.h \
+	ConnectClientRes.h \
+	CreateMappingReq.h \
+	CreateMappingRes.h \
+	IpAddress.h \
+	IpPort.h \
+	Ipv4Address.h \
+	Ipv6Address.h \
+	OperationTag.h \
+	PortNumber.h \
+	RemoveMappingReq.h \
+	RemoveMappingRes.h \
+	ResultCode.h \
+	RsproPDU.h \
+	RsproPDUchoice.h \
+	SetAtrReq.h \
+	SetAtrRes.h \
+	SlotNumber.h \
+	SlotPhysStatus.h \
+	TpduCardToModem.h \
+	TpduFlags.h \
+	TpduModemToCard.h \
+	$(NULL)
diff --git a/include/osmocom/rspro/OperationTag.h b/include/osmocom/rspro/OperationTag.h
new file mode 100644
index 0000000..293ee03
--- /dev/null
+++ b/include/osmocom/rspro/OperationTag.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_OperationTag_H_
+#define	_OperationTag_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* OperationTag */
+typedef long	 OperationTag_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_OperationTag;
+asn_struct_free_f OperationTag_free;
+asn_struct_print_f OperationTag_print;
+asn_constr_check_f OperationTag_constraint;
+ber_type_decoder_f OperationTag_decode_ber;
+der_type_encoder_f OperationTag_encode_der;
+xer_type_decoder_f OperationTag_decode_xer;
+xer_type_encoder_f OperationTag_encode_xer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _OperationTag_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/PortNumber.h b/include/osmocom/rspro/PortNumber.h
new file mode 100644
index 0000000..2a06e64
--- /dev/null
+++ b/include/osmocom/rspro/PortNumber.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_PortNumber_H_
+#define	_PortNumber_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* PortNumber */
+typedef long	 PortNumber_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_PortNumber;
+asn_struct_free_f PortNumber_free;
+asn_struct_print_f PortNumber_print;
+asn_constr_check_f PortNumber_constraint;
+ber_type_decoder_f PortNumber_decode_ber;
+der_type_encoder_f PortNumber_encode_der;
+xer_type_decoder_f PortNumber_decode_xer;
+xer_type_encoder_f PortNumber_encode_xer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _PortNumber_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/RemoveMappingReq.h b/include/osmocom/rspro/RemoveMappingReq.h
new file mode 100644
index 0000000..ea82c8d
--- /dev/null
+++ b/include/osmocom/rspro/RemoveMappingReq.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_RemoveMappingReq_H_
+#define	_RemoveMappingReq_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/rspro/ClientSlot.h>
+#include <osmocom/rspro/BankSlot.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RemoveMappingReq */
+typedef struct RemoveMappingReq {
+	ClientSlot_t	 client;
+	BankSlot_t	 bank;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RemoveMappingReq_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RemoveMappingReq;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RemoveMappingReq_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/RemoveMappingRes.h b/include/osmocom/rspro/RemoveMappingRes.h
new file mode 100644
index 0000000..f731815
--- /dev/null
+++ b/include/osmocom/rspro/RemoveMappingRes.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_RemoveMappingRes_H_
+#define	_RemoveMappingRes_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/rspro/ResultCode.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RemoveMappingRes */
+typedef struct RemoveMappingRes {
+	ResultCode_t	 result;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RemoveMappingRes_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RemoveMappingRes;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RemoveMappingRes_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/ResultCode.h b/include/osmocom/rspro/ResultCode.h
new file mode 100644
index 0000000..a45aa77
--- /dev/null
+++ b/include/osmocom/rspro/ResultCode.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_ResultCode_H_
+#define	_ResultCode_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ResultCode {
+	ResultCode_ok	= 0,
+	ResultCode_illegalClientId	= 1,
+	ResultCode_illegalBankId	= 2,
+	ResultCode_illegalSlotId	= 3,
+	ResultCode_cardNotPresent	= 100,
+	ResultCode_cardUnresponsive	= 101,
+	ResultCode_cardTransmissionError	= 102
+	/*
+	 * Enumeration is extensible
+	 */
+} e_ResultCode;
+
+/* ResultCode */
+typedef long	 ResultCode_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ResultCode;
+asn_struct_free_f ResultCode_free;
+asn_struct_print_f ResultCode_print;
+asn_constr_check_f ResultCode_constraint;
+ber_type_decoder_f ResultCode_decode_ber;
+der_type_encoder_f ResultCode_encode_der;
+xer_type_decoder_f ResultCode_decode_xer;
+xer_type_encoder_f ResultCode_encode_xer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _ResultCode_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/RsproPDU.h b/include/osmocom/rspro/RsproPDU.h
new file mode 100644
index 0000000..171750a
--- /dev/null
+++ b/include/osmocom/rspro/RsproPDU.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_RsproPDU_H_
+#define	_RsproPDU_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <osmocom/rspro/OperationTag.h>
+#include <osmocom/rspro/RsproPDUchoice.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RsproPDU */
+typedef struct RsproPDU {
+	long	*version	/* DEFAULT 1 */;
+	OperationTag_t	 tag;
+	RsproPDUchoice_t	 msg;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RsproPDU_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RsproPDU;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RsproPDU_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/RsproPDUchoice.h b/include/osmocom/rspro/RsproPDUchoice.h
new file mode 100644
index 0000000..07d387e
--- /dev/null
+++ b/include/osmocom/rspro/RsproPDUchoice.h
@@ -0,0 +1,97 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_RsproPDUchoice_H_
+#define	_RsproPDUchoice_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/rspro/ConnectBankReq.h>
+#include <osmocom/rspro/ConnectBankRes.h>
+#include <osmocom/rspro/ConnectClientReq.h>
+#include <osmocom/rspro/ConnectClientRes.h>
+#include <osmocom/rspro/CreateMappingReq.h>
+#include <osmocom/rspro/CreateMappingRes.h>
+#include <osmocom/rspro/RemoveMappingReq.h>
+#include <osmocom/rspro/RemoveMappingRes.h>
+#include <osmocom/rspro/ConfigClientReq.h>
+#include <osmocom/rspro/ConfigClientRes.h>
+#include <osmocom/rspro/SetAtrReq.h>
+#include <osmocom/rspro/SetAtrRes.h>
+#include <osmocom/rspro/TpduModemToCard.h>
+#include <osmocom/rspro/TpduCardToModem.h>
+#include <osmocom/rspro/ClientSlotStatusInd.h>
+#include <osmocom/rspro/BankSlotStatusInd.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RsproPDUchoice_PR {
+	RsproPDUchoice_PR_NOTHING,	/* No components present */
+	RsproPDUchoice_PR_connectBankReq,
+	RsproPDUchoice_PR_connectBankRes,
+	RsproPDUchoice_PR_connectClientReq,
+	RsproPDUchoice_PR_connectClientRes,
+	RsproPDUchoice_PR_createMappingReq,
+	RsproPDUchoice_PR_createMappingRes,
+	RsproPDUchoice_PR_removeMappingReq,
+	RsproPDUchoice_PR_removeMappingRes,
+	RsproPDUchoice_PR_configClientReq,
+	RsproPDUchoice_PR_configClientRes,
+	RsproPDUchoice_PR_setAtrReq,
+	RsproPDUchoice_PR_setAtrRes,
+	RsproPDUchoice_PR_tpduModemToCard,
+	RsproPDUchoice_PR_tpduCardToModem,
+	RsproPDUchoice_PR_clientSlotStatusInd,
+	RsproPDUchoice_PR_bankSlotStatusInd,
+	/* Extensions may appear below */
+	
+} RsproPDUchoice_PR;
+
+/* RsproPDUchoice */
+typedef struct RsproPDUchoice {
+	RsproPDUchoice_PR present;
+	union RsproPDUchoice_u {
+		ConnectBankReq_t	 connectBankReq;
+		ConnectBankRes_t	 connectBankRes;
+		ConnectClientReq_t	 connectClientReq;
+		ConnectClientRes_t	 connectClientRes;
+		CreateMappingReq_t	 createMappingReq;
+		CreateMappingRes_t	 createMappingRes;
+		RemoveMappingReq_t	 removeMappingReq;
+		RemoveMappingRes_t	 removeMappingRes;
+		ConfigClientReq_t	 configClientReq;
+		ConfigClientRes_t	 configClientRes;
+		SetAtrReq_t	 setAtrReq;
+		SetAtrRes_t	 setAtrRes;
+		TpduModemToCard_t	 tpduModemToCard;
+		TpduCardToModem_t	 tpduCardToModem;
+		ClientSlotStatusInd_t	 clientSlotStatusInd;
+		BankSlotStatusInd_t	 bankSlotStatusInd;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RsproPDUchoice_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RsproPDUchoice;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RsproPDUchoice_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/SetAtrReq.h b/include/osmocom/rspro/SetAtrReq.h
new file mode 100644
index 0000000..eae6831
--- /dev/null
+++ b/include/osmocom/rspro/SetAtrReq.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_SetAtrReq_H_
+#define	_SetAtrReq_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/rspro/ClientSlot.h>
+#include <osmocom/rspro/ATR.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SetAtrReq */
+typedef struct SetAtrReq {
+	ClientSlot_t	 slot;
+	ATR_t	 atr;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} SetAtrReq_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SetAtrReq;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _SetAtrReq_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/SetAtrRes.h b/include/osmocom/rspro/SetAtrRes.h
new file mode 100644
index 0000000..817dd01
--- /dev/null
+++ b/include/osmocom/rspro/SetAtrRes.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_SetAtrRes_H_
+#define	_SetAtrRes_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/rspro/ResultCode.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SetAtrRes */
+typedef struct SetAtrRes {
+	ResultCode_t	 result;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} SetAtrRes_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SetAtrRes;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _SetAtrRes_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/SlotNumber.h b/include/osmocom/rspro/SlotNumber.h
new file mode 100644
index 0000000..15d7fcd
--- /dev/null
+++ b/include/osmocom/rspro/SlotNumber.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_SlotNumber_H_
+#define	_SlotNumber_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SlotNumber */
+typedef long	 SlotNumber_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SlotNumber;
+asn_struct_free_f SlotNumber_free;
+asn_struct_print_f SlotNumber_print;
+asn_constr_check_f SlotNumber_constraint;
+ber_type_decoder_f SlotNumber_decode_ber;
+der_type_encoder_f SlotNumber_encode_der;
+xer_type_decoder_f SlotNumber_decode_xer;
+xer_type_encoder_f SlotNumber_encode_xer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _SlotNumber_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/SlotPhysStatus.h b/include/osmocom/rspro/SlotPhysStatus.h
new file mode 100644
index 0000000..b77585a
--- /dev/null
+++ b/include/osmocom/rspro/SlotPhysStatus.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_SlotPhysStatus_H_
+#define	_SlotPhysStatus_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BOOLEAN.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SlotPhysStatus */
+typedef struct SlotPhysStatus {
+	BOOLEAN_t	 resetActive;
+	BOOLEAN_t	*vccPresent	/* OPTIONAL */;
+	BOOLEAN_t	*clkActive	/* OPTIONAL */;
+	BOOLEAN_t	*cardPresent	/* OPTIONAL */;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} SlotPhysStatus_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SlotPhysStatus;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _SlotPhysStatus_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/TpduCardToModem.h b/include/osmocom/rspro/TpduCardToModem.h
new file mode 100644
index 0000000..5e94125
--- /dev/null
+++ b/include/osmocom/rspro/TpduCardToModem.h
@@ -0,0 +1,47 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_TpduCardToModem_H_
+#define	_TpduCardToModem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/rspro/BankSlot.h>
+#include <osmocom/rspro/ClientSlot.h>
+#include <osmocom/rspro/TpduFlags.h>
+#include <OCTET_STRING.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TpduCardToModem */
+typedef struct TpduCardToModem {
+	BankSlot_t	 fromBankSlot;
+	ClientSlot_t	 toClientSlot;
+	TpduFlags_t	 flags;
+	OCTET_STRING_t	 data;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} TpduCardToModem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TpduCardToModem;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _TpduCardToModem_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/TpduFlags.h b/include/osmocom/rspro/TpduFlags.h
new file mode 100644
index 0000000..c8bfc5a
--- /dev/null
+++ b/include/osmocom/rspro/TpduFlags.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_TpduFlags_H_
+#define	_TpduFlags_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BOOLEAN.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TpduFlags */
+typedef struct TpduFlags {
+	BOOLEAN_t	 tpduHeaderPresent;
+	BOOLEAN_t	 finalPart;
+	BOOLEAN_t	 procByteContinueTx;
+	BOOLEAN_t	 procByteContinueRx;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} TpduFlags_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TpduFlags;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _TpduFlags_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/rspro/TpduModemToCard.h b/include/osmocom/rspro/TpduModemToCard.h
new file mode 100644
index 0000000..7ec3989
--- /dev/null
+++ b/include/osmocom/rspro/TpduModemToCard.h
@@ -0,0 +1,47 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RSPRO"
+ * 	found in "../../asn1/RSPRO.asn"
+ */
+
+#ifndef	_TpduModemToCard_H_
+#define	_TpduModemToCard_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/rspro/ClientSlot.h>
+#include <osmocom/rspro/BankSlot.h>
+#include <osmocom/rspro/TpduFlags.h>
+#include <OCTET_STRING.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TpduModemToCard */
+typedef struct TpduModemToCard {
+	ClientSlot_t	 fromClientSlot;
+	BankSlot_t	 toBankSlot;
+	TpduFlags_t	 flags;
+	OCTET_STRING_t	 data;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} TpduModemToCard_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TpduModemToCard;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _TpduModemToCard_H_ */
+#include <asn_internal.h>