aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2011-01-16 17:21:58 +0100
committerHolger Hans Peter Freyther <zecke@selfish.org>2011-01-17 11:33:14 +0100
commita0215b1d46657a7aaafa4f8f743eddd72e5f7d40 (patch)
tree2a2e639cd471be9fbf4a8b20455779a60120c5e3
parentc457d6359d7e965f3cdaa475bf4b5dd20258aa5a (diff)
stats: Count number of outgoing packets on the linkset
-rw-r--r--include/mtp_data.h2
-rw-r--r--src/links.c2
-rw-r--r--src/mtp_layer3.c21
3 files changed, 17 insertions, 8 deletions
diff --git a/include/mtp_data.h b/include/mtp_data.h
index 66b96c8..f519a55 100644
--- a/include/mtp_data.h
+++ b/include/mtp_data.h
@@ -90,7 +90,7 @@ void mtp_link_set_add_link(struct mtp_link_set *set, struct link_data *link);
void mtp_link_set_init(void);
/* to be implemented for MSU sending */
-void mtp_link_set_submit(struct link_data *link, struct msgb *msg);
+void mtp_link_submit(struct link_data *link, struct msgb *msg);
void mtp_link_set_forward_sccp(struct mtp_link_set *link, struct msgb *msg, int sls);
void mtp_link_restart(struct link_data *link);
void mtp_link_set_sccp_down(struct mtp_link_set *link);
diff --git a/src/links.c b/src/links.c
index 023a7f4..016542d 100644
--- a/src/links.c
+++ b/src/links.c
@@ -71,7 +71,7 @@ void mtp_link_set_sccp_down(struct mtp_link_set *link)
{
}
-void mtp_link_set_submit(struct link_data *link, struct msgb *msg)
+void mtp_link_submit(struct link_data *link, struct msgb *msg)
{
link->write(link, msg);
}
diff --git a/src/mtp_layer3.c b/src/mtp_layer3.c
index 2e83b34..281ec65 100644
--- a/src/mtp_layer3.c
+++ b/src/mtp_layer3.c
@@ -37,6 +37,15 @@ static void *tall_mtp_ctx = NULL;
static int mtp_int_submit(struct mtp_link_set *link, int pc, int sls, int type, const uint8_t *data, unsigned int length);
+static int mtp_link_set_submit(struct mtp_link_set *set,
+ int sls, struct msgb *msg)
+{
+ rate_ctr_inc(&set->ctrg->ctr[MTP_LSET_TOTA_OUT_MSG]);
+ mtp_link_submit(set->slc[sls], msg);
+
+ return 0;
+}
+
static struct msgb *mtp_msg_alloc(struct mtp_link_set *link)
{
struct mtp_level_3_hdr *hdr;
@@ -204,7 +213,7 @@ static void mtp_send_sltm(struct mtp_link_set *link)
return;
}
- mtp_link_set_submit(link->slc[0], msg);
+ mtp_link_set_submit(link, 0, msg);
}
static void mtp_sltm_t1_timeout(void *_link)
@@ -329,13 +338,13 @@ static int mtp_link_sign_msg(struct mtp_link_set *link, struct mtp_level_3_hdr *
msg = mtp_tfp_alloc(link, 0);
if (!msg)
return -1;
- mtp_link_set_submit(link->slc[0], msg);
+ mtp_link_set_submit(link, 0, msg);
msg = mtp_tra_alloc(link);
if (!msg)
return -1;
- mtp_link_set_submit(link->slc[0], msg);
+ mtp_link_set_submit(link, 0, msg);
link->sccp_up = 1;
link->was_up = 1;
LOGP(DINP, LOGL_INFO, "SCCP traffic allowed. %p\n", link);
@@ -387,7 +396,7 @@ static int mtp_link_regular_msg(struct mtp_link_set *link, struct mtp_level_3_hd
out = mtp_create_slta(link, mng, l3_len);
if (!out)
return -1;
- mtp_link_set_submit(link->slc[0], out);
+ mtp_link_set_submit(link, 0, out);
return 0;
break;
case MTP_TST_MSG_SLTA:
@@ -473,7 +482,7 @@ static int mtp_link_sccp_data(struct mtp_link_set *link, struct mtp_level_3_hdr
if (!out)
return -1;
- mtp_link_set_submit(link->slc[MTP_LINK_SLS(hdr->addr)], out);
+ mtp_link_set_submit(link, MTP_LINK_SLS(hdr->addr), out);
return 0;
}
@@ -568,7 +577,7 @@ static int mtp_int_submit(struct mtp_link_set *link, int pc, int sls, int type,
put_ptr = msgb_put(msg, length);
memcpy(put_ptr, data, length);
- mtp_link_set_submit(link->slc[sls % 16], msg);
+ mtp_link_set_submit(link, sls % 16, msg);
return 0;
}