diff --git a/src/core/libs/supl/CMakeLists.txt b/src/core/libs/supl/CMakeLists.txt
new file mode 100644
index 000000000..7ea283696
--- /dev/null
+++ b/src/core/libs/supl/CMakeLists.txt
@@ -0,0 +1,37 @@
+# Copyright (C) 2012-2013 (see AUTHORS file for a list of contributors)
+#
+# This file is part of GNSS-SDR.
+#
+# GNSS-SDR is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# at your option) any later version.
+#
+# GNSS-SDR is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNSS-SDR. If not, see .
+#
+
+file(GLOB ASN_RRLP_SOURCES "${CMAKE_SOURCE_DIR}/src/core/libs/supl/asn-rrlp/*.c")
+file(GLOB ASN_SUPL_SOURCES "${CMAKE_SOURCE_DIR}/src/core/libs/supl/asn-supl/*.c")
+
+set (SUPL_SOURCES
+ supl.c
+ )
+
+include_directories(
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/src/core/libs/supl
+ ${CMAKE_SOURCE_DIR}/src/core/libs/supl/asn-rrlp
+ ${CMAKE_SOURCE_DIR}/src/core/libs/supl/asn-supl
+ )
+
+
+
+add_library (supl_library STATIC ${ASN_RRLP_SOURCES} ${ASN_SUPL_SOURCES} ${SUPL_SOURCES})
+target_link_libraries (supl_library ssl)
+SET_TARGET_PROPERTIES(supl_library PROPERTIES LINKER_LANGUAGE C)
\ No newline at end of file
diff --git a/src/core/libs/supl/asn-rrlp/Accuracy.c b/src/core/libs/supl/asn-rrlp/Accuracy.c
new file mode 100644
index 000000000..b3609c7ef
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/Accuracy.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "Accuracy.h"
+
+int
+Accuracy_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 127)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+Accuracy_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+ td->free_struct = asn_DEF_NativeInteger.free_struct;
+ td->print_struct = asn_DEF_NativeInteger.print_struct;
+ td->ber_decoder = asn_DEF_NativeInteger.ber_decoder;
+ td->der_encoder = asn_DEF_NativeInteger.der_encoder;
+ td->xer_decoder = asn_DEF_NativeInteger.xer_decoder;
+ td->xer_encoder = asn_DEF_NativeInteger.xer_encoder;
+ td->uper_decoder = asn_DEF_NativeInteger.uper_decoder;
+ td->uper_encoder = asn_DEF_NativeInteger.uper_encoder;
+ if(!td->per_constraints)
+ td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+ td->elements = asn_DEF_NativeInteger.elements;
+ td->elements_count = asn_DEF_NativeInteger.elements_count;
+ td->specifics = asn_DEF_NativeInteger.specifics;
+}
+
+void
+Accuracy_free(asn_TYPE_descriptor_t *td,
+ void *struct_ptr, int contents_only) {
+ Accuracy_1_inherit_TYPE_descriptor(td);
+ td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+Accuracy_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+ int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+ Accuracy_1_inherit_TYPE_descriptor(td);
+ return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+Accuracy_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const void *bufptr, size_t size, int tag_mode) {
+ Accuracy_1_inherit_TYPE_descriptor(td);
+ return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+Accuracy_encode_der(asn_TYPE_descriptor_t *td,
+ void *structure, int tag_mode, ber_tlv_tag_t tag,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ Accuracy_1_inherit_TYPE_descriptor(td);
+ return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+Accuracy_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+ Accuracy_1_inherit_TYPE_descriptor(td);
+ return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+Accuracy_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+ int ilevel, enum xer_encoder_flags_e flags,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ Accuracy_1_inherit_TYPE_descriptor(td);
+ return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+Accuracy_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+ Accuracy_1_inherit_TYPE_descriptor(td);
+ return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+Accuracy_encode_uper(asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints,
+ void *structure, asn_per_outp_t *per_out) {
+ Accuracy_1_inherit_TYPE_descriptor(td);
+ return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_per_constraints_t asn_PER_type_Accuracy_constr_1 = {
+ { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static ber_tlv_tag_t asn_DEF_Accuracy_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_Accuracy = {
+ "Accuracy",
+ "Accuracy",
+ Accuracy_free,
+ Accuracy_print,
+ Accuracy_constraint,
+ Accuracy_decode_ber,
+ Accuracy_encode_der,
+ Accuracy_decode_xer,
+ Accuracy_encode_xer,
+ Accuracy_decode_uper,
+ Accuracy_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_Accuracy_tags_1,
+ sizeof(asn_DEF_Accuracy_tags_1)
+ /sizeof(asn_DEF_Accuracy_tags_1[0]), /* 1 */
+ asn_DEF_Accuracy_tags_1, /* Same as above */
+ sizeof(asn_DEF_Accuracy_tags_1)
+ /sizeof(asn_DEF_Accuracy_tags_1[0]), /* 1 */
+ &asn_PER_type_Accuracy_constr_1,
+ 0, 0, /* No members */
+ 0 /* No specifics */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/Accuracy.h b/src/core/libs/supl/asn-rrlp/Accuracy.h
new file mode 100644
index 000000000..5ac421785
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/Accuracy.h
@@ -0,0 +1,40 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _Accuracy_H_
+#define _Accuracy_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Accuracy */
+typedef long Accuracy_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Accuracy;
+asn_struct_free_f Accuracy_free;
+asn_struct_print_f Accuracy_print;
+asn_constr_check_f Accuracy_constraint;
+ber_type_decoder_f Accuracy_decode_ber;
+der_type_encoder_f Accuracy_encode_der;
+xer_type_decoder_f Accuracy_decode_xer;
+xer_type_encoder_f Accuracy_encode_xer;
+per_type_decoder_f Accuracy_decode_uper;
+per_type_encoder_f Accuracy_encode_uper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Accuracy_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/AccuracyOpt.c b/src/core/libs/supl/asn-rrlp/AccuracyOpt.c
new file mode 100644
index 000000000..5515ee62d
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/AccuracyOpt.c
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "AccuracyOpt.h"
+
+static asn_TYPE_member_t asn_MBR_AccuracyOpt_1[] = {
+ { ATF_POINTER, 1, offsetof(struct AccuracyOpt, accuracy),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_Accuracy,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "accuracy"
+ },
+};
+static int asn_MAP_AccuracyOpt_oms_1[] = { 0 };
+static ber_tlv_tag_t asn_DEF_AccuracyOpt_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_AccuracyOpt_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* accuracy at 125 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_AccuracyOpt_specs_1 = {
+ sizeof(struct AccuracyOpt),
+ offsetof(struct AccuracyOpt, _asn_ctx),
+ asn_MAP_AccuracyOpt_tag2el_1,
+ 1, /* Count of tags in the map */
+ asn_MAP_AccuracyOpt_oms_1, /* Optional members */
+ 1, 0, /* Root/Additions */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_AccuracyOpt = {
+ "AccuracyOpt",
+ "AccuracyOpt",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_AccuracyOpt_tags_1,
+ sizeof(asn_DEF_AccuracyOpt_tags_1)
+ /sizeof(asn_DEF_AccuracyOpt_tags_1[0]), /* 1 */
+ asn_DEF_AccuracyOpt_tags_1, /* Same as above */
+ sizeof(asn_DEF_AccuracyOpt_tags_1)
+ /sizeof(asn_DEF_AccuracyOpt_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_AccuracyOpt_1,
+ 1, /* Elements count */
+ &asn_SPC_AccuracyOpt_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/AccuracyOpt.h b/src/core/libs/supl/asn-rrlp/AccuracyOpt.h
new file mode 100644
index 000000000..d5605fe1d
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/AccuracyOpt.h
@@ -0,0 +1,37 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _AccuracyOpt_H_
+#define _AccuracyOpt_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "Accuracy.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* AccuracyOpt */
+typedef struct AccuracyOpt {
+ Accuracy_t *accuracy /* OPTIONAL */;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} AccuracyOpt_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_AccuracyOpt;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AccuracyOpt_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/AcquisAssist.c b/src/core/libs/supl/asn-rrlp/AcquisAssist.c
new file mode 100644
index 000000000..9dc1721e8
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/AcquisAssist.c
@@ -0,0 +1,69 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "AcquisAssist.h"
+
+static asn_TYPE_member_t asn_MBR_AcquisAssist_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct AcquisAssist, timeRelation),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_TimeRelation,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "timeRelation"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct AcquisAssist, acquisList),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SeqOfAcquisElement,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "acquisList"
+ },
+};
+static ber_tlv_tag_t asn_DEF_AcquisAssist_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_AcquisAssist_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeRelation at 817 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* acquisList at 822 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_AcquisAssist_specs_1 = {
+ sizeof(struct AcquisAssist),
+ offsetof(struct AcquisAssist, _asn_ctx),
+ asn_MAP_AcquisAssist_tag2el_1,
+ 2, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_AcquisAssist = {
+ "AcquisAssist",
+ "AcquisAssist",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_AcquisAssist_tags_1,
+ sizeof(asn_DEF_AcquisAssist_tags_1)
+ /sizeof(asn_DEF_AcquisAssist_tags_1[0]), /* 1 */
+ asn_DEF_AcquisAssist_tags_1, /* Same as above */
+ sizeof(asn_DEF_AcquisAssist_tags_1)
+ /sizeof(asn_DEF_AcquisAssist_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_AcquisAssist_1,
+ 2, /* Elements count */
+ &asn_SPC_AcquisAssist_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/AcquisAssist.h b/src/core/libs/supl/asn-rrlp/AcquisAssist.h
new file mode 100644
index 000000000..cf9ab7c55
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/AcquisAssist.h
@@ -0,0 +1,39 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _AcquisAssist_H_
+#define _AcquisAssist_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "TimeRelation.h"
+#include "SeqOfAcquisElement.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* AcquisAssist */
+typedef struct AcquisAssist {
+ TimeRelation_t timeRelation;
+ SeqOfAcquisElement_t acquisList;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} AcquisAssist_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_AcquisAssist;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AcquisAssist_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/AcquisElement.c b/src/core/libs/supl/asn-rrlp/AcquisElement.c
new file mode 100644
index 000000000..506e7ad3a
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/AcquisElement.c
@@ -0,0 +1,281 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "AcquisElement.h"
+
+static int
+memb_doppler0_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= -2048 && value <= 2047)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_codePhase_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 1022)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_intCodePhase_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 19)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_gpsBitNumber_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 3)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_codePhaseSearchWindow_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 15)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_doppler0_constr_3 = {
+ { APC_CONSTRAINED, 12, 12, -2048, 2047 } /* (-2048..2047) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_codePhase_constr_5 = {
+ { APC_CONSTRAINED, 10, 10, 0, 1022 } /* (0..1022) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_intCodePhase_constr_6 = {
+ { APC_CONSTRAINED, 5, 5, 0, 19 } /* (0..19) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_gpsBitNumber_constr_7 = {
+ { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_codePhaseSearchWindow_constr_8 = {
+ { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_AcquisElement_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct AcquisElement, svid),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SatelliteID,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "svid"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct AcquisElement, doppler0),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_doppler0_constraint_1,
+ &asn_PER_memb_doppler0_constr_3,
+ 0,
+ "doppler0"
+ },
+ { ATF_POINTER, 1, offsetof(struct AcquisElement, addionalDoppler),
+ (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_AddionalDopplerFields,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "addionalDoppler"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct AcquisElement, codePhase),
+ (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_codePhase_constraint_1,
+ &asn_PER_memb_codePhase_constr_5,
+ 0,
+ "codePhase"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct AcquisElement, intCodePhase),
+ (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_intCodePhase_constraint_1,
+ &asn_PER_memb_intCodePhase_constr_6,
+ 0,
+ "intCodePhase"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct AcquisElement, gpsBitNumber),
+ (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_gpsBitNumber_constraint_1,
+ &asn_PER_memb_gpsBitNumber_constr_7,
+ 0,
+ "gpsBitNumber"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct AcquisElement, codePhaseSearchWindow),
+ (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_codePhaseSearchWindow_constraint_1,
+ &asn_PER_memb_codePhaseSearchWindow_constr_8,
+ 0,
+ "codePhaseSearchWindow"
+ },
+ { ATF_POINTER, 1, offsetof(struct AcquisElement, addionalAngle),
+ (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_AddionalAngleFields,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "addionalAngle"
+ },
+};
+static int asn_MAP_AcquisElement_oms_1[] = { 2, 7 };
+static ber_tlv_tag_t asn_DEF_AcquisElement_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_AcquisElement_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* svid at 834 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* doppler0 at 838 */
+ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* addionalDoppler at 839 */
+ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* codePhase at 840 */
+ { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* intCodePhase at 841 */
+ { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* gpsBitNumber at 842 */
+ { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* codePhaseSearchWindow at 843 */
+ { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* addionalAngle at 844 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_AcquisElement_specs_1 = {
+ sizeof(struct AcquisElement),
+ offsetof(struct AcquisElement, _asn_ctx),
+ asn_MAP_AcquisElement_tag2el_1,
+ 8, /* Count of tags in the map */
+ asn_MAP_AcquisElement_oms_1, /* Optional members */
+ 2, 0, /* Root/Additions */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_AcquisElement = {
+ "AcquisElement",
+ "AcquisElement",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_AcquisElement_tags_1,
+ sizeof(asn_DEF_AcquisElement_tags_1)
+ /sizeof(asn_DEF_AcquisElement_tags_1[0]), /* 1 */
+ asn_DEF_AcquisElement_tags_1, /* Same as above */
+ sizeof(asn_DEF_AcquisElement_tags_1)
+ /sizeof(asn_DEF_AcquisElement_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_AcquisElement_1,
+ 8, /* Elements count */
+ &asn_SPC_AcquisElement_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/AcquisElement.h b/src/core/libs/supl/asn-rrlp/AcquisElement.h
new file mode 100644
index 000000000..cf5b31e54
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/AcquisElement.h
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _AcquisElement_H_
+#define _AcquisElement_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "SatelliteID.h"
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct AddionalDopplerFields;
+struct AddionalAngleFields;
+
+/* AcquisElement */
+typedef struct AcquisElement {
+ SatelliteID_t svid;
+ long doppler0;
+ struct AddionalDopplerFields *addionalDoppler /* OPTIONAL */;
+ long codePhase;
+ long intCodePhase;
+ long gpsBitNumber;
+ long codePhaseSearchWindow;
+ struct AddionalAngleFields *addionalAngle /* OPTIONAL */;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} AcquisElement_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_AcquisElement;
+
+#ifdef __cplusplus
+}
+#endif
+
+/* Referred external types */
+#include "AddionalDopplerFields.h"
+#include "AddionalAngleFields.h"
+
+#endif /* _AcquisElement_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/AddionalAngleFields.c b/src/core/libs/supl/asn-rrlp/AddionalAngleFields.c
new file mode 100644
index 000000000..5de86fe61
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/AddionalAngleFields.c
@@ -0,0 +1,129 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "AddionalAngleFields.h"
+
+static int
+memb_azimuth_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 31)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_elevation_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 7)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_azimuth_constr_2 = {
+ { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_elevation_constr_3 = {
+ { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_AddionalAngleFields_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct AddionalAngleFields, azimuth),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_azimuth_constraint_1,
+ &asn_PER_memb_azimuth_constr_2,
+ 0,
+ "azimuth"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct AddionalAngleFields, elevation),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_elevation_constraint_1,
+ &asn_PER_memb_elevation_constr_3,
+ 0,
+ "elevation"
+ },
+};
+static ber_tlv_tag_t asn_DEF_AddionalAngleFields_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_AddionalAngleFields_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* azimuth at 858 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* elevation at 860 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_AddionalAngleFields_specs_1 = {
+ sizeof(struct AddionalAngleFields),
+ offsetof(struct AddionalAngleFields, _asn_ctx),
+ asn_MAP_AddionalAngleFields_tag2el_1,
+ 2, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_AddionalAngleFields = {
+ "AddionalAngleFields",
+ "AddionalAngleFields",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_AddionalAngleFields_tags_1,
+ sizeof(asn_DEF_AddionalAngleFields_tags_1)
+ /sizeof(asn_DEF_AddionalAngleFields_tags_1[0]), /* 1 */
+ asn_DEF_AddionalAngleFields_tags_1, /* Same as above */
+ sizeof(asn_DEF_AddionalAngleFields_tags_1)
+ /sizeof(asn_DEF_AddionalAngleFields_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_AddionalAngleFields_1,
+ 2, /* Elements count */
+ &asn_SPC_AddionalAngleFields_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/AddionalAngleFields.h b/src/core/libs/supl/asn-rrlp/AddionalAngleFields.h
new file mode 100644
index 000000000..896e4d219
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/AddionalAngleFields.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _AddionalAngleFields_H_
+#define _AddionalAngleFields_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* AddionalAngleFields */
+typedef struct AddionalAngleFields {
+ long azimuth;
+ long elevation;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} AddionalAngleFields_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_AddionalAngleFields;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AddionalAngleFields_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/AddionalDopplerFields.c b/src/core/libs/supl/asn-rrlp/AddionalDopplerFields.c
new file mode 100644
index 000000000..4b0b58a30
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/AddionalDopplerFields.c
@@ -0,0 +1,129 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "AddionalDopplerFields.h"
+
+static int
+memb_doppler1_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 63)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_dopplerUncertainty_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 7)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_doppler1_constr_2 = {
+ { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_dopplerUncertainty_constr_3 = {
+ { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_AddionalDopplerFields_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct AddionalDopplerFields, doppler1),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_doppler1_constraint_1,
+ &asn_PER_memb_doppler1_constr_2,
+ 0,
+ "doppler1"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct AddionalDopplerFields, dopplerUncertainty),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_dopplerUncertainty_constraint_1,
+ &asn_PER_memb_dopplerUncertainty_constr_3,
+ 0,
+ "dopplerUncertainty"
+ },
+};
+static ber_tlv_tag_t asn_DEF_AddionalDopplerFields_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_AddionalDopplerFields_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* doppler1 at 850 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* dopplerUncertainty at 851 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_AddionalDopplerFields_specs_1 = {
+ sizeof(struct AddionalDopplerFields),
+ offsetof(struct AddionalDopplerFields, _asn_ctx),
+ asn_MAP_AddionalDopplerFields_tag2el_1,
+ 2, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_AddionalDopplerFields = {
+ "AddionalDopplerFields",
+ "AddionalDopplerFields",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_AddionalDopplerFields_tags_1,
+ sizeof(asn_DEF_AddionalDopplerFields_tags_1)
+ /sizeof(asn_DEF_AddionalDopplerFields_tags_1[0]), /* 1 */
+ asn_DEF_AddionalDopplerFields_tags_1, /* Same as above */
+ sizeof(asn_DEF_AddionalDopplerFields_tags_1)
+ /sizeof(asn_DEF_AddionalDopplerFields_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_AddionalDopplerFields_1,
+ 2, /* Elements count */
+ &asn_SPC_AddionalDopplerFields_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/AddionalDopplerFields.h b/src/core/libs/supl/asn-rrlp/AddionalDopplerFields.h
new file mode 100644
index 000000000..73f7a8589
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/AddionalDopplerFields.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _AddionalDopplerFields_H_
+#define _AddionalDopplerFields_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* AddionalDopplerFields */
+typedef struct AddionalDopplerFields {
+ long doppler1;
+ long dopplerUncertainty;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} AddionalDopplerFields_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_AddionalDopplerFields;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AddionalDopplerFields_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/AdditionalAssistanceData.c b/src/core/libs/supl/asn-rrlp/AdditionalAssistanceData.c
new file mode 100644
index 000000000..af10b0ccc
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/AdditionalAssistanceData.c
@@ -0,0 +1,81 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "AdditionalAssistanceData.h"
+
+static asn_TYPE_member_t asn_MBR_AdditionalAssistanceData_1[] = {
+ { ATF_POINTER, 3, offsetof(struct AdditionalAssistanceData, gpsAssistanceData),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_GPSAssistanceData,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "gpsAssistanceData"
+ },
+ { ATF_POINTER, 2, offsetof(struct AdditionalAssistanceData, extensionContainer),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_ExtensionContainer,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "extensionContainer"
+ },
+ { ATF_POINTER, 1, offsetof(struct AdditionalAssistanceData, ganssAssistanceData),
+ (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_GANSSAssistanceData,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssAssistanceData"
+ },
+};
+static int asn_MAP_AdditionalAssistanceData_oms_1[] = { 0, 1, 2 };
+static ber_tlv_tag_t asn_DEF_AdditionalAssistanceData_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_AdditionalAssistanceData_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gpsAssistanceData at 520 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* extensionContainer at 521 */
+ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ganssAssistanceData at 523 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_AdditionalAssistanceData_specs_1 = {
+ sizeof(struct AdditionalAssistanceData),
+ offsetof(struct AdditionalAssistanceData, _asn_ctx),
+ asn_MAP_AdditionalAssistanceData_tag2el_1,
+ 3, /* Count of tags in the map */
+ asn_MAP_AdditionalAssistanceData_oms_1, /* Optional members */
+ 2, 1, /* Root/Additions */
+ 1, /* Start extensions */
+ 4 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_AdditionalAssistanceData = {
+ "AdditionalAssistanceData",
+ "AdditionalAssistanceData",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_AdditionalAssistanceData_tags_1,
+ sizeof(asn_DEF_AdditionalAssistanceData_tags_1)
+ /sizeof(asn_DEF_AdditionalAssistanceData_tags_1[0]), /* 1 */
+ asn_DEF_AdditionalAssistanceData_tags_1, /* Same as above */
+ sizeof(asn_DEF_AdditionalAssistanceData_tags_1)
+ /sizeof(asn_DEF_AdditionalAssistanceData_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_AdditionalAssistanceData_1,
+ 3, /* Elements count */
+ &asn_SPC_AdditionalAssistanceData_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/AdditionalAssistanceData.h b/src/core/libs/supl/asn-rrlp/AdditionalAssistanceData.h
new file mode 100644
index 000000000..44518e35b
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/AdditionalAssistanceData.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _AdditionalAssistanceData_H_
+#define _AdditionalAssistanceData_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "GPSAssistanceData.h"
+#include "ExtensionContainer.h"
+#include "GANSSAssistanceData.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* AdditionalAssistanceData */
+typedef struct AdditionalAssistanceData {
+ GPSAssistanceData_t *gpsAssistanceData /* OPTIONAL */;
+ ExtensionContainer_t *extensionContainer /* OPTIONAL */;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ GANSSAssistanceData_t *ganssAssistanceData /* OPTIONAL */;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} AdditionalAssistanceData_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_AdditionalAssistanceData;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AdditionalAssistanceData_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/AdditionalDopplerFields.c b/src/core/libs/supl/asn-rrlp/AdditionalDopplerFields.c
new file mode 100644
index 000000000..e62840073
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/AdditionalDopplerFields.c
@@ -0,0 +1,129 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "AdditionalDopplerFields.h"
+
+static int
+memb_doppler1_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 63)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_dopplerUncertainty_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 4)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_doppler1_constr_2 = {
+ { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_dopplerUncertainty_constr_3 = {
+ { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_AdditionalDopplerFields_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct AdditionalDopplerFields, doppler1),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_doppler1_constraint_1,
+ &asn_PER_memb_doppler1_constr_2,
+ 0,
+ "doppler1"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct AdditionalDopplerFields, dopplerUncertainty),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_dopplerUncertainty_constraint_1,
+ &asn_PER_memb_dopplerUncertainty_constr_3,
+ 0,
+ "dopplerUncertainty"
+ },
+};
+static ber_tlv_tag_t asn_DEF_AdditionalDopplerFields_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_AdditionalDopplerFields_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* doppler1 at 1342 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* dopplerUncertainty at 1343 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_AdditionalDopplerFields_specs_1 = {
+ sizeof(struct AdditionalDopplerFields),
+ offsetof(struct AdditionalDopplerFields, _asn_ctx),
+ asn_MAP_AdditionalDopplerFields_tag2el_1,
+ 2, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_AdditionalDopplerFields = {
+ "AdditionalDopplerFields",
+ "AdditionalDopplerFields",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_AdditionalDopplerFields_tags_1,
+ sizeof(asn_DEF_AdditionalDopplerFields_tags_1)
+ /sizeof(asn_DEF_AdditionalDopplerFields_tags_1[0]), /* 1 */
+ asn_DEF_AdditionalDopplerFields_tags_1, /* Same as above */
+ sizeof(asn_DEF_AdditionalDopplerFields_tags_1)
+ /sizeof(asn_DEF_AdditionalDopplerFields_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_AdditionalDopplerFields_1,
+ 2, /* Elements count */
+ &asn_SPC_AdditionalDopplerFields_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/AdditionalDopplerFields.h b/src/core/libs/supl/asn-rrlp/AdditionalDopplerFields.h
new file mode 100644
index 000000000..7b2fe47bd
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/AdditionalDopplerFields.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _AdditionalDopplerFields_H_
+#define _AdditionalDopplerFields_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* AdditionalDopplerFields */
+typedef struct AdditionalDopplerFields {
+ long doppler1;
+ long dopplerUncertainty;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} AdditionalDopplerFields_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_AdditionalDopplerFields;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AdditionalDopplerFields_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/AlertFlag.c b/src/core/libs/supl/asn-rrlp/AlertFlag.c
new file mode 100644
index 000000000..52eaeeadb
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/AlertFlag.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "AlertFlag.h"
+
+int
+AlertFlag_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 1)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+AlertFlag_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+ td->free_struct = asn_DEF_NativeInteger.free_struct;
+ td->print_struct = asn_DEF_NativeInteger.print_struct;
+ td->ber_decoder = asn_DEF_NativeInteger.ber_decoder;
+ td->der_encoder = asn_DEF_NativeInteger.der_encoder;
+ td->xer_decoder = asn_DEF_NativeInteger.xer_decoder;
+ td->xer_encoder = asn_DEF_NativeInteger.xer_encoder;
+ td->uper_decoder = asn_DEF_NativeInteger.uper_decoder;
+ td->uper_encoder = asn_DEF_NativeInteger.uper_encoder;
+ if(!td->per_constraints)
+ td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+ td->elements = asn_DEF_NativeInteger.elements;
+ td->elements_count = asn_DEF_NativeInteger.elements_count;
+ td->specifics = asn_DEF_NativeInteger.specifics;
+}
+
+void
+AlertFlag_free(asn_TYPE_descriptor_t *td,
+ void *struct_ptr, int contents_only) {
+ AlertFlag_1_inherit_TYPE_descriptor(td);
+ td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+AlertFlag_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+ int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+ AlertFlag_1_inherit_TYPE_descriptor(td);
+ return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+AlertFlag_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const void *bufptr, size_t size, int tag_mode) {
+ AlertFlag_1_inherit_TYPE_descriptor(td);
+ return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+AlertFlag_encode_der(asn_TYPE_descriptor_t *td,
+ void *structure, int tag_mode, ber_tlv_tag_t tag,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ AlertFlag_1_inherit_TYPE_descriptor(td);
+ return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+AlertFlag_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+ AlertFlag_1_inherit_TYPE_descriptor(td);
+ return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+AlertFlag_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+ int ilevel, enum xer_encoder_flags_e flags,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ AlertFlag_1_inherit_TYPE_descriptor(td);
+ return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+AlertFlag_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+ AlertFlag_1_inherit_TYPE_descriptor(td);
+ return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+AlertFlag_encode_uper(asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints,
+ void *structure, asn_per_outp_t *per_out) {
+ AlertFlag_1_inherit_TYPE_descriptor(td);
+ return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_per_constraints_t asn_PER_type_AlertFlag_constr_1 = {
+ { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static ber_tlv_tag_t asn_DEF_AlertFlag_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_AlertFlag = {
+ "AlertFlag",
+ "AlertFlag",
+ AlertFlag_free,
+ AlertFlag_print,
+ AlertFlag_constraint,
+ AlertFlag_decode_ber,
+ AlertFlag_encode_der,
+ AlertFlag_decode_xer,
+ AlertFlag_encode_xer,
+ AlertFlag_decode_uper,
+ AlertFlag_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_AlertFlag_tags_1,
+ sizeof(asn_DEF_AlertFlag_tags_1)
+ /sizeof(asn_DEF_AlertFlag_tags_1[0]), /* 1 */
+ asn_DEF_AlertFlag_tags_1, /* Same as above */
+ sizeof(asn_DEF_AlertFlag_tags_1)
+ /sizeof(asn_DEF_AlertFlag_tags_1[0]), /* 1 */
+ &asn_PER_type_AlertFlag_constr_1,
+ 0, 0, /* No members */
+ 0 /* No specifics */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/AlertFlag.h b/src/core/libs/supl/asn-rrlp/AlertFlag.h
new file mode 100644
index 000000000..5f74f10c4
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/AlertFlag.h
@@ -0,0 +1,40 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _AlertFlag_H_
+#define _AlertFlag_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* AlertFlag */
+typedef long AlertFlag_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_AlertFlag;
+asn_struct_free_f AlertFlag_free;
+asn_struct_print_f AlertFlag_print;
+asn_constr_check_f AlertFlag_constraint;
+ber_type_decoder_f AlertFlag_decode_ber;
+der_type_encoder_f AlertFlag_encode_der;
+xer_type_decoder_f AlertFlag_decode_xer;
+xer_type_encoder_f AlertFlag_encode_xer;
+per_type_decoder_f AlertFlag_decode_uper;
+per_type_encoder_f AlertFlag_encode_uper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AlertFlag_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/Almanac-KeplerianSet.c b/src/core/libs/supl/asn-rrlp/Almanac-KeplerianSet.c
new file mode 100644
index 000000000..c63036c97
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/Almanac-KeplerianSet.c
@@ -0,0 +1,449 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "Almanac-KeplerianSet.h"
+
+static int
+memb_kepAlmanacE_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 2047)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_kepAlmanacDeltaI_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= -1024 && value <= 1023)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_kepAlmanacOmegaDot_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= -1024 && value <= 1023)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_kepSVHealth_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 15)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_kepAlmanacAPowerHalf_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= -65536 && value <= 65535)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_kepAlmanacOmega0_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= -32768 && value <= 32767)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_kepAlmanacW_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= -32768 && value <= 32767)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_kepAlmanacM0_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= -32768 && value <= 32767)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_kepAlmanacAF0_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= -8192 && value <= 8191)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_kepAlmanacAF1_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= -1024 && value <= 1023)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_kepAlmanacE_constr_2 = {
+ { APC_CONSTRAINED, 11, 11, 0, 2047 } /* (0..2047) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_kepAlmanacDeltaI_constr_3 = {
+ { APC_CONSTRAINED, 11, 11, -1024, 1023 } /* (-1024..1023) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_kepAlmanacOmegaDot_constr_4 = {
+ { APC_CONSTRAINED, 11, 11, -1024, 1023 } /* (-1024..1023) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_kepSVHealth_constr_5 = {
+ { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_kepAlmanacAPowerHalf_constr_6 = {
+ { APC_CONSTRAINED, 17, -1, -65536, 65535 } /* (-65536..65535) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_kepAlmanacOmega0_constr_7 = {
+ { APC_CONSTRAINED, 16, 16, -32768, 32767 } /* (-32768..32767) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_kepAlmanacW_constr_8 = {
+ { APC_CONSTRAINED, 16, 16, -32768, 32767 } /* (-32768..32767) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_kepAlmanacM0_constr_9 = {
+ { APC_CONSTRAINED, 16, 16, -32768, 32767 } /* (-32768..32767) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_kepAlmanacAF0_constr_10 = {
+ { APC_CONSTRAINED, 14, 14, -8192, 8191 } /* (-8192..8191) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_kepAlmanacAF1_constr_11 = {
+ { APC_CONSTRAINED, 11, 11, -1024, 1023 } /* (-1024..1023) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Almanac_KeplerianSet_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct Almanac_KeplerianSet, kepAlmanacE),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_kepAlmanacE_constraint_1,
+ &asn_PER_memb_kepAlmanacE_constr_2,
+ 0,
+ "kepAlmanacE"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct Almanac_KeplerianSet, kepAlmanacDeltaI),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_kepAlmanacDeltaI_constraint_1,
+ &asn_PER_memb_kepAlmanacDeltaI_constr_3,
+ 0,
+ "kepAlmanacDeltaI"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct Almanac_KeplerianSet, kepAlmanacOmegaDot),
+ (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_kepAlmanacOmegaDot_constraint_1,
+ &asn_PER_memb_kepAlmanacOmegaDot_constr_4,
+ 0,
+ "kepAlmanacOmegaDot"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct Almanac_KeplerianSet, kepSVHealth),
+ (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_kepSVHealth_constraint_1,
+ &asn_PER_memb_kepSVHealth_constr_5,
+ 0,
+ "kepSVHealth"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct Almanac_KeplerianSet, kepAlmanacAPowerHalf),
+ (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_kepAlmanacAPowerHalf_constraint_1,
+ &asn_PER_memb_kepAlmanacAPowerHalf_constr_6,
+ 0,
+ "kepAlmanacAPowerHalf"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct Almanac_KeplerianSet, kepAlmanacOmega0),
+ (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_kepAlmanacOmega0_constraint_1,
+ &asn_PER_memb_kepAlmanacOmega0_constr_7,
+ 0,
+ "kepAlmanacOmega0"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct Almanac_KeplerianSet, kepAlmanacW),
+ (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_kepAlmanacW_constraint_1,
+ &asn_PER_memb_kepAlmanacW_constr_8,
+ 0,
+ "kepAlmanacW"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct Almanac_KeplerianSet, kepAlmanacM0),
+ (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_kepAlmanacM0_constraint_1,
+ &asn_PER_memb_kepAlmanacM0_constr_9,
+ 0,
+ "kepAlmanacM0"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct Almanac_KeplerianSet, kepAlmanacAF0),
+ (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_kepAlmanacAF0_constraint_1,
+ &asn_PER_memb_kepAlmanacAF0_constr_10,
+ 0,
+ "kepAlmanacAF0"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct Almanac_KeplerianSet, kepAlmanacAF1),
+ (ASN_TAG_CLASS_CONTEXT | (9 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_kepAlmanacAF1_constraint_1,
+ &asn_PER_memb_kepAlmanacAF1_constr_11,
+ 0,
+ "kepAlmanacAF1"
+ },
+};
+static ber_tlv_tag_t asn_DEF_Almanac_KeplerianSet_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_Almanac_KeplerianSet_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* kepAlmanacE at 1368 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* kepAlmanacDeltaI at 1369 */
+ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* kepAlmanacOmegaDot at 1370 */
+ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* kepSVHealth at 1371 */
+ { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* kepAlmanacAPowerHalf at 1372 */
+ { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* kepAlmanacOmega0 at 1373 */
+ { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* kepAlmanacW at 1374 */
+ { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* kepAlmanacM0 at 1375 */
+ { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* kepAlmanacAF0 at 1376 */
+ { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* kepAlmanacAF1 at 1377 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Almanac_KeplerianSet_specs_1 = {
+ sizeof(struct Almanac_KeplerianSet),
+ offsetof(struct Almanac_KeplerianSet, _asn_ctx),
+ asn_MAP_Almanac_KeplerianSet_tag2el_1,
+ 10, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_Almanac_KeplerianSet = {
+ "Almanac-KeplerianSet",
+ "Almanac-KeplerianSet",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_Almanac_KeplerianSet_tags_1,
+ sizeof(asn_DEF_Almanac_KeplerianSet_tags_1)
+ /sizeof(asn_DEF_Almanac_KeplerianSet_tags_1[0]), /* 1 */
+ asn_DEF_Almanac_KeplerianSet_tags_1, /* Same as above */
+ sizeof(asn_DEF_Almanac_KeplerianSet_tags_1)
+ /sizeof(asn_DEF_Almanac_KeplerianSet_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_Almanac_KeplerianSet_1,
+ 10, /* Elements count */
+ &asn_SPC_Almanac_KeplerianSet_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/Almanac-KeplerianSet.h b/src/core/libs/supl/asn-rrlp/Almanac-KeplerianSet.h
new file mode 100644
index 000000000..c450e6d8e
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/Almanac-KeplerianSet.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _Almanac_KeplerianSet_H_
+#define _Almanac_KeplerianSet_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Almanac-KeplerianSet */
+typedef struct Almanac_KeplerianSet {
+ long kepAlmanacE;
+ long kepAlmanacDeltaI;
+ long kepAlmanacOmegaDot;
+ long kepSVHealth;
+ long kepAlmanacAPowerHalf;
+ long kepAlmanacOmega0;
+ long kepAlmanacW;
+ long kepAlmanacM0;
+ long kepAlmanacAF0;
+ long kepAlmanacAF1;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} Almanac_KeplerianSet_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Almanac_KeplerianSet;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Almanac_KeplerianSet_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/Almanac.c b/src/core/libs/supl/asn-rrlp/Almanac.c
new file mode 100644
index 000000000..a886c36b9
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/Almanac.c
@@ -0,0 +1,99 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "Almanac.h"
+
+static int
+memb_alamanacWNa_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 255)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_alamanacWNa_constr_2 = {
+ { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Almanac_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct Almanac, alamanacWNa),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_alamanacWNa_constraint_1,
+ &asn_PER_memb_alamanacWNa_constr_2,
+ 0,
+ "alamanacWNa"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct Almanac, almanacList),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SeqOfAlmanacElement,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "almanacList"
+ },
+};
+static ber_tlv_tag_t asn_DEF_Almanac_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_Almanac_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* alamanacWNa at 789 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* almanacList at 794 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Almanac_specs_1 = {
+ sizeof(struct Almanac),
+ offsetof(struct Almanac, _asn_ctx),
+ asn_MAP_Almanac_tag2el_1,
+ 2, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_Almanac = {
+ "Almanac",
+ "Almanac",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_Almanac_tags_1,
+ sizeof(asn_DEF_Almanac_tags_1)
+ /sizeof(asn_DEF_Almanac_tags_1[0]), /* 1 */
+ asn_DEF_Almanac_tags_1, /* Same as above */
+ sizeof(asn_DEF_Almanac_tags_1)
+ /sizeof(asn_DEF_Almanac_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_Almanac_1,
+ 2, /* Elements count */
+ &asn_SPC_Almanac_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/Almanac.h b/src/core/libs/supl/asn-rrlp/Almanac.h
new file mode 100644
index 000000000..a5d81542e
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/Almanac.h
@@ -0,0 +1,39 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _Almanac_H_
+#define _Almanac_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+#include "SeqOfAlmanacElement.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Almanac */
+typedef struct Almanac {
+ long alamanacWNa;
+ SeqOfAlmanacElement_t almanacList;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} Almanac_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Almanac;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Almanac_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/AlmanacElement.c b/src/core/libs/supl/asn-rrlp/AlmanacElement.c
new file mode 100644
index 000000000..702107187
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/AlmanacElement.c
@@ -0,0 +1,499 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "AlmanacElement.h"
+
+static int
+memb_almanacE_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 65535)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_alamanacToa_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 255)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_almanacKsii_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= -32768 && value <= 32767)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_almanacOmegaDot_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= -32768 && value <= 32767)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_almanacSVhealth_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 255)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_almanacAPowerHalf_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 16777215)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_almanacOmega0_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= -8388608 && value <= 8388607)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_almanacW_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= -8388608 && value <= 8388607)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_almanacM0_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= -8388608 && value <= 8388607)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_almanacAF0_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= -1024 && value <= 1023)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_almanacAF1_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= -1024 && value <= 1023)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_almanacE_constr_3 = {
+ { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_alamanacToa_constr_4 = {
+ { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_almanacKsii_constr_5 = {
+ { APC_CONSTRAINED, 16, 16, -32768, 32767 } /* (-32768..32767) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_almanacOmegaDot_constr_6 = {
+ { APC_CONSTRAINED, 16, 16, -32768, 32767 } /* (-32768..32767) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_almanacSVhealth_constr_7 = {
+ { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_almanacAPowerHalf_constr_8 = {
+ { APC_CONSTRAINED, 24, -1, 0, 16777215 } /* (0..16777215) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_almanacOmega0_constr_9 = {
+ { APC_CONSTRAINED, 24, -1, -8388608, 8388607 } /* (-8388608..8388607) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_almanacW_constr_10 = {
+ { APC_CONSTRAINED, 24, -1, -8388608, 8388607 } /* (-8388608..8388607) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_almanacM0_constr_11 = {
+ { APC_CONSTRAINED, 24, -1, -8388608, 8388607 } /* (-8388608..8388607) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_almanacAF0_constr_12 = {
+ { APC_CONSTRAINED, 11, 11, -1024, 1023 } /* (-1024..1023) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_almanacAF1_constr_13 = {
+ { APC_CONSTRAINED, 11, 11, -1024, 1023 } /* (-1024..1023) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_AlmanacElement_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct AlmanacElement, satelliteID),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SatelliteID,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "satelliteID"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct AlmanacElement, almanacE),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_almanacE_constraint_1,
+ &asn_PER_memb_almanacE_constr_3,
+ 0,
+ "almanacE"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct AlmanacElement, alamanacToa),
+ (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_alamanacToa_constraint_1,
+ &asn_PER_memb_alamanacToa_constr_4,
+ 0,
+ "alamanacToa"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct AlmanacElement, almanacKsii),
+ (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_almanacKsii_constraint_1,
+ &asn_PER_memb_almanacKsii_constr_5,
+ 0,
+ "almanacKsii"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct AlmanacElement, almanacOmegaDot),
+ (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_almanacOmegaDot_constraint_1,
+ &asn_PER_memb_almanacOmegaDot_constr_6,
+ 0,
+ "almanacOmegaDot"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct AlmanacElement, almanacSVhealth),
+ (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_almanacSVhealth_constraint_1,
+ &asn_PER_memb_almanacSVhealth_constr_7,
+ 0,
+ "almanacSVhealth"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct AlmanacElement, almanacAPowerHalf),
+ (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_almanacAPowerHalf_constraint_1,
+ &asn_PER_memb_almanacAPowerHalf_constr_8,
+ 0,
+ "almanacAPowerHalf"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct AlmanacElement, almanacOmega0),
+ (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_almanacOmega0_constraint_1,
+ &asn_PER_memb_almanacOmega0_constr_9,
+ 0,
+ "almanacOmega0"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct AlmanacElement, almanacW),
+ (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_almanacW_constraint_1,
+ &asn_PER_memb_almanacW_constr_10,
+ 0,
+ "almanacW"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct AlmanacElement, almanacM0),
+ (ASN_TAG_CLASS_CONTEXT | (9 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_almanacM0_constraint_1,
+ &asn_PER_memb_almanacM0_constr_11,
+ 0,
+ "almanacM0"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct AlmanacElement, almanacAF0),
+ (ASN_TAG_CLASS_CONTEXT | (10 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_almanacAF0_constraint_1,
+ &asn_PER_memb_almanacAF0_constr_12,
+ 0,
+ "almanacAF0"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct AlmanacElement, almanacAF1),
+ (ASN_TAG_CLASS_CONTEXT | (11 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_almanacAF1_constraint_1,
+ &asn_PER_memb_almanacAF1_constr_13,
+ 0,
+ "almanacAF1"
+ },
+};
+static ber_tlv_tag_t asn_DEF_AlmanacElement_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_AlmanacElement_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* satelliteID at 799 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* almanacE at 800 */
+ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* alamanacToa at 801 */
+ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* almanacKsii at 802 */
+ { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* almanacOmegaDot at 803 */
+ { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* almanacSVhealth at 804 */
+ { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* almanacAPowerHalf at 805 */
+ { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* almanacOmega0 at 806 */
+ { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* almanacW at 807 */
+ { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* almanacM0 at 808 */
+ { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* almanacAF0 at 809 */
+ { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 } /* almanacAF1 at 810 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_AlmanacElement_specs_1 = {
+ sizeof(struct AlmanacElement),
+ offsetof(struct AlmanacElement, _asn_ctx),
+ asn_MAP_AlmanacElement_tag2el_1,
+ 12, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_AlmanacElement = {
+ "AlmanacElement",
+ "AlmanacElement",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_AlmanacElement_tags_1,
+ sizeof(asn_DEF_AlmanacElement_tags_1)
+ /sizeof(asn_DEF_AlmanacElement_tags_1[0]), /* 1 */
+ asn_DEF_AlmanacElement_tags_1, /* Same as above */
+ sizeof(asn_DEF_AlmanacElement_tags_1)
+ /sizeof(asn_DEF_AlmanacElement_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_AlmanacElement_1,
+ 12, /* Elements count */
+ &asn_SPC_AlmanacElement_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/AlmanacElement.h b/src/core/libs/supl/asn-rrlp/AlmanacElement.h
new file mode 100644
index 000000000..5273848e6
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/AlmanacElement.h
@@ -0,0 +1,49 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _AlmanacElement_H_
+#define _AlmanacElement_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "SatelliteID.h"
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* AlmanacElement */
+typedef struct AlmanacElement {
+ SatelliteID_t satelliteID;
+ long almanacE;
+ long alamanacToa;
+ long almanacKsii;
+ long almanacOmegaDot;
+ long almanacSVhealth;
+ long almanacAPowerHalf;
+ long almanacOmega0;
+ long almanacW;
+ long almanacM0;
+ long almanacAF0;
+ long almanacAF1;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} AlmanacElement_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_AlmanacElement;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AlmanacElement_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/AntiSpoofFlag.c b/src/core/libs/supl/asn-rrlp/AntiSpoofFlag.c
new file mode 100644
index 000000000..5b1d648b8
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/AntiSpoofFlag.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "AntiSpoofFlag.h"
+
+int
+AntiSpoofFlag_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 1)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+AntiSpoofFlag_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+ td->free_struct = asn_DEF_NativeInteger.free_struct;
+ td->print_struct = asn_DEF_NativeInteger.print_struct;
+ td->ber_decoder = asn_DEF_NativeInteger.ber_decoder;
+ td->der_encoder = asn_DEF_NativeInteger.der_encoder;
+ td->xer_decoder = asn_DEF_NativeInteger.xer_decoder;
+ td->xer_encoder = asn_DEF_NativeInteger.xer_encoder;
+ td->uper_decoder = asn_DEF_NativeInteger.uper_decoder;
+ td->uper_encoder = asn_DEF_NativeInteger.uper_encoder;
+ if(!td->per_constraints)
+ td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+ td->elements = asn_DEF_NativeInteger.elements;
+ td->elements_count = asn_DEF_NativeInteger.elements_count;
+ td->specifics = asn_DEF_NativeInteger.specifics;
+}
+
+void
+AntiSpoofFlag_free(asn_TYPE_descriptor_t *td,
+ void *struct_ptr, int contents_only) {
+ AntiSpoofFlag_1_inherit_TYPE_descriptor(td);
+ td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+AntiSpoofFlag_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+ int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+ AntiSpoofFlag_1_inherit_TYPE_descriptor(td);
+ return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+AntiSpoofFlag_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const void *bufptr, size_t size, int tag_mode) {
+ AntiSpoofFlag_1_inherit_TYPE_descriptor(td);
+ return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+AntiSpoofFlag_encode_der(asn_TYPE_descriptor_t *td,
+ void *structure, int tag_mode, ber_tlv_tag_t tag,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ AntiSpoofFlag_1_inherit_TYPE_descriptor(td);
+ return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+AntiSpoofFlag_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+ AntiSpoofFlag_1_inherit_TYPE_descriptor(td);
+ return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+AntiSpoofFlag_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+ int ilevel, enum xer_encoder_flags_e flags,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ AntiSpoofFlag_1_inherit_TYPE_descriptor(td);
+ return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+AntiSpoofFlag_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+ AntiSpoofFlag_1_inherit_TYPE_descriptor(td);
+ return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+AntiSpoofFlag_encode_uper(asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints,
+ void *structure, asn_per_outp_t *per_out) {
+ AntiSpoofFlag_1_inherit_TYPE_descriptor(td);
+ return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_per_constraints_t asn_PER_type_AntiSpoofFlag_constr_1 = {
+ { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static ber_tlv_tag_t asn_DEF_AntiSpoofFlag_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_AntiSpoofFlag = {
+ "AntiSpoofFlag",
+ "AntiSpoofFlag",
+ AntiSpoofFlag_free,
+ AntiSpoofFlag_print,
+ AntiSpoofFlag_constraint,
+ AntiSpoofFlag_decode_ber,
+ AntiSpoofFlag_encode_der,
+ AntiSpoofFlag_decode_xer,
+ AntiSpoofFlag_encode_xer,
+ AntiSpoofFlag_decode_uper,
+ AntiSpoofFlag_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_AntiSpoofFlag_tags_1,
+ sizeof(asn_DEF_AntiSpoofFlag_tags_1)
+ /sizeof(asn_DEF_AntiSpoofFlag_tags_1[0]), /* 1 */
+ asn_DEF_AntiSpoofFlag_tags_1, /* Same as above */
+ sizeof(asn_DEF_AntiSpoofFlag_tags_1)
+ /sizeof(asn_DEF_AntiSpoofFlag_tags_1[0]), /* 1 */
+ &asn_PER_type_AntiSpoofFlag_constr_1,
+ 0, 0, /* No members */
+ 0 /* No specifics */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/AntiSpoofFlag.h b/src/core/libs/supl/asn-rrlp/AntiSpoofFlag.h
new file mode 100644
index 000000000..0a08e4cb3
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/AntiSpoofFlag.h
@@ -0,0 +1,40 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _AntiSpoofFlag_H_
+#define _AntiSpoofFlag_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* AntiSpoofFlag */
+typedef long AntiSpoofFlag_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_AntiSpoofFlag;
+asn_struct_free_f AntiSpoofFlag_free;
+asn_struct_print_f AntiSpoofFlag_print;
+asn_constr_check_f AntiSpoofFlag_constraint;
+ber_type_decoder_f AntiSpoofFlag_decode_ber;
+der_type_encoder_f AntiSpoofFlag_encode_der;
+xer_type_decoder_f AntiSpoofFlag_decode_xer;
+xer_type_encoder_f AntiSpoofFlag_encode_xer;
+per_type_decoder_f AntiSpoofFlag_decode_uper;
+per_type_encoder_f AntiSpoofFlag_encode_uper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AntiSpoofFlag_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/AssistBTSData-R98-ExpOTD.c b/src/core/libs/supl/asn-rrlp/AssistBTSData-R98-ExpOTD.c
new file mode 100644
index 000000000..72cf031c8
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/AssistBTSData-R98-ExpOTD.c
@@ -0,0 +1,69 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "AssistBTSData-R98-ExpOTD.h"
+
+static asn_TYPE_member_t asn_MBR_AssistBTSData_R98_ExpOTD_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct AssistBTSData_R98_ExpOTD, expectedOTD),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_ExpectedOTD,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "expectedOTD"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct AssistBTSData_R98_ExpOTD, expOTDuncertainty),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_ExpOTDUncertainty,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "expOTDuncertainty"
+ },
+};
+static ber_tlv_tag_t asn_DEF_AssistBTSData_R98_ExpOTD_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_AssistBTSData_R98_ExpOTD_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* expectedOTD at 933 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* expOTDuncertainty at 935 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_AssistBTSData_R98_ExpOTD_specs_1 = {
+ sizeof(struct AssistBTSData_R98_ExpOTD),
+ offsetof(struct AssistBTSData_R98_ExpOTD, _asn_ctx),
+ asn_MAP_AssistBTSData_R98_ExpOTD_tag2el_1,
+ 2, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_AssistBTSData_R98_ExpOTD = {
+ "AssistBTSData-R98-ExpOTD",
+ "AssistBTSData-R98-ExpOTD",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_AssistBTSData_R98_ExpOTD_tags_1,
+ sizeof(asn_DEF_AssistBTSData_R98_ExpOTD_tags_1)
+ /sizeof(asn_DEF_AssistBTSData_R98_ExpOTD_tags_1[0]), /* 1 */
+ asn_DEF_AssistBTSData_R98_ExpOTD_tags_1, /* Same as above */
+ sizeof(asn_DEF_AssistBTSData_R98_ExpOTD_tags_1)
+ /sizeof(asn_DEF_AssistBTSData_R98_ExpOTD_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_AssistBTSData_R98_ExpOTD_1,
+ 2, /* Elements count */
+ &asn_SPC_AssistBTSData_R98_ExpOTD_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/AssistBTSData-R98-ExpOTD.h b/src/core/libs/supl/asn-rrlp/AssistBTSData-R98-ExpOTD.h
new file mode 100644
index 000000000..e39a21090
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/AssistBTSData-R98-ExpOTD.h
@@ -0,0 +1,39 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _AssistBTSData_R98_ExpOTD_H_
+#define _AssistBTSData_R98_ExpOTD_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "ExpectedOTD.h"
+#include "ExpOTDUncertainty.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* AssistBTSData-R98-ExpOTD */
+typedef struct AssistBTSData_R98_ExpOTD {
+ ExpectedOTD_t expectedOTD;
+ ExpOTDUncertainty_t expOTDuncertainty;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} AssistBTSData_R98_ExpOTD_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_AssistBTSData_R98_ExpOTD;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AssistBTSData_R98_ExpOTD_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/AssistBTSData.c b/src/core/libs/supl/asn-rrlp/AssistBTSData.c
new file mode 100644
index 000000000..9091fb0ca
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/AssistBTSData.c
@@ -0,0 +1,101 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "AssistBTSData.h"
+
+static asn_TYPE_member_t asn_MBR_AssistBTSData_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct AssistBTSData, bsic),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_BSIC,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "bsic"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct AssistBTSData, multiFrameOffset),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_MultiFrameOffset,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "multiFrameOffset"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct AssistBTSData, timeSlotScheme),
+ (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_TimeSlotScheme,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "timeSlotScheme"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct AssistBTSData, roughRTD),
+ (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_RoughRTD,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "roughRTD"
+ },
+ { ATF_POINTER, 1, offsetof(struct AssistBTSData, calcAssistanceBTS),
+ (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_CalcAssistanceBTS,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "calcAssistanceBTS"
+ },
+};
+static int asn_MAP_AssistBTSData_oms_1[] = { 4 };
+static ber_tlv_tag_t asn_DEF_AssistBTSData_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_AssistBTSData_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* bsic at 229 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* multiFrameOffset at 230 */
+ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* timeSlotScheme at 231 */
+ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* roughRTD at 232 */
+ { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* calcAssistanceBTS at 235 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_AssistBTSData_specs_1 = {
+ sizeof(struct AssistBTSData),
+ offsetof(struct AssistBTSData, _asn_ctx),
+ asn_MAP_AssistBTSData_tag2el_1,
+ 5, /* Count of tags in the map */
+ asn_MAP_AssistBTSData_oms_1, /* Optional members */
+ 1, 0, /* Root/Additions */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_AssistBTSData = {
+ "AssistBTSData",
+ "AssistBTSData",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_AssistBTSData_tags_1,
+ sizeof(asn_DEF_AssistBTSData_tags_1)
+ /sizeof(asn_DEF_AssistBTSData_tags_1[0]), /* 1 */
+ asn_DEF_AssistBTSData_tags_1, /* Same as above */
+ sizeof(asn_DEF_AssistBTSData_tags_1)
+ /sizeof(asn_DEF_AssistBTSData_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_AssistBTSData_1,
+ 5, /* Elements count */
+ &asn_SPC_AssistBTSData_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/AssistBTSData.h b/src/core/libs/supl/asn-rrlp/AssistBTSData.h
new file mode 100644
index 000000000..31372e6ab
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/AssistBTSData.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _AssistBTSData_H_
+#define _AssistBTSData_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "BSIC.h"
+#include "MultiFrameOffset.h"
+#include "TimeSlotScheme.h"
+#include "RoughRTD.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct CalcAssistanceBTS;
+
+/* AssistBTSData */
+typedef struct AssistBTSData {
+ BSIC_t bsic;
+ MultiFrameOffset_t multiFrameOffset;
+ TimeSlotScheme_t timeSlotScheme;
+ RoughRTD_t roughRTD;
+ struct CalcAssistanceBTS *calcAssistanceBTS /* OPTIONAL */;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} AssistBTSData_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_AssistBTSData;
+
+#ifdef __cplusplus
+}
+#endif
+
+/* Referred external types */
+#include "CalcAssistanceBTS.h"
+
+#endif /* _AssistBTSData_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/AssistanceData.c b/src/core/libs/supl/asn-rrlp/AssistanceData.c
new file mode 100644
index 000000000..3c2f29c5a
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/AssistanceData.c
@@ -0,0 +1,131 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "AssistanceData.h"
+
+static asn_TYPE_member_t asn_MBR_AssistanceData_1[] = {
+ { ATF_POINTER, 8, offsetof(struct AssistanceData, referenceAssistData),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_ReferenceAssistData,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "referenceAssistData"
+ },
+ { ATF_POINTER, 7, offsetof(struct AssistanceData, msrAssistData),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_MsrAssistData,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "msrAssistData"
+ },
+ { ATF_POINTER, 6, offsetof(struct AssistanceData, systemInfoAssistData),
+ (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SystemInfoAssistData,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "systemInfoAssistData"
+ },
+ { ATF_POINTER, 5, offsetof(struct AssistanceData, gps_AssistData),
+ (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_GPS_AssistData,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "gps-AssistData"
+ },
+ { ATF_POINTER, 4, offsetof(struct AssistanceData, moreAssDataToBeSent),
+ (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_MoreAssDataToBeSent,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "moreAssDataToBeSent"
+ },
+ { ATF_POINTER, 3, offsetof(struct AssistanceData, extensionContainer),
+ (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_ExtensionContainer,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "extensionContainer"
+ },
+ { ATF_POINTER, 2, offsetof(struct AssistanceData, rel98_AssistanceData_Extension),
+ (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_Rel98_AssistanceData_Extension,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "rel98-AssistanceData-Extension"
+ },
+ { ATF_POINTER, 1, offsetof(struct AssistanceData, rel5_AssistanceData_Extension),
+ (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_Rel5_AssistanceData_Extension,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "rel5-AssistanceData-Extension"
+ },
+};
+static int asn_MAP_AssistanceData_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7 };
+static ber_tlv_tag_t asn_DEF_AssistanceData_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_AssistanceData_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* referenceAssistData at 75 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* msrAssistData at 76 */
+ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* systemInfoAssistData at 77 */
+ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* gps-AssistData at 78 */
+ { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* moreAssDataToBeSent at 79 */
+ { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* extensionContainer at 83 */
+ { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* rel98-AssistanceData-Extension at 86 */
+ { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* rel5-AssistanceData-Extension at 87 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_AssistanceData_specs_1 = {
+ sizeof(struct AssistanceData),
+ offsetof(struct AssistanceData, _asn_ctx),
+ asn_MAP_AssistanceData_tag2el_1,
+ 8, /* Count of tags in the map */
+ asn_MAP_AssistanceData_oms_1, /* Optional members */
+ 6, 2, /* Root/Additions */
+ 5, /* Start extensions */
+ 9 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_AssistanceData = {
+ "AssistanceData",
+ "AssistanceData",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_AssistanceData_tags_1,
+ sizeof(asn_DEF_AssistanceData_tags_1)
+ /sizeof(asn_DEF_AssistanceData_tags_1[0]), /* 1 */
+ asn_DEF_AssistanceData_tags_1, /* Same as above */
+ sizeof(asn_DEF_AssistanceData_tags_1)
+ /sizeof(asn_DEF_AssistanceData_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_AssistanceData_1,
+ 8, /* Elements count */
+ &asn_SPC_AssistanceData_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/AssistanceData.h b/src/core/libs/supl/asn-rrlp/AssistanceData.h
new file mode 100644
index 000000000..645814709
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/AssistanceData.h
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _AssistanceData_H_
+#define _AssistanceData_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "MoreAssDataToBeSent.h"
+#include "ExtensionContainer.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ReferenceAssistData;
+struct MsrAssistData;
+struct SystemInfoAssistData;
+struct GPS_AssistData;
+struct Rel98_AssistanceData_Extension;
+struct Rel5_AssistanceData_Extension;
+
+/* AssistanceData */
+typedef struct AssistanceData {
+ struct ReferenceAssistData *referenceAssistData /* OPTIONAL */;
+ struct MsrAssistData *msrAssistData /* OPTIONAL */;
+ struct SystemInfoAssistData *systemInfoAssistData /* OPTIONAL */;
+ struct GPS_AssistData *gps_AssistData /* OPTIONAL */;
+ MoreAssDataToBeSent_t *moreAssDataToBeSent /* OPTIONAL */;
+ ExtensionContainer_t *extensionContainer /* OPTIONAL */;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ struct Rel98_AssistanceData_Extension *rel98_AssistanceData_Extension /* OPTIONAL */;
+ struct Rel5_AssistanceData_Extension *rel5_AssistanceData_Extension /* OPTIONAL */;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} AssistanceData_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_AssistanceData;
+
+#ifdef __cplusplus
+}
+#endif
+
+/* Referred external types */
+#include "ReferenceAssistData.h"
+#include "MsrAssistData.h"
+#include "SystemInfoAssistData.h"
+#include "GPS-AssistData.h"
+#include "Rel98-AssistanceData-Extension.h"
+#include "Rel5-AssistanceData-Extension.h"
+
+#endif /* _AssistanceData_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/BCCHCarrier.c b/src/core/libs/supl/asn-rrlp/BCCHCarrier.c
new file mode 100644
index 000000000..72388ca5b
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/BCCHCarrier.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "BCCHCarrier.h"
+
+int
+BCCHCarrier_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 1023)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+BCCHCarrier_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+ td->free_struct = asn_DEF_NativeInteger.free_struct;
+ td->print_struct = asn_DEF_NativeInteger.print_struct;
+ td->ber_decoder = asn_DEF_NativeInteger.ber_decoder;
+ td->der_encoder = asn_DEF_NativeInteger.der_encoder;
+ td->xer_decoder = asn_DEF_NativeInteger.xer_decoder;
+ td->xer_encoder = asn_DEF_NativeInteger.xer_encoder;
+ td->uper_decoder = asn_DEF_NativeInteger.uper_decoder;
+ td->uper_encoder = asn_DEF_NativeInteger.uper_encoder;
+ if(!td->per_constraints)
+ td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+ td->elements = asn_DEF_NativeInteger.elements;
+ td->elements_count = asn_DEF_NativeInteger.elements_count;
+ td->specifics = asn_DEF_NativeInteger.specifics;
+}
+
+void
+BCCHCarrier_free(asn_TYPE_descriptor_t *td,
+ void *struct_ptr, int contents_only) {
+ BCCHCarrier_1_inherit_TYPE_descriptor(td);
+ td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+BCCHCarrier_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+ int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+ BCCHCarrier_1_inherit_TYPE_descriptor(td);
+ return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+BCCHCarrier_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const void *bufptr, size_t size, int tag_mode) {
+ BCCHCarrier_1_inherit_TYPE_descriptor(td);
+ return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+BCCHCarrier_encode_der(asn_TYPE_descriptor_t *td,
+ void *structure, int tag_mode, ber_tlv_tag_t tag,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ BCCHCarrier_1_inherit_TYPE_descriptor(td);
+ return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+BCCHCarrier_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+ BCCHCarrier_1_inherit_TYPE_descriptor(td);
+ return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+BCCHCarrier_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+ int ilevel, enum xer_encoder_flags_e flags,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ BCCHCarrier_1_inherit_TYPE_descriptor(td);
+ return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+BCCHCarrier_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+ BCCHCarrier_1_inherit_TYPE_descriptor(td);
+ return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+BCCHCarrier_encode_uper(asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints,
+ void *structure, asn_per_outp_t *per_out) {
+ BCCHCarrier_1_inherit_TYPE_descriptor(td);
+ return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_per_constraints_t asn_PER_type_BCCHCarrier_constr_1 = {
+ { APC_CONSTRAINED, 10, 10, 0, 1023 } /* (0..1023) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static ber_tlv_tag_t asn_DEF_BCCHCarrier_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_BCCHCarrier = {
+ "BCCHCarrier",
+ "BCCHCarrier",
+ BCCHCarrier_free,
+ BCCHCarrier_print,
+ BCCHCarrier_constraint,
+ BCCHCarrier_decode_ber,
+ BCCHCarrier_encode_der,
+ BCCHCarrier_decode_xer,
+ BCCHCarrier_encode_xer,
+ BCCHCarrier_decode_uper,
+ BCCHCarrier_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_BCCHCarrier_tags_1,
+ sizeof(asn_DEF_BCCHCarrier_tags_1)
+ /sizeof(asn_DEF_BCCHCarrier_tags_1[0]), /* 1 */
+ asn_DEF_BCCHCarrier_tags_1, /* Same as above */
+ sizeof(asn_DEF_BCCHCarrier_tags_1)
+ /sizeof(asn_DEF_BCCHCarrier_tags_1[0]), /* 1 */
+ &asn_PER_type_BCCHCarrier_constr_1,
+ 0, 0, /* No members */
+ 0 /* No specifics */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/BCCHCarrier.h b/src/core/libs/supl/asn-rrlp/BCCHCarrier.h
new file mode 100644
index 000000000..5afac5098
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/BCCHCarrier.h
@@ -0,0 +1,40 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _BCCHCarrier_H_
+#define _BCCHCarrier_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* BCCHCarrier */
+typedef long BCCHCarrier_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_BCCHCarrier;
+asn_struct_free_f BCCHCarrier_free;
+asn_struct_print_f BCCHCarrier_print;
+asn_constr_check_f BCCHCarrier_constraint;
+ber_type_decoder_f BCCHCarrier_decode_ber;
+der_type_encoder_f BCCHCarrier_encode_der;
+xer_type_decoder_f BCCHCarrier_decode_xer;
+xer_type_encoder_f BCCHCarrier_encode_xer;
+per_type_decoder_f BCCHCarrier_decode_uper;
+per_type_encoder_f BCCHCarrier_encode_uper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BCCHCarrier_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/BIT_STRING.c b/src/core/libs/supl/asn-rrlp/BIT_STRING.c
new file mode 100644
index 000000000..9b9827127
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/BIT_STRING.c
@@ -0,0 +1,189 @@
+/*-
+ * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include
+#include
+#include
+
+/*
+ * BIT STRING basic type description.
+ */
+static ber_tlv_tag_t asn_DEF_BIT_STRING_tags[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+static asn_OCTET_STRING_specifics_t asn_DEF_BIT_STRING_specs = {
+ sizeof(BIT_STRING_t),
+ offsetof(BIT_STRING_t, _asn_ctx),
+ ASN_OSUBV_BIT
+};
+asn_TYPE_descriptor_t asn_DEF_BIT_STRING = {
+ "BIT STRING",
+ "BIT_STRING",
+ OCTET_STRING_free, /* Implemented in terms of OCTET STRING */
+ BIT_STRING_print,
+ BIT_STRING_constraint,
+ OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */
+ OCTET_STRING_encode_der, /* Implemented in terms of OCTET STRING */
+ OCTET_STRING_decode_xer_binary,
+ BIT_STRING_encode_xer,
+ OCTET_STRING_decode_uper, /* Unaligned PER decoder */
+ OCTET_STRING_encode_uper, /* Unaligned PER encoder */
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_BIT_STRING_tags,
+ sizeof(asn_DEF_BIT_STRING_tags)
+ / sizeof(asn_DEF_BIT_STRING_tags[0]),
+ asn_DEF_BIT_STRING_tags, /* Same as above */
+ sizeof(asn_DEF_BIT_STRING_tags)
+ / sizeof(asn_DEF_BIT_STRING_tags[0]),
+ 0, /* No PER visible constraints */
+ 0, 0, /* No members */
+ &asn_DEF_BIT_STRING_specs
+};
+
+/*
+ * BIT STRING generic constraint.
+ */
+int
+BIT_STRING_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+
+ if(st && st->buf) {
+ if((st->size == 0 && st->bits_unused)
+ || st->bits_unused < 0 || st->bits_unused > 7) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: invalid padding byte (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ return 0;
+}
+
+static char *_bit_pattern[16] = {
+ "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111",
+ "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"
+};
+
+asn_enc_rval_t
+BIT_STRING_encode_xer(asn_TYPE_descriptor_t *td, void *sptr,
+ int ilevel, enum xer_encoder_flags_e flags,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ asn_enc_rval_t er;
+ char scratch[128];
+ char *p = scratch;
+ char *scend = scratch + (sizeof(scratch) - 10);
+ const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+ int xcan = (flags & XER_F_CANONICAL);
+ uint8_t *buf;
+ uint8_t *end;
+
+ if(!st || !st->buf)
+ _ASN_ENCODE_FAILED;
+
+ er.encoded = 0;
+
+ buf = st->buf;
+ end = buf + st->size - 1; /* Last byte is special */
+
+ /*
+ * Binary dump
+ */
+ for(; buf < end; buf++) {
+ int v = *buf;
+ int nline = xcan?0:(((buf - st->buf) % 8) == 0);
+ if(p >= scend || nline) {
+ er.encoded += p - scratch;
+ _ASN_CALLBACK(scratch, p - scratch);
+ p = scratch;
+ if(nline) _i_ASN_TEXT_INDENT(1, ilevel);
+ }
+ memcpy(p + 0, _bit_pattern[v >> 4], 4);
+ memcpy(p + 4, _bit_pattern[v & 0x0f], 4);
+ p += 8;
+ }
+
+ if(!xcan && ((buf - st->buf) % 8) == 0)
+ _i_ASN_TEXT_INDENT(1, ilevel);
+ er.encoded += p - scratch;
+ _ASN_CALLBACK(scratch, p - scratch);
+ p = scratch;
+
+ if(buf == end) {
+ int v = *buf;
+ int ubits = st->bits_unused;
+ int i;
+ for(i = 7; i >= ubits; i--)
+ *p++ = (v & (1 << i)) ? 0x31 : 0x30;
+ er.encoded += p - scratch;
+ _ASN_CALLBACK(scratch, p - scratch);
+ }
+
+ if(!xcan) _i_ASN_TEXT_INDENT(1, ilevel - 1);
+
+ _ASN_ENCODED_OK(er);
+cb_failed:
+ _ASN_ENCODE_FAILED;
+}
+
+
+/*
+ * BIT STRING specific contents printer.
+ */
+int
+BIT_STRING_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ static const char *h2c = "0123456789ABCDEF";
+ char scratch[64];
+ const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+ uint8_t *buf;
+ uint8_t *end;
+ char *p = scratch;
+
+ (void)td; /* Unused argument */
+
+ if(!st || !st->buf)
+ return (cb("", 8, app_key) < 0) ? -1 : 0;
+
+ ilevel++;
+ buf = st->buf;
+ end = buf + st->size;
+
+ /*
+ * Hexadecimal dump.
+ */
+ for(; buf < end; buf++) {
+ if((buf - st->buf) % 16 == 0 && (st->size > 16)
+ && buf != st->buf) {
+ _i_INDENT(1);
+ /* Dump the string */
+ if(cb(scratch, p - scratch, app_key) < 0) return -1;
+ p = scratch;
+ }
+ *p++ = h2c[*buf >> 4];
+ *p++ = h2c[*buf & 0x0F];
+ *p++ = 0x20;
+ }
+
+ if(p > scratch) {
+ p--; /* Eat the tailing space */
+
+ if((st->size > 16)) {
+ _i_INDENT(1);
+ }
+
+ /* Dump the incomplete 16-bytes row */
+ if(cb(scratch, p - scratch, app_key) < 0)
+ return -1;
+ }
+
+ return 0;
+}
+
diff --git a/src/core/libs/supl/asn-rrlp/BIT_STRING.h b/src/core/libs/supl/asn-rrlp/BIT_STRING.h
new file mode 100644
index 000000000..732e878bc
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/BIT_STRING.h
@@ -0,0 +1,33 @@
+/*-
+ * Copyright (c) 2003 Lev Walkin . All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef _BIT_STRING_H_
+#define _BIT_STRING_H_
+
+#include /* Some help from OCTET STRING */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct BIT_STRING_s {
+ uint8_t *buf; /* BIT STRING body */
+ int size; /* Size of the above buffer */
+
+ int bits_unused;/* Unused trailing bits in the last octet (0..7) */
+
+ asn_struct_ctx_t _asn_ctx; /* Parsing across buffer boundaries */
+} BIT_STRING_t;
+
+extern asn_TYPE_descriptor_t asn_DEF_BIT_STRING;
+
+asn_struct_print_f BIT_STRING_print; /* Human-readable output */
+asn_constr_check_f BIT_STRING_constraint;
+xer_type_encoder_f BIT_STRING_encode_xer;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BIT_STRING_H_ */
diff --git a/src/core/libs/supl/asn-rrlp/BOOLEAN.c b/src/core/libs/supl/asn-rrlp/BOOLEAN.c
new file mode 100644
index 000000000..2c2bbcf2f
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/BOOLEAN.c
@@ -0,0 +1,284 @@
+/*-
+ * Copyright (c) 2003, 2005 Lev Walkin . All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include
+#include
+#include
+
+/*
+ * BOOLEAN basic type description.
+ */
+static ber_tlv_tag_t asn_DEF_BOOLEAN_tags[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (1 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_BOOLEAN = {
+ "BOOLEAN",
+ "BOOLEAN",
+ BOOLEAN_free,
+ BOOLEAN_print,
+ asn_generic_no_constraint,
+ BOOLEAN_decode_ber,
+ BOOLEAN_encode_der,
+ BOOLEAN_decode_xer,
+ BOOLEAN_encode_xer,
+ BOOLEAN_decode_uper, /* Unaligned PER decoder */
+ BOOLEAN_encode_uper, /* Unaligned PER encoder */
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_BOOLEAN_tags,
+ sizeof(asn_DEF_BOOLEAN_tags) / sizeof(asn_DEF_BOOLEAN_tags[0]),
+ asn_DEF_BOOLEAN_tags, /* Same as above */
+ sizeof(asn_DEF_BOOLEAN_tags) / sizeof(asn_DEF_BOOLEAN_tags[0]),
+ 0, /* No PER visible constraints */
+ 0, 0, /* No members */
+ 0 /* No specifics */
+};
+
+/*
+ * Decode BOOLEAN type.
+ */
+asn_dec_rval_t
+BOOLEAN_decode_ber(asn_codec_ctx_t *opt_codec_ctx,
+ asn_TYPE_descriptor_t *td,
+ void **bool_value, const void *buf_ptr, size_t size,
+ int tag_mode) {
+ BOOLEAN_t *st = (BOOLEAN_t *)*bool_value;
+ asn_dec_rval_t rval;
+ ber_tlv_len_t length;
+ ber_tlv_len_t lidx;
+
+ if(st == NULL) {
+ st = (BOOLEAN_t *)(*bool_value = CALLOC(1, sizeof(*st)));
+ if(st == NULL) {
+ rval.code = RC_FAIL;
+ rval.consumed = 0;
+ return rval;
+ }
+ }
+
+ ASN_DEBUG("Decoding %s as BOOLEAN (tm=%d)",
+ td->name, tag_mode);
+
+ /*
+ * Check tags.
+ */
+ rval = ber_check_tags(opt_codec_ctx, td, 0, buf_ptr, size,
+ tag_mode, 0, &length, 0);
+ if(rval.code != RC_OK)
+ return rval;
+
+ ASN_DEBUG("Boolean length is %d bytes", (int)length);
+
+ buf_ptr = ((const char *)buf_ptr) + rval.consumed;
+ size -= rval.consumed;
+ if(length > (ber_tlv_len_t)size) {
+ rval.code = RC_WMORE;
+ rval.consumed = 0;
+ return rval;
+ }
+
+ /*
+ * Compute boolean value.
+ */
+ for(*st = 0, lidx = 0;
+ (lidx < length) && *st == 0; lidx++) {
+ /*
+ * Very simple approach: read bytes until the end or
+ * value is already TRUE.
+ * BOOLEAN is not supposed to contain meaningful data anyway.
+ */
+ *st |= ((const uint8_t *)buf_ptr)[lidx];
+ }
+
+ rval.code = RC_OK;
+ rval.consumed += length;
+
+ ASN_DEBUG("Took %ld/%ld bytes to encode %s, value=%d",
+ (long)rval.consumed, (long)length,
+ td->name, *st);
+
+ return rval;
+}
+
+asn_enc_rval_t
+BOOLEAN_encode_der(asn_TYPE_descriptor_t *td, void *sptr,
+ int tag_mode, ber_tlv_tag_t tag,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ asn_enc_rval_t erval;
+ BOOLEAN_t *st = (BOOLEAN_t *)sptr;
+
+ erval.encoded = der_write_tags(td, 1, tag_mode, 0, tag, cb, app_key);
+ if(erval.encoded == -1) {
+ erval.failed_type = td;
+ erval.structure_ptr = sptr;
+ return erval;
+ }
+
+ if(cb) {
+ uint8_t bool_value;
+
+ bool_value = *st ? 0xff : 0; /* 0xff mandated by DER */
+
+ if(cb(&bool_value, 1, app_key) < 0) {
+ erval.encoded = -1;
+ erval.failed_type = td;
+ erval.structure_ptr = sptr;
+ return erval;
+ }
+ }
+
+ erval.encoded += 1;
+
+ _ASN_ENCODED_OK(erval);
+}
+
+
+/*
+ * Decode the chunk of XML text encoding INTEGER.
+ */
+static enum xer_pbd_rval
+BOOLEAN__xer_body_decode(asn_TYPE_descriptor_t *td, void *sptr, const void *chunk_buf, size_t chunk_size) {
+ BOOLEAN_t *st = (BOOLEAN_t *)sptr;
+ const char *p = (const char *)chunk_buf;
+
+ (void)td;
+
+ if(chunk_size && p[0] == 0x3c /* '<' */) {
+ switch(xer_check_tag(chunk_buf, chunk_size, "false")) {
+ case XCT_BOTH:
+ /* "" */
+ *st = 0;
+ break;
+ case XCT_UNKNOWN_BO:
+ if(xer_check_tag(chunk_buf, chunk_size, "true")
+ != XCT_BOTH)
+ return XPBD_BROKEN_ENCODING;
+ /* "" */
+ *st = 1; /* Or 0xff as in DER?.. */
+ break;
+ default:
+ return XPBD_BROKEN_ENCODING;
+ }
+ return XPBD_BODY_CONSUMED;
+ } else {
+ if(xer_is_whitespace(chunk_buf, chunk_size))
+ return XPBD_NOT_BODY_IGNORE;
+ else
+ return XPBD_BROKEN_ENCODING;
+ }
+}
+
+
+asn_dec_rval_t
+BOOLEAN_decode_xer(asn_codec_ctx_t *opt_codec_ctx,
+ asn_TYPE_descriptor_t *td, void **sptr, const char *opt_mname,
+ const void *buf_ptr, size_t size) {
+
+ return xer_decode_primitive(opt_codec_ctx, td,
+ sptr, sizeof(BOOLEAN_t), opt_mname, buf_ptr, size,
+ BOOLEAN__xer_body_decode);
+}
+
+asn_enc_rval_t
+BOOLEAN_encode_xer(asn_TYPE_descriptor_t *td, void *sptr,
+ int ilevel, enum xer_encoder_flags_e flags,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ const BOOLEAN_t *st = (const BOOLEAN_t *)sptr;
+ asn_enc_rval_t er;
+
+ (void)ilevel;
+ (void)flags;
+
+ if(!st) _ASN_ENCODE_FAILED;
+
+ if(*st) {
+ _ASN_CALLBACK("", 7);
+ er.encoded = 7;
+ } else {
+ _ASN_CALLBACK("", 8);
+ er.encoded = 8;
+ }
+
+ _ASN_ENCODED_OK(er);
+cb_failed:
+ _ASN_ENCODE_FAILED;
+}
+
+int
+BOOLEAN_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ const BOOLEAN_t *st = (const BOOLEAN_t *)sptr;
+ const char *buf;
+ size_t buflen;
+
+ (void)td; /* Unused argument */
+ (void)ilevel; /* Unused argument */
+
+ if(st) {
+ if(*st) {
+ buf = "TRUE";
+ buflen = 4;
+ } else {
+ buf = "FALSE";
+ buflen = 5;
+ }
+ } else {
+ buf = "";
+ buflen = 8;
+ }
+
+ return (cb(buf, buflen, app_key) < 0) ? -1 : 0;
+}
+
+void
+BOOLEAN_free(asn_TYPE_descriptor_t *td, void *ptr, int contents_only) {
+ if(td && ptr && !contents_only) {
+ FREEMEM(ptr);
+ }
+}
+
+asn_dec_rval_t
+BOOLEAN_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) {
+ asn_dec_rval_t rv;
+ BOOLEAN_t *st = (BOOLEAN_t *)*sptr;
+
+ (void)opt_codec_ctx;
+ (void)constraints;
+
+ if(!st) {
+ st = (BOOLEAN_t *)(*sptr = MALLOC(sizeof(*st)));
+ if(!st) _ASN_DECODE_FAILED;
+ }
+
+ /*
+ * Extract a single bit
+ */
+ switch(per_get_few_bits(pd, 1)) {
+ case 1: *st = 1; break;
+ case 0: *st = 0; break;
+ case -1: default: _ASN_DECODE_STARVED;
+ }
+
+ ASN_DEBUG("%s decoded as %s", td->name, *st ? "TRUE" : "FALSE");
+
+ rv.code = RC_OK;
+ rv.consumed = 1;
+ return rv;
+}
+
+
+asn_enc_rval_t
+BOOLEAN_encode_uper(asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints, void *sptr, asn_per_outp_t *po) {
+ const BOOLEAN_t *st = (const BOOLEAN_t *)sptr;
+ asn_enc_rval_t er;
+
+ (void)constraints;
+
+ if(!st) _ASN_ENCODE_FAILED;
+
+ per_put_few_bits(po, *st ? 1 : 0, 1);
+
+ _ASN_ENCODED_OK(er);
+}
diff --git a/src/core/libs/supl/asn-rrlp/BOOLEAN.h b/src/core/libs/supl/asn-rrlp/BOOLEAN.h
new file mode 100644
index 000000000..217d0f163
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/BOOLEAN.h
@@ -0,0 +1,36 @@
+/*-
+ * Copyright (c) 2003 Lev Walkin . All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef _BOOLEAN_H_
+#define _BOOLEAN_H_
+
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * The underlying integer may contain various values, but everything
+ * non-zero is capped to 0xff by the DER encoder. The BER decoder may
+ * yield non-zero values different from 1, beware.
+ */
+typedef int BOOLEAN_t;
+
+extern asn_TYPE_descriptor_t asn_DEF_BOOLEAN;
+
+asn_struct_free_f BOOLEAN_free;
+asn_struct_print_f BOOLEAN_print;
+ber_type_decoder_f BOOLEAN_decode_ber;
+der_type_encoder_f BOOLEAN_encode_der;
+xer_type_decoder_f BOOLEAN_decode_xer;
+xer_type_encoder_f BOOLEAN_encode_xer;
+per_type_decoder_f BOOLEAN_decode_uper;
+per_type_encoder_f BOOLEAN_encode_uper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BOOLEAN_H_ */
diff --git a/src/core/libs/supl/asn-rrlp/BSIC.c b/src/core/libs/supl/asn-rrlp/BSIC.c
new file mode 100644
index 000000000..378aac7ab
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/BSIC.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "BSIC.h"
+
+int
+BSIC_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 63)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+BSIC_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+ td->free_struct = asn_DEF_NativeInteger.free_struct;
+ td->print_struct = asn_DEF_NativeInteger.print_struct;
+ td->ber_decoder = asn_DEF_NativeInteger.ber_decoder;
+ td->der_encoder = asn_DEF_NativeInteger.der_encoder;
+ td->xer_decoder = asn_DEF_NativeInteger.xer_decoder;
+ td->xer_encoder = asn_DEF_NativeInteger.xer_encoder;
+ td->uper_decoder = asn_DEF_NativeInteger.uper_decoder;
+ td->uper_encoder = asn_DEF_NativeInteger.uper_encoder;
+ if(!td->per_constraints)
+ td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+ td->elements = asn_DEF_NativeInteger.elements;
+ td->elements_count = asn_DEF_NativeInteger.elements_count;
+ td->specifics = asn_DEF_NativeInteger.specifics;
+}
+
+void
+BSIC_free(asn_TYPE_descriptor_t *td,
+ void *struct_ptr, int contents_only) {
+ BSIC_1_inherit_TYPE_descriptor(td);
+ td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+BSIC_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+ int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+ BSIC_1_inherit_TYPE_descriptor(td);
+ return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+BSIC_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const void *bufptr, size_t size, int tag_mode) {
+ BSIC_1_inherit_TYPE_descriptor(td);
+ return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+BSIC_encode_der(asn_TYPE_descriptor_t *td,
+ void *structure, int tag_mode, ber_tlv_tag_t tag,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ BSIC_1_inherit_TYPE_descriptor(td);
+ return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+BSIC_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+ BSIC_1_inherit_TYPE_descriptor(td);
+ return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+BSIC_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+ int ilevel, enum xer_encoder_flags_e flags,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ BSIC_1_inherit_TYPE_descriptor(td);
+ return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+BSIC_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+ BSIC_1_inherit_TYPE_descriptor(td);
+ return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+BSIC_encode_uper(asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints,
+ void *structure, asn_per_outp_t *per_out) {
+ BSIC_1_inherit_TYPE_descriptor(td);
+ return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_per_constraints_t asn_PER_type_BSIC_constr_1 = {
+ { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static ber_tlv_tag_t asn_DEF_BSIC_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_BSIC = {
+ "BSIC",
+ "BSIC",
+ BSIC_free,
+ BSIC_print,
+ BSIC_constraint,
+ BSIC_decode_ber,
+ BSIC_encode_der,
+ BSIC_decode_xer,
+ BSIC_encode_xer,
+ BSIC_decode_uper,
+ BSIC_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_BSIC_tags_1,
+ sizeof(asn_DEF_BSIC_tags_1)
+ /sizeof(asn_DEF_BSIC_tags_1[0]), /* 1 */
+ asn_DEF_BSIC_tags_1, /* Same as above */
+ sizeof(asn_DEF_BSIC_tags_1)
+ /sizeof(asn_DEF_BSIC_tags_1[0]), /* 1 */
+ &asn_PER_type_BSIC_constr_1,
+ 0, 0, /* No members */
+ 0 /* No specifics */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/BSIC.h b/src/core/libs/supl/asn-rrlp/BSIC.h
new file mode 100644
index 000000000..8ae54f8f0
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/BSIC.h
@@ -0,0 +1,40 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _BSIC_H_
+#define _BSIC_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* BSIC */
+typedef long BSIC_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_BSIC;
+asn_struct_free_f BSIC_free;
+asn_struct_print_f BSIC_print;
+asn_constr_check_f BSIC_constraint;
+ber_type_decoder_f BSIC_decode_ber;
+der_type_encoder_f BSIC_encode_der;
+xer_type_decoder_f BSIC_decode_xer;
+xer_type_encoder_f BSIC_encode_xer;
+per_type_decoder_f BSIC_decode_uper;
+per_type_encoder_f BSIC_encode_uper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BSIC_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/BSICAndCarrier.c b/src/core/libs/supl/asn-rrlp/BSICAndCarrier.c
new file mode 100644
index 000000000..ebd1888fe
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/BSICAndCarrier.c
@@ -0,0 +1,69 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "BSICAndCarrier.h"
+
+static asn_TYPE_member_t asn_MBR_BSICAndCarrier_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct BSICAndCarrier, carrier),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_BCCHCarrier,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "carrier"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct BSICAndCarrier, bsic),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_BSIC,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "bsic"
+ },
+};
+static ber_tlv_tag_t asn_DEF_BSICAndCarrier_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_BSICAndCarrier_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* carrier at 304 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* bsic at 306 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_BSICAndCarrier_specs_1 = {
+ sizeof(struct BSICAndCarrier),
+ offsetof(struct BSICAndCarrier, _asn_ctx),
+ asn_MAP_BSICAndCarrier_tag2el_1,
+ 2, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_BSICAndCarrier = {
+ "BSICAndCarrier",
+ "BSICAndCarrier",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_BSICAndCarrier_tags_1,
+ sizeof(asn_DEF_BSICAndCarrier_tags_1)
+ /sizeof(asn_DEF_BSICAndCarrier_tags_1[0]), /* 1 */
+ asn_DEF_BSICAndCarrier_tags_1, /* Same as above */
+ sizeof(asn_DEF_BSICAndCarrier_tags_1)
+ /sizeof(asn_DEF_BSICAndCarrier_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_BSICAndCarrier_1,
+ 2, /* Elements count */
+ &asn_SPC_BSICAndCarrier_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/BSICAndCarrier.h b/src/core/libs/supl/asn-rrlp/BSICAndCarrier.h
new file mode 100644
index 000000000..dda3b01b2
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/BSICAndCarrier.h
@@ -0,0 +1,39 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _BSICAndCarrier_H_
+#define _BSICAndCarrier_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "BCCHCarrier.h"
+#include "BSIC.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* BSICAndCarrier */
+typedef struct BSICAndCarrier {
+ BCCHCarrier_t carrier;
+ BSIC_t bsic;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} BSICAndCarrier_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_BSICAndCarrier;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BSICAndCarrier_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/BTSPosition.c b/src/core/libs/supl/asn-rrlp/BTSPosition.c
new file mode 100644
index 000000000..12d5b95b4
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/BTSPosition.c
@@ -0,0 +1,141 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "BTSPosition.h"
+
+int
+BTSPosition_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ const Ext_GeographicalInformation_t *st = (const Ext_GeographicalInformation_t *)sptr;
+ size_t size;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ size = st->size;
+
+ if((size >= 1 && size <= 20)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+/*
+ * This type is implemented using Ext_GeographicalInformation,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+BTSPosition_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+ td->free_struct = asn_DEF_Ext_GeographicalInformation.free_struct;
+ td->print_struct = asn_DEF_Ext_GeographicalInformation.print_struct;
+ td->ber_decoder = asn_DEF_Ext_GeographicalInformation.ber_decoder;
+ td->der_encoder = asn_DEF_Ext_GeographicalInformation.der_encoder;
+ td->xer_decoder = asn_DEF_Ext_GeographicalInformation.xer_decoder;
+ td->xer_encoder = asn_DEF_Ext_GeographicalInformation.xer_encoder;
+ td->uper_decoder = asn_DEF_Ext_GeographicalInformation.uper_decoder;
+ td->uper_encoder = asn_DEF_Ext_GeographicalInformation.uper_encoder;
+ if(!td->per_constraints)
+ td->per_constraints = asn_DEF_Ext_GeographicalInformation.per_constraints;
+ td->elements = asn_DEF_Ext_GeographicalInformation.elements;
+ td->elements_count = asn_DEF_Ext_GeographicalInformation.elements_count;
+ td->specifics = asn_DEF_Ext_GeographicalInformation.specifics;
+}
+
+void
+BTSPosition_free(asn_TYPE_descriptor_t *td,
+ void *struct_ptr, int contents_only) {
+ BTSPosition_1_inherit_TYPE_descriptor(td);
+ td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+BTSPosition_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+ int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+ BTSPosition_1_inherit_TYPE_descriptor(td);
+ return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+BTSPosition_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const void *bufptr, size_t size, int tag_mode) {
+ BTSPosition_1_inherit_TYPE_descriptor(td);
+ return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+BTSPosition_encode_der(asn_TYPE_descriptor_t *td,
+ void *structure, int tag_mode, ber_tlv_tag_t tag,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ BTSPosition_1_inherit_TYPE_descriptor(td);
+ return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+BTSPosition_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+ BTSPosition_1_inherit_TYPE_descriptor(td);
+ return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+BTSPosition_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+ int ilevel, enum xer_encoder_flags_e flags,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ BTSPosition_1_inherit_TYPE_descriptor(td);
+ return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+BTSPosition_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+ BTSPosition_1_inherit_TYPE_descriptor(td);
+ return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+BTSPosition_encode_uper(asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints,
+ void *structure, asn_per_outp_t *per_out) {
+ BTSPosition_1_inherit_TYPE_descriptor(td);
+ return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+static ber_tlv_tag_t asn_DEF_BTSPosition_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_BTSPosition = {
+ "BTSPosition",
+ "BTSPosition",
+ BTSPosition_free,
+ BTSPosition_print,
+ BTSPosition_constraint,
+ BTSPosition_decode_ber,
+ BTSPosition_encode_der,
+ BTSPosition_decode_xer,
+ BTSPosition_encode_xer,
+ BTSPosition_decode_uper,
+ BTSPosition_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_BTSPosition_tags_1,
+ sizeof(asn_DEF_BTSPosition_tags_1)
+ /sizeof(asn_DEF_BTSPosition_tags_1[0]), /* 1 */
+ asn_DEF_BTSPosition_tags_1, /* Same as above */
+ sizeof(asn_DEF_BTSPosition_tags_1)
+ /sizeof(asn_DEF_BTSPosition_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ 0, 0, /* No members */
+ 0 /* No specifics */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/BTSPosition.h b/src/core/libs/supl/asn-rrlp/BTSPosition.h
new file mode 100644
index 000000000..dd52ebea6
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/BTSPosition.h
@@ -0,0 +1,40 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _BTSPosition_H_
+#define _BTSPosition_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "Ext-GeographicalInformation.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* BTSPosition */
+typedef Ext_GeographicalInformation_t BTSPosition_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_BTSPosition;
+asn_struct_free_f BTSPosition_free;
+asn_struct_print_f BTSPosition_print;
+asn_constr_check_f BTSPosition_constraint;
+ber_type_decoder_f BTSPosition_decode_ber;
+der_type_encoder_f BTSPosition_encode_der;
+xer_type_decoder_f BTSPosition_decode_xer;
+xer_type_encoder_f BTSPosition_encode_xer;
+per_type_decoder_f BTSPosition_decode_uper;
+per_type_encoder_f BTSPosition_encode_uper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BTSPosition_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/BadSignalElement.c b/src/core/libs/supl/asn-rrlp/BadSignalElement.c
new file mode 100644
index 000000000..b0ff80566
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/BadSignalElement.c
@@ -0,0 +1,101 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "BadSignalElement.h"
+
+static int
+memb_badSignalID_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 3)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_badSignalID_constr_3 = {
+ { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_BadSignalElement_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct BadSignalElement, badSVID),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SVID,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "badSVID"
+ },
+ { ATF_POINTER, 1, offsetof(struct BadSignalElement, badSignalID),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_badSignalID_constraint_1,
+ &asn_PER_memb_badSignalID_constr_3,
+ 0,
+ "badSignalID"
+ },
+};
+static int asn_MAP_BadSignalElement_oms_1[] = { 1 };
+static ber_tlv_tag_t asn_DEF_BadSignalElement_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_BadSignalElement_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* badSVID at 1300 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* badSignalID at 1301 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_BadSignalElement_specs_1 = {
+ sizeof(struct BadSignalElement),
+ offsetof(struct BadSignalElement, _asn_ctx),
+ asn_MAP_BadSignalElement_tag2el_1,
+ 2, /* Count of tags in the map */
+ asn_MAP_BadSignalElement_oms_1, /* Optional members */
+ 1, 0, /* Root/Additions */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_BadSignalElement = {
+ "BadSignalElement",
+ "BadSignalElement",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_BadSignalElement_tags_1,
+ sizeof(asn_DEF_BadSignalElement_tags_1)
+ /sizeof(asn_DEF_BadSignalElement_tags_1[0]), /* 1 */
+ asn_DEF_BadSignalElement_tags_1, /* Same as above */
+ sizeof(asn_DEF_BadSignalElement_tags_1)
+ /sizeof(asn_DEF_BadSignalElement_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_BadSignalElement_1,
+ 2, /* Elements count */
+ &asn_SPC_BadSignalElement_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/BadSignalElement.h b/src/core/libs/supl/asn-rrlp/BadSignalElement.h
new file mode 100644
index 000000000..1b758e069
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/BadSignalElement.h
@@ -0,0 +1,39 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _BadSignalElement_H_
+#define _BadSignalElement_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "SVID.h"
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* BadSignalElement */
+typedef struct BadSignalElement {
+ SVID_t badSVID;
+ long *badSignalID /* OPTIONAL */;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} BadSignalElement_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_BadSignalElement;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BadSignalElement_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/BitNumber.c b/src/core/libs/supl/asn-rrlp/BitNumber.c
new file mode 100644
index 000000000..36c17f637
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/BitNumber.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "BitNumber.h"
+
+int
+BitNumber_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 156)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+BitNumber_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+ td->free_struct = asn_DEF_NativeInteger.free_struct;
+ td->print_struct = asn_DEF_NativeInteger.print_struct;
+ td->ber_decoder = asn_DEF_NativeInteger.ber_decoder;
+ td->der_encoder = asn_DEF_NativeInteger.der_encoder;
+ td->xer_decoder = asn_DEF_NativeInteger.xer_decoder;
+ td->xer_encoder = asn_DEF_NativeInteger.xer_encoder;
+ td->uper_decoder = asn_DEF_NativeInteger.uper_decoder;
+ td->uper_encoder = asn_DEF_NativeInteger.uper_encoder;
+ if(!td->per_constraints)
+ td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+ td->elements = asn_DEF_NativeInteger.elements;
+ td->elements_count = asn_DEF_NativeInteger.elements_count;
+ td->specifics = asn_DEF_NativeInteger.specifics;
+}
+
+void
+BitNumber_free(asn_TYPE_descriptor_t *td,
+ void *struct_ptr, int contents_only) {
+ BitNumber_1_inherit_TYPE_descriptor(td);
+ td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+BitNumber_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+ int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+ BitNumber_1_inherit_TYPE_descriptor(td);
+ return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+BitNumber_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const void *bufptr, size_t size, int tag_mode) {
+ BitNumber_1_inherit_TYPE_descriptor(td);
+ return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+BitNumber_encode_der(asn_TYPE_descriptor_t *td,
+ void *structure, int tag_mode, ber_tlv_tag_t tag,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ BitNumber_1_inherit_TYPE_descriptor(td);
+ return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+BitNumber_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+ BitNumber_1_inherit_TYPE_descriptor(td);
+ return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+BitNumber_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+ int ilevel, enum xer_encoder_flags_e flags,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ BitNumber_1_inherit_TYPE_descriptor(td);
+ return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+BitNumber_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+ BitNumber_1_inherit_TYPE_descriptor(td);
+ return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+BitNumber_encode_uper(asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints,
+ void *structure, asn_per_outp_t *per_out) {
+ BitNumber_1_inherit_TYPE_descriptor(td);
+ return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_per_constraints_t asn_PER_type_BitNumber_constr_1 = {
+ { APC_CONSTRAINED, 8, 8, 0, 156 } /* (0..156) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static ber_tlv_tag_t asn_DEF_BitNumber_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_BitNumber = {
+ "BitNumber",
+ "BitNumber",
+ BitNumber_free,
+ BitNumber_print,
+ BitNumber_constraint,
+ BitNumber_decode_ber,
+ BitNumber_encode_der,
+ BitNumber_decode_xer,
+ BitNumber_encode_xer,
+ BitNumber_decode_uper,
+ BitNumber_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_BitNumber_tags_1,
+ sizeof(asn_DEF_BitNumber_tags_1)
+ /sizeof(asn_DEF_BitNumber_tags_1[0]), /* 1 */
+ asn_DEF_BitNumber_tags_1, /* Same as above */
+ sizeof(asn_DEF_BitNumber_tags_1)
+ /sizeof(asn_DEF_BitNumber_tags_1[0]), /* 1 */
+ &asn_PER_type_BitNumber_constr_1,
+ 0, 0, /* No members */
+ 0 /* No specifics */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/BitNumber.h b/src/core/libs/supl/asn-rrlp/BitNumber.h
new file mode 100644
index 000000000..1584ca01e
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/BitNumber.h
@@ -0,0 +1,40 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _BitNumber_H_
+#define _BitNumber_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* BitNumber */
+typedef long BitNumber_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_BitNumber;
+asn_struct_free_f BitNumber_free;
+asn_struct_print_f BitNumber_print;
+asn_constr_check_f BitNumber_constraint;
+ber_type_decoder_f BitNumber_decode_ber;
+der_type_encoder_f BitNumber_encode_der;
+xer_type_decoder_f BitNumber_decode_xer;
+xer_type_encoder_f BitNumber_encode_xer;
+per_type_decoder_f BitNumber_decode_uper;
+per_type_encoder_f BitNumber_encode_uper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BitNumber_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/CalcAssistanceBTS.c b/src/core/libs/supl/asn-rrlp/CalcAssistanceBTS.c
new file mode 100644
index 000000000..aa6150457
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/CalcAssistanceBTS.c
@@ -0,0 +1,69 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "CalcAssistanceBTS.h"
+
+static asn_TYPE_member_t asn_MBR_CalcAssistanceBTS_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct CalcAssistanceBTS, fineRTD),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_FineRTD,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "fineRTD"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct CalcAssistanceBTS, referenceWGS84),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_ReferenceWGS84,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "referenceWGS84"
+ },
+};
+static ber_tlv_tag_t asn_DEF_CalcAssistanceBTS_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_CalcAssistanceBTS_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fineRTD at 241 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* referenceWGS84 at 243 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_CalcAssistanceBTS_specs_1 = {
+ sizeof(struct CalcAssistanceBTS),
+ offsetof(struct CalcAssistanceBTS, _asn_ctx),
+ asn_MAP_CalcAssistanceBTS_tag2el_1,
+ 2, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_CalcAssistanceBTS = {
+ "CalcAssistanceBTS",
+ "CalcAssistanceBTS",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_CalcAssistanceBTS_tags_1,
+ sizeof(asn_DEF_CalcAssistanceBTS_tags_1)
+ /sizeof(asn_DEF_CalcAssistanceBTS_tags_1[0]), /* 1 */
+ asn_DEF_CalcAssistanceBTS_tags_1, /* Same as above */
+ sizeof(asn_DEF_CalcAssistanceBTS_tags_1)
+ /sizeof(asn_DEF_CalcAssistanceBTS_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_CalcAssistanceBTS_1,
+ 2, /* Elements count */
+ &asn_SPC_CalcAssistanceBTS_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/CalcAssistanceBTS.h b/src/core/libs/supl/asn-rrlp/CalcAssistanceBTS.h
new file mode 100644
index 000000000..6c046b8c6
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/CalcAssistanceBTS.h
@@ -0,0 +1,39 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _CalcAssistanceBTS_H_
+#define _CalcAssistanceBTS_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "FineRTD.h"
+#include "ReferenceWGS84.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* CalcAssistanceBTS */
+typedef struct CalcAssistanceBTS {
+ FineRTD_t fineRTD;
+ ReferenceWGS84_t referenceWGS84;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} CalcAssistanceBTS_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CalcAssistanceBTS;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CalcAssistanceBTS_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/CellID.c b/src/core/libs/supl/asn-rrlp/CellID.c
new file mode 100644
index 000000000..a66eca167
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/CellID.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "CellID.h"
+
+int
+CellID_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 65535)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+CellID_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+ td->free_struct = asn_DEF_NativeInteger.free_struct;
+ td->print_struct = asn_DEF_NativeInteger.print_struct;
+ td->ber_decoder = asn_DEF_NativeInteger.ber_decoder;
+ td->der_encoder = asn_DEF_NativeInteger.der_encoder;
+ td->xer_decoder = asn_DEF_NativeInteger.xer_decoder;
+ td->xer_encoder = asn_DEF_NativeInteger.xer_encoder;
+ td->uper_decoder = asn_DEF_NativeInteger.uper_decoder;
+ td->uper_encoder = asn_DEF_NativeInteger.uper_encoder;
+ if(!td->per_constraints)
+ td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+ td->elements = asn_DEF_NativeInteger.elements;
+ td->elements_count = asn_DEF_NativeInteger.elements_count;
+ td->specifics = asn_DEF_NativeInteger.specifics;
+}
+
+void
+CellID_free(asn_TYPE_descriptor_t *td,
+ void *struct_ptr, int contents_only) {
+ CellID_1_inherit_TYPE_descriptor(td);
+ td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+CellID_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+ int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+ CellID_1_inherit_TYPE_descriptor(td);
+ return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+CellID_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const void *bufptr, size_t size, int tag_mode) {
+ CellID_1_inherit_TYPE_descriptor(td);
+ return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+CellID_encode_der(asn_TYPE_descriptor_t *td,
+ void *structure, int tag_mode, ber_tlv_tag_t tag,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ CellID_1_inherit_TYPE_descriptor(td);
+ return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+CellID_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+ CellID_1_inherit_TYPE_descriptor(td);
+ return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+CellID_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+ int ilevel, enum xer_encoder_flags_e flags,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ CellID_1_inherit_TYPE_descriptor(td);
+ return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+CellID_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+ CellID_1_inherit_TYPE_descriptor(td);
+ return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+CellID_encode_uper(asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints,
+ void *structure, asn_per_outp_t *per_out) {
+ CellID_1_inherit_TYPE_descriptor(td);
+ return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_per_constraints_t asn_PER_type_CellID_constr_1 = {
+ { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static ber_tlv_tag_t asn_DEF_CellID_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_CellID = {
+ "CellID",
+ "CellID",
+ CellID_free,
+ CellID_print,
+ CellID_constraint,
+ CellID_decode_ber,
+ CellID_encode_der,
+ CellID_decode_xer,
+ CellID_encode_xer,
+ CellID_decode_uper,
+ CellID_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_CellID_tags_1,
+ sizeof(asn_DEF_CellID_tags_1)
+ /sizeof(asn_DEF_CellID_tags_1[0]), /* 1 */
+ asn_DEF_CellID_tags_1, /* Same as above */
+ sizeof(asn_DEF_CellID_tags_1)
+ /sizeof(asn_DEF_CellID_tags_1[0]), /* 1 */
+ &asn_PER_type_CellID_constr_1,
+ 0, 0, /* No members */
+ 0 /* No specifics */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/CellID.h b/src/core/libs/supl/asn-rrlp/CellID.h
new file mode 100644
index 000000000..e71a1e30a
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/CellID.h
@@ -0,0 +1,40 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _CellID_H_
+#define _CellID_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* CellID */
+typedef long CellID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellID;
+asn_struct_free_f CellID_free;
+asn_struct_print_f CellID_print;
+asn_constr_check_f CellID_constraint;
+ber_type_decoder_f CellID_decode_ber;
+der_type_encoder_f CellID_encode_der;
+xer_type_decoder_f CellID_decode_xer;
+xer_type_encoder_f CellID_encode_xer;
+per_type_decoder_f CellID_decode_uper;
+per_type_encoder_f CellID_encode_uper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellID_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/CellIDAndLAC.c b/src/core/libs/supl/asn-rrlp/CellIDAndLAC.c
new file mode 100644
index 000000000..2325ee78e
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/CellIDAndLAC.c
@@ -0,0 +1,69 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "CellIDAndLAC.h"
+
+static asn_TYPE_member_t asn_MBR_CellIDAndLAC_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct CellIDAndLAC, referenceLAC),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_LAC,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "referenceLAC"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct CellIDAndLAC, referenceCI),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_CellID,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "referenceCI"
+ },
+};
+static ber_tlv_tag_t asn_DEF_CellIDAndLAC_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_CellIDAndLAC_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* referenceLAC at 313 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* referenceCI at 315 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_CellIDAndLAC_specs_1 = {
+ sizeof(struct CellIDAndLAC),
+ offsetof(struct CellIDAndLAC, _asn_ctx),
+ asn_MAP_CellIDAndLAC_tag2el_1,
+ 2, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_CellIDAndLAC = {
+ "CellIDAndLAC",
+ "CellIDAndLAC",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_CellIDAndLAC_tags_1,
+ sizeof(asn_DEF_CellIDAndLAC_tags_1)
+ /sizeof(asn_DEF_CellIDAndLAC_tags_1[0]), /* 1 */
+ asn_DEF_CellIDAndLAC_tags_1, /* Same as above */
+ sizeof(asn_DEF_CellIDAndLAC_tags_1)
+ /sizeof(asn_DEF_CellIDAndLAC_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_CellIDAndLAC_1,
+ 2, /* Elements count */
+ &asn_SPC_CellIDAndLAC_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/CellIDAndLAC.h b/src/core/libs/supl/asn-rrlp/CellIDAndLAC.h
new file mode 100644
index 000000000..e2811df15
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/CellIDAndLAC.h
@@ -0,0 +1,39 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _CellIDAndLAC_H_
+#define _CellIDAndLAC_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "LAC.h"
+#include "CellID.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* CellIDAndLAC */
+typedef struct CellIDAndLAC {
+ LAC_t referenceLAC;
+ CellID_t referenceCI;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} CellIDAndLAC_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellIDAndLAC;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CellIDAndLAC_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/ControlHeader.c b/src/core/libs/supl/asn-rrlp/ControlHeader.c
new file mode 100644
index 000000000..6d64accb4
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/ControlHeader.c
@@ -0,0 +1,141 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "ControlHeader.h"
+
+static asn_TYPE_member_t asn_MBR_ControlHeader_1[] = {
+ { ATF_POINTER, 9, offsetof(struct ControlHeader, referenceTime),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_ReferenceTime,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "referenceTime"
+ },
+ { ATF_POINTER, 8, offsetof(struct ControlHeader, refLocation),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_RefLocation,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "refLocation"
+ },
+ { ATF_POINTER, 7, offsetof(struct ControlHeader, dgpsCorrections),
+ (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_DGPSCorrections,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "dgpsCorrections"
+ },
+ { ATF_POINTER, 6, offsetof(struct ControlHeader, navigationModel),
+ (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NavigationModel,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "navigationModel"
+ },
+ { ATF_POINTER, 5, offsetof(struct ControlHeader, ionosphericModel),
+ (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_IonosphericModel,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ionosphericModel"
+ },
+ { ATF_POINTER, 4, offsetof(struct ControlHeader, utcModel),
+ (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_UTCModel,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "utcModel"
+ },
+ { ATF_POINTER, 3, offsetof(struct ControlHeader, almanac),
+ (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_Almanac,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "almanac"
+ },
+ { ATF_POINTER, 2, offsetof(struct ControlHeader, acquisAssist),
+ (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_AcquisAssist,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "acquisAssist"
+ },
+ { ATF_POINTER, 1, offsetof(struct ControlHeader, realTimeIntegrity),
+ (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SeqOf_BadSatelliteSet,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "realTimeIntegrity"
+ },
+};
+static int asn_MAP_ControlHeader_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 };
+static ber_tlv_tag_t asn_DEF_ControlHeader_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_ControlHeader_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* referenceTime at 574 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* refLocation at 575 */
+ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dgpsCorrections at 576 */
+ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* navigationModel at 577 */
+ { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* ionosphericModel at 578 */
+ { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* utcModel at 579 */
+ { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* almanac at 580 */
+ { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* acquisAssist at 581 */
+ { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* realTimeIntegrity at 582 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_ControlHeader_specs_1 = {
+ sizeof(struct ControlHeader),
+ offsetof(struct ControlHeader, _asn_ctx),
+ asn_MAP_ControlHeader_tag2el_1,
+ 9, /* Count of tags in the map */
+ asn_MAP_ControlHeader_oms_1, /* Optional members */
+ 9, 0, /* Root/Additions */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_ControlHeader = {
+ "ControlHeader",
+ "ControlHeader",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_ControlHeader_tags_1,
+ sizeof(asn_DEF_ControlHeader_tags_1)
+ /sizeof(asn_DEF_ControlHeader_tags_1[0]), /* 1 */
+ asn_DEF_ControlHeader_tags_1, /* Same as above */
+ sizeof(asn_DEF_ControlHeader_tags_1)
+ /sizeof(asn_DEF_ControlHeader_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_ControlHeader_1,
+ 9, /* Elements count */
+ &asn_SPC_ControlHeader_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/ControlHeader.h b/src/core/libs/supl/asn-rrlp/ControlHeader.h
new file mode 100644
index 000000000..3471f8a77
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/ControlHeader.h
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _ControlHeader_H_
+#define _ControlHeader_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ReferenceTime;
+struct RefLocation;
+struct DGPSCorrections;
+struct NavigationModel;
+struct IonosphericModel;
+struct UTCModel;
+struct Almanac;
+struct AcquisAssist;
+struct SeqOf_BadSatelliteSet;
+
+/* ControlHeader */
+typedef struct ControlHeader {
+ struct ReferenceTime *referenceTime /* OPTIONAL */;
+ struct RefLocation *refLocation /* OPTIONAL */;
+ struct DGPSCorrections *dgpsCorrections /* OPTIONAL */;
+ struct NavigationModel *navigationModel /* OPTIONAL */;
+ struct IonosphericModel *ionosphericModel /* OPTIONAL */;
+ struct UTCModel *utcModel /* OPTIONAL */;
+ struct Almanac *almanac /* OPTIONAL */;
+ struct AcquisAssist *acquisAssist /* OPTIONAL */;
+ struct SeqOf_BadSatelliteSet *realTimeIntegrity /* OPTIONAL */;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} ControlHeader_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ControlHeader;
+
+#ifdef __cplusplus
+}
+#endif
+
+/* Referred external types */
+#include "ReferenceTime.h"
+#include "RefLocation.h"
+#include "DGPSCorrections.h"
+#include "NavigationModel.h"
+#include "IonosphericModel.h"
+#include "UTCModel.h"
+#include "Almanac.h"
+#include "AcquisAssist.h"
+#include "SeqOf-BadSatelliteSet.h"
+
+#endif /* _ControlHeader_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/DGANSSSgnElement.c b/src/core/libs/supl/asn-rrlp/DGANSSSgnElement.c
new file mode 100644
index 000000000..96fd70a6e
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/DGANSSSgnElement.c
@@ -0,0 +1,219 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "DGANSSSgnElement.h"
+
+static int
+memb_iod_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 1023)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_udre_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 3)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_pseudoRangeCor_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= -2047 && value <= 2047)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_rangeRateCor_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= -127 && value <= 127)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_iod_constr_3 = {
+ { APC_CONSTRAINED, 10, 10, 0, 1023 } /* (0..1023) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_udre_constr_4 = {
+ { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_pseudoRangeCor_constr_5 = {
+ { APC_CONSTRAINED, 12, 12, -2047, 2047 } /* (-2047..2047) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_rangeRateCor_constr_6 = {
+ { APC_CONSTRAINED, 8, 8, -127, 127 } /* (-127..127) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_DGANSSSgnElement_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct DGANSSSgnElement, svID),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SVID,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "svID"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct DGANSSSgnElement, iod),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_iod_constraint_1,
+ &asn_PER_memb_iod_constr_3,
+ 0,
+ "iod"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct DGANSSSgnElement, udre),
+ (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_udre_constraint_1,
+ &asn_PER_memb_udre_constr_4,
+ 0,
+ "udre"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct DGANSSSgnElement, pseudoRangeCor),
+ (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_pseudoRangeCor_constraint_1,
+ &asn_PER_memb_pseudoRangeCor_constr_5,
+ 0,
+ "pseudoRangeCor"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct DGANSSSgnElement, rangeRateCor),
+ (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_rangeRateCor_constraint_1,
+ &asn_PER_memb_rangeRateCor_constr_6,
+ 0,
+ "rangeRateCor"
+ },
+};
+static ber_tlv_tag_t asn_DEF_DGANSSSgnElement_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_DGANSSSgnElement_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* svID at 1207 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* iod at 1210 */
+ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* udre at 1213 */
+ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* pseudoRangeCor at 1217 */
+ { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* rangeRateCor at 1221 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_DGANSSSgnElement_specs_1 = {
+ sizeof(struct DGANSSSgnElement),
+ offsetof(struct DGANSSSgnElement, _asn_ctx),
+ asn_MAP_DGANSSSgnElement_tag2el_1,
+ 5, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_DGANSSSgnElement = {
+ "DGANSSSgnElement",
+ "DGANSSSgnElement",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_DGANSSSgnElement_tags_1,
+ sizeof(asn_DEF_DGANSSSgnElement_tags_1)
+ /sizeof(asn_DEF_DGANSSSgnElement_tags_1[0]), /* 1 */
+ asn_DEF_DGANSSSgnElement_tags_1, /* Same as above */
+ sizeof(asn_DEF_DGANSSSgnElement_tags_1)
+ /sizeof(asn_DEF_DGANSSSgnElement_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_DGANSSSgnElement_1,
+ 5, /* Elements count */
+ &asn_SPC_DGANSSSgnElement_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/DGANSSSgnElement.h b/src/core/libs/supl/asn-rrlp/DGANSSSgnElement.h
new file mode 100644
index 000000000..0ba005e0b
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/DGANSSSgnElement.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _DGANSSSgnElement_H_
+#define _DGANSSSgnElement_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "SVID.h"
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* DGANSSSgnElement */
+typedef struct DGANSSSgnElement {
+ SVID_t svID;
+ long iod;
+ long udre;
+ long pseudoRangeCor;
+ long rangeRateCor;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} DGANSSSgnElement_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_DGANSSSgnElement;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DGANSSSgnElement_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/DGPSCorrections.c b/src/core/libs/supl/asn-rrlp/DGPSCorrections.c
new file mode 100644
index 000000000..781d41f61
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/DGPSCorrections.c
@@ -0,0 +1,139 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "DGPSCorrections.h"
+
+static int
+memb_gpsTOW_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 604799)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_status_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 7)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_gpsTOW_constr_2 = {
+ { APC_CONSTRAINED, 20, -1, 0, 604799 } /* (0..604799) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_status_constr_3 = {
+ { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_DGPSCorrections_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct DGPSCorrections, gpsTOW),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_gpsTOW_constraint_1,
+ &asn_PER_memb_gpsTOW_constr_2,
+ 0,
+ "gpsTOW"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct DGPSCorrections, status),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_status_constraint_1,
+ &asn_PER_memb_status_constr_3,
+ 0,
+ "status"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct DGPSCorrections, satList),
+ (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SeqOfSatElement,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "satList"
+ },
+};
+static ber_tlv_tag_t asn_DEF_DGPSCorrections_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_DGPSCorrections_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gpsTOW at 655 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* status at 656 */
+ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* satList at 659 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_DGPSCorrections_specs_1 = {
+ sizeof(struct DGPSCorrections),
+ offsetof(struct DGPSCorrections, _asn_ctx),
+ asn_MAP_DGPSCorrections_tag2el_1,
+ 3, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_DGPSCorrections = {
+ "DGPSCorrections",
+ "DGPSCorrections",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_DGPSCorrections_tags_1,
+ sizeof(asn_DEF_DGPSCorrections_tags_1)
+ /sizeof(asn_DEF_DGPSCorrections_tags_1[0]), /* 1 */
+ asn_DEF_DGPSCorrections_tags_1, /* Same as above */
+ sizeof(asn_DEF_DGPSCorrections_tags_1)
+ /sizeof(asn_DEF_DGPSCorrections_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_DGPSCorrections_1,
+ 3, /* Elements count */
+ &asn_SPC_DGPSCorrections_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/DGPSCorrections.h b/src/core/libs/supl/asn-rrlp/DGPSCorrections.h
new file mode 100644
index 000000000..24f0b5076
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/DGPSCorrections.h
@@ -0,0 +1,40 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _DGPSCorrections_H_
+#define _DGPSCorrections_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+#include "SeqOfSatElement.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* DGPSCorrections */
+typedef struct DGPSCorrections {
+ long gpsTOW;
+ long status;
+ SeqOfSatElement_t satList;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} DGPSCorrections_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_DGPSCorrections;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DGPSCorrections_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/ENUMERATED.c b/src/core/libs/supl/asn-rrlp/ENUMERATED.c
new file mode 100644
index 000000000..90761a2d7
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/ENUMERATED.c
@@ -0,0 +1,71 @@
+/*-
+ * Copyright (c) 2003, 2005, 2006 Lev Walkin .
+ * All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include
+#include
+#include
+#include /* Encoder and decoder of a primitive type */
+
+/*
+ * ENUMERATED basic type description.
+ */
+static ber_tlv_tag_t asn_DEF_ENUMERATED_tags[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ENUMERATED = {
+ "ENUMERATED",
+ "ENUMERATED",
+ ASN__PRIMITIVE_TYPE_free,
+ INTEGER_print, /* Implemented in terms of INTEGER */
+ asn_generic_no_constraint,
+ ber_decode_primitive,
+ INTEGER_encode_der, /* Implemented in terms of INTEGER */
+ INTEGER_decode_xer, /* This is temporary! */
+ INTEGER_encode_xer,
+ ENUMERATED_decode_uper, /* Unaligned PER decoder */
+ ENUMERATED_encode_uper, /* Unaligned PER encoder */
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_ENUMERATED_tags,
+ sizeof(asn_DEF_ENUMERATED_tags) / sizeof(asn_DEF_ENUMERATED_tags[0]),
+ asn_DEF_ENUMERATED_tags, /* Same as above */
+ sizeof(asn_DEF_ENUMERATED_tags) / sizeof(asn_DEF_ENUMERATED_tags[0]),
+ 0, /* No PER visible constraints */
+ 0, 0, /* No members */
+ 0 /* No specifics */
+};
+
+asn_dec_rval_t
+ENUMERATED_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) {
+ asn_dec_rval_t rval;
+ ENUMERATED_t *st = (ENUMERATED_t *)*sptr;
+ long value;
+ void *vptr = &value;
+
+ if(!st) {
+ st = (ENUMERATED_t *)(*sptr = CALLOC(1, sizeof(*st)));
+ if(!st) _ASN_DECODE_FAILED;
+ }
+
+ rval = NativeEnumerated_decode_uper(opt_codec_ctx, td, constraints,
+ (void **)&vptr, pd);
+ if(rval.code == RC_OK)
+ if(asn_long2INTEGER(st, value))
+ rval.code = RC_FAIL;
+ return rval;
+}
+
+asn_enc_rval_t
+ENUMERATED_encode_uper(asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints, void *sptr, asn_per_outp_t *po) {
+ ENUMERATED_t *st = (ENUMERATED_t *)sptr;
+ long value;
+
+ if(asn_INTEGER2long(st, &value))
+ _ASN_ENCODE_FAILED;
+
+ return NativeEnumerated_encode_uper(td, constraints, &value, po);
+}
+
diff --git a/src/core/libs/supl/asn-rrlp/ENUMERATED.h b/src/core/libs/supl/asn-rrlp/ENUMERATED.h
new file mode 100644
index 000000000..542dcae94
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/ENUMERATED.h
@@ -0,0 +1,25 @@
+/*-
+ * Copyright (c) 2003, 2005 Lev Walkin . All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef _ENUMERATED_H_
+#define _ENUMERATED_H_
+
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef INTEGER_t ENUMERATED_t; /* Implemented via INTEGER */
+
+extern asn_TYPE_descriptor_t asn_DEF_ENUMERATED;
+
+per_type_decoder_f ENUMERATED_decode_uper;
+per_type_encoder_f ENUMERATED_encode_uper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENUMERATED_H_ */
diff --git a/src/core/libs/supl/asn-rrlp/EOTDQuality.c b/src/core/libs/supl/asn-rrlp/EOTDQuality.c
new file mode 100644
index 000000000..17fcacfe8
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/EOTDQuality.c
@@ -0,0 +1,129 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "EOTDQuality.h"
+
+static int
+memb_nbrOfMeasurements_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 7)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_stdOfEOTD_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 31)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_nbrOfMeasurements_constr_2 = {
+ { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_stdOfEOTD_constr_3 = {
+ { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_EOTDQuality_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct EOTDQuality, nbrOfMeasurements),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_nbrOfMeasurements_constraint_1,
+ &asn_PER_memb_nbrOfMeasurements_constr_2,
+ 0,
+ "nbrOfMeasurements"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct EOTDQuality, stdOfEOTD),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_stdOfEOTD_constraint_1,
+ &asn_PER_memb_stdOfEOTD_constr_3,
+ 0,
+ "stdOfEOTD"
+ },
+};
+static ber_tlv_tag_t asn_DEF_EOTDQuality_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_EOTDQuality_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nbrOfMeasurements at 393 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* stdOfEOTD at 394 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_EOTDQuality_specs_1 = {
+ sizeof(struct EOTDQuality),
+ offsetof(struct EOTDQuality, _asn_ctx),
+ asn_MAP_EOTDQuality_tag2el_1,
+ 2, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_EOTDQuality = {
+ "EOTDQuality",
+ "EOTDQuality",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_EOTDQuality_tags_1,
+ sizeof(asn_DEF_EOTDQuality_tags_1)
+ /sizeof(asn_DEF_EOTDQuality_tags_1[0]), /* 1 */
+ asn_DEF_EOTDQuality_tags_1, /* Same as above */
+ sizeof(asn_DEF_EOTDQuality_tags_1)
+ /sizeof(asn_DEF_EOTDQuality_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_EOTDQuality_1,
+ 2, /* Elements count */
+ &asn_SPC_EOTDQuality_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/EOTDQuality.h b/src/core/libs/supl/asn-rrlp/EOTDQuality.h
new file mode 100644
index 000000000..a249955f0
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/EOTDQuality.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _EOTDQuality_H_
+#define _EOTDQuality_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* EOTDQuality */
+typedef struct EOTDQuality {
+ long nbrOfMeasurements;
+ long stdOfEOTD;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} EOTDQuality_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EOTDQuality;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EOTDQuality_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/EnvironmentCharacter.c b/src/core/libs/supl/asn-rrlp/EnvironmentCharacter.c
new file mode 100644
index 000000000..d3d05c10f
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/EnvironmentCharacter.c
@@ -0,0 +1,149 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "EnvironmentCharacter.h"
+
+int
+EnvironmentCharacter_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ /* Replace with underlying type checker */
+ td->check_constraints = asn_DEF_ENUMERATED.check_constraints;
+ return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using ENUMERATED,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+EnvironmentCharacter_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+ td->free_struct = asn_DEF_ENUMERATED.free_struct;
+ td->print_struct = asn_DEF_ENUMERATED.print_struct;
+ td->ber_decoder = asn_DEF_ENUMERATED.ber_decoder;
+ td->der_encoder = asn_DEF_ENUMERATED.der_encoder;
+ td->xer_decoder = asn_DEF_ENUMERATED.xer_decoder;
+ td->xer_encoder = asn_DEF_ENUMERATED.xer_encoder;
+ td->uper_decoder = asn_DEF_ENUMERATED.uper_decoder;
+ td->uper_encoder = asn_DEF_ENUMERATED.uper_encoder;
+ if(!td->per_constraints)
+ td->per_constraints = asn_DEF_ENUMERATED.per_constraints;
+ td->elements = asn_DEF_ENUMERATED.elements;
+ td->elements_count = asn_DEF_ENUMERATED.elements_count;
+ /* td->specifics = asn_DEF_ENUMERATED.specifics; // Defined explicitly */
+}
+
+void
+EnvironmentCharacter_free(asn_TYPE_descriptor_t *td,
+ void *struct_ptr, int contents_only) {
+ EnvironmentCharacter_1_inherit_TYPE_descriptor(td);
+ td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+EnvironmentCharacter_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+ int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+ EnvironmentCharacter_1_inherit_TYPE_descriptor(td);
+ return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+EnvironmentCharacter_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const void *bufptr, size_t size, int tag_mode) {
+ EnvironmentCharacter_1_inherit_TYPE_descriptor(td);
+ return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+EnvironmentCharacter_encode_der(asn_TYPE_descriptor_t *td,
+ void *structure, int tag_mode, ber_tlv_tag_t tag,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ EnvironmentCharacter_1_inherit_TYPE_descriptor(td);
+ return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+EnvironmentCharacter_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+ EnvironmentCharacter_1_inherit_TYPE_descriptor(td);
+ return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+EnvironmentCharacter_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+ int ilevel, enum xer_encoder_flags_e flags,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ EnvironmentCharacter_1_inherit_TYPE_descriptor(td);
+ return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+EnvironmentCharacter_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+ EnvironmentCharacter_1_inherit_TYPE_descriptor(td);
+ return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+EnvironmentCharacter_encode_uper(asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints,
+ void *structure, asn_per_outp_t *per_out) {
+ EnvironmentCharacter_1_inherit_TYPE_descriptor(td);
+ return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_per_constraints_t asn_PER_type_EnvironmentCharacter_constr_1 = {
+ { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_INTEGER_enum_map_t asn_MAP_EnvironmentCharacter_value2enum_1[] = {
+ { 0, 7, "badArea" },
+ { 1, 10, "notBadArea" },
+ { 2, 9, "mixedArea" }
+ /* This list is extensible */
+};
+static unsigned int asn_MAP_EnvironmentCharacter_enum2value_1[] = {
+ 0, /* badArea(0) */
+ 2, /* mixedArea(2) */
+ 1 /* notBadArea(1) */
+ /* This list is extensible */
+};
+static asn_INTEGER_specifics_t asn_SPC_EnvironmentCharacter_specs_1 = {
+ asn_MAP_EnvironmentCharacter_value2enum_1, /* "tag" => N; sorted by tag */
+ asn_MAP_EnvironmentCharacter_enum2value_1, /* N => "tag"; sorted by N */
+ 3, /* Number of elements in the maps */
+ 4, /* Extensions before this member */
+ 1, /* Strict enumeration */
+ 0, /* Native long size */
+ 0
+};
+static ber_tlv_tag_t asn_DEF_EnvironmentCharacter_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_EnvironmentCharacter = {
+ "EnvironmentCharacter",
+ "EnvironmentCharacter",
+ EnvironmentCharacter_free,
+ EnvironmentCharacter_print,
+ EnvironmentCharacter_constraint,
+ EnvironmentCharacter_decode_ber,
+ EnvironmentCharacter_encode_der,
+ EnvironmentCharacter_decode_xer,
+ EnvironmentCharacter_encode_xer,
+ EnvironmentCharacter_decode_uper,
+ EnvironmentCharacter_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_EnvironmentCharacter_tags_1,
+ sizeof(asn_DEF_EnvironmentCharacter_tags_1)
+ /sizeof(asn_DEF_EnvironmentCharacter_tags_1[0]), /* 1 */
+ asn_DEF_EnvironmentCharacter_tags_1, /* Same as above */
+ sizeof(asn_DEF_EnvironmentCharacter_tags_1)
+ /sizeof(asn_DEF_EnvironmentCharacter_tags_1[0]), /* 1 */
+ &asn_PER_type_EnvironmentCharacter_constr_1,
+ 0, 0, /* Defined elsewhere */
+ &asn_SPC_EnvironmentCharacter_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/EnvironmentCharacter.h b/src/core/libs/supl/asn-rrlp/EnvironmentCharacter.h
new file mode 100644
index 000000000..5a37be9c9
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/EnvironmentCharacter.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _EnvironmentCharacter_H_
+#define _EnvironmentCharacter_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum EnvironmentCharacter {
+ EnvironmentCharacter_badArea = 0,
+ EnvironmentCharacter_notBadArea = 1,
+ EnvironmentCharacter_mixedArea = 2
+ /*
+ * Enumeration is extensible
+ */
+} e_EnvironmentCharacter;
+
+/* EnvironmentCharacter */
+typedef ENUMERATED_t EnvironmentCharacter_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EnvironmentCharacter;
+asn_struct_free_f EnvironmentCharacter_free;
+asn_struct_print_f EnvironmentCharacter_print;
+asn_constr_check_f EnvironmentCharacter_constraint;
+ber_type_decoder_f EnvironmentCharacter_decode_ber;
+der_type_encoder_f EnvironmentCharacter_encode_der;
+xer_type_decoder_f EnvironmentCharacter_decode_xer;
+xer_type_encoder_f EnvironmentCharacter_encode_xer;
+per_type_decoder_f EnvironmentCharacter_decode_uper;
+per_type_encoder_f EnvironmentCharacter_encode_uper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EnvironmentCharacter_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/EphemerisSubframe1Reserved.c b/src/core/libs/supl/asn-rrlp/EphemerisSubframe1Reserved.c
new file mode 100644
index 000000000..5177a8615
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/EphemerisSubframe1Reserved.c
@@ -0,0 +1,209 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "EphemerisSubframe1Reserved.h"
+
+static int
+memb_reserved1_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 8388607)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_reserved2_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 16777215)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_reserved3_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 16777215)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_reserved4_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 65535)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_reserved1_constr_2 = {
+ { APC_CONSTRAINED, 23, -1, 0, 8388607 } /* (0..8388607) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_reserved2_constr_3 = {
+ { APC_CONSTRAINED, 24, -1, 0, 16777215 } /* (0..16777215) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_reserved3_constr_4 = {
+ { APC_CONSTRAINED, 24, -1, 0, 16777215 } /* (0..16777215) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_reserved4_constr_5 = {
+ { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_EphemerisSubframe1Reserved_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct EphemerisSubframe1Reserved, reserved1),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_reserved1_constraint_1,
+ &asn_PER_memb_reserved1_constr_2,
+ 0,
+ "reserved1"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct EphemerisSubframe1Reserved, reserved2),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_reserved2_constraint_1,
+ &asn_PER_memb_reserved2_constr_3,
+ 0,
+ "reserved2"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct EphemerisSubframe1Reserved, reserved3),
+ (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_reserved3_constraint_1,
+ &asn_PER_memb_reserved3_constr_4,
+ 0,
+ "reserved3"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct EphemerisSubframe1Reserved, reserved4),
+ (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_reserved4_constraint_1,
+ &asn_PER_memb_reserved4_constr_5,
+ 0,
+ "reserved4"
+ },
+};
+static ber_tlv_tag_t asn_DEF_EphemerisSubframe1Reserved_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_EphemerisSubframe1Reserved_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reserved1 at 755 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* reserved2 at 756 */
+ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* reserved3 at 757 */
+ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* reserved4 at 758 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_EphemerisSubframe1Reserved_specs_1 = {
+ sizeof(struct EphemerisSubframe1Reserved),
+ offsetof(struct EphemerisSubframe1Reserved, _asn_ctx),
+ asn_MAP_EphemerisSubframe1Reserved_tag2el_1,
+ 4, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_EphemerisSubframe1Reserved = {
+ "EphemerisSubframe1Reserved",
+ "EphemerisSubframe1Reserved",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_EphemerisSubframe1Reserved_tags_1,
+ sizeof(asn_DEF_EphemerisSubframe1Reserved_tags_1)
+ /sizeof(asn_DEF_EphemerisSubframe1Reserved_tags_1[0]), /* 1 */
+ asn_DEF_EphemerisSubframe1Reserved_tags_1, /* Same as above */
+ sizeof(asn_DEF_EphemerisSubframe1Reserved_tags_1)
+ /sizeof(asn_DEF_EphemerisSubframe1Reserved_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_EphemerisSubframe1Reserved_1,
+ 4, /* Elements count */
+ &asn_SPC_EphemerisSubframe1Reserved_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/EphemerisSubframe1Reserved.h b/src/core/libs/supl/asn-rrlp/EphemerisSubframe1Reserved.h
new file mode 100644
index 000000000..156c7f0f8
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/EphemerisSubframe1Reserved.h
@@ -0,0 +1,40 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _EphemerisSubframe1Reserved_H_
+#define _EphemerisSubframe1Reserved_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* EphemerisSubframe1Reserved */
+typedef struct EphemerisSubframe1Reserved {
+ long reserved1;
+ long reserved2;
+ long reserved3;
+ long reserved4;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} EphemerisSubframe1Reserved_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EphemerisSubframe1Reserved;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EphemerisSubframe1Reserved_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/ErrorCodes.c b/src/core/libs/supl/asn-rrlp/ErrorCodes.c
new file mode 100644
index 000000000..d8b61e5d2
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/ErrorCodes.c
@@ -0,0 +1,155 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "ErrorCodes.h"
+
+int
+ErrorCodes_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ /* Replace with underlying type checker */
+ td->check_constraints = asn_DEF_ENUMERATED.check_constraints;
+ return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using ENUMERATED,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+ErrorCodes_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+ td->free_struct = asn_DEF_ENUMERATED.free_struct;
+ td->print_struct = asn_DEF_ENUMERATED.print_struct;
+ td->ber_decoder = asn_DEF_ENUMERATED.ber_decoder;
+ td->der_encoder = asn_DEF_ENUMERATED.der_encoder;
+ td->xer_decoder = asn_DEF_ENUMERATED.xer_decoder;
+ td->xer_encoder = asn_DEF_ENUMERATED.xer_encoder;
+ td->uper_decoder = asn_DEF_ENUMERATED.uper_decoder;
+ td->uper_encoder = asn_DEF_ENUMERATED.uper_encoder;
+ if(!td->per_constraints)
+ td->per_constraints = asn_DEF_ENUMERATED.per_constraints;
+ td->elements = asn_DEF_ENUMERATED.elements;
+ td->elements_count = asn_DEF_ENUMERATED.elements_count;
+ /* td->specifics = asn_DEF_ENUMERATED.specifics; // Defined explicitly */
+}
+
+void
+ErrorCodes_free(asn_TYPE_descriptor_t *td,
+ void *struct_ptr, int contents_only) {
+ ErrorCodes_1_inherit_TYPE_descriptor(td);
+ td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+ErrorCodes_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+ int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+ ErrorCodes_1_inherit_TYPE_descriptor(td);
+ return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+ErrorCodes_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const void *bufptr, size_t size, int tag_mode) {
+ ErrorCodes_1_inherit_TYPE_descriptor(td);
+ return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+ErrorCodes_encode_der(asn_TYPE_descriptor_t *td,
+ void *structure, int tag_mode, ber_tlv_tag_t tag,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ ErrorCodes_1_inherit_TYPE_descriptor(td);
+ return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+ErrorCodes_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+ ErrorCodes_1_inherit_TYPE_descriptor(td);
+ return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+ErrorCodes_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+ int ilevel, enum xer_encoder_flags_e flags,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ ErrorCodes_1_inherit_TYPE_descriptor(td);
+ return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+ErrorCodes_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+ ErrorCodes_1_inherit_TYPE_descriptor(td);
+ return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+ErrorCodes_encode_uper(asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints,
+ void *structure, asn_per_outp_t *per_out) {
+ ErrorCodes_1_inherit_TYPE_descriptor(td);
+ return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_per_constraints_t asn_PER_type_ErrorCodes_constr_1 = {
+ { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_INTEGER_enum_map_t asn_MAP_ErrorCodes_value2enum_1[] = {
+ { 0, 9, "unDefined" },
+ { 1, 15, "missingComponet" },
+ { 2, 13, "incorrectData" },
+ { 3, 27, "missingIEorComponentElement" },
+ { 4, 15, "messageTooShort" },
+ { 5, 21, "unknowReferenceNumber" }
+ /* This list is extensible */
+};
+static unsigned int asn_MAP_ErrorCodes_enum2value_1[] = {
+ 2, /* incorrectData(2) */
+ 4, /* messageTooShort(4) */
+ 1, /* missingComponet(1) */
+ 3, /* missingIEorComponentElement(3) */
+ 0, /* unDefined(0) */
+ 5 /* unknowReferenceNumber(5) */
+ /* This list is extensible */
+};
+static asn_INTEGER_specifics_t asn_SPC_ErrorCodes_specs_1 = {
+ asn_MAP_ErrorCodes_value2enum_1, /* "tag" => N; sorted by tag */
+ asn_MAP_ErrorCodes_enum2value_1, /* N => "tag"; sorted by N */
+ 6, /* Number of elements in the maps */
+ 7, /* Extensions before this member */
+ 1, /* Strict enumeration */
+ 0, /* Native long size */
+ 0
+};
+static ber_tlv_tag_t asn_DEF_ErrorCodes_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ErrorCodes = {
+ "ErrorCodes",
+ "ErrorCodes",
+ ErrorCodes_free,
+ ErrorCodes_print,
+ ErrorCodes_constraint,
+ ErrorCodes_decode_ber,
+ ErrorCodes_encode_der,
+ ErrorCodes_decode_xer,
+ ErrorCodes_encode_xer,
+ ErrorCodes_decode_uper,
+ ErrorCodes_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_ErrorCodes_tags_1,
+ sizeof(asn_DEF_ErrorCodes_tags_1)
+ /sizeof(asn_DEF_ErrorCodes_tags_1[0]), /* 1 */
+ asn_DEF_ErrorCodes_tags_1, /* Same as above */
+ sizeof(asn_DEF_ErrorCodes_tags_1)
+ /sizeof(asn_DEF_ErrorCodes_tags_1[0]), /* 1 */
+ &asn_PER_type_ErrorCodes_constr_1,
+ 0, 0, /* Defined elsewhere */
+ &asn_SPC_ErrorCodes_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/ErrorCodes.h b/src/core/libs/supl/asn-rrlp/ErrorCodes.h
new file mode 100644
index 000000000..c2e1f6b4a
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/ErrorCodes.h
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _ErrorCodes_H_
+#define _ErrorCodes_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ErrorCodes {
+ ErrorCodes_unDefined = 0,
+ ErrorCodes_missingComponet = 1,
+ ErrorCodes_incorrectData = 2,
+ ErrorCodes_missingIEorComponentElement = 3,
+ ErrorCodes_messageTooShort = 4,
+ ErrorCodes_unknowReferenceNumber = 5
+ /*
+ * Enumeration is extensible
+ */
+} e_ErrorCodes;
+
+/* ErrorCodes */
+typedef ENUMERATED_t ErrorCodes_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ErrorCodes;
+asn_struct_free_f ErrorCodes_free;
+asn_struct_print_f ErrorCodes_print;
+asn_constr_check_f ErrorCodes_constraint;
+ber_type_decoder_f ErrorCodes_decode_ber;
+der_type_encoder_f ErrorCodes_encode_der;
+xer_type_decoder_f ErrorCodes_decode_xer;
+xer_type_encoder_f ErrorCodes_encode_xer;
+per_type_decoder_f ErrorCodes_decode_uper;
+per_type_encoder_f ErrorCodes_encode_uper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ErrorCodes_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/ExpOTDUncertainty.c b/src/core/libs/supl/asn-rrlp/ExpOTDUncertainty.c
new file mode 100644
index 000000000..ff557e3d1
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/ExpOTDUncertainty.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "ExpOTDUncertainty.h"
+
+int
+ExpOTDUncertainty_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 7)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+ExpOTDUncertainty_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+ td->free_struct = asn_DEF_NativeInteger.free_struct;
+ td->print_struct = asn_DEF_NativeInteger.print_struct;
+ td->ber_decoder = asn_DEF_NativeInteger.ber_decoder;
+ td->der_encoder = asn_DEF_NativeInteger.der_encoder;
+ td->xer_decoder = asn_DEF_NativeInteger.xer_decoder;
+ td->xer_encoder = asn_DEF_NativeInteger.xer_encoder;
+ td->uper_decoder = asn_DEF_NativeInteger.uper_decoder;
+ td->uper_encoder = asn_DEF_NativeInteger.uper_encoder;
+ if(!td->per_constraints)
+ td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+ td->elements = asn_DEF_NativeInteger.elements;
+ td->elements_count = asn_DEF_NativeInteger.elements_count;
+ td->specifics = asn_DEF_NativeInteger.specifics;
+}
+
+void
+ExpOTDUncertainty_free(asn_TYPE_descriptor_t *td,
+ void *struct_ptr, int contents_only) {
+ ExpOTDUncertainty_1_inherit_TYPE_descriptor(td);
+ td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+ExpOTDUncertainty_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+ int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+ ExpOTDUncertainty_1_inherit_TYPE_descriptor(td);
+ return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+ExpOTDUncertainty_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const void *bufptr, size_t size, int tag_mode) {
+ ExpOTDUncertainty_1_inherit_TYPE_descriptor(td);
+ return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+ExpOTDUncertainty_encode_der(asn_TYPE_descriptor_t *td,
+ void *structure, int tag_mode, ber_tlv_tag_t tag,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ ExpOTDUncertainty_1_inherit_TYPE_descriptor(td);
+ return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+ExpOTDUncertainty_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+ ExpOTDUncertainty_1_inherit_TYPE_descriptor(td);
+ return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+ExpOTDUncertainty_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+ int ilevel, enum xer_encoder_flags_e flags,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ ExpOTDUncertainty_1_inherit_TYPE_descriptor(td);
+ return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+ExpOTDUncertainty_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+ ExpOTDUncertainty_1_inherit_TYPE_descriptor(td);
+ return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+ExpOTDUncertainty_encode_uper(asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints,
+ void *structure, asn_per_outp_t *per_out) {
+ ExpOTDUncertainty_1_inherit_TYPE_descriptor(td);
+ return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_per_constraints_t asn_PER_type_ExpOTDUncertainty_constr_1 = {
+ { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static ber_tlv_tag_t asn_DEF_ExpOTDUncertainty_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ExpOTDUncertainty = {
+ "ExpOTDUncertainty",
+ "ExpOTDUncertainty",
+ ExpOTDUncertainty_free,
+ ExpOTDUncertainty_print,
+ ExpOTDUncertainty_constraint,
+ ExpOTDUncertainty_decode_ber,
+ ExpOTDUncertainty_encode_der,
+ ExpOTDUncertainty_decode_xer,
+ ExpOTDUncertainty_encode_xer,
+ ExpOTDUncertainty_decode_uper,
+ ExpOTDUncertainty_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_ExpOTDUncertainty_tags_1,
+ sizeof(asn_DEF_ExpOTDUncertainty_tags_1)
+ /sizeof(asn_DEF_ExpOTDUncertainty_tags_1[0]), /* 1 */
+ asn_DEF_ExpOTDUncertainty_tags_1, /* Same as above */
+ sizeof(asn_DEF_ExpOTDUncertainty_tags_1)
+ /sizeof(asn_DEF_ExpOTDUncertainty_tags_1[0]), /* 1 */
+ &asn_PER_type_ExpOTDUncertainty_constr_1,
+ 0, 0, /* No members */
+ 0 /* No specifics */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/ExpOTDUncertainty.h b/src/core/libs/supl/asn-rrlp/ExpOTDUncertainty.h
new file mode 100644
index 000000000..c35d42cc0
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/ExpOTDUncertainty.h
@@ -0,0 +1,40 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _ExpOTDUncertainty_H_
+#define _ExpOTDUncertainty_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ExpOTDUncertainty */
+typedef long ExpOTDUncertainty_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ExpOTDUncertainty;
+asn_struct_free_f ExpOTDUncertainty_free;
+asn_struct_print_f ExpOTDUncertainty_print;
+asn_constr_check_f ExpOTDUncertainty_constraint;
+ber_type_decoder_f ExpOTDUncertainty_decode_ber;
+der_type_encoder_f ExpOTDUncertainty_encode_der;
+xer_type_decoder_f ExpOTDUncertainty_decode_xer;
+xer_type_encoder_f ExpOTDUncertainty_encode_xer;
+per_type_decoder_f ExpOTDUncertainty_decode_uper;
+per_type_encoder_f ExpOTDUncertainty_encode_uper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ExpOTDUncertainty_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/ExpectedOTD.c b/src/core/libs/supl/asn-rrlp/ExpectedOTD.c
new file mode 100644
index 000000000..947c22734
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/ExpectedOTD.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "ExpectedOTD.h"
+
+int
+ExpectedOTD_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 1250)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+ExpectedOTD_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+ td->free_struct = asn_DEF_NativeInteger.free_struct;
+ td->print_struct = asn_DEF_NativeInteger.print_struct;
+ td->ber_decoder = asn_DEF_NativeInteger.ber_decoder;
+ td->der_encoder = asn_DEF_NativeInteger.der_encoder;
+ td->xer_decoder = asn_DEF_NativeInteger.xer_decoder;
+ td->xer_encoder = asn_DEF_NativeInteger.xer_encoder;
+ td->uper_decoder = asn_DEF_NativeInteger.uper_decoder;
+ td->uper_encoder = asn_DEF_NativeInteger.uper_encoder;
+ if(!td->per_constraints)
+ td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+ td->elements = asn_DEF_NativeInteger.elements;
+ td->elements_count = asn_DEF_NativeInteger.elements_count;
+ td->specifics = asn_DEF_NativeInteger.specifics;
+}
+
+void
+ExpectedOTD_free(asn_TYPE_descriptor_t *td,
+ void *struct_ptr, int contents_only) {
+ ExpectedOTD_1_inherit_TYPE_descriptor(td);
+ td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+ExpectedOTD_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+ int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+ ExpectedOTD_1_inherit_TYPE_descriptor(td);
+ return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+ExpectedOTD_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const void *bufptr, size_t size, int tag_mode) {
+ ExpectedOTD_1_inherit_TYPE_descriptor(td);
+ return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+ExpectedOTD_encode_der(asn_TYPE_descriptor_t *td,
+ void *structure, int tag_mode, ber_tlv_tag_t tag,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ ExpectedOTD_1_inherit_TYPE_descriptor(td);
+ return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+ExpectedOTD_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+ ExpectedOTD_1_inherit_TYPE_descriptor(td);
+ return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+ExpectedOTD_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+ int ilevel, enum xer_encoder_flags_e flags,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ ExpectedOTD_1_inherit_TYPE_descriptor(td);
+ return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+ExpectedOTD_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+ ExpectedOTD_1_inherit_TYPE_descriptor(td);
+ return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+ExpectedOTD_encode_uper(asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints,
+ void *structure, asn_per_outp_t *per_out) {
+ ExpectedOTD_1_inherit_TYPE_descriptor(td);
+ return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_per_constraints_t asn_PER_type_ExpectedOTD_constr_1 = {
+ { APC_CONSTRAINED, 11, 11, 0, 1250 } /* (0..1250) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static ber_tlv_tag_t asn_DEF_ExpectedOTD_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ExpectedOTD = {
+ "ExpectedOTD",
+ "ExpectedOTD",
+ ExpectedOTD_free,
+ ExpectedOTD_print,
+ ExpectedOTD_constraint,
+ ExpectedOTD_decode_ber,
+ ExpectedOTD_encode_der,
+ ExpectedOTD_decode_xer,
+ ExpectedOTD_encode_xer,
+ ExpectedOTD_decode_uper,
+ ExpectedOTD_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_ExpectedOTD_tags_1,
+ sizeof(asn_DEF_ExpectedOTD_tags_1)
+ /sizeof(asn_DEF_ExpectedOTD_tags_1[0]), /* 1 */
+ asn_DEF_ExpectedOTD_tags_1, /* Same as above */
+ sizeof(asn_DEF_ExpectedOTD_tags_1)
+ /sizeof(asn_DEF_ExpectedOTD_tags_1[0]), /* 1 */
+ &asn_PER_type_ExpectedOTD_constr_1,
+ 0, 0, /* No members */
+ 0 /* No specifics */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/ExpectedOTD.h b/src/core/libs/supl/asn-rrlp/ExpectedOTD.h
new file mode 100644
index 000000000..6f2a869e3
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/ExpectedOTD.h
@@ -0,0 +1,40 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _ExpectedOTD_H_
+#define _ExpectedOTD_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ExpectedOTD */
+typedef long ExpectedOTD_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ExpectedOTD;
+asn_struct_free_f ExpectedOTD_free;
+asn_struct_print_f ExpectedOTD_print;
+asn_constr_check_f ExpectedOTD_constraint;
+ber_type_decoder_f ExpectedOTD_decode_ber;
+der_type_encoder_f ExpectedOTD_encode_der;
+xer_type_decoder_f ExpectedOTD_decode_xer;
+xer_type_encoder_f ExpectedOTD_encode_xer;
+per_type_decoder_f ExpectedOTD_decode_uper;
+per_type_encoder_f ExpectedOTD_encode_uper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ExpectedOTD_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/Ext-GeographicalInformation.c b/src/core/libs/supl/asn-rrlp/Ext-GeographicalInformation.c
new file mode 100644
index 000000000..9df50f61d
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/Ext-GeographicalInformation.c
@@ -0,0 +1,146 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "Ext-GeographicalInformation.h"
+
+int
+Ext_GeographicalInformation_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+ size_t size;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ size = st->size;
+
+ if((size >= 1 && size <= 20)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+Ext_GeographicalInformation_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+ td->free_struct = asn_DEF_OCTET_STRING.free_struct;
+ td->print_struct = asn_DEF_OCTET_STRING.print_struct;
+ td->ber_decoder = asn_DEF_OCTET_STRING.ber_decoder;
+ td->der_encoder = asn_DEF_OCTET_STRING.der_encoder;
+ td->xer_decoder = asn_DEF_OCTET_STRING.xer_decoder;
+ td->xer_encoder = asn_DEF_OCTET_STRING.xer_encoder;
+ td->uper_decoder = asn_DEF_OCTET_STRING.uper_decoder;
+ td->uper_encoder = asn_DEF_OCTET_STRING.uper_encoder;
+ if(!td->per_constraints)
+ td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+ td->elements = asn_DEF_OCTET_STRING.elements;
+ td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+ td->specifics = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+Ext_GeographicalInformation_free(asn_TYPE_descriptor_t *td,
+ void *struct_ptr, int contents_only) {
+ Ext_GeographicalInformation_1_inherit_TYPE_descriptor(td);
+ td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+Ext_GeographicalInformation_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+ int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+ Ext_GeographicalInformation_1_inherit_TYPE_descriptor(td);
+ return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+Ext_GeographicalInformation_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const void *bufptr, size_t size, int tag_mode) {
+ Ext_GeographicalInformation_1_inherit_TYPE_descriptor(td);
+ return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+Ext_GeographicalInformation_encode_der(asn_TYPE_descriptor_t *td,
+ void *structure, int tag_mode, ber_tlv_tag_t tag,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ Ext_GeographicalInformation_1_inherit_TYPE_descriptor(td);
+ return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+Ext_GeographicalInformation_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+ Ext_GeographicalInformation_1_inherit_TYPE_descriptor(td);
+ return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+Ext_GeographicalInformation_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+ int ilevel, enum xer_encoder_flags_e flags,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ Ext_GeographicalInformation_1_inherit_TYPE_descriptor(td);
+ return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+Ext_GeographicalInformation_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+ Ext_GeographicalInformation_1_inherit_TYPE_descriptor(td);
+ return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+Ext_GeographicalInformation_encode_uper(asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints,
+ void *structure, asn_per_outp_t *per_out) {
+ Ext_GeographicalInformation_1_inherit_TYPE_descriptor(td);
+ return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_per_constraints_t asn_PER_type_Ext_GeographicalInformation_constr_1 = {
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ { APC_CONSTRAINED, 5, 5, 1, 20 } /* (SIZE(1..20)) */,
+ 0, 0 /* No PER value map */
+};
+static ber_tlv_tag_t asn_DEF_Ext_GeographicalInformation_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_Ext_GeographicalInformation = {
+ "Ext-GeographicalInformation",
+ "Ext-GeographicalInformation",
+ Ext_GeographicalInformation_free,
+ Ext_GeographicalInformation_print,
+ Ext_GeographicalInformation_constraint,
+ Ext_GeographicalInformation_decode_ber,
+ Ext_GeographicalInformation_encode_der,
+ Ext_GeographicalInformation_decode_xer,
+ Ext_GeographicalInformation_encode_xer,
+ Ext_GeographicalInformation_decode_uper,
+ Ext_GeographicalInformation_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_Ext_GeographicalInformation_tags_1,
+ sizeof(asn_DEF_Ext_GeographicalInformation_tags_1)
+ /sizeof(asn_DEF_Ext_GeographicalInformation_tags_1[0]), /* 1 */
+ asn_DEF_Ext_GeographicalInformation_tags_1, /* Same as above */
+ sizeof(asn_DEF_Ext_GeographicalInformation_tags_1)
+ /sizeof(asn_DEF_Ext_GeographicalInformation_tags_1[0]), /* 1 */
+ &asn_PER_type_Ext_GeographicalInformation_constr_1,
+ 0, 0, /* No members */
+ 0 /* No specifics */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/Ext-GeographicalInformation.h b/src/core/libs/supl/asn-rrlp/Ext-GeographicalInformation.h
new file mode 100644
index 000000000..47165fd83
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/Ext-GeographicalInformation.h
@@ -0,0 +1,40 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _Ext_GeographicalInformation_H_
+#define _Ext_GeographicalInformation_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Ext-GeographicalInformation */
+typedef OCTET_STRING_t Ext_GeographicalInformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Ext_GeographicalInformation;
+asn_struct_free_f Ext_GeographicalInformation_free;
+asn_struct_print_f Ext_GeographicalInformation_print;
+asn_constr_check_f Ext_GeographicalInformation_constraint;
+ber_type_decoder_f Ext_GeographicalInformation_decode_ber;
+der_type_encoder_f Ext_GeographicalInformation_encode_der;
+xer_type_decoder_f Ext_GeographicalInformation_decode_xer;
+xer_type_encoder_f Ext_GeographicalInformation_encode_xer;
+per_type_decoder_f Ext_GeographicalInformation_decode_uper;
+per_type_encoder_f Ext_GeographicalInformation_encode_uper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Ext_GeographicalInformation_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/Extended-reference.c b/src/core/libs/supl/asn-rrlp/Extended-reference.c
new file mode 100644
index 000000000..12ca01ebe
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/Extended-reference.c
@@ -0,0 +1,129 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "Extended-reference.h"
+
+static int
+memb_smlc_code_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 63)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_transaction_ID_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 262143)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_smlc_code_constr_2 = {
+ { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_transaction_ID_constr_3 = {
+ { APC_CONSTRAINED, 18, -1, 0, 262143 } /* (0..262143) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_Extended_reference_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct Extended_reference, smlc_code),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_smlc_code_constraint_1,
+ &asn_PER_memb_smlc_code_constr_2,
+ 0,
+ "smlc-code"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct Extended_reference, transaction_ID),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_transaction_ID_constraint_1,
+ &asn_PER_memb_transaction_ID_constr_3,
+ 0,
+ "transaction-ID"
+ },
+};
+static ber_tlv_tag_t asn_DEF_Extended_reference_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_Extended_reference_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* smlc-code at 999 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* transaction-ID at 1000 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_Extended_reference_specs_1 = {
+ sizeof(struct Extended_reference),
+ offsetof(struct Extended_reference, _asn_ctx),
+ asn_MAP_Extended_reference_tag2el_1,
+ 2, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_Extended_reference = {
+ "Extended-reference",
+ "Extended-reference",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_Extended_reference_tags_1,
+ sizeof(asn_DEF_Extended_reference_tags_1)
+ /sizeof(asn_DEF_Extended_reference_tags_1[0]), /* 1 */
+ asn_DEF_Extended_reference_tags_1, /* Same as above */
+ sizeof(asn_DEF_Extended_reference_tags_1)
+ /sizeof(asn_DEF_Extended_reference_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_Extended_reference_1,
+ 2, /* Elements count */
+ &asn_SPC_Extended_reference_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/Extended-reference.h b/src/core/libs/supl/asn-rrlp/Extended-reference.h
new file mode 100644
index 000000000..f4ea28d2c
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/Extended-reference.h
@@ -0,0 +1,38 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _Extended_reference_H_
+#define _Extended_reference_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Extended-reference */
+typedef struct Extended_reference {
+ long smlc_code;
+ long transaction_ID;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} Extended_reference_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Extended_reference;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _Extended_reference_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/ExtensionContainer.c b/src/core/libs/supl/asn-rrlp/ExtensionContainer.c
new file mode 100644
index 000000000..43295c47b
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/ExtensionContainer.c
@@ -0,0 +1,123 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "ExtensionContainer.h"
+
+int
+ExtensionContainer_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ /* Replace with underlying type checker */
+ td->check_constraints = asn_DEF_INTEGER.check_constraints;
+ return td->check_constraints(td, sptr, ctfailcb, app_key);
+}
+
+/*
+ * This type is implemented using INTEGER,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+ExtensionContainer_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+ td->free_struct = asn_DEF_INTEGER.free_struct;
+ td->print_struct = asn_DEF_INTEGER.print_struct;
+ td->ber_decoder = asn_DEF_INTEGER.ber_decoder;
+ td->der_encoder = asn_DEF_INTEGER.der_encoder;
+ td->xer_decoder = asn_DEF_INTEGER.xer_decoder;
+ td->xer_encoder = asn_DEF_INTEGER.xer_encoder;
+ td->uper_decoder = asn_DEF_INTEGER.uper_decoder;
+ td->uper_encoder = asn_DEF_INTEGER.uper_encoder;
+ if(!td->per_constraints)
+ td->per_constraints = asn_DEF_INTEGER.per_constraints;
+ td->elements = asn_DEF_INTEGER.elements;
+ td->elements_count = asn_DEF_INTEGER.elements_count;
+ td->specifics = asn_DEF_INTEGER.specifics;
+}
+
+void
+ExtensionContainer_free(asn_TYPE_descriptor_t *td,
+ void *struct_ptr, int contents_only) {
+ ExtensionContainer_1_inherit_TYPE_descriptor(td);
+ td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+ExtensionContainer_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+ int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+ ExtensionContainer_1_inherit_TYPE_descriptor(td);
+ return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+ExtensionContainer_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const void *bufptr, size_t size, int tag_mode) {
+ ExtensionContainer_1_inherit_TYPE_descriptor(td);
+ return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+ExtensionContainer_encode_der(asn_TYPE_descriptor_t *td,
+ void *structure, int tag_mode, ber_tlv_tag_t tag,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ ExtensionContainer_1_inherit_TYPE_descriptor(td);
+ return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+ExtensionContainer_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+ ExtensionContainer_1_inherit_TYPE_descriptor(td);
+ return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+ExtensionContainer_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+ int ilevel, enum xer_encoder_flags_e flags,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ ExtensionContainer_1_inherit_TYPE_descriptor(td);
+ return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+ExtensionContainer_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+ ExtensionContainer_1_inherit_TYPE_descriptor(td);
+ return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+ExtensionContainer_encode_uper(asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints,
+ void *structure, asn_per_outp_t *per_out) {
+ ExtensionContainer_1_inherit_TYPE_descriptor(td);
+ return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+static ber_tlv_tag_t asn_DEF_ExtensionContainer_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ExtensionContainer = {
+ "ExtensionContainer",
+ "ExtensionContainer",
+ ExtensionContainer_free,
+ ExtensionContainer_print,
+ ExtensionContainer_constraint,
+ ExtensionContainer_decode_ber,
+ ExtensionContainer_encode_der,
+ ExtensionContainer_decode_xer,
+ ExtensionContainer_encode_xer,
+ ExtensionContainer_decode_uper,
+ ExtensionContainer_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_ExtensionContainer_tags_1,
+ sizeof(asn_DEF_ExtensionContainer_tags_1)
+ /sizeof(asn_DEF_ExtensionContainer_tags_1[0]), /* 1 */
+ asn_DEF_ExtensionContainer_tags_1, /* Same as above */
+ sizeof(asn_DEF_ExtensionContainer_tags_1)
+ /sizeof(asn_DEF_ExtensionContainer_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ 0, 0, /* No members */
+ 0 /* No specifics */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/ExtensionContainer.h b/src/core/libs/supl/asn-rrlp/ExtensionContainer.h
new file mode 100644
index 000000000..a88437df8
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/ExtensionContainer.h
@@ -0,0 +1,40 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _ExtensionContainer_H_
+#define _ExtensionContainer_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ExtensionContainer */
+typedef INTEGER_t ExtensionContainer_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ExtensionContainer;
+asn_struct_free_f ExtensionContainer_free;
+asn_struct_print_f ExtensionContainer_print;
+asn_constr_check_f ExtensionContainer_constraint;
+ber_type_decoder_f ExtensionContainer_decode_ber;
+der_type_encoder_f ExtensionContainer_encode_der;
+xer_type_decoder_f ExtensionContainer_decode_xer;
+xer_type_encoder_f ExtensionContainer_encode_xer;
+per_type_decoder_f ExtensionContainer_decode_uper;
+per_type_encoder_f ExtensionContainer_encode_uper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ExtensionContainer_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/FineRTD.c b/src/core/libs/supl/asn-rrlp/FineRTD.c
new file mode 100644
index 000000000..6a31fa718
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/FineRTD.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "FineRTD.h"
+
+int
+FineRTD_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 255)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+FineRTD_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+ td->free_struct = asn_DEF_NativeInteger.free_struct;
+ td->print_struct = asn_DEF_NativeInteger.print_struct;
+ td->ber_decoder = asn_DEF_NativeInteger.ber_decoder;
+ td->der_encoder = asn_DEF_NativeInteger.der_encoder;
+ td->xer_decoder = asn_DEF_NativeInteger.xer_decoder;
+ td->xer_encoder = asn_DEF_NativeInteger.xer_encoder;
+ td->uper_decoder = asn_DEF_NativeInteger.uper_decoder;
+ td->uper_encoder = asn_DEF_NativeInteger.uper_encoder;
+ if(!td->per_constraints)
+ td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+ td->elements = asn_DEF_NativeInteger.elements;
+ td->elements_count = asn_DEF_NativeInteger.elements_count;
+ td->specifics = asn_DEF_NativeInteger.specifics;
+}
+
+void
+FineRTD_free(asn_TYPE_descriptor_t *td,
+ void *struct_ptr, int contents_only) {
+ FineRTD_1_inherit_TYPE_descriptor(td);
+ td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+FineRTD_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+ int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+ FineRTD_1_inherit_TYPE_descriptor(td);
+ return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+FineRTD_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const void *bufptr, size_t size, int tag_mode) {
+ FineRTD_1_inherit_TYPE_descriptor(td);
+ return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+FineRTD_encode_der(asn_TYPE_descriptor_t *td,
+ void *structure, int tag_mode, ber_tlv_tag_t tag,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ FineRTD_1_inherit_TYPE_descriptor(td);
+ return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+FineRTD_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+ FineRTD_1_inherit_TYPE_descriptor(td);
+ return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+FineRTD_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+ int ilevel, enum xer_encoder_flags_e flags,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ FineRTD_1_inherit_TYPE_descriptor(td);
+ return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+FineRTD_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+ FineRTD_1_inherit_TYPE_descriptor(td);
+ return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+FineRTD_encode_uper(asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints,
+ void *structure, asn_per_outp_t *per_out) {
+ FineRTD_1_inherit_TYPE_descriptor(td);
+ return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_per_constraints_t asn_PER_type_FineRTD_constr_1 = {
+ { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static ber_tlv_tag_t asn_DEF_FineRTD_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_FineRTD = {
+ "FineRTD",
+ "FineRTD",
+ FineRTD_free,
+ FineRTD_print,
+ FineRTD_constraint,
+ FineRTD_decode_ber,
+ FineRTD_encode_der,
+ FineRTD_decode_xer,
+ FineRTD_encode_xer,
+ FineRTD_decode_uper,
+ FineRTD_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_FineRTD_tags_1,
+ sizeof(asn_DEF_FineRTD_tags_1)
+ /sizeof(asn_DEF_FineRTD_tags_1[0]), /* 1 */
+ asn_DEF_FineRTD_tags_1, /* Same as above */
+ sizeof(asn_DEF_FineRTD_tags_1)
+ /sizeof(asn_DEF_FineRTD_tags_1[0]), /* 1 */
+ &asn_PER_type_FineRTD_constr_1,
+ 0, 0, /* No members */
+ 0 /* No specifics */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/FineRTD.h b/src/core/libs/supl/asn-rrlp/FineRTD.h
new file mode 100644
index 000000000..7738c6b57
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/FineRTD.h
@@ -0,0 +1,40 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _FineRTD_H_
+#define _FineRTD_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* FineRTD */
+typedef long FineRTD_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_FineRTD;
+asn_struct_free_f FineRTD_free;
+asn_struct_print_f FineRTD_print;
+asn_constr_check_f FineRTD_constraint;
+ber_type_decoder_f FineRTD_decode_ber;
+der_type_encoder_f FineRTD_encode_der;
+xer_type_decoder_f FineRTD_decode_xer;
+xer_type_encoder_f FineRTD_encode_xer;
+per_type_decoder_f FineRTD_decode_uper;
+per_type_encoder_f FineRTD_encode_uper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _FineRTD_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/FixType.c b/src/core/libs/supl/asn-rrlp/FixType.c
new file mode 100644
index 000000000..d413f29c7
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/FixType.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "FixType.h"
+
+int
+FixType_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 1)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+FixType_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+ td->free_struct = asn_DEF_NativeInteger.free_struct;
+ td->print_struct = asn_DEF_NativeInteger.print_struct;
+ td->ber_decoder = asn_DEF_NativeInteger.ber_decoder;
+ td->der_encoder = asn_DEF_NativeInteger.der_encoder;
+ td->xer_decoder = asn_DEF_NativeInteger.xer_decoder;
+ td->xer_encoder = asn_DEF_NativeInteger.xer_encoder;
+ td->uper_decoder = asn_DEF_NativeInteger.uper_decoder;
+ td->uper_encoder = asn_DEF_NativeInteger.uper_encoder;
+ if(!td->per_constraints)
+ td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+ td->elements = asn_DEF_NativeInteger.elements;
+ td->elements_count = asn_DEF_NativeInteger.elements_count;
+ td->specifics = asn_DEF_NativeInteger.specifics;
+}
+
+void
+FixType_free(asn_TYPE_descriptor_t *td,
+ void *struct_ptr, int contents_only) {
+ FixType_1_inherit_TYPE_descriptor(td);
+ td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+FixType_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+ int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+ FixType_1_inherit_TYPE_descriptor(td);
+ return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+FixType_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const void *bufptr, size_t size, int tag_mode) {
+ FixType_1_inherit_TYPE_descriptor(td);
+ return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+FixType_encode_der(asn_TYPE_descriptor_t *td,
+ void *structure, int tag_mode, ber_tlv_tag_t tag,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ FixType_1_inherit_TYPE_descriptor(td);
+ return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+FixType_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+ FixType_1_inherit_TYPE_descriptor(td);
+ return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+FixType_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+ int ilevel, enum xer_encoder_flags_e flags,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ FixType_1_inherit_TYPE_descriptor(td);
+ return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+FixType_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+ FixType_1_inherit_TYPE_descriptor(td);
+ return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+FixType_encode_uper(asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints,
+ void *structure, asn_per_outp_t *per_out) {
+ FixType_1_inherit_TYPE_descriptor(td);
+ return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_per_constraints_t asn_PER_type_FixType_constr_1 = {
+ { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static ber_tlv_tag_t asn_DEF_FixType_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_FixType = {
+ "FixType",
+ "FixType",
+ FixType_free,
+ FixType_print,
+ FixType_constraint,
+ FixType_decode_ber,
+ FixType_encode_der,
+ FixType_decode_xer,
+ FixType_encode_xer,
+ FixType_decode_uper,
+ FixType_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_FixType_tags_1,
+ sizeof(asn_DEF_FixType_tags_1)
+ /sizeof(asn_DEF_FixType_tags_1[0]), /* 1 */
+ asn_DEF_FixType_tags_1, /* Same as above */
+ sizeof(asn_DEF_FixType_tags_1)
+ /sizeof(asn_DEF_FixType_tags_1[0]), /* 1 */
+ &asn_PER_type_FixType_constr_1,
+ 0, 0, /* Defined elsewhere */
+ 0 /* No specifics */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/FixType.h b/src/core/libs/supl/asn-rrlp/FixType.h
new file mode 100644
index 000000000..498fda8bf
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/FixType.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _FixType_H_
+#define _FixType_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum FixType {
+ FixType_twoDFix = 0,
+ FixType_threeDFix = 1
+} e_FixType;
+
+/* FixType */
+typedef long FixType_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_FixType;
+asn_struct_free_f FixType_free;
+asn_struct_print_f FixType_print;
+asn_constr_check_f FixType_constraint;
+ber_type_decoder_f FixType_decode_ber;
+der_type_encoder_f FixType_encode_der;
+xer_type_decoder_f FixType_decode_xer;
+xer_type_encoder_f FixType_encode_xer;
+per_type_decoder_f FixType_decode_uper;
+per_type_encoder_f FixType_encode_uper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _FixType_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/FrameDrift.c b/src/core/libs/supl/asn-rrlp/FrameDrift.c
new file mode 100644
index 000000000..0a0238c9f
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/FrameDrift.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "FrameDrift.h"
+
+int
+FrameDrift_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= -64 && value <= 63)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+FrameDrift_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+ td->free_struct = asn_DEF_NativeInteger.free_struct;
+ td->print_struct = asn_DEF_NativeInteger.print_struct;
+ td->ber_decoder = asn_DEF_NativeInteger.ber_decoder;
+ td->der_encoder = asn_DEF_NativeInteger.der_encoder;
+ td->xer_decoder = asn_DEF_NativeInteger.xer_decoder;
+ td->xer_encoder = asn_DEF_NativeInteger.xer_encoder;
+ td->uper_decoder = asn_DEF_NativeInteger.uper_decoder;
+ td->uper_encoder = asn_DEF_NativeInteger.uper_encoder;
+ if(!td->per_constraints)
+ td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+ td->elements = asn_DEF_NativeInteger.elements;
+ td->elements_count = asn_DEF_NativeInteger.elements_count;
+ td->specifics = asn_DEF_NativeInteger.specifics;
+}
+
+void
+FrameDrift_free(asn_TYPE_descriptor_t *td,
+ void *struct_ptr, int contents_only) {
+ FrameDrift_1_inherit_TYPE_descriptor(td);
+ td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+FrameDrift_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+ int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+ FrameDrift_1_inherit_TYPE_descriptor(td);
+ return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+FrameDrift_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const void *bufptr, size_t size, int tag_mode) {
+ FrameDrift_1_inherit_TYPE_descriptor(td);
+ return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+FrameDrift_encode_der(asn_TYPE_descriptor_t *td,
+ void *structure, int tag_mode, ber_tlv_tag_t tag,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ FrameDrift_1_inherit_TYPE_descriptor(td);
+ return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+FrameDrift_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+ FrameDrift_1_inherit_TYPE_descriptor(td);
+ return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+FrameDrift_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+ int ilevel, enum xer_encoder_flags_e flags,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ FrameDrift_1_inherit_TYPE_descriptor(td);
+ return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+FrameDrift_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+ FrameDrift_1_inherit_TYPE_descriptor(td);
+ return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+FrameDrift_encode_uper(asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints,
+ void *structure, asn_per_outp_t *per_out) {
+ FrameDrift_1_inherit_TYPE_descriptor(td);
+ return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_per_constraints_t asn_PER_type_FrameDrift_constr_1 = {
+ { APC_CONSTRAINED, 7, 7, -64, 63 } /* (-64..63) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static ber_tlv_tag_t asn_DEF_FrameDrift_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_FrameDrift = {
+ "FrameDrift",
+ "FrameDrift",
+ FrameDrift_free,
+ FrameDrift_print,
+ FrameDrift_constraint,
+ FrameDrift_decode_ber,
+ FrameDrift_encode_der,
+ FrameDrift_decode_xer,
+ FrameDrift_encode_xer,
+ FrameDrift_decode_uper,
+ FrameDrift_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_FrameDrift_tags_1,
+ sizeof(asn_DEF_FrameDrift_tags_1)
+ /sizeof(asn_DEF_FrameDrift_tags_1[0]), /* 1 */
+ asn_DEF_FrameDrift_tags_1, /* Same as above */
+ sizeof(asn_DEF_FrameDrift_tags_1)
+ /sizeof(asn_DEF_FrameDrift_tags_1[0]), /* 1 */
+ &asn_PER_type_FrameDrift_constr_1,
+ 0, 0, /* No members */
+ 0 /* No specifics */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/FrameDrift.h b/src/core/libs/supl/asn-rrlp/FrameDrift.h
new file mode 100644
index 000000000..48c5f17ea
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/FrameDrift.h
@@ -0,0 +1,40 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _FrameDrift_H_
+#define _FrameDrift_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* FrameDrift */
+typedef long FrameDrift_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_FrameDrift;
+asn_struct_free_f FrameDrift_free;
+asn_struct_print_f FrameDrift_print;
+asn_constr_check_f FrameDrift_constraint;
+ber_type_decoder_f FrameDrift_decode_ber;
+der_type_encoder_f FrameDrift_encode_der;
+xer_type_decoder_f FrameDrift_decode_xer;
+xer_type_encoder_f FrameDrift_encode_xer;
+per_type_decoder_f FrameDrift_decode_uper;
+per_type_encoder_f FrameDrift_encode_uper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _FrameDrift_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/FrameNumber.c b/src/core/libs/supl/asn-rrlp/FrameNumber.c
new file mode 100644
index 000000000..b8778f7f8
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/FrameNumber.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "FrameNumber.h"
+
+int
+FrameNumber_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 2097151)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+FrameNumber_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+ td->free_struct = asn_DEF_NativeInteger.free_struct;
+ td->print_struct = asn_DEF_NativeInteger.print_struct;
+ td->ber_decoder = asn_DEF_NativeInteger.ber_decoder;
+ td->der_encoder = asn_DEF_NativeInteger.der_encoder;
+ td->xer_decoder = asn_DEF_NativeInteger.xer_decoder;
+ td->xer_encoder = asn_DEF_NativeInteger.xer_encoder;
+ td->uper_decoder = asn_DEF_NativeInteger.uper_decoder;
+ td->uper_encoder = asn_DEF_NativeInteger.uper_encoder;
+ if(!td->per_constraints)
+ td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+ td->elements = asn_DEF_NativeInteger.elements;
+ td->elements_count = asn_DEF_NativeInteger.elements_count;
+ td->specifics = asn_DEF_NativeInteger.specifics;
+}
+
+void
+FrameNumber_free(asn_TYPE_descriptor_t *td,
+ void *struct_ptr, int contents_only) {
+ FrameNumber_1_inherit_TYPE_descriptor(td);
+ td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+FrameNumber_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+ int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+ FrameNumber_1_inherit_TYPE_descriptor(td);
+ return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+FrameNumber_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const void *bufptr, size_t size, int tag_mode) {
+ FrameNumber_1_inherit_TYPE_descriptor(td);
+ return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+FrameNumber_encode_der(asn_TYPE_descriptor_t *td,
+ void *structure, int tag_mode, ber_tlv_tag_t tag,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ FrameNumber_1_inherit_TYPE_descriptor(td);
+ return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+FrameNumber_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+ FrameNumber_1_inherit_TYPE_descriptor(td);
+ return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+FrameNumber_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+ int ilevel, enum xer_encoder_flags_e flags,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ FrameNumber_1_inherit_TYPE_descriptor(td);
+ return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+FrameNumber_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+ FrameNumber_1_inherit_TYPE_descriptor(td);
+ return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+FrameNumber_encode_uper(asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints,
+ void *structure, asn_per_outp_t *per_out) {
+ FrameNumber_1_inherit_TYPE_descriptor(td);
+ return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_per_constraints_t asn_PER_type_FrameNumber_constr_1 = {
+ { APC_CONSTRAINED, 21, -1, 0, 2097151 } /* (0..2097151) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static ber_tlv_tag_t asn_DEF_FrameNumber_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_FrameNumber = {
+ "FrameNumber",
+ "FrameNumber",
+ FrameNumber_free,
+ FrameNumber_print,
+ FrameNumber_constraint,
+ FrameNumber_decode_ber,
+ FrameNumber_encode_der,
+ FrameNumber_decode_xer,
+ FrameNumber_encode_xer,
+ FrameNumber_decode_uper,
+ FrameNumber_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_FrameNumber_tags_1,
+ sizeof(asn_DEF_FrameNumber_tags_1)
+ /sizeof(asn_DEF_FrameNumber_tags_1[0]), /* 1 */
+ asn_DEF_FrameNumber_tags_1, /* Same as above */
+ sizeof(asn_DEF_FrameNumber_tags_1)
+ /sizeof(asn_DEF_FrameNumber_tags_1[0]), /* 1 */
+ &asn_PER_type_FrameNumber_constr_1,
+ 0, 0, /* No members */
+ 0 /* No specifics */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/FrameNumber.h b/src/core/libs/supl/asn-rrlp/FrameNumber.h
new file mode 100644
index 000000000..152b2d4d7
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/FrameNumber.h
@@ -0,0 +1,40 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _FrameNumber_H_
+#define _FrameNumber_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* FrameNumber */
+typedef long FrameNumber_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_FrameNumber;
+asn_struct_free_f FrameNumber_free;
+asn_struct_print_f FrameNumber_print;
+asn_constr_check_f FrameNumber_constraint;
+ber_type_decoder_f FrameNumber_decode_ber;
+der_type_encoder_f FrameNumber_encode_der;
+xer_type_decoder_f FrameNumber_decode_xer;
+xer_type_encoder_f FrameNumber_encode_xer;
+per_type_decoder_f FrameNumber_decode_uper;
+per_type_encoder_f FrameNumber_encode_uper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _FrameNumber_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSS-AssistData.c b/src/core/libs/supl/asn-rrlp/GANSS-AssistData.c
new file mode 100644
index 000000000..9c63d2874
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSS-AssistData.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSS-AssistData.h"
+
+static asn_TYPE_member_t asn_MBR_GANSS_AssistData_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct GANSS_AssistData, ganss_controlHeader),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_GANSS_ControlHeader,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganss-controlHeader"
+ },
+};
+static ber_tlv_tag_t asn_DEF_GANSS_AssistData_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_GANSS_AssistData_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ganss-controlHeader at 1062 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_GANSS_AssistData_specs_1 = {
+ sizeof(struct GANSS_AssistData),
+ offsetof(struct GANSS_AssistData, _asn_ctx),
+ asn_MAP_GANSS_AssistData_tag2el_1,
+ 1, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_GANSS_AssistData = {
+ "GANSS-AssistData",
+ "GANSS-AssistData",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_GANSS_AssistData_tags_1,
+ sizeof(asn_DEF_GANSS_AssistData_tags_1)
+ /sizeof(asn_DEF_GANSS_AssistData_tags_1[0]), /* 1 */
+ asn_DEF_GANSS_AssistData_tags_1, /* Same as above */
+ sizeof(asn_DEF_GANSS_AssistData_tags_1)
+ /sizeof(asn_DEF_GANSS_AssistData_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_GANSS_AssistData_1,
+ 1, /* Elements count */
+ &asn_SPC_GANSS_AssistData_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSS-AssistData.h b/src/core/libs/supl/asn-rrlp/GANSS-AssistData.h
new file mode 100644
index 000000000..cdb0960d8
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSS-AssistData.h
@@ -0,0 +1,37 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSS_AssistData_H_
+#define _GANSS_AssistData_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "GANSS-ControlHeader.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GANSS-AssistData */
+typedef struct GANSS_AssistData {
+ GANSS_ControlHeader_t ganss_controlHeader;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GANSS_AssistData_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSS_AssistData;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GANSS_AssistData_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSS-ControlHeader.c b/src/core/libs/supl/asn-rrlp/GANSS-ControlHeader.c
new file mode 100644
index 000000000..5fbe0f0ba
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSS-ControlHeader.c
@@ -0,0 +1,71 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSS-ControlHeader.h"
+
+static asn_TYPE_member_t asn_MBR_GANSS_ControlHeader_1[] = {
+ { ATF_POINTER, 2, offsetof(struct GANSS_ControlHeader, ganssCommonAssistData),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_GANSSCommonAssistData,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssCommonAssistData"
+ },
+ { ATF_POINTER, 1, offsetof(struct GANSS_ControlHeader, ganssGenericAssistDataList),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SeqOfGANSSGenericAssistDataElement,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssGenericAssistDataList"
+ },
+};
+static int asn_MAP_GANSS_ControlHeader_oms_1[] = { 0, 1 };
+static ber_tlv_tag_t asn_DEF_GANSS_ControlHeader_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_GANSS_ControlHeader_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ganssCommonAssistData at 1065 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ganssGenericAssistDataList at 1066 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_GANSS_ControlHeader_specs_1 = {
+ sizeof(struct GANSS_ControlHeader),
+ offsetof(struct GANSS_ControlHeader, _asn_ctx),
+ asn_MAP_GANSS_ControlHeader_tag2el_1,
+ 2, /* Count of tags in the map */
+ asn_MAP_GANSS_ControlHeader_oms_1, /* Optional members */
+ 2, 0, /* Root/Additions */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_GANSS_ControlHeader = {
+ "GANSS-ControlHeader",
+ "GANSS-ControlHeader",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_GANSS_ControlHeader_tags_1,
+ sizeof(asn_DEF_GANSS_ControlHeader_tags_1)
+ /sizeof(asn_DEF_GANSS_ControlHeader_tags_1[0]), /* 1 */
+ asn_DEF_GANSS_ControlHeader_tags_1, /* Same as above */
+ sizeof(asn_DEF_GANSS_ControlHeader_tags_1)
+ /sizeof(asn_DEF_GANSS_ControlHeader_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_GANSS_ControlHeader_1,
+ 2, /* Elements count */
+ &asn_SPC_GANSS_ControlHeader_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSS-ControlHeader.h b/src/core/libs/supl/asn-rrlp/GANSS-ControlHeader.h
new file mode 100644
index 000000000..96e98b022
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSS-ControlHeader.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSS_ControlHeader_H_
+#define _GANSS_ControlHeader_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GANSSCommonAssistData;
+struct SeqOfGANSSGenericAssistDataElement;
+
+/* GANSS-ControlHeader */
+typedef struct GANSS_ControlHeader {
+ struct GANSSCommonAssistData *ganssCommonAssistData /* OPTIONAL */;
+ struct SeqOfGANSSGenericAssistDataElement *ganssGenericAssistDataList /* OPTIONAL */;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GANSS_ControlHeader_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSS_ControlHeader;
+
+#ifdef __cplusplus
+}
+#endif
+
+/* Referred external types */
+#include "GANSSCommonAssistData.h"
+#include "SeqOfGANSSGenericAssistDataElement.h"
+
+#endif /* _GANSS_ControlHeader_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSS-MsrSetElement.c b/src/core/libs/supl/asn-rrlp/GANSS-MsrSetElement.c
new file mode 100644
index 000000000..229783ca8
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSS-MsrSetElement.c
@@ -0,0 +1,131 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSS-MsrSetElement.h"
+
+static int
+memb_deltaGNASSTOD_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 127)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_deltaGNASSTOD_constr_4 = {
+ { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_GANSS_MsrSetElement_1[] = {
+ { ATF_POINTER, 4, offsetof(struct GANSS_MsrSetElement, referenceFrame),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_ReferenceFrame,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "referenceFrame"
+ },
+ { ATF_POINTER, 3, offsetof(struct GANSS_MsrSetElement, ganssTODm),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_GANSSTODm,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssTODm"
+ },
+ { ATF_POINTER, 2, offsetof(struct GANSS_MsrSetElement, deltaGNASSTOD),
+ (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_deltaGNASSTOD_constraint_1,
+ &asn_PER_memb_deltaGNASSTOD_constr_4,
+ 0,
+ "deltaGNASSTOD"
+ },
+ { ATF_POINTER, 1, offsetof(struct GANSS_MsrSetElement, ganssTODUncertainty),
+ (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_GANSSTODUncertainty,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssTODUncertainty"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSS_MsrSetElement, ganss_SgnTypeList),
+ (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SeqOfGANSS_SgnTypeElement,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganss-SgnTypeList"
+ },
+};
+static int asn_MAP_GANSS_MsrSetElement_oms_1[] = { 0, 1, 2, 3 };
+static ber_tlv_tag_t asn_DEF_GANSS_MsrSetElement_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_GANSS_MsrSetElement_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* referenceFrame at 1456 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ganssTODm at 1457 */
+ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* deltaGNASSTOD at 1458 */
+ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ganssTODUncertainty at 1459 */
+ { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ganss-SgnTypeList at 1463 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_GANSS_MsrSetElement_specs_1 = {
+ sizeof(struct GANSS_MsrSetElement),
+ offsetof(struct GANSS_MsrSetElement, _asn_ctx),
+ asn_MAP_GANSS_MsrSetElement_tag2el_1,
+ 5, /* Count of tags in the map */
+ asn_MAP_GANSS_MsrSetElement_oms_1, /* Optional members */
+ 4, 0, /* Root/Additions */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_GANSS_MsrSetElement = {
+ "GANSS-MsrSetElement",
+ "GANSS-MsrSetElement",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_GANSS_MsrSetElement_tags_1,
+ sizeof(asn_DEF_GANSS_MsrSetElement_tags_1)
+ /sizeof(asn_DEF_GANSS_MsrSetElement_tags_1[0]), /* 1 */
+ asn_DEF_GANSS_MsrSetElement_tags_1, /* Same as above */
+ sizeof(asn_DEF_GANSS_MsrSetElement_tags_1)
+ /sizeof(asn_DEF_GANSS_MsrSetElement_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_GANSS_MsrSetElement_1,
+ 5, /* Elements count */
+ &asn_SPC_GANSS_MsrSetElement_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSS-MsrSetElement.h b/src/core/libs/supl/asn-rrlp/GANSS-MsrSetElement.h
new file mode 100644
index 000000000..a6579b16e
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSS-MsrSetElement.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSS_MsrSetElement_H_
+#define _GANSS_MsrSetElement_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "GANSSTODm.h"
+#include
+#include "GANSSTODUncertainty.h"
+#include "SeqOfGANSS-SgnTypeElement.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ReferenceFrame;
+
+/* GANSS-MsrSetElement */
+typedef struct GANSS_MsrSetElement {
+ struct ReferenceFrame *referenceFrame /* OPTIONAL */;
+ GANSSTODm_t *ganssTODm /* OPTIONAL */;
+ long *deltaGNASSTOD /* OPTIONAL */;
+ GANSSTODUncertainty_t *ganssTODUncertainty /* OPTIONAL */;
+ SeqOfGANSS_SgnTypeElement_t ganss_SgnTypeList;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GANSS_MsrSetElement_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSS_MsrSetElement;
+
+#ifdef __cplusplus
+}
+#endif
+
+/* Referred external types */
+#include "ReferenceFrame.h"
+
+#endif /* _GANSS_MsrSetElement_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSS-SgnElement.c b/src/core/libs/supl/asn-rrlp/GANSS-SgnElement.c
new file mode 100644
index 000000000..6f31ab9b9
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSS-SgnElement.c
@@ -0,0 +1,351 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSS-SgnElement.h"
+
+static int
+memb_cNo_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 63)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_carrierQualityInd_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 3)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_codePhase_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 2097151)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_integerCodePhase_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 63)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_codePhaseRMSError_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 63)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_doppler_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= -32768 && value <= 32767)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_adr_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 33554431)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_cNo_constr_3 = {
+ { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_carrierQualityInd_constr_5 = {
+ { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_codePhase_constr_6 = {
+ { APC_CONSTRAINED, 21, -1, 0, 2097151 } /* (0..2097151) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_integerCodePhase_constr_7 = {
+ { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_codePhaseRMSError_constr_8 = {
+ { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_doppler_constr_9 = {
+ { APC_CONSTRAINED, 16, 16, -32768, 32767 } /* (-32768..32767) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_adr_constr_10 = {
+ { APC_CONSTRAINED, 25, -1, 0, 33554431 } /* (0..33554431) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_GANSS_SgnElement_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct GANSS_SgnElement, svID),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SVID,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "svID"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSS_SgnElement, cNo),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_cNo_constraint_1,
+ &asn_PER_memb_cNo_constr_3,
+ 0,
+ "cNo"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSS_SgnElement, mpathDet),
+ (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_MpathIndic,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "mpathDet"
+ },
+ { ATF_POINTER, 1, offsetof(struct GANSS_SgnElement, carrierQualityInd),
+ (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_carrierQualityInd_constraint_1,
+ &asn_PER_memb_carrierQualityInd_constr_5,
+ 0,
+ "carrierQualityInd"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSS_SgnElement, codePhase),
+ (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_codePhase_constraint_1,
+ &asn_PER_memb_codePhase_constr_6,
+ 0,
+ "codePhase"
+ },
+ { ATF_POINTER, 1, offsetof(struct GANSS_SgnElement, integerCodePhase),
+ (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_integerCodePhase_constraint_1,
+ &asn_PER_memb_integerCodePhase_constr_7,
+ 0,
+ "integerCodePhase"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSS_SgnElement, codePhaseRMSError),
+ (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_codePhaseRMSError_constraint_1,
+ &asn_PER_memb_codePhaseRMSError_constr_8,
+ 0,
+ "codePhaseRMSError"
+ },
+ { ATF_POINTER, 2, offsetof(struct GANSS_SgnElement, doppler),
+ (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_doppler_constraint_1,
+ &asn_PER_memb_doppler_constr_9,
+ 0,
+ "doppler"
+ },
+ { ATF_POINTER, 1, offsetof(struct GANSS_SgnElement, adr),
+ (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_adr_constraint_1,
+ &asn_PER_memb_adr_constr_10,
+ 0,
+ "adr"
+ },
+};
+static int asn_MAP_GANSS_SgnElement_oms_1[] = { 3, 5, 7, 8 };
+static ber_tlv_tag_t asn_DEF_GANSS_SgnElement_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_GANSS_SgnElement_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* svID at 1479 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cNo at 1480 */
+ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* mpathDet at 1481 */
+ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* carrierQualityInd at 1482 */
+ { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* codePhase at 1483 */
+ { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* integerCodePhase at 1484 */
+ { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* codePhaseRMSError at 1485 */
+ { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* doppler at 1486 */
+ { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* adr at 1487 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_GANSS_SgnElement_specs_1 = {
+ sizeof(struct GANSS_SgnElement),
+ offsetof(struct GANSS_SgnElement, _asn_ctx),
+ asn_MAP_GANSS_SgnElement_tag2el_1,
+ 9, /* Count of tags in the map */
+ asn_MAP_GANSS_SgnElement_oms_1, /* Optional members */
+ 4, 0, /* Root/Additions */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_GANSS_SgnElement = {
+ "GANSS-SgnElement",
+ "GANSS-SgnElement",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_GANSS_SgnElement_tags_1,
+ sizeof(asn_DEF_GANSS_SgnElement_tags_1)
+ /sizeof(asn_DEF_GANSS_SgnElement_tags_1[0]), /* 1 */
+ asn_DEF_GANSS_SgnElement_tags_1, /* Same as above */
+ sizeof(asn_DEF_GANSS_SgnElement_tags_1)
+ /sizeof(asn_DEF_GANSS_SgnElement_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_GANSS_SgnElement_1,
+ 9, /* Elements count */
+ &asn_SPC_GANSS_SgnElement_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSS-SgnElement.h b/src/core/libs/supl/asn-rrlp/GANSS-SgnElement.h
new file mode 100644
index 000000000..d2727b544
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSS-SgnElement.h
@@ -0,0 +1,47 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSS_SgnElement_H_
+#define _GANSS_SgnElement_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "SVID.h"
+#include
+#include "MpathIndic.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GANSS-SgnElement */
+typedef struct GANSS_SgnElement {
+ SVID_t svID;
+ long cNo;
+ MpathIndic_t mpathDet;
+ long *carrierQualityInd /* OPTIONAL */;
+ long codePhase;
+ long *integerCodePhase /* OPTIONAL */;
+ long codePhaseRMSError;
+ long *doppler /* OPTIONAL */;
+ long *adr /* OPTIONAL */;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GANSS_SgnElement_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSS_SgnElement;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GANSS_SgnElement_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSS-SgnTypeElement.c b/src/core/libs/supl/asn-rrlp/GANSS-SgnTypeElement.c
new file mode 100644
index 000000000..cffb812c8
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSS-SgnTypeElement.c
@@ -0,0 +1,99 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSS-SgnTypeElement.h"
+
+static int
+memb_ganssSignalID_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 15)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_ganssSignalID_constr_2 = {
+ { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_GANSS_SgnTypeElement_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct GANSS_SgnTypeElement, ganssSignalID),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_ganssSignalID_constraint_1,
+ &asn_PER_memb_ganssSignalID_constr_2,
+ 0,
+ "ganssSignalID"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSS_SgnTypeElement, ganss_SgnList),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SeqOfGANSS_SgnElement,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganss-SgnList"
+ },
+};
+static ber_tlv_tag_t asn_DEF_GANSS_SgnTypeElement_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_GANSS_SgnTypeElement_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ganssSignalID at 1469 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ganss-SgnList at 1472 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_GANSS_SgnTypeElement_specs_1 = {
+ sizeof(struct GANSS_SgnTypeElement),
+ offsetof(struct GANSS_SgnTypeElement, _asn_ctx),
+ asn_MAP_GANSS_SgnTypeElement_tag2el_1,
+ 2, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_GANSS_SgnTypeElement = {
+ "GANSS-SgnTypeElement",
+ "GANSS-SgnTypeElement",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_GANSS_SgnTypeElement_tags_1,
+ sizeof(asn_DEF_GANSS_SgnTypeElement_tags_1)
+ /sizeof(asn_DEF_GANSS_SgnTypeElement_tags_1[0]), /* 1 */
+ asn_DEF_GANSS_SgnTypeElement_tags_1, /* Same as above */
+ sizeof(asn_DEF_GANSS_SgnTypeElement_tags_1)
+ /sizeof(asn_DEF_GANSS_SgnTypeElement_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_GANSS_SgnTypeElement_1,
+ 2, /* Elements count */
+ &asn_SPC_GANSS_SgnTypeElement_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSS-SgnTypeElement.h b/src/core/libs/supl/asn-rrlp/GANSS-SgnTypeElement.h
new file mode 100644
index 000000000..d4b43c852
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSS-SgnTypeElement.h
@@ -0,0 +1,39 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSS_SgnTypeElement_H_
+#define _GANSS_SgnTypeElement_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+#include "SeqOfGANSS-SgnElement.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GANSS-SgnTypeElement */
+typedef struct GANSS_SgnTypeElement {
+ long ganssSignalID;
+ SeqOfGANSS_SgnElement_t ganss_SgnList;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GANSS_SgnTypeElement_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSS_SgnTypeElement;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GANSS_SgnTypeElement_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSSAlmanacElement.c b/src/core/libs/supl/asn-rrlp/GANSSAlmanacElement.c
new file mode 100644
index 000000000..c41627282
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSAlmanacElement.c
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSSAlmanacElement.h"
+
+static asn_per_constraints_t asn_PER_type_GANSSAlmanacElement_constr_1 = {
+ { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_GANSSAlmanacElement_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSAlmanacElement, choice.keplerianAlmanacSet),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_Almanac_KeplerianSet,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "keplerianAlmanacSet"
+ },
+};
+static asn_TYPE_tag2member_t asn_MAP_GANSSAlmanacElement_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* keplerianAlmanacSet at 1362 */
+};
+static asn_CHOICE_specifics_t asn_SPC_GANSSAlmanacElement_specs_1 = {
+ sizeof(struct GANSSAlmanacElement),
+ offsetof(struct GANSSAlmanacElement, _asn_ctx),
+ offsetof(struct GANSSAlmanacElement, present),
+ sizeof(((struct GANSSAlmanacElement *)0)->present),
+ asn_MAP_GANSSAlmanacElement_tag2el_1,
+ 1, /* Count of tags in the map */
+ 0,
+ 1 /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_GANSSAlmanacElement = {
+ "GANSSAlmanacElement",
+ "GANSSAlmanacElement",
+ CHOICE_free,
+ CHOICE_print,
+ CHOICE_constraint,
+ CHOICE_decode_ber,
+ CHOICE_encode_der,
+ CHOICE_decode_xer,
+ CHOICE_encode_xer,
+ CHOICE_decode_uper,
+ CHOICE_encode_uper,
+ CHOICE_outmost_tag,
+ 0, /* No effective tags (pointer) */
+ 0, /* No effective tags (count) */
+ 0, /* No tags (pointer) */
+ 0, /* No tags (count) */
+ &asn_PER_type_GANSSAlmanacElement_constr_1,
+ asn_MBR_GANSSAlmanacElement_1,
+ 1, /* Elements count */
+ &asn_SPC_GANSSAlmanacElement_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSSAlmanacElement.h b/src/core/libs/supl/asn-rrlp/GANSSAlmanacElement.h
new file mode 100644
index 000000000..508f08a00
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSAlmanacElement.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSSAlmanacElement_H_
+#define _GANSSAlmanacElement_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "Almanac-KeplerianSet.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum GANSSAlmanacElement_PR {
+ GANSSAlmanacElement_PR_NOTHING, /* No components present */
+ GANSSAlmanacElement_PR_keplerianAlmanacSet,
+ /* Extensions may appear below */
+
+} GANSSAlmanacElement_PR;
+
+/* GANSSAlmanacElement */
+typedef struct GANSSAlmanacElement {
+ GANSSAlmanacElement_PR present;
+ union GANSSAlmanacElement_u {
+ Almanac_KeplerianSet_t keplerianAlmanacSet;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GANSSAlmanacElement_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSSAlmanacElement;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GANSSAlmanacElement_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSSAlmanacModel.c b/src/core/libs/supl/asn-rrlp/GANSSAlmanacModel.c
new file mode 100644
index 000000000..3fb9dff20
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSAlmanacModel.c
@@ -0,0 +1,191 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSSAlmanacModel.h"
+
+static int
+memb_weekNumber_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 255)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_toa_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 255)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_ioda_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 3)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_weekNumber_constr_2 = {
+ { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_toa_constr_4 = {
+ { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_ioda_constr_5 = {
+ { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_GANSSAlmanacModel_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSAlmanacModel, weekNumber),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_weekNumber_constraint_1,
+ &asn_PER_memb_weekNumber_constr_2,
+ 0,
+ "weekNumber"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSAlmanacModel, svIDMask),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SVIDMASK,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "svIDMask"
+ },
+ { ATF_POINTER, 2, offsetof(struct GANSSAlmanacModel, toa),
+ (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_toa_constraint_1,
+ &asn_PER_memb_toa_constr_4,
+ 0,
+ "toa"
+ },
+ { ATF_POINTER, 1, offsetof(struct GANSSAlmanacModel, ioda),
+ (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_ioda_constraint_1,
+ &asn_PER_memb_ioda_constr_5,
+ 0,
+ "ioda"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSAlmanacModel, ganssAlmanacList),
+ (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SeqOfGANSSAlmanacElement,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssAlmanacList"
+ },
+};
+static int asn_MAP_GANSSAlmanacModel_oms_1[] = { 2, 3 };
+static ber_tlv_tag_t asn_DEF_GANSSAlmanacModel_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_GANSSAlmanacModel_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* weekNumber at 1348 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* svIDMask at 1349 */
+ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* toa at 1350 */
+ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ioda at 1351 */
+ { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ganssAlmanacList at 1353 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_GANSSAlmanacModel_specs_1 = {
+ sizeof(struct GANSSAlmanacModel),
+ offsetof(struct GANSSAlmanacModel, _asn_ctx),
+ asn_MAP_GANSSAlmanacModel_tag2el_1,
+ 5, /* Count of tags in the map */
+ asn_MAP_GANSSAlmanacModel_oms_1, /* Optional members */
+ 2, 0, /* Root/Additions */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_GANSSAlmanacModel = {
+ "GANSSAlmanacModel",
+ "GANSSAlmanacModel",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_GANSSAlmanacModel_tags_1,
+ sizeof(asn_DEF_GANSSAlmanacModel_tags_1)
+ /sizeof(asn_DEF_GANSSAlmanacModel_tags_1[0]), /* 1 */
+ asn_DEF_GANSSAlmanacModel_tags_1, /* Same as above */
+ sizeof(asn_DEF_GANSSAlmanacModel_tags_1)
+ /sizeof(asn_DEF_GANSSAlmanacModel_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_GANSSAlmanacModel_1,
+ 5, /* Elements count */
+ &asn_SPC_GANSSAlmanacModel_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSSAlmanacModel.h b/src/core/libs/supl/asn-rrlp/GANSSAlmanacModel.h
new file mode 100644
index 000000000..237ad6217
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSAlmanacModel.h
@@ -0,0 +1,43 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSSAlmanacModel_H_
+#define _GANSSAlmanacModel_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+#include "SVIDMASK.h"
+#include "SeqOfGANSSAlmanacElement.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GANSSAlmanacModel */
+typedef struct GANSSAlmanacModel {
+ long weekNumber;
+ SVIDMASK_t svIDMask;
+ long *toa /* OPTIONAL */;
+ long *ioda /* OPTIONAL */;
+ SeqOfGANSSAlmanacElement_t ganssAlmanacList;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GANSSAlmanacModel_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSSAlmanacModel;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GANSSAlmanacModel_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSSAssistanceData.c b/src/core/libs/supl/asn-rrlp/GANSSAssistanceData.c
new file mode 100644
index 000000000..dbf9340b3
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSAssistanceData.c
@@ -0,0 +1,146 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSSAssistanceData.h"
+
+int
+GANSSAssistanceData_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+ size_t size;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ size = st->size;
+
+ if((size >= 1 && size <= 40)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+GANSSAssistanceData_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+ td->free_struct = asn_DEF_OCTET_STRING.free_struct;
+ td->print_struct = asn_DEF_OCTET_STRING.print_struct;
+ td->ber_decoder = asn_DEF_OCTET_STRING.ber_decoder;
+ td->der_encoder = asn_DEF_OCTET_STRING.der_encoder;
+ td->xer_decoder = asn_DEF_OCTET_STRING.xer_decoder;
+ td->xer_encoder = asn_DEF_OCTET_STRING.xer_encoder;
+ td->uper_decoder = asn_DEF_OCTET_STRING.uper_decoder;
+ td->uper_encoder = asn_DEF_OCTET_STRING.uper_encoder;
+ if(!td->per_constraints)
+ td->per_constraints = asn_DEF_OCTET_STRING.per_constraints;
+ td->elements = asn_DEF_OCTET_STRING.elements;
+ td->elements_count = asn_DEF_OCTET_STRING.elements_count;
+ td->specifics = asn_DEF_OCTET_STRING.specifics;
+}
+
+void
+GANSSAssistanceData_free(asn_TYPE_descriptor_t *td,
+ void *struct_ptr, int contents_only) {
+ GANSSAssistanceData_1_inherit_TYPE_descriptor(td);
+ td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+GANSSAssistanceData_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+ int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+ GANSSAssistanceData_1_inherit_TYPE_descriptor(td);
+ return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+GANSSAssistanceData_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const void *bufptr, size_t size, int tag_mode) {
+ GANSSAssistanceData_1_inherit_TYPE_descriptor(td);
+ return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+GANSSAssistanceData_encode_der(asn_TYPE_descriptor_t *td,
+ void *structure, int tag_mode, ber_tlv_tag_t tag,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ GANSSAssistanceData_1_inherit_TYPE_descriptor(td);
+ return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+GANSSAssistanceData_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+ GANSSAssistanceData_1_inherit_TYPE_descriptor(td);
+ return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+GANSSAssistanceData_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+ int ilevel, enum xer_encoder_flags_e flags,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ GANSSAssistanceData_1_inherit_TYPE_descriptor(td);
+ return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+GANSSAssistanceData_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+ GANSSAssistanceData_1_inherit_TYPE_descriptor(td);
+ return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+GANSSAssistanceData_encode_uper(asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints,
+ void *structure, asn_per_outp_t *per_out) {
+ GANSSAssistanceData_1_inherit_TYPE_descriptor(td);
+ return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_per_constraints_t asn_PER_type_GANSSAssistanceData_constr_1 = {
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ { APC_CONSTRAINED, 6, 6, 1, 40 } /* (SIZE(1..40)) */,
+ 0, 0 /* No PER value map */
+};
+static ber_tlv_tag_t asn_DEF_GANSSAssistanceData_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_GANSSAssistanceData = {
+ "GANSSAssistanceData",
+ "GANSSAssistanceData",
+ GANSSAssistanceData_free,
+ GANSSAssistanceData_print,
+ GANSSAssistanceData_constraint,
+ GANSSAssistanceData_decode_ber,
+ GANSSAssistanceData_encode_der,
+ GANSSAssistanceData_decode_xer,
+ GANSSAssistanceData_encode_xer,
+ GANSSAssistanceData_decode_uper,
+ GANSSAssistanceData_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_GANSSAssistanceData_tags_1,
+ sizeof(asn_DEF_GANSSAssistanceData_tags_1)
+ /sizeof(asn_DEF_GANSSAssistanceData_tags_1[0]), /* 1 */
+ asn_DEF_GANSSAssistanceData_tags_1, /* Same as above */
+ sizeof(asn_DEF_GANSSAssistanceData_tags_1)
+ /sizeof(asn_DEF_GANSSAssistanceData_tags_1[0]), /* 1 */
+ &asn_PER_type_GANSSAssistanceData_constr_1,
+ 0, 0, /* No members */
+ 0 /* No specifics */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSSAssistanceData.h b/src/core/libs/supl/asn-rrlp/GANSSAssistanceData.h
new file mode 100644
index 000000000..58d37c051
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSAssistanceData.h
@@ -0,0 +1,40 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSSAssistanceData_H_
+#define _GANSSAssistanceData_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GANSSAssistanceData */
+typedef OCTET_STRING_t GANSSAssistanceData_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSSAssistanceData;
+asn_struct_free_f GANSSAssistanceData_free;
+asn_struct_print_f GANSSAssistanceData_print;
+asn_constr_check_f GANSSAssistanceData_constraint;
+ber_type_decoder_f GANSSAssistanceData_decode_ber;
+der_type_encoder_f GANSSAssistanceData_encode_der;
+xer_type_decoder_f GANSSAssistanceData_decode_xer;
+xer_type_encoder_f GANSSAssistanceData_encode_xer;
+per_type_decoder_f GANSSAssistanceData_decode_uper;
+per_type_encoder_f GANSSAssistanceData_encode_uper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GANSSAssistanceData_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSSClockModel.c b/src/core/libs/supl/asn-rrlp/GANSSClockModel.c
new file mode 100644
index 000000000..3dd4501e7
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSClockModel.c
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSSClockModel.h"
+
+static asn_per_constraints_t asn_PER_type_GANSSClockModel_constr_1 = {
+ { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_GANSSClockModel_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSClockModel, choice.standardClockModelList),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SeqOfStandardClockModelElement,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "standardClockModelList"
+ },
+};
+static asn_TYPE_tag2member_t asn_MAP_GANSSClockModel_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* standardClockModelList at 1274 */
+};
+static asn_CHOICE_specifics_t asn_SPC_GANSSClockModel_specs_1 = {
+ sizeof(struct GANSSClockModel),
+ offsetof(struct GANSSClockModel, _asn_ctx),
+ offsetof(struct GANSSClockModel, present),
+ sizeof(((struct GANSSClockModel *)0)->present),
+ asn_MAP_GANSSClockModel_tag2el_1,
+ 1, /* Count of tags in the map */
+ 0,
+ 1 /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_GANSSClockModel = {
+ "GANSSClockModel",
+ "GANSSClockModel",
+ CHOICE_free,
+ CHOICE_print,
+ CHOICE_constraint,
+ CHOICE_decode_ber,
+ CHOICE_encode_der,
+ CHOICE_decode_xer,
+ CHOICE_encode_xer,
+ CHOICE_decode_uper,
+ CHOICE_encode_uper,
+ CHOICE_outmost_tag,
+ 0, /* No effective tags (pointer) */
+ 0, /* No effective tags (count) */
+ 0, /* No tags (pointer) */
+ 0, /* No tags (count) */
+ &asn_PER_type_GANSSClockModel_constr_1,
+ asn_MBR_GANSSClockModel_1,
+ 1, /* Elements count */
+ &asn_SPC_GANSSClockModel_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSSClockModel.h b/src/core/libs/supl/asn-rrlp/GANSSClockModel.h
new file mode 100644
index 000000000..4fd80e0b7
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSClockModel.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSSClockModel_H_
+#define _GANSSClockModel_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "SeqOfStandardClockModelElement.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum GANSSClockModel_PR {
+ GANSSClockModel_PR_NOTHING, /* No components present */
+ GANSSClockModel_PR_standardClockModelList,
+ /* Extensions may appear below */
+
+} GANSSClockModel_PR;
+
+/* GANSSClockModel */
+typedef struct GANSSClockModel {
+ GANSSClockModel_PR present;
+ union GANSSClockModel_u {
+ SeqOfStandardClockModelElement_t standardClockModelList;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GANSSClockModel_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSSClockModel;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GANSSClockModel_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSSCommonAssistData.c b/src/core/libs/supl/asn-rrlp/GANSSCommonAssistData.c
new file mode 100644
index 000000000..b819eb959
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSCommonAssistData.c
@@ -0,0 +1,81 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSSCommonAssistData.h"
+
+static asn_TYPE_member_t asn_MBR_GANSSCommonAssistData_1[] = {
+ { ATF_POINTER, 3, offsetof(struct GANSSCommonAssistData, ganssReferenceTime),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_GANSSReferenceTime,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssReferenceTime"
+ },
+ { ATF_POINTER, 2, offsetof(struct GANSSCommonAssistData, ganssRefLocation),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_GANSSRefLocation,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssRefLocation"
+ },
+ { ATF_POINTER, 1, offsetof(struct GANSSCommonAssistData, ganssIonosphericModel),
+ (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_GANSSIonosphericModel,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssIonosphericModel"
+ },
+};
+static int asn_MAP_GANSSCommonAssistData_oms_1[] = { 0, 1, 2 };
+static ber_tlv_tag_t asn_DEF_GANSSCommonAssistData_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_GANSSCommonAssistData_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ganssReferenceTime at 1071 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ganssRefLocation at 1072 */
+ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ganssIonosphericModel at 1073 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_GANSSCommonAssistData_specs_1 = {
+ sizeof(struct GANSSCommonAssistData),
+ offsetof(struct GANSSCommonAssistData, _asn_ctx),
+ asn_MAP_GANSSCommonAssistData_tag2el_1,
+ 3, /* Count of tags in the map */
+ asn_MAP_GANSSCommonAssistData_oms_1, /* Optional members */
+ 3, 0, /* Root/Additions */
+ 2, /* Start extensions */
+ 4 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_GANSSCommonAssistData = {
+ "GANSSCommonAssistData",
+ "GANSSCommonAssistData",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_GANSSCommonAssistData_tags_1,
+ sizeof(asn_DEF_GANSSCommonAssistData_tags_1)
+ /sizeof(asn_DEF_GANSSCommonAssistData_tags_1[0]), /* 1 */
+ asn_DEF_GANSSCommonAssistData_tags_1, /* Same as above */
+ sizeof(asn_DEF_GANSSCommonAssistData_tags_1)
+ /sizeof(asn_DEF_GANSSCommonAssistData_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_GANSSCommonAssistData_1,
+ 3, /* Elements count */
+ &asn_SPC_GANSSCommonAssistData_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSSCommonAssistData.h b/src/core/libs/supl/asn-rrlp/GANSSCommonAssistData.h
new file mode 100644
index 000000000..383d368ac
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSCommonAssistData.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSSCommonAssistData_H_
+#define _GANSSCommonAssistData_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GANSSReferenceTime;
+struct GANSSRefLocation;
+struct GANSSIonosphericModel;
+
+/* GANSSCommonAssistData */
+typedef struct GANSSCommonAssistData {
+ struct GANSSReferenceTime *ganssReferenceTime /* OPTIONAL */;
+ struct GANSSRefLocation *ganssRefLocation /* OPTIONAL */;
+ struct GANSSIonosphericModel *ganssIonosphericModel /* OPTIONAL */;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GANSSCommonAssistData_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSSCommonAssistData;
+
+#ifdef __cplusplus
+}
+#endif
+
+/* Referred external types */
+#include "GANSSReferenceTime.h"
+#include "GANSSRefLocation.h"
+#include "GANSSIonosphericModel.h"
+
+#endif /* _GANSSCommonAssistData_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSSDataBit.c b/src/core/libs/supl/asn-rrlp/GANSSDataBit.c
new file mode 100644
index 000000000..67e8a5f0a
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSDataBit.c
@@ -0,0 +1,145 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSSDataBit.h"
+
+int
+GANSSDataBit_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 1)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+GANSSDataBit_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+ td->free_struct = asn_DEF_NativeInteger.free_struct;
+ td->print_struct = asn_DEF_NativeInteger.print_struct;
+ td->ber_decoder = asn_DEF_NativeInteger.ber_decoder;
+ td->der_encoder = asn_DEF_NativeInteger.der_encoder;
+ td->xer_decoder = asn_DEF_NativeInteger.xer_decoder;
+ td->xer_encoder = asn_DEF_NativeInteger.xer_encoder;
+ td->uper_decoder = asn_DEF_NativeInteger.uper_decoder;
+ td->uper_encoder = asn_DEF_NativeInteger.uper_encoder;
+ if(!td->per_constraints)
+ td->per_constraints = asn_DEF_NativeInteger.per_constraints;
+ td->elements = asn_DEF_NativeInteger.elements;
+ td->elements_count = asn_DEF_NativeInteger.elements_count;
+ td->specifics = asn_DEF_NativeInteger.specifics;
+}
+
+void
+GANSSDataBit_free(asn_TYPE_descriptor_t *td,
+ void *struct_ptr, int contents_only) {
+ GANSSDataBit_1_inherit_TYPE_descriptor(td);
+ td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+GANSSDataBit_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+ int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+ GANSSDataBit_1_inherit_TYPE_descriptor(td);
+ return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+GANSSDataBit_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const void *bufptr, size_t size, int tag_mode) {
+ GANSSDataBit_1_inherit_TYPE_descriptor(td);
+ return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+GANSSDataBit_encode_der(asn_TYPE_descriptor_t *td,
+ void *structure, int tag_mode, ber_tlv_tag_t tag,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ GANSSDataBit_1_inherit_TYPE_descriptor(td);
+ return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+GANSSDataBit_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+ GANSSDataBit_1_inherit_TYPE_descriptor(td);
+ return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+GANSSDataBit_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+ int ilevel, enum xer_encoder_flags_e flags,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ GANSSDataBit_1_inherit_TYPE_descriptor(td);
+ return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+GANSSDataBit_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+ GANSSDataBit_1_inherit_TYPE_descriptor(td);
+ return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+GANSSDataBit_encode_uper(asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints,
+ void *structure, asn_per_outp_t *per_out) {
+ GANSSDataBit_1_inherit_TYPE_descriptor(td);
+ return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_per_constraints_t asn_PER_type_GANSSDataBit_constr_1 = {
+ { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static ber_tlv_tag_t asn_DEF_GANSSDataBit_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_GANSSDataBit = {
+ "GANSSDataBit",
+ "GANSSDataBit",
+ GANSSDataBit_free,
+ GANSSDataBit_print,
+ GANSSDataBit_constraint,
+ GANSSDataBit_decode_ber,
+ GANSSDataBit_encode_der,
+ GANSSDataBit_decode_xer,
+ GANSSDataBit_encode_xer,
+ GANSSDataBit_decode_uper,
+ GANSSDataBit_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_GANSSDataBit_tags_1,
+ sizeof(asn_DEF_GANSSDataBit_tags_1)
+ /sizeof(asn_DEF_GANSSDataBit_tags_1[0]), /* 1 */
+ asn_DEF_GANSSDataBit_tags_1, /* Same as above */
+ sizeof(asn_DEF_GANSSDataBit_tags_1)
+ /sizeof(asn_DEF_GANSSDataBit_tags_1[0]), /* 1 */
+ &asn_PER_type_GANSSDataBit_constr_1,
+ 0, 0, /* No members */
+ 0 /* No specifics */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSSDataBit.h b/src/core/libs/supl/asn-rrlp/GANSSDataBit.h
new file mode 100644
index 000000000..008d80e82
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSDataBit.h
@@ -0,0 +1,40 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSSDataBit_H_
+#define _GANSSDataBit_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GANSSDataBit */
+typedef long GANSSDataBit_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSSDataBit;
+asn_struct_free_f GANSSDataBit_free;
+asn_struct_print_f GANSSDataBit_print;
+asn_constr_check_f GANSSDataBit_constraint;
+ber_type_decoder_f GANSSDataBit_decode_ber;
+der_type_encoder_f GANSSDataBit_encode_der;
+xer_type_decoder_f GANSSDataBit_decode_xer;
+xer_type_encoder_f GANSSDataBit_encode_xer;
+per_type_decoder_f GANSSDataBit_decode_uper;
+per_type_encoder_f GANSSDataBit_encode_uper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GANSSDataBit_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSSDataBitAssist.c b/src/core/libs/supl/asn-rrlp/GANSSDataBitAssist.c
new file mode 100644
index 000000000..83aae91c6
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSDataBitAssist.c
@@ -0,0 +1,149 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSSDataBitAssist.h"
+
+static int
+memb_ganssTOD_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 59)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_ganssDataTypeID_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 2)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_ganssTOD_constr_2 = {
+ { APC_CONSTRAINED, 6, 6, 0, 59 } /* (0..59) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_ganssDataTypeID_constr_4 = {
+ { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_GANSSDataBitAssist_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSDataBitAssist, ganssTOD),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_ganssTOD_constraint_1,
+ &asn_PER_memb_ganssTOD_constr_2,
+ 0,
+ "ganssTOD"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSDataBitAssist, svID),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SVID,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "svID"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSDataBitAssist, ganssDataTypeID),
+ (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_ganssDataTypeID_constraint_1,
+ &asn_PER_memb_ganssDataTypeID_constr_4,
+ 0,
+ "ganssDataTypeID"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSDataBitAssist, ganssDataBits),
+ (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SeqOf_GANSSDataBits,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssDataBits"
+ },
+};
+static ber_tlv_tag_t asn_DEF_GANSSDataBitAssist_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_GANSSDataBitAssist_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ganssTOD at 1307 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* svID at 1308 */
+ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ganssDataTypeID at 1309 */
+ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ganssDataBits at 1313 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_GANSSDataBitAssist_specs_1 = {
+ sizeof(struct GANSSDataBitAssist),
+ offsetof(struct GANSSDataBitAssist, _asn_ctx),
+ asn_MAP_GANSSDataBitAssist_tag2el_1,
+ 4, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_GANSSDataBitAssist = {
+ "GANSSDataBitAssist",
+ "GANSSDataBitAssist",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_GANSSDataBitAssist_tags_1,
+ sizeof(asn_DEF_GANSSDataBitAssist_tags_1)
+ /sizeof(asn_DEF_GANSSDataBitAssist_tags_1[0]), /* 1 */
+ asn_DEF_GANSSDataBitAssist_tags_1, /* Same as above */
+ sizeof(asn_DEF_GANSSDataBitAssist_tags_1)
+ /sizeof(asn_DEF_GANSSDataBitAssist_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_GANSSDataBitAssist_1,
+ 4, /* Elements count */
+ &asn_SPC_GANSSDataBitAssist_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSSDataBitAssist.h b/src/core/libs/supl/asn-rrlp/GANSSDataBitAssist.h
new file mode 100644
index 000000000..ae97a6315
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSDataBitAssist.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSSDataBitAssist_H_
+#define _GANSSDataBitAssist_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+#include "SVID.h"
+#include "SeqOf-GANSSDataBits.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GANSSDataBitAssist */
+typedef struct GANSSDataBitAssist {
+ long ganssTOD;
+ SVID_t svID;
+ long ganssDataTypeID;
+ SeqOf_GANSSDataBits_t ganssDataBits;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GANSSDataBitAssist_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSSDataBitAssist;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GANSSDataBitAssist_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSSDiffCorrections.c b/src/core/libs/supl/asn-rrlp/GANSSDiffCorrections.c
new file mode 100644
index 000000000..4492d1eba
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSDiffCorrections.c
@@ -0,0 +1,99 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSSDiffCorrections.h"
+
+static int
+memb_dganssRefTime_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 119)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_dganssRefTime_constr_2 = {
+ { APC_CONSTRAINED, 7, 7, 0, 119 } /* (0..119) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_GANSSDiffCorrections_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSDiffCorrections, dganssRefTime),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_dganssRefTime_constraint_1,
+ &asn_PER_memb_dganssRefTime_constr_2,
+ 0,
+ "dganssRefTime"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSDiffCorrections, sgnTypeList),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SeqOfSgnTypeElement,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "sgnTypeList"
+ },
+};
+static ber_tlv_tag_t asn_DEF_GANSSDiffCorrections_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_GANSSDiffCorrections_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dganssRefTime at 1186 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sgnTypeList at 1190 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_GANSSDiffCorrections_specs_1 = {
+ sizeof(struct GANSSDiffCorrections),
+ offsetof(struct GANSSDiffCorrections, _asn_ctx),
+ asn_MAP_GANSSDiffCorrections_tag2el_1,
+ 2, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_GANSSDiffCorrections = {
+ "GANSSDiffCorrections",
+ "GANSSDiffCorrections",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_GANSSDiffCorrections_tags_1,
+ sizeof(asn_DEF_GANSSDiffCorrections_tags_1)
+ /sizeof(asn_DEF_GANSSDiffCorrections_tags_1[0]), /* 1 */
+ asn_DEF_GANSSDiffCorrections_tags_1, /* Same as above */
+ sizeof(asn_DEF_GANSSDiffCorrections_tags_1)
+ /sizeof(asn_DEF_GANSSDiffCorrections_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_GANSSDiffCorrections_1,
+ 2, /* Elements count */
+ &asn_SPC_GANSSDiffCorrections_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSSDiffCorrections.h b/src/core/libs/supl/asn-rrlp/GANSSDiffCorrections.h
new file mode 100644
index 000000000..b499c3918
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSDiffCorrections.h
@@ -0,0 +1,39 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSSDiffCorrections_H_
+#define _GANSSDiffCorrections_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+#include "SeqOfSgnTypeElement.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GANSSDiffCorrections */
+typedef struct GANSSDiffCorrections {
+ long dganssRefTime;
+ SeqOfSgnTypeElement_t sgnTypeList;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GANSSDiffCorrections_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSSDiffCorrections;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GANSSDiffCorrections_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSSGenericAssistDataElement.c b/src/core/libs/supl/asn-rrlp/GANSSGenericAssistDataElement.c
new file mode 100644
index 000000000..f9ee75d4f
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSGenericAssistDataElement.c
@@ -0,0 +1,171 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSSGenericAssistDataElement.h"
+
+static int
+memb_ganssID_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 7)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_ganssID_constr_2 = {
+ { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_GANSSGenericAssistDataElement_1[] = {
+ { ATF_POINTER, 9, offsetof(struct GANSSGenericAssistDataElement, ganssID),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_ganssID_constraint_1,
+ &asn_PER_memb_ganssID_constr_2,
+ 0,
+ "ganssID"
+ },
+ { ATF_POINTER, 8, offsetof(struct GANSSGenericAssistDataElement, ganssTimeModel),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SeqOfGANSSTimeModel,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssTimeModel"
+ },
+ { ATF_POINTER, 7, offsetof(struct GANSSGenericAssistDataElement, ganssDiffCorrections),
+ (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_GANSSDiffCorrections,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssDiffCorrections"
+ },
+ { ATF_POINTER, 6, offsetof(struct GANSSGenericAssistDataElement, ganssNavigationModel),
+ (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_GANSSNavModel,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssNavigationModel"
+ },
+ { ATF_POINTER, 5, offsetof(struct GANSSGenericAssistDataElement, ganssRealTimeIntegrity),
+ (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_GANSSRealTimeIntegrity,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssRealTimeIntegrity"
+ },
+ { ATF_POINTER, 4, offsetof(struct GANSSGenericAssistDataElement, ganssDataBitAssist),
+ (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_GANSSDataBitAssist,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssDataBitAssist"
+ },
+ { ATF_POINTER, 3, offsetof(struct GANSSGenericAssistDataElement, ganssRefMeasurementAssist),
+ (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_GANSSRefMeasurementAssist,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssRefMeasurementAssist"
+ },
+ { ATF_POINTER, 2, offsetof(struct GANSSGenericAssistDataElement, ganssAlmanacModel),
+ (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_GANSSAlmanacModel,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssAlmanacModel"
+ },
+ { ATF_POINTER, 1, offsetof(struct GANSSGenericAssistDataElement, ganssUTCModel),
+ (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_GANSSUTCModel,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssUTCModel"
+ },
+};
+static int asn_MAP_GANSSGenericAssistDataElement_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 };
+static ber_tlv_tag_t asn_DEF_GANSSGenericAssistDataElement_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_GANSSGenericAssistDataElement_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ganssID at 1082 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ganssTimeModel at 1083 */
+ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ganssDiffCorrections at 1084 */
+ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ganssNavigationModel at 1085 */
+ { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* ganssRealTimeIntegrity at 1086 */
+ { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* ganssDataBitAssist at 1087 */
+ { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* ganssRefMeasurementAssist at 1088 */
+ { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* ganssAlmanacModel at 1089 */
+ { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* ganssUTCModel at 1090 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_GANSSGenericAssistDataElement_specs_1 = {
+ sizeof(struct GANSSGenericAssistDataElement),
+ offsetof(struct GANSSGenericAssistDataElement, _asn_ctx),
+ asn_MAP_GANSSGenericAssistDataElement_tag2el_1,
+ 9, /* Count of tags in the map */
+ asn_MAP_GANSSGenericAssistDataElement_oms_1, /* Optional members */
+ 9, 0, /* Root/Additions */
+ 8, /* Start extensions */
+ 10 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_GANSSGenericAssistDataElement = {
+ "GANSSGenericAssistDataElement",
+ "GANSSGenericAssistDataElement",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_GANSSGenericAssistDataElement_tags_1,
+ sizeof(asn_DEF_GANSSGenericAssistDataElement_tags_1)
+ /sizeof(asn_DEF_GANSSGenericAssistDataElement_tags_1[0]), /* 1 */
+ asn_DEF_GANSSGenericAssistDataElement_tags_1, /* Same as above */
+ sizeof(asn_DEF_GANSSGenericAssistDataElement_tags_1)
+ /sizeof(asn_DEF_GANSSGenericAssistDataElement_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_GANSSGenericAssistDataElement_1,
+ 9, /* Elements count */
+ &asn_SPC_GANSSGenericAssistDataElement_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSSGenericAssistDataElement.h b/src/core/libs/supl/asn-rrlp/GANSSGenericAssistDataElement.h
new file mode 100644
index 000000000..1677de530
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSGenericAssistDataElement.h
@@ -0,0 +1,69 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSSGenericAssistDataElement_H_
+#define _GANSSGenericAssistDataElement_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct SeqOfGANSSTimeModel;
+struct GANSSDiffCorrections;
+struct GANSSNavModel;
+struct GANSSRealTimeIntegrity;
+struct GANSSDataBitAssist;
+struct GANSSRefMeasurementAssist;
+struct GANSSAlmanacModel;
+struct GANSSUTCModel;
+
+/* GANSSGenericAssistDataElement */
+typedef struct GANSSGenericAssistDataElement {
+ long *ganssID /* OPTIONAL */;
+ struct SeqOfGANSSTimeModel *ganssTimeModel /* OPTIONAL */;
+ struct GANSSDiffCorrections *ganssDiffCorrections /* OPTIONAL */;
+ struct GANSSNavModel *ganssNavigationModel /* OPTIONAL */;
+ struct GANSSRealTimeIntegrity *ganssRealTimeIntegrity /* OPTIONAL */;
+ struct GANSSDataBitAssist *ganssDataBitAssist /* OPTIONAL */;
+ struct GANSSRefMeasurementAssist *ganssRefMeasurementAssist /* OPTIONAL */;
+ struct GANSSAlmanacModel *ganssAlmanacModel /* OPTIONAL */;
+ struct GANSSUTCModel *ganssUTCModel /* OPTIONAL */;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GANSSGenericAssistDataElement_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSSGenericAssistDataElement;
+
+#ifdef __cplusplus
+}
+#endif
+
+/* Referred external types */
+#include "SeqOfGANSSTimeModel.h"
+#include "GANSSDiffCorrections.h"
+#include "GANSSNavModel.h"
+#include "GANSSRealTimeIntegrity.h"
+#include "GANSSDataBitAssist.h"
+#include "GANSSRefMeasurementAssist.h"
+#include "GANSSAlmanacModel.h"
+#include "GANSSUTCModel.h"
+
+#endif /* _GANSSGenericAssistDataElement_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSSIonoStormFlags.c b/src/core/libs/supl/asn-rrlp/GANSSIonoStormFlags.c
new file mode 100644
index 000000000..9f5ad93bc
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSIonoStormFlags.c
@@ -0,0 +1,249 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSSIonoStormFlags.h"
+
+static int
+memb_ionoStormFlag1_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 1)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_ionoStormFlag2_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 1)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_ionoStormFlag3_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 1)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_ionoStormFlag4_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 1)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_ionoStormFlag5_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 1)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_ionoStormFlag1_constr_2 = {
+ { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_ionoStormFlag2_constr_3 = {
+ { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_ionoStormFlag3_constr_4 = {
+ { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_ionoStormFlag4_constr_5 = {
+ { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_ionoStormFlag5_constr_6 = {
+ { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_GANSSIonoStormFlags_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSIonoStormFlags, ionoStormFlag1),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_ionoStormFlag1_constraint_1,
+ &asn_PER_memb_ionoStormFlag1_constr_2,
+ 0,
+ "ionoStormFlag1"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSIonoStormFlags, ionoStormFlag2),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_ionoStormFlag2_constraint_1,
+ &asn_PER_memb_ionoStormFlag2_constr_3,
+ 0,
+ "ionoStormFlag2"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSIonoStormFlags, ionoStormFlag3),
+ (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_ionoStormFlag3_constraint_1,
+ &asn_PER_memb_ionoStormFlag3_constr_4,
+ 0,
+ "ionoStormFlag3"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSIonoStormFlags, ionoStormFlag4),
+ (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_ionoStormFlag4_constraint_1,
+ &asn_PER_memb_ionoStormFlag4_constr_5,
+ 0,
+ "ionoStormFlag4"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSIonoStormFlags, ionoStormFlag5),
+ (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_ionoStormFlag5_constraint_1,
+ &asn_PER_memb_ionoStormFlag5_constr_6,
+ 0,
+ "ionoStormFlag5"
+ },
+};
+static ber_tlv_tag_t asn_DEF_GANSSIonoStormFlags_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_GANSSIonoStormFlags_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ionoStormFlag1 at 1152 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ionoStormFlag2 at 1153 */
+ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ionoStormFlag3 at 1154 */
+ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ionoStormFlag4 at 1155 */
+ { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ionoStormFlag5 at 1156 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_GANSSIonoStormFlags_specs_1 = {
+ sizeof(struct GANSSIonoStormFlags),
+ offsetof(struct GANSSIonoStormFlags, _asn_ctx),
+ asn_MAP_GANSSIonoStormFlags_tag2el_1,
+ 5, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_GANSSIonoStormFlags = {
+ "GANSSIonoStormFlags",
+ "GANSSIonoStormFlags",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_GANSSIonoStormFlags_tags_1,
+ sizeof(asn_DEF_GANSSIonoStormFlags_tags_1)
+ /sizeof(asn_DEF_GANSSIonoStormFlags_tags_1[0]), /* 1 */
+ asn_DEF_GANSSIonoStormFlags_tags_1, /* Same as above */
+ sizeof(asn_DEF_GANSSIonoStormFlags_tags_1)
+ /sizeof(asn_DEF_GANSSIonoStormFlags_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_GANSSIonoStormFlags_1,
+ 5, /* Elements count */
+ &asn_SPC_GANSSIonoStormFlags_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSSIonoStormFlags.h b/src/core/libs/supl/asn-rrlp/GANSSIonoStormFlags.h
new file mode 100644
index 000000000..b55e8a32e
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSIonoStormFlags.h
@@ -0,0 +1,41 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSSIonoStormFlags_H_
+#define _GANSSIonoStormFlags_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GANSSIonoStormFlags */
+typedef struct GANSSIonoStormFlags {
+ long ionoStormFlag1;
+ long ionoStormFlag2;
+ long ionoStormFlag3;
+ long ionoStormFlag4;
+ long ionoStormFlag5;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GANSSIonoStormFlags_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSSIonoStormFlags;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GANSSIonoStormFlags_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSSIonosphereModel.c b/src/core/libs/supl/asn-rrlp/GANSSIonosphereModel.c
new file mode 100644
index 000000000..10e7c67f0
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSIonosphereModel.c
@@ -0,0 +1,169 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSSIonosphereModel.h"
+
+static int
+memb_ai0_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 4095)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_ai1_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 4095)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_ai2_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 4095)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_ai0_constr_2 = {
+ { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_ai1_constr_3 = {
+ { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_ai2_constr_4 = {
+ { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_GANSSIonosphereModel_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSIonosphereModel, ai0),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_ai0_constraint_1,
+ &asn_PER_memb_ai0_constr_2,
+ 0,
+ "ai0"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSIonosphereModel, ai1),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_ai1_constraint_1,
+ &asn_PER_memb_ai1_constr_3,
+ 0,
+ "ai1"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSIonosphereModel, ai2),
+ (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_ai2_constraint_1,
+ &asn_PER_memb_ai2_constr_4,
+ 0,
+ "ai2"
+ },
+};
+static ber_tlv_tag_t asn_DEF_GANSSIonosphereModel_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_GANSSIonosphereModel_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ai0 at 1145 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ai1 at 1146 */
+ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ai2 at 1147 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_GANSSIonosphereModel_specs_1 = {
+ sizeof(struct GANSSIonosphereModel),
+ offsetof(struct GANSSIonosphereModel, _asn_ctx),
+ asn_MAP_GANSSIonosphereModel_tag2el_1,
+ 3, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_GANSSIonosphereModel = {
+ "GANSSIonosphereModel",
+ "GANSSIonosphereModel",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_GANSSIonosphereModel_tags_1,
+ sizeof(asn_DEF_GANSSIonosphereModel_tags_1)
+ /sizeof(asn_DEF_GANSSIonosphereModel_tags_1[0]), /* 1 */
+ asn_DEF_GANSSIonosphereModel_tags_1, /* Same as above */
+ sizeof(asn_DEF_GANSSIonosphereModel_tags_1)
+ /sizeof(asn_DEF_GANSSIonosphereModel_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_GANSSIonosphereModel_1,
+ 3, /* Elements count */
+ &asn_SPC_GANSSIonosphereModel_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSSIonosphereModel.h b/src/core/libs/supl/asn-rrlp/GANSSIonosphereModel.h
new file mode 100644
index 000000000..a30c4d2e2
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSIonosphereModel.h
@@ -0,0 +1,39 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSSIonosphereModel_H_
+#define _GANSSIonosphereModel_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GANSSIonosphereModel */
+typedef struct GANSSIonosphereModel {
+ long ai0;
+ long ai1;
+ long ai2;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GANSSIonosphereModel_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSSIonosphereModel;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GANSSIonosphereModel_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSSIonosphericModel.c b/src/core/libs/supl/asn-rrlp/GANSSIonosphericModel.c
new file mode 100644
index 000000000..41ac3a7cc
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSIonosphericModel.c
@@ -0,0 +1,71 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSSIonosphericModel.h"
+
+static asn_TYPE_member_t asn_MBR_GANSSIonosphericModel_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSIonosphericModel, ganssIonoModel),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_GANSSIonosphereModel,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssIonoModel"
+ },
+ { ATF_POINTER, 1, offsetof(struct GANSSIonosphericModel, ganssIonoStormFlags),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_GANSSIonoStormFlags,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssIonoStormFlags"
+ },
+};
+static int asn_MAP_GANSSIonosphericModel_oms_1[] = { 1 };
+static ber_tlv_tag_t asn_DEF_GANSSIonosphericModel_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_GANSSIonosphericModel_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ganssIonoModel at 1138 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ganssIonoStormFlags at 1139 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_GANSSIonosphericModel_specs_1 = {
+ sizeof(struct GANSSIonosphericModel),
+ offsetof(struct GANSSIonosphericModel, _asn_ctx),
+ asn_MAP_GANSSIonosphericModel_tag2el_1,
+ 2, /* Count of tags in the map */
+ asn_MAP_GANSSIonosphericModel_oms_1, /* Optional members */
+ 1, 0, /* Root/Additions */
+ 1, /* Start extensions */
+ 3 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_GANSSIonosphericModel = {
+ "GANSSIonosphericModel",
+ "GANSSIonosphericModel",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_GANSSIonosphericModel_tags_1,
+ sizeof(asn_DEF_GANSSIonosphericModel_tags_1)
+ /sizeof(asn_DEF_GANSSIonosphericModel_tags_1[0]), /* 1 */
+ asn_DEF_GANSSIonosphericModel_tags_1, /* Same as above */
+ sizeof(asn_DEF_GANSSIonosphericModel_tags_1)
+ /sizeof(asn_DEF_GANSSIonosphericModel_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_GANSSIonosphericModel_1,
+ 2, /* Elements count */
+ &asn_SPC_GANSSIonosphericModel_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSSIonosphericModel.h b/src/core/libs/supl/asn-rrlp/GANSSIonosphericModel.h
new file mode 100644
index 000000000..e96ff7635
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSIonosphericModel.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSSIonosphericModel_H_
+#define _GANSSIonosphericModel_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "GANSSIonosphereModel.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GANSSIonoStormFlags;
+
+/* GANSSIonosphericModel */
+typedef struct GANSSIonosphericModel {
+ GANSSIonosphereModel_t ganssIonoModel;
+ struct GANSSIonoStormFlags *ganssIonoStormFlags /* OPTIONAL */;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GANSSIonosphericModel_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSSIonosphericModel;
+
+#ifdef __cplusplus
+}
+#endif
+
+/* Referred external types */
+#include "GANSSIonoStormFlags.h"
+
+#endif /* _GANSSIonosphericModel_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSSLocationInfo.c b/src/core/libs/supl/asn-rrlp/GANSSLocationInfo.c
new file mode 100644
index 000000000..c98360895
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSLocationInfo.c
@@ -0,0 +1,231 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSSLocationInfo.h"
+
+static int
+memb_ganssTODFrac_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 16384)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_ganssTimeID_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 3)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_stationaryIndication_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 1)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_ganssTODFrac_constr_4 = {
+ { APC_CONSTRAINED, 15, 15, 0, 16384 } /* (0..16384) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_ganssTimeID_constr_6 = {
+ { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_stationaryIndication_constr_9 = {
+ { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_GANSSLocationInfo_1[] = {
+ { ATF_POINTER, 5, offsetof(struct GANSSLocationInfo, referenceFrame),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_ReferenceFrame,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "referenceFrame"
+ },
+ { ATF_POINTER, 4, offsetof(struct GANSSLocationInfo, ganssTODm),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_GANSSTODm,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssTODm"
+ },
+ { ATF_POINTER, 3, offsetof(struct GANSSLocationInfo, ganssTODFrac),
+ (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_ganssTODFrac_constraint_1,
+ &asn_PER_memb_ganssTODFrac_constr_4,
+ 0,
+ "ganssTODFrac"
+ },
+ { ATF_POINTER, 2, offsetof(struct GANSSLocationInfo, ganssTODUncertainty),
+ (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_GANSSTODUncertainty,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssTODUncertainty"
+ },
+ { ATF_POINTER, 1, offsetof(struct GANSSLocationInfo, ganssTimeID),
+ (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_ganssTimeID_constraint_1,
+ &asn_PER_memb_ganssTimeID_constr_6,
+ 0,
+ "ganssTimeID"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSLocationInfo, fixType),
+ (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_FixType,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "fixType"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSLocationInfo, posData),
+ (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_PositionData,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "posData"
+ },
+ { ATF_POINTER, 1, offsetof(struct GANSSLocationInfo, stationaryIndication),
+ (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_stationaryIndication_constraint_1,
+ &asn_PER_memb_stationaryIndication_constr_9,
+ 0,
+ "stationaryIndication"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSLocationInfo, posEstimate),
+ (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_Ext_GeographicalInformation,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "posEstimate"
+ },
+};
+static int asn_MAP_GANSSLocationInfo_oms_1[] = { 0, 1, 2, 3, 4, 7 };
+static ber_tlv_tag_t asn_DEF_GANSSLocationInfo_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_GANSSLocationInfo_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* referenceFrame at 1411 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ganssTODm at 1412 */
+ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ganssTODFrac at 1413 */
+ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ganssTODUncertainty at 1414 */
+ { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* ganssTimeID at 1415 */
+ { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* fixType at 1416 */
+ { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* posData at 1417 */
+ { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* stationaryIndication at 1418 */
+ { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* posEstimate at 1424 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_GANSSLocationInfo_specs_1 = {
+ sizeof(struct GANSSLocationInfo),
+ offsetof(struct GANSSLocationInfo, _asn_ctx),
+ asn_MAP_GANSSLocationInfo_tag2el_1,
+ 9, /* Count of tags in the map */
+ asn_MAP_GANSSLocationInfo_oms_1, /* Optional members */
+ 6, 0, /* Root/Additions */
+ 8, /* Start extensions */
+ 10 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_GANSSLocationInfo = {
+ "GANSSLocationInfo",
+ "GANSSLocationInfo",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_GANSSLocationInfo_tags_1,
+ sizeof(asn_DEF_GANSSLocationInfo_tags_1)
+ /sizeof(asn_DEF_GANSSLocationInfo_tags_1[0]), /* 1 */
+ asn_DEF_GANSSLocationInfo_tags_1, /* Same as above */
+ sizeof(asn_DEF_GANSSLocationInfo_tags_1)
+ /sizeof(asn_DEF_GANSSLocationInfo_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_GANSSLocationInfo_1,
+ 9, /* Elements count */
+ &asn_SPC_GANSSLocationInfo_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSSLocationInfo.h b/src/core/libs/supl/asn-rrlp/GANSSLocationInfo.h
new file mode 100644
index 000000000..b1cc1c866
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSLocationInfo.h
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSSLocationInfo_H_
+#define _GANSSLocationInfo_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "GANSSTODm.h"
+#include
+#include "GANSSTODUncertainty.h"
+#include "FixType.h"
+#include "PositionData.h"
+#include "Ext-GeographicalInformation.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ReferenceFrame;
+
+/* GANSSLocationInfo */
+typedef struct GANSSLocationInfo {
+ struct ReferenceFrame *referenceFrame /* OPTIONAL */;
+ GANSSTODm_t *ganssTODm /* OPTIONAL */;
+ long *ganssTODFrac /* OPTIONAL */;
+ GANSSTODUncertainty_t *ganssTODUncertainty /* OPTIONAL */;
+ long *ganssTimeID /* OPTIONAL */;
+ FixType_t fixType;
+ PositionData_t posData;
+ long *stationaryIndication /* OPTIONAL */;
+ Ext_GeographicalInformation_t posEstimate;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GANSSLocationInfo_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSSLocationInfo;
+
+#ifdef __cplusplus
+}
+#endif
+
+/* Referred external types */
+#include "ReferenceFrame.h"
+
+#endif /* _GANSSLocationInfo_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSSMeasureInfo.c b/src/core/libs/supl/asn-rrlp/GANSSMeasureInfo.c
new file mode 100644
index 000000000..bbd5b5eaa
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSMeasureInfo.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSSMeasureInfo.h"
+
+static asn_TYPE_member_t asn_MBR_GANSSMeasureInfo_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSMeasureInfo, ganssMsrSetList),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SeqOfGANSS_MsrSetElement,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssMsrSetList"
+ },
+};
+static ber_tlv_tag_t asn_DEF_GANSSMeasureInfo_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_GANSSMeasureInfo_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ganssMsrSetList at 1451 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_GANSSMeasureInfo_specs_1 = {
+ sizeof(struct GANSSMeasureInfo),
+ offsetof(struct GANSSMeasureInfo, _asn_ctx),
+ asn_MAP_GANSSMeasureInfo_tag2el_1,
+ 1, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_GANSSMeasureInfo = {
+ "GANSSMeasureInfo",
+ "GANSSMeasureInfo",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_GANSSMeasureInfo_tags_1,
+ sizeof(asn_DEF_GANSSMeasureInfo_tags_1)
+ /sizeof(asn_DEF_GANSSMeasureInfo_tags_1[0]), /* 1 */
+ asn_DEF_GANSSMeasureInfo_tags_1, /* Same as above */
+ sizeof(asn_DEF_GANSSMeasureInfo_tags_1)
+ /sizeof(asn_DEF_GANSSMeasureInfo_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_GANSSMeasureInfo_1,
+ 1, /* Elements count */
+ &asn_SPC_GANSSMeasureInfo_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSSMeasureInfo.h b/src/core/libs/supl/asn-rrlp/GANSSMeasureInfo.h
new file mode 100644
index 000000000..fa03e8726
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSMeasureInfo.h
@@ -0,0 +1,37 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSSMeasureInfo_H_
+#define _GANSSMeasureInfo_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "SeqOfGANSS-MsrSetElement.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GANSSMeasureInfo */
+typedef struct GANSSMeasureInfo {
+ SeqOfGANSS_MsrSetElement_t ganssMsrSetList;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GANSSMeasureInfo_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSSMeasureInfo;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GANSSMeasureInfo_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSSNavModel.c b/src/core/libs/supl/asn-rrlp/GANSSNavModel.c
new file mode 100644
index 000000000..46c7cc984
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSNavModel.c
@@ -0,0 +1,221 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSSNavModel.h"
+
+static int
+memb_nonBroadcastIndFlag_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 1)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_toeMSB_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 31)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_eMSB_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 127)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_sqrtAMBS_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 63)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_nonBroadcastIndFlag_constr_2 = {
+ { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_toeMSB_constr_3 = {
+ { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_eMSB_constr_4 = {
+ { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_sqrtAMBS_constr_5 = {
+ { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_GANSSNavModel_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSNavModel, nonBroadcastIndFlag),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_nonBroadcastIndFlag_constraint_1,
+ &asn_PER_memb_nonBroadcastIndFlag_constr_2,
+ 0,
+ "nonBroadcastIndFlag"
+ },
+ { ATF_POINTER, 3, offsetof(struct GANSSNavModel, toeMSB),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_toeMSB_constraint_1,
+ &asn_PER_memb_toeMSB_constr_3,
+ 0,
+ "toeMSB"
+ },
+ { ATF_POINTER, 2, offsetof(struct GANSSNavModel, eMSB),
+ (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_eMSB_constraint_1,
+ &asn_PER_memb_eMSB_constr_4,
+ 0,
+ "eMSB"
+ },
+ { ATF_POINTER, 1, offsetof(struct GANSSNavModel, sqrtAMBS),
+ (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_sqrtAMBS_constraint_1,
+ &asn_PER_memb_sqrtAMBS_constr_5,
+ 0,
+ "sqrtAMBS"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSNavModel, ganssSatelliteList),
+ (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SeqOfGANSSSatelliteElement,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssSatelliteList"
+ },
+};
+static int asn_MAP_GANSSNavModel_oms_1[] = { 1, 2, 3 };
+static ber_tlv_tag_t asn_DEF_GANSSNavModel_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_GANSSNavModel_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nonBroadcastIndFlag at 1228 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* toeMSB at 1229 */
+ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* eMSB at 1230 */
+ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sqrtAMBS at 1231 */
+ { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ganssSatelliteList at 1233 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_GANSSNavModel_specs_1 = {
+ sizeof(struct GANSSNavModel),
+ offsetof(struct GANSSNavModel, _asn_ctx),
+ asn_MAP_GANSSNavModel_tag2el_1,
+ 5, /* Count of tags in the map */
+ asn_MAP_GANSSNavModel_oms_1, /* Optional members */
+ 3, 0, /* Root/Additions */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_GANSSNavModel = {
+ "GANSSNavModel",
+ "GANSSNavModel",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_GANSSNavModel_tags_1,
+ sizeof(asn_DEF_GANSSNavModel_tags_1)
+ /sizeof(asn_DEF_GANSSNavModel_tags_1[0]), /* 1 */
+ asn_DEF_GANSSNavModel_tags_1, /* Same as above */
+ sizeof(asn_DEF_GANSSNavModel_tags_1)
+ /sizeof(asn_DEF_GANSSNavModel_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_GANSSNavModel_1,
+ 5, /* Elements count */
+ &asn_SPC_GANSSNavModel_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSSNavModel.h b/src/core/libs/supl/asn-rrlp/GANSSNavModel.h
new file mode 100644
index 000000000..d49b75a44
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSNavModel.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSSNavModel_H_
+#define _GANSSNavModel_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+#include "SeqOfGANSSSatelliteElement.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GANSSNavModel */
+typedef struct GANSSNavModel {
+ long nonBroadcastIndFlag;
+ long *toeMSB /* OPTIONAL */;
+ long *eMSB /* OPTIONAL */;
+ long *sqrtAMBS /* OPTIONAL */;
+ SeqOfGANSSSatelliteElement_t ganssSatelliteList;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GANSSNavModel_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSSNavModel;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GANSSNavModel_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSSOrbitModel.c b/src/core/libs/supl/asn-rrlp/GANSSOrbitModel.c
new file mode 100644
index 000000000..5bd45837a
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSOrbitModel.c
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSSOrbitModel.h"
+
+static asn_per_constraints_t asn_PER_type_GANSSOrbitModel_constr_1 = {
+ { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_GANSSOrbitModel_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSOrbitModel, choice.keplerianSet),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NavModel_KeplerianSet,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "keplerianSet"
+ },
+};
+static asn_TYPE_tag2member_t asn_MAP_GANSSOrbitModel_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* keplerianSet at 1248 */
+};
+static asn_CHOICE_specifics_t asn_SPC_GANSSOrbitModel_specs_1 = {
+ sizeof(struct GANSSOrbitModel),
+ offsetof(struct GANSSOrbitModel, _asn_ctx),
+ offsetof(struct GANSSOrbitModel, present),
+ sizeof(((struct GANSSOrbitModel *)0)->present),
+ asn_MAP_GANSSOrbitModel_tag2el_1,
+ 1, /* Count of tags in the map */
+ 0,
+ 1 /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_GANSSOrbitModel = {
+ "GANSSOrbitModel",
+ "GANSSOrbitModel",
+ CHOICE_free,
+ CHOICE_print,
+ CHOICE_constraint,
+ CHOICE_decode_ber,
+ CHOICE_encode_der,
+ CHOICE_decode_xer,
+ CHOICE_encode_xer,
+ CHOICE_decode_uper,
+ CHOICE_encode_uper,
+ CHOICE_outmost_tag,
+ 0, /* No effective tags (pointer) */
+ 0, /* No effective tags (count) */
+ 0, /* No tags (pointer) */
+ 0, /* No tags (count) */
+ &asn_PER_type_GANSSOrbitModel_constr_1,
+ asn_MBR_GANSSOrbitModel_1,
+ 1, /* Elements count */
+ &asn_SPC_GANSSOrbitModel_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSSOrbitModel.h b/src/core/libs/supl/asn-rrlp/GANSSOrbitModel.h
new file mode 100644
index 000000000..b1e6cbb48
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSOrbitModel.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSSOrbitModel_H_
+#define _GANSSOrbitModel_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "NavModel-KeplerianSet.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum GANSSOrbitModel_PR {
+ GANSSOrbitModel_PR_NOTHING, /* No components present */
+ GANSSOrbitModel_PR_keplerianSet,
+ /* Extensions may appear below */
+
+} GANSSOrbitModel_PR;
+
+/* GANSSOrbitModel */
+typedef struct GANSSOrbitModel {
+ GANSSOrbitModel_PR present;
+ union GANSSOrbitModel_u {
+ NavModel_KeplerianSet_t keplerianSet;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GANSSOrbitModel_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSSOrbitModel;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GANSSOrbitModel_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSSPositioningMethod.c b/src/core/libs/supl/asn-rrlp/GANSSPositioningMethod.c
new file mode 100644
index 000000000..aaff620c7
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSPositioningMethod.c
@@ -0,0 +1,151 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSSPositioningMethod.h"
+
+int
+GANSSPositioningMethod_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+ size_t size;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ if(st->size > 0) {
+ /* Size in bits */
+ size = 8 * st->size - (st->bits_unused & 0x07);
+ } else {
+ size = 0;
+ }
+
+ if((size >= 2 && size <= 16)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+/*
+ * This type is implemented using BIT_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+GANSSPositioningMethod_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+ td->free_struct = asn_DEF_BIT_STRING.free_struct;
+ td->print_struct = asn_DEF_BIT_STRING.print_struct;
+ td->ber_decoder = asn_DEF_BIT_STRING.ber_decoder;
+ td->der_encoder = asn_DEF_BIT_STRING.der_encoder;
+ td->xer_decoder = asn_DEF_BIT_STRING.xer_decoder;
+ td->xer_encoder = asn_DEF_BIT_STRING.xer_encoder;
+ td->uper_decoder = asn_DEF_BIT_STRING.uper_decoder;
+ td->uper_encoder = asn_DEF_BIT_STRING.uper_encoder;
+ if(!td->per_constraints)
+ td->per_constraints = asn_DEF_BIT_STRING.per_constraints;
+ td->elements = asn_DEF_BIT_STRING.elements;
+ td->elements_count = asn_DEF_BIT_STRING.elements_count;
+ td->specifics = asn_DEF_BIT_STRING.specifics;
+}
+
+void
+GANSSPositioningMethod_free(asn_TYPE_descriptor_t *td,
+ void *struct_ptr, int contents_only) {
+ GANSSPositioningMethod_1_inherit_TYPE_descriptor(td);
+ td->free_struct(td, struct_ptr, contents_only);
+}
+
+int
+GANSSPositioningMethod_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+ int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+ GANSSPositioningMethod_1_inherit_TYPE_descriptor(td);
+ return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+asn_dec_rval_t
+GANSSPositioningMethod_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const void *bufptr, size_t size, int tag_mode) {
+ GANSSPositioningMethod_1_inherit_TYPE_descriptor(td);
+ return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+asn_enc_rval_t
+GANSSPositioningMethod_encode_der(asn_TYPE_descriptor_t *td,
+ void *structure, int tag_mode, ber_tlv_tag_t tag,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ GANSSPositioningMethod_1_inherit_TYPE_descriptor(td);
+ return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+asn_dec_rval_t
+GANSSPositioningMethod_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+ GANSSPositioningMethod_1_inherit_TYPE_descriptor(td);
+ return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+asn_enc_rval_t
+GANSSPositioningMethod_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+ int ilevel, enum xer_encoder_flags_e flags,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ GANSSPositioningMethod_1_inherit_TYPE_descriptor(td);
+ return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+asn_dec_rval_t
+GANSSPositioningMethod_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints, void **structure, asn_per_data_t *per_data) {
+ GANSSPositioningMethod_1_inherit_TYPE_descriptor(td);
+ return td->uper_decoder(opt_codec_ctx, td, constraints, structure, per_data);
+}
+
+asn_enc_rval_t
+GANSSPositioningMethod_encode_uper(asn_TYPE_descriptor_t *td,
+ asn_per_constraints_t *constraints,
+ void *structure, asn_per_outp_t *per_out) {
+ GANSSPositioningMethod_1_inherit_TYPE_descriptor(td);
+ return td->uper_encoder(td, constraints, structure, per_out);
+}
+
+static asn_per_constraints_t asn_PER_type_GANSSPositioningMethod_constr_1 = {
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ { APC_CONSTRAINED, 4, 4, 2, 16 } /* (SIZE(2..16)) */,
+ 0, 0 /* No PER value map */
+};
+static ber_tlv_tag_t asn_DEF_GANSSPositioningMethod_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_GANSSPositioningMethod = {
+ "GANSSPositioningMethod",
+ "GANSSPositioningMethod",
+ GANSSPositioningMethod_free,
+ GANSSPositioningMethod_print,
+ GANSSPositioningMethod_constraint,
+ GANSSPositioningMethod_decode_ber,
+ GANSSPositioningMethod_encode_der,
+ GANSSPositioningMethod_decode_xer,
+ GANSSPositioningMethod_encode_xer,
+ GANSSPositioningMethod_decode_uper,
+ GANSSPositioningMethod_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_GANSSPositioningMethod_tags_1,
+ sizeof(asn_DEF_GANSSPositioningMethod_tags_1)
+ /sizeof(asn_DEF_GANSSPositioningMethod_tags_1[0]), /* 1 */
+ asn_DEF_GANSSPositioningMethod_tags_1, /* Same as above */
+ sizeof(asn_DEF_GANSSPositioningMethod_tags_1)
+ /sizeof(asn_DEF_GANSSPositioningMethod_tags_1[0]), /* 1 */
+ &asn_PER_type_GANSSPositioningMethod_constr_1,
+ 0, 0, /* Defined elsewhere */
+ 0 /* No specifics */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSSPositioningMethod.h b/src/core/libs/supl/asn-rrlp/GANSSPositioningMethod.h
new file mode 100644
index 000000000..334d978ce
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSPositioningMethod.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSSPositioningMethod_H_
+#define _GANSSPositioningMethod_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum GANSSPositioningMethod {
+ GANSSPositioningMethod_gps = 0,
+ GANSSPositioningMethod_galileo = 1
+} e_GANSSPositioningMethod;
+
+/* GANSSPositioningMethod */
+typedef BIT_STRING_t GANSSPositioningMethod_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSSPositioningMethod;
+asn_struct_free_f GANSSPositioningMethod_free;
+asn_struct_print_f GANSSPositioningMethod_print;
+asn_constr_check_f GANSSPositioningMethod_constraint;
+ber_type_decoder_f GANSSPositioningMethod_decode_ber;
+der_type_encoder_f GANSSPositioningMethod_encode_der;
+xer_type_decoder_f GANSSPositioningMethod_decode_xer;
+xer_type_encoder_f GANSSPositioningMethod_encode_xer;
+per_type_decoder_f GANSSPositioningMethod_decode_uper;
+per_type_encoder_f GANSSPositioningMethod_encode_uper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GANSSPositioningMethod_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSSRealTimeIntegrity.c b/src/core/libs/supl/asn-rrlp/GANSSRealTimeIntegrity.c
new file mode 100644
index 000000000..03b725abc
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSRealTimeIntegrity.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSSRealTimeIntegrity.h"
+
+static asn_TYPE_member_t asn_MBR_GANSSRealTimeIntegrity_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSRealTimeIntegrity, ganssBadSignalList),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SeqOfBadSignalElement,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssBadSignalList"
+ },
+};
+static ber_tlv_tag_t asn_DEF_GANSSRealTimeIntegrity_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_GANSSRealTimeIntegrity_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ganssBadSignalList at 1295 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_GANSSRealTimeIntegrity_specs_1 = {
+ sizeof(struct GANSSRealTimeIntegrity),
+ offsetof(struct GANSSRealTimeIntegrity, _asn_ctx),
+ asn_MAP_GANSSRealTimeIntegrity_tag2el_1,
+ 1, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_GANSSRealTimeIntegrity = {
+ "GANSSRealTimeIntegrity",
+ "GANSSRealTimeIntegrity",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_GANSSRealTimeIntegrity_tags_1,
+ sizeof(asn_DEF_GANSSRealTimeIntegrity_tags_1)
+ /sizeof(asn_DEF_GANSSRealTimeIntegrity_tags_1[0]), /* 1 */
+ asn_DEF_GANSSRealTimeIntegrity_tags_1, /* Same as above */
+ sizeof(asn_DEF_GANSSRealTimeIntegrity_tags_1)
+ /sizeof(asn_DEF_GANSSRealTimeIntegrity_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_GANSSRealTimeIntegrity_1,
+ 1, /* Elements count */
+ &asn_SPC_GANSSRealTimeIntegrity_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSSRealTimeIntegrity.h b/src/core/libs/supl/asn-rrlp/GANSSRealTimeIntegrity.h
new file mode 100644
index 000000000..d3fa6649a
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSRealTimeIntegrity.h
@@ -0,0 +1,37 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSSRealTimeIntegrity_H_
+#define _GANSSRealTimeIntegrity_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "SeqOfBadSignalElement.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GANSSRealTimeIntegrity */
+typedef struct GANSSRealTimeIntegrity {
+ SeqOfBadSignalElement_t ganssBadSignalList;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GANSSRealTimeIntegrity_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSSRealTimeIntegrity;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GANSSRealTimeIntegrity_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSSRefLocation.c b/src/core/libs/supl/asn-rrlp/GANSSRefLocation.c
new file mode 100644
index 000000000..54e59f04f
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSRefLocation.c
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSSRefLocation.h"
+
+static asn_TYPE_member_t asn_MBR_GANSSRefLocation_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSRefLocation, threeDLocation),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_Ext_GeographicalInformation,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "threeDLocation"
+ },
+};
+static ber_tlv_tag_t asn_DEF_GANSSRefLocation_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_GANSSRefLocation_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* threeDLocation at 1132 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_GANSSRefLocation_specs_1 = {
+ sizeof(struct GANSSRefLocation),
+ offsetof(struct GANSSRefLocation, _asn_ctx),
+ asn_MAP_GANSSRefLocation_tag2el_1,
+ 1, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_GANSSRefLocation = {
+ "GANSSRefLocation",
+ "GANSSRefLocation",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_GANSSRefLocation_tags_1,
+ sizeof(asn_DEF_GANSSRefLocation_tags_1)
+ /sizeof(asn_DEF_GANSSRefLocation_tags_1[0]), /* 1 */
+ asn_DEF_GANSSRefLocation_tags_1, /* Same as above */
+ sizeof(asn_DEF_GANSSRefLocation_tags_1)
+ /sizeof(asn_DEF_GANSSRefLocation_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_GANSSRefLocation_1,
+ 1, /* Elements count */
+ &asn_SPC_GANSSRefLocation_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSSRefLocation.h b/src/core/libs/supl/asn-rrlp/GANSSRefLocation.h
new file mode 100644
index 000000000..ea8ab7bb8
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSRefLocation.h
@@ -0,0 +1,37 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSSRefLocation_H_
+#define _GANSSRefLocation_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "Ext-GeographicalInformation.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GANSSRefLocation */
+typedef struct GANSSRefLocation {
+ Ext_GeographicalInformation_t threeDLocation;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GANSSRefLocation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSSRefLocation;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GANSSRefLocation_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSSRefMeasurementAssist.c b/src/core/libs/supl/asn-rrlp/GANSSRefMeasurementAssist.c
new file mode 100644
index 000000000..9a5a09290
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSRefMeasurementAssist.c
@@ -0,0 +1,101 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSSRefMeasurementAssist.h"
+
+static int
+memb_ganssSignalID_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 3)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_ganssSignalID_constr_2 = {
+ { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_GANSSRefMeasurementAssist_1[] = {
+ { ATF_POINTER, 1, offsetof(struct GANSSRefMeasurementAssist, ganssSignalID),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_ganssSignalID_constraint_1,
+ &asn_PER_memb_ganssSignalID_constr_2,
+ 0,
+ "ganssSignalID"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSRefMeasurementAssist, ganssRefMeasAssitList),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SeqOfGANSSRefMeasurementElement,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssRefMeasAssitList"
+ },
+};
+static int asn_MAP_GANSSRefMeasurementAssist_oms_1[] = { 0 };
+static ber_tlv_tag_t asn_DEF_GANSSRefMeasurementAssist_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_GANSSRefMeasurementAssist_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ganssSignalID at 1321 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ganssRefMeasAssitList at 1323 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_GANSSRefMeasurementAssist_specs_1 = {
+ sizeof(struct GANSSRefMeasurementAssist),
+ offsetof(struct GANSSRefMeasurementAssist, _asn_ctx),
+ asn_MAP_GANSSRefMeasurementAssist_tag2el_1,
+ 2, /* Count of tags in the map */
+ asn_MAP_GANSSRefMeasurementAssist_oms_1, /* Optional members */
+ 1, 0, /* Root/Additions */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_GANSSRefMeasurementAssist = {
+ "GANSSRefMeasurementAssist",
+ "GANSSRefMeasurementAssist",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_GANSSRefMeasurementAssist_tags_1,
+ sizeof(asn_DEF_GANSSRefMeasurementAssist_tags_1)
+ /sizeof(asn_DEF_GANSSRefMeasurementAssist_tags_1[0]), /* 1 */
+ asn_DEF_GANSSRefMeasurementAssist_tags_1, /* Same as above */
+ sizeof(asn_DEF_GANSSRefMeasurementAssist_tags_1)
+ /sizeof(asn_DEF_GANSSRefMeasurementAssist_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_GANSSRefMeasurementAssist_1,
+ 2, /* Elements count */
+ &asn_SPC_GANSSRefMeasurementAssist_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSSRefMeasurementAssist.h b/src/core/libs/supl/asn-rrlp/GANSSRefMeasurementAssist.h
new file mode 100644
index 000000000..0fc7a48f7
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSRefMeasurementAssist.h
@@ -0,0 +1,39 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSSRefMeasurementAssist_H_
+#define _GANSSRefMeasurementAssist_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+#include "SeqOfGANSSRefMeasurementElement.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GANSSRefMeasurementAssist */
+typedef struct GANSSRefMeasurementAssist {
+ long *ganssSignalID /* OPTIONAL */;
+ SeqOfGANSSRefMeasurementElement_t ganssRefMeasAssitList;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GANSSRefMeasurementAssist_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSSRefMeasurementAssist;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GANSSRefMeasurementAssist_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSSRefMeasurementElement.c b/src/core/libs/supl/asn-rrlp/GANSSRefMeasurementElement.c
new file mode 100644
index 000000000..f67633244
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSRefMeasurementElement.c
@@ -0,0 +1,241 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSSRefMeasurementElement.h"
+
+static int
+memb_doppler0_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= -2048 && value <= 2047)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_codePhase_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 1022)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_intCodePhase_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 127)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_codePhaseSearchWindow_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 31)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_doppler0_constr_3 = {
+ { APC_CONSTRAINED, 12, 12, -2048, 2047 } /* (-2048..2047) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_codePhase_constr_5 = {
+ { APC_CONSTRAINED, 10, 10, 0, 1022 } /* (0..1022) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_intCodePhase_constr_6 = {
+ { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_codePhaseSearchWindow_constr_7 = {
+ { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_GANSSRefMeasurementElement_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSRefMeasurementElement, svID),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SVID,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "svID"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSRefMeasurementElement, doppler0),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_doppler0_constraint_1,
+ &asn_PER_memb_doppler0_constr_3,
+ 0,
+ "doppler0"
+ },
+ { ATF_POINTER, 1, offsetof(struct GANSSRefMeasurementElement, additionalDoppler),
+ (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_AdditionalDopplerFields,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "additionalDoppler"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSRefMeasurementElement, codePhase),
+ (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_codePhase_constraint_1,
+ &asn_PER_memb_codePhase_constr_5,
+ 0,
+ "codePhase"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSRefMeasurementElement, intCodePhase),
+ (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_intCodePhase_constraint_1,
+ &asn_PER_memb_intCodePhase_constr_6,
+ 0,
+ "intCodePhase"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSRefMeasurementElement, codePhaseSearchWindow),
+ (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_codePhaseSearchWindow_constraint_1,
+ &asn_PER_memb_codePhaseSearchWindow_constr_7,
+ 0,
+ "codePhaseSearchWindow"
+ },
+ { ATF_POINTER, 1, offsetof(struct GANSSRefMeasurementElement, additionalAngle),
+ (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_AddionalAngleFields,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "additionalAngle"
+ },
+};
+static int asn_MAP_GANSSRefMeasurementElement_oms_1[] = { 2, 6 };
+static ber_tlv_tag_t asn_DEF_GANSSRefMeasurementElement_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_GANSSRefMeasurementElement_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* svID at 1328 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* doppler0 at 1331 */
+ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* additionalDoppler at 1332 */
+ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* codePhase at 1333 */
+ { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* intCodePhase at 1334 */
+ { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* codePhaseSearchWindow at 1335 */
+ { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* additionalAngle at 1336 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_GANSSRefMeasurementElement_specs_1 = {
+ sizeof(struct GANSSRefMeasurementElement),
+ offsetof(struct GANSSRefMeasurementElement, _asn_ctx),
+ asn_MAP_GANSSRefMeasurementElement_tag2el_1,
+ 7, /* Count of tags in the map */
+ asn_MAP_GANSSRefMeasurementElement_oms_1, /* Optional members */
+ 2, 0, /* Root/Additions */
+ 6, /* Start extensions */
+ 8 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_GANSSRefMeasurementElement = {
+ "GANSSRefMeasurementElement",
+ "GANSSRefMeasurementElement",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_GANSSRefMeasurementElement_tags_1,
+ sizeof(asn_DEF_GANSSRefMeasurementElement_tags_1)
+ /sizeof(asn_DEF_GANSSRefMeasurementElement_tags_1[0]), /* 1 */
+ asn_DEF_GANSSRefMeasurementElement_tags_1, /* Same as above */
+ sizeof(asn_DEF_GANSSRefMeasurementElement_tags_1)
+ /sizeof(asn_DEF_GANSSRefMeasurementElement_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_GANSSRefMeasurementElement_1,
+ 7, /* Elements count */
+ &asn_SPC_GANSSRefMeasurementElement_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSSRefMeasurementElement.h b/src/core/libs/supl/asn-rrlp/GANSSRefMeasurementElement.h
new file mode 100644
index 000000000..2c98266fb
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSRefMeasurementElement.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSSRefMeasurementElement_H_
+#define _GANSSRefMeasurementElement_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "SVID.h"
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct AdditionalDopplerFields;
+struct AddionalAngleFields;
+
+/* GANSSRefMeasurementElement */
+typedef struct GANSSRefMeasurementElement {
+ SVID_t svID;
+ long doppler0;
+ struct AdditionalDopplerFields *additionalDoppler /* OPTIONAL */;
+ long codePhase;
+ long intCodePhase;
+ long codePhaseSearchWindow;
+ struct AddionalAngleFields *additionalAngle /* OPTIONAL */;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GANSSRefMeasurementElement_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSSRefMeasurementElement;
+
+#ifdef __cplusplus
+}
+#endif
+
+/* Referred external types */
+#include "AdditionalDopplerFields.h"
+#include "AddionalAngleFields.h"
+
+#endif /* _GANSSRefMeasurementElement_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSSRefTimeInfo.c b/src/core/libs/supl/asn-rrlp/GANSSRefTimeInfo.c
new file mode 100644
index 000000000..406523ba9
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSRefTimeInfo.c
@@ -0,0 +1,151 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSSRefTimeInfo.h"
+
+static int
+memb_ganssDay_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 8191)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_ganssTimeID_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 7)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_ganssDay_constr_2 = {
+ { APC_CONSTRAINED, 13, 13, 0, 8191 } /* (0..8191) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_ganssTimeID_constr_5 = {
+ { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_GANSSRefTimeInfo_1[] = {
+ { ATF_POINTER, 1, offsetof(struct GANSSRefTimeInfo, ganssDay),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_ganssDay_constraint_1,
+ &asn_PER_memb_ganssDay_constr_2,
+ 0,
+ "ganssDay"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSRefTimeInfo, ganssTOD),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_GANSSTOD,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssTOD"
+ },
+ { ATF_POINTER, 2, offsetof(struct GANSSRefTimeInfo, ganssTODUncertainty),
+ (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_GANSSTODUncertainty,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssTODUncertainty"
+ },
+ { ATF_POINTER, 1, offsetof(struct GANSSRefTimeInfo, ganssTimeID),
+ (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_ganssTimeID_constraint_1,
+ &asn_PER_memb_ganssTimeID_constr_5,
+ 0,
+ "ganssTimeID"
+ },
+};
+static int asn_MAP_GANSSRefTimeInfo_oms_1[] = { 0, 2, 3 };
+static ber_tlv_tag_t asn_DEF_GANSSRefTimeInfo_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_GANSSRefTimeInfo_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ganssDay at 1104 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ganssTOD at 1105 */
+ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ganssTODUncertainty at 1106 */
+ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ganssTimeID at 1107 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_GANSSRefTimeInfo_specs_1 = {
+ sizeof(struct GANSSRefTimeInfo),
+ offsetof(struct GANSSRefTimeInfo, _asn_ctx),
+ asn_MAP_GANSSRefTimeInfo_tag2el_1,
+ 4, /* Count of tags in the map */
+ asn_MAP_GANSSRefTimeInfo_oms_1, /* Optional members */
+ 3, 0, /* Root/Additions */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_GANSSRefTimeInfo = {
+ "GANSSRefTimeInfo",
+ "GANSSRefTimeInfo",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_GANSSRefTimeInfo_tags_1,
+ sizeof(asn_DEF_GANSSRefTimeInfo_tags_1)
+ /sizeof(asn_DEF_GANSSRefTimeInfo_tags_1[0]), /* 1 */
+ asn_DEF_GANSSRefTimeInfo_tags_1, /* Same as above */
+ sizeof(asn_DEF_GANSSRefTimeInfo_tags_1)
+ /sizeof(asn_DEF_GANSSRefTimeInfo_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_GANSSRefTimeInfo_1,
+ 4, /* Elements count */
+ &asn_SPC_GANSSRefTimeInfo_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSSRefTimeInfo.h b/src/core/libs/supl/asn-rrlp/GANSSRefTimeInfo.h
new file mode 100644
index 000000000..58139a317
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSRefTimeInfo.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSSRefTimeInfo_H_
+#define _GANSSRefTimeInfo_H_
+
+
+#include
+
+/* Including external dependencies */
+#include
+#include "GANSSTOD.h"
+#include "GANSSTODUncertainty.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GANSSRefTimeInfo */
+typedef struct GANSSRefTimeInfo {
+ long *ganssDay /* OPTIONAL */;
+ GANSSTOD_t ganssTOD;
+ GANSSTODUncertainty_t *ganssTODUncertainty /* OPTIONAL */;
+ long *ganssTimeID /* OPTIONAL */;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GANSSRefTimeInfo_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSSRefTimeInfo;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GANSSRefTimeInfo_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSSReferenceTime.c b/src/core/libs/supl/asn-rrlp/GANSSReferenceTime.c
new file mode 100644
index 000000000..bb6148046
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSReferenceTime.c
@@ -0,0 +1,71 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSSReferenceTime.h"
+
+static asn_TYPE_member_t asn_MBR_GANSSReferenceTime_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSReferenceTime, ganssRefTimeInfo),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_GANSSRefTimeInfo,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssRefTimeInfo"
+ },
+ { ATF_POINTER, 1, offsetof(struct GANSSReferenceTime, ganssTOD_GSMTimeAssociation),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_GANSSTOD_GSMTimeAssociation,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssTOD-GSMTimeAssociation"
+ },
+};
+static int asn_MAP_GANSSReferenceTime_oms_1[] = { 1 };
+static ber_tlv_tag_t asn_DEF_GANSSReferenceTime_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_GANSSReferenceTime_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ganssRefTimeInfo at 1098 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ganssTOD-GSMTimeAssociation at 1099 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_GANSSReferenceTime_specs_1 = {
+ sizeof(struct GANSSReferenceTime),
+ offsetof(struct GANSSReferenceTime, _asn_ctx),
+ asn_MAP_GANSSReferenceTime_tag2el_1,
+ 2, /* Count of tags in the map */
+ asn_MAP_GANSSReferenceTime_oms_1, /* Optional members */
+ 1, 0, /* Root/Additions */
+ -1, /* Start extensions */
+ -1 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_GANSSReferenceTime = {
+ "GANSSReferenceTime",
+ "GANSSReferenceTime",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_GANSSReferenceTime_tags_1,
+ sizeof(asn_DEF_GANSSReferenceTime_tags_1)
+ /sizeof(asn_DEF_GANSSReferenceTime_tags_1[0]), /* 1 */
+ asn_DEF_GANSSReferenceTime_tags_1, /* Same as above */
+ sizeof(asn_DEF_GANSSReferenceTime_tags_1)
+ /sizeof(asn_DEF_GANSSReferenceTime_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_GANSSReferenceTime_1,
+ 2, /* Elements count */
+ &asn_SPC_GANSSReferenceTime_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSSReferenceTime.h b/src/core/libs/supl/asn-rrlp/GANSSReferenceTime.h
new file mode 100644
index 000000000..e58e47069
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSReferenceTime.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSSReferenceTime_H_
+#define _GANSSReferenceTime_H_
+
+
+#include
+
+/* Including external dependencies */
+#include "GANSSRefTimeInfo.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GANSSTOD_GSMTimeAssociation;
+
+/* GANSSReferenceTime */
+typedef struct GANSSReferenceTime {
+ GANSSRefTimeInfo_t ganssRefTimeInfo;
+ struct GANSSTOD_GSMTimeAssociation *ganssTOD_GSMTimeAssociation /* OPTIONAL */;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} GANSSReferenceTime_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GANSSReferenceTime;
+
+#ifdef __cplusplus
+}
+#endif
+
+/* Referred external types */
+#include "GANSSTOD-GSMTimeAssociation.h"
+
+#endif /* _GANSSReferenceTime_H_ */
+#include
diff --git a/src/core/libs/supl/asn-rrlp/GANSSSatelliteElement.c b/src/core/libs/supl/asn-rrlp/GANSSSatelliteElement.c
new file mode 100644
index 000000000..d32e86bf5
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSSatelliteElement.c
@@ -0,0 +1,159 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#include "GANSSSatelliteElement.h"
+
+static int
+memb_svHealth_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= -7 && value <= 13)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static int
+memb_iod_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+ long value;
+
+ if(!sptr) {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: value not given (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+
+ value = *(const long *)sptr;
+
+ if((value >= 0 && value <= 1023)) {
+ /* Constraint check succeeded */
+ return 0;
+ } else {
+ _ASN_CTFAIL(app_key, td, sptr,
+ "%s: constraint failed (%s:%d)",
+ td->name, __FILE__, __LINE__);
+ return -1;
+ }
+}
+
+static asn_per_constraints_t asn_PER_memb_svHealth_constr_3 = {
+ { APC_CONSTRAINED, 5, 5, -7, 13 } /* (-7..13) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_per_constraints_t asn_PER_memb_iod_constr_4 = {
+ { APC_CONSTRAINED, 10, 10, 0, 1023 } /* (0..1023) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_GANSSSatelliteElement_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSSatelliteElement, svID),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SVID,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "svID"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSSatelliteElement, svHealth),
+ (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_svHealth_constraint_1,
+ &asn_PER_memb_svHealth_constr_3,
+ 0,
+ "svHealth"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSSatelliteElement, iod),
+ (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_NativeInteger,
+ memb_iod_constraint_1,
+ &asn_PER_memb_iod_constr_4,
+ 0,
+ "iod"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSSatelliteElement, ganssClockModel),
+ (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+ +1, /* EXPLICIT tag at current level */
+ &asn_DEF_GANSSClockModel,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssClockModel"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct GANSSSatelliteElement, ganssOrbitModel),
+ (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+ +1, /* EXPLICIT tag at current level */
+ &asn_DEF_GANSSOrbitModel,
+ 0, /* Defer constraints checking to the member type */
+ 0, /* No PER visible constraints */
+ 0,
+ "ganssOrbitModel"
+ },
+};
+static ber_tlv_tag_t asn_DEF_GANSSSatelliteElement_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_TYPE_tag2member_t asn_MAP_GANSSSatelliteElement_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* svID at 1238 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* svHealth at 1239 */
+ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* iod at 1240 */
+ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ganssClockModel at 1241 */
+ { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ganssOrbitModel at 1242 */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_GANSSSatelliteElement_specs_1 = {
+ sizeof(struct GANSSSatelliteElement),
+ offsetof(struct GANSSSatelliteElement, _asn_ctx),
+ asn_MAP_GANSSSatelliteElement_tag2el_1,
+ 5, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ 4, /* Start extensions */
+ 6 /* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_GANSSSatelliteElement = {
+ "GANSSSatelliteElement",
+ "GANSSSatelliteElement",
+ SEQUENCE_free,
+ SEQUENCE_print,
+ SEQUENCE_constraint,
+ SEQUENCE_decode_ber,
+ SEQUENCE_encode_der,
+ SEQUENCE_decode_xer,
+ SEQUENCE_encode_xer,
+ SEQUENCE_decode_uper,
+ SEQUENCE_encode_uper,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_GANSSSatelliteElement_tags_1,
+ sizeof(asn_DEF_GANSSSatelliteElement_tags_1)
+ /sizeof(asn_DEF_GANSSSatelliteElement_tags_1[0]), /* 1 */
+ asn_DEF_GANSSSatelliteElement_tags_1, /* Same as above */
+ sizeof(asn_DEF_GANSSSatelliteElement_tags_1)
+ /sizeof(asn_DEF_GANSSSatelliteElement_tags_1[0]), /* 1 */
+ 0, /* No PER visible constraints */
+ asn_MBR_GANSSSatelliteElement_1,
+ 5, /* Elements count */
+ &asn_SPC_GANSSSatelliteElement_specs_1 /* Additional specs */
+};
+
diff --git a/src/core/libs/supl/asn-rrlp/GANSSSatelliteElement.h b/src/core/libs/supl/asn-rrlp/GANSSSatelliteElement.h
new file mode 100644
index 000000000..4027c41c5
--- /dev/null
+++ b/src/core/libs/supl/asn-rrlp/GANSSSatelliteElement.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
+ * From ASN.1 module "RRLP-Components"
+ * found in "../rrlp-components.asn"
+ */
+
+#ifndef _GANSSSatelliteElement_H_
+#define _GANSSSatelliteElement_H_
+
+
+#include