jolly has uploaded this change for review. ( https://gerrit.osmocom.org/c/onomondo-ipa/+/43030?usp=email )
Change subject: V1.2: EuiccResultData.setFallbackAttribute / unsetFallbackAttribute ......................................................................
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;