Project

General

Profile

Actions

Feature #4396

open

Circuit Switched Data (CSD) Support in osmocom-bb

Added by laforge over 3 years ago. Updated 12 days ago.

Status:
Stalled
Priority:
Normal
Assignee:
Category:
-
Target version:
-
Start date:
02/13/2020
Due date:
% Done:

30%

Resolution:
Spec Reference:
Tags:
CSD

Description

This would primarily entail:
  • permitting the related bearer types on the 04.08 CC side
  • configuring the DSP correctly to perform the 45.003 interleaving / coding for the respective bearer type
  • implementing the various rate adaptation functions to get to the individual sync/async characters. AFAIR there even was a hardware accelerator (maybe that was only MTK, not TI?). In any case, we want a software implementation on the host PC side, we don't care about an efficient implementation on the baseband chip.

Test/development could be done against Racal 6103, which supports both data + fax calls


Checklist

  • CSD support in layer23
  • CSD support in the firmware
  • CSD support in virtphy
  • CSD support in trxcon

Related issues

Related to OsmoBTS - Feature #1572: Circuit Switched Data (CSD) Support in osmo-btsResolvedfixeria02/23/2016

Actions
Actions #1

Updated by laforge over 3 years ago

  • Tags set to CSD
Actions #2

Updated by laforge over 3 years ago

  • Related to Feature #1572: Circuit Switched Data (CSD) Support in osmo-bts added
Actions #3

Updated by fixeria almost 3 years ago

configuring the DSP correctly to perform the 45.003 interleaving / coding for the respective bearer type

JFYI, here is an extract from include/calypso/l1_environment.h:

/* Channel mode definitions for DEDICATED mode */
#define SIG_ONLY_MODE      0    // signalling only
#define TCH_FS_MODE        1    // speech full rate
#define TCH_HS_MODE        2    // speech half rate
#define TCH_96_MODE        3    // data 9,6 kb/s
#define TCH_48F_MODE       4    // data 4,8 kb/s full rate
#define TCH_48H_MODE       5    // data 4,8 kb/s half rate
#define TCH_24F_MODE       6    // data 2,4 kb/s full rate
#define TCH_24H_MODE       7    // data 2,4 kb/s half rate
#define TCH_EFR_MODE       8    // enhanced full rate
#define TCH_144_MODE       9    // data 14,4 kb/s half rate
Actions #4

Updated by laforge 10 months ago

  • Subject changed from Circuit Switched Data (CSD) Support to Circuit Switched Data (CSD) Support in osmocom-bb
Actions #5

Updated by laforge 8 months ago

  • Priority changed from Low to Normal
Actions #7

Updated by fixeria 4 months ago

  • Checklist item CSD support in layer23 added
  • Checklist item CSD support in the firmware added
  • Checklist item CSD support in virtphy added
  • Checklist item CSD support in trxcon added
  • Status changed from New to In Progress
  • Assignee set to fixeria

I need CSD support in trxcon for testing the BTS side implementation #1572 in ttcn3-bts-test, so I'll be working on this part.

Actions #8

Updated by fixeria 4 months ago

remote: https://gerrit.osmocom.org/c/osmocom-bb/+/32916 trxcon/l1sched: remove redundant TCH/[FH] prim length checks [NEW]
remote: https://gerrit.osmocom.org/c/osmocom-bb/+/32917 trxcon/l1sched: drop Tx prims for not supported TCH modes [NEW]
remote: https://gerrit.osmocom.org/c/osmocom-bb/+/32918 trxcon/l1sched: cosmetic: get rid of amr_is_cmr/fn_is_cmi [NEW]
remote: https://gerrit.osmocom.org/c/osmocom-bb/+/32919 trxcon/l1sched: use sched_tchh_dl_facch_map[] in rx_tchh_fn() [NEW]
remote: https://gerrit.osmocom.org/c/osmocom-bb/+/32920 trxcon/l1sched: use variable names like in osmo-bts-trx [NEW]
remote: https://gerrit.osmocom.org/c/osmocom-bb/+/32921 trxcon/l1sched: rework burst buffer shifting for TCH/[FH] [NEW]
remote: https://gerrit.osmocom.org/c/osmocom-bb/+/32922 trxcon/l1sched: implement CSD scheduling support [WIP]

Actions #9

Updated by fixeria 4 months ago

  • Status changed from In Progress to Stalled
Actions #10

Updated by fixeria 3 months ago

  • Status changed from Stalled to In Progress
Actions #11

Updated by fixeria 2 months ago

  • Checklist item CSD support in trxcon set to Done
  • Status changed from In Progress to Feedback
  • % Done changed from 0 to 30

Implementing CSD support for trxcon required some refactoring, mostly bringing its l1sched closer to the state of osmo-bts-trx:

https://gerrit.osmocom.org/c/osmocom-bb/+/33708 trxcon/l1sched: rework dequeueing of Tx prims
https://gerrit.osmocom.org/c/osmocom-bb/+/33709 trxcon/l1sched: peoperly prioritize FACCH/H over TCH
https://gerrit.osmocom.org/c/osmocom-bb/+/33710 trxcon/l1sched: simplify and unify prim_dequeue_tchf()
https://gerrit.osmocom.org/c/osmocom-bb/+/33711 trxcon/l1sched: do not craft artificial BFI frames on TCH
https://gerrit.osmocom.org/c/osmocom-bb/+/33712 trxcon/l1sched: transmit dummy speech blocks with inverted CRC3

I also noticed a regression introduced by https://gerrit.osmocom.org/c/osmocom-bb/+/32916 and fixed it:

https://gerrit.osmocom.org/c/osmocom-bb/+/33706 trxcon/l1sched: fix handling of UL FACCH on TCH/A[FH]S
https://gerrit.osmocom.org/c/osmocom-bb/+/33707 trxcon/l1sched: remove unused vars in l1sched_lchan_amr_prim_is_valid()

There is one additional change that changes the logic of sending DATA.cnf, but simplifies everything a lot:

https://gerrit.osmocom.org/c/osmocom-bb/+/33749 trxcon/l1sched: emit DATA.cnf early (on bid=0)

Finally, here is a patch implementing CSD specific channel coding (including FACCH support):

https://gerrit.osmocom.org/c/osmocom-bb/+/32922 trxcon/l1sched: implement CSD scheduling support

Actions #12

Updated by fixeria 27 days ago

  • Status changed from Feedback to New
  • Assignee deleted (fixeria)
Actions #13

Updated by laforge 12 days ago

  • Status changed from New to Stalled
  • Assignee set to fixeria
Actions

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)