settings.h: IMSI is 15 bytes +1 \0 maximum
[osmocom-bb.git] / src / host / layer23 / include / osmocom / bb / mobile / settings.h
index a6708e6..20a8692 100644 (file)
@@ -8,6 +8,9 @@ enum {
 };
 
 struct gsm_settings {
+       char                    layer2_socket_path[128];
+       char                    sap_socket_path[128];
+
        /* IMEI */
        char                    imei[16];
        char                    imeisv[17];
@@ -18,19 +21,22 @@ struct gsm_settings {
 
        /* SIM */
        int                     sim_type; /* selects card on power on */
-       char                    emergency_imsi[20]; /* just in case... */
+       char                    emergency_imsi[16];
 
        /* test card simulator settings */
-       char                    test_imsi[20]; /* just in case... */
+       char                    test_imsi[16];
+       uint32_t                test_tmsi;
        uint8_t                 test_ki_type;
        uint8_t                 test_ki[16]; /* 128 bit max */
        uint8_t                 test_barr;
        uint8_t                 test_rplmn_valid;
        uint16_t                test_rplmn_mcc, test_rplmn_mnc;
+       uint16_t                test_lac;
        uint8_t                 test_always; /* ...search hplmn... */
 
        /* call related settings */
        uint8_t                 cw; /* set if call-waiting is allowed */
+       uint8_t                 auto_answer;
        uint8_t                 clip, clir;
        uint8_t                 half, half_prefer;
 
@@ -56,8 +62,16 @@ struct gsm_settings {
        uint8_t                 e_gsm;
        uint8_t                 r_gsm;
        uint8_t                 dcs;
+       uint8_t                 gsm_850;
+       uint8_t                 pcs;
+       uint8_t                 gsm_480;
+       uint8_t                 gsm_450;
        uint8_t                 class_900;
        uint8_t                 class_dcs;
+       uint8_t                 class_850;
+       uint8_t                 class_pcs;
+       uint8_t                 class_400;
+       uint8_t                 freq_map[128+38];
        uint8_t                 full_v1;
        uint8_t                 full_v2;
        uint8_t                 full_v3;
@@ -71,6 +85,20 @@ struct gsm_settings {
 
        /* dialing */
        struct llist_head       abbrev;
+
+       /* EDGE / UMTS / CDMA */
+       uint8_t                 edge_ms_sup;
+       uint8_t                 edge_psk_sup;
+       uint8_t                 edge_psk_uplink;
+       uint8_t                 class_900_edge;
+       uint8_t                 class_dcs_pcs_edge;
+       uint8_t                 umts_fdd;
+       uint8_t                 umts_tdd;
+       uint8_t                 cdma_2000;
+       uint8_t                 dtm;
+       uint8_t                 class_dtm;
+       uint8_t                 dtm_mac;
+       uint8_t                 dtm_egprs;
 };
 
 struct gsm_settings_abbrev {
@@ -80,6 +108,7 @@ struct gsm_settings_abbrev {
        char                    name[32];
 };
 
+int gsm_settings_arfcn(struct osmocom_ms *ms);
 int gsm_settings_init(struct osmocom_ms *ms);
 int gsm_settings_exit(struct osmocom_ms *ms);
 char *gsm_check_imei(const char *imei, const char *sv);