summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2013-01-08 09:12:15 +0100
committerAndreas Eversberg <jolly@eversberg.eu>2013-01-08 09:12:15 +0100
commit43b368b66da0f47343b10375eb1fe1fc89888a0e (patch)
tree4851182c6abc04382afdc7085cfced36e7ece99b
parentf6b52d74ddeed108c1f24e906c54fd3db03aae5d (diff)
fix: Use only single CCCH block to determine path loss
The downlink singalling failure counter DSC is decremented by 4 in case of unsuccessfull decoding of CCCH block and incremented by 1 in case of successfull decoding of CCCH block. The initial and maximum value of 90 requires to check the signal only once per 51 multiframe. If DRX would be supported, only a subset of 51 multiframes are received, so the initial / maximum value of 90 must be reduced accordingly.
-rw-r--r--src/host/layer23/src/common/l1ctl.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/host/layer23/src/common/l1ctl.c b/src/host/layer23/src/common/l1ctl.c
index 5898b227..fa6db7a1 100644
--- a/src/host/layer23/src/common/l1ctl.c
+++ b/src/host/layer23/src/common/l1ctl.c
@@ -192,6 +192,13 @@ static int rx_ph_data_ind(struct osmocom_ms *ms, struct msgb *msg)
if (!(dl->link_id & 0x40)) {
switch (chan_type) {
case RSL_CHAN_PCH_AGCH:
+ /* only look at one CCCH frame in each 51 multiframe.
+ * FIXME: implement DRX
+ * - select correct paging block that is for us.
+ * - initialize ds_fail according to BS_PA_MFRMS.
+ */
+ if ((dl->frame_nr % 51) != 6)
+ break;
if (!meas->ds_fail)
break;
if (dl->fire_crc >= 2)