diff options
author | Alexander Couzens <lynxis@fe80.eu> | 2020-12-02 03:57:23 +0100 |
---|---|---|
committer | Pau Espin Pedrol <pespin@espeweb.net> | 2020-12-04 14:44:40 +0100 |
commit | d74bb1e3b0473a13cbe70a20740a42837ffdd1a6 (patch) | |
tree | c80616084e0f9dba39f02efb8f7a84deb6545823 /src/osmo-bsc/bts_sm.c | |
parent | aab54b44e4e9a6089f5df50deb01dbfcb3a2e2c6 (diff) |
Introduce NM GPRS NSVC FSM
Related: OS#4870
Change-Id: I381472532c2622a8dba7c81ae00ea873c2e58ae1
Diffstat (limited to 'src/osmo-bsc/bts_sm.c')
-rw-r--r-- | src/osmo-bsc/bts_sm.c | 15 |
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)); |