From f19afaed7bcf4959329ff8f6c9600132726b75e1 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Sun, 2 Jan 2011 16:36:29 +0100 Subject: sccp: Stop queueing messages between SLTM messages Remove the queueing of messages that was added during a debugging session and should not be needed. This will simply bringing down the linkset. --- include/mtp_data.h | 2 -- src/msc_conn.c | 30 ------------------------------ src/mtp_layer3.c | 2 -- 3 files changed, 34 deletions(-) diff --git a/include/mtp_data.h b/include/mtp_data.h index e98d073..ba7695a 100644 --- a/include/mtp_data.h +++ b/include/mtp_data.h @@ -50,7 +50,6 @@ struct mtp_link { uint8_t test_ptrn[14]; int sltm_pending; - struct llist_head pending_msgs; int sltm_once; int was_up; @@ -81,7 +80,6 @@ void mtp_link_init(void); void mtp_link_submit(struct mtp_link *link, struct msgb *msg); void mtp_link_forward_sccp(struct mtp_link *link, struct msgb *msg, int sls); void mtp_link_restart(struct mtp_link *link); -void mtp_link_slta_recv(struct mtp_link *link); void mtp_link_sccp_down(struct mtp_link *link); #endif diff --git a/src/msc_conn.c b/src/msc_conn.c index 77c4039..9f8e4c6 100644 --- a/src/msc_conn.c +++ b/src/msc_conn.c @@ -46,31 +46,8 @@ static void msc_send_id_response(struct bsc_data *bsc); static void msc_send(struct bsc_data *bsc, struct msgb *msg, int proto); static void msc_schedule_reconnect(struct bsc_data *bsc); -void mtp_link_slta_recv(struct mtp_link *link) -{ - struct msgb *msg; - unsigned int sls; - - while (!llist_empty(&link->pending_msgs)) { - msg = msgb_dequeue(&link->pending_msgs); - sls = (unsigned int) msg->l3h; - - if (mtp_link_submit_sccp_data(link, sls, msg->l2h, msgb_l2len(msg)) != 0) - LOGP(DMSC, LOGL_ERROR, "Could not forward SCCP message.\n"); - - msgb_free(msg); - } -} - int send_or_queue_bsc_msg(struct mtp_link *link, int sls, struct msgb *msg) { - if (link->sltm_pending) { - LOGP(DMSC, LOGL_NOTICE, "Queueing msg for pending SLTM.\n"); - msg->l3h = (uint8_t *) sls; - msgb_enqueue(&link->pending_msgs, msg); - return 1; - } - if (mtp_link_submit_sccp_data(link, sls, msg->l2h, msgb_l2len(msg)) != 0) LOGP(DMSC, LOGL_ERROR, "Could not forward SCCP message.\n"); return 0; @@ -79,13 +56,6 @@ int send_or_queue_bsc_msg(struct mtp_link *link, int sls, struct msgb *msg) void msc_clear_queue(struct bsc_data *data) { - struct msgb *msg; - - LOGP(DMSC, LOGL_NOTICE, "Clearing the MSC to BSC queue.\n"); - while (!llist_empty(&data->link.the_link->pending_msgs)) { - msg = msgb_dequeue(&data->link.the_link->pending_msgs); - msgb_free(msg); - } } void msc_close_connection(struct bsc_data *bsc) diff --git a/src/mtp_layer3.c b/src/mtp_layer3.c index 93a588c..91d3f07 100644 --- a/src/mtp_layer3.c +++ b/src/mtp_layer3.c @@ -264,7 +264,6 @@ struct mtp_link *mtp_link_alloc(void) link->t2_timer.cb = mtp_sltm_t2_timeout; link->delay_timer.data = link; link->delay_timer.cb = mtp_delayed_start; - INIT_LLIST_HEAD(&link->pending_msgs); return link; } @@ -394,7 +393,6 @@ static int mtp_link_regular_msg(struct mtp_link *link, struct mtp_level_3_hdr *h /* we had a matching slta */ bsc_del_timer(&link->t1_timer); link->sltm_pending = 0; - mtp_link_slta_recv(link); return 0; break; } -- cgit v1.2.3