aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/abis_rsl.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2010-06-14 22:26:10 +0200
committerHarald Welte <laforge@gnumonks.org>2010-06-20 10:44:53 +0200
commita39b0f2bb7a7c8b97dc654a1ecdf3f58072a7fbb (patch)
tree401c3a3eb9b0470d80f2b9df28f85226d215ea5d /openbsc/src/abis_rsl.c
parent6e0cd04725db4a3c467ca689233b904d4e9800cc (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.c13
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,