[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
diff --git a/openbsc/src/abis_rsl.c b/openbsc/src/abis_rsl.c
index 451c80d..f387354 100644
--- a/openbsc/src/abis_rsl.c
+++ b/openbsc/src/abis_rsl.c
@@ -1195,15 +1195,16 @@
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,