osmo-bsc/include/osmocom/bsc
Neels Hofmeyr c33eb8d569 allow explixit TSC Set and TSC on chan activ / modif / assignment
Activating / modifying to a VAMOS mode will require picking specific TSC
Set / TSC. It is a bad idea to pick the TSC in each message encoding
function, rather make this choice centrally.

So far we pick the training sequence code to use based on the timeslot
configuration, and this TSC is determined only upon encoding the RSL
messages.

Instead, pick the TSC to use upon the initial lchan activation /
modification request; store this in the request structs and pass through
the activation / modification code paths.

For VAMOS modes, we also need to pick a TSC Set. Do so also upon activ /
modif request. Note that the TSC Set is not yet applied in this patch,
it will be applied in upcoming VAMOS patches.

The activ / modif request may pass -1 for tsc_set and/or tsc to indicate
no specific choice of TSC Set and TSC, resulting in the same behavior as
before this patch.

For example, lchan->activate.info.tsc* may be passed as -1. The exact
choice for tsc_set and tsc is then stored in lchan->activate.tsc*, i.e.
one level up (the .info sub-struct is considered as immutable input
args). The lchan->activate.tsc* are the values actually encoded in RSL
messages. After the ACK, the lchan->activate.tsc* is stored in
lchan->tsc* to indicate the TSC actually in use. Same for modif.

Note that in 3GPP TS 45.002, the TSC Set are numbered 1 to 4, while the
TSC are numbered 0 to 7. On the wire, though, TSC Set is sent as 0 to 3
value. This is a weird discrepancy, odd choice made by the spec authors.
For conformance with the spec wording, I decided to pass the TSC Set
number as a 1-4 ranged value, and only convert it to the 0-3 on-the-wire
format upon message encoding. So log messages and VTY output will
indicate the first TSC Set as "1", but the first TSC as "0", as defined
in 3GPP TS 45.002, even if that is somewhat weird.

Related: SYS#5315 OS#4940
Change-Id: Ic665125255d7354f5499d10dda1dd866ab243d24
2021-05-31 05:20:02 +00:00
..
Makefile.am Use rest_octets functionalities from libosmocore 2020-12-15 19:21:44 +00:00
a_reset.h BSSMAP RESET: generalize a_reset FSM 2020-10-15 05:28:24 +02:00
abis_nm.h ipa: Fix use of null pointer in log macro 2020-10-17 13:56:16 +00:00
abis_om2000.h Add command to enable RX diversity to RBS2000 2021-03-15 18:50:32 +00:00
abis_rsl.h RSL link: explicitly select rsl_link based on lchan 2021-05-28 17:22:59 +00:00
acc.h Introduce support for ACC ramping during whole BTS life cycle 2020-07-31 09:56:46 +00:00
arfcn_range_encode.h move include/openbsc to include/osmocom/bsc 2017-09-06 16:26:13 +02:00
assignment_fsm.h allow explixit TSC Set and TSC on chan activ / modif / assignment 2021-05-31 05:20:02 +00:00
bsc_msc_data.h drop features 'core-location-area-code' and 'core-cell-identity' 2020-10-16 13:51:48 +00:00
bsc_rll.h move include/openbsc to include/osmocom/bsc 2017-09-06 16:26:13 +02:00
bsc_subscr_conn_fsm.h Send EUTRAN neighs based on whether Common Id msg contained Last used E-UTRAN PLMN ID 2021-04-19 12:12:31 +02:00
bsc_subscriber.h introduce osmo_use_count for bsc_subscr 2020-10-07 11:40:12 +00:00
bss.h Replace all references to 'sysmobts' with 'osmo-bts' 2021-04-12 18:54:40 +00:00
bssmap_reset.h Lb: stop RESET FSM when sccp_user is unbound 2021-04-27 17:34:23 +02:00
bts.h stats: add BTS uptime counter 2021-05-04 16:09:46 +00:00
bts_ipaccess_nanobts_omlattr.h Fix typo in function nanobts_attr_nsvc_get 2020-12-04 14:44:43 +01:00
bts_sm.h Introduce NM GPRS NSVC FSM 2020-12-04 14:44:40 +01:00
bts_trx.h RSL link: explicitly select rsl_link based on lchan 2021-05-28 17:22:59 +00:00
chan_alloc.h chan_alloc: remove references to lchan_alloc() 2019-01-17 15:52:25 +01:00
codec_pref.h assignment_fsm: fix channel allocator preferences 2019-02-21 10:17:37 +01:00
ctrl.h Support control connection status query for a particular MSC. 2018-01-09 11:18:10 +00:00
debug.h BSSMAP RESET: generalize a_reset FSM 2020-10-15 05:28:24 +02:00
e1_config.h libcommon: join gsm_data_shared.* into gsm_data.* 2018-02-14 12:15:40 +01:00
gsm_04_08_rr.h AMR config cleanup step 3: generate AMR LV on msg composition 2021-05-27 17:06:21 +02:00
gsm_08_08.h compl l3: allocate conn in gsm_08_08.c, not gsm_04_08_rr.c 2020-10-07 10:19:58 +00:00
gsm_data.h allow explixit TSC Set and TSC on chan activ / modif / assignment 2021-05-31 05:20:02 +00:00
handover.h fix/refactor neighbor config 2021-03-24 21:22:21 +01:00
handover_cfg.h handover vty doc: explain rxqual values 2020-11-17 03:32:14 +01:00
handover_decision.h HO: make bts_by_arfcn_bsic() public 2018-01-19 22:09:19 +00:00
handover_decision_2.h HO: Implement load based handover, as handover_decision_2.c 2018-02-19 17:11:47 +01:00
handover_fsm.h neighbor config: allow re-using ARFCN+BSIC pairs 2019-08-13 23:47:23 +02:00
handover_vty.h HO: cfg: tweak vty write 2018-02-16 16:11:16 +01:00
ipaccess.h IPA: log OML/RSL link drop reason 2019-01-03 19:10:58 +00:00
lb.h LCS: add proper BSSMAP-LE RESET re-using new generalized reset FSM 2020-10-15 05:39:09 +02:00
lchan_fsm.h lchan and assignment FSMs: make Channel Mode Modify more sane 2021-05-21 15:43:30 +02:00
lchan_rtp_fsm.h move mgw endpoint FSM to osmo-mgw.git 2019-04-30 02:24:18 +02:00
lchan_select.h add chan_mode_to_chan_type() 2021-05-28 17:22:59 +00:00
lcs_loc_req.h LCS: implement the bulk of Location Services 2020-10-09 00:26:02 +02:00
lcs_ta_req.h LCS: implement the bulk of Location Services 2020-10-09 00:26:02 +02:00
meas_feed.h Fix some typos 2019-11-13 22:10:41 +01:00
meas_rep.h move include/openbsc to include/osmocom/bsc 2017-09-06 16:26:13 +02:00
misdn.h move include/openbsc to include/osmocom/bsc 2017-09-06 16:26:13 +02:00
neighbor_ident.h fix/refactor neighbor config 2021-03-24 21:22:21 +01:00
network_listen.h move include/openbsc to include/osmocom/bsc 2017-09-06 16:26:13 +02:00
nm_common_fsm.h oml: Delay configuring NSVC until BTS features are negotiated 2020-12-04 15:54:34 +01:00
openbscdefines.h move include/openbsc to include/osmocom/bsc 2017-09-06 16:26:13 +02:00
osmo_bsc.h drop some unused members and function decls 2020-09-03 01:07:15 +02:00
osmo_bsc_grace.h dissolve bsc_grace_paging_request() 2020-09-16 21:54:52 +00:00
osmo_bsc_lcls.h Move LCLS references from gsm_data to osmo_bsc_lcls 2019-03-14 13:21:19 +00:00
osmo_bsc_rf.h move include/openbsc to include/osmocom/bsc 2017-09-06 16:26:13 +02:00
osmo_bsc_sigtran.h BSSMAP RESET: move cancel-paging call to osmo_bsc_sigtran_reset() 2020-10-15 05:28:44 +02:00
osmux.h vty: Add option to enable osmux towards MSC 2019-05-19 07:26:28 +00:00
paging.h LCS: implement the bulk of Location Services 2020-10-09 00:26:02 +02:00
pcu_if.h move include/openbsc to include/osmocom/bsc 2017-09-06 16:26:13 +02:00
pcuif_proto.h pcuif_proto: version 10: add support for IPv6 NSVCs 2020-10-05 14:06:26 +00:00
penalty_timers.h refactor handover penalty timers 2021-03-24 10:02:29 +01:00
rs232.h move include/openbsc to include/osmocom/bsc 2017-09-06 16:26:13 +02:00
signal.h Introduce NM GPRS NSE FSM 2020-12-03 18:46:27 +01:00
smscb.h CBSP: add local bind to client mode 2020-08-29 07:57:59 +00:00
system_information.h [hopping] Rework generation of Cell/Mobile Allocation 2021-04-12 12:17:40 +00:00
timeslot_fsm.h fix TCH/H allocation: use half occupied dyn TS instead of switching more dyn TS 2020-11-17 03:32:17 +01:00
vty.h power_control: add VTY commands for per-BTS configuration 2020-12-22 11:11:07 +00:00