aboutsummaryrefslogtreecommitdiffstats
path: root/src/gb/gprs_ns2_fr.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@osmocom.org>2021-01-31 11:54:02 +0100
committerHarald Welte <laforge@osmocom.org>2021-02-01 09:39:29 +0100
commit76346079e8e7ee86121bde83b2338f06cd4f7ead (patch)
tree0ff77cc8fdc19e76bb13f1fb1e49fb2e99fba68c /src/gb/gprs_ns2_fr.c
parent97ccbf71b311639f6668fcb952806a3c0931d114 (diff)
ns2: Introduce a per-bind stat_item group with backlog length
The backlog length indicates the instantaneous length of the backlog. Change-Id: I1c55b4619b1221d7e607ace58649323407faf86b
Diffstat (limited to 'src/gb/gprs_ns2_fr.c')
-rw-r--r--src/gb/gprs_ns2_fr.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c
index c32bce87..49e92ae2 100644
--- a/src/gb/gprs_ns2_fr.c
+++ b/src/gb/gprs_ns2_fr.c
@@ -47,6 +47,7 @@
#include <osmocom/gprs/frame_relay.h>
#include <osmocom/core/byteswap.h>
+#include <osmocom/core/stat_item.h>
#include <osmocom/core/logging.h>
#include <osmocom/core/msgb.h>
#include <osmocom/core/select.h>
@@ -327,6 +328,7 @@ static void enqueue_at_head(struct gprs_ns2_vc_bind *bind, struct msgb *msg)
{
struct priv_bind *priv = bind->priv;
llist_add(&msg->list, &priv->backlog.list);
+ osmo_stat_item_inc(bind->statg->items[NS2_BIND_STAT_BACKLOG_LEN], 1);
osmo_timer_schedule(&priv->backlog.timer, 0, priv->backlog.retry_us);
}
@@ -334,6 +336,7 @@ static void enqueue_at_tail(struct gprs_ns2_vc_bind *bind, struct msgb *msg)
{
struct priv_bind *priv = bind->priv;
llist_add_tail(&msg->list, &priv->backlog.list);
+ osmo_stat_item_inc(bind->statg->items[NS2_BIND_STAT_BACKLOG_LEN], 1);
osmo_timer_schedule(&priv->backlog.timer, 0, priv->backlog.retry_us);
}
@@ -402,6 +405,7 @@ static void fr_backlog_timer_cb(void *data)
llist_add(&msg->list, &priv->backlog.list);
break;
}
+ osmo_stat_item_dec(bind->statg->items[NS2_BIND_STAT_BACKLOG_LEN], 1);
}
/* re-start timer if we still have data in the queue */