laforge submitted this change.
libvlr: only use SGS fsm for CS
The SGS interface towards the MME only exists
in CS. Don't initialize or use the interfaces when
running in PS.
Change-Id: I319123e52ddb6a5ee086e77b75f18caaa85589bd
---
M src/libvlr/vlr.c
M src/libvlr/vlr_lu_fsm.c
2 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/src/libvlr/vlr.c b/src/libvlr/vlr.c
index 5baf2c3..95e4f28 100644
--- a/src/libvlr/vlr.c
+++ b/src/libvlr/vlr.c
@@ -420,7 +420,8 @@
/* Create an SGs FSM, which is needed to control CSFB,
* in cases where CSFB/SGs is not in use, this FSM will
* just do nothing. (see also: sgs_iface.c) */
- vlr_sgs_fsm_create(vsub);
+ if (vlr_is_cs(vlr))
+ vlr_sgs_fsm_create(vsub);
llist_add_tail(&vsub->list, &vlr->subscribers);
vlr_stat_item_inc(vlr, VLR_STAT_SUBSCRIBER_COUNT);
@@ -476,7 +477,8 @@
osmo_timer_del(&vsub->sgs.Ts5);
/* Remove SGs FSM (see also: sgs_iface.c) */
- vlr_sgs_fsm_remove(vsub);
+ if (vlr_is_cs(vsub->vlr))
+ vlr_sgs_fsm_remove(vsub);
talloc_free(vsub);
}
@@ -1621,13 +1623,14 @@
vlr_lu_fsm_init(is_ps);
/* vlr_access_request_fsm.c */
vlr_parq_fsm_init(is_ps);
- /* vlr_sgs_fsm.c */
- vlr_sgs_fsm_init();
if (is_ps)
vlr_tdefs = sgsn_tdefs_vlr;
- else
+ else { /* is_cs */
+ /* vlr_sgs_fsm.c */
+ vlr_sgs_fsm_init();
vlr_tdefs = msc_tdefs_vlr;
+ }
return vlr;
diff --git a/src/libvlr/vlr_lu_fsm.c b/src/libvlr/vlr_lu_fsm.c
index c306ff7..cc7dfc4 100644
--- a/src/libvlr/vlr_lu_fsm.c
+++ b/src/libvlr/vlr_lu_fsm.c
@@ -379,7 +379,9 @@
vlr_subscr_get(vsub, VSUB_USE_ATTACHED);
}
_vlr_lu_compl_fsm_done(fi, VLR_FSM_RESULT_SUCCESS, 0);
- vlr_sgs_fsm_update_id(vsub);
+
+ if (vlr_is_cs(vsub->vlr))
+ vlr_sgs_fsm_update_id(vsub);
}
static void vlr_lu_compl_fsm_dispatch_result(struct osmo_fsm_inst *fi,
To view, visit change 43889. To unsubscribe, or for help writing mail filters, visit settings.