aboutsummaryrefslogtreecommitdiffstats
path: root/src/libmsc/osmo_msc.c
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2018-03-22 16:43:40 +0100
committerNeels Hofmeyr <neels@hofmeyr.de>2018-03-22 17:07:59 +0100
commit55014d050991a4f4be56bee85c47a3c40c091fdd (patch)
tree67794523124715f38abbb40ead0872d037ed1363 /src/libmsc/osmo_msc.c
parent67fa909494c407862a4e7e020152b7bbf3833468 (diff)
dissolve libcommon-cs: move gsm_network_init() to libmsc
Move to libmsc/osmo_msc.c (for lack of a better place and reluctance to create an own file just for gsm_network_init()). Change-Id: I2279eee4db6f6687726bfd55841b3748d4930f15
Diffstat (limited to 'src/libmsc/osmo_msc.c')
-rw-r--r--src/libmsc/osmo_msc.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/libmsc/osmo_msc.c b/src/libmsc/osmo_msc.c
index d0c523502..62a7e8a22 100644
--- a/src/libmsc/osmo_msc.c
+++ b/src/libmsc/osmo_msc.c
@@ -38,6 +38,43 @@
#include <osmocom/msc/iu_dummy.h>
#endif
+struct gsm_network *gsm_network_init(void *ctx, mncc_recv_cb_t mncc_recv)
+{
+ struct gsm_network *net;
+
+ net = talloc_zero(ctx, struct gsm_network);
+ if (!net)
+ return NULL;
+
+ net->plmn = (struct osmo_plmn_id){ .mcc=1, .mnc=1 };
+
+ /* Permit a compile-time default of A5/3 and A5/1 */
+ net->a5_encryption_mask = (1 << 3) | (1 << 1);
+
+ /* Use 30 min periodic update interval as sane default */
+ net->t3212 = 5;
+
+ net->paging_response_timer = MSC_PAGING_RESPONSE_TIMER_DEFAULT;
+
+ INIT_LLIST_HEAD(&net->trans_list);
+ INIT_LLIST_HEAD(&net->upqueue);
+ INIT_LLIST_HEAD(&net->subscr_conns);
+
+ /* init statistics */
+ net->msc_ctrs = rate_ctr_group_alloc(net, &msc_ctrg_desc, 0);
+ if (!net->msc_ctrs) {
+ talloc_free(net);
+ return NULL;
+ }
+ net->active_calls = osmo_counter_alloc("msc.active_calls");
+
+ net->mncc_recv = mncc_recv;
+
+ INIT_LLIST_HEAD(&net->a.bscs);
+
+ return net;
+}
+
/* Receive a SAPI-N-REJECT from BSC */
void msc_sapi_n_reject(struct gsm_subscriber_connection *conn, int dlci)
{