aboutsummaryrefslogtreecommitdiffstats
path: root/src/sim/card_fs_usim.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sim/card_fs_usim.c')
-rw-r--r--src/sim/card_fs_usim.c72
1 files changed, 68 insertions, 4 deletions
diff --git a/src/sim/card_fs_usim.c b/src/sim/card_fs_usim.c
index 4c8f79c4..8cff3fc3 100644
--- a/src/sim/card_fs_usim.c
+++ b/src/sim/card_fs_usim.c
@@ -15,10 +15,6 @@
* 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 this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
*/
@@ -348,6 +344,68 @@ static const struct osim_file_desc usim_ef_in_df_hnb[] = {
"Oprator Home NodeB Name"),
};
+/* 31.102 Chapter 4.4.8 */
+static const struct osim_file_desc usim_ef_in_df_prose[] = {
+ EF_LIN_FIX_N(0x4F01, 0x01, "EF.PROSE_MON", F_OPTIONAL, 1, 64,
+ "ProSe Monitoring Parameters"),
+ EF_LIN_FIX_N(0x4F02, 0x02, "EF.PROSE_ANN", F_OPTIONAL, 1, 64,
+ "ProSe Announcing Parameters"),
+ EF_LIN_FIX_N(0x4F03, 0x03, "EF.PROSEFUNC", F_OPTIONAL, 1, 64,
+ "HPLMN ProSe Function"),
+ EF_TRANSP_N(0x4F04, 0x04, "EF.PROSE_RADIO_COM", F_OPTIONAL, 1, 128,
+ "ProSe Direct Communication Radio Parameters"),
+ EF_TRANSP_N(0x4F05, 0x05, "EF.PROSE_RADIO_MON", F_OPTIONAL, 1, 128,
+ "ProSe Direct Discovery Monitoring Radio Parameters"),
+ EF_TRANSP_N(0x4F06, 0x06, "EF.PROSE_RADIO_ANN", F_OPTIONAL, 1, 128,
+ "ProSe Direct Discovery Announcing Radio Parameters"),
+ EF_LIN_FIX_N(0x4F07, 0x07, "EF.PROSE_POLICY", F_OPTIONAL, 1, 64,
+ "ProSe Direct Discovery Announcing Radio Parameters"),
+ EF_LIN_FIX_N(0x4F08, 0x08, "EF.PROSE_PLMN", F_OPTIONAL, 1, 64,
+ "ProSe PLMN Parametes"),
+ EF_TRANSP_N(0x4F09, 0x09, "EF.PROSE_GC", F_OPTIONAL, 8, 64,
+ "ProSe Direct Discovery Announcing Radio Parameters"),
+ EF_TRANSP_N(0x4F10, 0x10, "EF.PST", F_OPTIONAL, 1, 2,
+ "ProSe Service Table"),
+ EF_TRANSP_N(0x4F11, 0x11, "EF.PROSE_UIRC", F_OPTIONAL, 1, 128,
+ "ProSe UsageInformationReportingConfiguration"),
+ EF_LIN_FIX_N(0x4F12, 0x12, "EF.PROSE_GM_DISCOVERY", F_OPTIONAL, 1, 64,
+ "ProSe Group Member Discovery Parameters"),
+ EF_LIN_FIX_N(0x4F13, 0x13, "EF.PROSE_RELAY", F_OPTIONAL, 1, 64,
+ "ProSe Relay Parameters"),
+ EF_TRANSP_N(0x4F14, 0x14, "EF.PROSE_RELAY_DISCOVERY", F_OPTIONAL, 5, 64,
+ "ProSe Relay Discovery Parameters"),
+};
+
+/* 31.102 Chapter 4.4.9 */
+static const struct osim_file_desc usim_ef_in_df_acdc[] = {
+ EF_TRANSP_N(0x4F01, 0x01, "EF.ACDC_LIST", F_OPTIONAL, 1, 128,
+ "ACDC List"),
+};
+
+/* 31.102 Chapter 4.4.11 */
+static const struct osim_file_desc usim_ef_in_df_5gs[] = {
+ EF_TRANSP_N(0x4F01, 0x01, "EF.5GS3GPPLOCI", F_OPTIONAL, 20, 20,
+ "5GS 3GPP location information"),
+ EF_TRANSP_N(0x4F02, 0x02, "EF.5GSN3GPPLOCI", F_OPTIONAL, 20, 20,
+ "5GS non-3GPP location information"),
+ EF_LIN_FIX_N(0x4F03, 0x03, "EF.5GS3GPPNSC", F_OPTIONAL, 57, 57,
+ "5GS 3GPP Access NAS Security Context"),
+ EF_LIN_FIX_N(0x4F04, 0x04, "EF.5GSN3GPPNSC", F_OPTIONAL, 57, 57,
+ "5GS non-3GPP Access NAS Security Context"),
+ EF_TRANSP_N(0x4F05, 0x05, "EF.5GAUTHKEYS", F_OPTIONAL, 68, 68,
+ "5GS authentication keys"),
+ EF_TRANSP_N(0x4F06, 0x06, "EF.UAC_AIC", F_OPTIONAL, 4, 4,
+ "UAC Access Identities Configuration"),
+ EF_TRANSP_N(0x4F07, 0x07, "EF.SUCI_Calc_Info", F_OPTIONAL, 2, 64,
+ "Subscription Concealed Identifier Calculation Information"),
+ EF_LIN_FIX_N(0x4F08, 0x08, "EF.OPL5G", F_OPTIONAL, 10, 10,
+ "5GS Operator PLMN List"),
+ EF_TRANSP_N(0x4F09, 0x09, "EF.NSI", F_OPTIONAL, 1, 64,
+ "Network Specific Identifier"),
+ EF_TRANSP_N(0x4F0A, 0x0A, "EF.Routing_Indicator", F_OPTIONAL, 4, 4,
+ "Routing Indicator"),
+};
+
/* Annex E - TS 101 220 */
static const uint8_t adf_usim_aid[] = { 0xA0, 0x00, 0x00, 0x00, 0x87, 0x10, 0x02 };
@@ -375,6 +433,8 @@ struct osim_card_app_profile *osim_aprof_usim(void *ctx)
ARRAY_SIZE(usim_ef_in_df_mexe));
add_df_with_ef(uadf, 0x5F40, "DF.WLAN", usim_ef_in_df_wlan,
ARRAY_SIZE(usim_ef_in_df_wlan));
+ add_df_with_ef(uadf, 0x5FC0, "DF.5GS", usim_ef_in_df_5gs,
+ ARRAY_SIZE(usim_ef_in_df_5gs));
/* Home-NodeB (femtocell) */
add_df_with_ef(uadf, 0x5F50, "DF.HNB", usim_ef_in_df_hnb,
ARRAY_SIZE(usim_ef_in_df_hnb));
@@ -383,6 +443,10 @@ struct osim_card_app_profile *osim_aprof_usim(void *ctx)
ARRAY_SIZE(usim_ef_in_solsa));
/* OMA BCAST Smart Card Profile */
add_df_with_ef(uadf, 0x5F80, "DF.BCAST", NULL, 0);
+ add_df_with_ef(uadf, 0x5F90, "DF.ProSe", usim_ef_in_df_prose,
+ ARRAY_SIZE(usim_ef_in_df_prose));
+ add_df_with_ef(uadf, 0x5FA0, "DF.ACDC", usim_ef_in_df_acdc,
+ ARRAY_SIZE(usim_ef_in_df_acdc));
return aprof;
}