Change in osmo-bsc[master]: power_control: constrain BS power reduction on BCCH carrier

fixeria gerrit-no-reply at lists.osmocom.org
Tue Jun 29 17:22:03 UTC 2021


fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/24804 )


Change subject: power_control: constrain BS power reduction on BCCH carrier
......................................................................

power_control: constrain BS power reduction on BCCH carrier

BS Power Control is not allowed on the BCCH/CCCH carrier, unless
the BTS is operating in the BCCH carrier power reduction mode.

Allow constrained BS power reduction (up to 6 dB) on active logical
channels iff BCCH carrier power reduction mode is enabled.

Take into account that the maximum power difference between a timeslot
used for BCCH/CCCH and the timeslot preceding it shall not exceed 3 dB.

Change-Id: I2cc6a86731984f586ef35b43a8d3de631f7d8a2f
Related: SYS#4919, SYS#4918
---
M doc/manuals/chapters/power_control.adoc
M include/osmocom/bsc/gsm_data.h
M src/osmo-bsc/bts.c
M src/osmo-bsc/lchan_fsm.c
4 files changed, 62 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/04/24804/1

diff --git a/doc/manuals/chapters/power_control.adoc b/doc/manuals/chapters/power_control.adoc
index fe2bf26..b146e2a 100644
--- a/doc/manuals/chapters/power_control.adoc
+++ b/doc/manuals/chapters/power_control.adoc
@@ -357,6 +357,30 @@
 power reduction mode" in the feature vector.  This can be checked by issuing
 `show bts` command in the VTY interface.
 
+==== Interworking with static and dynamic power control
+
+The key difference between BCCH carrier power reduction and the BS power control
+is that the former affects *inactive* timeslots (or sub-channels), so only dummy
+bursts are affected.  The later depends on the Downlink measurement reports sent
+by the MS, and thus applies to *active* channels only.  However, both features
+are interconnected: the maximum BCCH carrier power reduction value constrains
+the BS Power value that can be used for dynamic or static BS power control.
+
+BS power control on the BCCH carrier will not be enabled unless the BTS is in BCCH
+carrier power reduction mode of operation.  Once it is, the BS power reduction
+value in either of `dyn-bts` or `static` modes would be constrained by currently
+applied BCCH power reduction value, and thus would never exceed the maximum of 6 dB.
+
+For example, consider a BTS with BS power control configured to use _dynamic_ mode
+and the maximum power reduction of 16 dB.  Once this BTS is switched into the BCCH
+carrier power reduction mode with the maximum attenuation of 4 dB, the maximum
+power reduction value for the BS power loop on the C0 carrier would be 4 dB.
+
+Moreover, according to 3GPP TS 45.008, between a timeslot used for BCCH/CCCH and
+the timeslot preceding it, the difference in output power actually transmitted by
+the BTS shall not exceed 3 dB.  This means that on some timeslots the power
+reduction value can be constrained even further.
+
 ==== Managing BCCH carrier power reduction
 
 The BCCH carrier power reduction can be controlled via the CTRL and VTY interfaces.
diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h
index 569e288..19a168e 100644
--- a/include/osmocom/bsc/gsm_data.h
+++ b/include/osmocom/bsc/gsm_data.h
@@ -841,6 +841,9 @@
 		} rbs2000;
 	};
 
+	/* Maximum BCCH carrier power reduction */
+	uint8_t bcch_max_power_red_db;
+
 	/* Maximum number of lchans that could become usable, for example by switching a dynamic timeslot's type or by
 	 * enabling VAMOS secondary lchans. This does include the maximum count of possible VAMOS secondary lchans. */
 	uint8_t max_lchans_possible;
diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c
index e055981..05d52a7 100644
--- a/src/osmo-bsc/bts.c
+++ b/src/osmo-bsc/bts.c
@@ -749,6 +749,8 @@
 
 int gsm_bts_set_bcch_power_red(struct gsm_bts *bts, const uint8_t red)
 {
+	struct gsm_bts_trx *c0 = bts->c0;
+	unsigned int tn;
 	int rc;
 
 	if (!osmo_bts_has_feature(&bts->features, BTS_FEAT_BCCH_POWER_RED))
@@ -762,6 +764,32 @@
 
 	bts->bcch_max_power_red_db = red;
 
+	/* Timeslot 0 is always transmitting BCCH/CCCH */
+	c0->ts[0].bcch_max_power_red_db = 0;
+
+	for (tn = 1; tn < ARRAY_SIZE(c0->ts); tn++) {
+		struct gsm_bts_trx_ts *ts = &c0->ts[tn];
+		const struct gsm_bts_trx_ts *next;
+
+		if (ts->pchan_is == GSM_PCHAN_CCCH)
+			ts->bcch_max_power_red_db = 0;
+		else
+			ts->bcch_max_power_red_db = red;
+
+		if (ts->bcch_max_power_red_db > 0) {
+			/* Next timeslot following this one */
+			next = &c0->ts[(tn + 1) % 8];
+
+			/* If BCCH/CCCH follows, limit to 2 dB */
+			if (next->pchan_is == GSM_PCHAN_CCCH)
+				ts->bcch_max_power_red_db = 2;
+		}
+	}
+
+	/* Timeslot 7 is always preceding BCCH/CCCH */
+	if (c0->ts[7].bcch_max_power_red_db > 0)
+		c0->ts[7].bcch_max_power_red_db = 2;
+
 	return 0;
 }
 
diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c
index 03ccec0..8ae83da 100644
--- a/src/osmo-bsc/lchan_fsm.c
+++ b/src/osmo-bsc/lchan_fsm.c
@@ -675,6 +675,13 @@
 			lchan->bs_power_db = bts->bs_power_ctrl.bs_power_val_db;
 	}
 
+	/* BS Power Control is generally not allowed on the BCCH/CCCH carrier.
+	 * However, we allow it in the BCCH carrier power reduction mode of operation. */
+	if (lchan->ts->trx == bts->c0) {
+		lchan->bs_power_db = OSMO_MIN(lchan->ts->bcch_max_power_red_db,
+					      lchan->bs_power_db);
+	}
+
 	if (lchan_activate_set_ch_mode_rate_and_mr_config(lchan))
 		return;
 

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

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I2cc6a86731984f586ef35b43a8d3de631f7d8a2f
Gerrit-Change-Number: 24804
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210629/96d8b1b8/attachment.htm>


More information about the gerrit-log mailing list