aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bsc/bts_sm.c
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2020-12-01 19:59:15 +0100
committerPau Espin Pedrol <pespin@sysmocom.de>2020-12-03 18:46:27 +0100
commitee9f02f2df6298210165e02451aade105e45dde7 (patch)
tree90ed09c366cc54bbc8dc219cd53ad76453b761b4 /src/osmo-bsc/bts_sm.c
parentdd9abff60b6d450058c88c03c2acc968e8cee8c0 (diff)
Introduce NM GPRS NSE FSM
Diffstat (limited to 'src/osmo-bsc/bts_sm.c')
-rw-r--r--src/osmo-bsc/bts_sm.c14
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;