sabp: Generate C/H files for SABP; create libosmo-sabp
This uses the (modified) Osmocom asn1c on the (modified) SABP ASN.1
syntax to generate C code + header files for SABP parsing/encoding.
It also adds some helper code for message encoding and decoding as well
as a new libosmo-sabp shared library which can be used by programs to
implement SABP related functionality.
Change-Id: Ib9580d1af96354398da4c9f97b28a0e23d56e275
diff --git a/include/osmocom/sabp/Makefile.am b/include/osmocom/sabp/Makefile.am
new file mode 100644
index 0000000..f89984f
--- /dev/null
+++ b/include/osmocom/sabp/Makefile.am
@@ -0,0 +1,78 @@
+# Ugly: sabp_ies_defs.h is generated from asn1tostruct.py at the same time as
+# the sabp_*.c files in src/, but the sabp_ies_defs.h should live here. If
+# the build process wants this header file, it should first build
+# src/sabp_encoder.c and src/sabp_decoder.c.
+# This rule sucks:
+sabp_ies_defs.h:
+ $(MAKE) -C $(top_builddir)/src/ gen_sabp.stamp
+
+sabp_HEADERS = \
+ sabp_ies_defs.h \
+ sabp_common.h \
+ SABP_InitiatingMessage.h \
+ SABP_SABP-PDU.h \
+ SABP_SuccessfulOutcome.h \
+ SABP_UnsuccessfulOutcome.h \
+ SABP_Criticality.h \
+ SABP_Presence.h \
+ SABP_ProcedureCode.h \
+ SABP_ProtocolExtensionID.h \
+ SABP_ProtocolIE-ID.h \
+ SABP_TriggeringMessage.h \
+ SABP_IE-Extensions.h \
+ SABP_Available-Bandwidth.h \
+ SABP_Broadcast-Message-Content.h \
+ SABP_Broadcast-Message-Content-Validity-Indicator.h \
+ SABP_Category.h \
+ SABP_Cause.h \
+ SABP_Criticality-Diagnostics.h \
+ SABP_CriticalityDiagnostics-IE-List.h \
+ SABP_MessageStructure.h \
+ SABP_Data-Coding-Scheme.h \
+ SABP_Failure-List.h \
+ SABP_Failure-List-Item.h \
+ SABP_Message-Identifier.h \
+ SABP_New-Serial-Number.h \
+ SABP_Number-of-Broadcasts-Completed-List.h \
+ SABP_Number-of-Broadcasts-Completed-List-Item.h \
+ SABP_Number-Of-Broadcasts-Completed-Info.h \
+ SABP_Number-of-Broadcasts-Requested.h \
+ SABP_Old-Serial-Number.h \
+ SABP_Paging-ETWS-Indicator.h \
+ SABP_Radio-Resource-Loading-List.h \
+ SABP_Radio-Resource-Loading-List-Item.h \
+ SABP_Recovery-Indication.h \
+ SABP_RepetitionNumber0.h \
+ SABP_RepetitionNumber1.h \
+ SABP_Repetition-Period.h \
+ SABP_Serial-Number.h \
+ SABP_Service-Area-Identifier.h \
+ SABP_Service-Areas-List.h \
+ SABP_TypeOfError.h \
+ SABP_WarningSecurityInfo.h \
+ SABP_Warning-Type.h \
+ SABP_Write-Replace.h \
+ SABP_Write-Replace-Complete.h \
+ SABP_Write-Replace-Failure.h \
+ SABP_Kill.h \
+ SABP_Kill-Complete.h \
+ SABP_Kill-Failure.h \
+ SABP_Load-Query.h \
+ SABP_Load-Query-Complete.h \
+ SABP_Load-Query-Failure.h \
+ SABP_Message-Status-Query.h \
+ SABP_Message-Status-Query-Complete.h \
+ SABP_Message-Status-Query-Failure.h \
+ SABP_Reset.h \
+ SABP_Reset-Complete.h \
+ SABP_Reset-Failure.h \
+ SABP_Restart.h \
+ SABP_Failure.h \
+ SABP_Error-Indication.h \
+ SABP_IE.h \
+ $(NULL)
+
+sabpdir = $(includedir)/osmocom/sabp
+
+DISTCLEANFILES = \
+ sabp_ies_defs.h
diff --git a/include/osmocom/sabp/SABP_Available-Bandwidth.h b/include/osmocom/sabp/SABP_Available-Bandwidth.h
new file mode 100644
index 0000000..645b0d7
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Available-Bandwidth.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_Available_Bandwidth_H_
+#define _SABP_Available_Bandwidth_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Available-Bandwidth */
+typedef long SABP_Available_Bandwidth_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Available_Bandwidth;
+asn_struct_free_f SABP_Available_Bandwidth_free;
+asn_struct_print_f SABP_Available_Bandwidth_print;
+asn_constr_check_f SABP_Available_Bandwidth_constraint;
+ber_type_decoder_f SABP_Available_Bandwidth_decode_ber;
+der_type_encoder_f SABP_Available_Bandwidth_encode_der;
+xer_type_decoder_f SABP_Available_Bandwidth_decode_xer;
+xer_type_encoder_f SABP_Available_Bandwidth_encode_xer;
+per_type_decoder_f SABP_Available_Bandwidth_decode_uper;
+per_type_encoder_f SABP_Available_Bandwidth_encode_uper;
+per_type_decoder_f SABP_Available_Bandwidth_decode_aper;
+per_type_encoder_f SABP_Available_Bandwidth_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Available_Bandwidth_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Broadcast-Message-Content-Validity-Indicator.h b/include/osmocom/sabp/SABP_Broadcast-Message-Content-Validity-Indicator.h
new file mode 100644
index 0000000..3544605
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Broadcast-Message-Content-Validity-Indicator.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_Broadcast_Message_Content_Validity_Indicator_H_
+#define _SABP_Broadcast_Message_Content_Validity_Indicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SABP_Broadcast_Message_Content_Validity_Indicator {
+ SABP_Broadcast_Message_Content_Validity_Indicator_broadcast_Message_Content_not_valid = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_SABP_Broadcast_Message_Content_Validity_Indicator;
+
+/* SABP_Broadcast-Message-Content-Validity-Indicator */
+typedef long SABP_Broadcast_Message_Content_Validity_Indicator_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Broadcast_Message_Content_Validity_Indicator;
+asn_struct_free_f SABP_Broadcast_Message_Content_Validity_Indicator_free;
+asn_struct_print_f SABP_Broadcast_Message_Content_Validity_Indicator_print;
+asn_constr_check_f SABP_Broadcast_Message_Content_Validity_Indicator_constraint;
+ber_type_decoder_f SABP_Broadcast_Message_Content_Validity_Indicator_decode_ber;
+der_type_encoder_f SABP_Broadcast_Message_Content_Validity_Indicator_encode_der;
+xer_type_decoder_f SABP_Broadcast_Message_Content_Validity_Indicator_decode_xer;
+xer_type_encoder_f SABP_Broadcast_Message_Content_Validity_Indicator_encode_xer;
+per_type_decoder_f SABP_Broadcast_Message_Content_Validity_Indicator_decode_uper;
+per_type_encoder_f SABP_Broadcast_Message_Content_Validity_Indicator_encode_uper;
+per_type_decoder_f SABP_Broadcast_Message_Content_Validity_Indicator_decode_aper;
+per_type_encoder_f SABP_Broadcast_Message_Content_Validity_Indicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Broadcast_Message_Content_Validity_Indicator_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Broadcast-Message-Content.h b/include/osmocom/sabp/SABP_Broadcast-Message-Content.h
new file mode 100644
index 0000000..3f4e9c2
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Broadcast-Message-Content.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_Broadcast_Message_Content_H_
+#define _SABP_Broadcast_Message_Content_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Broadcast-Message-Content */
+typedef BIT_STRING_t SABP_Broadcast_Message_Content_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Broadcast_Message_Content;
+asn_struct_free_f SABP_Broadcast_Message_Content_free;
+asn_struct_print_f SABP_Broadcast_Message_Content_print;
+asn_constr_check_f SABP_Broadcast_Message_Content_constraint;
+ber_type_decoder_f SABP_Broadcast_Message_Content_decode_ber;
+der_type_encoder_f SABP_Broadcast_Message_Content_encode_der;
+xer_type_decoder_f SABP_Broadcast_Message_Content_decode_xer;
+xer_type_encoder_f SABP_Broadcast_Message_Content_encode_xer;
+per_type_decoder_f SABP_Broadcast_Message_Content_decode_uper;
+per_type_encoder_f SABP_Broadcast_Message_Content_encode_uper;
+per_type_decoder_f SABP_Broadcast_Message_Content_decode_aper;
+per_type_encoder_f SABP_Broadcast_Message_Content_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Broadcast_Message_Content_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Category.h b/include/osmocom/sabp/SABP_Category.h
new file mode 100644
index 0000000..f33800b
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Category.h
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_Category_H_
+#define _SABP_Category_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SABP_Category {
+ SABP_Category_high_priority = 0,
+ SABP_Category_background_priority = 1,
+ SABP_Category_normal_priority = 2,
+ SABP_Category_default_priority = 3
+ /*
+ * Enumeration is extensible
+ */
+} e_SABP_Category;
+
+/* SABP_Category */
+typedef long SABP_Category_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Category;
+asn_struct_free_f SABP_Category_free;
+asn_struct_print_f SABP_Category_print;
+asn_constr_check_f SABP_Category_constraint;
+ber_type_decoder_f SABP_Category_decode_ber;
+der_type_encoder_f SABP_Category_encode_der;
+xer_type_decoder_f SABP_Category_decode_xer;
+xer_type_encoder_f SABP_Category_encode_xer;
+per_type_decoder_f SABP_Category_decode_uper;
+per_type_encoder_f SABP_Category_encode_uper;
+per_type_decoder_f SABP_Category_decode_aper;
+per_type_encoder_f SABP_Category_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Category_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Cause.h b/include/osmocom/sabp/SABP_Cause.h
new file mode 100644
index 0000000..d294526
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Cause.h
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_Cause_H_
+#define _SABP_Cause_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SABP_Cause {
+ SABP_Cause_parameter_not_recognised = 0,
+ SABP_Cause_parameter_value_invalid = 1,
+ SABP_Cause_valid_CN_message_not_identified = 2,
+ SABP_Cause_service_area_identity_not_valid = 3,
+ SABP_Cause_unrecognised_message = 4,
+ SABP_Cause_missing_mandatory_element = 5,
+ SABP_Cause_rNC_capacity_exceeded = 6,
+ SABP_Cause_rNC_memory_exceeded = 7,
+ SABP_Cause_service_area_broadcast_not_supported = 8,
+ SABP_Cause_service_area_broadcast_not_operational = 9,
+ SABP_Cause_message_reference_already_used = 10,
+ SABP_Cause_unspecifed_error = 11,
+ SABP_Cause_transfer_syntax_error = 12,
+ SABP_Cause_semantic_error = 13,
+ SABP_Cause_message_not_compatible_with_receiver_state = 14,
+ SABP_Cause_abstract_syntax_error_reject = 15,
+ SABP_Cause_abstract_syntax_error_ignore_and_notify = 16,
+ SABP_Cause_abstract_syntax_error_falsely_constructed_message = 17
+} e_SABP_Cause;
+
+/* SABP_Cause */
+typedef long SABP_Cause_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Cause;
+asn_struct_free_f SABP_Cause_free;
+asn_struct_print_f SABP_Cause_print;
+asn_constr_check_f SABP_Cause_constraint;
+ber_type_decoder_f SABP_Cause_decode_ber;
+der_type_encoder_f SABP_Cause_encode_der;
+xer_type_decoder_f SABP_Cause_decode_xer;
+xer_type_encoder_f SABP_Cause_encode_xer;
+per_type_decoder_f SABP_Cause_decode_uper;
+per_type_encoder_f SABP_Cause_encode_uper;
+per_type_decoder_f SABP_Cause_decode_aper;
+per_type_encoder_f SABP_Cause_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Cause_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Criticality-Diagnostics.h b/include/osmocom/sabp/SABP_Criticality-Diagnostics.h
new file mode 100644
index 0000000..db3120d
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Criticality-Diagnostics.h
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_Criticality_Diagnostics_H_
+#define _SABP_Criticality_Diagnostics_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_ProcedureCode.h>
+#include <osmocom/sabp/SABP_TriggeringMessage.h>
+#include <osmocom/sabp/SABP_Criticality.h>
+#include <osmocom/sabp/SABP_CriticalityDiagnostics-IE-List.h>
+#include <osmocom/sabp/SABP_IE-Extensions.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Criticality-Diagnostics */
+typedef struct SABP_Criticality_Diagnostics {
+ SABP_ProcedureCode_t *procedureCode /* OPTIONAL */;
+ SABP_TriggeringMessage_t *triggeringMessage /* OPTIONAL */;
+ SABP_Criticality_t *procedureCriticality /* OPTIONAL */;
+ SABP_CriticalityDiagnostics_IE_List_t *iEsCriticalityDiagnostics /* OPTIONAL */;
+ SABP_IE_Extensions_t *iE_Extensions /* OPTIONAL */;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Criticality_Diagnostics_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Criticality_Diagnostics;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Criticality_Diagnostics_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Criticality.h b/include/osmocom/sabp/SABP_Criticality.h
new file mode 100644
index 0000000..7a1e015
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Criticality.h
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-CommonDataTypes"
+ * found in "../../asn1/sabp/SABP-CommonDataTypes.asn"
+ */
+
+#ifndef _SABP_Criticality_H_
+#define _SABP_Criticality_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SABP_Criticality {
+ SABP_Criticality_reject = 0,
+ SABP_Criticality_ignore = 1,
+ SABP_Criticality_notify = 2
+} e_SABP_Criticality;
+
+/* SABP_Criticality */
+typedef long SABP_Criticality_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Criticality;
+asn_struct_free_f SABP_Criticality_free;
+asn_struct_print_f SABP_Criticality_print;
+asn_constr_check_f SABP_Criticality_constraint;
+ber_type_decoder_f SABP_Criticality_decode_ber;
+der_type_encoder_f SABP_Criticality_encode_der;
+xer_type_decoder_f SABP_Criticality_decode_xer;
+xer_type_encoder_f SABP_Criticality_encode_xer;
+per_type_decoder_f SABP_Criticality_decode_uper;
+per_type_encoder_f SABP_Criticality_encode_uper;
+per_type_decoder_f SABP_Criticality_decode_aper;
+per_type_encoder_f SABP_Criticality_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Criticality_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_CriticalityDiagnostics-IE-List.h b/include/osmocom/sabp/SABP_CriticalityDiagnostics-IE-List.h
new file mode 100644
index 0000000..2d2fa40
--- /dev/null
+++ b/include/osmocom/sabp/SABP_CriticalityDiagnostics-IE-List.h
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_CriticalityDiagnostics_IE_List_H_
+#define _SABP_CriticalityDiagnostics_IE_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <osmocom/sabp/SABP_Criticality.h>
+#include <osmocom/sabp/SABP_ProtocolIE-ID.h>
+#include <osmocom/sabp/SABP_RepetitionNumber0.h>
+#include <osmocom/sabp/SABP_IE-Extensions.h>
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_CriticalityDiagnostics-IE-List */
+typedef struct SABP_CriticalityDiagnostics_IE_List {
+ A_SEQUENCE_OF(struct Member {
+ SABP_Criticality_t iECriticality;
+ SABP_ProtocolIE_ID_t iE_ID;
+ SABP_RepetitionNumber0_t *repetitionNumber /* OPTIONAL */;
+ SABP_IE_Extensions_t *iE_Extensions /* OPTIONAL */;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } ) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_CriticalityDiagnostics_IE_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_CriticalityDiagnostics_IE_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_CriticalityDiagnostics_IE_List_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Data-Coding-Scheme.h b/include/osmocom/sabp/SABP_Data-Coding-Scheme.h
new file mode 100644
index 0000000..4ecae15
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Data-Coding-Scheme.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_Data_Coding_Scheme_H_
+#define _SABP_Data_Coding_Scheme_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Data-Coding-Scheme */
+typedef BIT_STRING_t SABP_Data_Coding_Scheme_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Data_Coding_Scheme;
+asn_struct_free_f SABP_Data_Coding_Scheme_free;
+asn_struct_print_f SABP_Data_Coding_Scheme_print;
+asn_constr_check_f SABP_Data_Coding_Scheme_constraint;
+ber_type_decoder_f SABP_Data_Coding_Scheme_decode_ber;
+der_type_encoder_f SABP_Data_Coding_Scheme_encode_der;
+xer_type_decoder_f SABP_Data_Coding_Scheme_decode_xer;
+xer_type_encoder_f SABP_Data_Coding_Scheme_encode_xer;
+per_type_decoder_f SABP_Data_Coding_Scheme_decode_uper;
+per_type_encoder_f SABP_Data_Coding_Scheme_encode_uper;
+per_type_decoder_f SABP_Data_Coding_Scheme_decode_aper;
+per_type_encoder_f SABP_Data_Coding_Scheme_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Data_Coding_Scheme_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Error-Indication.h b/include/osmocom/sabp/SABP_Error-Indication.h
new file mode 100644
index 0000000..f857601
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Error-Indication.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-PDU"
+ * found in "../../asn1/sabp/SABP-PDU.asn"
+ */
+
+#ifndef _SABP_Error_Indication_H_
+#define _SABP_Error_Indication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_IE.h>
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Error-Indication */
+typedef struct SABP_Error_Indication {
+ struct error_Indication_ies {
+ A_SEQUENCE_OF(SABP_IE_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } error_Indication_ies;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Error_Indication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Error_Indication;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Error_Indication_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Failure-List-Item.h b/include/osmocom/sabp/SABP_Failure-List-Item.h
new file mode 100644
index 0000000..9c8200f
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Failure-List-Item.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_Failure_List_Item_H_
+#define _SABP_Failure_List_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_Service-Area-Identifier.h>
+#include <osmocom/sabp/SABP_Cause.h>
+#include <osmocom/sabp/SABP_IE-Extensions.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Failure-List-Item */
+typedef struct SABP_Failure_List_Item {
+ SABP_Service_Area_Identifier_t service_area_identifier;
+ SABP_Cause_t cause;
+ SABP_IE_Extensions_t *iE_Extensions /* OPTIONAL */;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Failure_List_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Failure_List_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Failure_List_Item_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Failure-List.h b/include/osmocom/sabp/SABP_Failure-List.h
new file mode 100644
index 0000000..4455a26
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Failure-List.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_Failure_List_H_
+#define _SABP_Failure_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_Failure-List-Item.h>
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Failure-List */
+typedef struct SABP_Failure_List {
+ A_SEQUENCE_OF(SABP_Failure_List_Item_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Failure_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Failure_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Failure_List_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Failure.h b/include/osmocom/sabp/SABP_Failure.h
new file mode 100644
index 0000000..a4927c9
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Failure.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-PDU"
+ * found in "../../asn1/sabp/SABP-PDU.asn"
+ */
+
+#ifndef _SABP_Failure_H_
+#define _SABP_Failure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_IE.h>
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Failure */
+typedef struct SABP_Failure {
+ struct failure_ies {
+ A_SEQUENCE_OF(SABP_IE_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } failure_ies;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Failure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Failure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Failure_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_IE-Extensions.h b/include/osmocom/sabp/SABP_IE-Extensions.h
new file mode 100644
index 0000000..9faa7be
--- /dev/null
+++ b/include/osmocom/sabp/SABP_IE-Extensions.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_IE_Extensions_H_
+#define _SABP_IE_Extensions_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_IE.h>
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_IE-Extensions */
+typedef struct SABP_IE_Extensions {
+ A_SEQUENCE_OF(SABP_IE_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_IE_Extensions_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_IE_Extensions;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_IE_Extensions_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_IE.h b/include/osmocom/sabp/SABP_IE.h
new file mode 100644
index 0000000..0de75c9
--- /dev/null
+++ b/include/osmocom/sabp/SABP_IE.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-PDU"
+ * found in "../../asn1/sabp/SABP-PDU.asn"
+ */
+
+#ifndef _SABP_IE_H_
+#define _SABP_IE_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_ProtocolIE-ID.h>
+#include <osmocom/sabp/SABP_Criticality.h>
+#include <ANY.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_IE */
+typedef struct SABP_IE {
+ SABP_ProtocolIE_ID_t id;
+ SABP_Criticality_t criticality;
+ ANY_t value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_IE_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_IE;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_IE_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_InitiatingMessage.h b/include/osmocom/sabp/SABP_InitiatingMessage.h
new file mode 100644
index 0000000..77bc931
--- /dev/null
+++ b/include/osmocom/sabp/SABP_InitiatingMessage.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-PDU"
+ * found in "../../asn1/sabp/SABP-PDU.asn"
+ */
+
+#ifndef _SABP_InitiatingMessage_H_
+#define _SABP_InitiatingMessage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_ProcedureCode.h>
+#include <osmocom/sabp/SABP_Criticality.h>
+#include <ANY.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_InitiatingMessage */
+typedef struct SABP_InitiatingMessage {
+ SABP_ProcedureCode_t procedureCode;
+ SABP_Criticality_t criticality;
+ ANY_t value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_InitiatingMessage_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_InitiatingMessage;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_InitiatingMessage_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Kill-Complete.h b/include/osmocom/sabp/SABP_Kill-Complete.h
new file mode 100644
index 0000000..de5b618
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Kill-Complete.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-PDU"
+ * found in "../../asn1/sabp/SABP-PDU.asn"
+ */
+
+#ifndef _SABP_Kill_Complete_H_
+#define _SABP_Kill_Complete_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_IE.h>
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Kill-Complete */
+typedef struct SABP_Kill_Complete {
+ struct kill_Complete_ies {
+ A_SEQUENCE_OF(SABP_IE_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } kill_Complete_ies;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Kill_Complete_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Kill_Complete;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Kill_Complete_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Kill-Failure.h b/include/osmocom/sabp/SABP_Kill-Failure.h
new file mode 100644
index 0000000..803e2dc
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Kill-Failure.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-PDU"
+ * found in "../../asn1/sabp/SABP-PDU.asn"
+ */
+
+#ifndef _SABP_Kill_Failure_H_
+#define _SABP_Kill_Failure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_IE.h>
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Kill-Failure */
+typedef struct SABP_Kill_Failure {
+ struct kill_Failure_ies {
+ A_SEQUENCE_OF(SABP_IE_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } kill_Failure_ies;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Kill_Failure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Kill_Failure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Kill_Failure_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Kill.h b/include/osmocom/sabp/SABP_Kill.h
new file mode 100644
index 0000000..54a728c
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Kill.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-PDU"
+ * found in "../../asn1/sabp/SABP-PDU.asn"
+ */
+
+#ifndef _SABP_Kill_H_
+#define _SABP_Kill_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_IE.h>
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Kill */
+typedef struct SABP_Kill {
+ struct kill_ies {
+ A_SEQUENCE_OF(SABP_IE_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } kill_ies;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Kill_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Kill;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Kill_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Load-Query-Complete.h b/include/osmocom/sabp/SABP_Load-Query-Complete.h
new file mode 100644
index 0000000..ba592cf
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Load-Query-Complete.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-PDU"
+ * found in "../../asn1/sabp/SABP-PDU.asn"
+ */
+
+#ifndef _SABP_Load_Query_Complete_H_
+#define _SABP_Load_Query_Complete_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_IE.h>
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Load-Query-Complete */
+typedef struct SABP_Load_Query_Complete {
+ struct load_Query_Complete_ies {
+ A_SEQUENCE_OF(SABP_IE_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } load_Query_Complete_ies;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Load_Query_Complete_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Load_Query_Complete;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Load_Query_Complete_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Load-Query-Failure.h b/include/osmocom/sabp/SABP_Load-Query-Failure.h
new file mode 100644
index 0000000..2795a6b
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Load-Query-Failure.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-PDU"
+ * found in "../../asn1/sabp/SABP-PDU.asn"
+ */
+
+#ifndef _SABP_Load_Query_Failure_H_
+#define _SABP_Load_Query_Failure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_IE.h>
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Load-Query-Failure */
+typedef struct SABP_Load_Query_Failure {
+ struct load_Query_Failure_ies {
+ A_SEQUENCE_OF(SABP_IE_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } load_Query_Failure_ies;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Load_Query_Failure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Load_Query_Failure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Load_Query_Failure_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Load-Query.h b/include/osmocom/sabp/SABP_Load-Query.h
new file mode 100644
index 0000000..527f006
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Load-Query.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-PDU"
+ * found in "../../asn1/sabp/SABP-PDU.asn"
+ */
+
+#ifndef _SABP_Load_Query_H_
+#define _SABP_Load_Query_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_IE.h>
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Load-Query */
+typedef struct SABP_Load_Query {
+ struct load_Query_ies {
+ A_SEQUENCE_OF(SABP_IE_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } load_Query_ies;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Load_Query_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Load_Query;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Load_Query_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Message-Identifier.h b/include/osmocom/sabp/SABP_Message-Identifier.h
new file mode 100644
index 0000000..9a5ece0
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Message-Identifier.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_Message_Identifier_H_
+#define _SABP_Message_Identifier_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Message-Identifier */
+typedef BIT_STRING_t SABP_Message_Identifier_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Message_Identifier;
+asn_struct_free_f SABP_Message_Identifier_free;
+asn_struct_print_f SABP_Message_Identifier_print;
+asn_constr_check_f SABP_Message_Identifier_constraint;
+ber_type_decoder_f SABP_Message_Identifier_decode_ber;
+der_type_encoder_f SABP_Message_Identifier_encode_der;
+xer_type_decoder_f SABP_Message_Identifier_decode_xer;
+xer_type_encoder_f SABP_Message_Identifier_encode_xer;
+per_type_decoder_f SABP_Message_Identifier_decode_uper;
+per_type_encoder_f SABP_Message_Identifier_encode_uper;
+per_type_decoder_f SABP_Message_Identifier_decode_aper;
+per_type_encoder_f SABP_Message_Identifier_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Message_Identifier_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Message-Status-Query-Complete.h b/include/osmocom/sabp/SABP_Message-Status-Query-Complete.h
new file mode 100644
index 0000000..bfb73d9
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Message-Status-Query-Complete.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-PDU"
+ * found in "../../asn1/sabp/SABP-PDU.asn"
+ */
+
+#ifndef _SABP_Message_Status_Query_Complete_H_
+#define _SABP_Message_Status_Query_Complete_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_IE.h>
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Message-Status-Query-Complete */
+typedef struct SABP_Message_Status_Query_Complete {
+ struct message_Status_Query_Complete_ies {
+ A_SEQUENCE_OF(SABP_IE_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } message_Status_Query_Complete_ies;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Message_Status_Query_Complete_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Message_Status_Query_Complete;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Message_Status_Query_Complete_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Message-Status-Query-Failure.h b/include/osmocom/sabp/SABP_Message-Status-Query-Failure.h
new file mode 100644
index 0000000..4f24d5c
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Message-Status-Query-Failure.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-PDU"
+ * found in "../../asn1/sabp/SABP-PDU.asn"
+ */
+
+#ifndef _SABP_Message_Status_Query_Failure_H_
+#define _SABP_Message_Status_Query_Failure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_IE.h>
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Message-Status-Query-Failure */
+typedef struct SABP_Message_Status_Query_Failure {
+ struct message_Status_Query_Failure_ies {
+ A_SEQUENCE_OF(SABP_IE_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } message_Status_Query_Failure_ies;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Message_Status_Query_Failure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Message_Status_Query_Failure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Message_Status_Query_Failure_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Message-Status-Query.h b/include/osmocom/sabp/SABP_Message-Status-Query.h
new file mode 100644
index 0000000..407c41c
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Message-Status-Query.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-PDU"
+ * found in "../../asn1/sabp/SABP-PDU.asn"
+ */
+
+#ifndef _SABP_Message_Status_Query_H_
+#define _SABP_Message_Status_Query_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_IE.h>
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Message-Status-Query */
+typedef struct SABP_Message_Status_Query {
+ struct message_Status_Query_ies {
+ A_SEQUENCE_OF(SABP_IE_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } message_Status_Query_ies;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Message_Status_Query_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Message_Status_Query;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Message_Status_Query_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_MessageStructure.h b/include/osmocom/sabp/SABP_MessageStructure.h
new file mode 100644
index 0000000..f63f28e
--- /dev/null
+++ b/include/osmocom/sabp/SABP_MessageStructure.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_MessageStructure_H_
+#define _SABP_MessageStructure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <osmocom/sabp/SABP_ProtocolIE-ID.h>
+#include <osmocom/sabp/SABP_RepetitionNumber1.h>
+#include <osmocom/sabp/SABP_IE-Extensions.h>
+#include <constr_SEQUENCE.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_MessageStructure */
+typedef struct SABP_MessageStructure {
+ A_SEQUENCE_OF(struct MemberA {
+ SABP_ProtocolIE_ID_t iE_ID;
+ SABP_RepetitionNumber1_t *repetitionNumber /* OPTIONAL */;
+ SABP_IE_Extensions_t *iE_Extensions /* OPTIONAL */;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } ) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_MessageStructure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_MessageStructure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_MessageStructure_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_New-Serial-Number.h b/include/osmocom/sabp/SABP_New-Serial-Number.h
new file mode 100644
index 0000000..cebf264
--- /dev/null
+++ b/include/osmocom/sabp/SABP_New-Serial-Number.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_New_Serial_Number_H_
+#define _SABP_New_Serial_Number_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_Serial-Number.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_New-Serial-Number */
+typedef SABP_Serial_Number_t SABP_New_Serial_Number_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_New_Serial_Number;
+asn_struct_free_f SABP_New_Serial_Number_free;
+asn_struct_print_f SABP_New_Serial_Number_print;
+asn_constr_check_f SABP_New_Serial_Number_constraint;
+ber_type_decoder_f SABP_New_Serial_Number_decode_ber;
+der_type_encoder_f SABP_New_Serial_Number_encode_der;
+xer_type_decoder_f SABP_New_Serial_Number_decode_xer;
+xer_type_encoder_f SABP_New_Serial_Number_encode_xer;
+per_type_decoder_f SABP_New_Serial_Number_decode_uper;
+per_type_encoder_f SABP_New_Serial_Number_encode_uper;
+per_type_decoder_f SABP_New_Serial_Number_decode_aper;
+per_type_encoder_f SABP_New_Serial_Number_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_New_Serial_Number_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Number-Of-Broadcasts-Completed-Info.h b/include/osmocom/sabp/SABP_Number-Of-Broadcasts-Completed-Info.h
new file mode 100644
index 0000000..93c8c28
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Number-Of-Broadcasts-Completed-Info.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_Number_Of_Broadcasts_Completed_Info_H_
+#define _SABP_Number_Of_Broadcasts_Completed_Info_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SABP_Number_Of_Broadcasts_Completed_Info {
+ SABP_Number_Of_Broadcasts_Completed_Info_overflow = 0,
+ SABP_Number_Of_Broadcasts_Completed_Info_unknown = 1
+ /*
+ * Enumeration is extensible
+ */
+} e_SABP_Number_Of_Broadcasts_Completed_Info;
+
+/* SABP_Number-Of-Broadcasts-Completed-Info */
+typedef long SABP_Number_Of_Broadcasts_Completed_Info_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Number_Of_Broadcasts_Completed_Info;
+asn_struct_free_f SABP_Number_Of_Broadcasts_Completed_Info_free;
+asn_struct_print_f SABP_Number_Of_Broadcasts_Completed_Info_print;
+asn_constr_check_f SABP_Number_Of_Broadcasts_Completed_Info_constraint;
+ber_type_decoder_f SABP_Number_Of_Broadcasts_Completed_Info_decode_ber;
+der_type_encoder_f SABP_Number_Of_Broadcasts_Completed_Info_encode_der;
+xer_type_decoder_f SABP_Number_Of_Broadcasts_Completed_Info_decode_xer;
+xer_type_encoder_f SABP_Number_Of_Broadcasts_Completed_Info_encode_xer;
+per_type_decoder_f SABP_Number_Of_Broadcasts_Completed_Info_decode_uper;
+per_type_encoder_f SABP_Number_Of_Broadcasts_Completed_Info_encode_uper;
+per_type_decoder_f SABP_Number_Of_Broadcasts_Completed_Info_decode_aper;
+per_type_encoder_f SABP_Number_Of_Broadcasts_Completed_Info_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Number_Of_Broadcasts_Completed_Info_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Number-of-Broadcasts-Completed-List-Item.h b/include/osmocom/sabp/SABP_Number-of-Broadcasts-Completed-List-Item.h
new file mode 100644
index 0000000..bea9d35
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Number-of-Broadcasts-Completed-List-Item.h
@@ -0,0 +1,47 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_Number_of_Broadcasts_Completed_List_Item_H_
+#define _SABP_Number_of_Broadcasts_Completed_List_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_Service-Area-Identifier.h>
+#include <NativeInteger.h>
+#include <osmocom/sabp/SABP_Number-Of-Broadcasts-Completed-Info.h>
+#include <osmocom/sabp/SABP_IE-Extensions.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Number-of-Broadcasts-Completed-List-Item */
+typedef struct SABP_Number_of_Broadcasts_Completed_List_Item {
+ SABP_Service_Area_Identifier_t service_area_identifier;
+ long number_of_broadcasts_completed;
+ SABP_Number_Of_Broadcasts_Completed_Info_t *number_of_broadcasts_completed_info /* OPTIONAL */;
+ SABP_IE_Extensions_t *iE_Extensions /* OPTIONAL */;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Number_of_Broadcasts_Completed_List_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Number_of_Broadcasts_Completed_List_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Number_of_Broadcasts_Completed_List_Item_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Number-of-Broadcasts-Completed-List.h b/include/osmocom/sabp/SABP_Number-of-Broadcasts-Completed-List.h
new file mode 100644
index 0000000..cea0be5
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Number-of-Broadcasts-Completed-List.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_Number_of_Broadcasts_Completed_List_H_
+#define _SABP_Number_of_Broadcasts_Completed_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_Number-of-Broadcasts-Completed-List-Item.h>
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Number-of-Broadcasts-Completed-List */
+typedef struct SABP_Number_of_Broadcasts_Completed_List {
+ A_SEQUENCE_OF(SABP_Number_of_Broadcasts_Completed_List_Item_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Number_of_Broadcasts_Completed_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Number_of_Broadcasts_Completed_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Number_of_Broadcasts_Completed_List_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Number-of-Broadcasts-Requested.h b/include/osmocom/sabp/SABP_Number-of-Broadcasts-Requested.h
new file mode 100644
index 0000000..b795bd0
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Number-of-Broadcasts-Requested.h
@@ -0,0 +1,47 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_Number_of_Broadcasts_Requested_H_
+#define _SABP_Number_of_Broadcasts_Requested_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SABP_Number_of_Broadcasts_Requested {
+ SABP_Number_of_Broadcasts_Requested_broadcast_indefinitely = 0
+} e_SABP_Number_of_Broadcasts_Requested;
+
+/* SABP_Number-of-Broadcasts-Requested */
+typedef long SABP_Number_of_Broadcasts_Requested_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Number_of_Broadcasts_Requested;
+asn_struct_free_f SABP_Number_of_Broadcasts_Requested_free;
+asn_struct_print_f SABP_Number_of_Broadcasts_Requested_print;
+asn_constr_check_f SABP_Number_of_Broadcasts_Requested_constraint;
+ber_type_decoder_f SABP_Number_of_Broadcasts_Requested_decode_ber;
+der_type_encoder_f SABP_Number_of_Broadcasts_Requested_encode_der;
+xer_type_decoder_f SABP_Number_of_Broadcasts_Requested_decode_xer;
+xer_type_encoder_f SABP_Number_of_Broadcasts_Requested_encode_xer;
+per_type_decoder_f SABP_Number_of_Broadcasts_Requested_decode_uper;
+per_type_encoder_f SABP_Number_of_Broadcasts_Requested_encode_uper;
+per_type_decoder_f SABP_Number_of_Broadcasts_Requested_decode_aper;
+per_type_encoder_f SABP_Number_of_Broadcasts_Requested_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Number_of_Broadcasts_Requested_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Old-Serial-Number.h b/include/osmocom/sabp/SABP_Old-Serial-Number.h
new file mode 100644
index 0000000..4765e4d
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Old-Serial-Number.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_Old_Serial_Number_H_
+#define _SABP_Old_Serial_Number_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_Serial-Number.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Old-Serial-Number */
+typedef SABP_Serial_Number_t SABP_Old_Serial_Number_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Old_Serial_Number;
+asn_struct_free_f SABP_Old_Serial_Number_free;
+asn_struct_print_f SABP_Old_Serial_Number_print;
+asn_constr_check_f SABP_Old_Serial_Number_constraint;
+ber_type_decoder_f SABP_Old_Serial_Number_decode_ber;
+der_type_encoder_f SABP_Old_Serial_Number_encode_der;
+xer_type_decoder_f SABP_Old_Serial_Number_decode_xer;
+xer_type_encoder_f SABP_Old_Serial_Number_encode_xer;
+per_type_decoder_f SABP_Old_Serial_Number_decode_uper;
+per_type_encoder_f SABP_Old_Serial_Number_encode_uper;
+per_type_decoder_f SABP_Old_Serial_Number_decode_aper;
+per_type_encoder_f SABP_Old_Serial_Number_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Old_Serial_Number_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Paging-ETWS-Indicator.h b/include/osmocom/sabp/SABP_Paging-ETWS-Indicator.h
new file mode 100644
index 0000000..fd76add
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Paging-ETWS-Indicator.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_Paging_ETWS_Indicator_H_
+#define _SABP_Paging_ETWS_Indicator_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SABP_Paging_ETWS_Indicator {
+ SABP_Paging_ETWS_Indicator_paging = 0
+ /*
+ * Enumeration is extensible
+ */
+} e_SABP_Paging_ETWS_Indicator;
+
+/* SABP_Paging-ETWS-Indicator */
+typedef long SABP_Paging_ETWS_Indicator_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Paging_ETWS_Indicator;
+asn_struct_free_f SABP_Paging_ETWS_Indicator_free;
+asn_struct_print_f SABP_Paging_ETWS_Indicator_print;
+asn_constr_check_f SABP_Paging_ETWS_Indicator_constraint;
+ber_type_decoder_f SABP_Paging_ETWS_Indicator_decode_ber;
+der_type_encoder_f SABP_Paging_ETWS_Indicator_encode_der;
+xer_type_decoder_f SABP_Paging_ETWS_Indicator_decode_xer;
+xer_type_encoder_f SABP_Paging_ETWS_Indicator_encode_xer;
+per_type_decoder_f SABP_Paging_ETWS_Indicator_decode_uper;
+per_type_encoder_f SABP_Paging_ETWS_Indicator_encode_uper;
+per_type_decoder_f SABP_Paging_ETWS_Indicator_decode_aper;
+per_type_encoder_f SABP_Paging_ETWS_Indicator_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Paging_ETWS_Indicator_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Presence.h b/include/osmocom/sabp/SABP_Presence.h
new file mode 100644
index 0000000..e5c7468
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Presence.h
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-CommonDataTypes"
+ * found in "../../asn1/sabp/SABP-CommonDataTypes.asn"
+ */
+
+#ifndef _SABP_Presence_H_
+#define _SABP_Presence_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SABP_Presence {
+ SABP_Presence_optional = 0,
+ SABP_Presence_conditional = 1,
+ SABP_Presence_mandatory = 2
+} e_SABP_Presence;
+
+/* SABP_Presence */
+typedef long SABP_Presence_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Presence;
+asn_struct_free_f SABP_Presence_free;
+asn_struct_print_f SABP_Presence_print;
+asn_constr_check_f SABP_Presence_constraint;
+ber_type_decoder_f SABP_Presence_decode_ber;
+der_type_encoder_f SABP_Presence_encode_der;
+xer_type_decoder_f SABP_Presence_decode_xer;
+xer_type_encoder_f SABP_Presence_encode_xer;
+per_type_decoder_f SABP_Presence_decode_uper;
+per_type_encoder_f SABP_Presence_encode_uper;
+per_type_decoder_f SABP_Presence_decode_aper;
+per_type_encoder_f SABP_Presence_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Presence_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_ProcedureCode.h b/include/osmocom/sabp/SABP_ProcedureCode.h
new file mode 100644
index 0000000..854f113
--- /dev/null
+++ b/include/osmocom/sabp/SABP_ProcedureCode.h
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-CommonDataTypes"
+ * found in "../../asn1/sabp/SABP-CommonDataTypes.asn"
+ */
+
+#ifndef _SABP_ProcedureCode_H_
+#define _SABP_ProcedureCode_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SABP_ProcedureCode {
+ SABP_ProcedureCode_id_Write_Replace = 0,
+ SABP_ProcedureCode_id_Kill = 1,
+ SABP_ProcedureCode_id_Load_Status_Enquiry = 2,
+ SABP_ProcedureCode_id_Message_Status_Query = 3,
+ SABP_ProcedureCode_id_Restart_Indication = 4,
+ SABP_ProcedureCode_id_Reset = 5,
+ SABP_ProcedureCode_id_Failure_Indication = 6,
+ SABP_ProcedureCode_id_Error_Indication = 7
+} e_SABP_ProcedureCode;
+
+/* SABP_ProcedureCode */
+typedef long SABP_ProcedureCode_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_ProcedureCode;
+asn_struct_free_f SABP_ProcedureCode_free;
+asn_struct_print_f SABP_ProcedureCode_print;
+asn_constr_check_f SABP_ProcedureCode_constraint;
+ber_type_decoder_f SABP_ProcedureCode_decode_ber;
+der_type_encoder_f SABP_ProcedureCode_encode_der;
+xer_type_decoder_f SABP_ProcedureCode_decode_xer;
+xer_type_encoder_f SABP_ProcedureCode_encode_xer;
+per_type_decoder_f SABP_ProcedureCode_decode_uper;
+per_type_encoder_f SABP_ProcedureCode_encode_uper;
+per_type_decoder_f SABP_ProcedureCode_decode_aper;
+per_type_encoder_f SABP_ProcedureCode_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_ProcedureCode_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_ProtocolExtensionID.h b/include/osmocom/sabp/SABP_ProtocolExtensionID.h
new file mode 100644
index 0000000..babb695
--- /dev/null
+++ b/include/osmocom/sabp/SABP_ProtocolExtensionID.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-CommonDataTypes"
+ * found in "../../asn1/sabp/SABP-CommonDataTypes.asn"
+ */
+
+#ifndef _SABP_ProtocolExtensionID_H_
+#define _SABP_ProtocolExtensionID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_ProtocolExtensionID */
+typedef long SABP_ProtocolExtensionID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_ProtocolExtensionID;
+asn_struct_free_f SABP_ProtocolExtensionID_free;
+asn_struct_print_f SABP_ProtocolExtensionID_print;
+asn_constr_check_f SABP_ProtocolExtensionID_constraint;
+ber_type_decoder_f SABP_ProtocolExtensionID_decode_ber;
+der_type_encoder_f SABP_ProtocolExtensionID_encode_der;
+xer_type_decoder_f SABP_ProtocolExtensionID_decode_xer;
+xer_type_encoder_f SABP_ProtocolExtensionID_encode_xer;
+per_type_decoder_f SABP_ProtocolExtensionID_decode_uper;
+per_type_encoder_f SABP_ProtocolExtensionID_encode_uper;
+per_type_decoder_f SABP_ProtocolExtensionID_decode_aper;
+per_type_encoder_f SABP_ProtocolExtensionID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_ProtocolExtensionID_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_ProtocolIE-ID.h b/include/osmocom/sabp/SABP_ProtocolIE-ID.h
new file mode 100644
index 0000000..06e8b8d
--- /dev/null
+++ b/include/osmocom/sabp/SABP_ProtocolIE-ID.h
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-CommonDataTypes"
+ * found in "../../asn1/sabp/SABP-CommonDataTypes.asn"
+ */
+
+#ifndef _SABP_ProtocolIE_ID_H_
+#define _SABP_ProtocolIE_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SABP_ProtocolIE_ID {
+ SABP_ProtocolIE_ID_id_Broadcast_Message_Content = 0,
+ SABP_ProtocolIE_ID_id_Category = 1,
+ SABP_ProtocolIE_ID_id_Cause = 2,
+ SABP_ProtocolIE_ID_id_Data_Coding_Scheme = 4,
+ SABP_ProtocolIE_ID_id_Failure_List = 5,
+ SABP_ProtocolIE_ID_id_Message_Identifier = 6,
+ SABP_ProtocolIE_ID_id_New_Serial_Number = 7,
+ SABP_ProtocolIE_ID_id_Number_of_Broadcasts_Completed_List = 8,
+ SABP_ProtocolIE_ID_id_Number_of_Broadcasts_Requested = 9,
+ SABP_ProtocolIE_ID_id_Old_Serial_Number = 10,
+ SABP_ProtocolIE_ID_id_Radio_Resource_Loading_List = 11,
+ SABP_ProtocolIE_ID_id_Recovery_Indication = 12,
+ SABP_ProtocolIE_ID_id_Repetition_Period = 13,
+ SABP_ProtocolIE_ID_id_Serial_Number = 14,
+ SABP_ProtocolIE_ID_id_Service_Areas_List = 15,
+ SABP_ProtocolIE_ID_id_MessageStructure = 16,
+ SABP_ProtocolIE_ID_id_TypeOfError = 17,
+ SABP_ProtocolIE_ID_id_Paging_ETWS_Indicator = 18,
+ SABP_ProtocolIE_ID_id_Warning_Type = 19,
+ SABP_ProtocolIE_ID_id_WarningSecurityInfo = 20,
+ SABP_ProtocolIE_ID_id_Broadcast_Message_Content_Validity_Indicator = 21
+} e_SABP_ProtocolIE_ID;
+
+/* SABP_ProtocolIE-ID */
+typedef long SABP_ProtocolIE_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_ProtocolIE_ID;
+asn_struct_free_f SABP_ProtocolIE_ID_free;
+asn_struct_print_f SABP_ProtocolIE_ID_print;
+asn_constr_check_f SABP_ProtocolIE_ID_constraint;
+ber_type_decoder_f SABP_ProtocolIE_ID_decode_ber;
+der_type_encoder_f SABP_ProtocolIE_ID_encode_der;
+xer_type_decoder_f SABP_ProtocolIE_ID_decode_xer;
+xer_type_encoder_f SABP_ProtocolIE_ID_encode_xer;
+per_type_decoder_f SABP_ProtocolIE_ID_decode_uper;
+per_type_encoder_f SABP_ProtocolIE_ID_encode_uper;
+per_type_decoder_f SABP_ProtocolIE_ID_decode_aper;
+per_type_encoder_f SABP_ProtocolIE_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_ProtocolIE_ID_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Radio-Resource-Loading-List-Item.h b/include/osmocom/sabp/SABP_Radio-Resource-Loading-List-Item.h
new file mode 100644
index 0000000..566b65b
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Radio-Resource-Loading-List-Item.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_Radio_Resource_Loading_List_Item_H_
+#define _SABP_Radio_Resource_Loading_List_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_Service-Area-Identifier.h>
+#include <osmocom/sabp/SABP_Available-Bandwidth.h>
+#include <osmocom/sabp/SABP_IE-Extensions.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Radio-Resource-Loading-List-Item */
+typedef struct SABP_Radio_Resource_Loading_List_Item {
+ SABP_Service_Area_Identifier_t service_area_identifier;
+ SABP_Available_Bandwidth_t available_bandwidth;
+ SABP_IE_Extensions_t *iE_Extensions /* OPTIONAL */;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Radio_Resource_Loading_List_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Radio_Resource_Loading_List_Item;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Radio_Resource_Loading_List_Item_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Radio-Resource-Loading-List.h b/include/osmocom/sabp/SABP_Radio-Resource-Loading-List.h
new file mode 100644
index 0000000..011b0bb
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Radio-Resource-Loading-List.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_Radio_Resource_Loading_List_H_
+#define _SABP_Radio_Resource_Loading_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_Radio-Resource-Loading-List-Item.h>
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Radio-Resource-Loading-List */
+typedef struct SABP_Radio_Resource_Loading_List {
+ A_SEQUENCE_OF(SABP_Radio_Resource_Loading_List_Item_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Radio_Resource_Loading_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Radio_Resource_Loading_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Radio_Resource_Loading_List_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Recovery-Indication.h b/include/osmocom/sabp/SABP_Recovery-Indication.h
new file mode 100644
index 0000000..443090f
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Recovery-Indication.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_Recovery_Indication_H_
+#define _SABP_Recovery_Indication_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SABP_Recovery_Indication {
+ SABP_Recovery_Indication_data_lost = 0,
+ SABP_Recovery_Indication_data_available = 1
+} e_SABP_Recovery_Indication;
+
+/* SABP_Recovery-Indication */
+typedef long SABP_Recovery_Indication_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Recovery_Indication;
+asn_struct_free_f SABP_Recovery_Indication_free;
+asn_struct_print_f SABP_Recovery_Indication_print;
+asn_constr_check_f SABP_Recovery_Indication_constraint;
+ber_type_decoder_f SABP_Recovery_Indication_decode_ber;
+der_type_encoder_f SABP_Recovery_Indication_encode_der;
+xer_type_decoder_f SABP_Recovery_Indication_decode_xer;
+xer_type_encoder_f SABP_Recovery_Indication_encode_xer;
+per_type_decoder_f SABP_Recovery_Indication_decode_uper;
+per_type_encoder_f SABP_Recovery_Indication_encode_uper;
+per_type_decoder_f SABP_Recovery_Indication_decode_aper;
+per_type_encoder_f SABP_Recovery_Indication_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Recovery_Indication_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Repetition-Period.h b/include/osmocom/sabp/SABP_Repetition-Period.h
new file mode 100644
index 0000000..251c3d2
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Repetition-Period.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_Repetition_Period_H_
+#define _SABP_Repetition_Period_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Repetition-Period */
+typedef long SABP_Repetition_Period_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Repetition_Period;
+asn_struct_free_f SABP_Repetition_Period_free;
+asn_struct_print_f SABP_Repetition_Period_print;
+asn_constr_check_f SABP_Repetition_Period_constraint;
+ber_type_decoder_f SABP_Repetition_Period_decode_ber;
+der_type_encoder_f SABP_Repetition_Period_encode_der;
+xer_type_decoder_f SABP_Repetition_Period_decode_xer;
+xer_type_encoder_f SABP_Repetition_Period_encode_xer;
+per_type_decoder_f SABP_Repetition_Period_decode_uper;
+per_type_encoder_f SABP_Repetition_Period_encode_uper;
+per_type_decoder_f SABP_Repetition_Period_decode_aper;
+per_type_encoder_f SABP_Repetition_Period_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Repetition_Period_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_RepetitionNumber0.h b/include/osmocom/sabp/SABP_RepetitionNumber0.h
new file mode 100644
index 0000000..890abc2
--- /dev/null
+++ b/include/osmocom/sabp/SABP_RepetitionNumber0.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_RepetitionNumber0_H_
+#define _SABP_RepetitionNumber0_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_RepetitionNumber0 */
+typedef long SABP_RepetitionNumber0_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_RepetitionNumber0;
+asn_struct_free_f SABP_RepetitionNumber0_free;
+asn_struct_print_f SABP_RepetitionNumber0_print;
+asn_constr_check_f SABP_RepetitionNumber0_constraint;
+ber_type_decoder_f SABP_RepetitionNumber0_decode_ber;
+der_type_encoder_f SABP_RepetitionNumber0_encode_der;
+xer_type_decoder_f SABP_RepetitionNumber0_decode_xer;
+xer_type_encoder_f SABP_RepetitionNumber0_encode_xer;
+per_type_decoder_f SABP_RepetitionNumber0_decode_uper;
+per_type_encoder_f SABP_RepetitionNumber0_encode_uper;
+per_type_decoder_f SABP_RepetitionNumber0_decode_aper;
+per_type_encoder_f SABP_RepetitionNumber0_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_RepetitionNumber0_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_RepetitionNumber1.h b/include/osmocom/sabp/SABP_RepetitionNumber1.h
new file mode 100644
index 0000000..a9ba2eb
--- /dev/null
+++ b/include/osmocom/sabp/SABP_RepetitionNumber1.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_RepetitionNumber1_H_
+#define _SABP_RepetitionNumber1_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_RepetitionNumber1 */
+typedef long SABP_RepetitionNumber1_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_RepetitionNumber1;
+asn_struct_free_f SABP_RepetitionNumber1_free;
+asn_struct_print_f SABP_RepetitionNumber1_print;
+asn_constr_check_f SABP_RepetitionNumber1_constraint;
+ber_type_decoder_f SABP_RepetitionNumber1_decode_ber;
+der_type_encoder_f SABP_RepetitionNumber1_encode_der;
+xer_type_decoder_f SABP_RepetitionNumber1_decode_xer;
+xer_type_encoder_f SABP_RepetitionNumber1_encode_xer;
+per_type_decoder_f SABP_RepetitionNumber1_decode_uper;
+per_type_encoder_f SABP_RepetitionNumber1_encode_uper;
+per_type_decoder_f SABP_RepetitionNumber1_decode_aper;
+per_type_encoder_f SABP_RepetitionNumber1_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_RepetitionNumber1_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Reset-Complete.h b/include/osmocom/sabp/SABP_Reset-Complete.h
new file mode 100644
index 0000000..db75a83
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Reset-Complete.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-PDU"
+ * found in "../../asn1/sabp/SABP-PDU.asn"
+ */
+
+#ifndef _SABP_Reset_Complete_H_
+#define _SABP_Reset_Complete_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_IE.h>
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Reset-Complete */
+typedef struct SABP_Reset_Complete {
+ struct reset_Complete_ies {
+ A_SEQUENCE_OF(SABP_IE_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } reset_Complete_ies;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Reset_Complete_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Reset_Complete;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Reset_Complete_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Reset-Failure.h b/include/osmocom/sabp/SABP_Reset-Failure.h
new file mode 100644
index 0000000..de0f20d
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Reset-Failure.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-PDU"
+ * found in "../../asn1/sabp/SABP-PDU.asn"
+ */
+
+#ifndef _SABP_Reset_Failure_H_
+#define _SABP_Reset_Failure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_IE.h>
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Reset-Failure */
+typedef struct SABP_Reset_Failure {
+ struct reset_Failure_ies {
+ A_SEQUENCE_OF(SABP_IE_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } reset_Failure_ies;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Reset_Failure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Reset_Failure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Reset_Failure_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Reset.h b/include/osmocom/sabp/SABP_Reset.h
new file mode 100644
index 0000000..379d455
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Reset.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-PDU"
+ * found in "../../asn1/sabp/SABP-PDU.asn"
+ */
+
+#ifndef _SABP_Reset_H_
+#define _SABP_Reset_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_IE.h>
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Reset */
+typedef struct SABP_Reset {
+ struct reset_ies {
+ A_SEQUENCE_OF(SABP_IE_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } reset_ies;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Reset_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Reset;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Reset_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Restart.h b/include/osmocom/sabp/SABP_Restart.h
new file mode 100644
index 0000000..ee67cca
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Restart.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-PDU"
+ * found in "../../asn1/sabp/SABP-PDU.asn"
+ */
+
+#ifndef _SABP_Restart_H_
+#define _SABP_Restart_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_IE.h>
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Restart */
+typedef struct SABP_Restart {
+ struct restart_ies {
+ A_SEQUENCE_OF(SABP_IE_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } restart_ies;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Restart_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Restart;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Restart_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_SABP-PDU.h b/include/osmocom/sabp/SABP_SABP-PDU.h
new file mode 100644
index 0000000..28d5560
--- /dev/null
+++ b/include/osmocom/sabp/SABP_SABP-PDU.h
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-PDU"
+ * found in "../../asn1/sabp/SABP-PDU.asn"
+ */
+
+#ifndef _SABP_SABP_PDU_H_
+#define _SABP_SABP_PDU_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_InitiatingMessage.h>
+#include <osmocom/sabp/SABP_SuccessfulOutcome.h>
+#include <osmocom/sabp/SABP_UnsuccessfulOutcome.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SABP_SABP_PDU_PR {
+ SABP_SABP_PDU_PR_NOTHING, /* No components present */
+ SABP_SABP_PDU_PR_initiatingMessage,
+ SABP_SABP_PDU_PR_successfulOutcome,
+ SABP_SABP_PDU_PR_unsuccessfulOutcome,
+ /* Extensions may appear below */
+
+} SABP_SABP_PDU_PR;
+
+/* SABP_SABP-PDU */
+typedef struct SABP_SABP_PDU {
+ SABP_SABP_PDU_PR present;
+ union SABP_SABP_PDU_u {
+ SABP_InitiatingMessage_t initiatingMessage;
+ SABP_SuccessfulOutcome_t successfulOutcome;
+ SABP_UnsuccessfulOutcome_t unsuccessfulOutcome;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_SABP_PDU_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_SABP_PDU;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_SABP_PDU_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Serial-Number.h b/include/osmocom/sabp/SABP_Serial-Number.h
new file mode 100644
index 0000000..7833942
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Serial-Number.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_Serial_Number_H_
+#define _SABP_Serial_Number_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Serial-Number */
+typedef BIT_STRING_t SABP_Serial_Number_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Serial_Number;
+asn_struct_free_f SABP_Serial_Number_free;
+asn_struct_print_f SABP_Serial_Number_print;
+asn_constr_check_f SABP_Serial_Number_constraint;
+ber_type_decoder_f SABP_Serial_Number_decode_ber;
+der_type_encoder_f SABP_Serial_Number_encode_der;
+xer_type_decoder_f SABP_Serial_Number_decode_xer;
+xer_type_encoder_f SABP_Serial_Number_encode_xer;
+per_type_decoder_f SABP_Serial_Number_decode_uper;
+per_type_encoder_f SABP_Serial_Number_encode_uper;
+per_type_decoder_f SABP_Serial_Number_decode_aper;
+per_type_encoder_f SABP_Serial_Number_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Serial_Number_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Service-Area-Identifier.h b/include/osmocom/sabp/SABP_Service-Area-Identifier.h
new file mode 100644
index 0000000..47b9cd4
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Service-Area-Identifier.h
@@ -0,0 +1,39 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_Service_Area_Identifier_H_
+#define _SABP_Service_Area_Identifier_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Service-Area-Identifier */
+typedef struct SABP_Service_Area_Identifier {
+ OCTET_STRING_t pLMNidentity;
+ OCTET_STRING_t lac;
+ OCTET_STRING_t sac;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Service_Area_Identifier_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Service_Area_Identifier;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Service_Area_Identifier_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Service-Areas-List.h b/include/osmocom/sabp/SABP_Service-Areas-List.h
new file mode 100644
index 0000000..db56c4a
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Service-Areas-List.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_Service_Areas_List_H_
+#define _SABP_Service_Areas_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_Service-Area-Identifier.h>
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Service-Areas-List */
+typedef struct SABP_Service_Areas_List {
+ A_SEQUENCE_OF(SABP_Service_Area_Identifier_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Service_Areas_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Service_Areas_List;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Service_Areas_List_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_SuccessfulOutcome.h b/include/osmocom/sabp/SABP_SuccessfulOutcome.h
new file mode 100644
index 0000000..8438bf0
--- /dev/null
+++ b/include/osmocom/sabp/SABP_SuccessfulOutcome.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-PDU"
+ * found in "../../asn1/sabp/SABP-PDU.asn"
+ */
+
+#ifndef _SABP_SuccessfulOutcome_H_
+#define _SABP_SuccessfulOutcome_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_ProcedureCode.h>
+#include <osmocom/sabp/SABP_Criticality.h>
+#include <ANY.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_SuccessfulOutcome */
+typedef struct SABP_SuccessfulOutcome {
+ SABP_ProcedureCode_t procedureCode;
+ SABP_Criticality_t criticality;
+ ANY_t value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_SuccessfulOutcome_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_SuccessfulOutcome;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_SuccessfulOutcome_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_TriggeringMessage.h b/include/osmocom/sabp/SABP_TriggeringMessage.h
new file mode 100644
index 0000000..9d49726
--- /dev/null
+++ b/include/osmocom/sabp/SABP_TriggeringMessage.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-CommonDataTypes"
+ * found in "../../asn1/sabp/SABP-CommonDataTypes.asn"
+ */
+
+#ifndef _SABP_TriggeringMessage_H_
+#define _SABP_TriggeringMessage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SABP_TriggeringMessage {
+ SABP_TriggeringMessage_initiating_message = 0,
+ SABP_TriggeringMessage_successful_outcome = 1,
+ SABP_TriggeringMessage_unsuccessful_outcome = 2,
+ SABP_TriggeringMessage_outcome = 3
+} e_SABP_TriggeringMessage;
+
+/* SABP_TriggeringMessage */
+typedef long SABP_TriggeringMessage_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_TriggeringMessage;
+asn_struct_free_f SABP_TriggeringMessage_free;
+asn_struct_print_f SABP_TriggeringMessage_print;
+asn_constr_check_f SABP_TriggeringMessage_constraint;
+ber_type_decoder_f SABP_TriggeringMessage_decode_ber;
+der_type_encoder_f SABP_TriggeringMessage_encode_der;
+xer_type_decoder_f SABP_TriggeringMessage_decode_xer;
+xer_type_encoder_f SABP_TriggeringMessage_encode_xer;
+per_type_decoder_f SABP_TriggeringMessage_decode_uper;
+per_type_encoder_f SABP_TriggeringMessage_encode_uper;
+per_type_decoder_f SABP_TriggeringMessage_decode_aper;
+per_type_encoder_f SABP_TriggeringMessage_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_TriggeringMessage_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_TypeOfError.h b/include/osmocom/sabp/SABP_TypeOfError.h
new file mode 100644
index 0000000..f303195
--- /dev/null
+++ b/include/osmocom/sabp/SABP_TypeOfError.h
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_TypeOfError_H_
+#define _SABP_TypeOfError_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SABP_TypeOfError {
+ SABP_TypeOfError_not_understood = 0,
+ SABP_TypeOfError_missing = 1
+ /*
+ * Enumeration is extensible
+ */
+} e_SABP_TypeOfError;
+
+/* SABP_TypeOfError */
+typedef long SABP_TypeOfError_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_TypeOfError;
+asn_struct_free_f SABP_TypeOfError_free;
+asn_struct_print_f SABP_TypeOfError_print;
+asn_constr_check_f SABP_TypeOfError_constraint;
+ber_type_decoder_f SABP_TypeOfError_decode_ber;
+der_type_encoder_f SABP_TypeOfError_encode_der;
+xer_type_decoder_f SABP_TypeOfError_decode_xer;
+xer_type_encoder_f SABP_TypeOfError_encode_xer;
+per_type_decoder_f SABP_TypeOfError_decode_uper;
+per_type_encoder_f SABP_TypeOfError_encode_uper;
+per_type_decoder_f SABP_TypeOfError_decode_aper;
+per_type_encoder_f SABP_TypeOfError_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_TypeOfError_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_UnsuccessfulOutcome.h b/include/osmocom/sabp/SABP_UnsuccessfulOutcome.h
new file mode 100644
index 0000000..fe2059c
--- /dev/null
+++ b/include/osmocom/sabp/SABP_UnsuccessfulOutcome.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-PDU"
+ * found in "../../asn1/sabp/SABP-PDU.asn"
+ */
+
+#ifndef _SABP_UnsuccessfulOutcome_H_
+#define _SABP_UnsuccessfulOutcome_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_ProcedureCode.h>
+#include <osmocom/sabp/SABP_Criticality.h>
+#include <ANY.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_UnsuccessfulOutcome */
+typedef struct SABP_UnsuccessfulOutcome {
+ SABP_ProcedureCode_t procedureCode;
+ SABP_Criticality_t criticality;
+ ANY_t value;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_UnsuccessfulOutcome_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_UnsuccessfulOutcome;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_UnsuccessfulOutcome_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Warning-Type.h b/include/osmocom/sabp/SABP_Warning-Type.h
new file mode 100644
index 0000000..11534b5
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Warning-Type.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_Warning_Type_H_
+#define _SABP_Warning_Type_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Warning-Type */
+typedef OCTET_STRING_t SABP_Warning_Type_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Warning_Type;
+asn_struct_free_f SABP_Warning_Type_free;
+asn_struct_print_f SABP_Warning_Type_print;
+asn_constr_check_f SABP_Warning_Type_constraint;
+ber_type_decoder_f SABP_Warning_Type_decode_ber;
+der_type_encoder_f SABP_Warning_Type_encode_der;
+xer_type_decoder_f SABP_Warning_Type_decode_xer;
+xer_type_encoder_f SABP_Warning_Type_encode_xer;
+per_type_decoder_f SABP_Warning_Type_decode_uper;
+per_type_encoder_f SABP_Warning_Type_encode_uper;
+per_type_decoder_f SABP_Warning_Type_decode_aper;
+per_type_encoder_f SABP_Warning_Type_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Warning_Type_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_WarningSecurityInfo.h b/include/osmocom/sabp/SABP_WarningSecurityInfo.h
new file mode 100644
index 0000000..bb79a2a
--- /dev/null
+++ b/include/osmocom/sabp/SABP_WarningSecurityInfo.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-IEs"
+ * found in "../../asn1/sabp/SABP-IEs.asn"
+ */
+
+#ifndef _SABP_WarningSecurityInfo_H_
+#define _SABP_WarningSecurityInfo_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_WarningSecurityInfo */
+typedef OCTET_STRING_t SABP_WarningSecurityInfo_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_WarningSecurityInfo;
+asn_struct_free_f SABP_WarningSecurityInfo_free;
+asn_struct_print_f SABP_WarningSecurityInfo_print;
+asn_constr_check_f SABP_WarningSecurityInfo_constraint;
+ber_type_decoder_f SABP_WarningSecurityInfo_decode_ber;
+der_type_encoder_f SABP_WarningSecurityInfo_encode_der;
+xer_type_decoder_f SABP_WarningSecurityInfo_decode_xer;
+xer_type_encoder_f SABP_WarningSecurityInfo_encode_xer;
+per_type_decoder_f SABP_WarningSecurityInfo_decode_uper;
+per_type_encoder_f SABP_WarningSecurityInfo_encode_uper;
+per_type_decoder_f SABP_WarningSecurityInfo_decode_aper;
+per_type_encoder_f SABP_WarningSecurityInfo_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_WarningSecurityInfo_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Write-Replace-Complete.h b/include/osmocom/sabp/SABP_Write-Replace-Complete.h
new file mode 100644
index 0000000..d118f98
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Write-Replace-Complete.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-PDU"
+ * found in "../../asn1/sabp/SABP-PDU.asn"
+ */
+
+#ifndef _SABP_Write_Replace_Complete_H_
+#define _SABP_Write_Replace_Complete_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_IE.h>
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Write-Replace-Complete */
+typedef struct SABP_Write_Replace_Complete {
+ struct write_Replace_Complete_ies {
+ A_SEQUENCE_OF(SABP_IE_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } write_Replace_Complete_ies;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Write_Replace_Complete_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Write_Replace_Complete;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Write_Replace_Complete_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Write-Replace-Failure.h b/include/osmocom/sabp/SABP_Write-Replace-Failure.h
new file mode 100644
index 0000000..99e8400
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Write-Replace-Failure.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-PDU"
+ * found in "../../asn1/sabp/SABP-PDU.asn"
+ */
+
+#ifndef _SABP_Write_Replace_Failure_H_
+#define _SABP_Write_Replace_Failure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_IE.h>
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Write-Replace-Failure */
+typedef struct SABP_Write_Replace_Failure {
+ struct write_Replace_Failure_ies {
+ A_SEQUENCE_OF(SABP_IE_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } write_Replace_Failure_ies;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Write_Replace_Failure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Write_Replace_Failure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Write_Replace_Failure_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/SABP_Write-Replace.h b/include/osmocom/sabp/SABP_Write-Replace.h
new file mode 100644
index 0000000..1c895d5
--- /dev/null
+++ b/include/osmocom/sabp/SABP_Write-Replace.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "SABP-PDU"
+ * found in "../../asn1/sabp/SABP-PDU.asn"
+ */
+
+#ifndef _SABP_Write_Replace_H_
+#define _SABP_Write_Replace_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <osmocom/sabp/SABP_IE.h>
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SABP_Write-Replace */
+typedef struct SABP_Write_Replace {
+ struct write_Replace_ies {
+ A_SEQUENCE_OF(SABP_IE_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } write_Replace_ies;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SABP_Write_Replace_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SABP_Write_Replace;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SABP_Write_Replace_H_ */
+#include <asn_internal.h>
diff --git a/include/osmocom/sabp/sabp_common.h b/include/osmocom/sabp/sabp_common.h
new file mode 100644
index 0000000..717247c
--- /dev/null
+++ b/include/osmocom/sabp/sabp_common.h
@@ -0,0 +1,104 @@
+#pragma once
+
+#include <asn1c/asn_application.h>
+
+#include <osmocom/sabp/SABP_Available-Bandwidth.h>
+#include <osmocom/sabp/SABP_Broadcast-Message-Content-Validity-Indicator.h>
+#include <osmocom/sabp/SABP_Broadcast-Message-Content.h>
+#include <osmocom/sabp/SABP_Category.h>
+#include <osmocom/sabp/SABP_Cause.h>
+#include <osmocom/sabp/SABP_Criticality-Diagnostics.h>
+#include <osmocom/sabp/SABP_Criticality.h>
+#include <osmocom/sabp/SABP_CriticalityDiagnostics-IE-List.h>
+#include <osmocom/sabp/SABP_Data-Coding-Scheme.h>
+#include <osmocom/sabp/SABP_Error-Indication.h>
+#include <osmocom/sabp/SABP_Failure-List-Item.h>
+#include <osmocom/sabp/SABP_Failure-List.h>
+#include <osmocom/sabp/SABP_Failure.h>
+#include <osmocom/sabp/SABP_IE-Extensions.h>
+#include <osmocom/sabp/SABP_IE.h>
+#include <osmocom/sabp/SABP_InitiatingMessage.h>
+#include <osmocom/sabp/SABP_Kill-Complete.h>
+#include <osmocom/sabp/SABP_Kill-Failure.h>
+#include <osmocom/sabp/SABP_Kill.h>
+#include <osmocom/sabp/SABP_Load-Query-Complete.h>
+#include <osmocom/sabp/SABP_Load-Query-Failure.h>
+#include <osmocom/sabp/SABP_Load-Query.h>
+#include <osmocom/sabp/SABP_Message-Identifier.h>
+#include <osmocom/sabp/SABP_Message-Status-Query-Complete.h>
+#include <osmocom/sabp/SABP_Message-Status-Query-Failure.h>
+#include <osmocom/sabp/SABP_Message-Status-Query.h>
+#include <osmocom/sabp/SABP_MessageStructure.h>
+#include <osmocom/sabp/SABP_New-Serial-Number.h>
+#include <osmocom/sabp/SABP_Number-Of-Broadcasts-Completed-Info.h>
+#include <osmocom/sabp/SABP_Number-of-Broadcasts-Completed-List-Item.h>
+#include <osmocom/sabp/SABP_Number-of-Broadcasts-Completed-List.h>
+#include <osmocom/sabp/SABP_Number-of-Broadcasts-Requested.h>
+#include <osmocom/sabp/SABP_Old-Serial-Number.h>
+#include <osmocom/sabp/SABP_Paging-ETWS-Indicator.h>
+#include <osmocom/sabp/SABP_Presence.h>
+#include <osmocom/sabp/SABP_ProcedureCode.h>
+#include <osmocom/sabp/SABP_ProtocolExtensionID.h>
+#include <osmocom/sabp/SABP_ProtocolIE-ID.h>
+#include <osmocom/sabp/SABP_Radio-Resource-Loading-List-Item.h>
+#include <osmocom/sabp/SABP_Radio-Resource-Loading-List.h>
+#include <osmocom/sabp/SABP_Recovery-Indication.h>
+#include <osmocom/sabp/SABP_Repetition-Period.h>
+#include <osmocom/sabp/SABP_RepetitionNumber0.h>
+#include <osmocom/sabp/SABP_RepetitionNumber1.h>
+#include <osmocom/sabp/SABP_Reset-Complete.h>
+#include <osmocom/sabp/SABP_Reset-Failure.h>
+#include <osmocom/sabp/SABP_Reset.h>
+#include <osmocom/sabp/SABP_Restart.h>
+#include <osmocom/sabp/SABP_SABP-PDU.h>
+#include <osmocom/sabp/SABP_Serial-Number.h>
+#include <osmocom/sabp/SABP_Service-Area-Identifier.h>
+#include <osmocom/sabp/SABP_Service-Areas-List.h>
+#include <osmocom/sabp/SABP_SuccessfulOutcome.h>
+#include <osmocom/sabp/SABP_TriggeringMessage.h>
+#include <osmocom/sabp/SABP_TypeOfError.h>
+#include <osmocom/sabp/SABP_UnsuccessfulOutcome.h>
+#include <osmocom/sabp/SABP_Warning-Type.h>
+#include <osmocom/sabp/SABP_WarningSecurityInfo.h>
+#include <osmocom/sabp/SABP_Write-Replace-Complete.h>
+#include <osmocom/sabp/SABP_Write-Replace-Failure.h>
+#include <osmocom/sabp/SABP_Write-Replace.h>
+
+#if (ASN1C_ENVIRONMENT_VERSION < 924)
+# error "You are compiling with the wrong version of ASN1C"
+#endif
+
+#include <osmocom/core/logging.h>
+#include <osmocom/core/utils.h>
+#include <osmocom/sabp/sabp_ies_defs.h>
+
+#define SABP_DEBUG(x, args ...) DEBUGP(_sabp_DSABP, x, ## args)
+extern int _sabp_DSABP;
+
+extern int asn1_xer_print;
+
+extern const struct value_string sabp_presence_vals[];
+extern const struct value_string sabp_procedure_code_vals[];
+extern const struct value_string sabp_cause_vals[];
+
+struct msgb *sabp_generate_initiating_message(e_SABP_ProcedureCode procedureCode,
+ SABP_Criticality_t criticality,
+ asn_TYPE_descriptor_t *td, void *sptr);
+
+struct msgb *sabp_generate_successful_outcome(
+ e_SABP_ProcedureCode procedureCode,
+ SABP_Criticality_t criticality,
+ asn_TYPE_descriptor_t * td,
+ void *sptr);
+
+struct msgb *sabp_generate_unsuccessful_outcome(
+ e_SABP_ProcedureCode procedureCode,
+ SABP_Criticality_t criticality,
+ asn_TYPE_descriptor_t * td,
+ void *sptr);
+
+SABP_IE_t *sabp_new_ie(SABP_ProtocolIE_ID_t id,
+ SABP_Criticality_t criticality,
+ asn_TYPE_descriptor_t * type, void *sptr);
+
+void sabp_set_log_area(int log_area);