Change in ...osmo-bts[master]: osmo-bts/scheduler: provide actual C/I values to OsmoPCU

laforge gerrit-no-reply at lists.osmocom.org
Tue Jul 16 04:16:15 UTC 2019


laforge has submitted this change and it was merged. ( https://gerrit.osmocom.org/c/osmo-bts/+/14613 )

Change subject: osmo-bts/scheduler: provide actual C/I values to OsmoPCU
......................................................................

osmo-bts/scheduler: provide actual C/I values to OsmoPCU

C/I (Carrier-to-Interference ratio) is a value in cB (centiBels),
computed from the training sequence of each received burst,
by comparing the "ideal" training sequence with the actual one.

So far, there was no way to expose more measurements from OsmoTRX,
excluding both RSSI and ToA. Since the new version of TRXD header,
we can receive C/I indications and send the averaged (per 4 bursts)
values to OsmoPCU (as a part of PCUIF_DATA.ind).

Please note that we also need to attach C/I measurements
to the following L1SAP primitives:

  - PRIM_PH_RACH.ind,
  - PRIM_PH_DATA.ind,
  - PRIM_TCH.ind,

but this will be done in the follow up changes.

Change-Id: Ia58043bd2381a4d34d604522e02899ae64ee0d26
Fixes: OS#1855
---
M include/osmo-bts/scheduler.h
M src/osmo-bts-trx/scheduler_trx.c
2 files changed, 18 insertions(+), 3 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/osmo-bts/scheduler.h b/include/osmo-bts/scheduler.h
index 4f40636..e693e3e 100644
--- a/include/osmo-bts/scheduler.h
+++ b/include/osmo-bts/scheduler.h
@@ -79,11 +79,13 @@
 	uint32_t		ul_first_fn;	/* fn of first burst */
 	uint8_t			ul_mask;	/* mask of received bursts */
 
-	/* RSSI / TOA */
+	/* measurements */
 	uint8_t			rssi_num;	/* number of RSSI values */
 	float			rssi_sum;	/* sum of RSSI values */
 	uint8_t			toa_num;	/* number of TOA values */
 	int32_t			toa256_sum;	/* sum of TOA values (1/256 symbol) */
+	uint8_t			ci_cb_num;	/* number of C/I values */
+	int32_t			ci_cb_sum;	/* sum of C/I values (in centiBels) */
 
 	/* loss detection */
 	uint8_t			lost_frames;	/* how many L2 frames were lost */
diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c
index 294e73c..7bdbc4f 100644
--- a/src/osmo-bts-trx/scheduler_trx.c
+++ b/src/osmo-bts-trx/scheduler_trx.c
@@ -982,8 +982,11 @@
 	uint8_t *rssi_num = &chan_state->rssi_num;
 	int32_t *toa256_sum = &chan_state->toa256_sum;
 	uint8_t *toa_num = &chan_state->toa_num;
+	int32_t *ci_cb_sum = &chan_state->ci_cb_sum;
+	uint8_t *ci_cb_num = &chan_state->ci_cb_num;
 	uint8_t l2[EGPRS_0503_MAX_BYTES];
 	int n_errors, n_bursts_bits, n_bits_total;
+	int16_t lqual_cb;
 	uint16_t ber10k;
 	int rc;
 
@@ -1007,6 +1010,8 @@
 		*rssi_num = 0;
 		*toa256_sum = 0;
 		*toa_num = 0;
+		*ci_cb_sum = 0;
+		*ci_cb_num = 0;
 	}
 
 	/* update mask + rssi */
@@ -1016,6 +1021,12 @@
 	*toa256_sum += bi->toa256;
 	(*toa_num)++;
 
+	/* C/I: Carrier-to-Interference ratio (in centiBels) */
+	if (bi->flags & TRX_BI_F_CI_CB) {
+		*ci_cb_sum += bi->ci_cb;
+		(*ci_cb_num)++;
+	}
+
 	/* copy burst to buffer of 4 bursts */
 	if (bi->burst_len == EGPRS_BURST_LEN) {
 		burst = *bursts_p + bid * 348;
@@ -1069,13 +1080,15 @@
 			bi->fn % l1ts->mf_period, l1ts->mf_period);
 		return 0;
 	}
+
+	lqual_cb = *ci_cb_num ? (*ci_cb_sum / *ci_cb_num) : 0;
 	ber10k = compute_ber10k(n_bits_total, n_errors);
 	return _sched_compose_ph_data_ind(l1t, bi->tn,
 					  *first_fn, chan, l2, rc,
 					  *rssi_sum / *rssi_num,
 					  *toa256_sum / *toa_num,
-					  0 /* FIXME: AVG C/I */,
-					  ber10k, PRES_INFO_BOTH);
+					  lqual_cb, ber10k,
+					  PRES_INFO_BOTH);
 }
 
 /*! \brief a single TCH/F burst was received by the PHY, process it */

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

Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: Ia58043bd2381a4d34d604522e02899ae64ee0d26
Gerrit-Change-Number: 14613
Gerrit-PatchSet: 8
Gerrit-Owner: fixeria <axilirator at gmail.com>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: ipse <Alexander.Chemeris at gmail.com>
Gerrit-Reviewer: laforge <laforge at gnumonks.org>
Gerrit-Reviewer: pespin <pespin at sysmocom.de>
Gerrit-Reviewer: tnt <tnt at 246tNt.com>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190716/53b7b2e1/attachment.html>


More information about the gerrit-log mailing list