aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2017-12-23 18:51:48 +0100
committerHarald Welte <laforge@gnumonks.org>2018-01-28 00:09:41 +0000
commit71c51df07dfbc60cb41cb43385576a9d89c0c269 (patch)
treef072cda567e76232653a32e1ff781b917f8ea4ef /include
parent14e051776fe07cbc7f9c5775ea62f04fe79bd357 (diff)
Shift ciphering algorithm selection from VLR to MSC
The VLR code seems to have the assumption that there is one particular algorithm to be used, as opposed to one of a set of algorithms. What's missing is basically to decide when/where to pick the best algorithm within the capabilities of the phone (classmark) and the network configuration (net->a5_encryption_mask). So far, libvlr has no notion of classmark. Rather, libmsc has. Why does the VLR care about the particular algorithm at all? The VLR should probably simply decide if it should use encryption or not, and if so, the MSC will figure which algorithm to use. Change-Id: I5ed80ca2086560a5975a758ec568a034a9a8ab89
Diffstat (limited to 'include')
-rw-r--r--include/osmocom/msc/vlr.h9
1 files changed, 4 insertions, 5 deletions
diff --git a/include/osmocom/msc/vlr.h b/include/osmocom/msc/vlr.h
index 9943f15ba..054a18e48 100644
--- a/include/osmocom/msc/vlr.h
+++ b/include/osmocom/msc/vlr.h
@@ -212,8 +212,7 @@ struct vlr_ops {
int (*tx_cm_serv_acc)(void *msc_conn_ref);
int (*tx_cm_serv_rej)(void *msc_conn_ref, enum vlr_proc_arq_result result);
- int (*set_ciph_mode)(void *msc_conn_ref, enum vlr_ciph ciph_mode,
- bool umts_aka, bool retrieve_imeisv);
+ int (*set_ciph_mode)(void *msc_conn_ref, bool umts_aka, bool retrieve_imeisv);
/* UTRAN: send Common Id (when auth+ciph are complete) */
int (*tx_common_id)(void *msc_conn_ref);
@@ -271,7 +270,7 @@ vlr_loc_update(struct osmo_fsm_inst *parent,
const struct osmo_location_area_id *old_lai,
const struct osmo_location_area_id *new_lai,
bool authentication_required,
- enum vlr_ciph ciphering_required,
+ bool ciphering_required,
bool is_r99, bool is_utran,
bool assign_tmsi);
@@ -428,7 +427,7 @@ vlr_proc_acc_req(struct osmo_fsm_inst *parent,
enum vlr_parq_type type, const uint8_t *mi_lv,
const struct osmo_location_area_id *lai,
bool authentication_required,
- enum vlr_ciph ciphering_required,
+ bool ciphering_required,
bool is_r99, bool is_utran);
void vlr_parq_conn_timeout(struct osmo_fsm_inst *fi);
@@ -438,7 +437,7 @@ void vlr_parq_fsm_init(void);
int vlr_set_ciph_mode(struct vlr_instance *vlr,
struct osmo_fsm_inst *fi,
void *msc_conn_ref,
- enum vlr_ciph ciph_mode,
+ bool ciph_required,
bool umts_aka,
bool retrieve_imeisv);