diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2020-12-01 19:59:15 +0100 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2020-12-03 18:46:27 +0100 |
commit | ee9f02f2df6298210165e02451aade105e45dde7 (patch) | |
tree | 90ed09c366cc54bbc8dc219cd53ad76453b761b4 /src/osmo-bsc/bts_sm.c | |
parent | dd9abff60b6d450058c88c03c2acc968e8cee8c0 (diff) |
Introduce NM GPRS NSE FSM
Related: OS#4870
Change-Id: I91a5f40324d5373eac885032295690cec97214a6
Diffstat (limited to 'src/osmo-bsc/bts_sm.c')
-rw-r--r-- | src/osmo-bsc/bts_sm.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/osmo-bsc/bts_sm.c b/src/osmo-bsc/bts_sm.c index a016124d9..296a21d76 100644 --- a/src/osmo-bsc/bts_sm.c +++ b/src/osmo-bsc/bts_sm.c @@ -22,6 +22,7 @@ #include <osmocom/bsc/gsm_data.h> #include <osmocom/bsc/bts.h> +#include <osmocom/bsc/bts_sm.h> #include <osmocom/bsc/debug.h> #include <osmocom/bsc/nm_common_fsm.h> @@ -29,6 +30,11 @@ 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) { + if (bts_sm->gprs.nse.mo.fi) { + osmo_fsm_inst_free(bts_sm->gprs.nse.mo.fi); + bts_sm->gprs.nse.mo.fi = NULL; + } + if (bts_sm->mo.fi) { osmo_fsm_inst_free(bts_sm->mo.fi); bts_sm->mo.fi = NULL; @@ -58,6 +64,14 @@ struct gsm_bts_sm *gsm_bts_sm_alloc(struct gsm_network *net, uint8_t bts_num) gsm_mo_init(&bts_sm->mo, bts, NM_OC_SITE_MANAGER, 0xff, 0xff, 0xff); + + bts_sm->gprs.nse.mo.fi = osmo_fsm_inst_alloc(&nm_gprs_nse_fsm, bts_sm, &bts_sm->gprs.nse, + LOGL_INFO, NULL); + osmo_fsm_inst_update_id_f(bts_sm->gprs.nse.mo.fi, "nse%d", bts_num); + gsm_mo_init(&bts_sm->gprs.nse.mo, bts, NM_OC_GPRS_NSE, bts->nr, 0xff, 0xff); + memcpy(&bts_sm->gprs.nse.timer, bts_nse_timer_default, + sizeof(bts_sm->gprs.nse.timer)); + 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; |