[PATCH 3/8] agch: Add simple counters

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/OpenBSC@lists.osmocom.org/.

Jacob Erlbeck jerlbeck at sysmocom.de
Fri Feb 21 23:36:04 UTC 2014


Counters are added for the following events (use VTY show to query):

  - Dropped IMMEDIATE ASSIGN REJECT messages
  - Merged IMMEDIATE ASSIGN REJECT messages
  - Rejected AGCH messages
  - Use of PCH (non-reserved) for AGCH messages
  - Use of AGCH (reserved) for AGCH messages

Sponsored-by: On-Waves ehf
---
 include/osmo-bts/gsm_data.h |   10 ++++++++++
 src/common/bts.c            |    1 +
 src/common/vty.c            |    8 ++++++++
 3 files changed, 19 insertions(+)

diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h
index ea3fa5e..b139903 100644
--- a/include/osmo-bts/gsm_data.h
+++ b/include/osmo-bts/gsm_data.h
@@ -48,9 +48,19 @@ struct gsm_bts_role_bts {
 	} load;
 	uint8_t ny1;
 	uint8_t max_ta;
+
+	/* AGCH queuing */
 	struct llist_head agch_queue;
 	int agch_queue_length;
 	int agch_max_queue_length;
+
+	/* TODO: Use a rate counter group instead */
+	uint64_t agch_queue_dropped_msgs;
+	uint64_t agch_queue_merged_msgs;
+	uint64_t agch_queue_rejected_msgs;
+	uint64_t agch_queue_agch_msgs;
+	uint64_t agch_queue_pch_msgs;
+
 	struct paging_state *paging_state;
 	char *bsc_oml_host;
 	unsigned int rtp_jitter_buf_ms;
diff --git a/src/common/bts.c b/src/common/bts.c
index c834786..508d562 100644
--- a/src/common/bts.c
+++ b/src/common/bts.c
@@ -347,6 +347,7 @@ int bts_ccch_copy_msg(struct gsm_bts *bts, uint8_t *out_buf, struct gsm_time *gt
 	     ((struct gsm48_imm_ass *)msgb_l3(msg))->msg_type,
 	     is_ag_res ? "AGCH" : "PCH");
 	msgb_free(msg);
+	btsb->agch_queue_agch_msgs++;
 
 	return rc;
 }
diff --git a/src/common/vty.c b/src/common/vty.c
index d818f3f..d2aeed0 100644
--- a/src/common/vty.c
+++ b/src/common/vty.c
@@ -359,6 +359,14 @@ static void bts_dump_vty(struct vty *vty, struct gsm_bts *bts)
 	vty_out(vty, "  Paging: Queue size %u, occupied %u, lifetime %us%s",
 		paging_get_queue_max(btsb->paging_state), paging_queue_length(btsb->paging_state),
 		paging_get_lifetime(btsb->paging_state), VTY_NEWLINE);
+	vty_out(vty, "  AGCH: Queue limit %u, occupied %d, "
+		"dropped %llu, merged %llu, rejected %llu, "
+		"ag-res %llu, non-res %llu%s",
+		btsb->agch_max_queue_length, btsb->agch_queue_length,
+		btsb->agch_queue_dropped_msgs, btsb->agch_queue_merged_msgs,
+		btsb->agch_queue_rejected_msgs, btsb->agch_queue_agch_msgs,
+		btsb->agch_queue_pch_msgs,
+		VTY_NEWLINE);
 #if 0
 	vty_out(vty, "  Paging: %u pending requests, %u free slots%s",
 		paging_pending_requests_nr(bts),
-- 
1.7.9.5





More information about the OpenBSC mailing list