lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/38485?usp=email )
Change subject: vlr: add bool is_ps to vlr_alloc() ......................................................................
vlr: add bool is_ps to vlr_alloc()
The vlr must known if it is CS or PS. As this is a very severe configuration entry, add it to the main allocation.
Change-Id: Ib77aad8492a198131c966d4ac4cf8f5f727edcfa --- M include/osmocom/vlr/vlr.h M src/libmsc/msc_net_init.c M src/libvlr/vlr.c 3 files changed, 4 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/85/38485/1
diff --git a/include/osmocom/vlr/vlr.h b/include/osmocom/vlr/vlr.h index 035e028..257dd09 100644 --- a/include/osmocom/vlr/vlr.h +++ b/include/osmocom/vlr/vlr.h @@ -318,7 +318,7 @@ int vlr_subscr_rx_tmsi_reall_compl(struct vlr_subscr *vsub); int vlr_subscr_rx_imsi_detach(struct vlr_subscr *vsub);
-struct vlr_instance *vlr_alloc(void *ctx, const struct vlr_ops *ops); +struct vlr_instance *vlr_alloc(void *ctx, const struct vlr_ops *ops, bool is_ps); int vlr_start(struct vlr_instance *vlr, struct gsup_client_mux *gcm); int vlr_gsup_rx(struct gsup_client_mux *gcm, void *data, const struct osmo_gsup_message *gsup_msg);
diff --git a/src/libmsc/msc_net_init.c b/src/libmsc/msc_net_init.c index 21f68cf..5f10e6c 100644 --- a/src/libmsc/msc_net_init.c +++ b/src/libmsc/msc_net_init.c @@ -110,7 +110,7 @@ { osmo_vlr_set_log_cat(OSMO_VLR_LOGC_VLR, DVLR); osmo_vlr_set_log_cat(OSMO_VLR_LOGC_SGS, DSGS); - net->vlr = vlr_alloc(net, &msc_vlr_ops); + net->vlr = vlr_alloc(net, &msc_vlr_ops, false); if (!net->vlr) return -ENOMEM; net->vlr->user_ctx = net; diff --git a/src/libvlr/vlr.c b/src/libvlr/vlr.c index b81484a..0575583 100644 --- a/src/libvlr/vlr.c +++ b/src/libvlr/vlr.c @@ -1512,7 +1512,7 @@ vlr_subscr_cancel_attach_fsm(vsub, OSMO_FSM_TERM_TIMEOUT, GSM48_REJECT_CONGESTION); }
-struct vlr_instance *vlr_alloc(void *ctx, const struct vlr_ops *ops) +struct vlr_instance *vlr_alloc(void *ctx, const struct vlr_ops *ops, bool is_ps) { struct vlr_instance *vlr = talloc_zero(ctx, struct vlr_instance); OSMO_ASSERT(vlr); @@ -1536,6 +1536,7 @@ memcpy(&vlr->ops, ops, sizeof(vlr->ops));
/* defaults */ + vlr->cfg.is_ps = is_ps; vlr->cfg.assign_tmsi = true; vlr->cfg.nri_bitlen = OSMO_NRI_BITLEN_DEFAULT; vlr->cfg.nri_ranges = osmo_nri_ranges_alloc(vlr);