diff options
author | Harald Welte <laforge@gnumonks.org> | 2010-06-14 22:26:10 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2010-06-20 10:44:53 +0200 |
commit | a39b0f2bb7a7c8b97dc654a1ecdf3f58072a7fbb (patch) | |
tree | 401c3a3eb9b0470d80f2b9df28f85226d215ea5d /openbsc/src/abis_rsl.c | |
parent | 6e0cd04725db4a3c467ca689233b904d4e9800cc (diff) |
[BSC] Implement per-timeslot ARFCN lists for frequency hopping
We now compute the Cell Channel Description for SI 1 by bit-wise
OR of the ARFCN bitmask of each timeslot on all the TRX of the BTS.
Also, support generating a GSM 04.08 Channel Description IE for
the hopping case (with HSN/MAIO instead of ARFCN).
What's still missing now: Sending the 04.08 Mobile Allocation IE
Diffstat (limited to 'openbsc/src/abis_rsl.c')
-rw-r--r-- | openbsc/src/abis_rsl.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/openbsc/src/abis_rsl.c b/openbsc/src/abis_rsl.c index 451c80db2..f38735480 100644 --- a/openbsc/src/abis_rsl.c +++ b/openbsc/src/abis_rsl.c @@ -1195,15 +1195,16 @@ static int rsl_rx_chan_rqd(struct msgb *msg) ia.proto_discr = GSM48_PDISC_RR; ia.msg_type = GSM48_MT_RR_IMM_ASS; ia.page_mode = GSM48_PM_SAME; - ia.chan_desc.chan_nr = lchan2chan_nr(lchan); - ia.chan_desc.h0.h = 0; - ia.chan_desc.h0.arfcn_high = arfcn >> 8; - ia.chan_desc.h0.arfcn_low = arfcn & 0xff; - ia.chan_desc.h0.tsc = bts->tsc; + gsm48_lchan2chan_desc(&ia.chan_desc, lchan); + /* use request reference extracted from CHAN_RQD */ memcpy(&ia.req_ref, rqd_ref, sizeof(ia.req_ref)); ia.timing_advance = rqd_ta; - ia.mob_alloc_len = 0; + if (!lchan->ts->hopping.enabled) { + ia.mob_alloc_len = 0; + } else { + /* FIXME: Mobile Allocation in case of hopping */ + } DEBUGP(DRSL, "%s Activating ARFCN(%u) SS(%u) lctype %s " "r=%s ra=0x%02x\n", gsm_lchan_name(lchan), arfcn, subch, |