aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2012-07-08 19:38:39 +0200
committerAndreas Eversberg <jolly@eversberg.eu>2012-07-08 19:38:39 +0200
commit66f1fe15e964a341024f93954e8e283938bfbbca (patch)
tree5f3b7db391a6cc5873cfef3f4945093893b0552c
parent07891a09080cdc4bc18295e4686a47ca25d2c49f (diff)
signal: Add signals for setting/change of GPRS MO attributes
-rw-r--r--include/osmo-bts/signal.h4
-rw-r--r--src/common/oml.c8
2 files changed, 12 insertions, 0 deletions
diff --git a/include/osmo-bts/signal.h b/include/osmo-bts/signal.h
index c27ad7b4..c8168a26 100644
--- a/include/osmo-bts/signal.h
+++ b/include/osmo-bts/signal.h
@@ -9,6 +9,10 @@ enum sig_subsys {
enum signals_global {
S_NEW_SYSINFO,
+ S_NEW_OP_STATE,
+ S_NEW_NSE_ATTR,
+ S_NEW_CELL_ATTR,
+ S_NEW_NSVC_ATTR,
};
#endif
diff --git a/src/common/oml.c b/src/common/oml.c
index 381077ad..de78a70c 100644
--- a/src/common/oml.c
+++ b/src/common/oml.c
@@ -38,6 +38,7 @@
#include <osmo-bts/oml.h>
#include <osmo-bts/bts_model.h>
#include <osmo-bts/bts.h>
+#include <osmo-bts/signal.h>
/* FIXME: move this to libosmocore */
static struct tlv_definition abis_nm_att_tlvdef_ipa = {
@@ -247,6 +248,7 @@ int oml_mo_state_chg(struct gsm_abis_mo *mo, int op_state, int avail_state)
abis_nm_opstate_name(mo->nm_state.operational),
abis_nm_opstate_name(op_state));
mo->nm_state.operational = op_state;
+ osmo_signal_dispatch(SS_GLOBAL, S_NEW_OP_STATE, NULL);
}
/* send state change report */
@@ -820,6 +822,8 @@ static int oml_ipa_mo_set_attr_nse(void *obj, struct tlv_parsed *tp)
TLVP_VAL(tp, NM_ATT_IPACC_BSSGP_CFG), 11);
}
+ osmo_signal_dispatch(SS_GLOBAL, S_NEW_NSE_ATTR, bts);
+
return 0;
}
@@ -886,6 +890,8 @@ static int oml_ipa_mo_set_attr_cell(void *obj, struct tlv_parsed *tp)
rlcc->initial_mcs = *TLVP_VAL(tp, NM_ATT_IPACC_RLC_CFG_3);
}
+ osmo_signal_dispatch(SS_GLOBAL, S_NEW_CELL_ATTR, bts);
+
return 0;
}
@@ -905,6 +911,8 @@ static int oml_ipa_mo_set_attr_nsvc(struct gsm_bts_gprs_nsvc *nsvc,
nsvc->local_port = ntohs(*(uint16_t *)cur);
}
+ osmo_signal_dispatch(SS_GLOBAL, S_NEW_NSVC_ATTR, nsvc);
+
return 0;
}