This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
iedemam gerrit-no-reply at lists.osmocom.orgiedemam has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22103 )
Change subject: stats: Add granularity to SDCCH/TCH/LU activity.
......................................................................
stats: Add granularity to SDCCH/TCH/LU activity.
Change-Id: I4df275e4770c5ff3643c79ba828e736986f8bb47
---
M include/osmocom/bsc/bts.h
M src/osmo-bsc/abis_rsl.c
M src/osmo-bsc/assignment_fsm.c
M src/osmo-bsc/bts.c
M src/osmo-bsc/osmo_bsc_filter.c
5 files changed, 176 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/03/22103/1
diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h
index c79e7f7..b616aa5 100644
--- a/include/osmocom/bsc/bts.h
+++ b/include/osmocom/bsc/bts.h
@@ -18,6 +18,13 @@
enum bts_counter_id {
BTS_CTR_CHREQ_TOTAL,
+ BTS_CTR_CHREQ_ATTEMPTED_EMERG,
+ BTS_CTR_CHREQ_ATTEMPTED_CALL,
+ BTS_CTR_CHREQ_ATTEMPTED_LOCATION_UPD,
+ BTS_CTR_CHREQ_ATTEMPTED_PAG,
+ BTS_CTR_CHREQ_ATTEMPTED_PDCH,
+ BTS_CTR_CHREQ_ATTEMPTED_OTHER,
+ BTS_CTR_CHREQ_ATTEMPTED_UNKNOWN,
BTS_CTR_CHREQ_SUCCESSFUL,
BTS_CTR_CHREQ_NO_CHANNEL,
BTS_CTR_CHAN_RF_FAIL,
@@ -36,6 +43,8 @@
BTS_CTR_PAGING_NO_ACTIVE_PAGING,
BTS_CTR_PAGING_MSC_FLUSH,
BTS_CTR_CHAN_ACT_TOTAL,
+ BTS_CTR_CHAN_ACT_SDCCH,
+ BTS_CTR_CHAN_ACT_TCH,
BTS_CTR_CHAN_ACT_NACK,
BTS_CTR_RSL_UNKNOWN,
BTS_CTR_RSL_IPA_NACK,
@@ -65,12 +74,23 @@
BTS_CTR_TS_BORKEN_EV_PDCH_DEACT_ACK_NACK,
BTS_CTR_TS_BORKEN_EV_TEARDOWN,
BTS_CTR_ASSIGNMENT_ATTEMPTED,
+ BTS_CTR_ASSIGNMENT_ATTEMPTED_SDCCH,
+ BTS_CTR_ASSIGNMENT_ATTEMPTED_TCH,
BTS_CTR_ASSIGNMENT_COMPLETED,
+ BTS_CTR_ASSIGNMENT_COMPLETED_SDCCH,
+ BTS_CTR_ASSIGNMENT_COMPLETED_TCH,
BTS_CTR_ASSIGNMENT_STOPPED,
BTS_CTR_ASSIGNMENT_NO_CHANNEL,
+ BTS_CTR_ASSIGNMENT_NO_CHANNEL_SDCCH,
+ BTS_CTR_ASSIGNMENT_NO_CHANNEL_TCH,
BTS_CTR_ASSIGNMENT_TIMEOUT,
BTS_CTR_ASSIGNMENT_FAILED,
BTS_CTR_ASSIGNMENT_ERROR,
+ BTS_CTR_LOCATION_UPDATE_REQUEST,
+ BTS_CTR_LOCATION_UPDATE_ACCEPT,
+ BTS_CTR_LOCATION_UPDATE_REJECT,
+ BTS_CTR_LOCATION_UPDATE_DETACH,
+ BTS_CTR_LOCATION_UPDATE_UNKNOWN,
BTS_CTR_HANDOVER_ATTEMPTED,
BTS_CTR_HANDOVER_COMPLETED,
BTS_CTR_HANDOVER_STOPPED,
diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c
index 2142219..a68c9fb 100644
--- a/src/osmo-bsc/abis_rsl.c
+++ b/src/osmo-bsc/abis_rsl.c
@@ -613,6 +613,17 @@
msg->dst = trx->rsl_link;
rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHAN_ACT_TOTAL]);
+ switch (lchan->type) {
+ case GSM_LCHAN_SDCCH:
+ rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHAN_ACT_SDCCH]);
+ break;
+ case GSM_LCHAN_TCH_H:
+ case GSM_LCHAN_TCH_F:
+ rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHAN_ACT_TCH]);
+ break;
+ default:
+ break;
+ }
return abis_rsl_sendmsg(msg);
}
@@ -1511,6 +1522,29 @@
get_value_string(gsm_chreq_descs, rqd->reason), rqd->ref.ra, bts->network->neci, rqd->reason);
rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_TOTAL]);
+ switch (rqd->reason) {
+ case GSM_CHREQ_REASON_EMERG:
+ rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_ATTEMPTED_EMERG]);
+ break;
+ case GSM_CHREQ_REASON_CALL:
+ rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_ATTEMPTED_CALL]);
+ break;
+ case GSM_CHREQ_REASON_LOCATION_UPD:
+ rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_ATTEMPTED_LOCATION_UPD]);
+ break;
+ case GSM_CHREQ_REASON_PAG:
+ rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_ATTEMPTED_PAG]);
+ break;
+ case GSM_CHREQ_REASON_PDCH:
+ rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_ATTEMPTED_PDCH]);
+ break;
+ case GSM_CHREQ_REASON_OTHER:
+ rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_ATTEMPTED_OTHER]);
+ break;
+ default:
+ rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_ATTEMPTED_UNKNOWN]);
+ break;
+ }
/* Enqueue request */
llist_add_tail(&rqd->entry, &bts->chan_rqd_queue);
diff --git a/src/osmo-bsc/assignment_fsm.c b/src/osmo-bsc/assignment_fsm.c
index 7db37b2..21e80b8 100644
--- a/src/osmo-bsc/assignment_fsm.c
+++ b/src/osmo-bsc/assignment_fsm.c
@@ -255,6 +255,17 @@
osmo_fsm_inst_term(conn->assignment.fi, OSMO_FSM_TERM_REGULAR, 0);
assignment_count_result(CTR_ASSIGNMENT_COMPLETED);
+ switch (conn->lchan->type) {
+ case GSM_LCHAN_SDCCH:
+ rate_ctr_inc(&conn->lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_COMPLETED_SDCCH]);
+ break;
+ case GSM_LCHAN_TCH_H:
+ case GSM_LCHAN_TCH_F:
+ rate_ctr_inc(&conn->lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_COMPLETED_TCH]);
+ break;
+ default:
+ break;
+ }
}
static void assignment_fsm_update_id(struct gsm_subscriber_connection *conn)
@@ -418,6 +429,17 @@
OSMO_ASSERT(!conn->assignment.new_lchan);
assignment_count(CTR_ASSIGNMENT_ATTEMPTED);
+ switch (conn->lchan->type) {
+ case GSM_LCHAN_SDCCH:
+ rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_ATTEMPTED_SDCCH]);
+ break;
+ case GSM_LCHAN_TCH_H:
+ case GSM_LCHAN_TCH_F:
+ rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_ATTEMPTED_TCH]);
+ break;
+ default:
+ break;
+ }
fi = osmo_fsm_inst_alloc_child(&assignment_fsm, conn->fi, GSCON_EV_ASSIGNMENT_END);
OSMO_ASSERT(fi);
@@ -452,6 +474,17 @@
* the fi will be gone from error handling in there. */
if (conn->assignment.fi) {
assignment_count_result(CTR_ASSIGNMENT_COMPLETED);
+ switch (conn->lchan->type) {
+ case GSM_LCHAN_SDCCH:
+ rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_COMPLETED_SDCCH]);
+ break;
+ case GSM_LCHAN_TCH_H:
+ case GSM_LCHAN_TCH_F:
+ rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_COMPLETED_TCH]);
+ break;
+ default:
+ break;
+ }
osmo_fsm_inst_term(conn->assignment.fi, OSMO_FSM_TERM_REGULAR, 0);
}
return;
@@ -506,6 +539,18 @@
* down the assignment in case of failure. */
if (!conn->assignment.new_lchan) {
assignment_count_result(CTR_ASSIGNMENT_NO_CHANNEL);
+ switch (req->ch_mode_rate[0].chan_mode) {
+ case GSM48_CMODE_SIGN:
+ rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_NO_CHANNEL_SDCCH]);
+ break;
+ case GSM48_CMODE_SPEECH_V1:
+ case GSM48_CMODE_SPEECH_EFR:
+ case GSM48_CMODE_SPEECH_AMR:
+ rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_NO_CHANNEL_TCH]);
+ break;
+ default:
+ break;
+ }
assignment_fail(GSM0808_CAUSE_NO_RADIO_RESOURCE_AVAILABLE,
"BSSMAP Assignment Command:"
" No lchan available for: pref=%s:%s / alt1=%s:%s / alt2=%s:%s\n",
diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c
index 39122ae..9d42d50 100644
--- a/src/osmo-bsc/bts.c
+++ b/src/osmo-bsc/bts.c
@@ -757,6 +757,27 @@
[BTS_CTR_CHREQ_TOTAL] = \
{ "chreq:total",
"Received channel requests" },
+ [BTS_CTR_CHREQ_ATTEMPTED_EMERG] = \
+ { "chreq:attempted_emerg",
+ "Received channel requests EMERG" },
+ [BTS_CTR_CHREQ_ATTEMPTED_CALL] = \
+ { "chreq:attempted_call",
+ "Received channel requests CALL" },
+ [BTS_CTR_CHREQ_ATTEMPTED_LOCATION_UPD] = \
+ { "chreq:attempted_location_upd",
+ "Received channel requests LOCATION_UPD" },
+ [BTS_CTR_CHREQ_ATTEMPTED_PAG] = \
+ { "chreq:attempted_pag",
+ "Received channel requests PAG" },
+ [BTS_CTR_CHREQ_ATTEMPTED_PDCH] = \
+ { "chreq:attempted_pdch",
+ "Received channel requests PDCH" },
+ [BTS_CTR_CHREQ_ATTEMPTED_OTHER] = \
+ { "chreq:attempted_other",
+ "Received channel requests OTHER" },
+ [BTS_CTR_CHREQ_ATTEMPTED_UNKNOWN] = \
+ { "chreq:attempted_unknown",
+ "Received channel requests UNKNOWN" },
[BTS_CTR_CHREQ_SUCCESSFUL] = \
{ "chreq:successful",
"Successful channel requests (immediate assign sent)" },
@@ -811,6 +832,12 @@
[BTS_CTR_CHAN_ACT_TOTAL] = \
{ "chan_act:total",
"Total number of Channel Activations" },
+ [BTS_CTR_CHAN_ACT_SDCCH] = \
+ { "chan_act:sdcch",
+ "Number of SDCCH Channel Activations" },
+ [BTS_CTR_CHAN_ACT_TCH] = \
+ { "chan_act:tch",
+ "Number of TCH Channel Activations" },
[BTS_CTR_CHAN_ACT_NACK] = \
{ "chan_act:nack",
"Number of Channel Activations that the BTS NACKed" },
@@ -900,15 +927,33 @@
[BTS_CTR_ASSIGNMENT_ATTEMPTED] = \
{ "assignment:attempted",
"Assignment attempts" },
+ [BTS_CTR_ASSIGNMENT_ATTEMPTED_SDCCH] = \
+ { "assignment:attempted_sdcch",
+ "Assignment attempts SDCCH" },
+ [BTS_CTR_ASSIGNMENT_ATTEMPTED_TCH] = \
+ { "assignment:attempted_tch",
+ "Assignment attempts TCH" },
[BTS_CTR_ASSIGNMENT_COMPLETED] = \
{ "assignment:completed",
"Assignment completed" },
+ [BTS_CTR_ASSIGNMENT_COMPLETED_SDCCH] = \
+ { "assignment:completed_sdcch",
+ "Assignment completed SDCCH" },
+ [BTS_CTR_ASSIGNMENT_COMPLETED_TCH] = \
+ { "assignment:completed_tch",
+ "Assignment completed TCH" },
[BTS_CTR_ASSIGNMENT_STOPPED] = \
{ "assignment:stopped",
"Connection ended during Assignment" },
[BTS_CTR_ASSIGNMENT_NO_CHANNEL] = \
{ "assignment:no_channel",
"Failure to allocate lchan for Assignment" },
+ [BTS_CTR_ASSIGNMENT_NO_CHANNEL_SDCCH] = \
+ { "assignment:no_channel_sdcch",
+ "Failure to allocate SDCCH lchan for Assignment" },
+ [BTS_CTR_ASSIGNMENT_NO_CHANNEL_TCH] = \
+ { "assignment:no_channel_tch",
+ "Failure to allocate TCH lchan for Assignment" },
[BTS_CTR_ASSIGNMENT_TIMEOUT] = \
{ "assignment:timeout",
"Assignment timed out" },
@@ -918,7 +963,21 @@
[BTS_CTR_ASSIGNMENT_ERROR] = \
{ "assignment:error",
"Assignment failed for other reason" },
-
+ [BTS_CTR_LOCATION_UPDATE_REQUEST] = \
+ { "location_update:request",
+ "Location Update Request" },
+ [BTS_CTR_LOCATION_UPDATE_ACCEPT] = \
+ { "location_update:accept",
+ "Location Update Accept" },
+ [BTS_CTR_LOCATION_UPDATE_REJECT] = \
+ { "location_update:reject",
+ "Location Update Reject" },
+ [BTS_CTR_LOCATION_UPDATE_DETACH] = \
+ { "location_update:detach",
+ "Location Update Detach" },
+ [BTS_CTR_LOCATION_UPDATE_UNKNOWN] = \
+ { "location_update:unknown",
+ "Location Update UNKNOWN" },
[BTS_CTR_HANDOVER_ATTEMPTED] = \
{ "handover:attempted",
"Intra-BSC handover attempts" },
diff --git a/src/osmo-bsc/osmo_bsc_filter.c b/src/osmo-bsc/osmo_bsc_filter.c
index 497b3e4..4113ac4 100644
--- a/src/osmo-bsc/osmo_bsc_filter.c
+++ b/src/osmo-bsc/osmo_bsc_filter.c
@@ -118,6 +118,23 @@
if (mtype == GSM48_MT_MM_INFO) {
bsc_patch_mm_info(conn, &gh->data[0], length);
}
+ switch (mtype) {
+ case GSM48_MT_MM_LOC_UPD_REQUEST:
+ rate_ctr_inc(&conn->lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_LOCATION_UPDATE_REQUEST]);
+ break;
+ case GSM48_MT_MM_LOC_UPD_ACCEPT:
+ rate_ctr_inc(&conn->lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_LOCATION_UPDATE_ACCEPT]);
+ break;
+ case GSM48_MT_MM_LOC_UPD_REJECT:
+ rate_ctr_inc(&conn->lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_LOCATION_UPDATE_REJECT]);
+ break;
+ case GSM48_MT_MM_IMSI_DETACH_IND:
+ rate_ctr_inc(&conn->lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_LOCATION_UPDATE_DETACH]);
+ break;
+ default:
+ rate_ctr_inc(&conn->lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_LOCATION_UPDATE_UNKNOWN]);
+ break;
+ }
return 0;
}
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22103
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I4df275e4770c5ff3643c79ba828e736986f8bb47
Gerrit-Change-Number: 22103
Gerrit-PatchSet: 1
Gerrit-Owner: iedemam <michael at kapsulate.com>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210111/56a41b91/attachment.htm>