From 43b368b66da0f47343b10375eb1fe1fc89888a0e Mon Sep 17 00:00:00 2001 From: Andreas Eversberg Date: Tue, 8 Jan 2013 09:12:15 +0100 Subject: 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. --- src/host/layer23/src/common/l1ctl.c | 7 +++++++ 1 file changed, 7 insertions(+) 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) -- cgit v1.2.3