osmo-bsc/src/osmo-bsc
Vadim Yanitskiy a88fa1f12f RSL/BSSAP: fix: properly convert between RSL Link ID and DLCI
Data Link Connection Identifier (DLCI) is defined in 3GPP TS 48.006,
section 9.3.2, and coded as follows:

  .... .SSS - SAPI value used on the radio link;
  CC.. .... - control channel identification:
    00.. .... - indicates that the control channel is not further specified,
    10.. .... - represents the FACCH or the SDCCH,
    11.. .... - represents the SACCH,
    other values are reserved.

RSL Link Identifier is defined in 3GPP TS 3GPP TS 48.058,
section 9.3.2, and coded as follows:

  .... .SSS - SAPI value used on the radio link;
  ...P P... - priority for SAPI0 messages;
  CC.. .... - control channel identification:
    00.. .... - main signalling channel (FACCH or SDCCH),
    01.. .... - SACCH,
    other values are reserved.

As can be seen, CC bits in both DLCI and RSL Link Identifier
are coded differently.  Therefore, we cannot just assign
one identifier to another, we need to do conversion.

I noticed that osmo-bsc indicates DLCI '01000011'B for SMS
messages sent over SACCH/F (SAPI3), and this is wrong because
'01'B is reserved.  Let's fix this.

P.S. Interesting coincidence: section 9.3.2 in both documents.

Change-Id: If4d479a54cad467f53b49065c1c435a4471ac7d2
Related: Ica69ae95b47a67ba99ba9cc36629b6bd210d11e4
Related: OS#3716
2020-10-08 07:15:01 +00:00
..
Makefile.am rename files acc_ramp.* -> acc.c* 2020-07-20 16:21:59 +02:00
a_reset.c ctrl: Fix CTRL TRAP for {msc.X,msc_)connection_status not sent 2020-08-25 19:04:24 +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 abis_nm: Remove duplicated log line 2020-10-02 19:31:43 +02: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 abis_om2000: check result of gsm_bts_trx_set_system_infos() 2020-09-09 11:29:06 +00:00
abis_om2000_vty.c bts: Drop duplicated function to get trx by number 2020-07-18 21:45:32 +00:00
abis_rsl.c osmo-bsc: fix a crash when receiving a RACH LOAD IND with 0 2020-09-17 15:36:52 +00:00
acc.c acc: Fix ACC rotate barring highest ACCs too quickly during wraparound 2020-08-27 14:05:14 +02: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 lchan_fsm: make rsl mode-modify working again 2020-09-03 21:35:25 +02:00
bsc_ctrl_commands.c Move struct gsm_bts: gsm_data.* => bts.* 2020-07-18 21:45:32 +00: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 CBSP: add local bind to client mode 2020-08-29 07:57:59 +00:00
bsc_rf_ctrl.c Move struct gsm_bts: gsm_data.* => bts.* 2020-07-18 21:45:32 +00:00
bsc_rll.c dissolve libbsc: move all to src/osmo-bsc, link .o files 2018-06-07 19:09:06 +02:00
bsc_subscr_conn_fsm.c cosmetic: fix naming of GSCON_EV_A_CONN_REQ -> GSCON_EV_MO_COMPL_L3 2020-10-07 11:40:12 +00:00
bsc_subscriber.c bsc_subscr_name: print both IMSI and TMSI 2020-10-07 11:40:12 +00:00
bsc_vty.c introduce osmo_use_count for bsc_subscr 2020-10-07 11:40:12 +00:00
bts.c abis_rsl: prioritize emergency calls over regular calls 2020-09-07 12:44:41 +02:00
bts_ericsson_rbs2000.c Move struct gsm_bts: gsm_data.* => bts.* 2020-07-18 21:45:32 +00:00
bts_init.c dissolve libbsc: move all to src/osmo-bsc, link .o files 2018-06-07 19:09:06 +02:00
bts_ipaccess_nanobts.c oml: encode IPv6 NSVC using the new OML attribute NM_ATT_OSMO_NS_LINK_CFG 2020-10-05 14:06:26 +00:00
bts_ipaccess_nanobts_omlattr.c oml: encode IPv6 NSVC using the new OML attribute NM_ATT_OSMO_NS_LINK_CFG 2020-10-05 14:06:26 +00:00
bts_nokia_site.c Move struct gsm_bts: gsm_data.* => bts.* 2020-07-18 21:45:32 +00:00
bts_siemens_bs11.c BS-11: Fix "CONNECT TERRESTRIAL TRAFFIC" 2020-08-01 17:13:36 +02:00
bts_sysmobts.c oml: encode IPv6 NSVC using the new OML attribute NM_ATT_OSMO_NS_LINK_CFG 2020-10-05 14:06:26 +00:00
bts_trx.c Move gsm_bts_{trx_}set_system_infos APIs to bts{_trx}.* 2020-07-18 21:45:32 +00:00
bts_unknown.c Move struct gsm_bts: gsm_data.* => bts.* 2020-07-18 21:45:32 +00:00
cbch_scheduler.c Move struct gsm_bts: gsm_data.* => bts.* 2020-07-18 21:45:32 +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 Move struct gsm_bts: gsm_data.* => bts.* 2020-07-18 21:45:32 +00:00
gsm_04_08_rr.c compl l3: allocate conn in gsm_08_08.c, not gsm_04_08_rr.c 2020-10-07 10:19:58 +00:00
gsm_08_08.c RSL/BSSAP: fix: properly convert between RSL Link ID and DLCI 2020-10-08 07:15:01 +00:00
gsm_data.c gsm_data: always set spare bits in channel description 2020-09-10 08:43:58 +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 Move struct gsm_bts: gsm_data.* => bts.* 2020-07-18 21:45:32 +00:00
handover_decision_2.c hodec2: log requirements of best candidate, log rxlev in dBm 2020-08-10 21:25:57 +02:00
handover_fsm.c handover_fsm: signal Clear from gscon, for proper HO result counts 2020-08-31 18:01:17 +02:00
handover_logic.c handover: fix detection for ambiguous HO neighbor ident 2020-08-31 18:01:17 +02:00
handover_vty.c Move struct gsm_bts: gsm_data.* => bts.* 2020-07-18 21:45:32 +00:00
lchan_fsm.c lchan_fsm, lchan_rtp_fsm: make all timers configurable 2020-09-18 08:47:49 +00:00
lchan_rtp_fsm.c lchan_fsm, lchan_rtp_fsm: make all timers configurable 2020-09-18 08:47:49 +00:00
lchan_select.c abis_rsl: prioritize emergency calls over regular calls 2020-09-07 12:44:41 +02:00
meas_feed.c Move struct gsm_bts: gsm_data.* => bts.* 2020-07-18 21:45:32 +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 inter-BSC HO: neighbor_ident API: drop 9bit BSIC 2018-07-28 12:18:23 +02:00
neighbor_ident_vty.c Move struct gsm_bts: gsm_data.* => bts.* 2020-07-18 21:45:32 +00:00
net_init.c lchan_fsm, lchan_rtp_fsm: make all timers configurable 2020-09-18 08:47:49 +00:00
osmo_bsc_bssap.c RSL/BSSAP: fix: properly convert between RSL Link ID and DLCI 2020-10-08 07:15:01 +00: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 Move struct gsm_bts: gsm_data.* => bts.* 2020-07-18 21:45:32 +00:00
osmo_bsc_grace.c dissolve bsc_grace_paging_request() 2020-09-16 21:54:52 +00:00
osmo_bsc_lcls.c Fix some typos 2019-11-13 22:10:41 +01:00
osmo_bsc_main.c generate_ma_for_ts(): simplify MA bit-mask computation 2020-09-17 15:28:34 +00: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 Fix creating MGCP proxy socket if MGW listens on an IPv6 address 2020-09-07 12:53:54 +00:00
osmo_bsc_sigtran.c LCS: implement re-use of existing A-interface conn 2020-10-07 11:40:12 +00:00
paging.c introduce osmo_use_count for bsc_subscr 2020-10-07 11:40:12 +00:00
pcu_sock.c pcuif_proto: version 10: add support for IPv6 NSVCs 2020-10-05 14:06:26 +00:00
penalty_timers.c cosmetic: penalty timers: constify, tweak doc 2018-06-08 16:16:42 +00:00
rest_octets.c Move struct gsm_bts: gsm_data.* => bts.* 2020-07-18 21:45:32 +00:00
smscb.c CBSP: log CBSP RESET on NOTICE 2020-08-25 11:42:23 +00:00
system_information.c SI Type 4: prevent potential buffer overflow 2020-09-08 20:19:18 +00:00
timeslot_fsm.c timeslot_fsm: Name TS FSM instances on allocation. 2020-08-12 18:38:18 +00:00