aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2010-12-23 00:16:34 +0100
committerHarald Welte <laforge@gnumonks.org>2010-12-26 19:20:56 +0100
commitf7db9c81daab53926bb1dfafbe903f738e9196e8 (patch)
tree0a51e00c3ada510af9bfaf81bbe8ca9b5ffda827
parente88e2c186c8ed92c8f44d21f9b1bfbb1c75e6526 (diff)
MNCC: remove 'upqueue'
The MNCC messages now again get directly handled by the net->mncc_recv() callback. If the callee wants to put them in a queue, it' his business to do that.
-rw-r--r--openbsc/include/openbsc/gsm_04_08.h2
-rw-r--r--openbsc/src/bsc_api.c19
-rw-r--r--openbsc/src/bsc_hack.c2
-rw-r--r--openbsc/src/mncc.c4
4 files changed, 4 insertions, 23 deletions
diff --git a/openbsc/include/openbsc/gsm_04_08.h b/openbsc/include/openbsc/gsm_04_08.h
index 5ee231c8d..88d43cd65 100644
--- a/openbsc/include/openbsc/gsm_04_08.h
+++ b/openbsc/include/openbsc/gsm_04_08.h
@@ -44,8 +44,6 @@ int gsm48_send_rr_ass_cmd(struct gsm_lchan *dest_lchan, struct gsm_lchan *lchan,
int gsm48_send_ho_cmd(struct gsm_lchan *old_lchan, struct gsm_lchan *new_lchan,
u_int8_t power_command, u_int8_t ho_ref);
-int bsc_upqueue(struct gsm_network *net);
-
int mncc_tx_to_cc(struct gsm_network *net, int msg_type, void *arg);
/* convert a ASCII phone number to call-control BCD */
diff --git a/openbsc/src/bsc_api.c b/openbsc/src/bsc_api.c
index 267998fa6..d7be9e44c 100644
--- a/openbsc/src/bsc_api.c
+++ b/openbsc/src/bsc_api.c
@@ -330,25 +330,6 @@ int gsm0808_page(struct gsm_bts *bts, unsigned int page_group, unsigned int mi_l
return rsl_paging_cmd(bts, page_group, mi_len, mi, chan_type);
}
-/* dequeue messages to layer 4 */
-int bsc_upqueue(struct gsm_network *net)
-{
- struct gsm_mncc *mncc;
- struct msgb *msg;
- int work = 0;
-
- if (net)
- while ((msg = msgb_dequeue(&net->upqueue))) {
- mncc = (struct gsm_mncc *)msg->data;
- if (net->mncc_recv)
- net->mncc_recv(net, mncc->msg_type, mncc);
- work = 1; /* work done */
- talloc_free(msg);
- }
-
- return work;
-}
-
static void handle_ass_compl(struct gsm_subscriber_connection *conn,
struct msgb *msg)
{
diff --git a/openbsc/src/bsc_hack.c b/openbsc/src/bsc_hack.c
index 967cb1d81..4adf9f9c7 100644
--- a/openbsc/src/bsc_hack.c
+++ b/openbsc/src/bsc_hack.c
@@ -247,6 +247,7 @@ int main(int argc, char **argv)
if (rc < 0)
exit(1);
bsc_api_init(bsc_gsmnet, msc_bsc_api());
+ mncc_sock_init(bsc_gsmnet);
/* seed the PRNG */
srand(time(NULL));
@@ -287,7 +288,6 @@ int main(int argc, char **argv)
}
while (1) {
- bsc_upqueue(bsc_gsmnet);
log_reset_context();
bsc_select_main(0);
}
diff --git a/openbsc/src/mncc.c b/openbsc/src/mncc.c
index fed866e15..affc80982 100644
--- a/openbsc/src/mncc.c
+++ b/openbsc/src/mncc.c
@@ -111,5 +111,7 @@ void mncc_set_cause(struct gsm_mncc *data, int loc, int val)
void cc_tx_to_mncc(struct gsm_network *net, struct msgb *msg)
{
- msgb_enqueue(&net->upqueue, msg);
+ struct gsm_mncc *mncc = msgb_data(msg);
+
+ net->mncc_recv(net, mncc->msg_type, mncc);
}