diff options
author | sivasankari <Sivasankari.Theerthagiri@radisys.com> | 2016-12-16 12:57:18 +0530 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2016-12-22 14:09:04 +0000 |
commit | da7250ad2c1cd5ddc7d3c6e10435a00b357ef8f7 (patch) | |
tree | 7d7a96d20f11593ddcd1b66654d5258fa7feb0d8 /src/tbf.cpp | |
parent | 963cdaffd5d2ba698010c7c4000792487e07a2e8 (diff) |
Add counter at BTS level And statistics at TBF/MS level.
Adds spb counters at BTS level(show bts statistics).
Adds RLC/MAC downlink control msg at ms level(show ms imsi <imsi_val>).
Adds the number of coding schemes counter for UL at TBF level.
Change-Id: Icbe4ba95e34bea89ee36f532d099db68204b7c38
Diffstat (limited to 'src/tbf.cpp')
-rw-r--r-- | src/tbf.cpp | 45 |
1 files changed, 44 insertions, 1 deletions
diff --git a/src/tbf.cpp b/src/tbf.cpp index 60fba68e..0e4d6cc0 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -66,6 +66,25 @@ static const struct rate_ctr_desc tbf_dl_egprs_ctr_description[] = { { "egprs.downlink.mcs9", "MCS9 " }, }; +static const struct rate_ctr_desc tbf_ul_gprs_ctr_description[] = { + { "gprs.uplink.cs1", "CS1 " }, + { "gprs.uplink.cs2", "CS2 " }, + { "gprs.uplink.cs3", "CS3 " }, + { "gprs.uplink.cs4", "CS4 " }, +}; + +static const struct rate_ctr_desc tbf_ul_egprs_ctr_description[] = { + { "egprs.uplink.mcs1", "MCS1 " }, + { "egprs.uplink.mcs2", "MCS2 " }, + { "egprs.uplink.mcs3", "MCS3 " }, + { "egprs.uplink.mcs4", "MCS4 " }, + { "egprs.uplink.mcs5", "MCS5 " }, + { "egprs.uplink.mcs6", "MCS6 " }, + { "egprs.uplink.mcs7", "MCS7 " }, + { "egprs.uplink.mcs8", "MCS8 " }, + { "egprs.uplink.mcs9", "MCS9 " }, +}; + static const struct rate_ctr_group_desc tbf_ctrg_desc = { "pcu.tbf", "TBF Statistics", @@ -90,6 +109,22 @@ static const struct rate_ctr_group_desc tbf_dl_egprs_ctrg_desc = { tbf_dl_egprs_ctr_description, }; +static const struct rate_ctr_group_desc tbf_ul_gprs_ctrg_desc = { + "tbf.gprs", + "Data Blocks", + OSMO_STATS_CLASS_SUBSCRIBER, + ARRAY_SIZE(tbf_ul_gprs_ctr_description), + tbf_ul_gprs_ctr_description, +}; + +static const struct rate_ctr_group_desc tbf_ul_egprs_ctrg_desc = { + "tbf.egprs", + "Data Blocks", + OSMO_STATS_CLASS_SUBSCRIBER, + ARRAY_SIZE(tbf_ul_egprs_ctr_description), + tbf_ul_egprs_ctr_description, +}; + gprs_rlcmac_tbf::Meas::Meas() : rssi_sum(0), rssi_num(0) @@ -370,9 +405,12 @@ void tbf_free(struct gprs_rlcmac_tbf *tbf) { /* update counters */ if (tbf->direction == GPRS_RLCMAC_UL_TBF) { + gprs_rlcmac_ul_tbf *ul_tbf = as_ul_tbf(tbf); tbf->bts->tbf_ul_freed(); if (tbf->state_is(GPRS_RLCMAC_FLOW)) tbf->bts->tbf_ul_aborted(); + rate_ctr_group_free(ul_tbf->m_ul_egprs_ctrs); + rate_ctr_group_free(ul_tbf->m_ul_gprs_ctrs); } else { gprs_rlcmac_dl_tbf *dl_tbf = as_dl_tbf(tbf); if (tbf->is_egprs_enabled()) { @@ -713,7 +751,9 @@ gprs_rlcmac_ul_tbf::gprs_rlcmac_ul_tbf(BTS *bts_) : m_rx_counter(0), m_n3103(0), m_contention_resolution_done(0), - m_final_ack_sent(0) + m_final_ack_sent(0), + m_ul_gprs_ctrs(NULL), + m_ul_egprs_ctrs(NULL) { memset(&m_usf, 0, sizeof(m_usf)); } @@ -782,6 +822,9 @@ struct gprs_rlcmac_ul_tbf *tbf_alloc_ul_tbf(struct gprs_rlcmac_bts *bts, return NULL; } + tbf->m_ul_egprs_ctrs = rate_ctr_group_alloc(tbf, &tbf_ul_egprs_ctrg_desc, 0); + tbf->m_ul_gprs_ctrs = rate_ctr_group_alloc(tbf, &tbf_ul_gprs_ctrg_desc, 0); + llist_add(&tbf->list(), &bts->bts->ul_tbfs()); tbf->bts->tbf_ul_created(); |