aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/osmo-bsc/osmo_bsc_api.c
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2011-06-04 14:51:51 +0200
committerHolger Hans Peter Freyther <zecke@selfish.org>2012-03-16 11:56:10 +0100
commit4cdb050d132cb4a9f35f0ab1165f58f040132afe (patch)
tree596495072c78472793ff747c383a87f46161267c /openbsc/src/osmo-bsc/osmo_bsc_api.c
parentf31a4a48100eaca8f31e511f542c85b5a430baf4 (diff)
bsc: Move away from ->bsc.msc to use the selected MSC
For multiple MSCs we should only have one place where the MSC is selected and the rest will extract it from somewhere.
Diffstat (limited to 'openbsc/src/osmo-bsc/osmo_bsc_api.c')
-rw-r--r--openbsc/src/osmo-bsc/osmo_bsc_api.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/openbsc/src/osmo-bsc/osmo_bsc_api.c b/openbsc/src/osmo-bsc/osmo_bsc_api.c
index eb7d38ad5..04305c20f 100644
--- a/openbsc/src/osmo-bsc/osmo_bsc_api.c
+++ b/openbsc/src/osmo-bsc/osmo_bsc_api.c
@@ -45,18 +45,18 @@
} \
bsc_queue_for_msc(conn->sccp_con, resp);
-static uint16_t get_network_code_for_msc(struct gsm_network *net)
+static uint16_t get_network_code_for_msc(struct osmo_msc_data *msc)
{
- if (net->bsc_data->msc.core_ncc != -1)
- return net->bsc_data->msc.core_ncc;
- return net->network_code;
+ if (msc->core_ncc != -1)
+ return msc->core_ncc;
+ return msc->network->network_code;
}
-static uint16_t get_country_code_for_msc(struct gsm_network *net)
+static uint16_t get_country_code_for_msc(struct osmo_msc_data *msc)
{
- if (net->bsc_data->msc.core_mcc != -1)
- return net->bsc_data->msc.core_mcc;
- return net->country_code;
+ if (msc->core_mcc != -1)
+ return msc->core_mcc;
+ return msc->network->country_code;
}
static void bsc_sapi_n_reject(struct gsm_subscriber_connection *conn, int dlci)
@@ -89,8 +89,8 @@ static int bsc_compl_l3(struct gsm_subscriber_connection *conn, struct msgb *msg
uint16_t chosen_channel)
{
struct msgb *resp;
- uint16_t network_code = get_network_code_for_msc(conn->bts->network);
- uint16_t country_code = get_country_code_for_msc(conn->bts->network);
+ uint16_t network_code;
+ uint16_t country_code;
LOGP(DMSC, LOGL_INFO, "Tx MSC COMPL L3\n");
@@ -98,6 +98,9 @@ static int bsc_compl_l3(struct gsm_subscriber_connection *conn, struct msgb *msg
if (bsc_create_new_connection(conn) != 0)
return BSC_API_CONN_POL_REJECT;
+ network_code = get_network_code_for_msc(conn->sccp_con->msc);
+ country_code = get_country_code_for_msc(conn->sccp_con->msc);
+
bsc_scan_bts_msg(conn, msg);
resp = gsm0808_create_layer3(msg, network_code, country_code,
conn->bts->location_area_code,