osmo-bsc/doc/manuals/chapters
Vadim Yanitskiy ff9d3a64dc lchan_select: prepare a list of timeslots once, iterate over it
The lchan_avail_by_type() attempts to find an unused lchan for the
given GSM_LCHAN_* value: TCH/F, TCH/H, or SDCCH.  This is achieved
by looking up timeslots with compatible GSM_PCHAN_* values.

For instance, finding an unused SDCCH lchan may involve:

* attempt to find a timeslot with pchan=GSM_PCHAN_CCCH_SDCCH4,
* attempt to find a timeslot with pchan=GSM_PCHAN_CCCH_SDCCH4_CBCH,
* attempt to find a timeslot with pchan=GSM_PCHAN_SDCCH8_SACCH8C,
* attempt to find a timeslot with pchan=GSM_PCHAN_SDCCH8_SACCH8C_CBCH,
* attempt to find a timeslot with pchan=GSM_PCHAN_OSMO_DYN (switched),
* attempt to find a timeslot with pchan=GSM_PCHAN_OSMO_DYN (not switched).

Each attempt involves iterating over all timeslots of each TRX,
either in ascending or in descending order (see _lc_dyn_find_bts()
and _lc_find_trx()).

This patch simplifies the lookup logic by preparing a monolithic
array of timeslot pointers once, and then using that array for
each GSM_PCHAN_* lookup attempt.  This change is required for the
upcoming dynamic channel allocation mode, which is fa more complex
than the existing ascending/descending ones.

A side effect of this change is that the interference aware mode
of allocation is not limited by the scope of a single TRX anymore.
Interference levels are now compared within the scope of the whole
BTS, so that lchans on the other TRXes may be picked if they are
better according to the interference reports from the BTS.

Change-Id: I7ccc56856bfd40fd7c63b7437736de60c2b516ff
Related: SYS#5460
2022-06-30 16:36:41 +00:00
..
aoip-flows.adoc osmobsc-usermanual: Add Chapter with AoIP message flow examples 2020-12-21 16:50:18 +01:00
bsc.adoc doc: bsc.adoc: Update timer info from code (gsm_network_T_defs) 2022-03-02 17:34:43 +01:00
bts-examples.adoc bts-examples: add example for E1 connected BTS 2021-12-06 19:03:37 +01:00
bts.adoc doc: Improve ACC ramp documentation 2021-08-19 14:50:02 +00:00
chan_alloc.adoc lchan_select: prepare a list of timeslots once, iterate over it 2022-06-30 16:36:41 +00:00
control.adoc control.adoc: comment out fixme note 2021-11-03 17:25:28 +00:00
counters.adoc doc: Add generic counter chapter in manual 2019-04-17 16:01:11 +00:00
counters_generated.adoc Fix some typos 2019-11-13 22:10:41 +01:00
handover.adoc Support Neighbor Address Resolution over PCUIF IPA multiplex 2021-09-13 16:04:05 +02:00
handover_inter_bsc.dot doc/manuals: fix wrong CI in the inter-BSC handover diagram 2021-11-14 19:35:00 +03:00
handover_intra_bsc.dot doc/manuals: review and tweak handover docs 2019-06-18 23:39:14 +02:00
interf_meas.adoc doc/manuals: document channel allocation parameters 2022-06-23 05:48:04 +07:00
mgwpool.adoc doc/mgwpool: update documentation 2021-09-15 10:04:47 +00:00
mscpool.adoc mscpool: add user manual chapter 2020-06-17 00:14:01 +02:00
osmux_bsc.adoc Fix some typos 2019-11-13 22:10:41 +01:00
overview.adoc manual: Update statements regarding SCCPlite 2019-09-04 12:45:35 +02:00
power_control.adoc [overpower] By default, permit only for speech channels using AMR 2021-11-15 11:59:03 +00:00
qos-example.adoc manual: Include QoS chapter and add osmo-bsc specific example 2021-05-01 17:36:09 +00:00
running.adoc osmo_bsc_main: integrate MGW pooling into osmo-bsc 2021-09-03 15:03:38 +00:00
smlc.adoc manual: Location Services: clarify BSC side address 2021-04-27 13:39:01 +00:00
smscb.adoc CBSP: document rate counters and their mapping to basic/extended CBCH 2021-02-22 13:44:32 +00:00