diff options
author | Andreas Eversberg <jolly@eversberg.eu> | 2013-01-08 09:12:15 +0100 |
---|---|---|
committer | Andreas Eversberg <jolly@eversberg.eu> | 2013-01-08 09:12:15 +0100 |
commit | 43b368b66da0f47343b10375eb1fe1fc89888a0e (patch) | |
tree | 4851182c6abc04382afdc7085cfced36e7ece99b /src/host/layer23 | |
parent | f6b52d74ddeed108c1f24e906c54fd3db03aae5d (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.
Diffstat (limited to 'src/host/layer23')
-rw-r--r-- | src/host/layer23/src/common/l1ctl.c | 7 |
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) |