Change in osmo-bsc[master]: Count intra-cell and intra-bsc handover separately

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/.

laforge gerrit-no-reply at lists.osmocom.org
Mon Aug 24 07:41:45 UTC 2020


laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/19734 )

Change subject: Count intra-cell and intra-bsc handover separately
......................................................................

Count intra-cell and intra-bsc handover separately

Currently the counters don't distinguish between intra-cell and
intra-bsc handover.

Add _CTR_INTRA_CELL_HO_ and _CTR_INTRA_BSC_HO_ counters to track
intra-cell/bsc handover separately.

Change-Id: I3a1195640b99813036c9f1426ee5f07548e26547
Related: SYS#4877
---
M include/osmocom/bsc/bts.h
M include/osmocom/bsc/gsm_data.h
M src/osmo-bsc/bts.c
M src/osmo-bsc/handover_fsm.c
4 files changed, 135 insertions(+), 70 deletions(-)

Approvals:
  laforge: Looks good to me, approved
  pespin: Looks good to me, but someone else must approve
  Jenkins Builder: Verified



diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h
index 46a173d..dc51d17 100644
--- a/include/osmocom/bsc/bts.h
+++ b/include/osmocom/bsc/bts.h
@@ -75,6 +75,20 @@
 	BTS_CTR_HANDOVER_TIMEOUT,
 	BTS_CTR_HANDOVER_FAILED,
 	BTS_CTR_HANDOVER_ERROR,
+	BTS_CTR_INTRA_CELL_HO_ATTEMPTED,
+	BTS_CTR_INTRA_CELL_HO_COMPLETED,
+	BTS_CTR_INTRA_CELL_HO_STOPPED,
+	BTS_CTR_INTRA_CELL_HO_NO_CHANNEL,
+	BTS_CTR_INTRA_CELL_HO_TIMEOUT,
+	BTS_CTR_INTRA_CELL_HO_FAILED,
+	BTS_CTR_INTRA_CELL_HO_ERROR,
+	BTS_CTR_INTRA_BSC_HO_ATTEMPTED,
+	BTS_CTR_INTRA_BSC_HO_COMPLETED,
+	BTS_CTR_INTRA_BSC_HO_STOPPED,
+	BTS_CTR_INTRA_BSC_HO_NO_CHANNEL,
+	BTS_CTR_INTRA_BSC_HO_TIMEOUT,
+	BTS_CTR_INTRA_BSC_HO_FAILED,
+	BTS_CTR_INTRA_BSC_HO_ERROR,
 	BTS_CTR_INTER_BSC_HO_OUT_ATTEMPTED,
 	BTS_CTR_INTER_BSC_HO_OUT_COMPLETED,
 	BTS_CTR_INTER_BSC_HO_OUT_STOPPED,
@@ -154,6 +168,22 @@
 	[BTS_CTR_HANDOVER_FAILED] = 		{"handover:failed", "Received Handover Fail messages"},
 	[BTS_CTR_HANDOVER_ERROR] = 		{"handover:error", "Re-assignment failed for other reason"},
 
+	[BTS_CTR_INTRA_CELL_HO_ATTEMPTED] = 	{"intra_cell_ho:attempted", "Intra-Cell handover attempts"},
+	[BTS_CTR_INTRA_CELL_HO_COMPLETED] = 	{"intra_cell_ho:completed", "Intra-Cell handover completed"},
+	[BTS_CTR_INTRA_CELL_HO_STOPPED] = 	{"intra_cell_ho:stopped", "Connection ended during HO"},
+	[BTS_CTR_INTRA_CELL_HO_NO_CHANNEL] = 	{"intra_cell_ho:no_channel", "Failure to allocate lchan for HO"},
+	[BTS_CTR_INTRA_CELL_HO_TIMEOUT] = 	{"intra_cell_ho:timeout", "Handover timed out"},
+	[BTS_CTR_INTRA_CELL_HO_FAILED] = 	{"intra_cell_ho:failed", "Received Handover Fail messages"},
+	[BTS_CTR_INTRA_CELL_HO_ERROR] = 	{"intra_cell_ho:error", "Re-assignment failed for other reason"},
+
+	[BTS_CTR_INTRA_BSC_HO_ATTEMPTED] = 	{"intra_bsc_ho:attempted", "Intra-BSC handover attempts"},
+	[BTS_CTR_INTRA_BSC_HO_COMPLETED] = 	{"intra_bsc_ho:completed", "Intra-BSC handover completed"},
+	[BTS_CTR_INTRA_BSC_HO_STOPPED] = 	{"intra_bsc_ho:stopped", "Connection ended during HO"},
+	[BTS_CTR_INTRA_BSC_HO_NO_CHANNEL] = 	{"intra_bsc_ho:no_channel", "Failure to allocate lchan for HO"},
+	[BTS_CTR_INTRA_BSC_HO_TIMEOUT] = 	{"intra_bsc_ho:timeout", "Handover timed out"},
+	[BTS_CTR_INTRA_BSC_HO_FAILED] = 	{"intra_bsc_ho:failed", "Received Handover Fail messages"},
+	[BTS_CTR_INTRA_BSC_HO_ERROR] = 		{"intra_bsc_ho:error", "Re-assignment failed for other reason"},
+
 	[BTS_CTR_INTER_BSC_HO_OUT_ATTEMPTED] =	{"interbsc_ho_out:attempted",
 						 "Attempts to handover to remote BSS"},
 	[BTS_CTR_INTER_BSC_HO_OUT_COMPLETED] =	{"interbsc_ho_out:completed",
@@ -211,6 +241,62 @@
 	BTS_STAT_TS_BORKEN,
 };
 
+static const struct osmo_stat_item_desc bts_stat_desc[] = {
+	[BTS_STAT_CHAN_LOAD_AVERAGE] =			{ "chanloadavg", "Channel load average", "%", 16, 0 },
+	[BTS_STAT_CHAN_CCCH_SDCCH4_USED] =		{ "chan_ccch_sdcch4:used",
+							  "Number of CCCH+SDCCH4 channels used", "", 16, 0 },
+	[BTS_STAT_CHAN_CCCH_SDCCH4_TOTAL] =		{ "chan_ccch_sdcch4:total",
+							  "Number of CCCH+SDCCH4 channels total", "", 16, 0 },
+	[BTS_STAT_CHAN_TCH_F_USED] =			{ "chan_tch_f:used",
+							  "Number of TCH/F channels used", "", 16, 0 },
+	[BTS_STAT_CHAN_TCH_F_TOTAL] =			{ "chan_tch_f:total",
+							  "Number of TCH/F channels total", "", 16, 0 },
+	[BTS_STAT_CHAN_TCH_H_USED] =			{ "chan_tch_h:used",
+							  "Number of TCH/H channels used", "", 16, 0 },
+	[BTS_STAT_CHAN_TCH_H_TOTAL] =			{ "chan_tch_h:total",
+							  "Number of TCH/H channels total", "", 16, 0 },
+	[BTS_STAT_CHAN_SDCCH8_USED] =			{ "chan_sdcch8:used",
+							  "Number of SDCCH8 channels used", "", 16, 0 },
+	[BTS_STAT_CHAN_SDCCH8_TOTAL] =			{ "chan_sdcch8:total",
+							  "Number of SDCCH8 channels total", "", 16, 0 },
+	[BTS_STAT_CHAN_TCH_F_PDCH_USED] =		{ "chan_tch_f_pdch:used",
+							  "Number of TCH/F_PDCH channels used", "", 16, 0 },
+	[BTS_STAT_CHAN_TCH_F_PDCH_TOTAL] =		{ "chan_tch_f_pdch:total",
+							  "Number of TCH/F_PDCH channels total", "", 16, 0 },
+	[BTS_STAT_CHAN_CCCH_SDCCH4_CBCH_USED] =		{ "chan_ccch_sdcch4_cbch:used",
+							  "Number of CCCH+SDCCH4+CBCH channels used", "", 16, 0 },
+	[BTS_STAT_CHAN_CCCH_SDCCH4_CBCH_TOTAL] =	{ "chan_ccch_sdcch4_cbch:total",
+							  "Number of CCCH+SDCCH4+CBCH channels total", "", 16, 0 },
+	[BTS_STAT_CHAN_SDCCH8_CBCH_USED] =		{ "chan_sdcch8_cbch:used",
+							  "Number of SDCCH8+CBCH channels used", "", 16, 0 },
+	[BTS_STAT_CHAN_SDCCH8_CBCH_TOTAL] =		{ "chan_sdcch8_cbch:total",
+							  "Number of SDCCH8+CBCH channels total", "", 16, 0 },
+	[BTS_STAT_CHAN_TCH_F_TCH_H_PDCH_USED] =		{ "chan_tch_f_tch_h_pdch:used",
+							  "Number of TCH/F_TCH/H_PDCH channels used", "", 16, 0 },
+	[BTS_STAT_CHAN_TCH_F_TCH_H_PDCH_TOTAL] =	{ "chan_tch_f_tch_h_pdch:total",
+							  "Number of TCH/F_TCH/H_PDCH channels total", "", 16, 0 },
+	[BTS_STAT_T3122] =				{ "T3122", "T3122 IMMEDIATE ASSIGNMENT REJECT wait indicator",
+							  "s", 16, GSM_T3122_DEFAULT },
+	[BTS_STAT_RACH_BUSY] =				{ "rach_busy",
+							  "RACH slots with signal above threshold", "%", 16, 0 },
+	[BTS_STAT_RACH_ACCESS] =			{ "rach_access",
+							  "RACH slots with access bursts in them", "%", 16, 0 },
+	[BTS_STAT_OML_CONNECTED] =			{ "oml_connected", "Number of OML links connected", "", 16, 0 },
+	[BTS_STAT_RSL_CONNECTED] =			{ "rsl_connected", "Number of RSL links connected", "", 16, 0 },
+	[BTS_STAT_LCHAN_BORKEN] =			{ "lchan_borken",
+							  "Number of lchans in the BORKEN state", "", 16, 0 },
+	[BTS_STAT_TS_BORKEN] =				{ "ts_borken",
+							  "Number of timeslots in the BORKEN state", "", 16, 0 },
+};
+
+static const struct osmo_stat_item_group_desc bts_statg_desc = {
+	.group_name_prefix = "bts",
+	.group_description = "base transceiver station",
+	.class_id = OSMO_STATS_CLASS_GLOBAL,
+	.num_items = ARRAY_SIZE(bts_stat_desc),
+	.item_desc = bts_stat_desc,
+};
+
 enum gsm_bts_type {
 	GSM_BTS_TYPE_UNKNOWN,
 	GSM_BTS_TYPE_BS11,
diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h
index 9fdefc4..1dac670 100644
--- a/include/osmocom/bsc/gsm_data.h
+++ b/include/osmocom/bsc/gsm_data.h
@@ -969,6 +969,20 @@
 	BSC_CTR_HANDOVER_TIMEOUT,
 	BSC_CTR_HANDOVER_FAILED,
 	BSC_CTR_HANDOVER_ERROR,
+	BSC_CTR_INTRA_CELL_HO_ATTEMPTED,
+	BSC_CTR_INTRA_CELL_HO_COMPLETED,
+	BSC_CTR_INTRA_CELL_HO_STOPPED,
+	BSC_CTR_INTRA_CELL_HO_NO_CHANNEL,
+	BSC_CTR_INTRA_CELL_HO_TIMEOUT,
+	BSC_CTR_INTRA_CELL_HO_FAILED,
+	BSC_CTR_INTRA_CELL_HO_ERROR,
+	BSC_CTR_INTRA_BSC_HO_ATTEMPTED,
+	BSC_CTR_INTRA_BSC_HO_COMPLETED,
+	BSC_CTR_INTRA_BSC_HO_STOPPED,
+	BSC_CTR_INTRA_BSC_HO_NO_CHANNEL,
+	BSC_CTR_INTRA_BSC_HO_TIMEOUT,
+	BSC_CTR_INTRA_BSC_HO_FAILED,
+	BSC_CTR_INTRA_BSC_HO_ERROR,
 	BSC_CTR_INTER_BSC_HO_OUT_ATTEMPTED,
 	BSC_CTR_INTER_BSC_HO_OUT_COMPLETED,
 	BSC_CTR_INTER_BSC_HO_OUT_STOPPED,
@@ -1008,6 +1022,22 @@
 	[BSC_CTR_HANDOVER_FAILED] = 		{"handover:failed", "Received Handover Fail messages"},
 	[BSC_CTR_HANDOVER_ERROR] = 		{"handover:error", "Re-assignment failed for other reason"},
 
+	[BSC_CTR_INTRA_CELL_HO_ATTEMPTED] = 	{"intra_cell_ho:attempted", "Intra-Cell handover attempts"},
+	[BSC_CTR_INTRA_CELL_HO_COMPLETED] = 	{"intra_cell_ho:completed", "Intra-Cell handover completed"},
+	[BSC_CTR_INTRA_CELL_HO_STOPPED] = 	{"intra_cell_ho:stopped", "Connection ended during HO"},
+	[BSC_CTR_INTRA_CELL_HO_NO_CHANNEL] = 	{"intra_cell_ho:no_channel", "Failure to allocate lchan for HO"},
+	[BSC_CTR_INTRA_CELL_HO_TIMEOUT] = 	{"intra_cell_ho:timeout", "Handover timed out"},
+	[BSC_CTR_INTRA_CELL_HO_FAILED] = 	{"intra_cell_ho:failed", "Received Handover Fail messages"},
+	[BSC_CTR_INTRA_CELL_HO_ERROR] = 	{"intra_cell_ho:error", "Re-assignment failed for other reason"},
+
+	[BSC_CTR_INTRA_BSC_HO_ATTEMPTED] = 	{"intra_bsc_ho:attempted", "Intra-BSC handover attempts"},
+	[BSC_CTR_INTRA_BSC_HO_COMPLETED] = 	{"intra_bsc_ho:completed", "Intra-BSC handover completed"},
+	[BSC_CTR_INTRA_BSC_HO_STOPPED] = 	{"intra_bsc_ho:stopped", "Connection ended during HO"},
+	[BSC_CTR_INTRA_BSC_HO_NO_CHANNEL] = 	{"intra_bsc_ho:no_channel", "Failure to allocate lchan for HO"},
+	[BSC_CTR_INTRA_BSC_HO_TIMEOUT] = 	{"intra_bsc_ho:timeout", "Handover timed out"},
+	[BSC_CTR_INTRA_BSC_HO_FAILED] = 	{"intra_bsc_ho:failed", "Received Handover Fail messages"},
+	[BSC_CTR_INTRA_BSC_HO_ERROR] = 		{"intra_bsc_ho:error", "Re-assignment failed for other reason"},
+
 	[BSC_CTR_INTER_BSC_HO_OUT_ATTEMPTED] =	{"interbsc_ho_out:attempted",
 						 "Attempts to handover to remote BSS"},
 	[BSC_CTR_INTER_BSC_HO_OUT_COMPLETED] =	{"interbsc_ho_out:completed",
diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c
index 4318b7e..a17143d 100644
--- a/src/osmo-bsc/bts.c
+++ b/src/osmo-bsc/bts.c
@@ -120,62 +120,6 @@
 	return 0;
 }
 
-static const struct osmo_stat_item_desc bts_stat_desc[] = {
-	[BTS_STAT_CHAN_LOAD_AVERAGE] =			{ "chanloadavg", "Channel load average", "%", 16, 0 },
-	[BTS_STAT_CHAN_CCCH_SDCCH4_USED] =		{ "chan_ccch_sdcch4:used",
-							  "Number of CCCH+SDCCH4 channels used", "", 16, 0 },
-	[BTS_STAT_CHAN_CCCH_SDCCH4_TOTAL] =		{ "chan_ccch_sdcch4:total",
-							  "Number of CCCH+SDCCH4 channels total", "", 16, 0 },
-	[BTS_STAT_CHAN_TCH_F_USED] =			{ "chan_tch_f:used",
-							  "Number of TCH/F channels used", "", 16, 0 },
-	[BTS_STAT_CHAN_TCH_F_TOTAL] =			{ "chan_tch_f:total",
-							  "Number of TCH/F channels total", "", 16, 0 },
-	[BTS_STAT_CHAN_TCH_H_USED] =			{ "chan_tch_h:used",
-							  "Number of TCH/H channels used", "", 16, 0 },
-	[BTS_STAT_CHAN_TCH_H_TOTAL] =			{ "chan_tch_h:total",
-							  "Number of TCH/H channels total", "", 16, 0 },
-	[BTS_STAT_CHAN_SDCCH8_USED] =			{ "chan_sdcch8:used",
-							  "Number of SDCCH8 channels used", "", 16, 0 },
-	[BTS_STAT_CHAN_SDCCH8_TOTAL] =			{ "chan_sdcch8:total",
-							  "Number of SDCCH8 channels total", "", 16, 0 },
-	[BTS_STAT_CHAN_TCH_F_PDCH_USED] =		{ "chan_tch_f_pdch:used",
-							  "Number of TCH/F_PDCH channels used", "", 16, 0 },
-	[BTS_STAT_CHAN_TCH_F_PDCH_TOTAL] =		{ "chan_tch_f_pdch:total",
-							  "Number of TCH/F_PDCH channels total", "", 16, 0 },
-	[BTS_STAT_CHAN_CCCH_SDCCH4_CBCH_USED] =		{ "chan_ccch_sdcch4_cbch:used",
-							  "Number of CCCH+SDCCH4+CBCH channels used", "", 16, 0 },
-	[BTS_STAT_CHAN_CCCH_SDCCH4_CBCH_TOTAL] =	{ "chan_ccch_sdcch4_cbch:total",
-							  "Number of CCCH+SDCCH4+CBCH channels total", "", 16, 0 },
-	[BTS_STAT_CHAN_SDCCH8_CBCH_USED] =		{ "chan_sdcch8_cbch:used",
-							  "Number of SDCCH8+CBCH channels used", "", 16, 0 },
-	[BTS_STAT_CHAN_SDCCH8_CBCH_TOTAL] =		{ "chan_sdcch8_cbch:total",
-							  "Number of SDCCH8+CBCH channels total", "", 16, 0 },
-	[BTS_STAT_CHAN_TCH_F_TCH_H_PDCH_USED] =		{ "chan_tch_f_tch_h_pdch:used",
-							  "Number of TCH/F_TCH/H_PDCH channels used", "", 16, 0 },
-	[BTS_STAT_CHAN_TCH_F_TCH_H_PDCH_TOTAL] =	{ "chan_tch_f_tch_h_pdch:total",
-							  "Number of TCH/F_TCH/H_PDCH channels total", "", 16, 0 },
-	[BTS_STAT_T3122] =				{ "T3122", "T3122 IMMEDIATE ASSIGNMENT REJECT wait indicator",
-							  "s", 16, GSM_T3122_DEFAULT },
-	[BTS_STAT_RACH_BUSY] =				{ "rach_busy",
-							  "RACH slots with signal above threshold", "%", 16, 0 },
-	[BTS_STAT_RACH_ACCESS] =			{ "rach_access",
-							  "RACH slots with access bursts in them", "%", 16, 0 },
-	[BTS_STAT_OML_CONNECTED] =			{ "oml_connected", "Number of OML links connected", "", 16, 0 },
-	[BTS_STAT_RSL_CONNECTED] =			{ "rsl_connected", "Number of RSL links connected", "", 16, 0 },
-	[BTS_STAT_LCHAN_BORKEN] =			{ "lchan_borken",
-							  "Number of lchans in the BORKEN state", "", 16, 0 },
-	[BTS_STAT_TS_BORKEN] =				{ "ts_borken",
-							  "Number of timeslots in the BORKEN state", "", 16, 0 },
-};
-
-static const struct osmo_stat_item_group_desc bts_statg_desc = {
-	.group_name_prefix = "bts",
-	.group_description = "base transceiver station",
-	.class_id = OSMO_STATS_CLASS_GLOBAL,
-	.num_items = ARRAY_SIZE(bts_stat_desc),
-	.item_desc = bts_stat_desc,
-};
-
 static const uint8_t bts_nse_timer_default[] = { 3, 3, 3, 3, 30, 3, 10 };
 static const uint8_t bts_cell_timer_default[] =
 				{ 3, 3, 3, 3, 3, 10, 3, 10, 3, 10, 3 };
diff --git a/src/osmo-bsc/handover_fsm.c b/src/osmo-bsc/handover_fsm.c
index c3cbd61..e238d83 100644
--- a/src/osmo-bsc/handover_fsm.c
+++ b/src/osmo-bsc/handover_fsm.c
@@ -369,12 +369,13 @@
 
 	ho->new_lchan = lchan_select_by_type(ho->new_bts, ho->new_lchan_type);
 
-	if (ho->scope & HO_INTRA_CELL)
+	if (ho->scope & HO_INTRA_CELL) {
+		ho_count(bts, CTR_INTRA_CELL_HO_ATTEMPTED);
 		ho_fsm_update_id(fi, "intraCell");
-	else
+	} else {
+		ho_count(bts, CTR_INTRA_BSC_HO_ATTEMPTED);
 		ho_fsm_update_id(fi, "intraBSC");
-
-	ho_count(bts, CTR_HANDOVER_ATTEMPTED);
+	}
 
 	if (!ho->new_lchan) {
 		ho_fail(HO_RESULT_FAIL_NO_CHANNEL,
@@ -697,8 +698,9 @@
 	} \
 }
 
-FUNC_RESULT_COUNTER(BSC, ASSIGNMENT)
 FUNC_RESULT_COUNTER(BSC, HANDOVER)
+FUNC_RESULT_COUNTER(BSC, INTRA_CELL_HO)
+FUNC_RESULT_COUNTER(BSC, INTRA_BSC_HO)
 FUNC_RESULT_COUNTER(BSC, INTER_BSC_HO_IN)
 
 static int result_counter_BSC_INTER_BSC_HO_OUT(enum handover_result result) {
@@ -718,15 +720,16 @@
 static int result_counter_bsc(enum handover_scope scope, enum handover_result result)
 {
 	switch (scope) {
-	case HO_INTRA_CELL:
-		return result_counter_BSC_ASSIGNMENT(result);
 	default:
 		LOGP(DHO, LOGL_ERROR, "invalid enum handover_scope value: %s\n",
 		     handover_scope_name(scope));
-		/* use "normal" HO_INTRA_BSC counter... */
+		/* use "normal" HO counter... */
 	case HO_NO_HANDOVER:
-	case HO_INTRA_BSC:
 		return result_counter_BSC_HANDOVER(result);
+	case HO_INTRA_CELL:
+		return result_counter_BSC_INTRA_CELL_HO(result);
+	case HO_INTRA_BSC:
+		return result_counter_BSC_INTRA_BSC_HO(result);
 	case HO_INTER_BSC_OUT:
 		return result_counter_BSC_INTER_BSC_HO_OUT(result);
 	case HO_INTER_BSC_IN:
@@ -734,8 +737,9 @@
 	}
 }
 
-FUNC_RESULT_COUNTER(BTS, ASSIGNMENT)
 FUNC_RESULT_COUNTER(BTS, HANDOVER)
+FUNC_RESULT_COUNTER(BTS, INTRA_CELL_HO)
+FUNC_RESULT_COUNTER(BTS, INTRA_BSC_HO)
 FUNC_RESULT_COUNTER(BTS, INTER_BSC_HO_IN)
 
 static int result_counter_BTS_INTER_BSC_HO_OUT(enum handover_result result) {
@@ -755,15 +759,16 @@
 static int result_counter_bts(enum handover_scope scope, enum handover_result result)
 {
 	switch (scope) {
-	case HO_INTRA_CELL:
-		return result_counter_BTS_ASSIGNMENT(result);
 	default:
 		LOGP(DHO, LOGL_ERROR, "invalid enum handover_scope value: %s\n",
 		     handover_scope_name(scope));
-		/* use "normal" HO_INTRA_BSC counter... */
+		/* use "normal" HO counter... */
 	case HO_NO_HANDOVER:
-	case HO_INTRA_BSC:
 		return result_counter_BTS_HANDOVER(result);
+	case HO_INTRA_CELL:
+		return result_counter_BTS_INTRA_CELL_HO(result);
+	case HO_INTRA_BSC:
+		return result_counter_BTS_INTRA_BSC_HO(result);
 	case HO_INTER_BSC_OUT:
 		return result_counter_BTS_INTER_BSC_HO_OUT(result);
 	case HO_INTER_BSC_IN:

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/19734
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I3a1195640b99813036c9f1426ee5f07548e26547
Gerrit-Change-Number: 19734
Gerrit-PatchSet: 4
Gerrit-Owner: daniel <dwillmann at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: daniel <dwillmann at sysmocom.de>
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-Reviewer: pespin <pespin at sysmocom.de>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200824/e1a6e9e7/attachment.htm>


More information about the gerrit-log mailing list