diff options
author | Alexander Couzens <lynxis@fe80.eu> | 2016-07-05 11:04:27 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2016-08-27 01:27:43 +0000 |
commit | 4e699a9cbf418518265dc7b8b6b7fe250d87222d (patch) | |
tree | ecf5b476bd6e91498b529c51213a9ed7ae6777dc /openbsc | |
parent | 76a0ad7fe93fce9bea56be5610b3bffbb8822887 (diff) |
sgsn: add statistics counter for LLC packets
new counters are:
llc.dl_bytes
llc.ul_bytes
llc.dl_packets
llc.ul_packets
The ip payload bytes are waiting for payload compression
because those data are known then.
Change-Id: I068376d35e84283cb98523cd3097a12c55cdb709
Diffstat (limited to 'openbsc')
-rw-r--r-- | openbsc/include/openbsc/sgsn.h | 4 | ||||
-rw-r--r-- | openbsc/src/gprs/gprs_llc.c | 7 | ||||
-rw-r--r-- | openbsc/src/gprs/gprs_sgsn.c | 4 |
3 files changed, 15 insertions, 0 deletions
diff --git a/openbsc/include/openbsc/sgsn.h b/openbsc/include/openbsc/sgsn.h index 59126fe9b..19496cbf8 100644 --- a/openbsc/include/openbsc/sgsn.h +++ b/openbsc/include/openbsc/sgsn.h @@ -22,6 +22,10 @@ enum sgsn_auth_policy { enum sgsn_rate_ctr_keys { + CTR_LLC_DL_BYTES, + CTR_LLC_UL_BYTES, + CTR_LLC_DL_PACKETS, + CTR_LLC_UL_PACKETS, CTR_GPRS_ATTACH_REQUEST, CTR_GPRS_ATTACH_ACKED, CTR_GPRS_ATTACH_REJECTED, diff --git a/openbsc/src/gprs/gprs_llc.c b/openbsc/src/gprs/gprs_llc.c index 7724ebb5b..c77fc0580 100644 --- a/openbsc/src/gprs/gprs_llc.c +++ b/openbsc/src/gprs/gprs_llc.c @@ -29,6 +29,7 @@ #include <osmocom/core/linuxlist.h> #include <osmocom/core/timer.h> #include <osmocom/core/talloc.h> +#include <osmocom/core/rate_ctr.h> #include <osmocom/gprs/gprs_bssgp.h> #include <openbsc/gsm_data.h> @@ -331,6 +332,9 @@ int gprs_llc_tx_u(struct msgb *msg, uint8_t sapi, int command, /* Identifiers passed down: (BVCI, NSEI) */ + rate_ctr_inc(&sgsn->rate_ctrs->ctr[CTR_LLC_DL_PACKETS]); + rate_ctr_add(&sgsn->rate_ctrs->ctr[CTR_LLC_DL_BYTES], msg->len); + /* Send BSSGP-DL-UNITDATA.req */ return _bssgp_tx_dl_ud(msg, NULL); } @@ -673,6 +677,9 @@ int gprs_llc_rcvmsg(struct msgb *msg, struct tlv_parsed *tv) if (rc < 0) return rc; + rate_ctr_inc(&sgsn->rate_ctrs->ctr[CTR_LLC_UL_PACKETS]); + rate_ctr_add(&sgsn->rate_ctrs->ctr[CTR_LLC_UL_BYTES], msg->len); + /* llhp.data is only set when we need to send LL_[UNIT]DATA_IND up */ if (llhp.cmd == GPRS_LLC_UI && llhp.data && llhp.data_len) { msgb_gmmh(msg) = llhp.data; diff --git a/openbsc/src/gprs/gprs_sgsn.c b/openbsc/src/gprs/gprs_sgsn.c index 502ba4a98..038e6f0eb 100644 --- a/openbsc/src/gprs/gprs_sgsn.c +++ b/openbsc/src/gprs/gprs_sgsn.c @@ -91,6 +91,10 @@ static const struct rate_ctr_group_desc pdpctx_ctrg_desc = { }; static const struct rate_ctr_desc sgsn_ctr_description[] = { + { "llc.dl_bytes", "Count sent LLC bytes before giving it to the bssgp layer" }, + { "llc.ul_bytes", "Count sucessful received LLC bytes (encrypt & fcs correct)" }, + { "llc.dl_packets", "Count sucessful sent LLC packets before giving it to the bssgp layer" }, + { "llc.ul_packets", "Count sucessful received LLC packets (encrypt & fcs correct)" }, { "gprs.attach_requested", "Received attach requests" }, { "gprs.attach_accepted", "Sent attach accepts" }, { "gprs.attach_rejected", "Sent attach rejects" }, |