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>