aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bsc/bts_sm.c
diff options
context:
space:
mode:
authorAlexander Couzens <lynxis@fe80.eu>2020-12-02 03:57:23 +0100
committerPau Espin Pedrol <pespin@espeweb.net>2020-12-04 14:44:40 +0100
commitd74bb1e3b0473a13cbe70a20740a42837ffdd1a6 (patch)
treec80616084e0f9dba39f02efb8f7a84deb6545823 /src/osmo-bsc/bts_sm.c
parentaab54b44e4e9a6089f5df50deb01dbfcb3a2e2c6 (diff)
Introduce NM GPRS NSVC FSM
Diffstat (limited to 'src/osmo-bsc/bts_sm.c')
-rw-r--r--src/osmo-bsc/bts_sm.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/osmo-bsc/bts_sm.c b/src/osmo-bsc/bts_sm.c
index 296a21d76..ca572f146 100644
--- a/src/osmo-bsc/bts_sm.c
+++ b/src/osmo-bsc/bts_sm.c
@@ -30,6 +30,13 @@ static const uint8_t bts_nse_timer_default[] = { 3, 3, 3, 3, 30, 3, 10 };
static int gsm_bts_sm_talloc_destructor(struct gsm_bts_sm *bts_sm)
{
+ int i;
+ for (i = 0; i < ARRAY_SIZE(bts_sm->gprs.nsvc); i++) {
+ if (bts_sm->gprs.nsvc[i].mo.fi) {
+ osmo_fsm_inst_free(bts_sm->gprs.nsvc[i].mo.fi);
+ bts_sm->gprs.nsvc[i].mo.fi = NULL;
+ }
+ }
if (bts_sm->gprs.nse.mo.fi) {
osmo_fsm_inst_free(bts_sm->gprs.nse.mo.fi);
bts_sm->gprs.nse.mo.fi = NULL;
@@ -75,8 +82,14 @@ struct gsm_bts_sm *gsm_bts_sm_alloc(struct gsm_network *net, uint8_t bts_num)
for (i = 0; i < ARRAY_SIZE(bts_sm->gprs.nsvc); i++) {
bts_sm->gprs.nsvc[i].bts = bts;
bts_sm->gprs.nsvc[i].id = i;
+ bts_sm->gprs.nsvc[i].mo.fi = osmo_fsm_inst_alloc(
+ &nm_gprs_nsvc_fsm, bts_sm,
+ &bts_sm->gprs.nsvc[i],
+ LOGL_INFO, NULL);
+ osmo_fsm_inst_update_id_f(bts_sm->gprs.nsvc[i].mo.fi,
+ "nsvc%d", i);
gsm_mo_init(&bts_sm->gprs.nsvc[i].mo, bts, NM_OC_GPRS_NSVC,
- bts->nr, i, 0xff);
+ bts->nr, i, 0xff);
}
memcpy(&bts_sm->gprs.nse.timer, bts_nse_timer_default,
sizeof(bts_sm->gprs.nse.timer));