jolly has uploaded this change for review.
V1.2: Change fields in ProvideEimPackage(Result)
Change parameters in ProvideEimPackage and ProvideEimPackageResult. The
structure is changed in IPA too. The new field eimTransactionId of
EimPackageResultResponseError is filled with the eimTransactionId of
IpaEuiccDataRequest, if exists.
Reference: SGP.32 Section 5.14.6
Related: SYS#8101
Change-Id: I24baab4f9351aec27c58403b94974cba4b274c34
---
M asn1/SGP32Definitions.asn
M src/ipa/libasn/CMakeLists.txt
A src/ipa/libasn/EimPackageResult.c
A src/ipa/libasn/EimPackageResult.h
A src/ipa/libasn/EimPackageResultErrorCode.c
A src/ipa/libasn/EimPackageResultErrorCode.h
A src/ipa/libasn/EimPackageResultResponseError.c
A src/ipa/libasn/EimPackageResultResponseError.h
M src/ipa/libasn/ProvideEimPackageResult.c
M src/ipa/libasn/ProvideEimPackageResult.h
M src/ipa/libasn/ProvideEimPackageResultResponse.c
M src/ipa/libasn/ProvideEimPackageResultResponse.h
M src/ipa/libipa/esipa_prvde_eim_pkg_rslt.c
M src/ipa/libipa/esipa_prvde_eim_pkg_rslt.h
M src/ipa/libipa/proc_euicc_data_req.c
M src/ipa/libipa/proc_euicc_pkg_dwnld_exec.c
16 files changed, 625 insertions(+), 220 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/onomondo-ipa refs/changes/55/43055/1
diff --git a/asn1/SGP32Definitions.asn b/asn1/SGP32Definitions.asn
index 1f0edb7..14ee3cb 100644
--- a/asn1/SGP32Definitions.asn
+++ b/asn1/SGP32Definitions.asn
@@ -1006,23 +1006,39 @@
-- Section 6.3.2.7
-- ASN1START
-ProvideEimPackageResult ::= [80] CHOICE { -- Tag 'BF50'
+EimPackageResultErrorCode ::= INTEGER {
+ invalidPackageFormat(1),
+ unknownPackage(2),
+ undefinedError(127)
+}
+EimPackageResultResponseError ::= SEQUENCE {
+ eimTransactionId [0] TransactionId OPTIONAL,
+ eimPackageResultErrorCode EimPackageResultErrorCode
+}
+EimPackageResult ::= CHOICE {
euiccPackageResult [81] EuiccPackageResult, -- Tag 'BF51'
ePRAndNotifications SEQUENCE {
euiccPackageResult [81] EuiccPackageResult, -- Tag 'BF51'
- notificationList [43] SGP32-RetrieveNotificationsListResponse -- Tag 'BF2B'
+ notificationList [0] PendingNotificationList -- Tag 'A0'
},
ipaEuiccDataResponse [82] IpaEuiccDataResponse, -- Tag 'BF52'
profileDownloadTriggerResult [84] ProfileDownloadTriggerResult, -- Tag 'BF54'
- eimPackageError INTEGER {
- invalidPackageFormat(1),
- unknownPackage(2),
+ eimPackageResultResponseError [0] EimPackageResultResponseError
+}
+ProvideEimPackageResult ::= [80] SEQUENCE { -- Tag 'BF50'
+ eidValue [APPLICATION 26] Octet16 OPTIONAL, -- Tag '5A'
+ eimPackageResult EimPackageResult
+}
+ProvideEimPackageResultResponse ::= [80] CHOICE { -- Tag 'BF50'
+ eimAcknowledgements [83] EimAcknowledgements, -- Tag 'BF53'
+ emptyResponse SEQUENCE {}, -- because EimAcknowledgements was OPTIONAL
+ provideEimPackageResultError INTEGER {
+ eidNotFound(2),
+ invalidEid(3),
+ missingEid(4),
undefinedError(127)
}
}
-ProvideEimPackageResultResponse ::= [80] SEQUENCE { -- Tag 'BF50'
- eimAcknowledgements [83] EimAcknowledgements OPTIONAL -- Tag 'BF53'
-}
-- ASN1STOP
-- Section 6.3.3.1
diff --git a/src/ipa/libasn/CMakeLists.txt b/src/ipa/libasn/CMakeLists.txt
index b1f9d8a..3d5d649 100644
--- a/src/ipa/libasn/CMakeLists.txt
+++ b/src/ipa/libasn/CMakeLists.txt
@@ -287,6 +287,12 @@
EimIdInfo.h
EimIdType.c
EimIdType.h
+EimPackageResult.c
+EimPackageResultErrorCode.c
+EimPackageResultErrorCode.h
+EimPackageResult.h
+EimPackageResultResponseError.c
+EimPackageResultResponseError.h
EimSupportedProtocol.c
EimSupportedProtocol.h
EmailAddress.c
diff --git a/src/ipa/libasn/EimPackageResult.c b/src/ipa/libasn/EimPackageResult.c
new file mode 100644
index 0000000..8963e6a
--- /dev/null
+++ b/src/ipa/libasn/EimPackageResult.c
@@ -0,0 +1,150 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "SGP32Definitions"
+ * found in "../../../asn1/SGP32Definitions.asn"
+ * `asn1c -fcompound-names -no-gen-example`
+ */
+
+#include "EimPackageResult.h"
+
+static asn_oer_constraints_t asn_OER_type_EimPackageResult_constr_1 CC_NOTUSED = {
+ { 0, 0 },
+ -1};
+asn_per_constraints_t asn_PER_type_EimPackageResult_constr_1 CC_NOTUSED = {
+ { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ePRAndNotifications_3[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct EimPackageResult__ePRAndNotifications, euiccPackageResult),
+ (ASN_TAG_CLASS_CONTEXT | (81 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_EuiccPackageResult,
+ 0,
+ { 0, 0, 0 },
+ 0, 0, /* No default value */
+ "euiccPackageResult"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct EimPackageResult__ePRAndNotifications, notificationList),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_PendingNotificationList,
+ 0,
+ { 0, 0, 0 },
+ 0, 0, /* No default value */
+ "notificationList"
+ },
+};
+static const ber_tlv_tag_t asn_DEF_ePRAndNotifications_tags_3[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ePRAndNotifications_tag2el_3[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* notificationList */
+ { (ASN_TAG_CLASS_CONTEXT | (81 << 2)), 0, 0, 0 } /* euiccPackageResult */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_ePRAndNotifications_specs_3 = {
+ sizeof(struct EimPackageResult__ePRAndNotifications),
+ offsetof(struct EimPackageResult__ePRAndNotifications, _asn_ctx),
+ asn_MAP_ePRAndNotifications_tag2el_3,
+ 2, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ 2, /* First extension addition */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ePRAndNotifications_3 = {
+ "ePRAndNotifications",
+ "ePRAndNotifications",
+ &asn_OP_SEQUENCE,
+ asn_DEF_ePRAndNotifications_tags_3,
+ sizeof(asn_DEF_ePRAndNotifications_tags_3)
+ /sizeof(asn_DEF_ePRAndNotifications_tags_3[0]), /* 1 */
+ asn_DEF_ePRAndNotifications_tags_3, /* Same as above */
+ sizeof(asn_DEF_ePRAndNotifications_tags_3)
+ /sizeof(asn_DEF_ePRAndNotifications_tags_3[0]), /* 1 */
+ { 0, 0, SEQUENCE_constraint },
+ asn_MBR_ePRAndNotifications_3,
+ 2, /* Elements count */
+ &asn_SPC_ePRAndNotifications_specs_3 /* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_EimPackageResult_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct EimPackageResult, choice.euiccPackageResult),
+ (ASN_TAG_CLASS_CONTEXT | (81 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_EuiccPackageResult,
+ 0,
+ { 0, 0, 0 },
+ 0, 0, /* No default value */
+ "euiccPackageResult"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct EimPackageResult, choice.ePRAndNotifications),
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+ 0,
+ &asn_DEF_ePRAndNotifications_3,
+ 0,
+ { 0, 0, 0 },
+ 0, 0, /* No default value */
+ "ePRAndNotifications"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct EimPackageResult, choice.ipaEuiccDataResponse),
+ (ASN_TAG_CLASS_CONTEXT | (82 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_IpaEuiccDataResponse,
+ 0,
+ { 0, 0, 0 },
+ 0, 0, /* No default value */
+ "ipaEuiccDataResponse"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct EimPackageResult, choice.profileDownloadTriggerResult),
+ (ASN_TAG_CLASS_CONTEXT | (84 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_ProfileDownloadTriggerResult,
+ 0,
+ { 0, 0, 0 },
+ 0, 0, /* No default value */
+ "profileDownloadTriggerResult"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct EimPackageResult, choice.eimPackageResultResponseError),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_EimPackageResultResponseError,
+ 0,
+ { 0, 0, 0 },
+ 0, 0, /* No default value */
+ "eimPackageResultResponseError"
+ },
+};
+static const unsigned asn_MAP_EimPackageResult_to_canonical_1[] = { 1, 4, 0, 2, 3 };
+static const unsigned asn_MAP_EimPackageResult_from_canonical_1[] = { 2, 0, 3, 4, 1 };
+static const asn_TYPE_tag2member_t asn_MAP_EimPackageResult_tag2el_1[] = {
+ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* ePRAndNotifications */
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 4, 0, 0 }, /* eimPackageResultResponseError */
+ { (ASN_TAG_CLASS_CONTEXT | (81 << 2)), 0, 0, 0 }, /* euiccPackageResult */
+ { (ASN_TAG_CLASS_CONTEXT | (82 << 2)), 2, 0, 0 }, /* ipaEuiccDataResponse */
+ { (ASN_TAG_CLASS_CONTEXT | (84 << 2)), 3, 0, 0 } /* profileDownloadTriggerResult */
+};
+asn_CHOICE_specifics_t asn_SPC_EimPackageResult_specs_1 = {
+ sizeof(struct EimPackageResult),
+ offsetof(struct EimPackageResult, _asn_ctx),
+ offsetof(struct EimPackageResult, present),
+ sizeof(((struct EimPackageResult *)0)->present),
+ asn_MAP_EimPackageResult_tag2el_1,
+ 5, /* Count of tags in the map */
+ asn_MAP_EimPackageResult_to_canonical_1,
+ asn_MAP_EimPackageResult_from_canonical_1,
+ 5 /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_EimPackageResult = {
+ "EimPackageResult",
+ "EimPackageResult",
+ &asn_OP_CHOICE,
+ 0, /* No effective tags (pointer) */
+ 0, /* No effective tags (count) */
+ 0, /* No tags (pointer) */
+ 0, /* No tags (count) */
+ { &asn_OER_type_EimPackageResult_constr_1, &asn_PER_type_EimPackageResult_constr_1, CHOICE_constraint },
+ asn_MBR_EimPackageResult_1,
+ 5, /* Elements count */
+ &asn_SPC_EimPackageResult_specs_1 /* Additional specs */
+};
+
diff --git a/src/ipa/libasn/EimPackageResult.h b/src/ipa/libasn/EimPackageResult.h
new file mode 100644
index 0000000..5ece031
--- /dev/null
+++ b/src/ipa/libasn/EimPackageResult.h
@@ -0,0 +1,79 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "SGP32Definitions"
+ * found in "../../../asn1/SGP32Definitions.asn"
+ * `asn1c -fcompound-names -no-gen-example`
+ */
+
+#ifndef _EimPackageResult_H_
+#define _EimPackageResult_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "EuiccPackageResult.h"
+#include "IpaEuiccDataResponse.h"
+#include "ProfileDownloadTriggerResult.h"
+#include "EimPackageResultResponseError.h"
+#include "PendingNotificationList.h"
+#include <constr_SEQUENCE.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum EimPackageResult_PR {
+ EimPackageResult_PR_NOTHING, /* No components present */
+ EimPackageResult_PR_euiccPackageResult,
+ EimPackageResult_PR_ePRAndNotifications,
+ EimPackageResult_PR_ipaEuiccDataResponse,
+ EimPackageResult_PR_profileDownloadTriggerResult,
+ EimPackageResult_PR_eimPackageResultResponseError
+ /* Extensions may appear below */
+
+} EimPackageResult_PR;
+
+/* EimPackageResult */
+typedef struct EimPackageResult {
+ EimPackageResult_PR present;
+ union EimPackageResult_u {
+ EuiccPackageResult_t euiccPackageResult;
+ struct EimPackageResult__ePRAndNotifications {
+ EuiccPackageResult_t euiccPackageResult;
+ PendingNotificationList_t notificationList;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } ePRAndNotifications;
+ IpaEuiccDataResponse_t ipaEuiccDataResponse;
+ ProfileDownloadTriggerResult_t profileDownloadTriggerResult;
+ EimPackageResultResponseError_t eimPackageResultResponseError;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} EimPackageResult_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EimPackageResult;
+extern asn_CHOICE_specifics_t asn_SPC_EimPackageResult_specs_1;
+extern asn_TYPE_member_t asn_MBR_EimPackageResult_1[5];
+extern asn_per_constraints_t asn_PER_type_EimPackageResult_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EimPackageResult_H_ */
+#include <asn_internal.h>
diff --git a/src/ipa/libasn/EimPackageResultErrorCode.c b/src/ipa/libasn/EimPackageResultErrorCode.c
new file mode 100644
index 0000000..5261785
--- /dev/null
+++ b/src/ipa/libasn/EimPackageResultErrorCode.c
@@ -0,0 +1,31 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "SGP32Definitions"
+ * found in "../../../asn1/SGP32Definitions.asn"
+ * `asn1c -fcompound-names -no-gen-example`
+ */
+
+#include "EimPackageResultErrorCode.h"
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_EimPackageResultErrorCode_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_EimPackageResultErrorCode = {
+ "EimPackageResultErrorCode",
+ "EimPackageResultErrorCode",
+ &asn_OP_NativeInteger,
+ asn_DEF_EimPackageResultErrorCode_tags_1,
+ sizeof(asn_DEF_EimPackageResultErrorCode_tags_1)
+ /sizeof(asn_DEF_EimPackageResultErrorCode_tags_1[0]), /* 1 */
+ asn_DEF_EimPackageResultErrorCode_tags_1, /* Same as above */
+ sizeof(asn_DEF_EimPackageResultErrorCode_tags_1)
+ /sizeof(asn_DEF_EimPackageResultErrorCode_tags_1[0]), /* 1 */
+ { 0, 0, NativeInteger_constraint },
+ 0, 0, /* Defined elsewhere */
+ 0 /* No specifics */
+};
+
diff --git a/src/ipa/libasn/EimPackageResultErrorCode.h b/src/ipa/libasn/EimPackageResultErrorCode.h
new file mode 100644
index 0000000..f98ff33
--- /dev/null
+++ b/src/ipa/libasn/EimPackageResultErrorCode.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "SGP32Definitions"
+ * found in "../../../asn1/SGP32Definitions.asn"
+ * `asn1c -fcompound-names -no-gen-example`
+ */
+
+#ifndef _EimPackageResultErrorCode_H_
+#define _EimPackageResultErrorCode_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum EimPackageResultErrorCode {
+ EimPackageResultErrorCode_invalidPackageFormat = 1,
+ EimPackageResultErrorCode_unknownPackage = 2,
+ EimPackageResultErrorCode_undefinedError = 127
+} e_EimPackageResultErrorCode;
+
+/* EimPackageResultErrorCode */
+typedef long EimPackageResultErrorCode_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EimPackageResultErrorCode;
+asn_struct_free_f EimPackageResultErrorCode_free;
+asn_struct_print_f EimPackageResultErrorCode_print;
+asn_constr_check_f EimPackageResultErrorCode_constraint;
+ber_type_decoder_f EimPackageResultErrorCode_decode_ber;
+der_type_encoder_f EimPackageResultErrorCode_encode_der;
+xer_type_decoder_f EimPackageResultErrorCode_decode_xer;
+xer_type_encoder_f EimPackageResultErrorCode_encode_xer;
+oer_type_decoder_f EimPackageResultErrorCode_decode_oer;
+oer_type_encoder_f EimPackageResultErrorCode_encode_oer;
+per_type_decoder_f EimPackageResultErrorCode_decode_uper;
+per_type_encoder_f EimPackageResultErrorCode_encode_uper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EimPackageResultErrorCode_H_ */
+#include <asn_internal.h>
diff --git a/src/ipa/libasn/EimPackageResultResponseError.c b/src/ipa/libasn/EimPackageResultResponseError.c
new file mode 100644
index 0000000..ee2ecae
--- /dev/null
+++ b/src/ipa/libasn/EimPackageResultResponseError.c
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "SGP32Definitions"
+ * found in "../../../asn1/SGP32Definitions.asn"
+ * `asn1c -fcompound-names -no-gen-example`
+ */
+
+#include "EimPackageResultResponseError.h"
+
+asn_TYPE_member_t asn_MBR_EimPackageResultResponseError_1[] = {
+ { ATF_POINTER, 1, offsetof(struct EimPackageResultResponseError, eimTransactionId),
+ (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_TransactionId,
+ 0,
+ { 0, 0, 0 },
+ 0, 0, /* No default value */
+ "eimTransactionId"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct EimPackageResultResponseError, eimPackageResultErrorCode),
+ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+ 0,
+ &asn_DEF_EimPackageResultErrorCode,
+ 0,
+ { 0, 0, 0 },
+ 0, 0, /* No default value */
+ "eimPackageResultErrorCode"
+ },
+};
+static const int asn_MAP_EimPackageResultResponseError_oms_1[] = { 0 };
+static const ber_tlv_tag_t asn_DEF_EimPackageResultResponseError_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_EimPackageResultResponseError_tag2el_1[] = {
+ { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* eimPackageResultErrorCode */
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* eimTransactionId */
+};
+asn_SEQUENCE_specifics_t asn_SPC_EimPackageResultResponseError_specs_1 = {
+ sizeof(struct EimPackageResultResponseError),
+ offsetof(struct EimPackageResultResponseError, _asn_ctx),
+ asn_MAP_EimPackageResultResponseError_tag2el_1,
+ 2, /* Count of tags in the map */
+ asn_MAP_EimPackageResultResponseError_oms_1, /* Optional members */
+ 1, 0, /* Root/Additions */
+ 2, /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_EimPackageResultResponseError = {
+ "EimPackageResultResponseError",
+ "EimPackageResultResponseError",
+ &asn_OP_SEQUENCE,
+ asn_DEF_EimPackageResultResponseError_tags_1,
+ sizeof(asn_DEF_EimPackageResultResponseError_tags_1)
+ /sizeof(asn_DEF_EimPackageResultResponseError_tags_1[0]), /* 1 */
+ asn_DEF_EimPackageResultResponseError_tags_1, /* Same as above */
+ sizeof(asn_DEF_EimPackageResultResponseError_tags_1)
+ /sizeof(asn_DEF_EimPackageResultResponseError_tags_1[0]), /* 1 */
+ { 0, 0, SEQUENCE_constraint },
+ asn_MBR_EimPackageResultResponseError_1,
+ 2, /* Elements count */
+ &asn_SPC_EimPackageResultResponseError_specs_1 /* Additional specs */
+};
+
diff --git a/src/ipa/libasn/EimPackageResultResponseError.h b/src/ipa/libasn/EimPackageResultResponseError.h
new file mode 100644
index 0000000..e68419a
--- /dev/null
+++ b/src/ipa/libasn/EimPackageResultResponseError.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "SGP32Definitions"
+ * found in "../../../asn1/SGP32Definitions.asn"
+ * `asn1c -fcompound-names -no-gen-example`
+ */
+
+#ifndef _EimPackageResultResponseError_H_
+#define _EimPackageResultResponseError_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TransactionId.h"
+#include "EimPackageResultErrorCode.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* EimPackageResultResponseError */
+typedef struct EimPackageResultResponseError {
+ TransactionId_t *eimTransactionId /* OPTIONAL */;
+ EimPackageResultErrorCode_t eimPackageResultErrorCode;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} EimPackageResultResponseError_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EimPackageResultResponseError;
+extern asn_SEQUENCE_specifics_t asn_SPC_EimPackageResultResponseError_specs_1;
+extern asn_TYPE_member_t asn_MBR_EimPackageResultResponseError_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EimPackageResultResponseError_H_ */
+#include <asn_internal.h>
diff --git a/src/ipa/libasn/ProvideEimPackageResult.c b/src/ipa/libasn/ProvideEimPackageResult.c
index 2e82ac6..2176d1b 100644
--- a/src/ipa/libasn/ProvideEimPackageResult.c
+++ b/src/ipa/libasn/ProvideEimPackageResult.c
@@ -7,149 +7,61 @@
#include "ProvideEimPackageResult.h"
-static asn_oer_constraints_t asn_OER_type_ProvideEimPackageResult_constr_1 CC_NOTUSED = {
- { 0, 0 },
- -1};
-asn_per_constraints_t asn_PER_type_ProvideEimPackageResult_constr_1 CC_NOTUSED = {
- { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ePRAndNotifications_3[] = {
- { ATF_NOFLAGS, 0, offsetof(struct ProvideEimPackageResult__ePRAndNotifications, euiccPackageResult),
- (ASN_TAG_CLASS_CONTEXT | (81 << 2)),
+asn_TYPE_member_t asn_MBR_ProvideEimPackageResult_1[] = {
+ { ATF_POINTER, 1, offsetof(struct ProvideEimPackageResult, eidValue),
+ (ASN_TAG_CLASS_APPLICATION | (26 << 2)),
-1, /* IMPLICIT tag at current level */
- &asn_DEF_EuiccPackageResult,
+ &asn_DEF_Octet16,
0,
{ 0, 0, 0 },
0, 0, /* No default value */
- "euiccPackageResult"
+ "eidValue"
},
- { ATF_NOFLAGS, 0, offsetof(struct ProvideEimPackageResult__ePRAndNotifications, notificationList),
- (ASN_TAG_CLASS_CONTEXT | (43 << 2)),
- -1, /* IMPLICIT tag at current level */
- &asn_DEF_SGP32_RetrieveNotificationsListResponse,
+ { ATF_NOFLAGS, 0, offsetof(struct ProvideEimPackageResult, eimPackageResult),
+ -1 /* Ambiguous tag (CHOICE?) */,
+ 0,
+ &asn_DEF_EimPackageResult,
0,
{ 0, 0, 0 },
0, 0, /* No default value */
- "notificationList"
+ "eimPackageResult"
},
};
-static const ber_tlv_tag_t asn_DEF_ePRAndNotifications_tags_3[] = {
+static const int asn_MAP_ProvideEimPackageResult_oms_1[] = { 0 };
+static const ber_tlv_tag_t asn_DEF_ProvideEimPackageResult_tags_1[] = {
+ (ASN_TAG_CLASS_CONTEXT | (80 << 2)),
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
-static const asn_TYPE_tag2member_t asn_MAP_ePRAndNotifications_tag2el_3[] = {
- { (ASN_TAG_CLASS_CONTEXT | (43 << 2)), 1, 0, 0 }, /* notificationList */
- { (ASN_TAG_CLASS_CONTEXT | (81 << 2)), 0, 0, 0 } /* euiccPackageResult */
-};
-static asn_SEQUENCE_specifics_t asn_SPC_ePRAndNotifications_specs_3 = {
- sizeof(struct ProvideEimPackageResult__ePRAndNotifications),
- offsetof(struct ProvideEimPackageResult__ePRAndNotifications, _asn_ctx),
- asn_MAP_ePRAndNotifications_tag2el_3,
- 2, /* Count of tags in the map */
- 0, 0, 0, /* Optional elements (not needed) */
- 2, /* First extension addition */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_ePRAndNotifications_3 = {
- "ePRAndNotifications",
- "ePRAndNotifications",
- &asn_OP_SEQUENCE,
- asn_DEF_ePRAndNotifications_tags_3,
- sizeof(asn_DEF_ePRAndNotifications_tags_3)
- /sizeof(asn_DEF_ePRAndNotifications_tags_3[0]), /* 1 */
- asn_DEF_ePRAndNotifications_tags_3, /* Same as above */
- sizeof(asn_DEF_ePRAndNotifications_tags_3)
- /sizeof(asn_DEF_ePRAndNotifications_tags_3[0]), /* 1 */
- { 0, 0, SEQUENCE_constraint },
- asn_MBR_ePRAndNotifications_3,
- 2, /* Elements count */
- &asn_SPC_ePRAndNotifications_specs_3 /* Additional specs */
-};
-
-asn_TYPE_member_t asn_MBR_ProvideEimPackageResult_1[] = {
- { ATF_NOFLAGS, 0, offsetof(struct ProvideEimPackageResult, choice.euiccPackageResult),
- (ASN_TAG_CLASS_CONTEXT | (81 << 2)),
- -1, /* IMPLICIT tag at current level */
- &asn_DEF_EuiccPackageResult,
- 0,
- { 0, 0, 0 },
- 0, 0, /* No default value */
- "euiccPackageResult"
- },
- { ATF_NOFLAGS, 0, offsetof(struct ProvideEimPackageResult, choice.ePRAndNotifications),
- (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
- 0,
- &asn_DEF_ePRAndNotifications_3,
- 0,
- { 0, 0, 0 },
- 0, 0, /* No default value */
- "ePRAndNotifications"
- },
- { ATF_NOFLAGS, 0, offsetof(struct ProvideEimPackageResult, choice.ipaEuiccDataResponse),
- (ASN_TAG_CLASS_CONTEXT | (82 << 2)),
- -1, /* IMPLICIT tag at current level */
- &asn_DEF_IpaEuiccDataResponse,
- 0,
- { 0, 0, 0 },
- 0, 0, /* No default value */
- "ipaEuiccDataResponse"
- },
- { ATF_NOFLAGS, 0, offsetof(struct ProvideEimPackageResult, choice.profileDownloadTriggerResult),
- (ASN_TAG_CLASS_CONTEXT | (84 << 2)),
- -1, /* IMPLICIT tag at current level */
- &asn_DEF_ProfileDownloadTriggerResult,
- 0,
- { 0, 0, 0 },
- 0, 0, /* No default value */
- "profileDownloadTriggerResult"
- },
- { ATF_NOFLAGS, 0, offsetof(struct ProvideEimPackageResult, choice.eimPackageError),
- (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
- 0,
- &asn_DEF_NativeInteger,
- 0,
- { 0, 0, 0 },
- 0, 0, /* No default value */
- "eimPackageError"
- },
-};
-static const unsigned asn_MAP_ProvideEimPackageResult_to_canonical_1[] = { 4, 1, 0, 2, 3 };
-static const unsigned asn_MAP_ProvideEimPackageResult_from_canonical_1[] = { 2, 1, 3, 4, 0 };
-static const ber_tlv_tag_t asn_DEF_ProvideEimPackageResult_tags_1[] = {
- (ASN_TAG_CLASS_CONTEXT | (80 << 2))
-};
static const asn_TYPE_tag2member_t asn_MAP_ProvideEimPackageResult_tag2el_1[] = {
- { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 4, 0, 0 }, /* eimPackageError */
{ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* ePRAndNotifications */
- { (ASN_TAG_CLASS_CONTEXT | (81 << 2)), 0, 0, 0 }, /* euiccPackageResult */
- { (ASN_TAG_CLASS_CONTEXT | (82 << 2)), 2, 0, 0 }, /* ipaEuiccDataResponse */
- { (ASN_TAG_CLASS_CONTEXT | (84 << 2)), 3, 0, 0 } /* profileDownloadTriggerResult */
+ { (ASN_TAG_CLASS_APPLICATION | (26 << 2)), 0, 0, 0 }, /* eidValue */
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* eimPackageResultResponseError */
+ { (ASN_TAG_CLASS_CONTEXT | (81 << 2)), 1, 0, 0 }, /* euiccPackageResult */
+ { (ASN_TAG_CLASS_CONTEXT | (82 << 2)), 1, 0, 0 }, /* ipaEuiccDataResponse */
+ { (ASN_TAG_CLASS_CONTEXT | (84 << 2)), 1, 0, 0 } /* profileDownloadTriggerResult */
};
-asn_CHOICE_specifics_t asn_SPC_ProvideEimPackageResult_specs_1 = {
+asn_SEQUENCE_specifics_t asn_SPC_ProvideEimPackageResult_specs_1 = {
sizeof(struct ProvideEimPackageResult),
offsetof(struct ProvideEimPackageResult, _asn_ctx),
- offsetof(struct ProvideEimPackageResult, present),
- sizeof(((struct ProvideEimPackageResult *)0)->present),
asn_MAP_ProvideEimPackageResult_tag2el_1,
- 5, /* Count of tags in the map */
- asn_MAP_ProvideEimPackageResult_to_canonical_1,
- asn_MAP_ProvideEimPackageResult_from_canonical_1,
- 5 /* Extensions start */
+ 6, /* Count of tags in the map */
+ asn_MAP_ProvideEimPackageResult_oms_1, /* Optional members */
+ 1, 0, /* Root/Additions */
+ 2, /* First extension addition */
};
asn_TYPE_descriptor_t asn_DEF_ProvideEimPackageResult = {
"ProvideEimPackageResult",
"ProvideEimPackageResult",
- &asn_OP_CHOICE,
+ &asn_OP_SEQUENCE,
asn_DEF_ProvideEimPackageResult_tags_1,
sizeof(asn_DEF_ProvideEimPackageResult_tags_1)
- /sizeof(asn_DEF_ProvideEimPackageResult_tags_1[0]), /* 1 */
+ /sizeof(asn_DEF_ProvideEimPackageResult_tags_1[0]) - 1, /* 1 */
asn_DEF_ProvideEimPackageResult_tags_1, /* Same as above */
sizeof(asn_DEF_ProvideEimPackageResult_tags_1)
- /sizeof(asn_DEF_ProvideEimPackageResult_tags_1[0]), /* 1 */
- { &asn_OER_type_ProvideEimPackageResult_constr_1, &asn_PER_type_ProvideEimPackageResult_constr_1, CHOICE_constraint },
+ /sizeof(asn_DEF_ProvideEimPackageResult_tags_1[0]), /* 2 */
+ { 0, 0, SEQUENCE_constraint },
asn_MBR_ProvideEimPackageResult_1,
- 5, /* Elements count */
+ 2, /* Elements count */
&asn_SPC_ProvideEimPackageResult_specs_1 /* Additional specs */
};
diff --git a/src/ipa/libasn/ProvideEimPackageResult.h b/src/ipa/libasn/ProvideEimPackageResult.h
index 2b7fd91..e2f7a3f 100644
--- a/src/ipa/libasn/ProvideEimPackageResult.h
+++ b/src/ipa/libasn/ProvideEimPackageResult.h
@@ -12,59 +12,22 @@
#include <asn_application.h>
/* Including external dependencies */
-#include "EuiccPackageResult.h"
-#include "IpaEuiccDataResponse.h"
-#include "ProfileDownloadTriggerResult.h"
-#include <NativeInteger.h>
-#include "SGP32-RetrieveNotificationsListResponse.h"
+#include "Octet16.h"
+#include "EimPackageResult.h"
#include <constr_SEQUENCE.h>
-#include <constr_CHOICE.h>
#ifdef __cplusplus
extern "C" {
#endif
-/* Dependencies */
-typedef enum ProvideEimPackageResult_PR {
- ProvideEimPackageResult_PR_NOTHING, /* No components present */
- ProvideEimPackageResult_PR_euiccPackageResult,
- ProvideEimPackageResult_PR_ePRAndNotifications,
- ProvideEimPackageResult_PR_ipaEuiccDataResponse,
- ProvideEimPackageResult_PR_profileDownloadTriggerResult,
- ProvideEimPackageResult_PR_eimPackageError
- /* Extensions may appear below */
-
-} ProvideEimPackageResult_PR;
-typedef enum ProvideEimPackageResult__eimPackageError {
- ProvideEimPackageResult__eimPackageError_invalidPackageFormat = 1,
- ProvideEimPackageResult__eimPackageError_unknownPackage = 2,
- ProvideEimPackageResult__eimPackageError_undefinedError = 127
-} e_ProvideEimPackageResult__eimPackageError;
-
/* ProvideEimPackageResult */
typedef struct ProvideEimPackageResult {
- ProvideEimPackageResult_PR present;
- union ProvideEimPackageResult_u {
- EuiccPackageResult_t euiccPackageResult;
- struct ProvideEimPackageResult__ePRAndNotifications {
- EuiccPackageResult_t euiccPackageResult;
- SGP32_RetrieveNotificationsListResponse_t notificationList;
- /*
- * This type is extensible,
- * possible extensions are below.
- */
-
- /* Context for parsing across buffer boundaries */
- asn_struct_ctx_t _asn_ctx;
- } ePRAndNotifications;
- IpaEuiccDataResponse_t ipaEuiccDataResponse;
- ProfileDownloadTriggerResult_t profileDownloadTriggerResult;
- long eimPackageError;
- /*
- * This type is extensible,
- * possible extensions are below.
- */
- } choice;
+ Octet16_t *eidValue /* OPTIONAL */;
+ EimPackageResult_t eimPackageResult;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
@@ -72,9 +35,8 @@
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_ProvideEimPackageResult;
-extern asn_CHOICE_specifics_t asn_SPC_ProvideEimPackageResult_specs_1;
-extern asn_TYPE_member_t asn_MBR_ProvideEimPackageResult_1[5];
-extern asn_per_constraints_t asn_PER_type_ProvideEimPackageResult_constr_1;
+extern asn_SEQUENCE_specifics_t asn_SPC_ProvideEimPackageResult_specs_1;
+extern asn_TYPE_member_t asn_MBR_ProvideEimPackageResult_1[2];
#ifdef __cplusplus
}
diff --git a/src/ipa/libasn/ProvideEimPackageResultResponse.c b/src/ipa/libasn/ProvideEimPackageResultResponse.c
index ddc8964..f7eb2dc 100644
--- a/src/ipa/libasn/ProvideEimPackageResultResponse.c
+++ b/src/ipa/libasn/ProvideEimPackageResultResponse.c
@@ -7,8 +7,43 @@
#include "ProvideEimPackageResultResponse.h"
+static asn_oer_constraints_t asn_OER_type_ProvideEimPackageResultResponse_constr_1 CC_NOTUSED = {
+ { 0, 0 },
+ -1};
+asn_per_constraints_t asn_PER_type_ProvideEimPackageResultResponse_constr_1 CC_NOTUSED = {
+ { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_emptyResponse_tags_3[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SEQUENCE_specifics_t asn_SPC_emptyResponse_specs_3 = {
+ sizeof(struct ProvideEimPackageResultResponse__emptyResponse),
+ offsetof(struct ProvideEimPackageResultResponse__emptyResponse, _asn_ctx),
+ 0, /* No top level tags */
+ 0, /* No tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ -1, /* First extension addition */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_emptyResponse_3 = {
+ "emptyResponse",
+ "emptyResponse",
+ &asn_OP_SEQUENCE,
+ asn_DEF_emptyResponse_tags_3,
+ sizeof(asn_DEF_emptyResponse_tags_3)
+ /sizeof(asn_DEF_emptyResponse_tags_3[0]), /* 1 */
+ asn_DEF_emptyResponse_tags_3, /* Same as above */
+ sizeof(asn_DEF_emptyResponse_tags_3)
+ /sizeof(asn_DEF_emptyResponse_tags_3[0]), /* 1 */
+ { 0, 0, SEQUENCE_constraint },
+ 0, 0, /* No members */
+ &asn_SPC_emptyResponse_specs_3 /* Additional specs */
+};
+
asn_TYPE_member_t asn_MBR_ProvideEimPackageResultResponse_1[] = {
- { ATF_POINTER, 1, offsetof(struct ProvideEimPackageResultResponse, eimAcknowledgements),
+ { ATF_NOFLAGS, 0, offsetof(struct ProvideEimPackageResultResponse, choice.eimAcknowledgements),
(ASN_TAG_CLASS_CONTEXT | (83 << 2)),
-1, /* IMPLICIT tag at current level */
&asn_DEF_EimAcknowledgements,
@@ -17,37 +52,59 @@
0, 0, /* No default value */
"eimAcknowledgements"
},
+ { ATF_NOFLAGS, 0, offsetof(struct ProvideEimPackageResultResponse, choice.emptyResponse),
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+ 0,
+ &asn_DEF_emptyResponse_3,
+ 0,
+ { 0, 0, 0 },
+ 0, 0, /* No default value */
+ "emptyResponse"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct ProvideEimPackageResultResponse, choice.provideEimPackageResultError),
+ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+ 0,
+ &asn_DEF_NativeInteger,
+ 0,
+ { 0, 0, 0 },
+ 0, 0, /* No default value */
+ "provideEimPackageResultError"
+ },
};
-static const int asn_MAP_ProvideEimPackageResultResponse_oms_1[] = { 0 };
+static const unsigned asn_MAP_ProvideEimPackageResultResponse_to_canonical_1[] = { 2, 1, 0 };
+static const unsigned asn_MAP_ProvideEimPackageResultResponse_from_canonical_1[] = { 2, 1, 0 };
static const ber_tlv_tag_t asn_DEF_ProvideEimPackageResultResponse_tags_1[] = {
- (ASN_TAG_CLASS_CONTEXT | (80 << 2)),
- (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+ (ASN_TAG_CLASS_CONTEXT | (80 << 2))
};
static const asn_TYPE_tag2member_t asn_MAP_ProvideEimPackageResultResponse_tag2el_1[] = {
+ { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, 0, 0 }, /* provideEimPackageResultError */
+ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* emptyResponse */
{ (ASN_TAG_CLASS_CONTEXT | (83 << 2)), 0, 0, 0 } /* eimAcknowledgements */
};
-asn_SEQUENCE_specifics_t asn_SPC_ProvideEimPackageResultResponse_specs_1 = {
+asn_CHOICE_specifics_t asn_SPC_ProvideEimPackageResultResponse_specs_1 = {
sizeof(struct ProvideEimPackageResultResponse),
offsetof(struct ProvideEimPackageResultResponse, _asn_ctx),
+ offsetof(struct ProvideEimPackageResultResponse, present),
+ sizeof(((struct ProvideEimPackageResultResponse *)0)->present),
asn_MAP_ProvideEimPackageResultResponse_tag2el_1,
- 1, /* Count of tags in the map */
- asn_MAP_ProvideEimPackageResultResponse_oms_1, /* Optional members */
- 1, 0, /* Root/Additions */
- 1, /* First extension addition */
+ 3, /* Count of tags in the map */
+ asn_MAP_ProvideEimPackageResultResponse_to_canonical_1,
+ asn_MAP_ProvideEimPackageResultResponse_from_canonical_1,
+ 3 /* Extensions start */
};
asn_TYPE_descriptor_t asn_DEF_ProvideEimPackageResultResponse = {
"ProvideEimPackageResultResponse",
"ProvideEimPackageResultResponse",
- &asn_OP_SEQUENCE,
+ &asn_OP_CHOICE,
asn_DEF_ProvideEimPackageResultResponse_tags_1,
sizeof(asn_DEF_ProvideEimPackageResultResponse_tags_1)
- /sizeof(asn_DEF_ProvideEimPackageResultResponse_tags_1[0]) - 1, /* 1 */
+ /sizeof(asn_DEF_ProvideEimPackageResultResponse_tags_1[0]), /* 1 */
asn_DEF_ProvideEimPackageResultResponse_tags_1, /* Same as above */
sizeof(asn_DEF_ProvideEimPackageResultResponse_tags_1)
- /sizeof(asn_DEF_ProvideEimPackageResultResponse_tags_1[0]), /* 2 */
- { 0, 0, SEQUENCE_constraint },
+ /sizeof(asn_DEF_ProvideEimPackageResultResponse_tags_1[0]), /* 1 */
+ { &asn_OER_type_ProvideEimPackageResultResponse_constr_1, &asn_PER_type_ProvideEimPackageResultResponse_constr_1, CHOICE_constraint },
asn_MBR_ProvideEimPackageResultResponse_1,
- 1, /* Elements count */
+ 3, /* Elements count */
&asn_SPC_ProvideEimPackageResultResponse_specs_1 /* Additional specs */
};
diff --git a/src/ipa/libasn/ProvideEimPackageResultResponse.h b/src/ipa/libasn/ProvideEimPackageResultResponse.h
index 071c82d..a71703b 100644
--- a/src/ipa/libasn/ProvideEimPackageResultResponse.h
+++ b/src/ipa/libasn/ProvideEimPackageResultResponse.h
@@ -12,22 +12,51 @@
#include <asn_application.h>
/* Including external dependencies */
+#include "EimAcknowledgements.h"
+#include <NativeInteger.h>
#include <constr_SEQUENCE.h>
+#include <constr_CHOICE.h>
#ifdef __cplusplus
extern "C" {
#endif
-/* Forward declarations */
-struct EimAcknowledgements;
+/* Dependencies */
+typedef enum ProvideEimPackageResultResponse_PR {
+ ProvideEimPackageResultResponse_PR_NOTHING, /* No components present */
+ ProvideEimPackageResultResponse_PR_eimAcknowledgements,
+ ProvideEimPackageResultResponse_PR_emptyResponse,
+ ProvideEimPackageResultResponse_PR_provideEimPackageResultError
+ /* Extensions may appear below */
+
+} ProvideEimPackageResultResponse_PR;
+typedef enum ProvideEimPackageResultResponse__provideEimPackageResultError {
+ ProvideEimPackageResultResponse__provideEimPackageResultError_eidNotFound = 2,
+ ProvideEimPackageResultResponse__provideEimPackageResultError_invalidEid = 3,
+ ProvideEimPackageResultResponse__provideEimPackageResultError_missingEid = 4,
+ ProvideEimPackageResultResponse__provideEimPackageResultError_undefinedError = 127
+} e_ProvideEimPackageResultResponse__provideEimPackageResultError;
/* ProvideEimPackageResultResponse */
typedef struct ProvideEimPackageResultResponse {
- struct EimAcknowledgements *eimAcknowledgements /* OPTIONAL */;
- /*
- * This type is extensible,
- * possible extensions are below.
- */
+ ProvideEimPackageResultResponse_PR present;
+ union ProvideEimPackageResultResponse_u {
+ EimAcknowledgements_t eimAcknowledgements;
+ struct ProvideEimPackageResultResponse__emptyResponse {
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } emptyResponse;
+ long provideEimPackageResultError;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ } choice;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
@@ -35,15 +64,13 @@
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_ProvideEimPackageResultResponse;
-extern asn_SEQUENCE_specifics_t asn_SPC_ProvideEimPackageResultResponse_specs_1;
-extern asn_TYPE_member_t asn_MBR_ProvideEimPackageResultResponse_1[1];
+extern asn_CHOICE_specifics_t asn_SPC_ProvideEimPackageResultResponse_specs_1;
+extern asn_TYPE_member_t asn_MBR_ProvideEimPackageResultResponse_1[3];
+extern asn_per_constraints_t asn_PER_type_ProvideEimPackageResultResponse_constr_1;
#ifdef __cplusplus
}
#endif
-/* Referred external types */
-#include "EimAcknowledgements.h"
-
#endif /* _ProvideEimPackageResultResponse_H_ */
#include <asn_internal.h>
diff --git a/src/ipa/libipa/esipa_prvde_eim_pkg_rslt.c b/src/ipa/libipa/esipa_prvde_eim_pkg_rslt.c
index 2d5a31b..a94690e 100644
--- a/src/ipa/libipa/esipa_prvde_eim_pkg_rslt.c
+++ b/src/ipa/libipa/esipa_prvde_eim_pkg_rslt.c
@@ -14,7 +14,7 @@
#include <onomondo/ipa/ipad.h>
#include <EsipaMessageFromIpaToEim.h>
#include <ProvideEimPackageResult.h>
-#include <SGP32-RetrieveNotificationsListResponse.h>
+#include <PendingNotificationList.h>
#include "utils.h"
#include "length.h"
#include "context.h"
@@ -29,24 +29,27 @@
msg_to_eim.present = EsipaMessageFromIpaToEim_PR_provideEimPackageResult;
if (req->eim_pkg_err != 0) {
- msg_to_eim.choice.provideEimPackageResult.present = ProvideEimPackageResult_PR_eimPackageError;
- msg_to_eim.choice.provideEimPackageResult.choice.eimPackageError = req->eim_pkg_err;
- } else if (req->euicc_package_result && req->sgp32_notification_list) {
- msg_to_eim.choice.provideEimPackageResult.present = ProvideEimPackageResult_PR_ePRAndNotifications;
- msg_to_eim.choice.provideEimPackageResult.choice.ePRAndNotifications.euiccPackageResult =
+ msg_to_eim.choice.provideEimPackageResult.eimPackageResult.present = EimPackageResult_PR_eimPackageResultResponseError;
+ msg_to_eim.choice.provideEimPackageResult.eimPackageResult.choice.eimPackageResultResponseError.eimPackageResultErrorCode =
+ req->eim_pkg_err;
+ msg_to_eim.choice.provideEimPackageResult.eimPackageResult.choice.eimPackageResultResponseError.eimTransactionId =
+ req->eim_trans_id;
+ } else if (req->euicc_package_result && req->pending_notification_list) {
+ msg_to_eim.choice.provideEimPackageResult.eimPackageResult.present = EimPackageResult_PR_ePRAndNotifications;
+ msg_to_eim.choice.provideEimPackageResult.eimPackageResult.choice.ePRAndNotifications.euiccPackageResult =
*req->euicc_package_result;
- msg_to_eim.choice.provideEimPackageResult.choice.ePRAndNotifications.notificationList =
- *req->sgp32_notification_list;
+ msg_to_eim.choice.provideEimPackageResult.eimPackageResult.choice.ePRAndNotifications.notificationList =
+ *req->pending_notification_list;
} else if (req->euicc_package_result) {
- msg_to_eim.choice.provideEimPackageResult.present = ProvideEimPackageResult_PR_euiccPackageResult;
- msg_to_eim.choice.provideEimPackageResult.choice.euiccPackageResult = *req->euicc_package_result;
+ msg_to_eim.choice.provideEimPackageResult.eimPackageResult.present = EimPackageResult_PR_euiccPackageResult;
+ msg_to_eim.choice.provideEimPackageResult.eimPackageResult.choice.euiccPackageResult = *req->euicc_package_result;
} else if (req->ipa_euicc_data_resp) {
- msg_to_eim.choice.provideEimPackageResult.present = ProvideEimPackageResult_PR_ipaEuiccDataResponse;
- msg_to_eim.choice.provideEimPackageResult.choice.ipaEuiccDataResponse = *req->ipa_euicc_data_resp;
+ msg_to_eim.choice.provideEimPackageResult.eimPackageResult.present = EimPackageResult_PR_ipaEuiccDataResponse;
+ msg_to_eim.choice.provideEimPackageResult.eimPackageResult.choice.ipaEuiccDataResponse = *req->ipa_euicc_data_resp;
} else if (req->prfle_dwnld_trig_req_rslt) {
- msg_to_eim.choice.provideEimPackageResult.present =
- ProvideEimPackageResult_PR_profileDownloadTriggerResult;
- msg_to_eim.choice.provideEimPackageResult.choice.profileDownloadTriggerResult =
+ msg_to_eim.choice.provideEimPackageResult.eimPackageResult.present =
+ EimPackageResult_PR_profileDownloadTriggerResult;
+ msg_to_eim.choice.provideEimPackageResult.eimPackageResult.choice.profileDownloadTriggerResult =
*req->prfle_dwnld_trig_req_rslt;
} else {
/* The struct should at least contain one of the above information element. In case the caller fails
@@ -54,9 +57,9 @@
* tell the eIM that something is wrong. */
IPA_LOGP_ESIPA("ProvideEimPackageResult", LERROR,
"empty provideEimPackageResult request, setting eimPackageError to undefined\n");
- msg_to_eim.choice.provideEimPackageResult.present = ProvideEimPackageResult_PR_eimPackageError;
- msg_to_eim.choice.provideEimPackageResult.choice.eimPackageError =
- ProvideEimPackageResult__eimPackageError_undefinedError;
+ msg_to_eim.choice.provideEimPackageResult.eimPackageResult.present = EimPackageResult_PR_eimPackageResultResponseError;
+ msg_to_eim.choice.provideEimPackageResult.eimPackageResult.choice.eimPackageResultResponseError.eimPackageResultErrorCode =
+ EimPackageResultErrorCode_undefinedError;
}
enc = ipa_esipa_msg_to_eim_enc(&msg_to_eim, "ProvideEimPackageResult");
@@ -78,8 +81,9 @@
res = IPA_ALLOC_ZERO(struct ipa_esipa_prvde_eim_pkg_rslt_res);
res->msg_to_ipa = msg_to_ipa;
- /* Optional, may be NULL */
- res->eim_acknowledgements = msg_to_ipa->choice.provideEimPackageResultResponse.eimAcknowledgements;
+ /* Optional, may be an "emptyResponse" */
+ if (msg_to_ipa->choice.provideEimPackageResultResponse.present == ProvideEimPackageResultResponse_PR_eimAcknowledgements)
+ res->eim_acknowledgements = &msg_to_ipa->choice.provideEimPackageResultResponse.choice.eimAcknowledgements;
return res;
}
diff --git a/src/ipa/libipa/esipa_prvde_eim_pkg_rslt.h b/src/ipa/libipa/esipa_prvde_eim_pkg_rslt.h
index e1bf87a..3d0cce6 100644
--- a/src/ipa/libipa/esipa_prvde_eim_pkg_rslt.h
+++ b/src/ipa/libipa/esipa_prvde_eim_pkg_rslt.h
@@ -17,8 +17,9 @@
struct ipa_esipa_prvde_eim_pkg_rslt_req {
long eim_pkg_err;
+ struct OCTET_STRING *eim_trans_id;
const struct EuiccPackageResult *euicc_package_result;
- struct SGP32_RetrieveNotificationsListResponse *sgp32_notification_list;
+ struct PendingNotificationList *pending_notification_list;
const struct IpaEuiccDataResponse *ipa_euicc_data_resp;
const struct ProfileDownloadTriggerResult *prfle_dwnld_trig_req_rslt;
};
diff --git a/src/ipa/libipa/proc_euicc_data_req.c b/src/ipa/libipa/proc_euicc_data_req.c
index d084ed6..0fa8ad0 100644
--- a/src/ipa/libipa/proc_euicc_data_req.c
+++ b/src/ipa/libipa/proc_euicc_data_req.c
@@ -208,6 +208,7 @@
ipa_euicc_data_response.present = IpaEuiccDataResponse_PR_ipaEuiccData;
prvde_eim_pkg_rslt_req.ipa_euicc_data_resp = &ipa_euicc_data_response;
+ prvde_eim_pkg_rslt_req.eim_trans_id = pars->ipa_euicc_data_request->eimTransactionId;
prvde_eim_pkg_rslt_res = ipa_esipa_prvde_eim_pkg_rslt(ctx, &prvde_eim_pkg_rslt_req);
if (!prvde_eim_pkg_rslt_res)
goto error;
diff --git a/src/ipa/libipa/proc_euicc_pkg_dwnld_exec.c b/src/ipa/libipa/proc_euicc_pkg_dwnld_exec.c
index b05b944..3ae2f15 100644
--- a/src/ipa/libipa/proc_euicc_pkg_dwnld_exec.c
+++ b/src/ipa/libipa/proc_euicc_pkg_dwnld_exec.c
@@ -87,7 +87,8 @@
prvde_eim_pkg_rslt_req.euicc_package_result = res->prfle_rollback_res->res->eUICCPackageResult;
else
prvde_eim_pkg_rslt_req.euicc_package_result = res->load_euicc_pkg_res->res;
- prvde_eim_pkg_rslt_req.sgp32_notification_list = retr_notif_from_lst_res->sgp32_res;
+ if (retr_notif_from_lst_res->sgp32_res->present == SGP32_RetrieveNotificationsListResponse_PR_notificationList)
+ prvde_eim_pkg_rslt_req.pending_notification_list = &retr_notif_from_lst_res->sgp32_res->choice.notificationList;
prvde_eim_pkg_rslt_res = ipa_esipa_prvde_eim_pkg_rslt(ctx, &prvde_eim_pkg_rslt_req);
if (!prvde_eim_pkg_rslt_res) {
To view, visit change 43055. To unsubscribe, or for help writing mail filters, visit settings.