osmo-bsc/src/osmo-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 Replace all references to 'sysmobts' with 'osmo-bts' 2021-04-12 18:54:40 +00:00
a_reset.c BSSMAP RESET: move RESET-ACK into reset fsm 2020-10-15 05:28:44 +02:00
abis_bs11.c dissolve libbsc: move all to src/osmo-bsc, link .o files 2018-06-07 19:09:06 +02:00
abis_nm.c RSL link: explicitly select rsl_link based on lchan 2021-05-28 17:22:59 +00:00
abis_nm_ipaccess.c dissolve libbsc: move all to src/osmo-bsc, link .o files 2018-06-07 19:09:06 +02:00
abis_nm_vty.c VTY: let all descriptions end in \n 2020-03-27 10:15:01 +01:00
abis_om2000.c Add command to enable RX diversity to RBS2000 2021-03-15 18:50:32 +00:00
abis_om2000_vty.c Add command to enable RX diversity to RBS2000 2021-03-15 18:50:32 +00:00
abis_rsl.c allow explixit TSC Set and TSC on chan activ / modif / assignment 2021-05-31 05:20:02 +00:00
acc.c RSL link: explicitly select rsl_link based on lchan 2021-05-28 17:22:59 +00:00
arfcn_range_encode.c range_enc_determine_range(): Don't dereference array on size=0 2018-10-21 11:10:23 +02:00
assignment_fsm.c allow explixit TSC Set and TSC on chan activ / modif / assignment 2021-05-31 05:20:02 +00:00
bsc_ctrl_commands.c ctrl: Avoid fclose() on NULL pointer 2021-05-25 11:49:12 +02:00
bsc_ctrl_lookup.c bts: Drop duplicated function to get trx by number 2020-07-18 21:45:32 +00:00
bsc_init.c stats: add BTS uptime counter 2021-05-04 16:09:46 +00:00
bsc_rf_ctrl.c use osmo_fd_setup() whenever applicable 2020-10-19 12:05:17 +02:00
bsc_rll.c dissolve libbsc: move all to src/osmo-bsc, link .o files 2018-06-07 19:09:06 +02:00
bsc_sccp.c LCS: implement the bulk of Location Services 2020-10-09 00:26:02 +02:00
bsc_subscr_conn_fsm.c RSL link: explicitly select rsl_link based on lchan 2021-05-28 17:22:59 +00:00
bsc_subscriber.c bsc_subscr_name: print both IMSI and TMSI 2020-10-07 11:40:12 +00:00
bsc_vty.c allow explixit TSC Set and TSC on chan activ / modif / assignment 2021-05-31 05:20:02 +00:00
bssmap_reset.c Lb: stop RESET FSM when sccp_user is unbound 2021-04-27 17:34:23 +02:00
bts.c bsc: Use osmo_clock_gettime everywhere 2021-05-23 10:30:44 +00:00
bts_ericsson_rbs2000.c Add command to enable RX diversity to RBS2000 2021-03-15 18:50:32 +00:00
bts_init.c Replace all references to 'sysmobts' with 'osmo-bts' 2021-04-12 18:54:40 +00:00
bts_ipaccess_nanobts.c RSL link: explicitly select rsl_link based on lchan 2021-05-28 17:22:59 +00:00
bts_ipaccess_nanobts_omlattr.c Fix typo in function nanobts_attr_nsvc_get 2020-12-04 14:44:43 +01:00
bts_nokia_site.c Store GPRS MOs directly under BTS SiteMgr object 2020-12-03 16:31:36 +01:00
bts_osmobts.c Replace all references to 'sysmobts' with 'osmo-bts' 2021-04-12 18:54:40 +00:00
bts_siemens_bs11.c RSL link: explicitly select rsl_link based on lchan 2021-05-28 17:22:59 +00:00
bts_sm.c Introduce NM GPRS NSVC FSM 2020-12-04 14:44:40 +01:00
bts_trx.c gsm_lchan_name_compute with ctx 2021-04-28 16:32:19 +02:00
bts_unknown.c Move struct gsm_bts: gsm_data.* => bts.* 2020-07-18 21:45:32 +00:00
cbch_scheduler.c smscb: Avoid scheduler array overflow 2021-01-03 22:09:40 +00:00
cbsp_link.c CBSP VTY: re-add legacy cbc config for backwards compat 2020-09-03 15:04:29 +02:00
chan_alloc.c chan_alloc: Fix typo in a comment. 2020-08-12 18:38:06 +00:00
codec_pref.c Move struct gsm_bts: gsm_data.* => bts.* 2020-07-18 21:45:32 +00:00
e1_config.c RSL link: explicitly select rsl_link based on lchan 2021-05-28 17:22:59 +00:00
gsm_04_08_rr.c allow explixit TSC Set and TSC on chan activ / modif / assignment 2021-05-31 05:20:02 +00:00
gsm_08_08.c Send EUTRAN neighs based on whether Common Id msg contained Last used E-UTRAN PLMN ID 2021-04-19 12:12:31 +02:00
gsm_data.c gsm48_lchan2chan_desc(): expose TSC as param 2021-05-28 17:22:59 +00:00
handover_cfg.c dissolve libbsc: move all to src/osmo-bsc, link .o files 2018-06-07 19:09:06 +02:00
handover_decision.c fix/refactor neighbor config 2021-03-24 21:22:21 +01:00
handover_decision_2.c hodec 2: do intra-cell congestion resolution by Assignment 2021-05-28 17:22:59 +00:00
handover_fsm.c make sure channel mode and s15_s0 are updated only after an ACK 2021-05-27 17:06:21 +02:00
handover_logic.c fix/refactor neighbor config 2021-03-24 21:22:21 +01:00
handover_vty.c vty: add attributes to VTY commands indicating when they apply 2020-10-08 07:18:12 +00:00
lb.c Lb: RESET FSM: never send sccp_user == NULL 2021-04-27 17:34:23 +02:00
lchan_fsm.c allow explixit TSC Set and TSC on chan activ / modif / assignment 2021-05-31 05:20:02 +00:00
lchan_rtp_fsm.c make sure channel mode and s15_s0 are updated only after an ACK 2021-05-27 17:06:21 +02:00
lchan_select.c add chan_mode_to_chan_type() 2021-05-28 17:22:59 +00:00
lcs_loc_req.c allow explixit TSC Set and TSC on chan activ / modif / assignment 2021-05-31 05:20:02 +00:00
lcs_ta_req.c Lb: make sure we never have missing timer configurability 2021-04-28 16:31:08 +02:00
meas_feed.c Use osmo_fd_*_{disable,enable} 2020-11-11 20:15:22 +00:00
meas_rep.c dissolve libbsc: move all to src/osmo-bsc, link .o files 2018-06-07 19:09:06 +02:00
neighbor_ident.c fixup for neighbor config for coverity 2021-04-08 21:12:49 +00:00
neighbor_ident_vty.c Revert "update neighbor ARFCNs on startup and config changes" 2021-04-23 13:38:58 +02:00
net_init.c lchan_fsm: mode modify: fix missing timeouts and error transitions 2021-04-28 16:32:19 +02:00
nm_bb_transc_fsm.c RSL link: explicitly select rsl_link based on lchan 2021-05-28 17:22:59 +00:00
nm_bts_fsm.c NM FSMs: fix DISABLED_NOTINSTALLED -> DISABLED_NOTINSTALLED 2020-12-13 12:08:45 +00:00
nm_bts_sm_fsm.c NM FSMs: fix DISABLED_NOTINSTALLED -> DISABLED_NOTINSTALLED 2020-12-13 12:08:45 +00:00
nm_channel_fsm.c NM FSMs: fix DISABLED_NOTINSTALLED -> DISABLED_NOTINSTALLED 2020-12-13 12:08:45 +00:00
nm_common_fsm.c oml: Delay configuring NSVC until BTS features are negotiated 2020-12-04 15:54:34 +01:00
nm_gprs_cell_fsm.c NM FSMs: fix DISABLED_NOTINSTALLED -> DISABLED_NOTINSTALLED 2020-12-13 12:08:45 +00:00
nm_gprs_nse_fsm.c NM FSMs: fix DISABLED_NOTINSTALLED -> DISABLED_NOTINSTALLED 2020-12-13 12:08:45 +00:00
nm_gprs_nsvc_fsm.c NM FSMs: fix DISABLED_NOTINSTALLED -> DISABLED_NOTINSTALLED 2020-12-13 12:08:45 +00:00
nm_rcarrier_fsm.c NM FSMs: fix DISABLED_NOTINSTALLED -> DISABLED_NOTINSTALLED 2020-12-13 12:08:45 +00:00
osmo_bsc_bssap.c make sure channel mode and s15_s0 are updated only after an ACK 2021-05-27 17:06:21 +02:00
osmo_bsc_ctrl.c ctrl: Fix CTRL TRAP for {msc.X,msc_)connection_status not sent 2020-08-25 19:04:24 +02:00
osmo_bsc_filter.c cosmetic: shorten deref chains where possible 2021-02-04 20:25:52 +00:00
osmo_bsc_grace.c dissolve bsc_grace_paging_request() 2020-09-16 21:54:52 +00:00
osmo_bsc_lcls.c make sure channel mode and s15_s0 are updated only after an ACK 2021-05-27 17:06:21 +02:00
osmo_bsc_main.c Revert "update neighbor ARFCNs on startup and config changes" 2021-04-23 13:38:58 +02:00
osmo_bsc_mgcp.c Use OSMO_FD_* instead of deprecated BSC_FD_* 2020-07-15 18:38:11 +02:00
osmo_bsc_msc.c drop features 'core-location-area-code' and 'core-cell-identity' 2020-10-16 13:51:48 +00:00
osmo_bsc_sigtran.c BSSMAP RESET: tweak logging 2020-10-15 05:28:44 +02:00
paging.c LCS: implement the bulk of Location Services 2020-10-09 00:26:02 +02:00
pcu_sock.c Store GPRS MOs directly under BTS SiteMgr object 2020-12-03 16:31:36 +01:00
penalty_timers.c refactor handover penalty timers 2021-03-24 10:02:29 +01:00
smscb.c smscb: Fix adding of SMSCB messages when no message with lower period exists 2021-01-04 21:48:03 +00:00
system_information.c gsm48_lchan2chan_desc(): expose TSC as param 2021-05-28 17:22:59 +00:00
timeslot_fsm.c log: drop duplicate logging in ts_setup_lchans() 2021-04-28 16:32:19 +02:00