jolly has uploaded this change for review.

View Change

V1.2: EuiccResultData.setFallbackAttribute / unsetFallbackAttribute

Add setFallbackAttribute and unsetFallbackAttribute to EuiccResultData.

The IoT eUICC emulation just acknowledges the operation with a log
message and does nothing. A non IoT eUICC does not support fallback.

Reference: SGP.32 Section 2.11.1.1.3

Related: SYS#8101
Change-Id: I59fba32cb12de22f71b3238adcbab5fc7f66e991
---
M asn1/SGP32Definitions.asn
M src/ipa/libasn/CMakeLists.txt
M src/ipa/libasn/EuiccResultData.c
M src/ipa/libasn/EuiccResultData.h
M src/ipa/libasn/Psmo.c
M src/ipa/libasn/Psmo.h
A src/ipa/libasn/SetFallbackAttributeResult.c
A src/ipa/libasn/SetFallbackAttributeResult.h
A src/ipa/libasn/UnsetFallbackAttributeResult.c
A src/ipa/libasn/UnsetFallbackAttributeResult.h
M src/ipa/libipa/es10b_load_euicc_pkg.c
11 files changed, 375 insertions(+), 17 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/onomondo-ipa refs/changes/30/43030/1
diff --git a/asn1/SGP32Definitions.asn b/asn1/SGP32Definitions.asn
index 3b91400..c37ac17 100644
--- a/asn1/SGP32Definitions.asn
+++ b/asn1/SGP32Definitions.asn
@@ -102,7 +102,9 @@
immediateEnableFlag [0] NULL OPTIONAL,
smdpOid [1] OBJECT IDENTIFIER OPTIONAL,
smdpAddress [2] UTF8String OPTIONAL
- }
+ },
+ setFallbackAttribute [8] SEQUENCE {iccid [APPLICATION 26] Iccid},
+ unsetFallbackAttribute [9] SEQUENCE {}
}
-- ASN1STOP

@@ -172,6 +174,8 @@
updateEimResult [10] UpdateEimResult,
listEimResult [11] ListEimResult,
rollbackResult [12] RollbackProfileResult,
+ setFallbackAttributeResult [13] SetFallbackAttributeResult,
+ unsetFallbackAttributeResult [14] UnsetFallbackAttributeResult,
processingTerminated INTEGER {
resultSizeOverflow(1),
unknownOrDamagedCommand(2),
@@ -231,6 +235,20 @@
ok(0),
undefinedError(127)
}
+SetFallbackAttributeResult ::= INTEGER {
+ ok(0),
+ iccidOrAidNotFound (1),
+ fallbackNotAllowed (2),
+ fallbackProfileEnabled (3),
+ undefinedError (127)
+}
+UnsetFallbackAttributeResult ::= INTEGER {
+ ok(0),
+ noFallbackAttribute(2),
+ fallbackProfileEnabled (3),
+ commandError(7),
+ undefinedError (127)
+}
AddEimResult ::= CHOICE {
associationToken [4] INTEGER,
addEimResultCode INTEGER {
diff --git a/src/ipa/libasn/CMakeLists.txt b/src/ipa/libasn/CMakeLists.txt
index 90d7b42..68338fb 100644
--- a/src/ipa/libasn/CMakeLists.txt
+++ b/src/ipa/libasn/CMakeLists.txt
@@ -786,6 +786,8 @@
SetDefaultDpAddressRequest.h
SetDefaultDpAddressResponse.c
SetDefaultDpAddressResponse.h
+SetFallbackAttributeResult.c
+SetFallbackAttributeResult.h
SetNicknameRequest.c
SetNicknameRequest.h
SetNicknameResponse.c
@@ -892,6 +894,8 @@
UniquePostalName.h
UniversalString.c
UniversalString.h
+UnsetFallbackAttributeResult.c
+UnsetFallbackAttributeResult.h
UpdateEimResult.c
UpdateEimResult.h
UpdateMetadataRequest.c
diff --git a/src/ipa/libasn/EuiccResultData.c b/src/ipa/libasn/EuiccResultData.c
index 08f4119..15fc272 100644
--- a/src/ipa/libasn/EuiccResultData.c
+++ b/src/ipa/libasn/EuiccResultData.c
@@ -11,7 +11,7 @@
{ 0, 0 },
-1};
asn_per_constraints_t asn_PER_type_EuiccResultData_constr_1 CC_NOTUSED = {
- { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 11 } /* (0..11,...) */,
+ { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 13 } /* (0..13,...) */,
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
0, 0 /* No PER value map */
};
@@ -115,6 +115,24 @@
0, 0, /* No default value */
"rollbackResult"
},
+ { ATF_NOFLAGS, 0, offsetof(struct EuiccResultData, choice.setFallbackAttributeResult),
+ (ASN_TAG_CLASS_CONTEXT | (13 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SetFallbackAttributeResult,
+ 0,
+ { 0, 0, 0 },
+ 0, 0, /* No default value */
+ "setFallbackAttributeResult"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct EuiccResultData, choice.unsetFallbackAttributeResult),
+ (ASN_TAG_CLASS_CONTEXT | (14 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_UnsetFallbackAttributeResult,
+ 0,
+ { 0, 0, 0 },
+ 0, 0, /* No default value */
+ "unsetFallbackAttributeResult"
+ },
{ ATF_NOFLAGS, 0, offsetof(struct EuiccResultData, choice.processingTerminated),
(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
0,
@@ -125,10 +143,10 @@
"processingTerminated"
},
};
-static const unsigned asn_MAP_EuiccResultData_to_canonical_1[] = { 11, 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 3 };
-static const unsigned asn_MAP_EuiccResultData_from_canonical_1[] = { 1, 2, 3, 11, 4, 5, 6, 7, 8, 9, 10, 0 };
+static const unsigned asn_MAP_EuiccResultData_to_canonical_1[] = { 13, 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3 };
+static const unsigned asn_MAP_EuiccResultData_from_canonical_1[] = { 1, 2, 3, 13, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0 };
static const asn_TYPE_tag2member_t asn_MAP_EuiccResultData_tag2el_1[] = {
- { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 11, 0, 0 }, /* processingTerminated */
+ { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 13, 0, 0 }, /* processingTerminated */
{ (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 }, /* enableResult */
{ (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 }, /* disableResult */
{ (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 2, 0, 0 }, /* deleteResult */
@@ -139,6 +157,8 @@
{ (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 8, 0, 0 }, /* updateEimResult */
{ (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 9, 0, 0 }, /* listEimResult */
{ (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 10, 0, 0 }, /* rollbackResult */
+ { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 11, 0, 0 }, /* setFallbackAttributeResult */
+ { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 12, 0, 0 }, /* unsetFallbackAttributeResult */
{ (ASN_TAG_CLASS_CONTEXT | (45 << 2)), 3, 0, 0 } /* listProfileInfoResult */
};
asn_CHOICE_specifics_t asn_SPC_EuiccResultData_specs_1 = {
@@ -147,10 +167,10 @@
offsetof(struct EuiccResultData, present),
sizeof(((struct EuiccResultData *)0)->present),
asn_MAP_EuiccResultData_tag2el_1,
- 12, /* Count of tags in the map */
+ 14, /* Count of tags in the map */
asn_MAP_EuiccResultData_to_canonical_1,
asn_MAP_EuiccResultData_from_canonical_1,
- 12 /* Extensions start */
+ 14 /* Extensions start */
};
asn_TYPE_descriptor_t asn_DEF_EuiccResultData = {
"EuiccResultData",
@@ -162,7 +182,7 @@
0, /* No tags (count) */
{ &asn_OER_type_EuiccResultData_constr_1, &asn_PER_type_EuiccResultData_constr_1, CHOICE_constraint },
asn_MBR_EuiccResultData_1,
- 12, /* Elements count */
+ 14, /* Elements count */
&asn_SPC_EuiccResultData_specs_1 /* Additional specs */
};

diff --git a/src/ipa/libasn/EuiccResultData.h b/src/ipa/libasn/EuiccResultData.h
index 82ee724..79197a6 100644
--- a/src/ipa/libasn/EuiccResultData.h
+++ b/src/ipa/libasn/EuiccResultData.h
@@ -23,6 +23,8 @@
#include "UpdateEimResult.h"
#include "ListEimResult.h"
#include "RollbackProfileResult.h"
+#include "SetFallbackAttributeResult.h"
+#include "UnsetFallbackAttributeResult.h"
#include <NativeInteger.h>
#include <constr_CHOICE.h>

@@ -44,6 +46,8 @@
EuiccResultData_PR_updateEimResult,
EuiccResultData_PR_listEimResult,
EuiccResultData_PR_rollbackResult,
+ EuiccResultData_PR_setFallbackAttributeResult,
+ EuiccResultData_PR_unsetFallbackAttributeResult,
EuiccResultData_PR_processingTerminated
/* Extensions may appear below */

@@ -70,6 +74,8 @@
UpdateEimResult_t updateEimResult;
ListEimResult_t listEimResult;
RollbackProfileResult_t rollbackResult;
+ SetFallbackAttributeResult_t setFallbackAttributeResult;
+ UnsetFallbackAttributeResult_t unsetFallbackAttributeResult;
long processingTerminated;
/*
* This type is extensible,
@@ -84,7 +90,7 @@
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_EuiccResultData;
extern asn_CHOICE_specifics_t asn_SPC_EuiccResultData_specs_1;
-extern asn_TYPE_member_t asn_MBR_EuiccResultData_1[12];
+extern asn_TYPE_member_t asn_MBR_EuiccResultData_1[14];
extern asn_per_constraints_t asn_PER_type_EuiccResultData_constr_1;

#ifdef __cplusplus
diff --git a/src/ipa/libasn/Psmo.c b/src/ipa/libasn/Psmo.c
index 6b8d207..144a95a 100644
--- a/src/ipa/libasn/Psmo.c
+++ b/src/ipa/libasn/Psmo.c
@@ -11,7 +11,7 @@
{ 0, 0 },
-1};
asn_per_constraints_t asn_PER_type_Psmo_constr_1 CC_NOTUSED = {
- { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */,
+ { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 7 } /* (0..7,...) */,
{ APC_UNCONSTRAINED, -1, -1, 0, 0 },
0, 0 /* No PER value map */
};
@@ -249,6 +249,77 @@
&asn_SPC_configureImmediateEnable_specs_15 /* Additional specs */
};

+static asn_TYPE_member_t asn_MBR_setFallbackAttribute_20[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct Psmo__setFallbackAttribute, iccid),
+ (ASN_TAG_CLASS_APPLICATION | (26 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_Iccid,
+ 0,
+ { 0, 0, 0 },
+ 0, 0, /* No default value */
+ "iccid"
+ },
+};
+static const ber_tlv_tag_t asn_DEF_setFallbackAttribute_tags_20[] = {
+ (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_setFallbackAttribute_tag2el_20[] = {
+ { (ASN_TAG_CLASS_APPLICATION | (26 << 2)), 0, 0, 0 } /* iccid */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_setFallbackAttribute_specs_20 = {
+ sizeof(struct Psmo__setFallbackAttribute),
+ offsetof(struct Psmo__setFallbackAttribute, _asn_ctx),
+ asn_MAP_setFallbackAttribute_tag2el_20,
+ 1, /* Count of 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_setFallbackAttribute_20 = {
+ "setFallbackAttribute",
+ "setFallbackAttribute",
+ &asn_OP_SEQUENCE,
+ asn_DEF_setFallbackAttribute_tags_20,
+ sizeof(asn_DEF_setFallbackAttribute_tags_20)
+ /sizeof(asn_DEF_setFallbackAttribute_tags_20[0]) - 1, /* 1 */
+ asn_DEF_setFallbackAttribute_tags_20, /* Same as above */
+ sizeof(asn_DEF_setFallbackAttribute_tags_20)
+ /sizeof(asn_DEF_setFallbackAttribute_tags_20[0]), /* 2 */
+ { 0, 0, SEQUENCE_constraint },
+ asn_MBR_setFallbackAttribute_20,
+ 1, /* Elements count */
+ &asn_SPC_setFallbackAttribute_specs_20 /* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_unsetFallbackAttribute_tags_23[] = {
+ (ASN_TAG_CLASS_CONTEXT | (9 << 2)),
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SEQUENCE_specifics_t asn_SPC_unsetFallbackAttribute_specs_23 = {
+ sizeof(struct Psmo__unsetFallbackAttribute),
+ offsetof(struct Psmo__unsetFallbackAttribute, _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_unsetFallbackAttribute_23 = {
+ "unsetFallbackAttribute",
+ "unsetFallbackAttribute",
+ &asn_OP_SEQUENCE,
+ asn_DEF_unsetFallbackAttribute_tags_23,
+ sizeof(asn_DEF_unsetFallbackAttribute_tags_23)
+ /sizeof(asn_DEF_unsetFallbackAttribute_tags_23[0]) - 1, /* 1 */
+ asn_DEF_unsetFallbackAttribute_tags_23, /* Same as above */
+ sizeof(asn_DEF_unsetFallbackAttribute_tags_23)
+ /sizeof(asn_DEF_unsetFallbackAttribute_tags_23[0]), /* 2 */
+ { 0, 0, SEQUENCE_constraint },
+ 0, 0, /* No members */
+ &asn_SPC_unsetFallbackAttribute_specs_23 /* Additional specs */
+};
+
asn_TYPE_member_t asn_MBR_Psmo_1[] = {
{ ATF_NOFLAGS, 0, offsetof(struct Psmo, choice.enable),
(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
@@ -304,15 +375,35 @@
0, 0, /* No default value */
"configureImmediateEnable"
},
+ { ATF_NOFLAGS, 0, offsetof(struct Psmo, choice.setFallbackAttribute),
+ (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
+ 0,
+ &asn_DEF_setFallbackAttribute_20,
+ 0,
+ { 0, 0, 0 },
+ 0, 0, /* No default value */
+ "setFallbackAttribute"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct Psmo, choice.unsetFallbackAttribute),
+ (ASN_TAG_CLASS_CONTEXT | (9 << 2)),
+ 0,
+ &asn_DEF_unsetFallbackAttribute_23,
+ 0,
+ { 0, 0, 0 },
+ 0, 0, /* No default value */
+ "unsetFallbackAttribute"
+ },
};
-static const unsigned asn_MAP_Psmo_to_canonical_1[] = { 0, 1, 2, 4, 5, 3 };
-static const unsigned asn_MAP_Psmo_from_canonical_1[] = { 0, 1, 2, 5, 3, 4 };
+static const unsigned asn_MAP_Psmo_to_canonical_1[] = { 0, 1, 2, 4, 5, 6, 7, 3 };
+static const unsigned asn_MAP_Psmo_from_canonical_1[] = { 0, 1, 2, 7, 3, 4, 5, 6 };
static const asn_TYPE_tag2member_t asn_MAP_Psmo_tag2el_1[] = {
{ (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 }, /* enable */
{ (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 }, /* disable */
{ (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 2, 0, 0 }, /* delete */
{ (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 4, 0, 0 }, /* getRAT */
{ (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 5, 0, 0 }, /* configureImmediateEnable */
+ { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 6, 0, 0 }, /* setFallbackAttribute */
+ { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 7, 0, 0 }, /* unsetFallbackAttribute */
{ (ASN_TAG_CLASS_CONTEXT | (45 << 2)), 3, 0, 0 } /* listProfileInfo */
};
asn_CHOICE_specifics_t asn_SPC_Psmo_specs_1 = {
@@ -321,10 +412,10 @@
offsetof(struct Psmo, present),
sizeof(((struct Psmo *)0)->present),
asn_MAP_Psmo_tag2el_1,
- 6, /* Count of tags in the map */
+ 8, /* Count of tags in the map */
asn_MAP_Psmo_to_canonical_1,
asn_MAP_Psmo_from_canonical_1,
- 6 /* Extensions start */
+ 8 /* Extensions start */
};
asn_TYPE_descriptor_t asn_DEF_Psmo = {
"Psmo",
@@ -336,7 +427,7 @@
0, /* No tags (count) */
{ &asn_OER_type_Psmo_constr_1, &asn_PER_type_Psmo_constr_1, CHOICE_constraint },
asn_MBR_Psmo_1,
- 6, /* Elements count */
+ 8, /* Elements count */
&asn_SPC_Psmo_specs_1 /* Additional specs */
};

diff --git a/src/ipa/libasn/Psmo.h b/src/ipa/libasn/Psmo.h
index 9e9c22f..c5e3e10 100644
--- a/src/ipa/libasn/Psmo.h
+++ b/src/ipa/libasn/Psmo.h
@@ -32,7 +32,9 @@
Psmo_PR_delete,
Psmo_PR_listProfileInfo,
Psmo_PR_getRAT,
- Psmo_PR_configureImmediateEnable
+ Psmo_PR_configureImmediateEnable,
+ Psmo_PR_setFallbackAttribute,
+ Psmo_PR_unsetFallbackAttribute
/* Extensions may appear below */

} Psmo_PR;
@@ -94,6 +96,25 @@
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} configureImmediateEnable;
+ struct Psmo__setFallbackAttribute {
+ Iccid_t iccid;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } setFallbackAttribute;
+ struct Psmo__unsetFallbackAttribute {
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+ } unsetFallbackAttribute;
/*
* This type is extensible,
* possible extensions are below.
@@ -107,7 +128,7 @@
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_Psmo;
extern asn_CHOICE_specifics_t asn_SPC_Psmo_specs_1;
-extern asn_TYPE_member_t asn_MBR_Psmo_1[6];
+extern asn_TYPE_member_t asn_MBR_Psmo_1[8];
extern asn_per_constraints_t asn_PER_type_Psmo_constr_1;

#ifdef __cplusplus
diff --git a/src/ipa/libasn/SetFallbackAttributeResult.c b/src/ipa/libasn/SetFallbackAttributeResult.c
new file mode 100644
index 0000000..8996ca7
--- /dev/null
+++ b/src/ipa/libasn/SetFallbackAttributeResult.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 "SetFallbackAttributeResult.h"
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_SetFallbackAttributeResult_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_SetFallbackAttributeResult = {
+ "SetFallbackAttributeResult",
+ "SetFallbackAttributeResult",
+ &asn_OP_NativeInteger,
+ asn_DEF_SetFallbackAttributeResult_tags_1,
+ sizeof(asn_DEF_SetFallbackAttributeResult_tags_1)
+ /sizeof(asn_DEF_SetFallbackAttributeResult_tags_1[0]), /* 1 */
+ asn_DEF_SetFallbackAttributeResult_tags_1, /* Same as above */
+ sizeof(asn_DEF_SetFallbackAttributeResult_tags_1)
+ /sizeof(asn_DEF_SetFallbackAttributeResult_tags_1[0]), /* 1 */
+ { 0, 0, NativeInteger_constraint },
+ 0, 0, /* Defined elsewhere */
+ 0 /* No specifics */
+};
+
diff --git a/src/ipa/libasn/SetFallbackAttributeResult.h b/src/ipa/libasn/SetFallbackAttributeResult.h
new file mode 100644
index 0000000..a8b708e
--- /dev/null
+++ b/src/ipa/libasn/SetFallbackAttributeResult.h
@@ -0,0 +1,52 @@
+/*
+ * 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 _SetFallbackAttributeResult_H_
+#define _SetFallbackAttributeResult_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SetFallbackAttributeResult {
+ SetFallbackAttributeResult_ok = 0,
+ SetFallbackAttributeResult_iccidOrAidNotFound = 1,
+ SetFallbackAttributeResult_fallbackNotAllowed = 2,
+ SetFallbackAttributeResult_fallbackProfileEnabled = 3,
+ SetFallbackAttributeResult_undefinedError = 127
+} e_SetFallbackAttributeResult;
+
+/* SetFallbackAttributeResult */
+typedef long SetFallbackAttributeResult_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SetFallbackAttributeResult;
+asn_struct_free_f SetFallbackAttributeResult_free;
+asn_struct_print_f SetFallbackAttributeResult_print;
+asn_constr_check_f SetFallbackAttributeResult_constraint;
+ber_type_decoder_f SetFallbackAttributeResult_decode_ber;
+der_type_encoder_f SetFallbackAttributeResult_encode_der;
+xer_type_decoder_f SetFallbackAttributeResult_decode_xer;
+xer_type_encoder_f SetFallbackAttributeResult_encode_xer;
+oer_type_decoder_f SetFallbackAttributeResult_decode_oer;
+oer_type_encoder_f SetFallbackAttributeResult_encode_oer;
+per_type_decoder_f SetFallbackAttributeResult_decode_uper;
+per_type_encoder_f SetFallbackAttributeResult_encode_uper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SetFallbackAttributeResult_H_ */
+#include <asn_internal.h>
diff --git a/src/ipa/libasn/UnsetFallbackAttributeResult.c b/src/ipa/libasn/UnsetFallbackAttributeResult.c
new file mode 100644
index 0000000..910a723
--- /dev/null
+++ b/src/ipa/libasn/UnsetFallbackAttributeResult.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 "UnsetFallbackAttributeResult.h"
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static const ber_tlv_tag_t asn_DEF_UnsetFallbackAttributeResult_tags_1[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_UnsetFallbackAttributeResult = {
+ "UnsetFallbackAttributeResult",
+ "UnsetFallbackAttributeResult",
+ &asn_OP_NativeInteger,
+ asn_DEF_UnsetFallbackAttributeResult_tags_1,
+ sizeof(asn_DEF_UnsetFallbackAttributeResult_tags_1)
+ /sizeof(asn_DEF_UnsetFallbackAttributeResult_tags_1[0]), /* 1 */
+ asn_DEF_UnsetFallbackAttributeResult_tags_1, /* Same as above */
+ sizeof(asn_DEF_UnsetFallbackAttributeResult_tags_1)
+ /sizeof(asn_DEF_UnsetFallbackAttributeResult_tags_1[0]), /* 1 */
+ { 0, 0, NativeInteger_constraint },
+ 0, 0, /* Defined elsewhere */
+ 0 /* No specifics */
+};
+
diff --git a/src/ipa/libasn/UnsetFallbackAttributeResult.h b/src/ipa/libasn/UnsetFallbackAttributeResult.h
new file mode 100644
index 0000000..6aede02
--- /dev/null
+++ b/src/ipa/libasn/UnsetFallbackAttributeResult.h
@@ -0,0 +1,52 @@
+/*
+ * 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 _UnsetFallbackAttributeResult_H_
+#define _UnsetFallbackAttributeResult_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum UnsetFallbackAttributeResult {
+ UnsetFallbackAttributeResult_ok = 0,
+ UnsetFallbackAttributeResult_noFallbackAttribute = 2,
+ UnsetFallbackAttributeResult_fallbackProfileEnabled = 3,
+ UnsetFallbackAttributeResult_commandError = 7,
+ UnsetFallbackAttributeResult_undefinedError = 127
+} e_UnsetFallbackAttributeResult;
+
+/* UnsetFallbackAttributeResult */
+typedef long UnsetFallbackAttributeResult_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UnsetFallbackAttributeResult;
+asn_struct_free_f UnsetFallbackAttributeResult_free;
+asn_struct_print_f UnsetFallbackAttributeResult_print;
+asn_constr_check_f UnsetFallbackAttributeResult_constraint;
+ber_type_decoder_f UnsetFallbackAttributeResult_decode_ber;
+der_type_encoder_f UnsetFallbackAttributeResult_encode_der;
+xer_type_decoder_f UnsetFallbackAttributeResult_decode_xer;
+xer_type_encoder_f UnsetFallbackAttributeResult_encode_xer;
+oer_type_decoder_f UnsetFallbackAttributeResult_decode_oer;
+oer_type_encoder_f UnsetFallbackAttributeResult_encode_oer;
+per_type_decoder_f UnsetFallbackAttributeResult_decode_uper;
+per_type_encoder_f UnsetFallbackAttributeResult_encode_uper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UnsetFallbackAttributeResult_H_ */
+#include <asn_internal.h>
diff --git a/src/ipa/libipa/es10b_load_euicc_pkg.c b/src/ipa/libipa/es10b_load_euicc_pkg.c
index 0026d53..01e743a 100644
--- a/src/ipa/libipa/es10b_load_euicc_pkg.c
+++ b/src/ipa/libipa/es10b_load_euicc_pkg.c
@@ -266,6 +266,32 @@
return euicc_result_data;
}

+struct EuiccResultData *iot_emo_do_setFallbackAttribute_psmo(struct ipa_context *ctx,
+ const struct Psmo__setFallbackAttribute *setFallbackAttribute_psmo)
+{
+ struct EuiccResultData *euicc_result_data = IPA_ALLOC_ZERO(struct EuiccResultData);
+
+ IPA_LOGP_ES10X("LoadEuiccPackage", LINFO,
+ "IoT eUICC emulation active, setFallbackAttribute not supported by eUICC!\n");
+
+ euicc_result_data->choice.setFallbackAttributeResult = SetFallbackAttributeResult_ok;
+
+ return euicc_result_data;
+}
+
+struct EuiccResultData *iot_emo_do_unsetFallbackAttribute_psmo(struct ipa_context *ctx,
+ const struct Psmo__unsetFallbackAttribute *unsetFallbackAttribute_psmo)
+{
+ struct EuiccResultData *euicc_result_data = IPA_ALLOC_ZERO(struct EuiccResultData);
+
+ IPA_LOGP_ES10X("LoadEuiccPackage", LINFO,
+ "IoT eUICC emulation active, unsetFallbackAttribute not supported by eUICC!\n");
+
+ euicc_result_data->choice.setFallbackAttributeResult = UnsetFallbackAttributeResult_ok;
+
+ return euicc_result_data;
+}
+
struct EuiccResultData *iot_emo_do_addEim_eco(struct ipa_context *ctx, const struct EimConfigurationData *addEim_eco)
{
struct EuiccResultData *euicc_result_data = IPA_ALLOC_ZERO(struct EuiccResultData);
@@ -600,6 +626,12 @@
psmo_result =
iot_emo_do_configureImmediateEnable_psmo(ctx, &psmo->choice.configureImmediateEnable);
break;
+ case Psmo_PR_setFallbackAttribute:
+ psmo_result = iot_emo_do_setFallbackAttribute_psmo(ctx, &psmo->choice.setFallbackAttribute);
+ break;
+ case Psmo_PR_unsetFallbackAttribute:
+ psmo_result = iot_emo_do_unsetFallbackAttribute_psmo(ctx, &psmo->choice.unsetFallbackAttribute);
+ break;
default:
IPA_LOGP_ES10X("LoadEuiccPackage", LERROR, "ignoring invalid or unsupported PSMO!\n");
break;

To view, visit change 43030. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: newchange
Gerrit-Project: onomondo-ipa
Gerrit-Branch: master
Gerrit-Change-Id: I59fba32cb12de22f71b3238adcbab5fc7f66e991
Gerrit-Change-Number: 43030
Gerrit-PatchSet: 1
Gerrit-Owner: jolly <andreas@eversberg.eu>